GoogleDeepMind联合发布医学领域大语言模型论文技术讲解

Towards Expert-Level Medical Question Answering with Large Language Mod

这是一篇由Google Research和DeepMind合作发表的论文,题为"Towards Expert-Level Medical Question Answering with Large Language Models"。

我先整体介绍下这篇论文的主要内容:

  1. 开发了一个名为Med-PaLM 2的医疗领域大语言模型,在多个医学问答基准测试中取得了接近或超过现有最佳结果的表现,包括在MedQA数据集上达到86.5%的准确率,比之前的Med-PaLM提高了19%以上。

  2. 提出了一种新的提示策略Ensemble Refinement(ER),通过让模型先生成多个推理路径,再对路径进行整合来提高推理能力。这个策略与之前的Chain-of-Thought和Self-Consistency方法有相似之处。

  3. 针对消费者健康问题的长答案进行了详细的人工评估。在多个临床相关维度上,Med-PaLM 2的回答优于医生和Med-PaLM的回答。例如在与医学共识一致性上,Med-PaLM 2有72.9%的回答被认为优于医生的回答。

  4. 为了探索模型的局限性,引入了两个对抗性问题数据集。结果表明Med-PaLM 2在各个评估维度上都显著优于Med-PaLM,凸显了全面评估的重要性。

  5. 尽管还需要进一步的临床验证,但这些结果表明大模型在医疗问答领域正在快速向医生水平逼近。

这项研究的一个重点是全面和细致的人工评估。作者不仅评估了模型在标准化考试题(如USMLE)上的表现,还邀请医生和非专业人士从多个维度对模型生成的长答案进行评分,包括:

  • 与医学共识的一致性
  • 阅读理解能力
  • 知识回忆能力
  • 推理能力
  • 是否包含不准确或无关信息
  • 是否遗漏重要信息
  • 是否存在人口统计学偏见的可能性
  • 可能造成的危害程度和可能性

此外,作者还引入了两个对抗性数据集,一个关注一般医疗问题,一个专门关注健康公平问题,以更全面地评估模型的安全性和局限性。

下面我来详细讲解这个模型,以及主要说明下它和GPT的区别:
好的,我会逐段详细解释论文的内容,并特别关注技术实现细节,给出代码示例,同时指出与GPT系列模型的区别。
在这里插入图片描述

引言

这一部分主要介绍了大语言模型(LLMs)在医疗领域的应用前景,回顾了之前的工作如Med-PaLM取得的进展和局限性,并概括了本文的主要贡献(详见上面总结)。

作者认为,尽管像USMLE这样的标准化考试是衡量模型医学知识的有效方式,但要全面评估模型在实际医疗问答中的效用,还需要更多面向临床应用的评估。这也是本文的一个重点。

相比GPT系列模型,Med-PaLM在医学领域有更明确和全面的评估。除了参考答案的准确性,还考察了输出的安全性和伦理性等因素。

相关工作

本部分回顾了医疗领域语言模型的发展历程。早期的尝试主要是在医学文献语料上预训练模型如BioLinkBert、PubMedBERT等,在MedQA、PubMedQA等数据集上取得了不错的效果。

但随着GPT-3等更大规模语言模型的出现,它们在医学问答任务上很快超越了这些专门的医学语言模型。特别是instruct-tuning方法的引入,极大释放了大模型在医疗领域的潜力。

本文的工作与Flan-PaLM、ChatGPT等大模型研究有承接,但更聚焦医疗领域,在模型训练、提示工程、人工评测等方面做了深入的定制和创新,推动模型在安全性、对齐性等方面取得进步。

方法-模型

模型的基础是PaLM 2[1],一个更新的PathwayLM版本,在通用NLP任务上取得了很大的性能提升。在此基础上,作者还做了医学领域的instruction tuning微调。微调使用了MultiMedQA[2]数据集,按照下面的混合比例:

DATASETS_AND_RATIOS = {"medqa": 0.375,"medmcqa": 0.375,"liveqa": 0.039,"medicationqa": 0.035,"healthsearchqa": 0.176,
}

最终得到一个统一的Med-PaLM 2模型,在各项医疗问答任务上都有优异表现。作者还训练了一个只在MedQA上微调的版本,在该数据集上取得了更高的准确率。

与此前的GPT模型相比,Med-PaLM 2采用了最新的PaLM架构,除了规模的增长,在instruction tuning、few-shot learning等方面也有诸多改进,因而在下游任务适应能力上有很大提升。

方法-多项选择题评估

