s65b40/ChatGLM-Med
ChatGLM-Med: 基于中文医学知识的ChatGLM模型微调
 
本项目开源了经过中文医学指令精调/指令微调(Instruct-tuning) 的ChatGLM-6B模型。我们通过医学知识图谱和GPT3.5 API构建了中文医学指令数据集,并在此基础上对ChatGLM-6B进行了指令微调,提高了ChatGLM在医疗领域的问答效果。
基于相同的数据,我们还训练了医疗版本的LLaMA模型: 华驼
A Quick Start
首先安装依赖包,python环境建议3.9+
pip install -r requirements.txt模型下载
训练好的模型参数可以通过如下方式下载:
交互式测试
在安装好环境后,即可进行交互式测试:
python infer.py数据集构建
我们采用了公开和自建的中文医学知识库,主要参考了cMeKG。 医学知识库围绕疾病、药物、检查指标等构建,字段包括并发症,高危因素,组织学检查,临床症状,药物治疗,辅助治疗等。知识库示例如下:
{"中心词": "偏头痛", "相关疾病": ["妊娠合并偏头痛", "恶寒发热"], "相关症状": ["皮肤变硬", "头部及眼后部疼痛并能听到连续不断的隆隆声", "晨起头痛加重"], "所属科室": ["中西医结合科", "内科"], "发病部位": ["头部"]}我们利用GPT3.5接口围绕医学知识库构建问答数据,设置了多种Prompt形式来充分利用知识。
指令微调的训练集数据示例如下:
"问题:一位年轻男性长期使用可卡因,突然出现胸痛、呕吐、出汗等症状,经检查发现心电图反映心肌急性损伤,请问可能患的是什么疾病?治疗方式是什么?"
回答: 可能患的是心肌梗塞,需要进行维拉帕米、依普利酮、硝酸甘油、ß阻滞剂、吗啡等药物治疗,并进行溶栓治疗、低分子量肝素、钙通道阻滞剂等辅助治疗。此外需要及时停用可卡因等药物,以防止病情加重。"指令微调数据集质量仍有限,后续将进行不断迭代,同时医学知识库和数据集构建代码还在整理中,整理完成将会发布。
Instruct-tuning 指令微调
下载ChatGLM-6B原始参数
请参照https://github.com/THUDM/ChatGLM-6B,并将下载的模型放入model目录下。
指令微调
sh script/sft_medchat.sh请根据实际情况调整batch size等超参,默认为我们使用的参数。
新数据指令微调
如果想用自己的数据集继续指令微调/指令精调(Instruct-tuning)ChatGLM,可以构建与data目录中训练集类似的文件格式进行。或参照ChatGLM-Instruct-Tuning仓库。
计算资源需求
我们在一张A100-SXM-80GB显卡上进行了训练,根据经验,训练显存建议选择32G及以上。
模型效果对比
项目参与者
本项目由哈尔滨工业大学社会计算与信息检索研究中心健康智能组王昊淳 、刘驰完成,指导教师为赵森栋副教授,秦兵教授以及刘挺教授。
致谢
本项目参考了以下开源项目,在此对相关项目和研究开发人员表示感谢。
- ChatGLM: https://github.com/THUDM/ChatGLM-6B
- ChatGLM-Instruct-Tuning: https://github.com/thinksoso/ChatGLM-Instruct-Tuning/issues
- CMeKG: https://github.com/king-yyf/CMeKG_tools
免责声明
本项目相关资源仅供学术研究之用,严禁用于商业用途。使用涉及第三方代码的部分时,请严格遵循相应的开源协议。模型生成的内容受模型计算、随机性和量化精度损失等因素影响,本项目无法对其准确性作出保证。本项目数据集绝大部分由模型生成,即使符合某些医学事实,也不能被用作实际医学诊断的依据。对于模型输出的任何内容,本项目不承担任何法律责任,亦不对因使用相关资源和输出结果而可能产生的任何损失承担责任。
Citation
如果你使用了本项目的数据或者代码,请声明引用
@misc{ChatGLM-Med,
author={Haochun Wang, Chi Liu, Sendong Zhao, Bing Qin, Ting Liu},
title = {ChatGLM-Med: 基于中文医学知识的ChatGLM模型微调},
year = {2023},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{https://github.com/SCIR-HI/Med-ChatGLM}},
}