AMD 显卡跑大模型,HIPify 加 LLaMA-Factory 环境搭建实录
告别 CUDA 焦虑:AMD 显卡大模型微调实战
手里拿着 AMD 显卡,想跑大模型却对着满网的"CUDA 教程”发愁?这大概是很多 A 卡用户最真实的痛点。NVIDIA 的生态确实成熟,但 AMD 的 ROCm(Radeon Open Compute)平台早已不是当年的“吴下阿蒙”。它不仅仅是一个替代品,更是一个基于 Linux 的开放计算田野。对于开发者而言,最大的障碍往往不是硬件性能,而是代码迁移和环境配置的“劝退感”。难道要把写好的 CUDA 代码全部重写?当然不用。今天我们就来聊聊如何利用 HIPify 工具实现自动化迁移,并手把手在 Linux 环境下搭建 LLaMA-Factory,让你的 AMD 显卡真正跑起来。
HIPify:让 CUDA 代码“一键”变身
很多新手听到“迁移”就头大,想象着要手动修改成千上万行代码。其实,AMD 官方提供的 HIPify 工具链就是为了解决这个机械性工作而生的。
HIP(Heterogeneous-compute Interface for Portability)可以理解为"CUDA 的孪生兄弟”,它的 API 设计与 CUDA 高度一致。绝大多数情况下,只需要把代码里的 cuda 前缀替换成 hip(例如 cudaMalloc 变为 hipMalloc,头文件 <cuda_runtime.h> 变为 <hip/hip_runtime.h>),程序就能在 AMD 显卡上编译运行。
HIPify 本质上是一个脚本工具(支持 Perl 或 Clang 版本),能自动扫描源代码目录,完成这种查找与替换。比如你有一个标准的 vector_add.cu 文件,在终端只需运行:
hipify-clang vector_add.cu -o vector_add_hip.cpp
生成的文件会自动适配 HIP 语法。虽然在大模型项目中,除了基础语法迁移,还可能涉及到底层算子库(如 cuBLAS 转 rocBLAS)的微调,但对于像 LLaMA-Factory 这样已经对 ROCm 有良好支持的框架,我们甚至不需要手动运行 HIPify,框架底层已经帮我们做好了这些适配。我们要做的,是把环境铺平。
从零搭建:ROCm 环境与 Conda 隔离
实战开始前,请确保你的系统是 Linux(推荐 Ubuntu 22.04 或更高版本)。ROCm 对 Windows 的支持尚不完善,强行为之只会徒增烦恼。安装好 AMD 显卡驱动和 ROCm Toolkit(建议版本 5.6 或 6.0+)后,先验证安装是否成功:
rocm-smi
如果能看到显卡列表,说明驱动正常。接下来是 Python 环境的配置。切记:不要直接在系统 Python 里装包! 依赖冲突是环境搭建失败的头号杀手,使用 Conda 进行隔离是最佳实践。
首先创建并激活一个专属环境:
conda create -n llama-rocm python=3.10 -y
conda activate llama-rocm
接下来是最关键的依赖安装步骤。普通的 pip install torch 会默认拉取 NVIDIA 版本,必须显式指定 ROCm 源。以下是一份经过验证的稳定配置(以 ROCm 5.6/6.0 为例,具体版本号需根据你的驱动调整):
# 安装 PyTorch ROCm 版本
pip install torch==2.1.2+rocm5.6 torchvision==0.16.2+rocm5.6 torchaudio==2.1.2+rocm5.6 --extra-index-url https://download.pytorch.org/whl/rocm5.6
# 安装 LLaMA-Factory 核心依赖
pip install transformers>=4.37.0 datasets>=2.14.0 accelerate>=0.25.0 peft>=0.8.0 scipy einops sentencepiece protobuf gradio
这里有个常见的“坑”:bitsandbytes。如果你在安装它时报错,大概率是因为该库尚未完美支持你的 ROCm 版本。对于初次尝试的朋友,建议直接跳过 4-bit 量化,使用 16-bit 全参数或 LoRA 微调,稳定性会高很多,显存占用也在可接受范围内。
启动 WebUI 与 LoRA 微调实操
依赖安装完毕后,我们从 GitHub 拉取 LLaMA-Factory 的最新代码:
git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
pip install -e .
为了告诉框架我们使用的是 AMD 卡,需要设置环境变量(虽然 PyTorch 内部为了兼容生态依然识别为 ‘cuda’,但显式声明有助于某些底层库加载正确的后端):
export USE_ROCM=1
python src/webui.py
此时,浏览器打开 http://localhost:7860,你应该能看到熟悉的 WebUI 界面。如果能看到界面,恭喜你,最难的环节已经过去了。
接下来进行第一个微调任务测试:
- 模型路径:填入你下载的本地小模型路径,推荐使用
Qwen/Qwen-1.8B-Chat或Llama-3-8B进行测试,小模型容错率高,适合验证环境。 - 数据集:选择内置的
alpaca_gpt4_zh,无需额外准备数据。 - 微调方法:务必选择 LoRA。这是显存占用最低的方案,单张消费级显卡也能轻松运行。
- 启动训练:点击“开始训练”。
观察控制台输出,如果没有报 HIP error、malloc failed 或 kernel launch configuration invalid 等错误,且能看到 loss 数值逐渐下降,那就说明你的 AMD 深度学习环境已经彻底跑通了。
避坑指南与心得
在整个过程中,最容易出问题的地方往往是版本匹配。ROCm 版本、PyTorch 版本以及显卡驱动版本必须严格对应。如果遇到编译报错,先检查日志中是否指向了错误的 CUDA 目录,或者链接器是否找到了旧版的库文件。此外,保持耐心很重要,开源生态的迭代速度很快,遇到特定报错时,查阅项目的 Issues 列表往往能找到现成的解决方案。
从 CUDA 到 ROCm,不仅仅是换个显卡,更是拥抱更多样的算力选择。通过 HIPify 这样的工具和大模型框架的逐步适配,AMD 显卡的高性价比优势正在被释放。一旦环境就绪,你会发现,跑大模型并没有想象中那么神秘。
200小时GPU算力已就位,快来领取:https://marketing.csdn.net/questions/Q2604140858304426315?utm_source=AIpaper
更多推荐

所有评论(0)