昇腾910B大模型分布式微调
adapter_name_or_path: /mnt/models/output/0806-004/checkpoint-100#生成的微调路径。#第一步切换到两个容器实例上查看对应的输出文件(分布式情况下对应的实例都查看下或者查看日志output输出到具体的那个实例)model_name_or_path: /mnt/models/Qwen1.5-0.5B-Chat# 原模型路径。kubectl
- 数据准备
两台以上的宿主机并且已经配置了k8s相关组件(两个为例master-1,和node-1
#训练数据目录介绍
Qwen1.5-0.5B-Chat 模型⽂件
output 训练输出⽬录
LLaMA-Factory 代码⽬录
datasets 数据集⽬录
hostfile 节点配置
每个宿主机的目录结构如下:
/home/data/
├── datasets/
│ └── info/
│ ├── info.json
│ └── info.json
├── deployment.yaml
├── hostfile
├── LLAMA-Factory/
├── output/
└── Qwen1.5-0.5B-Chat/
3运行微调实例
k8s部署对应的pod实例
#在宿主机上(主节点)创建deployment.yaml
touch deployment.yaml
vim deployment.yaml#网上寻找写入下面的内容
(主节点)查看pods运行情况和ip地址 (pod分别运行在两个节点上)
kubectl get pods -o wide
- 4实例配置信息
(主节点查看) kubectl get pods -o wide##查看对应pod的ip
(全部实例执行)进入容器内部
kubectl exec -it <pod_name> -- /bin/bash #对应的实例名字
1.(全部实例执行)配置域名解析
vim /etc/hosts#编辑hosts地址
2.(全部实例执行)配置ssh免密
ssh-keygen -t rsa -b 2048 #一直回车
#手动复制公钥
首先查看公钥内容:
cat ~/.ssh/id_rsa.pub
复制到下面的authorized_keys
vim ~/.ssh/authorized_keys#确保不同节点之间都有对方的公钥
全部实例执行)开启实例ssh服务
/etc/init.d/ssh start
3.(全部实例执行)配置分布式微调使用的节点
vim /mnt/models/hostfile ##路径为deploment.yaml文件挂载的路径
# 修改实例名称,改为当前的实例名称
llamafactory-npu-deployment-5987fdd8bb-ct2s9 slots=1#机器的名字,slots该实例⽤⼏张卡
- 执行微调
1(主节点实例的容器内部)进⼊代码⽬录
cd /app
2(主节点实例的容器内部)启动lora微调任务
deepspeed --hostfile /mnt/models/hostfile src/train.py --deepspeed examples/deepspeed/ds_z2_config.json --stage sft --do_train --model_name_or_path /mnt/models/Qwen1.5-0.5B-Chat --dataset_dir /mnt/models/datasets/bocloud-info --dataset bocloud_info --template qwen --finetuning_type lora --cutoff_len 4096 --output_dir /mnt/models/output/0806-004 --overwrite_cache --per_device_train_batch_size 2 --gradient_accumulation_steps 1 --lr_scheduler_type cosine --logging_steps 1 --save_steps 1000 --learning_rate 5e-5 --num_train_epochs 100 --plot_loss --fp16 True --overwrite_output_dir --lora_r 16 --lora_alpha 32 --lora_dropout 0.1
- 合并微调权重和推理
#第一步切换到两个容器实例上查看对应的输出文件(分布式情况下对应的实例都查看下或者查看日志output输出到具体的那个实例)
cd /mnt/models/output/0806-004/
cd /app #切换的容器实例的app目录下编辑合并yaml文件
vim examples/merge_lora/qwen1.5_lora_sft.yaml
model_name_or_path: /mnt/models/Qwen1.5-0.5B-Chat # 原模型路径
adapter_name_or_path: /mnt/models/output/0806-004/checkpoint-100 #生成的微调路径
template: qwen
finetuning_type: lora
export_dir: /mnt/models/merged_model #合并之后的目录
export_size: 2
export_device: cpu
export_legacy_format: false
#执行合并命令
cd /app #切换到生成输出的实例app目录下
llamafactory-cli export examples/merge_lora/qwen1.5_lora_sft.yaml#执行合并命令
日志信息:

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。
更多推荐
所有评论(0)