Home

Awesome

WiNGPT2

WiNGPT是一个医疗垂直领域大模型,旨在将专业的医学知识、医疗信息、数据融会贯通,为医疗行业提供智能化的医疗问答、诊断支持和医学知识等信息服务,提高诊疗效率和医疗服务质量。

更新日志

[2024/08/15] 开源 🤗WiNGPT2-Gemma-2-9B-Chat;医疗领域增量预训练权重🤗WiNGPT2-Gemma-2-9B-Base

[2024/04/24] 开源 🤗WiNGPT2-Llama3-8B-Chat;及其量化版模型🤗WiNGPT2-Llama3-8B-Chat-AWQ、🤗WiNGPT2-Llama3-8B-Chat-GGUF

[2024/04/23] 开源 基于Llama3-8b-base模型医疗领域增量预训练权重: 🤗WiNGPT2-Llama3-8B-Base

[2024/04/01] 更新 WiNEval 测评结果

[2024/03/05] 开源7B/14B-Chat-4bit模型权重: 🤗WiNGPT2-7B-Chat-4bit和🤗WiNGPT2-14B-Chat-4bit。

[2023/12/20] 新增用户微信群二维码,有效期到12月27日,扫码进群。

[2023/12/18] 发布卫宁健康医疗模型测评方案 WiNEval-MCKQuiz的评测结果。

[2023/12/12] 开源 WiNGPT2 14B模型权重: 🤗WiNGPT2-14B-Base 和 🤗WiNGPT2-14B-Chat。

[2023/11/02] 34B模型平台测试欢迎加入微信讨论群

[2023/10/13] 更新一个简单的Chatbot示例,可以进行简单的多轮对话。

[2023/09/26] 开源 WiNGPT2 与7B模型权重: 🤗WiNGPT2-7B-Base 和 🤗WiNGPT2-7B-Chat。

目录

介绍

WiNGPT(卫宁健康医疗语言大模型,以下简称WiNGPT)的研发和训练工作开始于2023年1月。

3月,卫宁健康人工智能实验室已完成了WiNGPT1可行性验证并开始内测。WiNGPT1采用通用的GPT架构、62亿参数,实现了从预训练到微调的全过程自研。

今年5月,WiNGPT1训练的数据量已达到9720项药品知识、 18个药品类型、7200余项疾病知识、 2800余项检查检验知识、53本书籍知识、1100余份指南文档,总训练Token数达37亿。

7月,WiNGPT升级到7B并采用最新的模型架构,新增检索式增强生成能力,同时开始了13B模型的训练和行业邀测。

9月,WiNGPT迎来最新版本迭代,推出了全新的WiNGPT2,新版本可以被轻松扩展和个性化并用于下游各种应用场景。

12月,WiNGPT3上线,具备图文聊天功能的大语言模型。

为了回馈开源社区我们尝试开源了WiNGPT2-7B/14B版本。我们的初衷是希望通过更多的开源项目加速医疗语言大模型技术与行业的共同发展,最终惠及我们人类健康。

特点

如何使用

下载

🤗下载地址:

WiNGPT2-7B-Base

WiNGPT2-7B-Chat

WiNGPT2-14B-Base

WiNGPT2-14B-Chat

WiNGPT2-7B-Chat-4bit

WiNGPT2-14B-Chat-4bit

WiNGPT2-Llama3-8B-Base

WiNGPT2-Llama3-8B-Chat

WiNGPT2-Llama3-8B-Chat-AWQ

WiNGPT2-Llama3-8B-Chat-GGUF

推理

from transformers import AutoModelForCausalLM, AutoTokenizer

model_path = "WiNGPT2-7B-Chat"
device = "cuda"

tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(model_path, trust_remote_code=True).to(device)
model = model.eval()


text = 'User: WiNGPT, 你好<|endoftext|>\n Assistant:'
inputs = tokenizer.encode(text, return_tensors="pt").to(device)
outputs = model.generate(inputs, repetition_penalty=1.1, max_new_tokens=1024)
response = tokenizer.decode(outputs[0])
print(response)

## 输出结果:你好!今天我能为你做些什么?<|endoftext|>

提示

WiNGPT2-7B-Chat使用了自定义的提示格式:

用户角色:User/Assistant

提示模板:User:[此处有空格]WiNGPT, 你好<|endoftext|>\n[此处有空格]Assistant:;多轮对话按此模板进行拼接,例如:

"User: WiNGPT, 你好<|endoftext|>\n Assistant:你好!今天我能为你做些什么?<|endoftext|>\n User: 你是谁?<|endoftext|>\n Assistant:"

解码时推荐使用repetition_penalty=1.1 [greedy search]

部署

简单的chatbot部署示例:

python demo.py

注意:需要安装gradio

企业服务

通过WiNGPT测试平台申请密钥或与我们取得联系

训练数据

模型卡

评测

1. 中文基础模型评估 C-EVAL(Zero-shot/Few-shot)

平均平均(Hard)兽医学基础医学临床医学医师资格
bloomz-mt-176B44.330.853.350.34250.1
Chinese LLaMA-13B33.327.334.83232.535
ChatGLM-6B*38.929.235.239.43739.5
baichuan-7B42.831.544.343.43547
Baichuan-13B53.636.757.1565257.3
Qwen-7B59.6416157.15663.9
WiNGPT2-7B-Base57.442.761.470.969.576.7

