square-up-rightUnsloth AMD PyTorch 合成数据黑客松

在 AMD GPU 上运行 Unsloth 的技巧与窍门、故障排除和指南。

一旦你获得对 MI300 机器的访问权限,你将看到 Jupyter Notebook 界面:

首先,更新 Unsloth 并确认一切按预期工作 - 点击 终端

然后在 终端 中运行下面命令以更新 Unsloth - 确保版本为 2025.10.5 或更高。

要新建 Notebook 或 终端,点击加号(PLUS)按钮

circle-check

🦋教程 1:确认 Unsloth 是否可用

在一个新的笔记本中确认我们简单的 Llama 3.2 1B / 3B 对话笔记本按预期运行 终端.

你应该看到下面内容(将花费约 2 分钟)。如果出现任何错误,先尝试通过下面命令更新 Unsloth

🦥教程 2:运行合成数据生成

circle-check

现在让我们尝试下面的示例 https://github.com/edamamez/Unsloth-AMD-Fine-Tuning-Synthetic-Dataarrow-up-right 以及 https://www.amd.com/en/developer/resources/technical-articles/2025/10x-model-fine-tuning-using-synthetic-data-with-unsloth.htmlarrow-up-right

首先再次新建一个 终端 加号(PLUS)按钮会打开一个新的 终端.

在新的终端中运行 vLLM 来加载 Llama 3.3 70B Instruct 终端 (使用加号按钮新开一个终端)

你将看到:

等待直到看到 INFO: Application startup complete. 然后点击加号按钮打开一个新标签页

安装 synthetic-data-kit https://github.com/meta-llama/synthetic-data-kitarrow-up-right 在一个新的 终端 窗口中。

获取 config.yaml 可以从 https://raw.githubusercontent.com/edamamez/Unsloth-AMD-Fine-Tuning-Synthetic-Data/refs/heads/main/config.yamlarrow-up-right,或如下:

file-download
7KB

通过以下命令检查 synthetic data kit 是否工作。如果看到错误,请确认 vLLM 在第一个单元中正在运行。

现在,获取一些我们将用于处理的文件:

现在让我们导入数据并进行处理:

现在,创建 Q&A(问答对)或 CoT(思路链)对(可能需要 3 分钟)

现在让我们请 LLM 对数据进行整理,并让 LLM 作为裁判删除不太合适的合成数据行,然后保存输出 - 可能需要 3 分钟

再次提醒, 关闭 vLLM 服务以释放 VRAM!!!返回到之前的标签页,并 CTRL+C 3 次。或参见 Unsloth AMD PyTorch 合成数据黑客松

现在获取我们将在下面运行的笔记本,地址为 https://github.com/unslothai/notebooks/blob/main/nb/Synthetic_Data_Hackathon.ipynbarrow-up-right:

circle-info

如果出现内存不足(Out of Memory)错误,关闭你的 vLLM 实例 - 参见 Unsloth AMD PyTorch 合成数据黑客松

点击左侧文件夹按钮并打开 "Synthetic_Data_Hackathon.ipynb"(双击)

然后运行全部单元!

你将在笔记本中间看到:

参见 https://github.com/edamamez/Unsloth-AMD-Fine-Tuning-Synthetic-Data/blob/main/tutorial.ipynbarrow-up-right 以获取更多细节

🐬教程 3:GPT-OSS 强化学习自动内核创建

你可以将其作为笔记本运行,也可以通过 Python 脚本运行!

Python 脚本: https://github.com/unslothai/notebooks/blob/main/python_scripts/gpt_oss_(20B)_GRPO_BF16.pyarrow-up-right

笔记本: https://github.com/unslothai/notebooks/blob/main/nb/gpt_oss_(20B)_GRPO_BF16.ipynbarrow-up-right

然后像教程 2 一样,打开文件 "Auto_Kernels_RL.ipynb",重启并运行全部单元!

如果运行并向下滚动,你会看到通过强化学习自动生成策略运行 2048 游戏:

♦️教程 4:GPT-OSS 强化学习 2048 游戏

你可以将其作为笔记本运行,也可以通过 Python 脚本运行!

Python 脚本: https://github.com/unslothai/notebooks/blob/main/python_scripts/gpt_oss_(20B)_GRPO_BF16.pyarrow-up-right

笔记本: https://github.com/unslothai/notebooks/blob/main/nb/gpt_oss_(20B)_Reinforcement_Learning_2048_Game_BF16.ipynbarrow-up-right

然后像教程 3 一样,打开文件 "Auto_Kernels_RL.ipynb",重启并运行全部单元!

当你向下滚动时,你将看到强化学习算法自动创建获胜 2048 的策略!

🌻在 AMD 上运行 vLLM 的最佳命令

要在 AMD GPU 上服务模型,请使用以下命令以提升性能。确认已安装 aiter 和 flash-attention 或参见 Unsloth AMD PyTorch 合成数据黑客松

对于 MI300X、MI325X 和 Radeon GPU:

对于 MI355X,执行以下操作:

🛠️故障排除与常见问题

🆓如何释放 AMD GPU 内存?

如果你在 Docker 镜像(如本次黑客松)中,请在新的终端中运行下面命令 终端 rocm-smi -d 0 --showpids 如果在本地机器上

如果在本地机器,只需执行 rocm-smi -d 0 --showpids 并运行 sudo kill -9 XXXX 其中 XXXX 是列出的 PID,即使用最多 VRAM 的特定进程的 PID。

对于像黑客松中使用的 Docker 镜像,在运行第一个单元后,你可能会看到如下内容:

然后查找正在使用 VRAM 的进程(例如 vLLM),并输入 sudo kill -9 XXXX 其中 XXXX 是左侧列中列出的 PID,如下所示:

