🚀 🩺 医疗诊断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许可证。
⚠️ 重要提示
请不要完全依赖此模型进行现实生活中的疾病诊断,此模型仅用于支持需要大语言模型的真实验证健康应用程序。
💡 使用建议
用户(直接用户和下游用户)应了解该模型的风险、偏差和局限性。