文章目录
- 一、论文关键信息
- 二、主要内容
- 1. Motivations
- 2. 解决方案关键
- 3. 实验和结果
- 三、总结与讨论
🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/
一、论文关键信息
论文标题:GeneGPT: Augmenting Large Language Models with Domain Tools for Improved Access to Biomedical Information
论文地址:https://arxiv.org/abs/2304.09667
作者团队:Qiao Jin, Yifan Yang, Qingyu Chen, Zhiyong Lu
👨💻 代码地址:暂无
关键词:大型语言模型、生物医学问答、工具学习
🏆 一段话总结:教会 CodeX 使用 NCBI Web APIs,SOTA on 7 #GeneTuring tasks。
尽管大型语言模型(LLMs)已被成功应用于各种任务,然而它们仍然面临着幻觉的挑战。利用特定于领域的工具(如数据库实用工具)扩展 LLMs 的应用,能够更轻松、更精准地访问专业知识。在这篇论文中,作者提出了 GeneGPT,这是一种新的方法,用于教授 LLM 利用国家生物技术信息中心(NCBI)的 Web APIs 来回答基因组学问题。具体而言,作者建议使用 CodeX 进行上下文学习,结合增强解码算法来检测和执行 APIs 调用,从而利用 NCBI Web APIs 解决 GeneTuring 测试(基因组学问答基准)。
经过实验证明,GeneGPT 在 GeneTuring 基准测试中 8 个任务中表现最为优异,平均得分为 0.83。相比之下,在检索增强的 LLMs 中,New Bing 得分仅为 0.44;而在生物医学 LLMs 中,BioMedLM 和 BioGPT 的得分分别为 0.08 和 0.04。此外,相对于 GPT-3 和 ChatGPT 而言,GeneGPT 的表现也更为突出,它们的得分分别为 0.16 和 0.12。
进一步分析表明:
- API 演示具有优秀的跨任务通用性,相比文档更有利于上下文学习。
- GeneGPT 可以推广到更长的 APIs 调用链上,并能在 GeneGPT 内回答多跳问题。
- 不同任务中出现的各种错误类型为未来的改进提供了有价值的思路和见解。
理解一篇论文的基本逻辑和形式:
- 针对这篇论文,明确该研究主题的重要意义。
- 在这篇论文完成之前,存在那些挑战和瓶颈性问题。
- 针对这些难点,这篇论文提出/采用/改进了什么关键技术,实现了什么效果。
- 针对什么问题,采取什么策略/开发什么方法,实现或达到什么目标。
二、主要内容
1. Motivations
解决什么问题?做这个事儿的意义、挑战?
- 解决什么问题? → \rightarrow → 教会 CodeX 使用 NCBI Web APIs。
- 做这个事儿的意义? → \rightarrow → 允许 LLM 使用 NCBI Web APIs 能够提供更轻松和更精准的生物医学信息访问,尤其对于缺乏数据库系统经验的用户而言更具价值。此外,Web APIs 还可在访问过程中,免于用户自行实现功能、维护大型数据库和承担繁重的计算负担,其唯一要求是需要良好的网络连接。
- 做这个事儿的挑战? → \rightarrow → 理解用户输入的自然语言问题及意图、Prompt Engineering
2. 解决方案关键
GeneGPT 通过上下文学习和使用 NCBI Web APIs 来提示 CodeX。GeneGPT 由两个主要模块组成:
- 通过 API 使用文档和演示特别设计的提示
- 集成 API 调用的推理算法,用于在 CodeX 解码过程中。
利用 NCBI Web APIs 的 E-utils 和 BLAST 工具,提供了访问生物医学数据库和进行 DNA 序列比对的功能。这些 Web APIs 调用是通过 Python 中的 urllib 库实现的。
通过上下文学习和 Prompt Engineering,教授一个 LLM 如何使用 NCBI Web APIs。展示了 GeneGPT 提示符的示例,它由四个模块组成:
- 指令
- API 说明文档
- API 演示
- 测试问题
前三个部分对于所有任务都是固定的,而最后一个部分则是特定于任务的。
GeneGPT 推理算法。具体而言,我们首先将给定的问题附加到提示符上,并将连接后的文本以温度为 0 的方式提供给Codex。我们选择使用 CodeX 有两个原因:
- 它是使用代码数据进行预训练的,并显示出更好的代码理解能力,这在生成 URL 和解释原始 API 结果方面至关重要。
- 它的 API 具有所有可用模型中最长的上下文长度(8k 个标记),因此我们可以将演示内容适配进去。
3. 实验和结果
实验任务:
- 命名任务。这是关于基因名称的,使用基因别名任务和基因名称转换任务,其中的目标是为它们的非官方同义词找到正式的基因符号。
- 基因组定位任务。关于基因的位置,单核苷酸多态性(SNP),以及它们之间的关系。包括基因定位,SNP 定位和基因 SNP 关联任务。前两个任务要求找出一个基因或 SNP 的染色体位置(如 chr12),最后一个任务要求找出一个特定 SNP 的相关基因。
- 功能分析任务。查询基因功能,使用基因疾病关联任务,其目标是返回与特定疾病相关的基因,以及蛋白质编码基因任务,该任务询问一个基因是否是蛋白质编码基因。
- 序列比对任务。查询特定的 DNA 序列。将 DNA 序列比对应用于人类基因组任务,将 DNA 序列比对应用于多物种任务。前者将 DNA 序列映射到特定的人类染色体,而后者将 DNA 序列映射到特定的物种(如 “斑马鱼”)
主要就是评估在生物医学问答基准 GeneTuring 上的准确性:
三、总结与讨论
推出了 GeneGPT,这是一种新颖的方法,教授 LLMs 如何使用 NCBI Web APIs。它在 8 个 GeneTuring 任务上实现了 SOTA 性能,并可以执行链式 API 调用。实验结果表明,数据库实用工具可能比相关网页更优秀,可以增强 LLMs,以忠实地服务于各种生物医学信息需求。
📚️ 相关工作:
- 大型语言模型
- 工具学习
- 生物医学问答
🚀 论文的主要贡献总结如下:
- 引入了 GeneGPT,这是一种新颖的方法,利用 NCBI Web APIs 来回答生物医学问题。作者声称,这是第一项使用领域特定的 Web APIs 工具来增强 LLMs 的研究。
- GeneGPT 在 GeneTuring 基准测试的 8 个任务中取得了 SOTA 的表现,大大优于以前最佳结果 88%(0.83 v.s. 0.44 set by the new Bing)。
- 进一步实验验证了 GeneGPT,包括消融、探测和误差分析。我们还贡献了一个新颖的 GeneHop 数据集,并使用它来展示 GeneGPT 可以执行思路链式 API 调用来回答多跳基因组学问题。
👀 可能的改进和进一步工作:
- Prompt Engineering
- 强化思维链推理
- OpenAI 官方的 API 已经推出了函数调用功能啦
参考链接:
- Jin, Q., Yang, Y., Chen, Q., & Lu, Z. (2023). GeneGPT: Augmenting Large Language Models with Domain Tools for Improved Access to Biomedical Information. ArXiv.
- GeneGPT 利用生物医学信息工具增强大型语言模型
- 🧬 #GeneGPT: augmenting #LLMs with domain tools for improved access to biomedical information
- emoji 中文网 | 个人觉得写博客可以多用一些合适的 emoji 表情
- Google 机器学习术语表