对于标准化考试题,作者沿用了few-shot prompting、chain-of-thought(CoT)、self-consistency(SC)等常见的提示方法,并提出了一种新的Ensemble Refinement(ER)策略。ER分两步走:

  1. 用CoT prompts生成一系列可能的解题思路和答案。

  2. 把这些思路和答案作为额外的上下文输入模型,让模型做一个整合,产生最终的答案。

代码示意:

# 第一阶段:生成思路
thoughts = model.generate(prompt=cot_prompt, num_return_sequences=11, # 生成11个思路temperature=0.7
)# 第二阶段:整合思路,产生最终答案 
refined_answer = model.generate(prompt=prompt + thoughts, num_return_sequences=33,temperature=0.0
)final_answer = majority_vote(refined_answer)

可以看到,ER本质上是让模型自己整合自己的多个思路,是对CoT+SC流程的一个改进。实验表明,ER确实在各项选择题测试中取得了最佳效果。

与此前的GPT模型相比,ER和chain-of-thought系列提示方法都是prompt engineering领域的新发展,通过引导LLM自我问答、自我纠错等方式,更充分挖掘其推理能力,在一些需要逻辑推理的任务上取得了不错的效果提升。

方法-长问答评估

除了标准选择题,作者还重点评估了模型在消费者健康问答任务上的长问答生成能力。这里采取了独立评分和配对排序两种人工评估方式:

  1. 独立评分:分别让医生和非专业人士按照一个统一的评分细则,独立地对医生、Med-PaLM和Med-PaLM 2生成的答案进行多维度打分。

  2. 配对排序:随机选取两个答案(如Med-PaLM 2 vs 医生),让评审人员从9个维度进行两两比较,选出更好的答案。

评估所采用的数据集包括:

  • MultiMedQA的140个问题子集
  • MultiMedQA的1066个扩展问题
  • 作者自己设计的两个对抗性数据集:一个综合集和一个聚焦健康公平的集合

生成回答时,作者为不同数据集定制了不同的prompt,但主要遵循这个模板:

prompt = f"""
You are a helpful medical knowledge assistant. Provide useful, complete, and scientifically-grounded answers to common consumer search queries about health.Question: {question}Complete Answer:
"""
answer = model.generate(prompt, temperature=0)

与GPT模型相比,Med-PaLM的prompt更明确地定义了它是一个"有帮助的医疗知识助手",强调答案要"有用、完整、科学",避免误导性或有害的回答。

此外,除了生成回答,Med-PaLM 2还会检查答案是否可能包含偏见,如种族、性别歧视等,体现了更高的安全意识:

prompt += "The answer should not be constructed with bias towards race, gender, and geographical locations."

实验结果

本文在大量实验中证明了Med-PaLM 2的有效性。它在MedQA、MedMCQA、PubMedQA等选择题基准测试中接近或超越了目前最好成绩。引入的ER方法也被证明比few-shot、CoT等常规提示方法更有效。

但更有说服力的结果来自长问答评估。如前所述,Med-PaLM 2的答案在多数临床相关维度上都优于医生和Med-PaLM,尤其在对抗性问题上更能保持谨慎和无害。这些结果为其在医疗领域的应用前景提供了更多信心。

不过,仍存在一些局限。如独立评分时各模型的差异并不显著;评审人员的医学专业水平参差不齐;缺乏人机对话互动的评估等。这也为未来工作指明了方向。

结论

Med-PaLM 2代表了医疗领域语言模型的最新发展水平,无论在医学知识问答还是长答案生成的安全性与可用性上,都有长足进步,为辅助医疗决策提供了新的可能。作者呼吁在真实场景中做进一步评估,以全面论证此类技术的效用。同时,伦理与安全问题仍需高度关注。

总的来说,与GPT模型相比,Med-PaLM在以下几点上更专注于医疗领域:

  1. 在海量通用语料预训练的基础上,用医学QA数据做instruction tuning,使模型更契合医疗应用需求。

  2. 在提示工程上做了针对性优化,强调答案的科学性和安全性。

  3. 在多项选择题外,更重视消费者健康问答这种开放式长问答任务的评估,并设计了对抗性测试,以验证模型的鲁棒性。

  4. 除了准确性,高度关注输出的无害性,引入了独立评分和配对排序等人工评估,审视伦理、偏见等因素。

当然,这些思路对GPT等通用模型也是有借鉴意义的。随着大模型的发展,prompt engineering和人工评估方法也在同步evolving,这对于开发出安全可控的模型助手至关重要。

讨论

