北邮团队在Nature Medicine发表MedFound——辅助疾病诊断的通用医学语言模型|顶刊速递·25-01-15

server/2025/1/16 20:24:17/

小罗碎碎念

这篇文章介绍了一个名为MedFound的通用医学语言模型,该模型拥有1760亿参数,通过大规模医学文本和真实世界临床记录的预训练,以及基于自引导策略的推理方法微调,能够辅助疾病诊断。

在多个专业领域内,无论是常见疾病、外部验证还是罕见疾病场景,MedFound都优于其他基础模型和专业模型。此外,通过综合评估框架CLEVER的八项临床评估指标,证明了该模型在临床工作流程中辅助医生进行疾病诊断的可行性。

https://doi.org/10.1038/s41591-024-03416-6

作者类型姓名单位(中文)
第一作者Xiaohong Liu北京邮电大学网络与交换技术国家重点实验室
通讯作者Jian Yang北京邮电大学网络与交换技术国家重点实验室
通讯作者Chunli Song北京大学第三医院骨科
通讯作者Guangyu Wang北京邮电大学网络与交换技术国家重点实验室

研究中构建了三个数据集:

  1. MedCorpus用于预训练,包含63亿文本标记;
  2. MedDX-FT用于微调,包含医疗记录和诊断推理演示;
  3. MedDX-Bench用于评估模型的诊断能力。

MedFound在预训练阶段基于BLOOM-176B模型,通过MedCorpus数据集编码医学知识和实践经验。在微调阶段,采用自引导策略增强模型自动生成高质量诊断推理的能力。最后,通过统一的偏好对齐框架优化模型的实际临床应用价值。

文章还探讨了MedFound在不同疾病分布情况下的性能,包括常见疾病和罕见疾病,并与人类医生的诊断能力进行了比较。结果表明,MedFound在诊断常见疾病和罕见疾病方面均表现出色,且在辅助医生诊断时能够显著提高医生的诊断准确性。此外,通过人类评估框架CLEVER对AI的诊断能力进行了全面评估,涵盖了医学案例理解、临床推理、诊断接受度等多个维度,结果显示MedFound在多个方面均优于未对齐的模型。


知识星球

如需获取推文中提及的各种资料,欢迎加入我的知识星球!


一、文献速览

《A generalist medical language model for disease diagnosis assistance》由Xiaohong Liu等人撰写,旨在开发用于疾病诊断辅助的通用医学语言模型,以提升医疗诊断的准确性和效率。

1-1:研究背景

  1. 诊断重要性与挑战:准确诊断对医疗至关重要,但医生诊断易出错,基层误诊率约20%。传统辅助诊断方法存在依赖结构化输入、训练复杂等问题,医疗预测算法与临床应用存在差距。
  2. 语言模型发展与局限:预训练语言模型推动NLP发展,但其在生物医学领域应用处于初步阶段。现有医学LLMs缺乏针对临床场景设计,诊断推理能力待开发,且存在幻觉、事实错误等问题,评估也不够全面。

1-2:研究方法

  1. 模型构建
    • MedFound预训练:基于BLOOM-176B在MedCorpus(含医学文献、870万真实电子健康记录等,共63亿文本标记)上继续预训练,得到MedFound,使其编码丰富医学知识。
    • MedFound-DX微调:使用MedDX-FT数据集(含病历、诊断推理演示等),通过自引导策略的思维链(COT)微调,让MedFound模仿医生诊断推理,得到MedFound-DX。
    • MedFound-DX-PA对齐优化:采用统一偏好对齐(PA)框架,结合国际疾病分类(ICD)-10树的诊断层次偏好和专家注释的有用性偏好,通过直接偏好优化(DPO)算法优化,得到MedFound-DX-PA。
  2. 数据集准备
    • 训练数据集:MedCorpus用于预训练,MedDX-FT用于微调与对齐。
    • 评估数据集:MedDX-Bench包含MedDX-Test(用于ID评估)、MedDX-OOD(用于OOD评估常见疾病)和MedDX-Rare(用于OOD评估罕见疾病)。
  3. 基线模型与对比方法:对比开源模型(如Clinical Camel - 70B、Llama 3 - 70B等)、闭源模型GPT - 4o以及传统机器学习和分类模型(HRF、Med - BERT、MedFound - CLS)。
  4. 临床研究设计:招募内分泌科和呼吸科不同经验医生,比较AI系统与医生诊断准确性、AI辅助医生诊断效果,并采用CLEVER框架从八个维度对模型进行人类评估。

