Harsha Nori*‡Yin Tat Lee*Sheng Zhang*Dean CarignanRichard Edgar
Nicolo FusiNicholas KingJonathan LarsonYuanzhi LiWeishung Liu
Renqian LuoScott Mayer McKinney†Robert Osazuwa Ness
Hoifung PoonTao QinNaoto UsuyamaChris White
Eric Horvitz‡
2023 年 11 月
摘要
像 GPT-4 这样的通用基础模型,在众多领域和任务中展现出了惊人的能力。然而,通常人们认为,如果不进行针对特定知识领域的密集训练,这些模型无法达到专家级别的能力。例如,目前大多数在医学能力基准上的研究都依赖于特定领域的训练,就像 BioGPT 和 Med-PaLM 的尝试一样。我们的研究则是在没有特殊训练的情况下,继续探究 GPT-4 在医学挑战基准测试中的专家级能力。我们不仅仅是为了展示模型开箱即用的能力而使用简单的提示,而是系统地探索了提示工程来提高性能。我们发现,创新的提示方法可以释放出更深层次的专家能力,并且证明 GPT-4 轻松超越了医学问答数据集上之前的领先成绩。我们探索的提示工程方法是通用的,不依赖于特定的领域知识,这消除了对专家策划内容的依赖。我们的实验设计严格控制了在提示工程过程中的过拟合问题。作为研究的一个高潮,我们推出了 Medprompt,它结合了多种提示策略。Medprompt 大大提高了 GPT-4 的性能,在 MultiMedQA 套件的全部九个基准数据集上均达到了最先进的水平。这种方法使用远少于 Med-PaLM 2 等最新专家模型的模型调用次数,取得了巨大的优势。使用 Medprompt 指导下的 GPT-4,在 MedQA 数据集(USMLE 考试)上的错误率比迄今为止使用专家模型的最佳方法降低了 27%,并首次突破了 90% 的分数。超出医学领域的挑战,我们展示了 Medprompt 在其他领域的广泛适用性,通过在电气工程、机器学习、哲学、会计、法律、护理和临床心理学等多个领域的能力考试上的研究,证明了这种方法的广泛适用性。
1 引言
在人工智能(AI)研究中,长期以来的一个愿景是开发出计算智能的基本原则,并利用这些原则来构建能在多种任务中进行学习和推理的系统 [mccarthy2006proposal, newellshawsimonGPS1959]。为了实现这一目标,像 GPT-3 [brown2020language] 和 GPT-4 [OpenAI2023GPT4TR] 这样的大语言模型(也被称为基础模型)在众多任务上展示了惊人的能力,而这并不需要进行深入的专门训练 [bubeck2023sparks]。这些模型采用文本到文本的转换方式 [sutskever2014seq2seqmt],通过大规模的计算和数据投入,从海量的公共网络数据中学习。有些模型经过特定的学习目标调整,能够根据提示执行一般性的指令。
(a) |
(b) |
图 1: (a) MedQA 性能对比。 (b) 结合了 Medprompt 的 GPT-4 在多个医学挑战题中取得了最新进展 (SoTA)。
评价这些基础模型性能的关键指标之一是预测下一个词的准确度。随着训练数据量、模型参数和计算能力的增加,下一个词预测的准确度也会提高,这与“神经模型缩放定律”相符 [brown2020language, hoffmann2022training]。然而,除了基本度量,如下一个词预测的缩放定律预测之外,这些基础模型在不同规模的阈值上也突然展现出许多解决问题的新能力 [wei2022emergent, schaeffer2023emergent, OpenAI2023GPT4TR]。
尽管我们已经看到了通用能力集合的出现,但在医学等特殊领域的挑战中,若没有进行深入的专业训练或对通用模型进行细致调整,是否能够实现卓越表现,这个问题依旧存在。目前对于基础模型在生物医学应用上的研究,大多数都非常依赖于特定领域和任务的精细调整。例如,第一代基础模型中,专门为生物医学领域预训练的模型(如著名的 PubMedBERT [gu2021pubmedbert] 和 BioGPT [luo2022biogpt])显示出明显优势。但对于经过大规模预训练的现代基础模型,这种优势是否依然存在,目前还不得而知。
本文主要探讨如何通过精巧的提示工程,使基础模型在医学挑战基准测试中表现优异。例如,Med-PaLM 2 模型在 MedQA 及其他医学挑战上取得了不错的成绩,这是通过对通用 PaLM 模型 [chowdhery2022palm] 进行昂贵且特定任务的精细调整实现的 [singhal2022large, singhal2023expertlevel]。除了依赖于基础模型的精细调整,Med-PaLM 2 在医学基准测试上的成绩,还得益于复杂且高级的提示策略,这些策略由专家精心设计。比如,许多答案是依靠一个复杂的两阶段提示方案得出的,每个问题需要进行 44 次调用才能解答。
在 2023 年 3 月 GPT-4 对外发布后不久,本研究的几位合著者便展示了这一模型在医学挑战基准测试中展现的卓越生物医学能力,这是在没有进行特别训练或调整的情况下实现的。“开箱即用”的 GPT-4 展现了其在专业医学领域的潜在实力,合著者在此过程中故意采用了一种基础的提示策略 [nori2023capabilities]。尽管该研究展示了令人瞩目的成果,但在没有进行额外专业训练或调整的情况下,GPT-4 在特定领域的能力深度仍然是一个值得探讨的问题。
在这项研究中,我们展示了如何通过创新的提示策略,指导 GPT-4 回答医学领域的挑战性问题。我们特别关注了评估环境中研究提示方法的最佳实践,这包括保留一个真实的、不受干扰的评估数据集。我们发现,通过创新的提示方式,GPT-4 展现了深层的专业技能。我们通过系统地探索不同的提示策略,达到了这一成就。在设计原则上,我们挑选了那些成本低、无需特别为我们的测试任务量身定制的提示策略。经过研究,我们确定了适用于 GPT-4 解决医学挑战问题的最佳提示策略,命名为 Medprompt。Medprompt 在不依赖专家精心设计的情况下激发了 GPT-4 中的医学专家技能,并在所有标准的医学问答数据集上均取得了领先的成绩。这种方法不仅比简单的提示策略更胜一筹,也大幅领先于目前最先进的专家模型,如 Med-PaLM 2。在 MedQA 数据集(即 USMLE 考试)上,Medprompt 提高了准确率高达 9 个百分点,首次使得在这一基准测试上的准确率超过 90%。
在我们的研究中,我们进行了全面的消融研究,以揭示 Medprompt 各个组成部分的重要性。我们发现,结合上下文学习和思维链等多种方法可以产生协同效果。最有意思的发现是,要使 GPT-4 在我们研究的医学专业工作负载中表现出色,最佳策略竟然是使用通用的提示。我们发现,让 GPT-4 自主设计提示,尤其是自己构建用于上下文学习的思维链,对其有显著的帮助。这一发现与其他报告相一致,即 GPT-4 通过自我反思拥有突发性的自我提升能力,例如自我验证 [gero2023selfverification]。
值得注意的是,自动生成的思维链推理减少了对特定人类专家知识和医学数据集的依赖。因此,尽管名为 Medprompt,但从我们对 GPT-4 在医学挑战问题上的能力的调查出发,这种方法并不特别侧重于医学领域。正如我们在 5.3 节 中探讨的,这种方法可以轻松地应用到其他领域。我们提供了关于 Medprompt 的详细信息,希望有助于未来在引导通用基础模型提供专业建议方面的研究。
2BACKGROUND
2.1 基础模型在医学挑战中的应用
在基础模型的初代时期,由于模型规模和计算资源受限,专注于特定领域的预训练成为一种优势。如 PubMedBERT [gu2021pubmedbert]、BioLinkBERT [yasunaga2022linkbert]、DRAGON [yasunaga2022dragon]、BioGPT [luo2022biogpt] 和 BioMedLM [BioMedLM] 等模型,它们通过自我监督的方式,利用特定领域的数据资源,比如 PubMed 语料库和 UMLS 知识图谱进行预训练。尽管这些模型体积较小、计算能力有限,但它们在生物医学自然语言处理任务上表现出色。而更强大的通用领域基础模型在医学领域的挑战中表现出显著提升,无需专门的领域预训练。
有研究探讨了通用型基础模型在医学难题上的表现。在 [kung2023performance] 的研究中,未经专门训练的 ChatGPT-3.5 在美国医学执照考试(USMLE)中提出的问题上表现出及格或接近及格的水平。在 [nori2023capabilities] 的研究中,GPT-4 通过简单的五次提示,其成绩超过 USMLE 及格分数 20 分以上。其他研究还探讨了使用专门调整医学知识的基础模型。
此外,还有研究着眼于显式调整医学知识的效力。Med-PaLM [singhal2022large] 和 Med-PaLM 2 [singhal2023expertlevel] 利用 540B 参数的 Flan-PaLM 进行了指令提示调整的微调。在 Med-PaLM 中,研究者邀请了五位临床医生准备指令提示调整数据集。而 Med-PaLM 2 基于 PaLM 2,依赖于遵循指令的完全微调,实现了医学问答数据集上的最佳表现。
我们重新审视通用基础模型在不依赖广泛微调的情况下的能力。我们探索了多种提示策略,以期将强大的通用基础模型有效引导,使其在专业领域展现出色的性能。
2.2 提示策略
在语言模型领域,提示 指的是输入给模型的信息,用来引导模型产生相应的输出。实际研究显示,基础模型在特定任务上的效果很大程度上受到提示的影响,这种影响往往出人意料。例如,最近的研究表明,即使模型的学习参数不变,其在 GSM8K 基准数据集上的表现也可能有超过 10% 的变化 [yang2023large]。提示工程 是指开发有效的提示技巧的过程,这些技巧可以使基础模型在特定任务上表现更佳。这里,我们简要介绍几个关键概念,这些概念是构建我们的 Medprompt 方法的基础。
在上下文中学习 是基础模型的一个核心功能,它使模型仅通过少量的任务演示就能解决新任务 [brown2020language]。比如,可以通过在测试问题前放置几个问题和期望答案的示例来创建这种提示。这种方法不需要更新模型参数,但可以达到类似微调的效果。在少样本提示中选择的示例会极大影响模型的性能。在我们之前对 GPT-4 在医疗挑战问题上的表现的研究中 [nori2023capabilities],我们专门使用了基本的在上下文中学习方法,如一次性和五次性提示,以展示 GPT-4 如何能够轻松实现卓越的性能。
思维链 是一种通过在给出样本答案之前进行中间推理步骤的提示方法 [wei2023chainofthought]。通过把复杂问题分解成一系列较小的步骤,思维链被认为有助于模型生成更准确的答案。思维链在上下文中学习提示中直接将这些中间推理步骤融入少样本演示。例如,在 Med-PaLM 研究中,一组医生被邀请为复杂的医疗挑战问题设计思维链提示 [singhal2022large]。在本文中,我们探讨了超越依赖人类专家专业知识,利用 GPT-4 自身自动生成思维链演示的可能性。如我们将详细介绍的,我们通过使用训练数据集中的 [问题,正确答案] 对,成功实现了这一点。我们发现 GPT-4 能够自主生成高质量、详细的思维链提示,即使面对最复杂的医疗挑战。
集成技术(Ensembling) 是一种将多个模型输出结合起来,通过平均、共识或多数投票等方法得到更可靠或准确结果的技术。使用 自我一致性(self-consistency) 方法的集成技术[wang2023selfconsistency]采用抽样法生成多个输出,再通过整合这些输出来找到一个共识。我们可以通过调整模型生成中的“温度”参数来控制输出的多样性,较高的温度意味着在生成过程中加入了更多的随机性。通过重新排序或 洗牌(shuffling) 少样本提示,集成技术还能够解决基础模型常见的顺序敏感问题[pezeshkpour2023large, zheng2023large],从而增强其稳健性。
尽管集成能提高性能,但也会带来更高的计算需求。例如,Med-PaLM 2 的 Ensemble Refinement 方法在处理单个问题时,可能需要进行多达 44 次独立推理。考虑到这种计算成本,我们采用了更简单的技术作为设计原则,以避免过高的推理成本。我们在 第 5.2 节 中进行了一项剥离研究,探索在增加计算负荷的情况下,进一步提升性能的可能性。
3 实验设计
我们首先对医疗挑战问题的数据集进行了概述,然后详细介绍了我们的测试方法。这种方法旨在避免在固定评估数据集上进行密集迭代时可能出现的过拟合问题。
3.1 数据集
我们的基准测试,详见第 5 节,主要是根据 GPT-4 在 MultiMedQA 基准测试套件的 9 个生物医学多项选择题数据集上的表现而设定的[singhal2022large]。具体来说,这些基准测试包括:
-
MedQA [jin2021disease],包含风格类似于美国、中国大陆及台湾医学专业人士考试的多项选择题。为了与先前的研究进行比较 [singhal2022large, singhal2023expertlevel, nori2023capabilities],我们专注于数据集的美国部分,这部分包括英文题目,其风格与美国医学执照考试 (USMLE) 相似。该数据集包含 1273 道题,每题有四个选择答案。
-
MedMCQA [pal2022medmcqa],展示了模拟的和历史上的印度医学院入学考试题,如 AIIMS 和 NEET-PG。我们所报告的基准测试结果(与先前的研究一致)是基于数据集的“开发”子集,其中包含 4183 道题,每题有四个选择答案。
-
PubMedQA [jin2019pubmedqa],包含的是对给定的 PubMed 摘要背景下的生物医学研究问题回答“是”、“否”或“可能”的测试。该测试有两种模式:需要推理 和 无需推理。在无需推理的模式中,会提供包含摘要解释的长篇答案。我们报告的是需要推理模式的结果,在这种模式下,模型仅使用摘要提供的背景来回答问题。总共有 500 道题。
-
MMLU [hendrycks2020measuring],这是一个包含 57 个不同数据集的多任务基准测试套件,涵盖了 STEM、人文和社会科学等多个领域。我们跟随以往的研究 [singhal2022large],针对 MMLU 中与医学相关的子集进行基准测试,这包括临床知识、医学遗传学、解剖学、职业医学、大学生物学和大学医学等领域。
如我们在第 5.3 节所述,为了验证 Medprompt 方法的普适性,我们不仅关注医学挑战问题,还将其应用于其他领域的能力考试。具体而言,我们在两个涉及 NCLEX(国家护理执照考试)问题的护理数据集及 MMLU 提供的六个涵盖会计、法律等主题的额外数据集上进行了测试。这些数据集的详细情况,将在第 5.3 节中展开讨论。
3.2 声音测试方法论
尽管提示和上下文学习不会改变模型的参数,选择特定的提示策略实际上可以视为整个测试流程的一种高级配置或超参数。因此,在训练和测试过程中我们需要特别注意避免过拟合,以确保测试结果能够适用于训练和测试集之外的情况。基础模型性能研究中对过拟合的关注,与传统机器学习中在超参数优化过程中的过拟合问题是类似的 [feurer2019hyperparameter]。我们的目标是在提示工程过程中避免发生类似的过拟合问题。
直观上说,一个针对特定基准问题设计的提示方式在这些问题上的表现自然会更好,但在未知问题上就不一定了。在传统机器学习中,为解决这个问题常常会创建一个“测试集”,并且仅在模型选择过程结束后对其进行评估。我们采用了这一重要的声音测试方法,在机器学习研究中随机从每个基准数据集中划分出 20% 作为“不可见”部分,直到最终测试阶段才将其纳入考虑。也就是说,在最终阶段之前,这部分数据是完全隐藏的。在提示工程过程中,我们不会对这些数据进行检查或优化。为了简化操作,我们对 MultiMedQA 中的所有数据集都采用了这种方法,尽管其中许多数据集在发布时并没有明确的训练/测试划分。在第 5.1 节中,我们展示了 Medprompt 在 MultiMedQA 数据集的“可见”和“不可见”部分上的表现差异。我们发现两者的表现非常接近,而且 GPT-4 结合 Medprompt 在未曾接触的数据上的表现甚至略有提升,这意味着这些方法很可能适用于“开放世界”中的类似问题。目前为止,我们还没有发现在以前的研究中有采用类似的“不可见”方法的例子。
4 激发提示的力量:探索与结果
在这一节中,我们将详细介绍 Medprompt 所采用的三种主要技术:动态少样本选择、自我生成的思考链条和选择洗牌集成。在讨论了每种技术之后,我们还将回顾如何将这三种方法结合起来,形成一个综合的 Medprompt 方案。
4.1 动态少样本方法
少样本学习[brown2020language] 是一种非常高效的即时学习技术。在这种方法中,基础模型通过少量示范快速适应特定领域,学会如何完成特定任务。为了简便和高效,这些少量示例在不同测试中一般保持不变。因此,选择的这些示例需要具有广泛的代表性,能涵盖各种文本场景。一种实现这一目标的方法是请领域专家精心设计一些范例[singhal2022large]。尽管如此,这种固定示例的方法也不能保证总能代表所有的测试场景。与此相对,如果有可用的任务训练集,它可以成为寻找少样本示例的优质而廉价来源。如果训练集足够庞大,我们可以根据不同的任务需求选择不同的少样本示例,这就是所谓的动态少样本方法。这种方法通过一个机制来识别与当前案例相似的示例[liu2021makes]。以 Medprompt 为例,我们通过以下方式寻找有代表性的少样本示例:针对一个测试示例,我们在嵌入空间中通过 kk-NN 聚类方法找出 kk 个与其语义相似的训练示例。具体来说,我们先用 text-embedding-ada-00211 将训练和测试问题转化为向量表示。然后,我们为每个测试问题 xx 在训练集中找到最接近的 kk 个邻居 x1,x2,…,xkx_{1},x_{2},…,x_{k},根据的是 text-embedding-ada-002 的嵌入空间距离。我们使用一种预定义的相似度度量 dd,比如余弦相似度,以此来排序这些邻居,确保当 i<ji<j 时,d(xi,x)≤d(xj,x)d(x_{i},x) leq d(x_{j},x)。与传统的微调方法不同,动态少样本方法虽然利用了训练数据,但无需对模型参数进行数亿次的更新。
4.2 自我生成的思考链
图 2: 专家设计的思考链与 GPT-4 自动生成的思考链的比较。GPT-4 能够利用训练集中的一个[问题,正确答案]对来生成详细的解释,非常适合在少样本 CoT(思考链)演示中使用。
思考链 (CoT) [wei2023chainofthought] 运用自然语言陈述,如“让我们一步一步地思考”,显式地鼓励模型逐步展开中间推理过程。这种方法极大地提升了基础模型处理复杂推理任务的能力。大多数思考链方法依赖专家手动编写包含思考链的少样本示例作为提示 [singhal2023expertlevel]。我们探索了一种自动生成思考链示例的新途径,而非依赖人类专家。我们发现,仅需通过以下简单的提示,GPT-4 就能为训练示例生成思考链:
自我生成的思考链模板
## Question: {{question}}{{answer_choices}}## Answer模型生成的思考链解释因此,答案是 [最终模型答案 (例如 A,B,C,D)]
图 3: 用于自动引导基础模型生成思考链解释的模板(详见第 4.2 节)。
这种方法的主要挑战在于,自我生成的 CoT 理由可能无意中包含虚构或错误的推理链。为了应对这一问题,我们让 GPT-4 同时生成理由和对最可能答案的预测。如果预测结果与实际答案不符,我们就会完全舍弃该样本,因为我们认为这种推理是不可信的。尽管错误的推理有时也可能得出正确答案(即假阳性),但我们发现这种简单的标签验证步骤是识别假阴性的有效方法。
我们发现,相比于 Med-PaLM 2 项目中由临床专家手工制作的链式推理(CoT)示例 [singhal2023expertlevel],GPT-4 生成的 CoT 推理过程不仅更长,而且逻辑更为精细和连贯。与此同时,其他近期的研究 [yang2023large, fernando2023promptbreeder] 也显示,基础模型比专家更擅长编写有效的提示。
4.3 选择洗牌集成
虽然 GPT-4 在处理多项选择问题时的倾向性不如其他基础模型那么严重,但它仍然可能偏爱某些答案选项,而非基于选项内容本身,即存在位置偏见 [doi:10.1177/002224378402100210, ko-etal-2020-look, zheng2023judging]。为了克服这一问题,我们提出了一个新方法:对答案选项进行洗牌,然后检验在不同顺序下答案的一致性。这一过程涵盖了选择洗牌和自洽一致性提示。自洽一致性 [wang2023selfconsistency] 是一种在多次提示下生成多种推理路径的方法,相比于单一路径或 贪婪 解码,它能引入一定的随机性。选择洗牌意味着在生成每一条推理路径之前,我们会打乱答案选项的顺序。随后,我们会选择最为一致的答案,即对选项顺序变化反应最小的答案。选择洗牌还能增加每条推理路径的多样性,超出了单纯依靠温度抽样的效果,从而提高最终集成答案的质量 [caruana2004ensemble]。此外,我们还将这种方法应用于生成训练示例中的 CoT 中间步骤。对于每个示例,我们会对选项进行多次洗牌,并为每种排列生成一个 CoT。最终,我们只保留那些包含正确答案的示例。
4.4 综合运用:Medprompt
图 4: 展示了 Medprompt 的组成部分及其对 MedQA 基准测试性能提升的贡献。该提示策略包括基于 kkNN 的少样本 (Few-shot) 示例选择、GPT-4 生成的思维链条提示,以及答案选项的混合集成方式(详情见第 4 节)。图中底部展示了各部分对整体性能的相对贡献(详情见第 5.2 节)。
Medprompt 的设计结合了三大核心技术:智能的少样本示例挑选、自主生成的思维链条步骤和基于多数投票的集成策略,这些内容分别在第 4.1、4.2,和 4.3 节有详细说明。这些技术的结合形成了一个多功能的提示工程策略。图 4 显示了 Medprompt 在 MedQA 基准测试中的表现,以及每个组件对总体表现的增强效果。相关的算法细节可以在算法 1 中找到。
Medprompt 是一个包含两个阶段的系统:预处理阶段和推理步骤。在预处理阶段,训练数据集中的每个问题都经过一个轻量级的嵌入模型处理,形成一个嵌入向量(见算法 1 的第 4 行)。这里我们采用了 OpenAI 的 text-embedding-ada-002 来创建这些嵌入。对于每个问题,GPT-4 用来构建一个思考过程和预测最终答案(第 5 行)。如果生成的答案正确且与实际标签相符,我们就会保留这个问题及其相关信息,包括嵌入向量、思考过程和答案。如果答案错误,我们就会将这个问题从我们的检索库中剔除,因为我们认为如果最终答案错误,那么模型的推理过程也是不可靠的(第 6-7 行)。
在推理阶段,面对一个测试问题,我们会使用和预处理相同的嵌入模型重新嵌入测试样本,并利用 kkNN 方法从预处理库中找出相似的例子(第 12-13 行)。这些例子及其由 GPT-4 生成的思考链条被整合作为 GPT-4 的上下文(第 14 行)。随后,测试问题和相应的答案选项被添加到最后,形成最终的提示信息(第 17 行)。遵循少样本的示例,模型接着产生一个思考链和一个可能的答案。最后,我们通过多次重复上述步骤来进行集成处理,通过打乱测试问题的答案选择来增加答案的多样性(第 15-16 行),详见第 4.3 节和图 4。最终,我们会选择出现频率最高的答案作为最终预测答案(第 20 行)。
1:输入:开发数据集 Dmathcal{D}, 测试问题 QQ
2:预处理阶段:
3:对于数据集 Dmathcal{D} 中的每个问题 qq:
4: 为 qq 获取一个嵌入向量 v_qv_{q}。
5: 利用大语言模型 (大语言模型) 生成一个思考链 C_qC_{q} 和答案 A_qA_{q}。
6: 若答案 AqA_{q} 是正确的,那么
7: 我们会保存其嵌入向量 vqv_{q}、思维链 CqC_{q} 和答案 AqA_{q}。
8: 结束此条件判断
9: 结束循环
10:
11: 在推理阶段:
12: 针对测试问题 QQ,计算出其嵌入向量 vQv_{Q}。
13: 使用 KNN 方法和余弦相似度公式 dist(vq,vQ)=1−⟨vq,vQ⟩∣vq∣∣vQ∣text{dist}(v_{q},v_{Q})=1-frac{langle v_{q},v_{Q}rangle}{|v_{q}||v_{Q}|},从预处理后的训练数据中挑选出 5 个与之最为相近的案例 (vQi,CQi,AQi)i=15{(v_{Q_i},C_{Q_i},A_{Q_i})}_{i=1}^{5}。
14: 把这 5 个案例作为大语言模型 (LLM) 的上下文 Cmathcal{C}。
15: 进行 5 次操作
16: 随机打乱测试问题的答案选项。
17: 利用 LLM 和上下文 Cmathcal{C},生成思维链 CqkC_{q}^{k} 和答案 AqkA_{q}^{k}。
18: 结束循环
19: 通过计算 Aqkk=1K{A_{q}^{k}}_{k=1}^{K} 中的多数票来确定答案:
AFinal=mode(Aqkk=1K),A^{text{Final}}=operatorname{mode}({A_{q}^{k}}_{k=1}^{K}),
其中 mode(X)operatorname{mode}(X) 指的是集合 XX 中最常出现的元素。
20: 输出结果:最终答案 AFinalA^{text{Final}}。
算法 1 描述了 Medprompt 的算法规范,这与其在图 4 中的视觉表示相符。
我们最新报道的 Medprompt 研究成果采用了 5 个 kkNN 选出的少样本(few-shot)案例和 5 次并行 API 调用。这一配置是在减少推理成本和提升准确率之间寻找的一个平衡点。
根据我们在第 5.2 节详细论述的削减研究,增加这些超参数值似乎能带来更多的提升。举个例子,我们将少样本案例增加至 20 个,集成项目提高至 11 个,这样在 MedQA 上的表现提升了 +0.4+0.4%,达到了新的最高性能水平 {90.6mathbf{90.6%}。
值得一提的是,尽管 Medprompt 在医学基准数据集上取得了创纪录的成绩,但它是一种通用算法,不仅限于医疗领域或多项选择题的解答。我们相信,结合精选少样本案例、自我生成的思维链条推理步骤以及多数投票集成的方法,可以广泛应用于其他问题领域,特别是那些对问题解决任务要求不那么严格的领域(有关如何将这种框架应用到多项选择问题以外的更多细节,请参见第 5.3 节)。
5RESULTS
数据集
Flan-PaLM 540B*
Med-PaLM 2*
GPT-4
GPT-4
(最优选择)
(最优选择)
(五次尝试)
(Medprompt)
MedQA
美国医学问答 (四选一)
67.6
86.5
81.4
90.2**
PubMedQA
需要逻辑推理
79.0
81.8
75.2
82.0
MedMCQA
开发阶段
57.6
72.3
72.4
79.1
MMLU
临床知识测试
80.4
88.7
86.4
95.8
医学遗传学知识测试
75.0
92.0
92.0
98.0
解剖学知识测试
63.7
84.4
80.0
89.6
职业医学知识测试
83.8
95.2
93.8
95.2
大学生物学知识测试
88.9
95.8
95.1
97.9
大学医学知识测试
76.3
83.2
76.9
89.0
-
这些数据直接引用自 [singhal2022large] 和 [singhal2023expertlevel]。所谓的“最优选择”是指在 Med-Palm 研究中采用的一种方法,这种方法尝试了多种不同策略,并从中选出在各数据集中表现最佳的策略。Flan-PaLM 540B 和 Med-PaLM 2 都针对这些基准数据集的子集进行了特别的调整。与此相比,每个 GPT-4 报告的数据都是采用了一个统一的策略,适用于所有的数据集。
-
正如我们在第 5.2 节所讨论的,通过设定参数 k=20k=20 并进行 11 倍的集成步骤,我们取得了 90.6% 的成绩。相对而言,使用 k=5k=5 的少样本(few shot)示例和 5 倍集成的“标准”Medprompt 方法表现为 90.2%。
表 1: 在 MultiMedQA 多项选择测试中,不同基础模型的表现 [singhal2022large]。在每项基准测试中,搭配 Medprompt 的 GPT-4 都超越了其他所有模型。
通过采用在第 4 节中描述的提示工程技术及其与 Medprompt 的有效结合,GPT-4 在 MultiMedQA 的九个基准数据集中均实现了领先水平。
5.1 对非接触数据的表现
图 5: Medprompt 针对 20% 非接触数据集的评估结果。在大多数情况下,Medprompt 在这些数据集上的表现更为出色。
正如在第 5.1 节中介绍的,我们在每个基准数据集中保留的“非接触”子集上测试了 Medprompt 的提示设计,以评估过拟合的风险。GPT-4 搭配 Medprompt 在接触数据上的平均表现为 90.6%,在非接触数据上则为 91.3%,这表明我们的提示工程方法很可能没有在 MultiMedQA 数据集上产生过拟合。作为额外的证明,有 6/9 个基准数据集在非接触数据上的表现更好(见图 5)。
5.2 透过消融研究深入了解 Medprompt 各部分的作用
图 6: 利用消融研究方法探索 Medprompt 各组成部分的贡献度。
图 6 展示了在 MedQA 数据集上的消融研究成果,目的是分析 Medprompt 各项技术的相对重要性。蓝色柱状图代表了之前 [nori2023capabilities] 的工作,为我们的 Medprompt 方法提供了一个基线。接着,我们逐一加入不同的技术,并观察每一次增加对性能的影响。根据第 4.4 节的介绍,我们的基础 Medprompt 策略包含 5 个由 kNN 挑选的少样本范例,并结合了 5 次 API 调用。我们也尝试了使用多达 20 个少样本范例和多达 11 步的集成。结果显示,随着更多少样本范例和集成步骤的增加,性能轻微提升至 90.6%,这意味着通过增加推理时间的成本和复杂度,还有可能进一步提升基准测试的表现。如第 4 节所述,引入思考链条步骤对性能提升最为显著(+3.4+3.4%),紧随其后的是少样本提示和选择性混合集成(每项 +2.2+2.2%)。
值得注意的是,我们所用的技术并不是相互独立的,因此测试每种方法的贡献顺序非常关键。我们对这项消融研究的技术顺序选择是基于主观判断,考虑到引入的技术复杂度。在消融研究中合理分配技术贡献度的更科学方法是计算基于博弈论的沙普利值(Shapley values)[shapley1953value],但这需要大量的模型评估来测试所有可能的顺序排列。我们将这个任务留给未来的研究,并建议读者将消融研究中的数据视作各技术贡献度的合理估计。
MedQA | |
美国 (四选项) | |
专家设计的连锁思考 (CoT) 提示(来源:[singhal2023expertlevel]) | 83.8 |
GPT-4 自创的连锁思考 (CoT) 提示 | 86.9 (+3.1) |
表 2: 这是一个对比研究,比较了专家设计的连锁思考 (CoT) 提示和 GPT-4 自创的 CoT 提示。这两种方法都是基于固定的五个样例进行的,而且没有使用任何集成技术。
除了逐步的改进外,我们还对比了 Med-PaLM 2 项目中使用的专家设计的连锁思考 (CoT) 提示 [singhal2023expertlevel] 和 GPT-4 自动产生的 CoT 提示(详见第 4.2 节)。在固定的五个样例的条件下,没有使用集成技术,我们对 GPT-4 进行了评估。表 2 显示了它们在 MedQA 数据集上的准确度。结果显示,GPT-4 自创的 CoT 提示比专家设计的提高了 3.1 个百分点。我们发现,与 Med-PaLM 2 中的专家设计的 CoT 相比,GPT-4 制作的 CoT 推理过程更长,逻辑更为细致。可能的原因之一是,GPT-4 制作的 CoT 更适合模型自身的特点和局限,这可能使得它在性能上超过专家设计的版本。另一个可能的原因是,专家设计的 CoT 可能含有某些偏见或假设,这些在 MedQA 数据集的所有问题中并不都适用,而 GPT-4 制作的 CoT 则可能更为中立和普遍适用。
5.3 通用化探索:MEDPROMPT 的跨领域应用
我们提出,Medprompt 所运用的提示工程技术组合,融合了动态少样本 (few shot) 选择、自我生成的思维链路和选择洗牌集成方法,具备广泛的通用应用潜力。这些技术并非仅为 MultiMedQA 基准数据集定制。为证实这一点,我们将 Medprompt 方法应用于 MMLU 基准套件中的六个其他、多样化的数据集,这些数据集涉及电气工程、机器学习、哲学、专业会计、专业法律和专业心理学等领域的挑战问题。此外,我们还测试了两个解答 NCLEX(美国国家护士执照考试)风格问题的数据集,该考试是美国注册护士的必要考核。
图 7: GPT-4 在非其专业领域数据集上,采用三种不同提示策略的表现对比。零样本 (Zero-shot) 和五样本 (Five-shot) 方法作为基准,反映了在 [nori2023capabilities] 中采用的方法。
图 7 显示,GPT-4 在这些多样化的非专业领域数据集上,借助 Medprompt、零样本和五样本提示(随机示例选择)的表现。在这些数据集中,Medprompt 在零样本基准提示上平均提升了 +7.3%+7.3%。作为对比,在本文研究的 MultiMedQA 数据集上,Medprompt 相比零样本基准提高了 +7.1%+7.1%。这一跨不同数据集的类似提升率显示了 Medprompt 方法的通用性。虽然超出本文讨论范围,我们相信 MedPrompt 的核心框架——结合了少样本学习和思维链推理,并包裹在一个集成层中——能进一步广泛应用于多项选择题目/答案之外的场景,仅需少量算法调整。例如,在开放文本生成场景中,集成层或许不能直接依靠多数投票,而是可能通过选择在嵌入空间中与其他答案最接近的答案进行聚合。另一种方法是,将每个 KK 生成的文本片段以结构化格式连接起来,让模型选择最可能的选项,类似于 Ensemble Refinement [singhal2023expertlevel] 的方式。将这些算法调整应用到其他场景的探索,我们预留作为未来的研究方向。
6 局限性与风险
我们的论文突出了利用系统化提示工程,使 GPT-4 在医学挑战题目上展现出类似专家的能力,现在我们来反思这一过程的局限性和未来的可能发展。
基础模型训练于海量的互联网数据集上,它们在基准测试中的优异表现可能源自记忆或数据泄露,即训练时已经接触过测试样本。我们先前的研究中评估了 GPT-4 在本文所涉及数据集上的表现,运用了基本的提示方法 [nori2023capabilities] 和黑盒测试算法 (MELD),但未发现记忆迹象。然而,像 MELD 这样的黑盒测试方法并不能确保数据未被模型先前接触过。我们也评估了 GPT-4 在非公开互联网、需付费获取的 USMLE 问题上的表现,发现它同样表现强劲 [nori2023capabilities]。在这项研究中,我们遵循了机器学习的标准最佳实践,以控制提示工程过程中的过度拟合和数据泄露(详见第 5.1 节),但训练过程中的基准污染担忧仍然存在。
我们还要指出,尽管 GPT-4 结合 Medprompt 在基准测试中表现出色,但这并不能证明其在现实世界医疗任务中的实际效果 [nori2023capabilities]。我们对于指导基础模型成为基准测试中的顶尖专家感到兴奋,但在认为这些提示策略和模型输出能够有效应用于现实世界医疗实践时保持谨慎,无论是自动化还是辅助医疗专业人员处理行政任务、临床决策支持或患者参与等。需要明确的是,我们研究的医学挑战题目设计用于测试人类在特定领域的能力,这通常以多项选择题的形式出现。虽然这类测试方法常见且涵盖多种主题,但它们并未全面反映医疗专业人员在实际工作中所面临的任务的范围和复杂性。因此,以测试作为实际能力的替代品,以及专注于多选题答案的方式,在将特定基准测试的优异表现转化为现实世界中的实际表现时存在局限性。此外,尽管我们认为 MedPrompt 策略可适用于非多选题环境,但在本研究中我们并未对这些潜在的适应性进行具体测试。
我们发现,基础模型有时会产生错误的信息(被称为“幻觉”),这可能会干扰生成的内容和建议。尽管改进提示策略可能减少幻觉,提高整体准确率,但也可能导致剩下的幻觉更难发现。值得期待的方向包括对生成内容进行概率校准,为用户提供对输出结果的可信度量。在我们之前的研究中,我们发现 GPT-4 在多选测试问题上的校准非常准确,能提供值得信赖的置信度量 [nori2023capabilities]。
我们还需警惕基础模型输出中的偏见。目前我们还不清楚追求顶尖性能的优化过程如何影响其他目标,例如公平表现。在追求整体准确性的同时,保持对不同子群体的公平表现至关重要,以免加剧医疗保健中已存在的不平等。先前的研究已强调理解和解决 AI 系统中的偏见问题的重要性。在模型优化、细化调整和提示设计方面,解决偏见和公平性问题仍然是一个迫切且重要的挑战 [Howard2017, madaio2022, Zack2023]。
7 总结与结论
本研究展示了如何通过提示策略激发 GPT-4 在医学领域的专家级能力,而无需专门微调或依赖人类专家构建提示。我们分享了评估模型性能的最佳实践,特别强调在“eyes-off”数据集上进行评估的重要性。我们探索了多种提示策略,通过系统化的实验,展示了如何将它们结合以提高专家级表现。我们发现,通过精心设计的提示策略引导 GPT-4,可以大幅提升其在专业领域的表现。
在这些策略中,我们特别介绍了“Medprompt”,这是一种将多种提示方法结合起来的策略,被证明是引导 GPT-4 处理医学问题时的最佳策略。Medprompt 使 GPT-4 在所有标准医学问答数据集中表现出色,超越了之前的专家模型,如经过医学数据微调并由专家临床医生设计提示的 Med-PaLM 2。Medprompt 在 MedQA 上显著提升了准确率,首次将基准测试的准确率提升到 90% 以上。
我们的探索还发现,GPT-4 能够自主编写优于人工专家提示的定制思维链提示。通过消融研究,我们深入了解了 Medprompt 策略各个组成部分的贡献,并证明了它们各自的重要性。为避免过拟合,我们特意留出一些“eyes-off”评估案例库,结果显示 Medprompt 的出色表现不是过拟合的结果。我们还研究了 Medprompt 在医学之外的其他领域(如电气工程、机器学习、哲学、会计、法律、护理和临床心理学)的应用,发现其在这些不同领域中同样有效,表明 Medprompt 及其衍生策略能够释放基础模型在多个学科中的专家能力。我们认为,通过进一步优化提示策略,可以从通用基础模型中挖掘出更多专业能力,特别是在处理非多项选择题方面。例如,我们看到了一个机会:利用 GPT-4 编写自己的强大思维链示例,并将其应用于提示中。未来的研究方向包括进一步探究基础模型在思考和编写少样本示例方面的能力,以及如何将这些能力整合到提示中。
在我们的研究中,虽然重点探讨了普适模型在响应指令方面的强大能力,但我们相信,对基础模型进行微调和采用其他参数更新策略也是不可忽视的重要研究领域。这些方法可能会为提示技术带来相辅相成的优势。我们认为,为了充分发挥基础模型在如医疗保健等高风险领域的潜力,应该慎重考虑这两种方法的应用。
致谢
感谢 Sébastien Bubeck, Peter Durlach, Peter Lee, Matthew Lungren, Satya Nadella(@satyanadella), Joe Petro, Kevin Scott, Desney Tan 和 Paul Vozila 对本研究讨论和反馈的宝贵贡献。