使用 Unsloth 指南在 AMD GPU 上微调 LLM
了解如何使用 Unsloth 在 AMD GPU 上微调大型语言模型(LLM)。
在 AMD 硬件上微调 LLM 的速度最高可提升 2 倍,内存占用减少约 70%,无需 NVIDIA。Unsloth 支持 Windows 和 Linux 上的 AMD Radeon RDNA 3/3.5/4(RX 6000–9000 系列),以及包括 MI300X(192GB)在内的数据中心 GPU。
一行安装程序
在 AMD 上安装 Unsloth,最简单的方法是下载我们的 桌面应用.
Linux:
curl -fsSL https://unsloth.ai/install.sh | shWindows(PowerShell):
irm https://unsloth.ai/install.ps1 | iex下面的手动步骤适用于希望在 AMD 上安装 Unsloth Python 库及其所需依赖的用户。
创建新的隔离环境(可选)
下面的步骤适用于 Linux。在 Windows 上,请使用上面的桌面应用或 PowerShell 安装程序:它们会为你安装 AMD 的 Windows 版 PyTorch。
为了不破坏任何系统包,请创建一个隔离环境。提醒一下,请检查你的 Python 版本!它可能是 python3, python3.12, python3.13 等。Python 3.10 到 3.13 均可。
apt update && apt install python3.13-venv -y
python3.13 -m venv unsloth_env
source unsloth_env/bin/activate
pip install uv安装 PyTorch
PyPI 只有 NVIDIA(CUDA)版的 PyTorch,因此请先从与你的 ROCm 版本匹配的 PyTorch 索引安装 ROCm 版本。通过以下命令检查: amd-smi version ( ROCm 版本: 这一行),然后:
uv pip install "torch<2.15" torchvision torchaudio \
--index-url https://download.pytorch.org/whl/rocm7.2 --upgrade --force-reinstall将 rocm7.2 替换为你的 ROCm 版本。可用的索引标签有 rocm6.0 改为 rocm6.4 和 rocm7.0 改为 rocm7.2。ROCm 6.5 到 6.9 使用 rocm6.4,而 ROCm 7.3 或更新版本使用 rocm7.2。需要 ROCm 6.0 或更高版本。
或者让此命令为你自动选择标签:
ROCM_VER="$(amd-smi version 2>/dev/null | sed -n 's/.*ROCm version: \([0-9]*\.[0-9]*\).*/\1/p' | head -n 1)"
[ -n "$ROCM_VER" ] || ROCM_VER="$(cut -d. -f1,2 /opt/rocm/.info/version 2>/dev/null)"
case "$ROCM_VER" in
6.[0-4]|7.[0-2]) ROCM_TAG="rocm$ROCM_VER" ;;
6.*) ROCM_TAG="rocm6.4" ;;
*) ROCM_TAG="rocm7.2" ;;
esac
echo "ROCm ${ROCM_VER:-unknown}: using $ROCM_TAG"
uv pip install "torch<2.15" torchvision torchaudio \
--index-url "https://download.pytorch.org/whl/$ROCM_TAG" --upgrade --force-reinstall
安装 Unsloth
PyPI 上的 Unsloth 依赖于 torch,因此普通安装可能会把你刚安装的 ROCm 版 PyTorch 替换为 PyPI 上的 CUDA 版。为防止这种情况,请锁定你已安装的 PyTorch,并使用 uv pip (而不是直接使用 pip):
uv pip freeze | grep -E '^(torch|torchvision|torchaudio)==' > torch-pins.txt
echo "triton ; sys_platform == 'never'" >> torch-pins.txt
echo "xformers ; sys_platform == 'never'" >> torch-pins.txt
uv pip install "unsloth[amd]" --overrides torch-pins.txttorch-pins.txt 应列出一行 torch==...+rocm... 。最后两行可防止 PyPI 的 triton 安装到随 PyTorch 一起提供的 Triton 之上,并跳过 PyPI 的 xformers,它仅为 NVIDIA GPU 构建。

