Med-Gemini:Google在医学AI领域的探索与启示

39

1. 引言

在垂直领域模型开发中,医疗和法律等专业领域因其对模型专业能力的高要求而备受关注。各大厂商纷纷投入资源,力求在这些领域取得突破。

Google于五一劳动节当天在Arxiv上发布了题为《Capabilities of Gemini Models in Medicine》的研究论文,详细阐述了通过微调Gemini模型在医学领域取得的成果和方法。该论文长达58页,由30多位作者共同完成,引用文献多达10页,可见其规模之大和研究之深入。一些媒体甚至将其誉为“医疗AI的一大步”和“医学大模型里程碑之作”。

Med-Gemini 论文

在认真研读了这篇论文后,发现其核心在于展示Gemini模型本身在医学领域的潜力,而非开发出一个专门的医疗模型。论文题目中的“Capabilities of Gemini Models in Medicine”强调了对Gemini系列模型在医学领域各种能力的探索。此外,该项目并未开源,但其研究思路仍具有重要参考价值。

本文将对这篇论文进行深入解读,希望能为相关研究者提供有益的参考。

2. 论文工作概述

该论文的核心观点是,若要AI在医学应用中表现出色,必须具备以下关键能力:

  • 高级推理能力:优秀的医生都具备卓越的推理能力,这是诊断的基础。
  • 获取最新医学知识的能力(RAG):医学知识不断更新,需要将最新的研究成果应用于诊断。
  • 理解复杂的多模态数据:医学诊断依赖于多种辅助数据,如X光片、心电图等。
  • 长上下文能力:医学诊断需要查阅大量的病史数据,长文本处理能力至关重要。

Google的Gemini模型在长文本和多模态处理方面表现出色。因此,该团队利用这些基础能力,结合微调和Agent技术,开发了一系列针对医学领域应用的模型,统称为Med-Gemini。这些模型具备推理、多模态和长文本/网络检索能力。

Med-Gemini在14个医学基准测试中,有10个达到了SoTA(State of the Art),并且在每个可以直接比较的基准测试中都超过了GPT-4模型家族。此外,Med-Gemini还在医学文本总结和转诊信生成等任务中超越了人类专家。

需要注意的是,Med-Gemini不是一个单一的模型,而是一系列模型的集合。这意味着不同的模型专注于不同的能力,例如高级推理或多模态处理。

为了提升基础Gemini模型在医学领域的推理、多模态和长文本能力,研究团队采用了不同的方法:

  • 推理能力:通过自训练和网络搜索集成进行高级推理。
  • 多模态:使用各种医疗X光片等数据进行微调,并增加了一个编码器来适应心电图等其他模态的数据。
  • 长上下文:提出了一种新的inference-time chain-of-reasoning提示方式,以帮助模型更好地理解长的电子健康记录(EHRs)。

3. 基础和微调模型的对应关系

由于所有工作都基于Google的Gemini基础模型,因此首先了解Gemini的模型列表至关重要。Gemini模型有1.0和1.5两个版本,每个版本又根据参数量的不同分为Ultra、Pro和Nano三个档次。目前,1.5版本只有Pro版本,而Nano版本面向移动设备。

下面是论文中的原图,说明了Med-Gemini是在Gemini模型的基础上,分别通过不同的技术手段增强了高级推理能力,多模态和长上下文处理能力而得到的。

Med-Gemini模型架构

Med-Gemini和Gemini的对应关系如下:

任务 基础模型 医学模型 技术手段
无需复杂推理的语言任务 Gemini 1.0 Pro Med-Gemini-M 1.0 微调
需要高级推理的任务 Gemini 1.0 Ultra Med-Gemini-L 1.0 自训练及不确定性引导搜索
多模态 Gemini 1.5 Pro Med-Gemini-M 1.5 微调
长上下文 Gemini 1.5 Pro Med-Gemini-M 1.5 提示工程(推理时推理链技术)
多模态专用编码器 Gemini 1.0 Nano Med-Gemini-S 1.0 增加心电图专用编码器

4. 如何增加模型专业领域的推理能力

将Gemini 1.0 Ultra训练成为Med-Gemini-L 1.0的方法被称为“通过自训练及Web搜索的高级推理”。

4.1 自训练方法介绍

自训练是一种模型训练方法,主要用于在标注数据较少的情况下。其过程如下:

  1. 初始训练:使用已有的标注数据训练模型。
  2. 未标注数据的预测:使用初步训练的模型处理大量的未标注数据。
  3. 生成伪标签:模型对未标注的图片进行预测,并选择置信度最高的预测作为伪标签。
  4. 合并数据集:将带有伪标签的未标注图片添加到训练数据集中。
  5. 再次训练:使用新的数据集重新训练模型。
  6. 迭代:重复上述过程,每次都使用最新训练的模型为更多的未标注数据生成伪标签,并使用这些数据来进一步训练模型。

