这是一个中文语言模型预训练项目,基于Transformer架构,支持分布式训练和混合精度计算。该项目实现了一个高效的中文预训练和微调框架,具有以下特点:
urllib3<2.0.0
transformers>=4.36.0
tiktoken>=0.5.0
torch>=2.0.0
matplotlib==3.8.3
datasets>=3.3.2
flash-attn
chinese_pretrain/
├── src/ # 源代码目录
│ ├── configs/ # 配置文件
│ │ ├── h20x8_config.py # H20x8 GPU配置
│ │ └── rtx4080s_config.py # RTX4080S GPU配置
│ ├── experiments/ # 实验相关目录
│ ├── dataset_cache/ # 数据集缓存
│ ├── checkpoint.py # 检查点管理
│ ├── config.py # 配置导入
│ ├── dataloader.py # 数据加载器
│ ├── env.py # 训练环境
│ ├── eval.py # 评估
│ ├── generate.py # 文本生成
│ ├── log.py # 日志工具
│ ├── module.py # 模型定义
│ ├── rope.py # RoPE位置编码
│ ├── tokenizer.py # 分词器
│ ├── train.py # 训练入口
│ ├── train.sh # 单节点训练脚本
│ └── train_nnodes.sh # 多节点训练脚本
├── tools/ # 工具脚本
├── .gitignore # Git忽略文件
└── requirements.txt # 依赖包列表
模型架构 (module.py):
分布式训练 (env.py):
位置编码 (rope.py):
数据处理 (dataloader.py):
检查点管理 (checkpoint.py):
分词器 (tokenizer.py):
pip install -r requirements.txt
数据预处理需要在训练前完成,使用下列命令处理:
cd src
python dataloader.py
在 src/configs/ 目录下可以找到不同硬件的配置文件,选择适合自己设备性能的配置,可以根据需要修改以下参数:
TrainConfig:训练参数,如批次大小、梯度累积步数等ModuleConfig:模型参数,如层数、注意力头数等PretrainConfig 和 SftConfig:数据集配置cd src
python train.py
cd src
./train_8gpus.sh
cd src
./train_nnodes.sh
训练的checkpoint以及日志都放在experiments目录下
预训练与微调支持:
高效数据处理:
资源优化:
训练稳定性:
284 commits
Python
99.6%
这是一个中文语言模型预训练项目,基于Transformer架构,支持分布式训练和混合精度计算。该项目实现了一个高效的中文预训练和微调框架,具有以下特点:
urllib3<2.0.0
transformers>=4.36.0
tiktoken>=0.5.0
torch>=2.0.0
matplotlib==3.8.3
datasets>=3.3.2
flash-attn
chinese_pretrain/
├── src/ # 源代码目录
│ ├── configs/ # 配置文件
│ │ ├── h20x8_config.py # H20x8 GPU配置
│ │ └── rtx4080s_config.py # RTX4080S GPU配置
│ ├── experiments/ # 实验相关目录
│ ├── dataset_cache/ # 数据集缓存
│ ├── checkpoint.py # 检查点管理
│ ├── config.py # 配置导入
│ ├── dataloader.py # 数据加载器
│ ├── env.py # 训练环境
│ ├── eval.py # 评估
│ ├── generate.py # 文本生成
│ ├── log.py # 日志工具
│ ├── module.py # 模型定义
│ ├── rope.py # RoPE位置编码
│ ├── tokenizer.py # 分词器
│ ├── train.py # 训练入口
│ ├── train.sh # 单节点训练脚本
│ └── train_nnodes.sh # 多节点训练脚本
├── tools/ # 工具脚本
├── .gitignore # Git忽略文件
└── requirements.txt # 依赖包列表
模型架构 (module.py):
分布式训练 (env.py):
位置编码 (rope.py):
数据处理 (dataloader.py):
检查点管理 (checkpoint.py):
分词器 (tokenizer.py):
pip install -r requirements.txt
数据预处理需要在训练前完成,使用下列命令处理:
cd src
python dataloader.py
在 src/configs/ 目录下可以找到不同硬件的配置文件,选择适合自己设备性能的配置,可以根据需要修改以下参数:
TrainConfig:训练参数,如批次大小、梯度累积步数等ModuleConfig:模型参数,如层数、注意力头数等PretrainConfig 和 SftConfig:数据集配置cd src
python train.py
cd src
./train_8gpus.sh
cd src
./train_nnodes.sh
训练的checkpoint以及日志都放在experiments目录下
预训练与微调支持:
高效数据处理:
资源优化:
训练稳定性:
284 commits
Python
99.6%