更新 Unsloth
仅升级 Unsloth,并使用相同的锁定:
uv pip install --upgrade-package unsloth --upgrade-package unsloth-zoo "unsloth[amd]" --overrides torch-pins.txt不要运行 uv pip install -U unsloth 或 --force-reinstall 而不使用这些锁定:两者都会再次从 PyPI 解析 PyTorch,并用 CUDA 版本替换你的 ROCm 版本。如果这已经发生, import unsloth 报告检测到 AMD GPU 但没有可用的 HIP 加速器:请重新运行上面的 PyTorch 步骤,然后再运行这一步。
开始使用 Unsloth 进行微调!
就这样。请在我们的 Unsloth Notebooks 页面中试试一些示例!
你可以查看我们专门的 微调 或 强化学习 指南。下面还有一个简短示例:
1. 设置环境变量
export HF_HUB_DISABLE_XET=1 # 解决 AMD 上的 HuggingFace 下载问题2. 加载并配置模型
from unsloth import FastModel
model, tokenizer = FastModel.from_pretrained(
model_name = "unsloth/gemma-4-26b-a4b-it",
max_seq_length = 2048,
load_in_4bit = True,
)
model = FastModel.get_peft_model(
model,
r = 16,
lora_alpha = 16,
target_modules = ["q_proj", "k_proj", "v_proj", "o_proj"],
)3. 训练
from trl import SFTTrainer, SFTConfig
trainer = SFTTrainer(
model = model,
tokenizer = tokenizer,
train_dataset = dataset,
formatting_func = formatting_func,
args = SFTConfig(
per_device_train_batch_size = 1,
gradient_accumulation_steps = 4,
max_steps = 60,
output_dir = "outputs",
report_to = "none",
),
)
trainer_stats = trainer.train()
注意: 默认情况下,AMD GPU 上未安装 Flash Attention 2,因此 Unsloth 改为使用 PyTorch 内置的 SDPA attention。该警告可以安全忽略。
🔢 在 AMD GPU 上进行强化学习
你可以使用我们的 📒gpt-oss RL 自动赢 2048 示例,在 MI300X(192GB)GPU 上运行。目标是自动玩 2048 游戏,并通过 RL 获胜。LLM(gpt-oss 20b)会自动设计赢得 2048 游戏的策略,我们对获胜策略给予高奖励,对失败策略给予低奖励。

大约在 300 步左右后,随时间变化的奖励开始上升!
RL 的目标是最大化平均奖励,以赢得 2048 游戏。

我们使用一台 AMD MI300X 机器(192GB)通过 Unsloth 运行了 2048 RL 示例,效果很好!


你也可以使用我们的 📒自动内核生成 RL 笔记本 同样使用 gpt-oss,在 Python 中自动创建矩阵乘法内核。该笔记本还设计了多种方法来对抗奖励黑客。
我们用于自动创建这些内核的提示词是:
例如,RL 过程会学习如何在 Python 内部应用 Strassen 算法来加速矩阵乘法。

📚AMD 免费一键笔记本
AMD 提供配备以下内容的一键笔记本: 免费的 192GB 显存 MI300X GPU 通过其 Dev Cloud。完全免费训练大模型(无需注册或信用卡):
GPT OSS MXFP4(20B) - 推理
Gemma4(E2B) - RL 数独
Unsloth Studio
你可以通过在前面添加以下内容来使用任何 Unsloth 笔记本: https://amd-ai-academy.com/github/unslothai/notebooks/blob/main/nb 在 Unsloth 笔记本 通过将链接从 https://github.com/unslothai/notebooks/blob/main/nb/AMD-gpt_oss_(20B)_Reinforcement_Learning_2048_Game_BF16.ipynb 改为 https://amd-ai-academy.com/github/unslothai/notebooks/blob/main/nb/AMD-Gemma4_(E2B)_Reinforcement_Learning_Sudoku_Game.ipynb


最后更新于
这有帮助吗?