** 因当前发现MedQA-MCMLE存在数据泄露问题,我们去除了该评测表格。

** 目前公开测评存在一定局限性,结果仅供参考。

2. 卫宁健康医疗模型测评方案 WiNEval(Zero-shot)

<details><summary>MCKQuiz(客观题):17个科目分类13060选择题;输入问题和选项,让模型输出答案。根据标准答案判断对错,统计准确率。</summary><img src="./assets/客观题.png"/></details>

MSceQA(主观题):由细分领域场景题目构成,包含八大业务场景,17个一级分类和32个二级分类。使用人工/模型对模型的回答进行准确性、相关性、一致性、完整性、权威性评价,并参照标准答案对模型生成的答案进行评分。

更新时间:2024-04-03

WiNEval-MCKQuizWiNEval-MSceQA
模型平均分准确率5个维度平均分准确性相关性一致性完整性专业性
WiNGPT2-34B-0317-DPO85.188.18278.484.686.580.679.9
Qwen1.5-72B-Chat83.184.981.377.58485.878.980.5
WiNGPT2-34B-Chat81.287.075.371.277.284.467.676.2
qwen-14B-Chat71.466.876.173.079.484.070.074.0
WiNGPT2-14B-Chat70.668.272.969.274.681.467.671.8
WiNGPT2-13B-Chat67.765.170.367.273.476.863.470.8
Baichuan2-13B-Chat61.956.467.364.668.074.859.469.8
qwen-7B-Chat60.855.066.663.268.873.860.067.4
WiNGPT2-7B-Chat60.359.261.555.864.067.856.663.2
Baichuan2-7B-Chat58.548.668.466.070.076.860.069.2
MedicalGPT53.443.163.759.865.273.454.266.0

** 目前34B模型可以通过 WiNGPT 网站进行测试

应用

1. 药品助手

<details><summary>基于药品知识库进行 WiNGPT2 的药品知识问答,进一步解决大模型幻觉问题,产生更精确答案。</summary><img src="./assets/medicine_db.png"/></details>

2. 结构化输出

<details><summary>根据用户需求进行推理回答并按结构化 json 格式返回结果。</summary> <img src="./assets/struct_output.png"/> </details>

3. 影像报告生成

<details><summary>从胸片解析报告所见,再生成相应胸片报告结论,完成从读片到写报告的整个流程。</summary><img src="./assets/chestxr_analyzer.png"/></details>

** 注意上面的列举的应用案例包括了多项技术例如RAG、医学影像模型超出了项目范围,仅作为 WiNGPT2 应用于下游场景的示例。

多模态 - WiNGPT-3

目前有一些比较成熟的多模态方案, 如 DSVL(DeepSpeedViLModel)和 Llava。Llava 多模态方案使用两阶段训练方式,模型功能强大,但仅支持单图对话模式;DSVL 多模态方案支持多图多轮对话的方式,但对大语言模型内部结构进行了修改,导致语言能力降低。为了充分利用 Llava 和 DSVL方案各自的优点,我们决定将 DSVL 图文拼接方案与 Llava 两阶段方案融合,以此构建我们的模型方案。在训练多模态 WiNGPT 时,采用两阶段方案。第一阶段:冻结图像层和大语言模型 (LLM) 层,仅训练投影层 (projection layer), 投影层由两个Linear layer 和一个 LayerNrom 组合而成;第二阶段:冻结图像层,仅微调投影层和大语言模型层。详细内容可通过卫宁健康企业公众号获取医疗AI年度报告。

WiNGPT-3 目前已经开放 Alpha 版内测,请通过 WiNGPT 测试平台 获取内测资格。

局限性与免责声明

(a) WiNGPT2 是一个专业医疗领域的大语言模型,可为一般用户提供拟人化AI医生问诊和问答功能,以及一般医学领域的知识问答。对于专业医疗人士,WiNGPT2 提供关于患者病情的诊断、用药和健康建议等方面的回答的建议仅供参考。

(b) 您应理解 WiNGPT2 仅提供信息和建议,不能替代医疗专业人士的意见、诊断或治疗建议。在使用 WiNGPT2 的信息之前,请寻求医生或其他医疗专业人员的建议,并独立评估所提供的信息。

(c) WiNGPT2 的信息可能存在错误或不准确。卫宁健康不对 WiNGPT2 的准确性、可靠性、完整性、质量、安全性、及时性、性能或适用性提供任何明示或暗示的保证。使用 WiNGPT2 所产生的结果和决策由您自行承担。第三方原因而给您造成的损害结果承担责任。

许可证

  1. 本项目授权协议为 Apache License 2.0,模型权重需要遵守基础模型Qwen-7B相关协议及许可证,详细内容参照其网站。

  2. 使用本项目包括模型权重时请引用本项目:https://github.com/winninghealth/WiNGPT2

参考资料

  1. https://github.com/QwenLM/Qwen-7B
  2. https://github.com/lm-sys/FastChat
  3. https://github.com/yizhongw/self-instruct
  4. https://github.com/nlpxucan/evol-instruct

联系我们

网站:https://www.winning.com.cn

邮箱:wair@winning.com.cn

<img src="./assets/wechatgroup.jpg" width=300px />