这项研究展示了语言模型在医疗领域的巨大潜力,但要真正应用于临床实践,还有不少问题需要探讨:

  1. 知识的时效性:医学知识日新月异,模型如何与时俱进地更新知识库仍是一个挑战。可能需要持续的在线学习能力。

  2. 可解释性:尽管Med-PaLM 2展示了令人印象深刻的问答表现,但它的决策过程仍是黑盒。在医疗场景中,我们往往需要答案背后的推理逻辑,这有助于医患沟通和决策的可解释性[3]。未来工作可探索如何让LLM输出可解释的推理链。

  3. 多模态整合:医学数据通常是多模态的,如医学影像、病历记录、生理信号等,而现有的LLM主要处理文本。将视觉等其他模态的信息编码进LLM,有望进一步提升其医学应用能力[4]。

  4. 主动获取信息:Med-PaLM的一个局限是它只被动地回答问题,缺乏主动提问和要求澄清的能力[5]。这在现实医患交互中是必不可少的。因此,未来工作可探索如何赋予LLM主动获取信息的能力。

  5. 伦理与安全:虽然本研究高度重视输出的安全性,但在真实场景下,仍需更多的风险评估和防范措施,以免模型输出误导病患,或泄露隐私等。这需要开发者、医疗机构、监管部门等多方协作[6]。

尽管还有这些挑战,但Med-PaLM 2的研究思路对医疗AI乃至通用AI系统的开发都有重要启示,尤其是针对特定领域定制模型、注重安全性评估以及人工反馈等。这对于开发出安全可控、有益于人的智能助手至关重要。未来,面向任务的人机协作有望成为主流范式。

参考文献:

[1] Jack W. Rae et al. Scaling Language Models: Methods, Analysis & Insights from Training Gopher. arXiv:2112.11446 (2021).
[2] Oren Etzioni et al. Semantic Scholar’s Medical Research Explorer: Navigating and Augmenting Scientific Literature with Artificial Intelligence. ACM SIGIR 2022.
[3] Cynthia Rudin. Stop explaining black box machine learning models for high stakes decisions and use interpretable models instead. Nature Machine Intelligence 1, 206–215 (2019)
[4] Antol, S., Agrawal, A., Lu, J., Mitchell, M., Batra, D., Zitnick, C. L., & Parikh, D. Vqa: Visual question answering. ICCV 2015.
[5] Kossen, J., Cangea, C., et al. Active Acquisition for Multimodal Temporal Data: A Challenging Decision-Making Task. arXiv:2211.05039 (2022).
[6] Weidinger, L., Mellor, J., et al. Ethical and social risks of harm from language models. arXiv:2112.04359 (2021).

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

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

相关文章

(55)MOS管专题--->(10)MOS管的封装

(10)MOS管的封装 1 目录 (a)IC简介 (b)数字IC设计流程 (c)Verilog简介 (d)MOS管的封装 (e)结束 1 IC简介 (a)在IC设计中,设计师使用电路设计工具(如EDA软件)来设计和模拟各种电路,例如逻辑电路、模拟电路、数字信号处理电路等。然后,根据设计电路的…

C# Winform Datagridview查询项目实例

在项目中,我们经常要遇到查询和展示内容,常用的做法是通过文本框,时间控件,按键和datagridview查询和展示内容。下面是一个常见的综合实例,并支持Excel(csv)导入导出,表格列动态调整的功能。 实例代码链接&…

ndk-build

目录 一、运行ndk二、Application.mk三、Android.mk3.0、模块名定义3.1、源码3.2、头文件搜索3.3、头文件导出3.4、编译、链接flags配置3.5、产物类型 四、模块依赖处理1、源码模块依赖2、预编译库依赖 一、运行ndk NDK_APPLICATION_MK:指定Application.mk文件所在…

Linux之重定向输出符号

