- 中文医疗大语言模型
- 大规模训练:PULSE模型使用约4,000,000个中文医学领域和通用领域的指令微调数据进行进一步调优。
- 全面的中文医学自然语言处理任务:PULSE支持医学领域的各种自然语言处理任务,包括健康教育、医师考试问题、报告解读、医疗记录结构化以及模拟诊断和治疗。
- PULSE-7b (本模型基于bloomz-7b1-mt进行微调)
- 如果您需要更大的模型或者量化后的版本,欢迎联系我们建立合作。
- 本开源模型仅供医疗领域研究使用,尽管我们努力提供准确和最新的信息,但我们不能保证所提供信息的准确性、完整性或相关性,如使用本项目所含模型及其修改版本提供服务产生误导性或有害性言论,造成不良影响,与本项目无关。
- 由于模型参数量较小和自回归生成范式,尽管模型提供了有关疾病诊断和治疗的推理结果,但这些结果不能代替线下职业医生的建议和治疗方案。所有回答仅供参考,不应作为诊断或治疗的依据。我们强烈建议用户在需要诊断或治疗疾病时,寻求专业医生的帮助和建议。
model_name | model_size | ALL | MedQA_Mainland | PromptCBLUE | webMedQA |
---|---|---|---|---|---|
GPT4 | 220B*8(?) | 1206 | 1097 | 1188 | 1139 |
PULSE_176b int4 | 176B | 1136 | 1084 | 1118 | 1083 |
ChatGPT | 175B(?) | 1126 | 1060 | 1120 | 1087 |
PULSE_14b w/ prompt | 14B | 1071 | 990 | 1042 | 1122 |
PULSE_7b w/ prompt | 7B | 1065 | 1008 | 1046 | 1080 |
PULSE_7b | 7B | 1049 | 1016 | 1051 | 1037 |
ChatGLM 2 | 6B | 1012 | 1023 | 994 | 1007 |
HuatuoGPT_7b | 7B | 953 | 1004 | 897 | 991 |
QiZhenGPT | 13B | 902 | 905 | 908 | 975 |
BianQue | 6B | 889 | 893 | 874 | 996 |
Med-ChatGLM | 6B | 818 | 954 | 873 | 791 |
BenTsao | 7B | 802 | 920 | 870 | 803 |
DoctorGLM | 6B | 779 | 896 | 852 | 801 |
- 为了平衡成本,我们主要采用GPT4进行评估。如QLoRA 论证,单纯GPT4打分进行模型的对比随机波动性较大。这与我们的观察一致。因此采用了QLoRA 推荐的,现在比较普遍采用的Elo Rating tournament评测方法。
评估数据集 [eval/data]
- MedQA_Mainland: 从MedQA的Mainland/test子集中抽150条
- PromptCBLUE: 从PromptCBLUE的test子集中抽150条
- webMedQA: 从webMedQA的test子集中抽150条
- GPT4
- ChatGPT
- PULSE_176b int4 量化至int4
- PULSE_14b w/ prompt 加入了针对不同场景设计的prompts
- PULSE_7b w/ prompt 加入了针对不同场景设计的prompts
- PULSE_7b
- ChatGLM2
- HuatuoGPT_7b (Backbone: Baichuan-7B)
- QiZhenGPT (QiZhen-CaMA-13B-Checkpoint-6000)
- BianQue (BianQue-2.0)
- Med-ChatGLM
- BenTsao (lora-alpaca-med-alpaca-alldata)
- DoctorGLM (p-tuningv2)
- 出于成本考虑,我们选择每个数据集进行360轮随机评估,随机选择模型PK的先后顺序以抵消先后顺序的影响,随机种子为:42。Elo rating的实现代码和其他超参参照Vicuna的Elo代码: K=8, init rating=1000。
XrayPULSE
一款将医疗大语言模型PULSE与X-ray图像模型结合的应用,实现了多模态会话功能。
PULSE-COVID-19
一个基于PULSE微调且结合了广州实验室内部COVID-19知识数据库语料库的模型。
病历结构化 (建设中)
一个基于PULSE模型的结构化工具,旨在帮助用户处理和分析文本数据。它提供了单选、多选、信息提取等功能。
术语归一化
一个基于PULSE模型的医疗术语归一化的应用,归一化的任务是将临床上同一种诊断、手术、药品、检查、症状等各种不同的说法对应到标准用词上。
知识库问答
一款基于PULSE开发的聊天机器人,用户可以自己添加相关知识库,以开发更丰富的应用场景。
健康科普
医师考题
报告解读
模拟诊疗
医学无关问题无害处理
下表提供了一个batch size=1时本地部署PULSE进行推理所需的显存大小。
量化等级 | 加载模型 |
---|---|
FP16 | 14GB |
- 下载本仓库内容至本地/远程服务器
git clone https://github.com/openmedlab/PULSE
cd PULSE
- 创建conda环境安装依赖
conda env create -f llm.yml
conda activate llm
其中torch
和transformers
版本不建议低于推荐版本。
Gradio
python web_demo_gradio.py
您可以运行仓库中的cli_demo.py
来启动一个简单的命令行Demo:
python cli_demo.py
- xxxxx - 关于PULSE及其相关技术的分享
如果您有其他开源项目使用或改进PULSE,欢迎提交Pull Request添加到README或在Issues中联系我们。
- 上海人工智能实验室
- 上海交通大学-清源研究院
- 华东理工大学-自然语言处理与大数据挖掘实验室
本项目所含代码采用Apache 2.0协议,模型权重采用GNU AGPL 3.0协议。