同一个ip网站太多 seo,阳江公司网站建设,旅游电子商务网站设计,关键词优化排名软件怎么样上篇文章记录了使用lora微调deepseek-7b#xff0c;微调成功#xff0c;但是微调llama3-8b显存爆炸#xff0c;这次尝试使用qlora微调HQQ方式量化#xff0c;微调更大参数体量的大语言模型#xff0c;记录下来微调过程#xff0c;仅供参考。 对过程不感兴趣的兄弟们可以直… 上篇文章记录了使用lora微调deepseek-7b微调成功但是微调llama3-8b显存爆炸这次尝试使用qlora微调HQQ方式量化微调更大参数体量的大语言模型记录下来微调过程仅供参考。 对过程不感兴趣的兄弟们可以直接从第3节开始看。
1.量化方法 重点介绍bitsandbytes、hqq和eetq这三种量化方式它们通过将模型的权重压缩为低精度格式来减少显存占用从而使得可以训练更大的模型或者在有限的显存资源下运行大型模型。
bitsandbytes 专注于权重量化通过将模型权重表示为更低精度的数据类型以减少显存占用和提升训练效率hqq 通常是一种结合了多种量化技术的方法旨在通过多种策略进一步压缩模型的存储需求并保持训练过程的性能。eetq 专注于在训练阶段有效地进行量化以减少显存占用并可能采用某些自适应的量化策略来平衡效率和效果。
1.1 在配置文件中的位置:
model_name_or_path: meta-llama/Meta-Llama-3-8B-Instruct
quantization_bit: 4
quantization_method: bitsandbytes # choices: [bitsandbytes (4/8), hqq (2/3/4/5/6/8), eetq (8)]如上述配置文件所示量化模型方法有bitsandbytes、hqq和eetq三种方式其中bitsandbytes(4/8)是指支持4bit和8bit量化其他两种同理。
2.微调Meta-Llama-3-8B-Instruct
## llama3_lora_sft_otfq.yaml 修改部分
model_name_or_path: models/Meta-Llama-3-8B-Instruct/
quantization_bit: 2
quantization_method: hqq # choices: [bitsandbytes (4/8), hqq (2/3/4/5/6/8), eetq (8)]
trust_remote_code: true
...
### method
...
lora_target: q_proj,v_proj运行训练命令:
llamafactory-cli train examples/train_qlora/llama3_lora_sft_otfq.yaml通过修改lora_target只微调q_proj和v_proj的方式减少显存使用成功运行没有OOM但显存也是几乎全满了与官网对照表还是对不上。
3.微调Llama-2-13b-chat-hf模型
抱着菜就多练不会就问的态度直接在github上问结果还真得到了答复问题地址issue 得到的回复也很简单微调方式有问题。 于是我去官网上去找fsdp qlora的微调方式还真让我找到了 于是我兴致冲冲的去按照官方命令微调:
bash examples/extras/fsdp_qlora/train.sh# train.sh
#CUDA_VISIBLE_DEVICES0,1,2,3,4,5,6,7 accelerate launch \
# --config_file examples/accelerate/fsdp_config.yaml \
# src/train.py examples/extras/fsdp_qlora/llama3_lora_sft.yaml注意 运行之前要修改一下fsdp_config.yaml和llama3_lora_sft.yaml其中fsdp_config.yaml第19行num_processes为你GPU数量llama3_lora_sft.yaml的配置就不赘述。
运行结果显存使用显著下降但是RAM使用量提高如图所示
总结
PyTorch的全切片数据并行技术FSDP能让我们处理更多更大的模型这是微调13b模型成功的关键。fsdp_config.yaml中的FULL_SHARD将模型参数、梯度和优化器状态都切分到不同的GPU上类似ZeRO-3。使用fsdp qlora微调方法微调32B模型依旧OOM后续会继续探索DeepSpeed方式来微调32B模型验证其可行性。