DISC-MedLLM—中文医疗健康助手

news2024/11/27 6:16:43

文章目录

  • DISC-MedLLM 项目介绍
  • 数据集构建
    • 重构AI医患对话
    • 知识图谱生成问答对
      • 医学图谱构建
      • 图谱生成QA对
    • 人类偏好引导的对话样例
    • 其他数据
      • MedMCQA
      • 通用数据
  • 模型微调
  • 评估
    • 评估方式
    • 评估结果
  • 总结

DISC-MedLLM 项目介绍

DISC-MedLLM 是一个专门针对医疗健康对话式场景而设计的医疗领域大模型,它可以满足您的各种医疗保健需求,包括疾病问诊和治疗方案咨询等,为您提供高质量的健康支持服务。项目由复旦大学数据智能与社会计算实验室 (Fudan-DISC)开发并开源。
论文:DISC-MedLLM: Bridging General Large Language Models and Real-World Medical Consultation
主页地址:https://med.fudan-disc.com/来试用模型。

效果展示
在这里插入图片描述

  • 用户在感到身体不适时,可以向模型问诊,描述自身症状,模型会给出可能的病因、推荐的治疗方案等作为参考,在信息缺乏时会主动追问症状的详细描述。
    比如:出现腹泻和发烧的症状。可能得了什么病?

  • 用户还可以基于自身健康状况,向模型提出需求明确的咨询问题,模型会给予详尽有助的答复,并在信息缺乏时主动追问,以增强回复的针对性和准确性。
    比如:最近睡眠质量差,有什么改善睡眠的方法?

  • 用户还可以询问与自身无关的医学知识,此时模型会尽可能专业地作答,使用户全面准确地理解。
    比如:抗生素一般是用来治疗感冒还是病毒?

Github 地址:https://github.com/FudanDISC/DISC-MedLLM
该项目包含下列开源资源:

  • DISC-Med-SFT 数据集 (不包括行为偏好训练数据)
  • DISC-MedLLM 的模型权重

其中 DISC-Med-SFT 数据集包含了约47W的高质量指令数据,数据形式为多轮对话,数据样例如下:

[ { “role”: “user”, “content”:
“颈椎病。主任你好!这两天双肩膀不疼了。现在就是头发胀。我不知道是不是我头动多了引起的。” },
{ “role”:“assistant”, “content”:
“您好,非常高兴听到您的肩膀不再疼痛了。根据您的描述,头发胀可能与颈椎问题有关。颈椎病常常会引起头痛和不适感。建议您进行颈椎治疗,以缓解症状。”},
{ “role”: “user”, “content”:
“你好医生!请问手术后睡觉头要不要垫枕头睡觉,不用枕头睡觉可以吗?” },
{ “role”: “assistant”, “content”:
“手术后的睡眠姿势对颈椎康复很重要。如果您仰卧睡觉,可以不使用枕头,因为这样有助于保持颈椎的正常位置。但如果您侧卧睡觉,建议使用高枕头,以保持肩膀的高度与颈椎的正位。最好是左右各放一枕头,高度与您的肩宽相当,这样可以更好地支撑颈椎。”},
{ “role”: “user”, “content”:
“谢谢。” },
{ “role”: “assistant”,“content”: "
不客气。如果您需要进一步的咨询或治疗,可以咨询南京市中西医结合医院疼痛科的周建斌主任。他会给您提供专业的帮助。" }
]

DISC-MedLLM 有效地对齐了医疗场景下的人类偏好,弥合了通用语言模型输出与真实世界医疗对话之间的差距,这一点在实验结果中有所体现。

得益于以目标为导向的策略,以及基于真实医患对话数据和知识图谱,引入LLM in the loop 和 Human in the loop的多元数据构造机制。
在这里插入图片描述
DISC-MedLLM具有的三个显著特点:

1. 可靠丰富的专业知识:将医学知识图谱作为信息源,利用采样三元组的方法,结合通用大模型的语言能力,构建对话样本。这一独特的构建方式赋予了DISC-MedLLM丰富的专业知识,使其能够在医疗对话中提供可靠且充实的信息,满足用户的需求。

2. 多轮对话的问询能力:为了确保DISC-MedLLM能够胜任复杂的多轮医疗对话,以真实咨询对话记录作为信息源,利用大模型进行对话重建。在构建过程中,追求模型对话的完全对齐,特别注重对医学信息的准确呈现。这一特性使DISC-MedLLM成为一个多轮对话的专家,能够深入理解和回应患者的各种疑虑和问题。

3. 对齐人类偏好的回复:在医疗咨询过程中,患者常常期望获得更多的支撑信息和背景知识,然而,人类医生的回答通常较为简洁。为了满足患者的需求,采取了一项创新的举措,通过人工筛选,构建了符合人类偏好的高质量小规模行为微调样本。这使得DISC-MedLLM的回复能够更好地对齐患者的期望,为他们提供更丰富和满意的支持。
总之,DISC-MedLLM以其可靠的专业知识多轮对话的问询能力对齐人类偏好的回复而脱颖而出。算是大语言模型在医疗领域的一项创新,为在线问诊和医患交流场景提供了可行的智能化解决方案。

数据集构建

为了训练DISC-MedLLM,项目构建了一个名为DISC-Med-SFT的高质量数据集,包含超过470k个例子,来源于现有的医学数据集。这个综合的数据集包括各种场景,包括单轮医学问答,多轮医学咨询和医学多选题。此外,还加入了超过34k个通用域对话和指令样本。有关所使用的数据集的详细信息如下:
在这里插入图片描述

重构AI医患对话

项目选择两个公共数据集作为真实世界对话记录的来源,分别是MedDialog和cMedQA2。MedDialog包含超过300万个医生和患者之间的多轮对话,话题集中在医疗咨询场景上。cMedQA2包含10.8万个单轮对话,包括咨询和指导情况。通过使用关键字过滤和命名实体识别过滤记录后,分别从每个数据集中随机选择40万和2万个样本作为SFT数据集构建的源样本。

真实世界的对话在语言模式和表达风格上具有噪声,而且医生的回答可能不与AI医生的身份一致。为了获得高质量的对话样本,论文中利用通用LLM的语言能力重建整个对话。为GPT-3.5设计的提示,遵循以下几条规则:

删除口语表达,解决医生语言使用的不一致性,并从LLM中提炼出更加统一的表达方式。

遵循原始医生回答的关键信息,并根据此提供适当的解释和补充,以更详细和逻辑的方式重新表述原始答案。

重写或删除AI医生不应作出的回答,例如查看影像材料或要求患者预约挂号等。

在这里插入图片描述
下图是一个对话重建的示例。红色文本表示来源于现实世界的知识或行为模式对话记录,而蓝色文本表示重建过程中引入的内容。
在这里插入图片描述

知识图谱生成问答对

医学图谱构建

医学知识图谱生成使用了CMeKG项目,它是利用自然语言处理与文本挖掘技术,基于大规模医学文本数据,以人机结合的方式研发的中文医学知识图谱。包含关系抽取、医学实体识别、医学文本分词

图谱生成QA对

医学知识图谱包含大量组织良好的医学专业知识。基于它生成问答训练样本可以获得比真实世界样本相对较低噪声的数据。项目基于一个包含超过1万种疾病、近2万种药物和超过1万种症状的中文医学知识图谱构建了QA对。以疾病为中心,根据疾病节点的科室信息对知识图进行采样,遵循原始MedDialog数据中的科室分布。通过两步来获得QA对。

步骤1:利用GPT-3.5的强大能力,首先将所选的知识转化为简单的自然语言QA对。关于疾病的信息知识提供给GPT-3.5,并转换为以“指示,知识”格式表示的自然语言。
在这里插入图片描述
步骤2:基于这些简单的QA对,GPT-3.5将它们转化为医学场景下的单轮对话,提高了它们的多样性和语言表达的丰富性
在这里插入图片描述

人类偏好引导的对话样例

为了进一步提高模型的性能并更紧密地将其响应和行为与人类偏好对齐,需要利用更高质量的数据集,在最终训练阶段的二次监督微调中更紧密地与人类偏好对齐。项目作者从MedDialog和cMedQA2数据集中手动选择大约2,000个高质量、多样化的样本,这些样本在之前的数据构建过程中没有使用。

根据样本的咨询场景、疾病严重程度和其他变量,作者选择几个例子由GPT-4重建,然后手动修改它们以更紧密地与人类对AI医生行为和响应质量的偏好对齐。随后,采用few-shot方法,将这些例子提供给GPT-3.5,在人类监督下生成2,000个高质量的行为调整样本。

其他数据

MedMCQA

是一个英文医学领域的多选题Q&A数据集,并为每个问题提供了专家注释的解释。作者利用它来生成专业的医学QA样本,以增强模型在Q&A能力方面的专业知识。使用GPT-3.5对多选题中的问题和答案进行精炼和纠正,并结合解释生成QA格式样本,然后将其翻译成中文。通过这种方法,构建了大约8k个样本,其中大约2k个样本保留了多选题格式,并直接翻译成中文。

通用数据

项目使用了通用的数据来丰富模型的训练集,减轻了模型在SFT训练阶段基础能力下降的风险。具体而言,借鉴了两个通用领域监督微调数据集:moss-sft-003alpaca gpt4数据。从moss-sft-003中,提取了来自头脑风暴、角色扮演和无害类别的数据,随机选择了33k个样本。对于alpaca gpt4数据,考虑到它仅在训练的最后阶段使用,样本量已减少,随机采样了1k个实例。

模型微调

DISC-MedLLM 的训练过程分为两个 SFT 阶段。
在这里插入图片描述
第一阶段:使用大量样本来灌输模型医学知识和对话能力,包括42万调整后的AI医生-患者对话数据集、5万构建的知识图谱QA对、MedMCQA和moss-sft-003数据。此训练过程的超参数设置如下:全局批大小为24,使用AdamW优化器的学习率为1e-5,1个epoch,最大序列长度为2048 tokens, warm up步骤为1800,不使用权重衰减。

• 第二阶段:在此阶段,训练模型以在行为模式、有用性等方面与人类偏好对齐,使它在医学对话场景中表现更好。采用2k精心制作的偏好对齐行为偏好数据集,并将其与1k alpaca gpt4数据数据结合进行训练。此训练过程的超参数设置如下:全局批大小为8,使用AdamW优化器的学习率为5e-6,1个epoch,最大序列长度为2048 tokens,不使用权重衰减。

DISC-MedLLM 是基于Baichuan-13B-Base训练得到的,两个阶段的训练都是在4块A800的GPU上完成的。

评估

评估方式

评测包含单轮和多轮评测

单轮对话评测
使用公开数据集MLEC-QA和NEEP的多项选择题来评估不同系统,并使用准确度作为度量标准,评测模型在单轮 QA 中的表现。。其中,NMLEC为国家医疗执业医师资格考试,NEEP 306为全国硕士研究生入学考试 西医 306 专业。

多轮对话评测:为了系统性评估模型的对话能力,从三个公共数据集 —— 中文医疗基准评测(CMB-Clin)、中文医疗对话数据集(CMD)和中文医疗意图数据集(CMID)中随机选择样本并由 GPT-3.5 扮演患者与模型对话,提出了四个评测指标 —— 主动性、准确性、有用性和语言质量,由 GPT-4 打分。

  • 主动性:当信息不足时,医生能够主动且明确地请求患者提供更多信息。
  • 准确性:医生提供的诊断或建议准确无误,没有事实错误。结论不是随意得出的。
  • 帮助性:医生能够为患者提供清晰、指导性和实用的帮助,以解决患者的疑虑。
  • 语言质量:医生正确理解了患者的查询,回应的表达流畅自然。

评估结果

模型对比。将DISC-MedLLM与三个通用 LLM 和两个中文医学对话 LLM 进行比较。包括 OpenAI 的 GPT-3.5, GPT-4, Baichuan-13B-Chat; BianQue-2 和 HuatuoGPT-13B。

单轮 QA 结果。多项选择题评测的总体结果在下表中。GPT-3.5 展现出明显的领先优势。DISC-MedLLM 在小样本设置下取得第二名,在零样本设置中落后于 Baichuan-13B-Chat,排名第三。其表现还优于采用强化学习设置训练的 HuatuoGPT (13B)。
在这里插入图片描述
多轮对话结果。DISC-MedLLM在CMB-Clin评估中获得了总分最高的分数,并且在积极性标准方面获得了最高分,这强调了DISC-MedLLM对医学模型行为模式的定制方法的有效性。在CMD和CMID样本中,GPT-4和GPT-3.5保持领先地位,但DISC-MedLLM的表现最好,在症状、治疗计划和药物三个意图类别中优于HuatuoGPT。各种模型在CMB-Clin和CMD/CMID之间的表现不一致可能主要是由三个数据集中不同的数据分布导致的。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结

DISC-Med-SFT 数据集利用现实世界对话和通用领域 LLM 的优势和能力,对三个方面进行了针对性强化:领域知识、医学对话技能和与人类偏好;高质量的数据集训练了出色的医疗大模型 DISC-MedLLM,在医学交互方面取得了显著的改进,表现出很高的可用性,显示出巨大的应用潜力。

该领域的研究将为降低在线医疗成本、推广医疗资源以及实现平衡带来更多前景和可能性。DISC-MedLLM 将为更多人带来便捷而个性化的医疗服务,为大健康事业发挥力量。

尽管生成模型在医学交互的可用性方面取得了显著的改进,包括语言流畅性、语义理解和推荐的相关性等方面,但准确性仍然是一个令人担忧的问题。特别是在医学领域,传播错误或欺骗性的信息比在其他领域具有更严重的伦理和实际影响。目前,存在明显的差距,缺乏能够加强LLM在医学语境下的精度的稳健方法。使用检索引擎来增强LLM的响应是潜在的途径,但需要克服重大的障碍,如建立全面的文档库和确保检索器和查询语义之间的对齐。提高LLM在医疗保健领域的准确性是一个紧迫的挑战,需要更深入的调查和探索。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1318737.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

「斗破年番」小医仙黑皇城遭调戏,五品丹换药材,获取菩提涎消息

Hello,小伙伴们,我是拾荒君。 《斗破苍穹年番》的第75集已经更新了,喜欢这部国漫的小伙伴应该都去观看了吧,拾荒君也是看了看这一集。在这一集中,萧炎成功地帮助吴昊等人摆脱了鹰爪老人的围困,然后便前往了黑皇城。 黑…

openGauss学习笔记-163 openGauss 数据库运维-备份与恢复-导入数据-使用COPY FROM STDIN导入数据-简介

文章目录 openGauss学习笔记-163 openGauss 数据库运维-备份与恢复-导入数据-使用COPY FROM STDIN导入数据-简介163.1 关于COPY FROM STDIN导入数据163.2 CopyManager类简介163.2.1 CopyManager的继承关系163.2.2 构造方法163.2.3 常用方法 openGauss学习笔记-163 openGauss 数…

torch中张量与数据类型的介绍

PyTorch张量的定义介绍 PyTorch最基本的操作对象是张量,它表示一个多维数组,类似NumPy的数组,但是前者可以在GPU上加速计算 初始化张量 ttorch.tensor([1,2]) # 创建一个张量 print(t) t.dtype #打印t的数据类型为torch.int…

Vue 指定class区域增加水印显示(人员姓名+时间)

效果 代码,存放位置 /utils/waterMark.js //waterMark.js文件let waterMark {}let setWaterMark (str,str1) > {let id 1.23452384164.123412416;if (document.getElementById(id) ! null) {//ui-table是table上的一个样式,一般水印显示在这个tab…

visual stdio code运行js没有输出

visual code运行js没有输出 先Debug file 然后右键直接run code就会输出了 插件的安装 visual stdio code插件安装 c qt wordle游戏实现

RK3568平台(网络篇)添加网络交换芯片RTL8306M

一.硬件原理图 分析: 该交换芯片支持I2C、SPI、mdio通信,但是看ast1520的uboot代码采用的是mdio去通信phy芯片的,所以暂时也先采用mdio的方式,需要配置相应的引脚才可以配置成mdio通信模式,具体的配置硬件工程师解决。…

代码随想录算法训练营Day4 | 24.两两交换链表中的节点、19.删除链表的倒数第 N 个节点、面试题. 链表相交、142.环形链表II

LeetCode 24 两两交换链表中的节点 本题要注意的条件: 遍历终止条件改变引用指向的时候,需要保存一些节点记录 为了更好的操作链表,我定义了一个虚拟的头节点 dummyHead 指向链表。如下图所示 既然要交换链表中的节点,那么肯定…

Ribbon使用

Ribbon :处理客户端负载均衡和容错的解决方案 配置Ribbon的负载均衡 Rule接口: 定义客户端负载均衡的规则 RandomRule :随机选择RoundRobinRuleZoneAvoidanceRule 配置ribbon的负载均衡策略 在配置文件中配置 user-center:ribbon:NFLoadBalancerRul…

网络安全项目实战(六)--报文检测

11. NTP应用协议报文解析 目标 了解NTP协议了解NTP包基本捕获方式了解NTP协议探测(解析)方法(简单方法) 11.1. 使用ntpdate同步网络时间 安装 $ sudo apt-get install ntpdate对时服务 查看时间 $ date #date可以查看当前系…

Jupyter Notebook: 交互式数据科学和编程工具

Jupyter Notebook: 功能强大的交互式编程和数据科学工具 简介 Jupyter Notebook是一个开源的Web应用程序,广泛用于数据分析、科学计算、可视化以及机器学习等领域。它允许创建和共享包含实时代码、方程式、可视化和解释性文本的文档。总而言之,我认为它…

PLC、RS485、变频器通讯接线图详解

plc与变频器两者是一种包含与被包含的关系,PLC与变频器都可以完成一些特定的指令,用来控制电机马达,PLC是一种程序输入执行硬件,变频器则是其中之一。 但是PLC的涵盖范围又比变频器大,还可以用来控制更多的东西&#x…

excel可视化看板【动态关联公司、部门、人员、及时间】

昨天网友花钱定制了一个可视化报表,花了一整天时间,做了这份酷炫的可视化报表,右边按钮控件可以动态关联可视化图表 做这种这重要是数据的统计,只要能统计到,剩下的只是如何展示,慢慢的调整,美…

【复杂网络分析与可视化】——通过CSV文件导入Gephi进行社交网络可视化

目录 一、Gephi介绍 二、导入CSV文件构建网络 三、图片输出 一、Gephi介绍 Gephi具有强大的网络分析功能,可以进行各种网络度量,如度中心性、接近中心性、介数中心性等。它还支持社区检测算法,可以帮助用户发现网络中的群组和社区结构。此…

计算机网络 网络层上 | IP数据报,IP地址,ICMP,ARP等

文章目录 1 网络层的两个层面2 网络协议IP2.1 虚拟互联网络2.2 IP地址2.2.1 固定分类编址方式2.2.2 无分类编制CIDR2.2.3 MAC地址和IP地址区别 2.3 地址解析协议ARP2.3.1 解析过程 2.4 IP数据报格式 3 IP层转发分组流程4 国际控制报文协议ICMP4.1 ICMP格式结构4.2 分类4.2.1 差…

快速排序(一)

目录 快速排序(hoare版本) 初级实现 问题改进 中级实现 时空复杂度 高级实现 三数取中 快速排序(hoare版本) 历史背景:快速排序是Hoare于1962年提出的一种基于二叉树思想的交换排序方法 基本思想&#xff1a…

强制性产品认证车辆一致性证书二维码解析

目录 说明 界面 下载 强制性产品认证车辆一致性证书二维码解析 说明 二维码扫描出的信息为: qW0qS6aFjU50pMOqis0WupBnM21DnMxy0dGFN/2Mc9gENXhKh0qEBxFgfXSLoR qW0qS6aFjU50pMOqis0WupBnM21DnMxy0dGFN/2Mc9gENXhKh0qEBxFgfXSLoR 解析后的信息为&#xff1a…

20来岁,大专毕业,学软件测试可行吗?

转行软件测试找不到工作! 转行软件测试找不到工作! 转行软件测试找不到工作! 重要的事情说三遍!千万别听培训班咨询老师给你画饼 ;我就是某某软件测试培训班出来的,大专,其他专业毕业&#x…

初级数据结构(六)——堆

文中代码源文件已上传&#xff1a;数据结构源码 <-上一篇 初级数据结构&#xff08;五&#xff09;——树和二叉树的概念 | NULL 下一篇-> 1、堆的特性 1.1、定义 堆结构属于完全二叉树的范畴&#xff0c;除了满足完全二叉树的限制之外&#xff0c;还满…

小程序商城活动页面怎么生成二维码

背景 小程序商城某些页面需要做成活动推广页&#xff0c;或需要某一个页面做成二维码进行推广。比如某些非公开的商品做成一个活动&#xff0c;发送指定部分用户&#xff0c;这个活动页面可以做成二维码。 前提 小程序已经上线 步骤 登录微信小程序官网&#xff0c;选择工具…

数据库交付运维高级工程师-腾讯云TDSQL

数据库交付运维高级工程师-腾讯云TDSQL上机指导&#xff0c;付费指导&#xff0c;暂定99