## 一.训练前准备
- 1.平台账号与链接:https://autodl.com/home
- 2.训练数据准备**
- 这里以酒店评论数据sentiments.json、以及自我认知identity.json为例
- 将这两个文件标准化为Alpaca格式,如下所示:
~~~
{
"prompt": "instruction", # 指令
"query": "input", # 用户输入,可选
"response": "output", 模型输出
"system": "system" # 系统设置
}
- 在 dataset_info.json 中对训练数据进行注册,如下所示:
~~~
"sentiments": {
"file_name": "sentiments.json",
"columns": {
"prompt": "instruction",
"query": "input",
"response": "output",
"system": "system"
}
}
## 二.训练配置
- 1.打开autodl算力云平台:https://autodl.com/
- 登录账号:
- 配置算力:
- 算力市场/佛山区
- 型号:V100-32GB(43/88)
- GPU 数量:2(这里我选了两张卡,大家按实际情况来)
- 镜像:PyTorch/2.5.1/3.12(ubuntu22.04)/ 12.4
- 点击“创建并开机”按钮,
- 点击快捷工具列下的“jupyterLab ” 进入编辑器环境
- 2. 升级并安装 git-lfs,因为普通的 git clone 只会下载指针文件(几百字节),而不是真正的权重文件。
- 安装命令:
apt-get update && apt-get install -y git-lfs
git lfs install
- 3.下载模型 ,比如我这里以Qwen2.5-0.5B-Instruct为例:
- 逐行命令
git clone https://www.modelscope.cn/Qwen/Qwen2.5-0.5B-Instruct.git
cd Qwen2.5-0.5B-Instruct
git lfs pull
- 这时候看到核心的 model.safetensors 权重文件,大小差不多为1GB,说明文件已经正常下载了
- 4.下载LLaMA-Factory,以及安装及依赖包
- 可以选择git命令,也可以选择本地上传压缩包之后再解压
- 安装依赖包
- cd LLaMA-Factory
- pip install -e ".[torch, metrics]"
- 5.安装deepseek(做并行计算的)
- cd LLaMA-Factory
- pip install deepspeed
### 三、训练文件上传与训练预设文件设置
- 1.环境都准备好之后,上传之前准备好的数据文件,以及修改好data文件夹中的数据注册文件dataset_info.json
- 保证dataset_info.json无误:注册数据名称、路径、数据格式
- 2.训练显存监控,定时刷新命令如下:
- watch -n 2 'nvidia-smi'
- 每隔2s刷新一次
- 设置训练预设文件
- 选择正确的训练模板:在\LLaMA-Factory\examples\train_full> 中复制llama3_full_sft.yaml 文件
- 修改文件名为:QWen2.5_0.5B_Instruct_full_sft
- 修改文件中的参数
- model_name_or_path: /root/Qwen2.5-0.5B-Instruct
- dataset: identity,alpaca_en_demo,alpaca_zh_demo,sentiment
- template: qwen
- max_samples: 10000
- output_dir: /root/autodl-tmp/outputs/Qwen2.5-0.5B-Instruct
- save_steps: 10000
- per_device_train_batch_size: 2
- gradient_accumulation_steps: 1
- 设置好之后,将文件存到LLaMA-Factory目录下,这个路径很重要,要与后面的命令路径对上
- 3.一切就绪,切换到LLaMA-Factory目录下
- cd LLaMA-Factory
- 开始训练:FORCE_TORCHRUN=1 llamafactory-cli train QWen2.5_0.5B_Instruct_full_sft.yaml
### 四.等待训练结果,可以进行批量推理和模型评测
- 评测代码如下:
CUDA_VISIBLE_DEVICES=0 llamafactory-cli eval \
--model_name_or_path /root/autodl-tmp/outputs/Qwen2.5-0.5B-Instruct \
--template qwen \
--task cmmlu_test \
--lang zh \
--n_shot 5 \
--batch_size 4 \
--trust_remote_code True
### 五.模型训练好之后,可以封装成服务调用,后面再记录一下这部分的内容