GeneGPT:用领域工具增强大型语言模型,以改善对生物医学信息的访问

文章目录

  • 一、论文关键信息
  • 二、主要内容
    • 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 机器学习术语表

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python3 标准库概览 | 菜鸟教程(十八)

目录 一、Python3 标准库中的模块 (一)os 模块 (二)sys 模块 (三)time 模块 (四)datetime 模块 (五)random 模块 (六)math 模块…

PostgreSQL13.1

目录 1. PostgreSQL简介1.1 PostgreSQL是什么?1.2 PostgreSQL数据库的优缺点是什么?1.2.1 PostgreSQL的主要优点如下:1.2.2 PostgreSQL的应用劣势如下: 1.3 PostgreSQL不同大版本之间的特性比较1.4OpenGauss与PostgreSQL的对比1.4…

互联网编程之多线程/线程池TCP服务器端程序设计

目录 需求 多线程TCP服务器 线程池TCP服务器 测试 日志模块 需求 多线程TCP服务器(30分): 设计编写一个TCP服务器端程序,需使用多线程处理客户端的连接请求。客户端与服务器端之间的通信内容,以及服务器端的处理…

Linux中创建sftp用户并限制目录权限

注意两点: 一是禁止该用户通过ssh登录,二是不需要创建家目录。家目录简单来说,就是在/home下的用户命令,默认每个用户在/home中都是有与用户名一样的文件夹。 1.创建组 groupadd sftp 2. 创建用户 useradd -g sftp -s /sbin/…

API 网关 vs 负载均衡:选择适合你的网络流量管理组件

由于互联网技术的发展,网络数据的请求数节节攀升,这使得服务器承受的压力越来越大。在早期的系统架构中,通常使用负载均衡来将网络流量平摊到多个服务器中,以此减轻单台服务器的压力。但是现如今,后端服务的种类在不断…

vue进阶-elementPlus

Element Plus官网 Element Plus 基于 Vue 3,面向设计师和开发者的组件库。减少开发者关注css,重心关注业务逻辑。 1. 入门 1.1 安装 npm install element-plus --save1.2 快速开始 1、main.js 引入并 use element-plus import { createApp } from …

Java开发 - Canal的基本用法

前言 今天给大家带来的是Canal的基本用法,Canal在Java中常被我们用来做数据的同步,当然不是MySQL与MySQL,Redis与Redis之间了,如果是他们,那就好办了,我们可以直接通过配置来完成他们之间的主从、主主&…

Java官方笔记13集合

Storing Data The Collections Framework is the most widely used API of the JDK. 集合不是数据类型,它是JDK的API,可以用来存储数据等,相当于数据结构。 the Collections Framework is a set of interfaces that models different way of …

DYnamics 365如何隐藏实体列表页面home page页面上的PowerBI按钮和EXCEL template按钮

如何隐藏以上两个按钮,用ribbon工具根本找不到这2个按钮。 解决方案:添加一个没用的按钮,通过调用enable方法来隐藏。 // JavaScript source code function HiddenButton() { HiddePowerBIButton(); HiddeDocumentTemplateButton(); return…

大数据周会-本周学习内容总结018

开会时间:2023.06.18 15:00 线下会议 目录 01【调研-数据分析(质量、ETL、可视化)】 02【fhzn项目】 2.1【es多维度检索接口】 2.2【AI算法库资料整理】 03【专利】 04【学习内容】 4.1【flink】 01【调研-数据分析(质量、…

svn commit 用法

转载   原文:https://blog.csdn.net/qq_39790633/article/details/103700391 使用svn进行代码的提交有两种方法:一种是通过TortoiseSVN客户端界面进行提交,另一种是通过svn commit指令提交。 方法一:通过TortoiseSVN客户端界面提…

【Linux 驱动篇(二)】LED 驱动开发

文章目录 一、Linux 下 LED 灯驱动原理1. 地址映射1.1 ioremap 函数1.2 iounmap 函数 2. I/O 内存访问函数2.1 读操作函数2.2 写操作函数 二、实验程序编写1. LED 灯驱动程序编写2. 编写测试 APP 三、运行测试1. 编译驱动程序和测试 APP1.1 编译驱动程序1.2 编译测试 APP 2. 运…