2024-11-12 00:41:13 +08:00
|
|
|
|
# CPM 模型训练实操指南
|
|
|
|
|
|
2024-11-12 00:42:44 +08:00
|
|
|
|
conda在:https://lz-1305252147.cos.ap-guangzhou.myqcloud.com/code/llm_conda.tar.gz
|
|
|
|
|
|
2024-11-12 00:41:13 +08:00
|
|
|
|
## 快速问答
|
|
|
|
|
|
|
|
|
|
### Q1: 如何快速开始?
|
|
|
|
|
本框架基于 PyTorch 开发,训练结果将保存在 `model_final` 目录。开始前请确保满足以下要求:
|
|
|
|
|
|
|
|
|
|
**基础环境要求**
|
|
|
|
|
```ini
|
|
|
|
|
[硬件配置]
|
|
|
|
|
显卡 = A100_80GB × 4
|
|
|
|
|
批次 = 4/卡
|
|
|
|
|
|
|
|
|
|
[软件配置]
|
|
|
|
|
CUDA = 12.1
|
|
|
|
|
Python = 3.10
|
|
|
|
|
框架 = PyTorch + accelerate
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### Q2: 如何搭建环境?
|
|
|
|
|
conda env create -f environment.yml
|
|
|
|
|
提供两种方案,选择其一即可:
|
|
|
|
|
|
|
|
|
|
**方案1:Docker方式**
|
|
|
|
|
```bash
|
|
|
|
|
# 第一步:拉取镜像
|
|
|
|
|
docker pull pytorch/pytorch:2.4.0-cuda12.1-cudnn9-devel
|
|
|
|
|
|
|
|
|
|
# 第二步:运行环境
|
|
|
|
|
docker run --gpus all \
|
|
|
|
|
-v ${PWD}:/workspace \
|
|
|
|
|
pytorch/pytorch:2.4.0-cuda12.1-cudnn9-devel
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
**方案2:本地方式**
|
|
|
|
|
```bash
|
|
|
|
|
# 第一步:创建环境
|
|
|
|
|
conda create -n cpm python=3.10
|
|
|
|
|
|
|
|
|
|
# 第二步:激活环境
|
|
|
|
|
conda activate cpm
|
|
|
|
|
|
|
|
|
|
# 第三步:安装依赖
|
|
|
|
|
pip install -r requirements.txt
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### Q3: 如何开始训练?
|
|
|
|
|
|
|
|
|
|
**步骤1:准备阶段**
|
|
|
|
|
```bash
|
|
|
|
|
# 配置实验监控(建议配置)
|
|
|
|
|
wandb login
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
**步骤2:开始训练**
|
|
|
|
|
```bash
|
|
|
|
|
# 修改训练配置
|
|
|
|
|
vim train.sh
|
|
|
|
|
|
|
|
|
|
# 启动训练
|
|
|
|
|
cd training
|
|
|
|
|
bash train.sh
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### Q4: 如何评估模型?
|
|
|
|
|
|
|
|
|
|
关注以下指标:
|
|
|
|
|
- ✅ 验证集损失需低于1.48
|
|
|
|
|
- ✅ 建议保存多个时期的模型
|
|
|
|
|
|
|
|
|
|
### Q5: 如何使用模型?
|
|
|
|
|
|
|
|
|
|
```python
|
|
|
|
|
# 配置示例
|
|
|
|
|
inference_settings = {
|
|
|
|
|
'model_path': '模型路径',
|
|
|
|
|
'input_path': '输入路径',
|
|
|
|
|
'output_path': '输出路径'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# 执行推理
|
|
|
|
|
python inference.py
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### Q6: 有哪些注意事项?
|
|
|
|
|
|
|
|
|
|
**性能相关**
|
|
|
|
|
```yaml
|
|
|
|
|
禁止事项:
|
|
|
|
|
- 修改GPU数量
|
|
|
|
|
- 调整batch size
|
|
|
|
|
- 更改accelerate配置
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
**监控相关**
|
|
|
|
|
```yaml
|
|
|
|
|
数据查看:
|
|
|
|
|
在线: wandb平台
|
|
|
|
|
离线: training/wandb目录
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### Q7: 推荐的使用方式?
|
|
|
|
|
|
|
|
|
|
**最佳实践清单**
|
|
|
|
|
1. 使用容器部署
|
|
|
|
|
2. 定期备份模型
|
|
|
|
|
3. 持续监控指标
|
|
|
|
|
4. 保持环境统一
|
|
|
|
|
|
|
|
|
|
### Q8: 遇到问题怎么办?
|
|
|
|
|
|
|
|
|
|
**常见问题处理**
|
|
|
|
|
|
|
|
|
|
| 现象 | 可能原因 | 解决方案 |
|
|
|
|
|
|-----|---------|---------|
|
|
|
|
|
| 内存不足 | 批次过大 | 检查内存配置 |
|
|
|
|
|
| 性能低下 | 资源竞争 | 确认GPU独占 |
|
|
|
|
|
| 训练中断 | 环境问题 | 更新系统依赖 |
|
|
|
|
|
|
|
|
|
|
### Q9: 相关资源在哪里?
|
|
|
|
|
|
|
|
|
|
**资源索引**
|
|
|
|
|
```yaml
|
|
|
|
|
配置文件:
|
|
|
|
|
位置: 项目根目录
|
|
|
|
|
用途: 系统配置
|
|
|
|
|
|
|
|
|
|
Docker文件:
|
|
|
|
|
位置: ./Dockerfile
|
|
|
|
|
用途: 自定义镜像
|
|
|
|
|
|
|
|
|
|
监控工具:
|
|
|
|
|
类型: wandb
|
|
|
|
|
状态: 已集成
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### Q10: 系统限制有哪些?
|
|
|
|
|
|
|
|
|
|
**使用限制**
|
|
|
|
|
```yaml
|
|
|
|
|
硬件限制:
|
|
|
|
|
- 仅支持A100显卡
|
|
|
|
|
- 需要4卡配置
|
|
|
|
|
|
|
|
|
|
软件限制:
|
|
|
|
|
- 特定CUDA版本
|
|
|
|
|
- Python版本固定
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 补充说明
|
|
|
|
|
|
|
|
|
|
### 版本特性
|
|
|
|
|
- 支持分布式训练
|
|
|
|
|
- 内置监控功能
|
|
|
|
|
- 优化内存使用
|
|
|
|
|
|
|
|
|
|
### 更新日志
|
|
|
|
|
- 优化训练流程
|
|
|
|
|
- 增强稳定性
|
|
|
|
|
- 提升性能表现
|