模型单机多卡训练笔记

模型单机多卡训练笔记 ## 一.训练前准备- 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-lfsgit lfs install- 3.下载模型 比如我这里以Qwen2.5-0.5B-Instruct为例- 逐行命令git clone https://www.modelscope.cn/Qwen/Qwen2.5-0.5B-Instruct.gitcd Qwen2.5-0.5B-Instructgit 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_TORCHRUN1 llamafactory-cli train QWen2.5_0.5B_Instruct_full_sft.yaml### 四.等待训练结果可以进行批量推理和模型评测- 评测代码如下CUDA_VISIBLE_DEVICES0 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### 五.模型训练好之后可以封装成服务调用后面再记录一下这部分的内容