1-3:实验结果

  1. 常见疾病诊断性能:在ID和OOD设置下,MedFound-DX-PA在诊断常见疾病上表现优异,Top - 3平均准确率达84.2%,远超其他模型,在各专科表现也更出色,且在专科场景适应性良好。
  2. 罕见疾病诊断性能:在零样本学习设置下诊断罕见疾病,MedFound-DX-PA平均Top - 3准确率为80.7%,在多个指标上优于其他模型,在超罕见和罕见疾病分组中表现稳定。
  3. 与医生诊断对比:在呼吸科和内分泌科,MedFound-DX-PA诊断准确率超初级和中级医生,与高级医生相近,AI辅助显著提升初级和中级医生诊断准确率,部分情况下中级医生借助AI辅助诊断准确率超高级医生。
  4. 人类评估结果:在医疗案例理解、临床推理等多个评估指标上,MedFound-DX-PA得分更高,在风险控制指标上表现出色,表明其更符合医学标准,值得信赖。
  5. 训练组件影响:MedFound预训练使其在诊断任务上表现更优,COT微调、SC解码技术显著提升模型性能。

1-4:研究讨论

  1. 模型优势:MedFound-DX-PA在多场景诊断性能出色,可辅助医生提升诊断能力,尤其在罕见病诊断和提供诊断推理方面优势明显,为医疗应用带来新可能。
  2. 研究局限与展望:模型目前聚焦语言交互,未来可整合视觉 - 语言模型(VLMs)实现多模态诊断,优化LLM模型(如LLM代理)提升人机协作个性化,通过人类反馈优化模型,推动AI在医疗领域的应用。

二、诊断通用模型的开发与评估

MedFound和MedFound-DX-PA的开发过程

这张图展示了MedFound和MedFound-DX-PA的开发过程。

image-20250115074530708

  • 预训练阶段
    • 首先,有一个大型语言模型作为基础。
    • 然后,在一个大型且多样的医学语料库上进行预训练,这个语料库名为MedCorpus,包含了870万条医学知识和真实世界的数据。其中包括PMC-CR、MedText、MedDX-Note和MIMIC-III-Note等来源。通过在这个语料库上预训练,得到了一个具有1760亿参数的模型MedFound。
  • 微调阶段
    • 使用诊断推理训练数据对MedFound进行微调。这些训练数据包括800个手工制作的演示,并且通过自引导(self-bootstrapping)的方式生成诊断推理的基本原理(Diagnostic reasoning rationales),经过微调后得到MedFound-DX。
  • 对齐阶段
    • 采用统一偏好对齐框架(Unified preference alignment framework),将MedFound-DX与诊断层次偏好(Diagnostic hierarchy preference,由ICD-10指导)和有用性偏好(Helpfulness preference,由专家指导)进行对齐优化,最终得到MedFound-DX-PA。

这个流程展示了从大型语言模型到最终具备特定医学诊断能力且经过偏好对齐的模型MedFound-DX-PA的逐步构建过程,每个阶段都有其特定的数据源和处理方法,以确保模型能够更好地适应医学诊断任务并符合医学标准和偏好。


真实世界场景中的诊断性能基准与AI系统的临床评估

image-20250115074706050

图b:真实世界场景中的诊断性能基准

  • 诊断性能基准涵盖范围
    • 涉及多个专业领域,包括肺病学(Pulmonary)、精神病学(Psychiatry)、内分泌学(Endocrinology)、神经病学(Neurology)、心脏病学(Cardiology)、胃肠病学(Gastroenterology)、免疫学(Immunology)和泌尿学(Urology)等。
    • 涵盖了常见疾病(Common)和罕见疾病(Rare),并通过一个疾病与人群的分布示意图来表示,其中常见疾病对应的人群较多,罕见疾病对应的人群较少。
  • 评估数据集MedDX-Bench
    • MedDX-Test(in-distribution,ID):用于分布内评估,即评估模型在与训练数据分布相似的情况下的性能。
    • MedDX-OOD(out-of-distribution,OOD):用于分布外评估,主要针对常见疾病,考察模型在面对与训练数据分布不同的常见疾病数据时的表现。
    • MedDX-Rare(long-tailed distribution):用于长尾分布评估,重点关注罕见疾病,检验模型在处理罕见疾病这种数据量较少、分布较为稀疏的情况时的能力。

图c:AI系统的临床评估

  • 临床评估内容
    • 包括三项研究:对比研究(Comparison study)、AI辅助研究(AI-assistance study)和在人类评估框架下的定性研究(qualitative study)。
    • 对比了三种情况:仅医生(Physician only)、仅AI(AI only)、医生结合AI辅助(Physician with AI assistance),以评估AI系统在不同条件下的表现以及对医生诊断的辅助效果。
  • 人类评估框架
    • 对未对齐的大型语言模型(LLM without alignment)和经过对齐的大型语言模型(LLM with alignment)进行评估。
    • 评估指标包括理解能力(Comprehension)、推理能力(Reasoning)、决策支持(Decision support)、风险管理(Risk management)等多个方面,通过医生(图标为医生形象)和相关的评估指标(如柱状图等)来表示。

这些内容展示了该研究在评估模型性能和临床应用方面的全面设计,从不同疾病分布和专业领域的角度设置了评估数据集,同时从多个维度对AI系统在临床场景中的表现进行了细致的评估,以确保模型的有效性和实用性。


三、基于大型语言模型(LLM)的诊断系统的开发

