🚀 DISC-MedLLM
DISC-MedLLM是由Fudan-DISC实验室设计的医疗领域大语言模型,专为对话式医疗场景打造,能满足医疗咨询、治疗询问等多种需求,提供高质量的健康支持服务。
🚀 快速开始
本仓库包含以Baichuan-13b-base为基础模型的DISC-MedLLM。
请注意,由于项目仍在持续开发中,本仓库中的模型权重可能与我们当前部署的演示版本有所不同。
查看DISC-MedLLM以获取更多信息。
演示 | 技术报告
你可以点击此链接尝试我们的在线演示。
✨ 主要特性
DISC-MedLLM有效弥合了通用语言模型与现实医疗咨询之间的差距,实验结果证明了这一点。得益于我们的目标导向策略以及基于现实医患对话和知识图谱将大语言模型与人工反馈相结合的框架,DISC-MedLLM具备以下特点:
📦 安装指南
当前版本的DISC-MedLLM基于Baichuan-13B-Base。你可以直接从HuggingFace 仓库下载我们的模型权重,或者通过演示代码自动获取。
💻 使用示例
基础用法
>>> import torch
>>> from transformers import AutoModelForCausalLM, AutoTokenizer
>>> from transformers.generation.utils import GenerationConfig
>>> tokenizer = AutoTokenizer.from_pretrained("Flmc/DISC-MedLLM", use_fast=False, trust_remote_code=True)
>>> model = AutoModelForCausalLM.from_pretrained("Flmc/DISC-MedLLM", device_map="auto", torch_dtype=torch.float16, trust_remote_code=True)
>>> model.generation_config = GenerationConfig.from_pretrained("Flmc/DISC-MedLLM")
>>> messages = []
>>> messages.append({"role": "user", "content": "我感觉自己颈椎非常不舒服,每天睡醒都会头痛"})
>>> response = model.chat(tokenizer, messages)
>>> print(response)
此外,由于当前版本以百川模型为基础模型,你可以参考其仓库进行int8、int4量化推理部署。不过,使用量化部署会导致性能下降。
📚 详细文档
数据集
为了训练DISC-MedLLM,我们构建了一个名为DISC-Med-SFT的高质量数据集,该数据集由超过470k个不同的示例组成,这些示例来自现有的医疗数据集。我们采用目标导向策略,通过精心选择的几个来源有针对性地重构数据集。这些数据源有助于大语言模型获取医学领域知识,使行为模式符合人类偏好,并捕捉现实世界在线医疗对话的分布。
数据集 |
原始来源 |
规模 |
重构的人工智能医患对话 |
MedDialog |
400k |
重构的人工智能医患对话 |
cMedQA2 |
20k |
知识图谱问答对 |
CMeKG |
50k |
行为偏好数据集 |
手动选择 |
2k |
其他 |
MedMCQA |
8k |
其他 |
MOSS - SFT |
33k |
其他 |
Alpaca - GPT4 - zh |
1k |
训练
你可以使用与我们相同的数据模式来微调我们的模型。我们的训练代码基于Firefly,但采用了不同的数据模式和对话格式。我们仅提供全参数微调的代码:
deepspeed --num_gpus={num_gpus} ./train/train.py --train_args_file ./train/train_args/sft.json
在尝试开始训练之前,请检查sft.json
的设置。
如果你想使用其他训练代码微调我们的模型,请使用以下对话格式:
<\b><$user_token>content<$assistant_token>content<\s><$user_token>content ...
我们使用的user_token
和assistant_token
分别是195
和196
,与Baichuan-13b-Chat相同。
声明
由于语言模型本身存在局限性,我们不能保证该模型生成信息的准确性或可靠性。此模型仅供个人和学术团体进行研究和测试使用。我们敦促用户对通过模型输出获得的任何信息或医疗建议进行批判性评估,强烈不建议盲目信任或遵循此类信息。对于因使用该模型而产生的任何问题、风险或不良后果,我们不承担责任。
📄 许可证
本仓库中的源代码使用遵循Apache 2.0许可证。
引用
@misc{bao2023discmedllm,
title={DISC-MedLLM: Bridging General Large Language Models and Real-World Medical Consultation},
author={Zhijie Bao and Wei Chen and Shengze Xiao and Kuang Ren and Jiaao Wu and Cheng Zhong and Jiajie Peng and Xuanjing Huang and Zhongyu Wei},
year={2023},
eprint={2308.14346},
archivePrefix={arXiv},
primaryClass={cs.CL}
}