Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/2020MEAI/TCMLLM

中医药大模型
https://github.com/2020MEAI/TCMLLM

Last synced: about 2 months ago
JSON representation

中医药大模型

Awesome Lists containing this project

README

        

# TCMLLM: 中医药大模型

中医药大语言模型项目(TCMLLM)拟通过大模型方式实现中医临床辅助诊疗(病证诊断、处方推荐等)中医药知识问答等任务,推动中医知识问答、临床辅助诊疗等领域的快速发展。

目前针对中医临床智能诊疗问题中的处方推荐任务,发布了中医处方推荐指令微调大模型TCMLLM-PR。

## TCMLLM-PR 面向中医处方推荐的大模型

本项目针对中医临床智能诊疗问题中的处方推荐任务,通过整合真实世界临床病历、医学典籍与中医教科书等数据,构建了包含68k数据条目(共10M token)的处方推荐指令微调数据集,并使用此数据集,在ChatGLM大模型上进行大规模指令微调,最终得到了中医处方推荐大模型TCMLLM-PR。

### 更新日志
**[2023/08/01] 面向处方推荐的大模型TCMLLM-PR**

[2023/06] 项目启动

### A Quick Start

1. 首先需要下载[ChatGLM-6B](https://github.com/THUDM/ChatGLM-6B)原始模型代码和参数,并配置依赖环境
2. 下载 TCMLLM 模型参数,将checkpoint压缩文件解压到 ChatGLM-6B/ptuning/ 路径下
+ 百度网盘链接: https://pan.baidu.com/s/1QFx-206Ww9Xt-7_Z0RF85g 提取码: iwg3


### 指令微调数据集

#### 数据集介绍

   本项目构建的指令微调数据集包含8个数据来源,涵盖4本中医经典教科书《中医内科学》、《中医外科学》、《中医妇科学》和《中医儿科学》(即“内外妇儿”,**I**nternal medicine,**S**urgery, **G**ynecology,**P**ediatrics,简称ISGP)、2020版中国药典(**Ch**inese **p**harmacopeia,简称CHP)、中医临床经典医案数据(**C**hinese **M**edicine **C**linical **C**ases,简称CMCC)、以及多个三甲医院的涵盖肺病(简称Lung)、中风病(简称Stroke)、糖尿病(简称Diabetes)、肝病(简称Liver)、脾胃病(Splenic and stomach diseases,简称SSD)等多病种的临床病历数据。8个数据集共68k条,token总数约为10M(输入token总数为5M、输出token总数为4M),统计信息如下表。


类型
名称
简称
数量
来源
输入token总数
输出token总数
token总数


知识
内外妇儿ISGP2k中医4本教材218k75k294k


药典CHP1k中国药典2020版85k50k136k


医案CMCC15k临床经典医案163k613k225k


临床


肺病Lung15k中医医院1755k849k160k


中风病Stroke5k中医医院2298k294k593k


糖尿病Diabetes8k中医医院3494k262k756k


肝病Liver2k中医医院486k116k202k


脾胃病SSD17k中医医院52M2M4M


总计Mixed68K5M4M10M

#### 数据集示例

1. 中风病数据集示例
```
{"Content":"请根据中风病患者的症状信息进行中医处方推荐。肢体活动不利,言语不利,肢体麻木,烦躁,口苦,口干,便秘","Summary":"白僵蚕,炒白术,炒枳壳,刺蒺藜,大黄,当归,葛根,钩藤,厚朴,黄芪,菊花,牡蛎,片姜黄,全蝎,石决明,石菖蒲,首乌藤,酸枣仁,天麻,盐杜仲,郁金,远志,茯神,槲寄生"}
```
2. 经典教材(内外妇儿)数据集示例
```
{"Content":"请根据患者的症状信息进行中医处方推荐。恶寒,发热,无汗,头痛,肢体酸楚,鼻塞,声重,打喷嚏,鼻流清涕,咽痒,咳嗽,痰色白,痰稀薄,舌苔白,舌苔薄,脉浮,脉紧,恶寒甚", "Summary":"荆芥,防风,茯苓,独活,柴胡,前胡,川芎,枳壳,羌活,桔梗,薄荷,甘草"}
```
3. 药典数据集示例
```
{"Content":"请根据患者的症状信息进行中医处方推荐。燥热蕴肺所致的咳嗽、痰黄而黏不易咳出、胸闷气促、久咳不止、声哑喉痛","Summary":"川贝母,知母,石膏,炒栀子,黄芩,蜜桑白皮,茯苓,炒瓜蒌子,陈皮,麸炒枳实,炙甘草,五味子"}
```

### 训练细节

#### 计算资源需求

+ 训练阶段:TCMLLM-PR在两张3090显卡(24G显存*2)上完成训练。batch_size=16情况下单卡显存占用约23G,建议根据显存大小来调整batch_size。
+ 推理阶段:显存占用约为14G。

### 模型效果对比


Question
ChatGPT输出
通义千问输出
TCMLLM-PR输出
Human


请根据中风病患者的症状信息进行中医处方推荐。口角歪斜,吞咽呛咳,肢体活动不利,不能持物,不能行走,头晕,胸闷,干咳,日常生活能力重度下降
白芍,甘草,生姜,大枣,桂枝,生薏苡仁,蜂蜜,人参,黄精,党参,白术,茯苓,熟地,山药,枸杞子,巴戟天,麦冬,陈皮,黄芩,连翘,金银花,银杏叶,红参,黄连等
黄芪,当归,白术,地龙,全蝎,蜈蚣,桃仁,红花,赤芍,姜黄
白僵蚕,炒白术,穿山甲,胆南星,党参,独活,防风,甘草,瓜蒌,红曲,化橘红,姜半夏,全蝎,石菖蒲,天麻,郁金,竹茹,茯苓
白僵蚕,炒白术,穿山甲,胆南星,党参,独活,防风,甘草,瓜蒌,红曲,化橘红,姜半夏,全蝎,石菖蒲,天麻,郁金,竹茹,茯苓


请根据中风病患者的症状信息进行中医处方推荐。肢体活动不利,肢体麻木,头晕,心慌,视物不清,痰少,痰白,眠差
桂枝,芍药,甘草,生姜,大枣,半夏,人参,黄芩,当归,麦冬,陈皮,白术,木通,茯苓,枳实,川芎,越婢
川芎,当归,白芍,细辛,黄芪,党参,灸甘草,地龙,全蝎,红花,桃仁,红参,茯苓,桂枝,白术,泽泻
川贝母,胆南星,甘草,红花,红曲,化橘红,鸡血藤,姜半夏,全蝎,桑枝,石菖蒲,桃仁,郁金,远志,竹茹,茯苓
川贝母,胆南星,甘草,红花,红曲,化橘红,鸡血藤,姜半夏,全蝎,桑枝,石菖蒲,酸枣仁,桃仁,郁金,远志,竹茹,茯苓


请根据患者的症状信息进行中医处方推荐。心悸,气短,头晕,目眩,失眠,健忘,面色无华,倦怠,乏力,纳呆,食少,舌淡,舌红,脉细,脉弱,阳虚而汗出肢冷
人参,黄芪,麦冬,枸杞子,熟地黄,当归,白术,茯苓,陈皮,天麻,龙骨,牡蛎,酸枣仁,远志,丹参,川芎,生姜,大枣
黄芪,桂枝,白芍,生姜,大枣
黄芪,白术,当归,茯神,酸枣仁,远志,龙眼肉,炙甘草,木香,大枣
白术,当归,茯神,炙黄芪,龙眼肉,远志,酸枣仁,木香,炙甘草,人参,生姜,大枣


请根据患者的症状信息进行中医处方推荐。小便黄赤,小便灼热,尿血,心烦,口渴,面赤,口疮,夜寐不安,舌质红,脉数,尿血较甚
黄柏,泽泻,车前草,丹参,金银花,生地黄,丝瓜络,玄参,天花粉,茯苓,甘草
黄连,黄芩,黄柏,萆薢,萹蓄,瞿麦,滑石,甘草
小蓟,地黄,滑石,木通,蒲黄,藕节,淡竹叶,黄芩,甘草
小蓟,地黄,滑石,木通,蒲黄,藕节,淡竹叶,当归,栀子,甘草


请根据肺病患者的症状信息进行中医处方推荐。大便困难,水肿,有喘息中,痛苦面容,气短,双侧鼻腔通畅,鼻翼煽动,皮肤未见出血点及蜘蛛痣,胸闷,双输尿管压痛点无明显压痛,肺部叩诊清音,咳嗽,头颅无压痛,腰酸,可闻及干湿性啰音,心脏震颤,纳差,咳痰,气喘,易感冒,下肢酸胀,头晕,尿频,精神不振,双肺呼吸音粗
杏仁,瓜蒌,桔梗,苏叶,葶苈子,半夏,黄芩,生甘草,川贝母,白芍,制附子
葶苈子,大枣,桑白皮,杏仁,黄芩,党参,甘草,猪苓,茯苓,泽泻,黄芪,桂枝,白芍,生姜,白术,炙甘草,当归,升麻,柴胡
桑白皮,茯苓,陈皮,山药,半夏,紫菀,苦杏仁,地龙,白前,白果仁,瓦楞子,桔梗,款冬花,贝母,前胡,麻黄,射干,甘草,罂粟壳,黄芪,百部
桑白皮,山药,陈皮,半夏,黄芩,紫菀,苦杏仁,地龙,白前,白果仁,桔梗,款冬花,贝母,前胡,麻黄,射干,甘草,百部


请根据肺病患者的症状信息进行中医处方推荐。双肺呼吸音粗,气喘,眠差,严重影响休息及日常活动,呼吸困难,咳嗽,胸闷,咳痰
桔梗,杏仁,炙甘草,生姜片,麻杏,石膏,黄连,黄芩,陈皮,干姜
黄芪,党参,白术,茯苓,甘草,当归,陈皮,半夏,枳壳,杏仁,黄芩,黄连,石膏,知母,杏仁,桑白皮,葶苈子,地骨皮,芦根,百部,款冬花,地骨皮,五味子,川贝母
桑白皮,陈皮,半夏,黄芩,紫菀,苦杏仁,瓜蒌,白前,桔梗,款冬花,贝母,前胡,麻黄,射干,金荞麦,甘草,罂粟壳,百部
桑白皮,陈皮,半夏,黄芩,紫菀,苦杏仁,瓜蒌,地龙,白前,白果仁,桔梗,款冬花,贝母,前胡,麻黄,射干,金荞麦,甘草,百部


请根据肝病患者的症状信息进行中医处方推荐。乏力,腹胀,肝区不适,倦怠,纳差,身目尿黄,小便深黄
柴胡,白芍,泽泻,枳实,甘草
黄连,黄芩,白术,茵陈,板蓝根,猪苓,泽泻,枸杞子,女贞子,菊花,生地黄
牡蛎,莪术,薏苡仁,郁金,连翘,瓦楞子,鸡内金,丹参,半枝莲,白花蛇舌草,鳖甲
郁金,瓦楞子,地丁,槟榔,车前子,薏苡仁,莪术,丹参,连翘,茵陈,鳖甲,牡蛎,赤芍


请根据脾胃病患者的症状信息进行中医处方推荐。反酸,嗳气,烧心,胃痛,时胃胀,胃寒,大便调,午后易饥饿,入睡困难,做梦,乏力,情绪急躁,易上火,易感冒,畏风,畏寒,舌胖,质淡暗,苔薄白腻,脉沉细
人参,白术,茯苓,砂仁,甘草,大枣,陈皮,枳壳,泽泻,莱菔子,丹皮,苍术,草果,山楂,木香,香附,附子(煅),干姜,大茴
苍术,厚朴,陈皮,半夏,黄连,黄芩,生姜,大枣,附子,肉桂
柴胡,白芍,陈皮,法半夏,浙贝母,海螵蛸,枳壳,党参,生白术,当归,甘草,生龙骨,生牡蛎,珍珠母,白花蛇舌草,醋三棱,醋莪术,半枝莲,三七,旋覆花,煅赭石
醋三棱,醋莪术,半枝莲,半边莲,藤梨根,旋覆花,煅赭石,甘草,柴胡,白芍,赤芍,陈皮,法半夏,浙贝母,煅瓦楞子,海螵蛸,枳壳,党参,生白术,桂枝,生龙骨,生牡蛎,黄连,当归,合欢皮,合欢花,天花粉,生地黄,黄芪,防风,白花蛇舌草,川芎


请根据脾胃病患者的症状信息进行中医处方推荐。大便不成形年;服药后症状改善不明显,现大便不成形,日次,质黏,粘马桶,进食时腹痛,腹胀减轻,排气减少,晨起恶心好转,近日腹泻未作,腹部畏寒同前,乏力减轻,纳欠佳,无食欲,睡眠可,小便正常,急躁易怒
炙甘草,干姜,白术,茯苓,半夏,陈皮,枳壳,泽泻,荷叶,薏苡仁,大腹皮,麦芽
党参,白术,茯苓,甘草,砂仁,桔梗,薏苡仁,莲子,扁豆,山药,苍术,厚朴,陈皮,半夏,生姜,大枣,枳壳,吴茱萸,干姜,灸甘草,当归,川芎,肉桂
马齿苋,山药,白芍,北柴胡,芡实,陈皮,麸炒白术,茯苓,防风,乌梅,当归,麸煨肉豆蔻,麸炒芡实,五味子,炙甘草,北败酱草,诃子,盐补骨脂,炒麦芽
砂仁,醋延胡索,赤石脂,茯苓,法半夏,胡黄连,马齿苋,诃子,芡实,麸炒白术,北败酱草,当归,菊花,陈皮,麸神曲,川芎,山药,五味子,白芍,盐补骨脂,麸煨肉豆蔻,蝉蜕,炒麦芽,炒白扁豆,木香,炙甘草,炒鸡内金,枸杞子,炒僵蚕,乌梅,防风,黄芪


请根据糖尿病患者的症状信息进行中医处方推荐。上肢麻木加重,皮肤瘙痒不变,舌苔白,舌苔薄,舌淡,舌暗
黄芪,桂枝,白术,川芎,熟地,五味子,生姜,大枣
黄芪,党参,大枣,萆薢,黄柏,茯苓,泽泻,麻黄,附子,细辛,当归,川芎,桃仁,红花,羌活,防风,藁本,细辛
干姜,黄连,黄芩,太子参,桑叶,桑枝,天花粉,乌梅
干姜,黄连,黄芩,太子参,桑叶,桑枝,天花粉,鸡血藤,夜交藤,知母,葛根,乌梅


请根据糖尿病患者的症状信息进行中医处方推荐。怕冷,苔白,脉数,脉弦,舌红
人参,白术,茯苓,甘草,附子,干姜
人参(或党参),白术,茯苓,炙甘草肉桂,附子(先煎),姜半夏,泽泻,苡仁,陈皮,黄连,黄芩,白扁豆,山药
黄芪,桂枝,鸡血藤,夜交藤,甘草,白芍
鸡血藤,白芍,黄芪,黄连,知母,桂枝,夜交藤,甘草

注:
1. 在测试ChatGPT、通义千问模型时,是从结果中将处方的药物手动提取出来,以方便模型对比。
2. 文本加粗的为正确药物(与医生一致)。

#### 模型性能对比


Dataset
Method
P@5
R@5
F1@5
P@10
R@10
F1@10
P@20
R@20
F1@20


CMCC
PTM(d)---------


TCMPR0.30980.13140.18450.25310.21160.23050.18680.30850.2327


TCMLLM-PR0.2678 0.1128 0.1537 0.2219 0.1864 0.1956 0.1270 0.2127 0.1541


CHP
PTM(d)0.20440.10190.13600.17510.17840.17670.13850.28890.1872


TCMPR0.15450.07190.09820.12370.12050.12210.10970.22640.1477


TCMLLM-PR0.3632 0.2508 0.2642 0.2804 0.3489 0.2818 0.1593 0.3771 0.2064


Diabetes
PTM(d)0.48350.25490.33380.38920.41320.40080.28970.61180.3932


TCMPR0.46480.24600.32170.37880.40260.39030.28020.59350.3807


TCMLLM-PR0.3548 0.1880 0.2420 0.2652 0.2786 0.2671 0.1358 0.2852 0.1812


Liver
PTM(d)0.57530.15600.24540.47650.25540.33260.38530.40450.3947


TCMPR0.55310.14870.23430.45360.24270.31620.37540.39460.3847


TCMLLM-PR0.3876 0.1037 0.1572 0.3291 0.1751 0.2179 0.2579 0.2705 0.2505


Lung
PTM(d)0.5827 0.1700 0.2632 0.5086 0.2949 0.3733 0.4083 0.4726 0.4381


TCMPR0.5890 0.1716 0.2657 0.5119 0.2967 0.3756 0.4114 0.4761 0.4414


TCMLLM-PR0.3750 0.1082 0.1671 0.3138 0.1809 0.2279 0.2991 0.3457 0.3183


ISGP
PTM(d)0.3822 0.2113 0.2722 0.3071 0.3415 0.3234 0.2179 0.4810 0.2999


TCMPR0.4950 0.3038 0.3765 0.4183 0.4838 0.4487 0.2803 0.6314 0.3883


TCMLLM-PR0.7378 0.4356 0.5283 0.5786 0.6448 0.5914 0.3138 0.6808 0.4180


SSD
PTM(d)---------


TCMPR0.7150 0.1562 0.2564 0.6286 0.2732 0.3809 0.5166 0.4453 0.4783


TCMLLM-PR0.5371 0.1139 0.1866 0.4351 0.1842 0.2562 0.3494 0.2937 0.3155


Stroke
PTM(d)0.6440 0.2133 0.3204 0.5353 0.3513 0.4242 0.4187 0.5476 0.4746


TCMPR0.5783 0.1903 0.2863 0.5085 0.3335 0.4028 0.4084 0.5344 0.4630


TCMLLM-PR0.3528 0.1140 0.1714 0.3770 0.2444 0.2946 0.3090 0.3999 0.3463

Mixed
PTM(d)---------


TCMPR0.49210.15470.23540.42430.26260.32440.33990.41330.3731


TCMLLM-PR0.3933 0.1300 0.1870 0.3243 0.2111 0.2437 0.2488 0.3033 0.2622

注:基线模型为: 1) PTM(一种基于主题模型的处方推荐算法, [Yao et al. TKDE 2018](https://ieeexplore.ieee.org/document/8242679)); 2) TCMPR(一种基于症状术语映射与深度学习的中医处方推荐算法, [Dong et al. BIBM 2021](https://ieeexplore.ieee.org/document/9669588))

### 处方推荐任务交叉验证


Dataset1
Dataset2
P@5
R@5
F1@5
P@10
R@10
F1@10
P@20
R@20
F1@20


CHP
Stroke
0.1123 0.0364 0.0546 0.0959 0.0619 0.0746 0.0632 0.0821 0.0707


Liver
0.1794 0.0455 0.0704 0.1608 0.0820 0.1048 0.0987 0.1007 0.0958


SSD
0.2871 0.0596 0.0980 0.2175 0.0901 0.1262 0.1290 0.1068 0.1155


ISGP
Stroke
0.1918 0.0619 0.0930 0.1550 0.0997 0.1204 0.0831 0.1072 0.0929

Liver
0.2990 0.0800 0.1225 0.2338 0.1232 0.1551 0.1232 0.1296 0.1209


SSD
0.2487 0.0520 0.0853 0.1918 0.0795 0.1112 0.1017 0.0840 0.0908

注:处方推荐任务交叉验证指在Dataset1的训练集进行大模型指令微调,使用Dataset2的测试集进行性能测试。

#### 模型训练效果
![image](https://github.com/2020MEAI/TCMLLM/assets/75461468/408bc2bd-b8dd-4800-8743-d91093f14709)

## 项目参与者
本项目由北京交通大学计算机与信息技术学院医学智能团队田昊宇、董鑫、徐宽、花睿、赵辰羲、王鸿燕、叶明蔚和胡敏杰等完成,项目负责人为杨扩和周雪忠老师。另外,感谢多家合作单位提供的医疗数据。

## 致谢
本项目参考了以下开源项目,在此对相关项目和研究开发人员表示感谢。
- ChatGLM-6B: https://github.com/THUDM/ChatGLM-6B
- Facebook LLaMA: https://github.com/facebookresearch/llama
- Stanford Alpaca: https://github.com/tatsu-lab/stanford_alpaca
- Huatuo: https://github.com/SCIR-HI/Huatuo-Llama-Med-Chinese


## 免责声明

本项目相关资源仅供学术研究之用,严禁用于商业用途。使用涉及第三方代码的部分时,请严格遵循相应的开源协议。模型生成的内容受模型计算、随机性和量化精度损失等因素影响,本项目无法对其准确性作出保证。本项目数据集绝大部分由模型生成,即使符合某些医学事实,也不能被用作实际医学诊断的依据。对于模型输出的任何内容,本项目不承担任何法律责任,亦不对因使用相关资源和输出结果而可能产生的任何损失承担责任。

## Citation

如果你使用了本项目的数据或者代码,请声明引用

@misc{alpaca,
author={Xuezhong Zhou,Kuo Yang,Haoyu Tian,Xin Dong,Kuan Xu,Rui Hua},
title = {TCMLLM},
year = {2023},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{https://github.com/2020MEAI/TCMLLM}},
}