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使微調變得快速高效。