Marin 项目启动与配置教程
marin 项目地址: https://gitcode.com/gh_mirrors/ma/marin
1. 项目的目录结构及介绍
Marin 是一个开源框架,用于研究和开发基础模型。以下是项目的目录结构及其简要介绍:
marin/
├── .github/ # GitHub 特定的配置文件
├── data_browser/ # 数据浏览器相关的文件
├── docker/ # Docker 配置文件和镜像
├── docs/ # 项目文档
├── experiments/ # 实验定义和训练脚本
├── infra/ # 基础设施配置
├── marin/ # Marin 核心代码
├── operations/ # 运维脚本和配置
├── scripts/ # 附加脚本
├── tests/ # 测试代码
├── .dockerignore # Docker 忽略文件
├── .gitignore # Git 忽略文件
├── .pre-commit-config.yaml # pre-commit 配置文件
├── .readthedocs.yaml # ReadTheDocs 配置文件
├── CONTRIBUTING.md # 贡献指南
├── LICENSE # 许可证文件
├── Makefile # Makefile 文件
├── README.md # 项目自述文件
├── mkdocs.yml # MkDocs 配置文件
└── pyproject.toml # Python 项目配置文件
.github/
: 包含 GitHub 使用的配置文件,如工作流等。data_browser/
: 数据浏览器的代码,用于可视化数据。docker/
: 包含 Dockerfile 和其他 Docker 相关文件。docs/
: 项目文档的源文件。experiments/
: 包含各种实验的配置和脚本。infra/
: 基础设施配置,如云服务的配置文件。marin/
: Marin 的核心代码库。operations/
: 运维相关的脚本和配置文件。scripts/
: 项目的辅助脚本。tests/
: 用于测试代码的文件。
2. 项目的启动文件介绍
项目的启动通常涉及 experiments/
目录下的 Python 脚本。以下是一个简单的启动文件示例:
from experiments.defaults import default_tokenize, default_train
from experiments.llama import llama3_tokenizer, llama_nano
from experiments.simple_train_config import SimpleTrainConfig
from marin.execution.executor import executor_main
from marin.resources import CpuOnlyConfig
# 选择数据集
tinystories_hf_id = "roneneldan/TinyStories"
# 数据集分词
tinystories_tokenized = default_tokenize(
name=tinystories_hf_id,
dataset=tinystories_hf_id,
tokenizer=llama3_tokenizer,
)
# 定义训练配置
nano_train_config = SimpleTrainConfig(
resources=CpuOnlyConfig(num_cpus=1),
train_batch_size=4,
num_train_steps=100,
learning_rate=6e-4,
weight_decay=0.1,
max_eval_batches=4,
use_default_validation=False,
)
# 训练模型
nano_tinystories_model = default_train(
name="marin-nano-tinystories",
tokenized=tinystories_tokenized,
model_config=llama_nano,
train_config=nano_train_config,
tags=["llama", "nano", "tinystories", "tutorial"],
eval_harness_tasks=[],
)
if __name__ == "__main__":
executor_main(steps=[nano_tinystories_model])
这段代码定义了一个简单的训练流程,包括数据集的分词和模型的训练。
3. 项目的配置文件介绍
项目的配置文件主要包括 pyproject.toml
和 Makefile
。
pyproject.toml
: Python 项目配置文件,定义了项目的依赖和元数据。例如:
[tool.poetry]
name = "Marin"
version = "0.1.0"
description = "An open-source framework for research and development of foundation models."
authors = ["Marin Community"]
[tool.poetry.dependencies]
python = "^3.8"
[tool.poetry.dev-dependencies]
pytest = "^6.2"
Makefile
: 用于定义构建和运行项目的一系列任务。例如:
build:
python setup.py build
install:
python setup.py install
test:
pytest
这些配置文件提供了项目的基本设置和依赖管理,对于项目的启动和运行至关重要。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考