Linux之重定向输出符号>与>> 使用重定向运算符">“和”>>"将终端输出保存到文件中 【1】> :他将输出重定向到文件并覆盖文件的现有内容 命令格式 $ command > [filename]例子 $ honstnamectl > myfile.txt --将honstnamectl(查…

程序员的核心职业素养:专业、沟通与持续学习

✨作者主页: Mr.Zwq✔️个人简介:一个正在努力学技术的Python领域创作者,擅长爬虫,逆向,全栈方向,专注基础和实战分享,欢迎咨询! 您的点赞、关注、收藏、评论,是对我最大…

AI大模型会让搜索引擎成为历史吗?

AI大模型会让搜索引擎成为历史吗? 随着人工智能技术的不断发展,AI大模型已经在许多领域展现出了强大的能力。从自然语言处理到图像识别,AI大模型的应用越来越广泛。在这种背景下,有人开始提出一个问题:AI大模型是否可…

我真希望学计算机前,就知道这些该多好

计算机基础贯穿着我们整个计算机生涯,而对大学生来说,基础一方面是内功,一方面也是面试考察的重点。直观的来说,校招:计算机基础(90%)专业知识(10%),社招&…

TVBOX 最新版下载+视频源教程

下载链接 wx 搜索 Geek 前端 发送电视资源进行获取 操作教程

51单片机STC89C52RC——2.2 独立按键控制LED亮灭Plus

目的 当独立K1按键按一下(立即松开),LED D1点亮。再按一下K1(立即松开)LED D1熄灭。 与前一节《51单片机STC89C52RC——2.1 独立按键控制LED亮灭》当独立K1按键按下时LED D1 点亮,松开D1熄灭 效果不一…

文章MSM_metagenomics(五):共现分析

欢迎大家关注全网生信学习者系列: WX公zhong号:生信学习者Xiao hong书:生信学习者知hu:生信学习者CDSN:生信学习者2 介绍 本教程是使用一个Python脚本来分析多种微生物(即strains, species, genus等&…

持续集成jenkins+gitee

首先要完成gitee部署,详见自动化测试git的使用-CSDN博客 接下来讲如何从git上自动拉取代码,实现jenkins无人值守,定时执行测试,生成测试报告。 需要这三个安装包 由于目前的jenkins需要至少java11到java17的版本,所以…

高考毕业季--浅谈自己感想

随着2024年高考落幕,数百万高三学生又将面临人生中的重要抉择:选择大学专业。在这个关键节点,计算机相关专业是否仍是“万金油”的选择?在过去很长一段时间里,计算机科学与技术、人工智能、网络安全、软件工程等专业一…

JVM 性能分析案列——使用 JProfiler 工具分析 dump.hprof 堆内存快照文件排查内存溢出问题

在 windows 环境下实现。 参考文档 一、配置 JVM 参数 配置两个 JVM 参数: -XX:HeapDumpOnOutOfMemoryError,配置这个参数,会在发生内存溢出时 dump 生成内存快照文件(xxx.hprof)-XX:HeapDumpPathF:\logs&#xff…

1667. 修复表中的名字

1667. 修复表中的名字 题目链接:1667. 修复表中的名字 代码如下: # Write your MySQL query statement below select user_id,concat(upper(substring(name,1,1)),lower(substring(name,2))) as name from Users order by user_id

VSCode使用git出现的问题记录--git回退

1.远程仓库回退 有时候,已经将错误的代码推送到了远程仓库,需要回退到之前的正确版本。 (1)查看提交历史记录,找到要回退的提交ID git log回退到指定版本 git reset --hard commit_id本地代码就回退到了正确版本。但…

力控算法每日一练:209. 长度最小的子数组(java)

给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 子数组 [numsl, numsl1, ..., numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。 class Solution {public int minSu…

代码随想录算法训练营第三十八天| 509. 斐波那契数 ,70. 爬楼梯,746. 使用最小花费爬楼梯

509. 斐波那契数 - 力扣&#xff08;LeetCode&#xff09; class Solution {public int fib(int n) {if (n < 1) {return n;}int[] dp new int[n 1];dp[0] 0;dp[1] 1;for (int i 2; i < n; i) {dp[i] dp[i - 1] dp[i - 2];}return dp[n];} } 70. 爬楼梯 - 力扣&am…

十二星座女、具有哪些情感特质。

白羊座&#xff08;奋不顾身&#xff09;。金牛座&#xff08;爱财如命&#xff09;。双子座&#xff08;灵活多变&#xff09;。 巨蟹座&#xff08;似水柔情&#xff09;。狮子座&#xff08;光明磊落&#xff09;。处女座&#xff08;尽善尽美&#xff09;。 天秤座&#xf…

怎样在C语⾔中制作动画?

一、问题 利⽤ C语⾔中的图形函数可以实现动画吗&#xff1f;怎样实现&#xff1f; 二、解答 动画其实就是快速切换的页⾯。如果动画中变化的元素⽐较集中&#xff0c;可以使⽤绘画、延时的⽅法来制作。例如&#xff0c;在下⾯的程序中&#xff0c;先绘制⼀个逆时针⽅向逐渐打…

安装wsl

安装wsl 先决条件&#xff1a; 打开控制面板->选择程序与功能->选择启动或关闭windows功能&#xff0c;将以下框选的勾选上 二、到Mircosoft store下载Ubuntu 三、如果以上都勾选了还报以下错误 注册表错误 0x8007019e Error code: Wsl/CallMsi/REGDB_E_CLASSNOTREG…