Hugging Face 5 月 8 日发了一篇 MedQA 项目 walkthrough。
开发者在 AMD Instinct MI300X 上,用 ROCm 6.1、PyTorch 和 Hugging Face 工具链,微调 Qwen/Qwen3-1.7B。任务很具体:回答 MedMCQA 医学选择题,输出答案字母,同时给出医学解释。
这件事容易被读偏。
它不是在宣布一个可靠医疗 AI 诞生了。更准确的看点是:在一个小样本项目里,AMD ROCm 跑通了 Hugging Face 生态下很常见的 LLM 微调流程,而且不需要 CUDA,也没有依赖 bitsandbytes 量化。
这才是工程师会关心的地方。
这次 MedQA 到底做了什么
项目用的数据集是 openlifescienceai/medmcqa。它来自医学考试类选择题,每条样本包含题干、A-D 四个选项、正确答案索引,以及可选解释字段。
但训练规模很小。原文只用了 2000 条训练样本,不是完整 MedMCQA 训练。
基础模型是 Qwen/Qwen3-1.7B。训练方式是 PEFT 的 LoRA,只在 q_proj、v_proj 等注意力模块中注入可训练参数。原文给出的可训练参数约 222 万,占总参数约 0.15%。
在 MI300X 上,这次训练大约 5 分钟。
| 项目 | 原文配置 | 现实判断 |
|---|---|---|
| 基础模型 | Qwen/Qwen3-1.7B | 小模型微调演示,便宜快,但能力上限有限 |
| 数据 | MedMCQA 2000 条样本 | 只能说明流程可跑,不能代表完整医学评测 |
| 方法 | LoRA,约 222 万可训练参数 | 适合快速适配,不等于注入完整医学知识 |
| 输出 | 答案字母 + 医学解释 | 演示效果更完整,但解释不自动等于可靠 |
| 产物 | HF 模型、Spaces Demo、GitHub 仓库 | 对开发者有复现价值,不只是截图展示 |
这里有个细节值得留意:输出不只是一枚选项字母,还包含解释。
对 Demo 来说,这会更像一个问答系统。对医疗场景来说,这也更危险。因为解释写得顺,不代表解释对。医学问答最怕的不是“不知道”,而是一本正经地错。
所以,MedQA 更像一次工程验证,不是一次临床验证。
ROCm 的进展在于常规工具链能跑
过去几年,开源大模型微调的默认路线基本围着 NVIDIA CUDA 转。
很多开发者写训练脚本时,默认会碰到 CUDA、bitsandbytes、FlashAttention、各类 4-bit 或 8-bit 量化。生态先支持 NVIDIA,再考虑其他硬件,这是很现实的路径依赖。
AMD 要进入 AI 训练主流工作流,难点不只是芯片参数。软件栈能不能少折腾,才是开发者会不会留下来的关键。
这次项目给出的信号是:至少在 Qwen3-1.7B + LoRA + Hugging Face 常规组件这条路上,ROCm 已经能跑通。
| 训练路线 | 常见 CUDA 路线 | 这次 ROCm 路线 |
|---|---|---|
| 硬件依赖 | NVIDIA GPU | AMD Instinct MI300X |
| 软件底座 | CUDA + PyTorch | ROCm 6.1 + PyTorch |
| HF 组件 | Transformers / PEFT / TRL / Accelerate | 同样使用这些组件 |
| 量化依赖 | 常见 bitsandbytes 4-bit/8-bit | 未使用 bitsandbytes |
| 关键约束 | CUDA 生态成熟,但硬件绑定强 | 可绕开 CUDA,但仍有兼容性问题 |
MI300X 的 192GB HBM3 很关键。
这个显存容量让 Qwen3-1.7B 的 LoRA 训练可以直接用 fp16 跑,不必为了省显存上 4-bit 或 8-bit 量化。这样也绕开了 bitsandbytes 在 ROCm 上不支持的问题。
对工程团队来说,这不是一个小差别。
少一个量化依赖,就少一类环境排查、算子兼容和精度问题。训练能不能跑起来,很多时候就卡在这些地方。
但这条结论不能放大。
MI300X 是数据中心级 GPU,不能把它的显存优势泛化到所有 AMD GPU。原文也没有说 ROCm 对所有模型、所有库都已经顺滑。
它还列出了具体坑:bf16 曾出现 NaN loss,需要改用 fp16;GPU 检测依赖 ROCR_VISIBLE_DEVICES、HIP_VISIBLE_DEVICES、HSA_OVERRIDE_GFX_VERSION 等环境变量;Transformers 版本也需要放在合适范围。
这是一条已经能走的路。
还不是一条不用看路的路。
谁该因此调整判断
最该看这篇 walkthrough 的,不是医疗产品团队。
医疗团队当然可以参考任务形式,比如选择题、答案、解释如何组织。但这次项目没有临床验证,也没有完整 held-out accuracy benchmark。原文提到 baseline MedMCQA accuracy 约 45%,也不能当作充分训练后的医学能力证明。
真正受影响的是两类人。
一类是已经采购或正在评估 MI300X 的 AI 工程团队。对他们来说,这篇文章提供了一个现实动作:可以拿 Hugging Face 这套常规微调链路做内部 smoke test,而不是只看硬件参数表。
另一类是做小模型 LoRA 微调、又不想把训练栈完全绑在 NVIDIA 上的开发者。他们可以更早把 ROCm 纳入实验矩阵,但不宜直接迁移生产训练。
更现实的做法是分三步:先复现这类小模型 LoRA;再换成自己的数据和评测集;最后再看更大模型、更复杂训练库和更长任务是否稳定。
接下来要观察的变量也很具体。
| 观察点 | 为什么重要 | 现在能下的判断 |
|---|---|---|
| 完整 MedMCQA 训练效果 | 2000 条样本太小,无法代表医学问答能力 | 目前看不清 |
| 更大模型训练稳定性 | 小模型 LoRA 跑通,不等于大模型训练稳定 | 需要单独验证 |
| ROCm 对复杂库的兼容 | 真实训练常会叠加量化、加速、分布式组件 | 不能假设全无痛 |
| 医疗可信度机制 | 医学问答需要评测、校准、RAG 或人工审查 | Demo 解释不能替代验证 |
这也是我更在意的分界线。
如果只看医学问答,MedQA 还只是一个样例。如果看非 CUDA 训练栈,它至少表明:Hugging Face 主流工具链和 AMD ROCm 之间,已经不再只是“理论上能适配”。
但信任不是靠一篇 walkthrough 建起来的。
开发者最终看的是迁移成本、报错密度、训练稳定性和复现难度。能跑通是第一步。能少折腾,才是真进展。
