工作內容
我們於謝瑞建副教授的醫療資訊暨遠距醫學實驗室進行專題研究,參與大型語言模型在醫學領域的應用探索。透過定期會議與線上討論,強化了我們對LLM應用的專業知識與實作能力。
(1) 環境建置:建立虛擬環境並使用PyTorch、Transformers等套件。
(2) 遠端操作:透過MobaXterm連接實驗室電腦進行開發。
(3) 資料處理:標準化白血球影像並調整為模型可接受的格式。
(4) 模型微調:使用LoRA進行PEFT訓練,降低記憶體用量並提升效能。
(5) 推論與評估:輸入圖片生成描述並分類,利用混淆矩陣與績效報告評估準確度。
研究方法

實驗模型
(1) LLaMA
LLaMA(Large Language Model Meta AI)由Meta AI提出,是一系列高效的語言模型,採用Transformer解碼器架構,專注於自回歸式語言建模。雖規模較小,但透過架構優化,如預正規化(RMSNorm)、SwiGLU激活函數與RoPE位置編碼,有效提升效能與穩定性,特別適合處理長序列輸入。
(2) LLaMA 3.2 Vision
LLaMA 3.2 Vision為基於LLaMA 3.1擴展的多模態模型,結合視覺編碼器與語言模型,可處理圖文輸入。透過交叉注意力將圖像特徵嵌入語言模型,語言部分保持凍結,確保語言能力穩定。支援128K Token長文本與GQA機制,廣泛應用於圖像描述與視覺問答任務。
(3) Unsloth LLaMA 3.2 Vision 11B
Unsloth版本在LLaMA 3.2 Vision架構上進行優化,提升圖文對齊與多模態表現。視覺模組含32層局部與8層全局整合層,語言模型含40層,其中8層為交叉注意力層。採用LoRA微調與4-bit量化,有效降低資源需求並加快訓練速度。

資料集處理
本研究使用包含48,557張RGB白血球影像的資料集,依細胞類型分為六類:Basophil、Blast Cell、Eosinophil、Lymphocyte、Monocyte、Neutrophil。資料集分為訓練集(45,942張)、驗證集(1,615張)與測試集(1,000張),並進行資料前處理以利模型訓練。
資料前處理包含三部分:
(1) 標準化圖片:將影像統一調整為224×224尺寸並進行標準化處理,使其符合模型輸入格式與預訓練設定,提升穩定性與效能。
(2) 文字描述:為每張影像加入五種風格的文字描述,強化圖文對齊與模型的語境理解能力。
(3) 標籤設定:以數字表示每類細胞(如Basophil為0),作為模型訓練與分類評估依據。

微調 LLaMa3.2 Vision 11B 模型
在微調過程中,我們調整多模態輸入格式,使模型能有效整合影像與文字,提升醫學影像判讀與語意理解能力。使用LLaMA-3.2-11B-Vision-unsloth-bnb-4bit模型進行訓練。
(1) 設備與參數設定
使用RTX 3060 GPU,透過Unsloth載入支援4-bit量化的模型,並設定LoRA參數進行高效微調,降低資源消耗。
(2) 資料處理
載入含圖片路徑、描述與標籤的CSV檔,將資料轉換為圖文對話格式(SFT訓練需求),並清理損壞資料。
(3) 訓練器設定
使用trl套件的SFTTrainer建立訓練器,設定批次大小、Epochs、學習率等,並搭配Unsloth專用資料整理器與混合精度訓練。
(4) 模型訓練
進行前向與反向傳播、損失計算與權重更新,訓練過程中記錄Loss並儲存最佳模型,後續可視覺化Loss曲線以評估收斂情況。

生成描述
我們使用Unsloth的FastVisionModel載入訓練後的模型,並輸入圖片與提示詞,讓模型扮演「白血球影像分類器」,透過內建Chat Template將圖文格式化後產生對應描述。
為評估描述品質,採用SentenceTransformer(All-MiniLM-L6-v2)將生成與人工描述轉為語意向量,並計算餘弦相似度,作為語意一致性的評估指標,用於描述篩選與品質控管。

白血球分類
(1) 建立對應表,將CSV中的數字標籤(0~5)對應至六種白血球類別名稱。
(2) 從生成描述中擷取最早出現的白血球名稱作為預測結果;若無法判斷,預設為Neutrophil(因為其樣本最多)。由於描述常包含類別比較,我們僅取最可能的類別作為預測標籤。
.png)