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

本文主要是介绍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).

这篇关于GoogleDeepMind联合发布医学领域大语言模型论文技术讲解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

SpringBoot整合Sa-Token实现RBAC权限模型的过程解析

《SpringBoot整合Sa-Token实现RBAC权限模型的过程解析》:本文主要介绍SpringBoot整合Sa-Token实现RBAC权限模型的过程解析,本文给大家介绍的非常详细,对大家的学... 目录前言一、基础概念1.1 RBAC模型核心概念1.2 Sa-Token核心功能1.3 环境准备二、表结

javascript fetch 用法讲解

《javascriptfetch用法讲解》fetch是一个现代化的JavaScriptAPI,用于发送网络请求并获取资源,它是浏览器提供的全局方法,可以替代传统的XMLHttpRequest,这篇... 目录1. 基本语法1.1 语法1.2 示例:简单 GET 请求2. Response 对象3. 配置请求

Java Stream.reduce()方法操作实际案例讲解

《JavaStream.reduce()方法操作实际案例讲解》reduce是JavaStreamAPI中的一个核心操作,用于将流中的元素组合起来产生单个结果,:本文主要介绍JavaStream.... 目录一、reduce的基本概念1. 什么是reduce操作2. reduce方法的三种形式二、reduce

Go语言中使用JWT进行身份验证的几种方式

《Go语言中使用JWT进行身份验证的几种方式》本文主要介绍了Go语言中使用JWT进行身份验证的几种方式,包括dgrijalva/jwt-go、golang-jwt/jwt、lestrrat-go/jw... 目录简介1. github.com/dgrijalva/jwt-go安装:使用示例:解释:2. gi

Go 语言中的 Struct Tag 的用法详解

《Go语言中的StructTag的用法详解》在Go语言中,结构体字段标签(StructTag)是一种用于给字段添加元信息(metadata)的机制,常用于序列化(如JSON、XML)、ORM映... 目录一、结构体标签的基本语法二、json:"token"的具体含义三、常见的标签格式变体四、使用示例五、使用

Web技术与Nginx网站环境部署教程

《Web技术与Nginx网站环境部署教程》:本文主要介绍Web技术与Nginx网站环境部署教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Web基础1.域名系统DNS2.Hosts文件3.DNS4.域名注册二.网页与html1.网页概述2.HTML概述3.

Go语言使用slices包轻松实现排序功能

《Go语言使用slices包轻松实现排序功能》在Go语言开发中,对数据进行排序是常见的需求,Go1.18版本引入的slices包提供了简洁高效的排序解决方案,支持内置类型和用户自定义类型的排序操作,本... 目录一、内置类型排序:字符串与整数的应用1. 字符串切片排序2. 整数切片排序二、检查切片排序状态:

CSS引入方式和选择符的讲解和运用小结

《CSS引入方式和选择符的讲解和运用小结》CSS即层叠样式表,是一种用于描述网页文档(如HTML或XML)外观和格式的样式表语言,它主要用于将网页内容的呈现(外观)和结构(内容)分离,从而实现... 目录一、前言二、css 是什么三、CSS 引入方式1、行内样式2、内部样式表3、链入外部样式表四、CSS 选

基于Go语言实现Base62编码的三种方式以及对比分析

《基于Go语言实现Base62编码的三种方式以及对比分析》Base62编码是一种在字符编码中使用62个字符的编码方式,在计算机科学中,,Go语言是一种静态类型、编译型语言,它由Google开发并开源,... 目录一、标准库现状与解决方案1. 标准库对比表2. 解决方案完整实现代码(含边界处理)二、关键实现细

macOS Sequoia 15.5 发布: 改进邮件和屏幕使用时间功能

《macOSSequoia15.5发布:改进邮件和屏幕使用时间功能》经过常规Beta测试后,新的macOSSequoia15.5现已公开发布,但重要的新功能将被保留到WWDC和... MACOS Sequoia 15.5 正式发布!本次更新为 Mac 用户带来了一系列功能强化、错误修复和安全性提升,进一步增