michaelwzhu
commited on
Commit
•
bcc791f
1
Parent(s):
017daee
Update README.md
Browse files2023/06/25 update readme; upload LoRA checkpoint
README.md
CHANGED
@@ -3,97 +3,72 @@ license: apache-2.0
|
|
3 |
---
|
4 |
|
5 |
|
|
|
|
|
|
|
|
|
6 |
<p align="center">
|
7 |
<br>
|
8 |
-
<img src="
|
9 |
<br>
|
10 |
</p>
|
11 |
|
12 |
|
13 |
以ChatGPT、GPT-4等为代表的大语言模型(Large Language Model, LLM)掀起了新一轮自然语言处理领域的研究浪潮,展现出了类通用人工智能(AGI)的能力,受到业界广泛关注。
|
14 |
|
15 |
-
为推动LLM
|
16 |
-
|
17 |
-
- 🚀 [ChatMed-Consult](https://huggingface.co/michaelwzhu/ChatMed-Consult) : 基于[中文医疗在线问诊数据集ChatMed_Consult_Dataset](https://huggingface.co/datasets/michaelwzhu/ChatMed_Consult_Dataset)的50w+在线问诊+ChatGPT回复作为训练集。模型主干为[LlaMA-7b](https://github.com/facebookresearch/llama),融合了[Chinese-LlaMA-Alpaca](https://github.com/ymcui/Chinese-LLaMA-Alpaca)的LoRA权重与中文扩展词表,然后再进行基于LoRA的参数高效微调。我们将全部代码都进行了公开。我们也将部署一个在线Gradio demo, 敬请关注。
|
18 |
-
- ⏳ [ChatMed-TCM](https://huggingface.co/michaelwzhu/ChatMed-TCM) : 大模型赋能中医药传承。这一模型的训练数据为[中医药指令数据集ChatMed_TCM_Dataset](https://huggingface.co/datasets/michaelwzhu/ChatMed_TCM_Dataset)。以我们开源的[中医药知识图谱](https://github.com/ywjawmw/TCM_KG)为基础,采用以实体为中心的自指令方法(entity-centric self-instruct),调用ChatGPT得到2.6w+的围绕中医药的指令数据。ChatMed-TCM模型也是以LlaMA为底座,采用LoRA微调得到。
|
19 |
|
|
|
|
|
|
|
|
|
|
|
20 |
|
21 |
-
|
|
|
|
|
|
|
22 |
|
23 |
-
[Text2DT](https://github.com/michael-wzhu/Text2DT_Baseline) | [中文医疗大模型评测基准PromptCBLUE](https://github.com/michael-wzhu/PromptCBLUE) | [中文医疗在线问诊数据集ChatMed_Consult_Dataset](https://huggingface.co/datasets/michaelwzhu/ChatMed_Consult_Dataset) | [中医药指令数据集ChatMed_TCM_Dataset](https://huggingface.co/datasets/michaelwzhu/ChatMed_Consult_Dataset) | [中医药知识图谱](https://github.com/ywjawmw/TCM_KG)
|
24 |
|
25 |
|
26 |
## 更新
|
27 |
|
28 |
-
2023/
|
29 |
-
|
30 |
-
|
31 |
-
## ChatMed-Consult模型介绍
|
32 |
-
|
33 |
-
### 模型介绍
|
34 |
-
|
35 |
-
- 训练数据:[中文医疗在线问诊数据集ChatMed_Consult_Dataset](https://huggingface.co/datasets/michaelwzhu/ChatMed_Consult_Dataset)的50w+在线问诊+ChatGPT回复作为训练集。我们发现,在线爬取的问诊数据,虽然可以反映真实世界的用户/患者的问诊需求,但是一般网上的回答良莠不齐���所以我们调用ChatGPT (`gpt-3.5-turbo`)得到问诊的回复。 (⏳ todo: 实现一个评估模型,给人工回复进行评分。调用大模型的token毕竟烧钱)
|
36 |
-
- 模型基座:目前我们开源了基于LlaMA-7b的[ChatMed-Consult](https://huggingface.co/michaelwzhu/ChatMed-Consult)模型。后续我们将会尝试不同的模型底座,比如LlaMA-13b,MOSS等。
|
37 |
-
- 代码:模型训练所需要的全部代码见[ChatMed-Consult 训练代码](https://github.com/michael-wzhu/ChatMed/blob/main/src/chatmed_llama_peft)。训练中我们借助DeepSpeed(ZeRO stage 3)实现分布式训练。
|
38 |
-
- 模型权重下载:由于我们目前采用模型是基于Llama-7b进行参数高效微调,所以我们只上传了参数高效微调模块的权重,见[ChatMed-Consult模型权重](https://huggingface.co/michaelwzhu/ChatMed-Consult)。
|
39 |
-
|
40 |
-
### 快速上手
|
41 |
-
|
42 |
-
在使用[ChatMed-Consult](https://huggingface.co/michaelwzhu/ChatMed-Consult)之前,大家需要准备好LlaMA-7b底座模型,详细操作见[LlaMA-7b模型准备](https://github.com/michael-wzhu/ChatMed/blob/main/src/chatmed_llama_peft/LlaMA-7b%E6%A8%A1%E5%9E%8B%E5%87%86%E5%A4%87.md)。
|
43 |
-
|
44 |
-
LlaMA-7b底座模型准备好后,下载[ChatMed-Consult的LoRA权重](https://huggingface.co/michaelwzhu/ChatMed-Consult),在3090显卡(或者更强的显卡) 运行以下命令,启动一个简单的基于flask的web service:
|
45 |
-
|
46 |
-
```bash
|
47 |
-
python src/web_services/web_service_simple.py
|
48 |
-
```
|
49 |
|
50 |
-
|
51 |
-
```bash
|
52 |
-
python src/web_services/web_service_test.py
|
53 |
-
```
|
54 |
|
55 |
-
上面的脚本主要是运行了test_examples.json文件中提供了测试用例。在使用自己的测试用例时,请注意保持格式一致。
|
56 |
|
57 |
-
### 训练
|
58 |
-
|
59 |
-
首先,大家需要准备好LlaMA-7b底座模型,保存于`resources/chinese-llama-alpaca-plus-lora-7b`路径。数据集采用[中文医疗在线医疗咨询数据集ChatMed_Consult_Dataset](https://huggingface.co/datasets/michaelwzhu/ChatMed_Consult_Dataset)。我们采用deepspeed实现分布式训练:
|
60 |
-
|
61 |
-
```bash
|
62 |
-
./src/chatmed_llama_peft/run_train.sh
|
63 |
-
```
|
64 |
-
|
65 |
-
训练脚本中使用的是4张显卡,大家根据自己的服务器情况调整超参数。
|
66 |
|
67 |
|
|
|
68 |
|
|
|
69 |
|
70 |
## 效果对比
|
71 |
|
72 |
-
|
73 |
|
74 |
|
75 |
-
| 问诊问题 | 中文LlaMA-7b |
|
76 |
-
|
77 |
-
|
|
78 |
-
|
|
79 |
-
|
|
80 |
-
|
|
81 |
-
|
|
82 |
|
83 |
-
我们可以看到:
|
84 |
-
- 在线问诊,由于用户输入错字或者语音转文字带来噪音,问诊问题可能不会很规整。在这种情况下,中文LlaMA-7b模型可能会产生没有意义的回答。而ChatMed-Consult可以有效的从干扰中理解用户问题,做出相应的回答;
|
85 |
-
- ChatMed-Consult的回答会更加具有人性关怀一些,而中文LlaMA-7b模型的回复可能会比较生硬;
|
86 |
-
- ChatMed-Consult相较于中文LlaMA-7b模型的回答会更加丰富,具有更多可行的建议。
|
87 |
-
- 大模型作为医生的辅助,其可以多列举可能性和建议,但是不能太过���断的下结论。中文LlaMA-7b模型面对问诊问题会比较容易下直接下结论,似乎是有一些过度自信。ChatMed-Consult一般会说"以下是一些可能...",相对更加谨慎。
|
88 |
|
|
|
|
|
|
|
89 |
|
90 |
|
91 |
## 免责声明
|
92 |
|
93 |
- 本项目相关资源仅供学术研究之用,严禁用于商业用途。
|
94 |
-
-
|
95 |
-
-
|
96 |
-
-
|
97 |
|
98 |
|
99 |
## 致谢
|
@@ -103,8 +78,9 @@ python src/web_services/web_service_test.py
|
|
103 |
- [LlaMA](https://github.com/facebookresearch/llama)
|
104 |
- [Stanford Alpaca](https://github.com/tatsu-lab/stanford_alpaca)
|
105 |
- [Chinese-LlaMA-Alpaca](https://github.com/ymcui/Chinese-LLaMA-Alpaca)
|
|
|
106 |
|
107 |
-
Logo
|
108 |
|
109 |
|
110 |
## Citation
|
|
|
3 |
---
|
4 |
|
5 |
|
6 |
+
# ShenNong-TCM-LLM
|
7 |
+
Repo for ShenNong-TCM-LLM (“神农”大模型,首个中医药大模型)
|
8 |
+
|
9 |
+
|
10 |
<p align="center">
|
11 |
<br>
|
12 |
+
<img src="https://github.com/michael-wzhu/ShenNong-TCM-LLM/blob/main/pics/ShenNong-TCM_banner.png" width="355"/>
|
13 |
<br>
|
14 |
</p>
|
15 |
|
16 |
|
17 |
以ChatGPT、GPT-4等为代表的大语言模型(Large Language Model, LLM)掀起了新一轮自然语言处理领域的研究浪潮,展现出了类通用人工智能(AGI)的能力,受到业界广泛关注。
|
18 |
|
19 |
+
为推动LLM在中医药领域的发展和落地,提升LLM的在中医药方面的知识与回答医学咨询的能力,同时推动大模型赋能中医药传承,我们现推出**ShenNong**中医药大规模语言模型:
|
|
|
|
|
|
|
20 |
|
21 |
+
- 🚀 [ShenNong-TCM](https://github.com/michael-wzhu/ShenNong-TCM-LLM) :
|
22 |
+
- 这一模型的训练数据为[中医药指令数据集ShenNong_TCM_Dataset](https://huggingface.co/datasets/michaelwzhu/ShenNong_TCM_Dataset)。
|
23 |
+
- ChatMed_TCM_Dataset以我们开源的[中医药知识图谱](https://github.com/ywjawmw/TCM_KG)为基础;
|
24 |
+
- 采用以实体为中心的自指令方法(entity-centric self-instruct),调用ChatGPT得到11w+的围绕中医药的指令数据;
|
25 |
+
- ShenNong-TCM模型也是以LlaMA为底座,采用LoRA (rank=16)微调得到。微调代码与[ChatMed代码库](https://github.com/michael-wzhu/ChatMed)相同
|
26 |
|
27 |
+
同时,欢迎大家关注我们的其他医疗大模型开源项目
|
28 |
+
- 🚀 [ChatMed-Consult](https://huggingface.co/michaelwzhu/ChatMed-Consult) : 基于[中文医疗在线问诊数据集ChatMed_Consult_Dataset](https://huggingface.co/datasets/michaelwzhu/ChatMed_Consult_Dataset)的50w+在线问诊+ChatGPT回复作为训练集。模型主干为[LlaMA-7b](https://github.com/facebookresearch/llama),融合了[Chinese-LlaMA-Alpaca](https://github.com/ymcui/Chinese-LLaMA-Alpaca)的LoRA权重与中文扩展词表,然后再进行基于LoRA的参数高效微调。我们将全部代码都进行了公开;
|
29 |
+
- 🚀 [ChatMed-MT](https://huggingface.co/michaelwzhu/ChatMed-MT) : ChatMed-Consult的多轮对话版本,对已有的开源中文问诊数据集进行LLM自动改造,使得医生回复文本更加具有共情性,也更贴心与详细,由此训练的LLM在患者/用户体验上会更好。
|
30 |
+
- 🚀 [PromptCBLUE中文医疗大模型评测基准](https://github.com/michael-wzhu/PromptCBLUE): 将[CBLUE](https://tianchi.aliyun.com/dataset/95414)基准进行改造为提示学习模式,形成对大模型的中文医疗知识与医疗文本处理能力的评测基准。PromptCBLUE旨在采用一个生成式大模型即可完成医疗NLP相关的各种不同任务,如病历结构化,问诊,病例文书撰写等。
|
31 |
|
|
|
32 |
|
33 |
|
34 |
## 更新
|
35 |
|
36 |
+
2023/6/25 🚀 开源[中医药指令数据集ShenNong_TCM_Dataset](https://huggingface.co/datasets/michaelwzhu/ShenNong_TCM_Dataset)的v0.2版本,数据量达到11w+; 同时上传ShenNong-TCM模型checkpoint至[model](https://huggingface.co/michaelwzhu/ShenNong-TCM-LLM).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
37 |
|
38 |
+
2023/6/21 🚀 开源[中医药指令数据集ShenNong_TCM_Dataset](https://huggingface.co/datasets/michaelwzhu/ShenNong_TCM_Dataset)的v0.1版本,v0.2版本即将更新;
|
|
|
|
|
|
|
39 |
|
|
|
40 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
41 |
|
42 |
|
43 |
+
## 快速上手
|
44 |
|
45 |
+
如果同学们想要采用[中医药指令数据集ShenNong_TCM_Dataset](https://huggingface.co/datasets/michaelwzhu/ShenNong_TCM_Dataset)进行大模型微调,可以参考[ChatMed代码库](https://github.com/michael-wzhu/ChatMed)的代码和训练脚本;
|
46 |
|
47 |
## 效果对比
|
48 |
|
49 |
+
通过使用[中医药指令数据集ShenNong_TCM_Dataset](https://huggingface.co/datasets/michaelwzhu/ShenNong_TCM_Dataset)对中文LlaMA-7b模型进行LoRA微调,可使得该模型在回复中医药相关问题方面获得明显的提升。这里我们展示了5个典型中医药问题下不同模型的回复。更多测试样例见[More test examples](https://github.com/michael-wzhu/ChatMed/blob/main/src/web_services/test_examples/ChatMed-Consult_test.json)
|
50 |
|
51 |
|
52 |
+
| 问诊问题 | 中文LlaMA-7b | ShenNong-TCM |
|
53 |
+
|------|------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
54 |
+
| 腹痛怎么办啊? | 建议您尽快就医,并根据医生的指导进行治疗。 | 如果您感到腹部疼痛,以下是一些可能有用的建议:\n1. 首先休息一下。躺下或坐下来可以减轻症状并帮助身体恢复力量。\n2. 如果您有任何药物过敏史或者正在服用其他药品,请务必咨询医生的意见后再使用这���药膏、止疼剂等缓解痛苦的方法。\n3. 在饮食方面,避免食用辛辣食物和油腻食品,尽量选择清淡易消化的食物来减少肠胃负担。同时多喝水以保持水分平衡。\n4. 如果你的情况比较严重并且持续时间较长,最好去医院就诊寻求专业治疗。 |
|
55 |
+
| 大便时带血,怎么办? | 出现这种情况可能是由于肠道内出血或炎症引起的。建议及时就医检查确诊并进行治疗。 | 如果您的大便中出现了血液,可能是由于以下原因之一引起的:\n\n1.痔疮或肛裂 - 这种情况通常会导致排尿和排泄物的疼痛、瘙痒和其他不适症状。出血量可能会有所不同,从轻微到严重不等。\n2.肠炎或其他肠道疾病- 这些病症可能导致腹泻或者便秘以及其他胃肠道问题。出血量也可能因病情而异。\n3.直肠息肉 - 这是一种在直肠内形成的良性肿瘤状结构,可以引起不同程度的腹痛和出血。\n4.结肠癌 - 这种癌症是常见的消化系统恶性肿瘤类型之一,常常会引起严重的腹部痛苦并伴有贫血等问题。\n5.脱垂子宫颈糜烂 - 如果您正在怀孕并且出现这种情况,这很可能是由于宫颈糜烂所致。这种病变需要及时治疗以避免感染和流产的风险。\n\n建议立即就医寻求医生帮助进行诊断和治疗。 |
|
56 |
+
| 可以给我介绍一些治疗太阳经风寒证的中药吗? | 针灸、推拿等中医疗法,以及草药汤剂都可以用来缓解这种症状。 | 当出现太阳经风寒证时,可以考虑以下几种常用的中药进行治疗。这些药物具有温阳散寒、祛湿止痛的作用,能够缓解症状并促进身体康复。\n\n1. 当归(Angelica sinensis)-有活血化瘀和补气养血作用;\n2. 白芷 (Bai Zi) - 清热解毒,宣通鼻窍;\n3. 金银花(Honeysuckle, Jin Xin Hua)-清热解毒,凉血消肿;\n4. 陈皮 (Chen Pi) - 理气健脾,行滞化痰;\n5. 桂枝 (Gui Zhi) - 发汗解表,调和营卫。\n\n需要注意的是,在使用任何一种中药之前应该咨询医生或中医师的意见以确保安全有效性。 |
|
57 |
+
| 我感觉浑身乏力,且出现壮热症状。请推荐中医诊断和治疗方法。 | 建议您到医院进行检查以确定病因并制定相应的治疗方案;同时可以采用中药调理身体、增强免疫力等方法缓解病情。 | 根据您的描述,您可能患有感冒或流感等疾病引起的身体不适。建议及时就医并进行中西医疗诊以确定确切的病因及治疗方案。以下是一些常用的中药方剂供参考:\n\n1. 金银花清瘟胶囊:具有解毒、抗病毒的作用,适用于风寒感冒或者流行性感冒等病症。\n\n2. 三黄石膏颗粒:可清热解毒、祛湿止痛,常用于暑湿伤阳所致的身体酸软无力。\n\n3. 五味子饮片:有温肺散寒、益气固表之功效,可用于体虚畏冷、易感恶风的情况。\n\n4. 当归生姜羊肉汤:有益血活络、温暖脾胃作用,适合因寒冷导致的身体疲倦以及食欲不振的人群食用。\n\n需要注意的是,以上药物仅作为辅助治疗措施,具体用药应在医生指导下使用。同时,保持充足休息、饮食清淡、多喝水也是缓解病情的重要方法之一。 |
|
58 |
+
| 我牙齿疼痛,同时伴有口臭,有什么方法缓解? | 建议您及时到口腔医院就诊。牙周炎、龋齿等疾病可能导致牙齿痛和口臭等问题出现 | 您可以尝试以下几种方式来减轻牙痛和减少口腔异味:\n\n1.漱口盐水。将一茶匙食醋加入一杯温水中,搅拌均匀后用来漱口即可。这有助于杀死细菌并减轻口气。\n\n2.使用含氟的洗发剂或去屑产品。这些产品的成分含有一定量的氟化物,可帮助清洁牙齿表面,防止龋齿形成。\n\n3.刷牙时用软毛刷轻轻按摩牙齿边缘以去除食物残渣。\n\n4.定期去看牙医进行检查和治疗。如果出现严重的蛀洞或其他问题,及时修复可能会避免更严重后果。\n\n5.注意饮食健康,少吃甜食、碳酸饮料等易导致蛀牙的食物。 |
|
59 |
|
|
|
|
|
|
|
|
|
|
|
60 |
|
61 |
+
我们可以看到:
|
62 |
+
- ShenNong-TCM的回答会更加具有人性关怀一些,而中文LlaMA-7b模型的回复可能会比较生硬;
|
63 |
+
- ShenNong-TCM相较于中文LlaMA-7b模型的回答会更加丰富,具有更多可行的建议,特别是可以有效根据症状推荐方剂/中草药。
|
64 |
|
65 |
|
66 |
## 免责声明
|
67 |
|
68 |
- 本项目相关资源仅供学术研究之用,严禁用于商业用途。
|
69 |
+
- ShenNong-TCM作为基于语言模型的智能助手,其不能代替中医/西医进行医学诊断和给出医学建议。如有需要,请咨询专业医生或前往医院就诊。
|
70 |
+
- ShenNong-TCM系列模型正在快速迭代中,模型权重会定期进行更新。
|
71 |
+
- ShenNong-TCM系列模型基于开源数据,其训练数据的质和量都是有限的,其掌握的中医知识肯定是存在各种各样的缺陷。我们将会不断进行改进和更新。
|
72 |
|
73 |
|
74 |
## 致谢
|
|
|
78 |
- [LlaMA](https://github.com/facebookresearch/llama)
|
79 |
- [Stanford Alpaca](https://github.com/tatsu-lab/stanford_alpaca)
|
80 |
- [Chinese-LlaMA-Alpaca](https://github.com/ymcui/Chinese-LLaMA-Alpaca)
|
81 |
+
- [ChatMed](https://github.com/michael-wzhu/ChatMed)
|
82 |
|
83 |
+
Logo中的"神农"形象是由[midjourney](http://midjourney.com)自动生成。
|
84 |
|
85 |
|
86 |
## Citation
|