2024-11-12 10:28:03 +08:00
|
|
|
|
# CPM 训练框架文档
|
|
|
|
|
|
|
|
|
|
> 本文档介绍基于 PyTorch 的 CPM 大规模语言模型训练系统。训练完成的模型将存储在 `model_final` 目录。
|
|
|
|
|
|
2024-11-14 12:13:16 +08:00
|
|
|
|
conda在:https://lz-1305252147.cos.ap-guangzhou.myqcloud.com/llm_conda.tar.gz
|
2024-11-12 10:28:03 +08:00
|
|
|
|
|
|
|
|
|
## 一、环境配置指南
|
|
|
|
|
|
|
|
|
|
### 硬件配置清单
|
|
|
|
|
|
|
|
|
|
必要配置:
|
|
|
|
|
- GPU:4张 NVIDIA A100(80GB)显卡
|
|
|
|
|
- 单卡训练批次:4
|
|
|
|
|
|
|
|
|
|
软件环境:
|
|
|
|
|
- CUDA 版本:12.1
|
|
|
|
|
- Python 环境:3.10
|
|
|
|
|
- 深度学习框架:PyTorch + accelerate
|
|
|
|
|
|
|
|
|
|
### 环境部署方案
|
|
|
|
|
|
|
|
|
|
**选项1:基于容器**
|
|
|
|
|
```bash
|
|
|
|
|
# Step 1: 获取基础镜像
|
|
|
|
|
docker pull pytorch/pytorch:2.4.0-cuda12.1-cudnn9-devel
|
|
|
|
|
|
|
|
|
|
# Step 2: 运行容器实例
|
|
|
|
|
docker run --gpus all \
|
|
|
|
|
-v $(pwd):/workspace \
|
|
|
|
|
pytorch/pytorch:2.4.0-cuda12.1-cudnn9-devel
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
**选项2:基于conda**
|
|
|
|
|
```bash
|
|
|
|
|
# Step 1: 创建虚拟环境
|
|
|
|
|
conda create -n cpm python=3.10
|
|
|
|
|
|
|
|
|
|
# Step 2: 激活环境
|
|
|
|
|
conda activate cpm
|
|
|
|
|
|
|
|
|
|
# Step 3: 安装依赖包
|
|
|
|
|
pip install -r requirements.txt
|
|
|
|
|
```
|
|
|
|
|
conda env create -f environment.yml
|
|
|
|
|
## 二、操作流程详解
|
|
|
|
|
|
|
|
|
|
### 2.1 前期准备
|
|
|
|
|
|
|
|
|
|
实验监控配置(可选):
|
|
|
|
|
```bash
|
|
|
|
|
# 配置wandb监控
|
|
|
|
|
wandb login
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 2.2 模型训练步骤
|
|
|
|
|
|
|
|
|
|
1. 修改训练配置:
|
|
|
|
|
```bash
|
|
|
|
|
# 编辑训练脚本
|
|
|
|
|
vim train.sh # 设置模型路径等参数
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
2. 执行训练:
|
|
|
|
|
```bash
|
|
|
|
|
# 进入训练目录并启动
|
|
|
|
|
cd training
|
|
|
|
|
bash train.sh
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 2.3 效果验证
|
|
|
|
|
|
|
|
|
|
验证指标:
|
|
|
|
|
- 验证集损失应当低于0.52
|
|
|
|
|
- 推荐保存训练过程中的多个检查点
|
|
|
|
|
|
|
|
|
|
### 2.4 推理部署
|
|
|
|
|
|
|
|
|
|
示例代码:
|
|
|
|
|
```python
|
|
|
|
|
# 核心配置项
|
|
|
|
|
inference_config = {
|
|
|
|
|
'model_path': './checkpoints/best_model', # 模型路径
|
|
|
|
|
'input_path': './data/input.txt', # 输入文件
|
|
|
|
|
'output_path': './results/output.txt' # 输出文件
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# 执行推理
|
|
|
|
|
python inference.py
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 三、关键注意事项
|
|
|
|
|
|
|
|
|
|
### 性能调优须知
|
|
|
|
|
|
|
|
|
|
- 严格遵守GPU数量要求
|
|
|
|
|
- 保持默认批处理大小不变
|
|
|
|
|
- 不建议修改accelerate默认配置
|
|
|
|
|
|
|
|
|
|
### 实验记录管理
|
|
|
|
|
|
|
|
|
|
实验数据查看方式:
|
|
|
|
|
- 实时监控:wandb平台
|
|
|
|
|
- 本地记录:`training/wandb`目录
|
|
|
|
|
|
|
|
|
|
## 四、最优实践建议
|
|
|
|
|
|
|
|
|
|
1. 优先考虑容器化部署
|
|
|
|
|
2. 建立完善的检查点备份机制
|
|
|
|
|
3. 持续监控训练指标变化
|
|
|
|
|
4. 保持训练环境的一致性
|
|
|
|
|
|
|
|
|
|
## 五、补充说明
|
|
|
|
|
|
|
|
|
|
系统文件说明:
|
|
|
|
|
- 根目录:配置文件
|
|
|
|
|
- Docker相关:自定义镜像构建文件
|
|
|
|
|
- 监控工具:wandb集成支持
|
|
|
|
|
|
|
|
|
|
## 六、故障排查指南
|
|
|
|
|
|
|
|
|
|
常见问题处理:
|
|
|
|
|
1. 内存溢出:检查批次大小设置
|
|
|
|
|
2. 训练中断:查看显卡状态
|
|
|
|
|
3. 性能不佳:确认环境配置
|
|
|
|
|
|
|
|
|
|
## 七、版本说明
|
|
|
|
|
|
|
|
|
|
当前版本特性:
|
|
|
|
|
- 支持分布式训练
|
|
|
|
|
- 提供完整监控方案
|
|
|
|
|
- 优化内存使用效率
|