通过以下命令确认所有 GPU 内存已被释放 rocm-smi -d 0 --showpids 例如下面显示为 0 内存使用:

另一方面,如果你看到下面内容,则重新运行第一个 Docker 单元以再次终止该进程。

📝torch.OutOfMemoryError: HIP out of memory RuntimeError: Engine process failed to start.

请参见 Unsloth AMD PyTorch 合成数据黑客松 以检查你的 GPU 是否被其他进程占用内存,并尝试删除占用内存的进程。

也可尝试 amd-smi process --gpu 0 以列出所有进程以及所有使用 GPU 的进程的 VRAM 使用情况:

▶️未检测到 vLLM 平台,正在升级 vLLM,在 vLLM 上的 gpt-oss

如果你正在运行 vllm serve Unsloth/gpt-oss-20b 你可能在使用旧版本的 vLLM。 python -c "import vllm; print(vllm.__version__)" 以获取 vLLM 版本。

在预构建的黑客松 docker 中,你会得到 0.7.4 ,不幸的是这不支持像 GPT-OSS 这样的新模型,然而其他模型(例如)可以工作 vllm serve Unsloth/Llama-3.3-70B-Instruct --port 8001 --max-model-len 48000 --gpu-memory-utilization 0.85

🧁在 AMD 上将 vLLM 更新到最新版本

circle-exclamation

要获取最新的 vLLM,请参见 https://docs.vllm.ai/en/latest/getting_started/installation/gpu.html#install-specific-revisionsarrow-up-right,具体在清除所有使用 AMD GPU 的进程后运行下面命令(参见上述说明) Unsloth AMD PyTorch 合成数据黑客松

执行上述操作将会生效(提醒先关闭所有使用 GPU 的进程!参见说明) Unsloth AMD PyTorch 合成数据黑客松)

chevron-right(可选 可折叠代码)构建 Flash Attention 通过(这将花费 30 分钟到 1 小时)因此如果你不想等待 30 分钟到 1 小时,这是可选的! 我通常会跳过此过程。 如果你想安装 Flash Attention,请展开此单元。hashtag

你将看到:

要监控 Flash-Attention 的进度(可能非常耗时),请观察 [296/2206] 的进度。

(非可选) 然后构建 aiter ROCm 的 AI 张量引擎arrow-up-right (这将花费约 5 分钟)

(非可选) 然后构建 vLLM:

你将看到如下(请等待 5 到 10 分钟!)

通过以下命令确认 vLLM、torch 已更新:

应该显示 vLLM 为 0.11.0 或更高,并且截至 2025 年 10 月,torch 必须是 2.8.0。输入 vllm 以确认 vLLM 按预期工作。

📖在 vLLM 中运行 unsloth/gpt-oss-20b

circle-exclamation

在通过以下方式更新 vLLM 之后 Unsloth AMD PyTorch 合成数据黑客松,你可以运行 gpt-oss-20barrow-up-right!参见 Unsloth AMD PyTorch 合成数据黑客松 以获取在 AMD GPU 上运行 vllm 的更优命令(你可能会获得更快的推理速度!)

⁉️RuntimeError: 用户指定了不支持的 autocast device_type 'hip'

请更新 Unsloth! 见下文 Unsloth AMD PyTorch 合成数据黑客松

🐛NotImplementedError: Unsloth 当前正常

🆕更新 Unsloth

首先,更新 Unsloth 并确认一切按预期工作 - 点击 终端

然后在 终端 以更新 Unsloth - 确保版本为 2025.10.5 或更高。

你还必须重启运行时

⁉️在抛出 'std::logic_error' 实例后调用了 terminate,what()

请确认你使用的是 torch==2.8.0。重新运行下面命令:

系统尚未启动,无法连接到总线

你可能会看到下面内容:

请给我们留言以便我们重启机器!

🐛未找到已配置的 ROCm 二进制 - get_native_library()

这表示 bitsandbytes 未正确安装,如下所示:

请参见 Unsloth AMD PyTorch 合成数据黑客松以更新 bitsandbytes 和 Unsloth!

NotImplementedError: 无法从 meta tensor 复制出数据;没有数据!

这意味着你已耗尽内存。请参见 Unsloth AMD PyTorch 合成数据黑客松 以释放 GPU 内存。

💭导入 vllm._C 失败,错误为 ModuleNotFoundError("No module named 'vllm._C'")

请重新安装 vLLM。使用 vllm_build 作为你 git clone 的文件夹,而不是 vllm. Unsloth AMD PyTorch 合成数据黑客松

😯ModuleNotFoundError: No module named 'vllm'

请不要 rm -rf vllm_build 你构建的文件夹。或通过以下方式重新安装 vllm: Unsloth AMD PyTorch 合成数据黑客松

📒ipykernel>6.30.1 会破坏进度条。

如果你看到下面内容:

目前可忽略它 - 只是你将看不到下载模型和上传时的进度条。

🐛AssertionError: 没有 MXFP4 MoE 后端

如果你在 vLLM 中运行 gpt-oss-20b 并在此期间看到该错误,请通过以下方式重新安装 vLLM: Unsloth AMD PyTorch 合成数据黑客松

🤕NotImplementedError: 无法运行 `aten::empty_strided`

请使用 .to("cuda") 而不是 .to("hip") 同时更新 Unsloth Unsloth AMD PyTorch 合成数据黑客松

🐛NotImplementedError: 无法运行 'aten::empty.memory_format'

请参见 Unsloth AMD PyTorch 合成数据黑客松以更新 bitsandbytes 和 Unsloth!

最后更新于

这有帮助吗?