LLaMA-Factory 微调实录,AMD 显卡上的 LoRA 训练流程
为什么选择 AMD 显卡做微调?
对于个人开发者或小团队来说,大模型微调最大的拦路虎往往不是算法,而是算力成本。在 NVIDIA 显卡价格居高不下且显存昂贵的当下,AMD GPU 凭借极高的性价比成为了一个极具吸引力的替代方案。特别是随着 ROCm 生态的成熟,像 LLaMA-Factory 这样的主流微调框架已经能够很好地支持 AMD 后端。
最近我手头正好有一批 AMD 显卡资源,便尝试着走通了全套 LoRA 微调流程。整个过程并非一帆风顺,但也确实验证了“低成本高性能”的可行性。如果你也想用更少的预算跑通自己的垂直领域模型,这篇实录或许能帮你避开不少坑。
核心配置:让 LLaMA-Factory 识别 ROCm
要让 LLaMA-Factory 在 AMD 环境下跑起来,最关键的一步是正确配置后端。很多新手容易直接照搬 NVIDIA 的教程,结果报错连连。其实只要改对几个关键参数,框架就能自动调用 HIP 运行时。
首先,确保你的基础环境已经安装了支持 ROCm 版本的 PyTorch。在启动训练脚本时,不需要修改源码,只需通过配置文件或命令行参数指定后端即可。我使用的 train_script.sh 核心参数如下:
export CUDA_VISIBLE_DEVICES=0 # 在 ROCm 中通常兼容此变量,也可用 HIP_VISIBLE_DEVICES
export PYTORCH_ROCM_ARCH=gfx942 # 根据你的显卡架构调整,MI300X 为 gfx942
python src/train.py \
--stage sft \
--model_name_or_path meta-llama/Llama-3-8B-Instruct \
--do_train \
--finetuning_type lora \
--lora_target q_proj,v_proj \
--dataset my_custom_data \
--template llama3 \
--backend pt \
--compute_dtype bfloat16 \
--output_dir ./saves/llama3-lora-rocm
这里有两个细节值得注意:
- 架构标识:
PYTORCH_ROCM_ARCH必须与你实际的显卡型号匹配。如果是消费级的 RX 7900,可能需要设置为gfx1100,而数据中心卡如 MI250 则是gfx90a。填错会导致编译失败或非法指令错误。 - 后端选择:虽然 DeepSpeed 也支持 ROCm,但在初步验证阶段,使用原生的
pt(PyTorch Native) 后端往往更稳定,依赖冲突更少。
避坑实录:从梯度爆炸到 BF16 的稳定收敛
配置搞定后,真正的挑战才开始。我第一次尝试使用默认的 fp16 精度进行训练时,损失值(Loss)在第一步就直接炸到了 NaN。检查显存占用发现,虽然显存没爆,但数值稳定性极差。
这是 AMD 显卡在早期 ROCm 版本中常见的问题,部分算子在 FP16 下的溢出保护不如 NVIDIA 完善。解决办法非常直接:切换至 BF16。
将配置文件中的 --compute_dtype 改为 bfloat16,并确保模型权重加载时也启用 BF16 支持。修改后的训练过程立刻变得平稳。下图是我记录的 Loss 下降曲线对比(示意):
- FP16 模式:Step 1 Loss = NaN,训练终止。
- BF16 模式:Step 1 Loss = 2.45 -> Step 100 Loss = 0.89,曲线平滑下降。
在显存占用方面,8B 模型开启 LoRA 后,单卡显存占用稳定在 14GB 左右,留出了充足的余量用于增大 batch_size。这让我意识到,有时候并不是硬件不行,而是精度策略没选对。AMD 的 BF16 算力释放非常充分,一旦跨过这个门槛,训练效率完全不输同价位的 N 卡。
实战心得与算力福利
经过几轮迭代,我在 AMD 平台上成功微调出了符合预期的垂直领域模型。整个过程中,LLaMA-Factory 的模块化设计帮了大忙,它屏蔽了底层通信库(RCCL)的复杂性,让我们能专注于数据和质量。
对于预算有限的团队,AMD 方案不仅意味着硬件采购成本的降低,更意味着在同等预算下能拥有更大的显存池,从而微调更大参数的模型。当然,生态的完善离不开社区的共建,遇到报错时,多去 Github 上提 Issue 或查阅相关项目(如 SGLang、TileLang 的 ROCm 分支),往往能找到意想不到的解决方案。
如果你也想亲自上手体验,但暂时缺乏合适的硬件环境,现在有个不错的机会。200 小时 GPU 算力已就位,快来领取:https://i-blog.csdnimg.cn/20230724024159.png?be=1&origin_url=https://marketing.csdn.net/questions/Q2604140858304426315?utm_source=AIpaper

更多推荐


所有评论(0)