Picotron 开源项目使用指南
1. 项目目录结构及介绍
Picotron 是一个用于分布式训练的教育目的的简化4D并行性框架。以下是项目的目录结构及各部分的简要介绍:
picotron/
├── assets/ # 存储项目相关的资源文件
├── picotron/ # 包含 Picotron 核心代码
├── template/ # 包含模板文件,例如 Slurm 脚本模板
├── tests/ # 包含单元测试代码
├── .gitignore # 指定 Git 忽略的文件和目录
├── CITATION.cff # 引用信息文件
├── LICENSE # Apache-2.0 许可文件
├── README.md # 项目说明文件
├── create_config.py # 创建配置文件的脚本
├── extract_metrics.py # 提取度量信息的脚本
├── requirements.txt # 项目依赖的 Python 包列表
├── setup.py # 设置项目环境的脚本
├── submit_slurm_jobs.py # 提交 Slurm 作业的脚本
└── train.py # 训练模型的脚本
2. 项目的启动文件介绍
项目的启动文件是 train.py
。这个脚本负责启动分布式训练过程。以下是如何在本地机器上使用该文件的基本命令:
torchrun --nproc_per_node <GPU数量> train.py --config <配置文件路径>
其中 <GPU数量>
需要替换为你想要使用的 GPU 数量,<配置文件路径>
是你之前创建的配置文件的路径。
3. 项目的配置文件介绍
配置文件是分布式训练中的关键部分,它定义了训练过程的各种参数。创建配置文件的脚本为 create_config.py
。以下是一个创建配置文件的示例命令:
python create_config.py --out_dir <输出目录> --exp_name <实验名称> --dp <数据并行数> --model_name <模型名称> --num_hidden_layers <隐藏层数量> --grad_acc_steps <梯度累积步数> --mbs <全局批量大小> --seq_len <序列长度> --hf_token <HuggingFace令牌>
在这里,你需要提供以下参数:
--out_dir <输出目录>
: 配置文件输出的目录。--exp_name <实验名称>
: 当前实验的名称。--dp <数据并行数>
: 数据并行的数目。--model_name <模型名称>
: 要训练的模型名称。--num_hidden_layers <隐藏层数量>
: 模型中的隐藏层数量。--grad_acc_steps <梯度累积步数>
: 梯度累积的步数。--mbs <全局批量大小>
: 全局批量大小。--seq_len <序列长度>
: 序列长度。--hf_token <HuggingFace令牌>
: 用于下载模型的 HuggingFace 令牌。
完成配置文件创建后,你可以使用 train.py
脚本根据生成的配置文件启动训练。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考