🚀 🩺 醫療診斷AI模型 - 由Mistral-7B與LoRA驅動
本模型藉助強大的Mistral-7B語言模型,結合LoRA微調技術,在醫療診斷領域表現出色。它能準確診斷多種症狀,提供詳細的醫療推理,且有效降低了VRAM使用量,為醫療專業人員提供可靠的決策支持。
🚀 快速開始
使用以下代碼開始使用該模型:
!pip install -q -U bitsandbytes
!pip install -q -U peft
!pip install -q -U trl
!pip install -q -U tensorboardX
!pip install -q wandb
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained("ritvik77/Medical_Doctor_AI_LoRA-Mistral-7B-Instruct_FullModel")
tokenizer = AutoTokenizer.from_pretrained("ritvik77/Medical_Doctor_AI_LoRA-Mistral-7B-Instruct_FullModel")
prompt = "患者報告胸痛、頭暈並伴有鼻出血,可能的診斷是癌症嗎?"
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=300)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
另一個Python代碼示例
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained("ritvik77/Medical_Doctor_AI_LoRA-Mistral-7B-Instruct_FullModel")
tokenizer = AutoTokenizer.from_pretrained("ritvik77/Medical_Doctor_AI_LoRA-Mistral-7B-Instruct")
prompt = "患者報告胸痛和頭暈。可能的診斷是什麼?"
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=300)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
✨ 主要特性
- 準確診斷:能夠對胸痛、頭暈、呼吸急促等症狀進行準確診斷。
- 逐步推理:使用思維鏈(CoT)提示進行逐步醫療推理。
- 高效推理:減少了VRAM使用量,適合內存有限的GPU。
📦 安裝指南
!pip install -q -U bitsandbytes
!pip install -q -U peft
!pip install -q -U trl
!pip install -q -U tensorboardX
!pip install -q wandb
📚 詳細文檔
模型詳情
- 基礎模型:Mistral-7B(77億參數)
- 微調方法:LoRA(低秩自適應)
- 量化:bnb_4bit(在保持性能的同時減少內存佔用)
參數詳情
- 原始Mistral-7B參數:77億
- LoRA微調參數:約佔總模型參數的4.48%(約3.4億)
- 最終合併模型大小(bnb_4bit量化):約4.5GB
模型描述
本模型利用了強大的Mistral-7B語言模型,該模型以其強大的推理能力和深入的語言理解而聞名。通過LoRA微調,該模型在醫療特定任務中表現出色,例如:
- 症狀診斷:根據胸痛、頭暈和呼吸急促等症狀診斷病情。
- 推理提供:使用思維鏈(CoT)提示提供詳細的逐步醫療推理。
- 答案生成:生成自信、有證據支持的答案,提高了準確性。
模型信息
- 開發者:[Ritvik Gaur]
- 模型類型:[醫療大語言模型]
- 許可證:Apache-2.0
- 微調基礎模型:[Mistral-7B-Instruct-v3]
訓練詳情
訓練數據
使用了FreedomIntelligence/medical-o1-reasoning-SFT數據集。
訓練過程
訓練超參數
參數 |
值 |
描述 |
基礎模型 |
mistralai/Mistral-7B-Instruct |
因其強大的推理能力而被選中。 |
微調框架 |
LoRA(低秩自適應) |
僅對約4.48%的總參數進行高效微調。 |
量化 |
bnb_4bit |
啟用以減少VRAM消耗。 |
訓練批次大小 |
12 |
優化以平衡GPU利用率和收斂性。 |
評估批次大小 |
12 |
與訓練批次大小匹配,以確保穩定評估。 |
梯度累積步數 |
3 |
有效批次大小 = 36,以提高穩定性。 |
學習率 |
3e-5 |
降低以確保更平滑的收斂。 |
熱身比率 |
0.2 |
逐步提高學習率以提高穩定性。 |
調度器類型 |
Cosine |
確保平滑和可控的學習率衰減。 |
訓練輪數 |
5 |
平衡以確保收斂而不過擬合。 |
最大梯度範數 |
0.5 |
防止梯度爆炸。 |
權重衰減 |
0.08 |
正則化以提高泛化能力。 |
bf16精度 |
True |
最大化GPU利用率和精度。 |
梯度檢查點 |
啟用 |
減少訓練期間的內存使用。 |
LoRA配置
參數 |
值 |
描述 |
秩維度 |
128 |
平衡以實現強大的表達能力,而不過度佔用內存。 |
LoRA Alpha |
128 |
確保穩定的梯度更新。 |
LoRA Dropout |
0.1 |
有助於防止過擬合。 |
🔧 技術細節
本模型基於Mistral-7B語言模型,通過LoRA微調技術對醫療領域的特定任務進行優化。在訓練過程中,使用了bnb_4bit量化技術來減少內存佔用,同時保持模型的性能。通過調整超參數,如學習率、訓練輪數等,確保模型的收斂性和泛化能力。
📄 許可證
本模型採用Apache-2.0許可證。
⚠️ 重要提示
請不要完全依賴此模型進行現實生活中的疾病診斷,此模型僅用於支持需要大語言模型的真實驗證健康應用程序。
💡 使用建議
用戶(直接用戶和下游用戶)應瞭解該模型的風險、偏差和侷限性。