微调过程

  1. 第一步:基于种子数据集进行微调
    • 首先,基于语言模型(M)对(M’)进行微调,以便根据少量由医生标注的人工演示(D_0)生成诊断推理依据(diagnostic rationales)。
  2. 第二步:利用微调后的模型进行采样
    • 然后,利用模型(M’)生成带有诊断推理依据的数据集(D_1)。给定一份病历作为输入,模型(M’)会生成诊断推理依据。对于推理依据中诊断不正确的情况,我们会向模型(M’)提供病历以及相应的正确诊断作为推理提示,以重新生成诊断推理依据。
  3. 第三步:基于扩展数据集进行再次微调
    • 最后,使用扩展后的数据集(D_2)((D_2 = D_0 \cup D_1))对模型(M’')进行微调。

这个过程展示了如何通过逐步微调语言模型,利用人工标注数据和模型生成数据来增强模型生成诊断推理依据的能力,从而提升模型在医疗诊断相关任务上的性能。


统一偏好对齐框架

image-20250115075319766

  • 左侧:偏好对齐包括两个步骤,即偏好构建(preference construction)和偏好优化(preference optimization)。
  • 右上侧:给定一份病历,对多个推理依据进行采样,并用于构建偏好对(preference pair)。
  • 右下侧:同时纳入了诊断层次偏好(diagnostic hierarchy preferences)和有用性偏好(helpfulness preferences)。其中,诊断层次偏好由基于国际疾病分类(ICD)代码的疾病分类层次结构来引导,而有用性偏好则基于专家注释来构建。

这个框架展示了如何通过一系列步骤和依据来优化模型的输出,使其更符合医学诊断的实际需求和标准,从而提高模型在医疗领域的实用性和准确性。通过结合不同类型的偏好,能够更好地引导模型生成更合理、更有用的诊断推理依据和结果。


结束语

本期推文的内容就到这里啦,如果需要获取医学AI领域的最新发展动态,请关注小罗的推送!如需进一步深入研究,获取相关资料,欢迎加入我的知识星球!


http://www.ppmy.cn/server/158905.html

相关文章

怎么分析网页游戏中的数据 官方API 数据挖掘 第三方工具Overwolf、LoLalytics

要分析里面“”这个游戏的数据,你可以采用以下几种方法: ### 1. 使用官方API - **注册和认证**:首先,在游戏的官方网站或API平台上注册一个开发者账号,并完成认证,以获取API密钥。 - **阅读API文档**&…

MySQL_JDBC编程

Java中操作数据库,最基础的方式就是JDBC 1.准备工作:需要引入MySQL的JDBC驱动包 🍒这种驱动包,属于“第三方库” 不是JDK里原生就有的,就需要通过其他途径下载下来并引入到项目中 2.把jar引入到项目中 import com.m…

【Vue3 入门到实战】2. OptionsAPI与CompositionAPI及setup

目录 1. 介绍 1.1 OptionsAPI 1.2 CompositionAPI 2. setup 2.1 setup 概述 2.2 setup 特点 2.3 setup 与OptionsAPI 的关系 2.4 setup语法糖 3. 总结 1. 介绍 1.1 OptionsAPI 选项式 API 是 Vue 2 中的传统模式,并且在 Vue 3 中仍然得到支持。它通过在组…

【搭建JavaEE】(2)Tomcat安装配置和第一个JavaEE程序

Tomcat–容器(Container) 下载 Apache Tomcat - Welcome! 下载完成 请求/响应 结构 测试 查看Jdk版本 改端口号localhost8080–>8099 学学人家以后牛逼了可以用自己名字当文件夹名 配置端口8099 找到server文件 用记事本打开 再打开另一个logging文件 ”乱码解决“步骤&…

GitHub打不开的解决方案

在国内github官网经常面临打不开或访问极慢的问题,那有什么好办法解决GitHub官网访问不了的问题?今天来教你几招轻松访问github官网。 首先我们说下github官网打不开的原因到底是什么。我们会发现,github偶尔可以打开,偶尔打不开&…

Linux-day06

第14章 进程管理(重点) 进程基本介绍 程序运行起来就是一个进程 1.程序和进程的关系 2.在Linux中有两种方式执行,一种叫前台,一种后台 ps指令详解 显示系统执行的进程 USER:进程执行用户 PID:进程号 …

django基于Hadoop的天气预报数据爬取与可视化分析

一、系统概述 该系统结合了Django框架、Python编程语言以及Hadoop大数据处理技术的优势,旨在从权威的气象网站等数据源精准爬取天气预报数据,并进行高效的处理、存储与可视化分析。 二、技术架构 1.后端框架:Django作为后端框架&#xff0…

Java实现字符串四则运算避免高精度下保留位精度丢失

背景介绍 在开发中,我们经常需要对用户输入的数学表达式进行实时计算。例如,在前端页面上展示动态计算结果。然而,由于前端通常采用JavaScript进行计算,而JavaScript的浮点运算存在精度问题,导致部分结果与后端基于Bi…