[**中文**](./README.md) | [**English**](./README_EN.md)
<p align="center" width="100%">
<a href="https://github.com/SCIR-HI/Huatuo-Llama-Med-Chinese/" target="_blank"><img src="assets/logo/logo_new.png" alt="SCIR-HI-HuaTuo" style="width: 60%; min-width: 300px; display: block; margin: auto;"></a>
</p>
# 本草[原名:华驼(HuaTuo)]: 基于中文医学知识的大语言模型指令微调
### BenTsao (original name: HuaTuo): Instruction-tuning Large Language Models With Chinese Medical Knowledge
[![Code License](https://img.shields.io/badge/Code%20License-Apache_2.0-green.svg)](https://github.com/SCIR-HI/Huatuo-Llama-Med-Chinese/blob/main/LICENSE) [![Python 3.9+](https://img.shields.io/badge/python-3.9+-blue.svg)](https://www.python.org/downloads/release/python-390/)
本项目开源了经过中文医学指令精调/指令微调(Instruction-tuning) 的大语言模型集,包括LLaMA、Alpaca-Chinese、Bloom、活字模型等。
我们基于医学知识图谱以及医学文献,结合ChatGPT API构建了中文医学指令微调数据集,并以此对各种基模型进行了指令微调,提高了基模型在医疗领域的问答效果。
## News
**[2023/09/24]发布[《面向智慧医疗的大语言模型微调技术》](https://github.com/SCIR-HI/Huatuo-Llama-Med-Chinese/tree/main/doc/Tuning_Methods_for_LLMs_towards_Health_Intelligence.pdf)**
**[2023/09/12]在arxiv发布[《探索大模型从医学文献中交互式知识的获取》](https://arxiv.org/pdf/2309.04198.pdf)**
**[2023/09/08]在arxiv发布[《基于知识微调的大语言模型可靠中文医学回复生成方法》](https://arxiv.org/pdf/2309.04175.pdf)**
**[2023/08/07] 🔥🔥增加了基于[活字](https://github.com/HIT-SCIR/huozi)进行指令微调的模型发布,模型效果显著提升。🔥🔥**
[2023/08/05] 本草模型在CCL 2023 Demo Track进行Poster展示。
[2023/08/03] SCIR实验室开源[活字](https://github.com/HIT-SCIR/huozi)通用问答模型,欢迎大家关注🎉🎉
[2023/07/19] 增加了基于[Bloom](https://huggingface.co/bigscience/bloom-7b1)进行指令微调的模型发布。
[2023/05/12] 模型由"华驼"更名为"本草"。
[2023/04/28] 增加了基于[中文Alpaca大模型](https://github.com/ymcui/Chinese-LLaMA-Alpaca)进行指令微调的模型发布。
[2023/04/24] 增加了基于LLaMA和医学文献进行指令微调的模型发布。
[2023/03/31] 增加了基于LLaMA和医学知识库进行指令微调的模型发布。
## A Quick Start
首先安装依赖包,python环境建议3.9+
```
pip install -r requirements.txt
```
针对所有基模型,我们采用了半精度基模型LoRA微调的方式进行指令微调训练,以在计算资源与模型性能之间进行权衡。
### 基模型
- [活字1.0](https://github.com/HIT-SCIR/huozi),哈尔滨工业大学基于Bloom-7B二次开发的中文通用问答模型
- [Bloom-7B](https://huggingface.co/bigscience/bloomz-7b1)
- [Alpaca-Chinese-7B](https://github.com/ymcui/Chinese-LLaMA-Alpaca),基于LLaMA二次开发的中文问答模型
- [LLaMA-7B](https://huggingface.co/decapoda-research/llama-7b-hf)
### LoRA模型权重下载
LoRA权重可以通过百度网盘或Hugging Face下载:
1. 🔥对活字进行指令微调的LoRA权重文件
- 基于医学知识库以及医学问答数据集 [百度网盘](https://pan.baidu.com/s/1BPnDNb1wQZTWy_Be6MfcnA?pwd=m21s)
2. 对Bloom进行指令微调的LoRA权重文件
- 基于医学知识库以及医学问答数据集 [百度网盘](https://pan.baidu.com/s/1jPcuEOhesFGYpzJ7U52Fag?pwd=scir)和[Hugging Face](https://huggingface.co/lovepon/lora-bloom-med-bloom)
3. 对Alpaca进行指令微调的LoRA权重文件
- 基于医学知识库 [百度网盘](https://pan.baidu.com/s/16oxcjzXnXjDpL8SKihgNxw?pwd=scir)和[Hugging Face](https://huggingface.co/lovepon/lora-alpaca-med)
- 基于医学知识库和医学文献 [百度网盘](https://pan.baidu.com/s/1HDdK84ASHmzOFlkmypBIJw?pwd=scir)和[Hugging Face](https://huggingface.co/lovepon/lora-alpaca-med-alldata)
4. 对LLaMA进行指令微调的LoRA权重文件
- 基于医学知识库 [百度网盘](https://pan.baidu.com/s/1jih-pEr6jzEa6n2u6sUMOg?pwd=jjpf)和[Hugging Face](https://huggingface.co/thinksoso/lora-llama-med)
- 基于医学文献 [百度网盘](https://pan.baidu.com/s/1jADypClR2bLyXItuFfSjPA?pwd=odsk)和[Hugging Face](https://huggingface.co/lovepon/lora-llama-literature)
下载LoRA权重并解压,解压后的格式如下:
```
**lora-folder-name**/
- adapter_config.json # LoRA权重配置文件
- adapter_model.bin # LoRA权重文件
```
基于相同的数据,我们还训练了医疗版本的ChatGLM模型: [ChatGLM-6B-Med](https://github.com/SCIR-HI/Med-ChatGLM)
### Infer
我们在`./data/infer.json`中提供了一些测试用例,可以替换成其它的数据集,请注意保持格式一致
运行infer脚本
```
#基于医学知识库
bash ./scripts/infer.sh
#基于医学文献
#单轮
bash ./scripts/infer-literature-single.sh
#多轮
bash ./scripts/infer-literature-multi.sh
```
infer.sh脚本代码如下,请将下列代码中基模型base_model、lora权重lora_weights以及测试数据集路径instruct_dir进行替换后运行
python infer.py \
--base_model 'BASE_MODEL_PATH' \
--lora_weights 'LORA_WEIGHTS_PATH' \
--use_lora True \
--instruct_dir 'INFER_DATA_PATH' \
--prompt_template 'TEMPLATE_PATH'
**_提示模板的选择与模型相关,详情如下:_**
| 活字&Bloom | LLaMA&Alpaca |
|:------------------------------|:--------------------------------------------------------------------------------------|
| `templates/bloom_deploy.json` | 基于医学知识库`templates/med_template.json` <br> 基于医学文献`templates/literature_template.json` |
也可参考`./scripts/test.sh`
## 方法
基模型在医学问答场景下效果有限,指令微调是一种高效的使基模型拥有回答人类问题能力的方法。
### 数据集构建
#### 医学知识库
我们采用了公开和自建的中文医学知识库,主要参考了[cMeKG](https://github.com/king-yyf/CMeKG_tools)。
医学知识库围绕疾病、药物、检查指标等构建,字段包括并发症,高危因素,组织学检查,临床症状,药物治疗,辅助治疗等。知识库示例如下:
```
{"中心词": "偏头痛", "相关疾病": ["妊娠合并偏头痛", "恶寒发热"], "相关症状": ["皮肤变硬", "头部及眼后部疼痛并能听到连续不断的隆隆声", "晨起头痛加重"], "所属科室": ["中西医结合科", "内科"], "发病部位": ["头部"]}
```
我们利用GPT3.5接口围绕医学知识库构建问答数据,设置了多种Prompt形式来充分利用知识。
指令微调的训练集数据示例如下:
```
"问题:一位年轻男性长期使用可卡因,突然出现胸痛、呕吐、出汗等症状,经检查发现心电图反映心肌急性损伤,请问可能患的是什么疾病?治疗方式是什么?"
回答: 可能患的是心肌梗塞,需要进行维拉帕米、依普利酮、硝酸甘油、ß阻滞剂、吗啡等药物治疗,并进行溶栓治疗、低分子量肝素、钙通道阻滞剂等辅助治疗。此外需要及时停用可卡因等药物,以防止病情加重。"
```
我们提供了模型的训练数据集,共计八千余条,需要注意的是,虽然训练集的构建融入了知识,但是仍存在错误和不完善的地方,后续我们会利用更好的策略迭代更新数据集。
指令微调数据集质量仍有限,后续将进行不断迭代,同时医学知识库和数据集构建代码还在整理中,整理完成将会发布。
#### 医学文献
此外,我们收集了2023年关于肝癌疾病的中文医学文献,利用GPT3.5接口�
没有合适的资源?快使用搜索试试~ 我知道了~
基于中文医学知识的大语言模型指令微调,包括LLaMA、Alpaca-Chinese、Bloom、活字模型等
共31个文件
py:8个
json:6个
sh:5个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 83 浏览量
2023-11-22
11:05:07
上传
评论
收藏 9.76MB ZIP 举报
温馨提示
基于医学知识图谱以及医学文献,结合ChatGPT API构建了中文医学指令微调数据集,并以此对各种基模型进行了指令微调,提高了基模型在医疗领域的问答效果。
资源推荐
资源详情
资源评论
收起资源包目录
huatuo-llama-main.zip (31个子文件)
huatuo-llama-main
data-literature
liver_cancer.json 1024KB
assets
wechat.jpg 169KB
case.png 542KB
logo
logo_new.png 192KB
logo.png 211KB
wechat_group.jpg 202KB
doc
Tuning_Methods_for_LLMs_towards_Health_Intelligence.pdf 8.49MB
data
infer.json 1KB
llama_data.json 2.8MB
LICENSE 11KB
finetune.py 10KB
infer.py 4KB
utils
__init__.py 0B
prompter.py 2KB
README.md 123B
templates
literature_template.json 249B
med_template.json 366B
bloom_deploy.json 353B
infer_literature.py 4KB
README_EN.md 15KB
generate.py 5KB
export_hf_checkpoint.py 1KB
requirements.txt 211B
.gitignore 155B
README.md 16KB
export_state_dict_checkpoint.py 4KB
scripts
infer-literature-single.sh 698B
infer.sh 668B
infer-literature-multi.sh 702B
finetune.sh 313B
test.sh 1KB
共 31 条
- 1
资源评论
云哲-吉吉2021
- 粉丝: 3981
- 资源: 1129
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功