基于工具增强的大型语言模型在生物医学信息获取中的突破:GeneGPT 方法介绍
本报告旨在向中文科研界介绍一项发表于 Bioinformatics 期刊(2024年2月10日在线发表,卷40期2,文章编号 btae075)的重要原创性研究。该研究由来自美国国立卫生研究院国家生物技术信息中心与美国国家医学图书馆的研究团队完成,主要作者包括 Qiao Jin, Yifan Yang, Qingyu Chen, 通讯作者为 Zhiyong Lu。
一、 研究背景与目的
本研究属于人工智能与生物信息学的交叉领域,聚焦于大型语言模型在专业科学应用中的增强。近年来,以 GPT、PaLM 等为代表的大型语言模型在众多自然语言处理任务上展现出卓越能力,甚至在临床试验匹配、生物医学问答等专业领域也达到了最先进的性能。然而,LLMs 固有的“幻觉”问题——即生成看似合理但实际错误的内容——限制了其在需要精确、可靠信息的严肃科学场景中的应用。为了克服这一挑战,当前主流方法主要分为两类:一是检索增强生成,即通过检索相关外部信息来为模型生成提供依据;二是工具增强,即赋予模型调用外部工具(如计算器、数据库应用程序接口)的能力。
本研究团队注意到,美国国家生物技术信息中心(National Center for Biotechnology Information, NCBI)通过其 Web 应用程序接口(API, Application Programming Interface)——如 Entrez Programming Utilities (E-utils) 和 BLAST URL API——提供了访问其全部生物医学数据库和工具的便捷通道。让 LLMs 学会使用这些 API,可以使用户(尤其是对复杂数据库系统不熟悉的用户)更轻松、更精确地获取生物医学信息,同时也避免了用户本地实现功能、维护庞大数据库和承担繁重计算任务的负担。
因此,本研究旨在探索并验证一种新方法,通过上下文学习的方式,教导 LLMs 直接生成请求 URL 来调用 NCBI Web APIs,从而准确回答基因组学问题。研究团队将这种方法命名为 GeneGPT。具体目标包括:1)开发一种新颖的提示构建与解码算法,使模型能够有效使用 NCBI 工具;2)在一个标准化的基因组学问答基准测试(GeneTuring)上评估其性能,并与现有主流 LLMs 进行对比;3)深入分析 GeneGPT 的特性、优势与局限性。
二、 研究流程与方法细节
研究流程主要包含 GeneGPT 方法的设计与构建、在基准数据集上的实验评估,以及对方法特性的深入分析。
1. GeneGPT 方法设计: GeneGPT 的核心是教导 Codex 模型(一种基于代码数据预训练的 LLM)通过上下文学习来使用 NCBI Web APIs。该方法包含两个关键模块: * 精心设计的提示: 提示由四个固定部分构成:(i)指令:明确任务目标——“使用 NCBI APIs 回答基因组学问题”。(ii)API 文档:提供 E-utils 和 BLAST API 功能、通用语法和参数选择的自然语言描述。(iii)API 演示:包含四个手动编写的具体示例,展示了如何使用 E-utils 的 esearch、efetch、esummary 功能以及 BLAST 工具来回答不同问题。在演示中,API URL 和调用结果被“[]”括起,中间插入特殊的“->”符号作为 API 调用的指示符。(iv)测试问题:将要回答的具体问题附加在提示末尾。 * 推理算法: 该算法集成了 API 调用到 Codex 的解码过程中。具体步骤为:将拼接好的提示文本输入 Codex(温度参数设为0以保证确定性生成)。在文本生成过程中,一旦检测到“->”符号,即暂停生成,并提取符号前的最后一个 URL。随后,系统实际调用该 NCBI Web API,并将原始执行结果附加到已生成的文本之后。这个扩充后的文本再次被送入 Codex 以继续生成。当模型生成出“\n\n”答案指示符以及随后的“answer:”后,推理停止,并提取最终答案。
2. 实验评估对象与数据集: 研究在 GeneTuring 基准测试上进行评估。这是一个专门针对基因组学的问答基准,包含12个任务,每个任务有50个问答对。本研究选用了其中与 NCBI 资源相关的9个任务,并将其分为四大模块: * 命名(Nomenclature):包括“基因别名”和“基因名称转换”任务,目标是找出非官方基因同义词对应的官方基因符号。 * 基因组位置(Genomic Location):包括“基因位置”、“SNP位置”和“基因-SNP关联”任务,涉及基因、单核苷酸多态性及其位置关系。 * 功能分析(Functional Analysis):包括“基因-疾病关联”和“蛋白质编码基因”任务,涉及基因功能与疾病的关系。 * 序列比对(Sequence Alignment):包括“DNA序列与人类基因组比对”和“DNA序列与多物种比对”任务,涉及将DNA序列映射到特定染色体或物种。
3. 对比方法与评估指标: 研究比较了 GeneGPT 的多种设置:使用全部提示组件的完整版(GeneGPT-full)以及根据分析简化的仅含两个演示的版本(GeneGPT-slim)。此外,还尝试了将基础模型替换为 GPT-3.5-turbo-16k 的版本(GeneGPT-turbo),以及使用 LangChain 的 ReAct 代理实现的版本(GeneGPT-lang)。基线模型涵盖了通用领域 LLMs(GPT-2, GPT-3, ChatGPT)、生物医学领域特定 LLMs(BioGPT, BioMedLM)以及检索增强模型 New Bing。为了进行更严格的评估,研究对 GeneGPT 采用了自动评估,主要依据模型预测答案与标准答案的精确匹配度,部分任务(如基因-疾病关联)则计算召回率。
4. 分析实验: 除了主实验,研究还设计了四项分析以深入探究 GeneGPT 的特性(RQ1-RQ4): * RQ1:提示组件重要性分析:通过消融实验(逐一移除每个组件)和探测实验(仅使用单个组件)来评估文档和演示各自的作用。 * RQ2:多跳问答能力测试:构建了一个名为 GeneHop 的新数据集,包含三个基于 GeneTuring 任务衍生的多跳问答任务(例如,“给定一个SNP,询问其关联基因的功能”)。通过添加“让我们逐步分解问题”的指令,测试 GeneGPT 进行链式推理和 API 调用的能力,并与 New Bing 对比。 * RQ3:错误分析:手动检查 GeneGPT 的所有错误答案,并将其归类为五种类型:E1(使用错误API或未使用API)、E2(使用正确API但参数错误)、E3(未从API结果中正确提取答案)、E4(API调用正确但结果中不包含答案,即问题无法通过NCBI数据库解答)、O(其他错误)。 * RQ4:使用范围讨论:从理论上界定 GeneGPT 能够回答的问题范围,即那些可以被分解为一系列子问题、且每个子问题都能通过某个 NCBI Web API 端点直接回答的问题。
三、 主要实验结果
1. 在 GeneTuring 基准测试上的性能: GeneGPT(特别是 GeneGPT-slim)在 GeneTuring 的9个任务中,有8个达到了最先进的性能,平均得分高达 0.83,显著超过了其他所有对比模型。具体来看: * 命名与基因组位置任务:GeneGPT 表现极为出色,在基因名称转换、基因-SNP关联、SNP位置等任务上准确率达到或接近1.00,大幅领先 New Bing(平均0.76 vs 0.21)。这表明对于需要精确查询数据库标识符和位置信息的数据密集型任务,工具增强比检索增强更有效。 * 功能分析任务:New Bing 在该模块表现最佳(平均0.91),略优于 GeneGPT(平均0.84)。分析认为,这可能是因为许多基因功能相关信息可以通过 Bing 搜索从网页中检索到。同时,GPT-3 和 ChatGPT 在此类任务上也表现尚可,暗示其预训练语料中包含了较多相关文本知识。 * 序列比对任务:这是 GeneGPT 优势最明显的领域(平均0.66),而 New Bing 和其他 LLMs 在此几乎完全失败(平均0.00或接近0)。这凸显了对于高度特异性、搜索引擎难以索引的数据(如原始DNA序列),直接调用专业计算工具(BLAST)的必要性和优越性。 * 模型变体对比:使用 GPT-3.5-turbo 作为基础模型的 GeneGPT-turbo 取得了与 Codex 版本相当的性能(0.78 vs 0.83),证明了该方法对不同 LLM 的适用性。而基于 LangChain ReAct 的实现效果较差,主要因为 E1 类错误较多。
2. 组件重要性分析结果(RQ1): * 消融实验显示,移除 BLAST 演示(dm.4)会显著降低序列比对任务的性能,但移除 BLAST 文档(dc.2)则无影响。其他组件的移除大多只影响与其直接相关的任务,表明提示组件之间存在较高的冗余性。 * 探测实验显示,仅使用 API 文档(dc.1 或 dc.2)的模型在所有任务上均告失败。然而,仅使用一个基因别名任务的演示(dm.1),GeneGPT 就能在除比对任务外的所有任务上达到与完整版相当的性能。结合仅使用 BLAST 演示(dm.4)即可处理好比对任务的结果,研究得出结论:仅需两个演示(dm.1 和 dm.4) 就足以让 GeneGPT 泛化到 GeneTuring 的所有任务。API 演示的跨任务泛化能力远强于文档描述。这催生了更简洁高效的 GeneGPT-slim 版本。
3. 多跳问答能力结果(RQ2): 在 GeneHop 数据集上的手动评估表明,GeneGPT 能够成功进行链式思考,将复杂问题分解为子问题并顺序调用 API 求解。例如,在回答“与 SNP rs983419152 相关的基因功能是什么?”时,它能先调用 API 找到关联基因,再调用 API 查询该基因的功能,甚至能“走捷径”直接利用第一步结果中的基因ID进行第二步查询。GeneGPT 在三项多跳任务上的平均得分为 0.50,显著优于 New Bing 的 0.24。New Bing 仅在“疾病-基因位置”任务上表现较好,但其成功很可能源于检索到了同时包含疾病和位置信息的网页,而非真正的多步推理。对于涉及 SNP 或序列等搜索引擎难以索引的输入信息的多跳问题,New Bing 则完全失败。
4. 错误分析结果(RQ3): 研究发现,不同的任务集中出现不同类型的错误:简单的位置查询任务失败多因问题本身无法通过数据库回答(E4);疾病相关任务易出现使用错误数据库(E1)的错误;序列比对任务则更多与 BLAST 接口或参考基因组问题有关(O);而 GeneHop 中的多跳任务则容易在推理链中犯参数错误(E2)或理解错误(E3)。这为未来针对性改进提供了方向。
四、 研究结论与意义
本研究提出并验证了 GeneGPT,一种通过上下文学习教导 LLMs 使用 NCBI Web APIs 的新方法。主要结论如下: 1. 有效性:GeneGPT 在标准基因组学问答基准 GeneTuring 的八个任务上取得了最先进的性能,平均分数(0.83)远超检索增强模型 New Bing(0.44)及其他 LLMs,证明了将领域特定工具(如数据库 API)与 LLMs 结合以解决数据密集型、需要精确访问专业知识的任务的巨大潜力。 2. 泛化性与简洁性:API 使用演示在跨任务泛化中起到关键作用,其效果优于 API 文档描述。仅需少量演示(甚至两个)即可使模型掌握多种 API 的调用,并能推广到更长的链式调用以解决多跳问题。 3. 应用价值:GeneGPT 提供了一种无需对基础 LLM 进行任务特定训练即可显著提升其在专业领域性能的模型无关增强策略。它使得不熟悉复杂生物信息学数据库的用户也能通过自然语言交互,便捷、精准地获取所需信息,同时免去了本地部署和维护的负担。
五、 研究亮点
六、 其他有价值内容
研究构建并公开了 GeneHop 多跳问答数据集,为评估模型在生物医学领域的复杂推理能力提供了新的基准。此外,研究指出,对于能够被分解为一系列子问题、且每个子问题均可由特定 API 端点解答的复杂问题,GeneGPT 在理论上均具备解答潜力,这为其应用范围的扩展提供了理论框架。同时,研究也坦诚指出了当前方法的局限性,例如依赖于演示示例的质量、可能出现的 API 调用或参数错误等,为未来的改进指明了方向。