AI News HubLIVE
站内改写

MedQA:在AMD ROCm上微調臨牀AI——無需CUDA

本文詳細介紹瞭如何使用AMD MI300X和ROCm,通過LoRA微調Qwen3-1.7B模型在MedMCQA數據集上構建臨牀問答系統。整個流程無需CUDA,訓練僅需5分鐘,充分證明了HuggingFace生態系統在ROCm上的兼容性。

文章情報

工程師進階

要點

  • 利用AMD MI300X的192GB HBM3顯存,可在fp16精度下直接訓練,無需量化。
  • LoRA微調僅更新約0.14%的參數(220萬),訓練時間約5分鐘。
  • 模型能輸出正確答案及臨牀解釋,支持從HuggingFace Hub直接加載。
  • 面臨的挑戰包括混合精度不穩定和bitsandbytes不兼容,但均通過調整環境變量或切換精度解決。

為甚麼重要

這條新聞值得關注,因為利用AMD MI300X的192GB HBM3顯存,可在fp16精度下直接訓練,無需量化。

技術影響

可能影響模型選型、推理成本、產品能力和評測基準。

醫療問答是一項高風險任務,錯誤回答可能帶來嚴重後果。然而,目前大多數開源醫療AI工作都默認依賴NVIDIA GPU和CUDA。MedQA項目旨在打破這一假設,展示如何在AMD硬件上構建一個高效、可解釋的臨牀問答模型。

該項目使用AMD Instinct MI300X GPU和ROCm軟件棧,對阿里雲的Qwen3-1.7B模型進行LoRA微調。MI300X擁有192GB HBM3顯存,使得在完整的fp16精度下訓練成為可能,無需任何量化技巧。訓練數據來自MedMCQA數據集,該數據集包含印度醫學入學考試(AIIMS、USMLE-style)的多項選擇題,每個問題有四個選項、正確答案索引和可選解釋。項目使用了2000個樣本,整個訓練過程在MI300X上僅需約5分鐘。

微調採用LoRA技術,通過PEFT庫向注意力層注入低秩矩陣。LoRA配置中r=8、lora_alpha=16、lora_dropout=0.05,目標模塊為q_proj和v_proj。僅訓練220萬個參數(佔總數0.14%),大大降低了內存佔用和訓練時間。訓練參數包括fp16混合精度、梯度檢查點、餘弦學習率調度、有效批量大小16等。早期使用bfloat16時遇到NaN損失,切換至fp16後完全解決。

推理時,加載基礎模型並附加LoRA適配器,生成採用貪心解碼(do_sample=False)和重複懲罰。例如,對於問題“高血壓急症的一線治療?”,模型輸出“B) IV labetalol或IV nitroprusside”,並解釋靜脈用藥快速降壓的原因。模型不僅輸出答案,還提供臨牀解釋,增強了實用性。

項目面臨並解決了一些挑戰:GPU未檢測到需要設置環境變量ROCR_VISIBLE_DEVICES、HIP_VISIBLE_DEVICES和HSA_OVERRIDE_GFX_VERSION;bitsandbytes不兼容問題被直接忽略,因為MI300X的192GB顯存無需量化;tokenizer填充配置錯誤導致垃圾輸出,通過設置pad_token=eos_token解決;訓練器評估錯誤源於Transformers版本不匹配,鎖定版本後修復。

結果顯示,訓練參數約220萬,訓練時間5分鐘,數據集大小2000樣本,基線準確率約45%。用户可通過GitHub克隆倉庫、安裝依賴、運行訓練腳本或啓動Gradio UI。未來計劃包括使用完整MedMCQA數據集(18萬問題)、添加置信度評分、集成檢索增強生成(RAG)以及構建評估基準。

MedQA項目證明了在AMD硬件上構建臨牀AI不僅可行,而且簡單。HuggingFace生態在ROCm上運行良好,MI300X的大顯存消除了量化需求,LoRA使微調變得快速高效。