许可证:apache-2.0
数据集:
- Flmc/DISC-Med-SFT
语言:
- 中文
标签:
- 医疗
本仓库包含DISC-MedLLM模型,基于Baichuan-13b-base版本构建。
请注意,由于项目持续开发,本仓库中的模型权重可能与当前部署的演示版本存在差异。
更多信息请查看DISC-MedLLM。
DISC-MedLLM
演示 | 技术报告
这是DISC-MedLLM的代码仓库,由复旦大学DISC实验室开发的面向医疗对话场景的领域大语言模型。
已发布资源包括:
- DISC-Med-SFT数据集(不含行为偏好数据集)
- DISC-MedLLM模型权重
访问此链接可体验在线演示。
概述
DISC-MedLLM是专为医疗对话场景设计的大规模领域模型,能够满足包括问诊咨询、治疗建议在内的多样化需求,为用户提供高质量的健康支持服务。
实验证明,该模型有效弥合了通用语言模型与实际医疗咨询之间的差距。通过基于真实医患对话和知识图谱的目标驱动策略及"LLM+人类"协同框架,DISC-MedLLM具备以下特性:
数据集
为训练DISC-MedLLM,我们构建了高质量DISC-Med-SFT数据集,包含47万+样本,通过精选数据源实现目标导向重构,助力模型掌握:
数据集 |
数据来源 |
规模 |
重构医患对话 |
MedDialog |
40万 |
cMedQA2 |
2万 |
知识图谱问答对 |
CMeKG |
5万 |
行为偏好数据 |
人工筛选 |
2千 |
其他 |
MedMCQA |
8千 |
MOSS-SFT |
3.3万 |
Alpaca-GPT4-zh |
1千 |
部署
当前版本基于Baichuan-13B-Base开发,可通过HuggingFace仓库直接下载权重,或通过示例代码自动获取。
使用Transformers库
>>> 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)
注:量化部署会导致性能下降,可参考Baichuan官方仓库实现int8/int4推理。
训练
可使用相同数据格式进行微调。完整参数训练代码如下:
deepspeed --num_gpus={num_gpus} ./train/train.py --train_args_file ./train/train_args/sft.json
训练前请检查sft.json
配置
若使用其他框架训练,需采用以下对话格式:
<\b><$user_token>内容<$assistant_token>内容<\s><$user_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}
}