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

news2024/11/16 11:55:18

文章目录

  • 一、论文关键信息
  • 二、主要内容
    • 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.coloradmin.cn/o/655535.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

代码审计——垂直越权详解

为方便您的阅读,可点击下方蓝色字体,进行跳转↓↓↓ 01 漏洞描述02 审计要点03 漏洞特征04 漏洞案例05 修复方案 01 漏洞描述 垂直越权,也称权限提升,是一种“基于URL的访问控制”设计缺陷引起的漏洞。 由于Web应用程序没有做权…

2023开放原子全球开源峰会——Intel专题探访

浩瀚宇宙,有光,朝着未来之境;万物之始,有道,启示智慧共荣;在多维赋能的时空里,见微知著,开放共享 ,包罗万象;在抵达终点的路途中,彼此陪伴&#x…

《Java核心卷1》怎么样?读1,2章草记 | 第12版

文章目录 《Java核心技术卷 一》第一章 概述第二章 Java编程环境 图书推荐 《Java核心技术卷 一》 第一章 概述 前言:本书与一些”0基础入门“的书定位感觉是不太一样的,可能就像书名所说,是”核心技术“叭。书中经常将Java语言与 c 进行对比…

基于Java电子竞技管理平台设计实现(源码+lw+部署文档+讲解等)

博主介绍: ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精…

详解c++---红黑二叉树的原理和实现

什么是红黑二叉树树 avl树是通过控制平衡因子来控制二叉搜索树的平衡,当某个节点的平衡因子等于2或者-2的话我们就根据他所在的位置来进行旋转,如果这个节点位于右右的话就对其进行向左旋转,如果这个节点位于左左的话就对其进行向右旋转&…

【Android复习笔记】OkHttp核心原理

使用方法 调用流程 0kHttp请求过程中最少只需要接触OkHttpClient、Request、Call、 Response,但是框架内部进行大量的逻辑处理。 所有的逻辑大部分集中在拦截器中,但是在进入拦截器之前还需要依靠分发器来调配请求任务。 分发器:内部维护队列与线程池,完成请求调配;拦截…

chatgpt赋能python:Python中嵌套列表的访问方法

Python中嵌套列表的访问方法 在Python编程中,嵌套列表是一种很常见的数据类型。它可以存储多个列表,使得数据结构更加复杂灵活。然而,如何访问嵌套列表中的元素呢?本文将详细介绍Python中嵌套列表的访问方法。 嵌套列表的定义 …

ch8_2_CPU的指令周期

1.  指令周期 指令周期是指_ CPU从主存取出一条指令, 分析指令,加上执行这条指令的时间。 1.1指令周期 指令周期: 是指cpu,从内存中取出指令,并且执行一条指令所需要的全部时间。 比如 从内存单元中,取出操作数&…

【备战秋招】每日一题:4月29日美团春招第二题:题面+题目思路 + C++/python/js/Go/java带注释

为了更好的阅读体检,为了更好的阅读体检,,可以查看我的算法学习博客第二题-限行 在线评测链接:P1267 题目内容 塔子哥是一个富有的商人,他在一家大型贸易公司工作。他的公司位于城市的中心区,是一座高耸的摩天大楼。…

代码审计——SSRF详解

为方便您的阅读,可点击下方蓝色字体,进行跳转↓↓↓ 01 漏洞描述02 审计要点03 漏洞特征04 漏洞案例05 修复方案 01 漏洞描述 服务端请求伪造攻击(SSRF)也成为跨站点端口攻击,是由于一些应用在向第三方主机请求资源时提…

Linux 学习记录33(网络编程篇)

Linux 学习记录33(网络编程篇) 本文目录 Linux 学习记录33(网络编程篇)一、阻塞IO二、非阻塞IO三、信号驱动IO四、IO多路复用(重点)1. select (TCP服务器)TCP服务器代码TCP客户端代码 2. poll 一、阻塞IO 1. 最常用,最简单,效率最低的. 2. 创建套接字文…

WPF开发txt阅读器11:自定义控件更改音量语速

文章目录 自定义控件控件调用自定义事件更改音量和语速 txt阅读器系列: 需求分析和文件读写目录提取类💎列表控件与目录字体控件绑定💎前景/背景颜色书籍管理系统💎用树形图管理书籍语音播放💎播放进度显示&#x1f4…

【Java】Java核心要点总结 65:TreeSet 两种排序

文章目录 1. Comparable 和 Comparator区别比较2. TreeSet有两种实现指定排序规则的方式: 1. Comparable 和 Comparator区别比较 Comparable 是排序接口,若一个类实现了Comparable接口,就意味着“该类支持排序”。Comparator 是比较器&#x…

使用post请求建立长连接实现sse,接收后端主动发来的消息,实现chat-gpt的弹字效果,EventSource的应用

每日鸡汤:每个你想要学习的瞬间都是未来的你向自己求救 最近在做一个chat相关的功能,然后由于接口返回特别特别慢,所以需要搞一个慢慢等待的效果,就是接口一个单词一个单词的返回,然后前端收到一个展示一个&#xff0c…

Nucleo-F411RE (STM32F411)LL库体验 6 - EXTI外部中断的使用

Nucleo-F411RE (STM32F411)LL库体验 6 - EXTI外部中断的使用 1、简述 开发板蓝色按键连接PC13管脚,且断开时为高电平,闭合时低电平。我们将pc13设置为中断模式,低电平触发,当按键按下时,触发中…

Hadoop完全分布式运行环境的搭建

Hadoop完全分布式运行环境的搭建 文章目录 Hadoop完全分布式运行环境的搭建0. 写在前面1. 模板虚拟机环境准备安装模板虚拟机hadoop01虚拟机配置要求如下关闭防火墙,关闭防火墙开机自启创建普通用户配置新用户权限修改所属主和所属组卸载虚拟机自带的JDK重启虚拟机 …

【备战秋招】每日一题:4月23日美团春招第四题:题面+题目思路 + C++/python/js/Go/java带注释

为了更好的阅读体检,为了更好的阅读体检,,可以查看我的算法学习博客第四题-01串的代价 在线评测链接:P1248 题目内容 塔子哥是一个喜欢研究密码的人,他经常在网上寻找各种有趣的密码挑战。他最近发现了一个神秘的网站&#xff…

指定字符串数组中每个元素sn的长度L如果sn长度比L短,则补充空格,且sn居中如果sn长度比L长,则保留sn左侧L个字符

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 指定字符串数组中每个元素sn的长度L 如果sn长度比L短,则补充空格,且sn居中 如果sn长度比L长,则保留sn左侧L个字符 [太阳]选择题 下列代码最后输出的结果是&#xff1f…

基于Java在线购物系统设计实现(源码+lw+部署文档+讲解等)

博主介绍: ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精…

MindFusion.Java Swing Pack 2023.R1 Crack

MindFusion.Java Swing Pack 2023.R1 改进了图表、电子表格和虚拟键盘。 6月 15, 2023 - 16:06 新版本 特征 MindFusion.Diagramming 的新功能 空间索引 - 创建项目位置索引,以便更快地进行命中测试和视口裁剪查询。这极大地提高了包含数…