介绍
目前大模型微调主要方案是 LLaMA-Factory
LLaMA-Factory中,提供了两种多卡框架:Accelerate、DeepSpeed
Accelerate
依赖
accelerate==0.24.1
transformers==4.34.1
datasets==2.14.7
tiktoken==0.5.1
peft==0.6.2
trl==0.7.1
这里只列出可能冲突版本
注意
使用最新版本0.24.1,尝试使用0.21.0,发现gpu_ids不生效
其中trl需要降级到0.7.1,最新的0.7.4训练会报错。默认第一步安装是0.7.4
配置
yaml配置如下:
compute_environment: LOCAL_MACHINE distributed_type: MULTI_GPU downcast_bf16: 'no' machine_rank: 0 main_training_function: main mixed_precision: fp16 gpu_ids: 1,3 num_machines: 1 num_processes: 2 rdzv_backend: static same_network: true tpu_env: [] tpu_use_cluster: false tpu_use_sudo: false use_cpu: false
最终命令:
accelerate launch --config_file /root/default_config.yaml src/train_bash.py [llama-factory参数]
注意:
gpu_ids数量跟num_processes必须要一致
训练速度
模型大小 | 数据量 | 训练模式 | 资源 | 时长/epoch |
14B | 4500 | LoRA微调 | 单机单卡 | 52分钟 |
14B | 4500 | LoRA微调 | 单机2卡 | 28分钟 |
14B | 4500 | LoRA微调 | 单机3卡 | 19分钟 |
从结果来看,训练速度基本与显卡数量成线性关系。且显存大小几乎一样
DeepSpeed
依赖
deepspeed==0.12.3 transformers==4.34.1 datasets==2.14.7 tiktoken==0.5.1 peft==0.6.2 trl==0.7.1
配置
deepspeed --include="localhost:0" src/train_bash.py [llama-factory参数] --deepspeed /root/ds_config.json
注意
单机训练不需要配置hostfile,但是需要配置localhost
速度
未完待续
标签:DeepSpeed,单机,--,多卡,0.7,Accelerate,LoRA,LLMOps From: https://www.cnblogs.com/zhouwenyang/p/17851853.html