4.2 制定训练目标

训练目标是增强基础模型在医学领域的推理能力,并使其能够在必要时通过网络搜索信息来支持自己的判断。由于临床诊断需要大量的复杂推理过程,医生可能会对患者症状、医疗和活动史、实验室诊断、先前对治疗的反应以及其他更广泛的因素进行推理。因此,医学大模型不仅需要具有强大的推理能力,而且还能够整合最新的信息。

4.3 收集和生成训练数据

为了微调训练,需要准备大量的数据,最好是医生针对病例诊断的思考过程。然而,收集这些数据非常困难。因此,作者利用MedQA数据集进行了扩展。MedQA数据集包含医生资格考试的选择题。研究人员先让一些专家针对数据集里的问题写下自己的推理过程和依据,然后利用这些数据作为示例,让模型模仿着去做题,并且要求它把推理过程写下来。如果选择题做错了,那么就把数据过滤掉;如果做对了,就保留推理过程。这样就得到了大量可以用于训练的数据。

在生成数据的过程中,会提示模型生成两种数据,一种是不利用搜索,一种是利用搜索,两种方法得到了两种数据集MedQA-R 和 MedQA-RS。

MedQA数据集

4.4 迭代训练

在生成的数据上微调Med-Gemini-L 1.0之后,模型遵循few shot prompt中的推理风格和搜索整合的能力得到提升。然后,使用改进的模型重新生成新的合成数据,并迭代重复这个自训练过程,直到模型的性能达到饱和。

4.5 推理

在推理过程中,作者用了一种叫Uncertainty-guided search at inference (不确定性引导搜索的推理)的方法来让模型决定什么时候应该去搜索网络内容来支持推理。

不确定性引导搜索

推理过程分为四个步骤:

  1. 一个问题给出多个推理结果:给定一个带有医学问题的输入上下文提示,先让模型生成多个推理。对于第一次推理结果,输入提示仅包含指令和问题。对于后续迭代,提示还包括来自下面第(4)步的搜索结果。
  2. 决定是否利用搜索:给定第(1)步的多个推理结果,会根据结果来计算一个值,这个值表示了模型推理结果多大的确定性。这里会设定一个阈值,如果模型的输出非常确定,那么就直接给出结果,如果不确定,那么就说明需要启动搜索。
  3. 不确定性指导的搜索查询生成:如果模型对推理结果不是很确定,那么就提示Med-Gemini-L 1.0生成三个搜索查询关键词,这些查询结果有助于解决不确定性。
  4. 搜索检索:生成的查询关键词提交给网络搜索引擎,检索到的结果被整合到Med-Gemini-L 1.0的输入提示中,用于下一次迭代,从第(1)步重新开始。通过用搜索结果增强提示,使模型能够通过考虑从网络搜索中获得的外部相关见解来完善其响应。

4.6 评估

这种方法是否有效需要通过测试来决定。在论文中,通过测试MedQA和其他题目,结果显示该方法有效,并达到了SoTA。

5. 有什么参考意义

总的来说,Google的Med-Gemini项目主要用于展示Gemini模型的一些能力,从实际医学应用的角度来看,意义可能不是那么大。然而,对于想要自己做垂直大模型的企业来说,仍然可以提供一些有价值的参考。

  1. 明确训练任务:首先需要明确需要增强模型的哪方面能力。Med-Gemini项目清晰地定义了医学领域需要的高级推理、多模态和长文本三个方面的能力。
  2. 构建垂直行业系统,而非垂直行业大模型:Med-Gemini项目并没有在一个模型上去实现所有的能力,而是分别选择了不同的模型进行微调,最后通过Agent整合的方式来实现一个系统。因此,不要指望一个模型解决所有问题。
  3. 重视数据和评测标准:很多论文实际上是在整理数据和评测标准。如果没有数据和评测标准,微调就没有方向。而这两个问题可能比想象中要困难很多。
  4. 评估成本:像Google这样的大公司,投入了几十号人,也只是完成了这样一个项目。因此,开发垂直大模型的成本不容忽视。

总的来说,这篇文章的学术意义可能有限,但具有一定的实际参考意义。对于希望在医疗AI领域有所突破的研究者和企业来说,Med-Gemini项目提供了一种可借鉴的思路和方法。