Biomedical knowledge graph-enhanced prompt generation for large language models

1. 生物医学知识图谱增强大语言模型提示生成

论文地址:[2311.17330] Biomedical knowledge graph-enhanced prompt generation for large language models (arxiv.org)

源码地址:https://github.com/BaranziniLab/KG_RAG 

2. 摘要

大语言模型(LLM)一直在以前所未有的速度推动人工智能的进步,但在生物医学等知识密集型领

域仍然面临挑战。预训练和特定领域微调等解决方案增加了大量的计算开销,后者也需要领域专业

知识。外部知识注入是特定于任务的,需要模型训练。在这里,我们引入了一种与任务无关的基于

知识图谱的检索增强生成(KG-RAG)框架,通过利用 Llama-2-13b、GPT-3.5-Turbo 和 GPT-4

等大语言模型和大规模生物医学知识图谱 SPOKE 来生成植根于既定知识的有意义的生物医学文

本。 KG-RAG 持续增强了 LLM 在各种提示类型上的表现,包括一跳和两跳提示、药物再利用查

询、生物医学真/假问题和多项选择题 (MCQ)。值得注意的是,KG-RAG 在具有挑战性的 MCQ 数

据集上使 Llama-2 模型的性能显着提升了 71%,证明了该框架能够以更少的参数为特定领域的问

题赋能开源模型。此外,KG-RAG 还增强了专有 GPT 模型的性能,例如 GPT-3.5,它在 MCQ 数

据的上下文利用率方面比 GPT-4 有所改进。我们的方法还能够解决药物再利用问题,返回有意义

的再利用建议。总之,所提出的框架以优化的方式分别结合了KG和LLM的显性和隐性知识,从而

增强了通用LLM在统一框架中解决特定领域问题的适应性。

3. 简介

大语言模型 (LLM) 在解决涉及语言建模和处理各个领域的复杂任务方面表现出了令人印象深刻的

性能 [1]。 LLM 在自监督学习框架中对大量文本数据进行预训练,该框架可以是掩码语言建模(例

如 BERT 等模型 [2,3])或自回归框架(GPT 等模型 [4,5])。这种预训练将有关语言的知识编码到

模型参数中。与深度神经网络中常用的迁移学习方法类似,这种隐性知识可以通过监督训练进行细

化,以在一系列特定领域的任务中表现出色[5,6]。尽管如此,作为对输入提示的响应[7-9],给出的

答案在语言上是连贯的(即:“幻觉”),但LLM中知识的“隐式表示”也被证明会产生非事实信息。

这个问题对在生物医学等精度要求严格的领域具有重大挑战。

人们引入了各种策略来解决LLM的幻觉。其中一种解决方案涉及利用特定领域的数据来预训练

LLM,而不是依赖通用文本语料库。这种方法产生了PubMedBERT[10]、BioBERT[11]、

BlueBERT[11,12]、SciBERT[13]、ClinicalBERT[14]、BioGPT[5]、Med-PaLM[15]等模型的创建,

和BioMedGPT[16]。然而,考虑到当前LLM实现类人性能所需的巨大计算成本和时间,这种从头开

始对LLM进行预训练是不切实际的。提出了一种称为提示调整的替代方法,作为增强 LLM 性能的

方法,例如通过使用零样本[17]、少样本[4] 和思想链[18] 提示策略。

尽管提示调整方法已被证明是有效的,但其性能仅限于知识密集型任务,这些任务需要提供有关世

界的最新知识来解决用户提示问题。为了解决此类知识密集型任务,提出了一种将KG与LLM相结

合的替代方法[19-25]。这种方法主要在问答任务中实现,其中知识图谱中包含的结构化信息用于提

供预测问题答案的上下文。虽然这种多模式综合方法显示出希望,但其下游监督培训是针对特定任

务量身定制的,限制了其多功能性和广泛适用性,从而限制了其充分利用LLM“新兴能力”[26]。为

了增强LLM的情境意识,最近引入了一种称为检索增强生成(RAG)的方法[27]。该方法涉及增强

参数预训练的LLM,使其能够访问包含有关世界的新知识的非参数存储器(例如维基百科)[27]。

在本文中,我们提出了一种将 KG 与 RAG 框架内预先训练的 LLM 相结合的方法,从而实现两全​​

其美。为了实现这一目标,我们利用了一种称为可扩展精准医学开放知识引擎(SPOKE)的生物

医学知识图谱[28]。

SPOKE 集成了 40 多个不同领域的公开生物医学知识源,其中每个源都围绕一个生物医学概念,

例如基因、蛋白质、药物、化合物、疾病以及它们的一种或多种已知关系。因为这些概念是形成定

义集的循环实体(例如,所有命名的人类基因、所有 FDA 批准的药物等),所以将这些概念集成

到单个图中揭示了连接知识源并提供生物学和本体论的新颖的多跳事实关系和每个概念的上下文。

我们提出的框架巧妙地检索了生物医学来自 SPOKE 的上下文,优化其提取以充分满足提示,从而

创建我们所说的“提示感知上下文”。这种丰富的提示进一步用作 RAG 框架中 LLM 的输入,以生成

有意义的生物医学文本。我们使用各种预训练的 LLM(包括 Llama-2-13b、GPT-3.5-Turbo 和 GP

T-4)评估了这种方法。通过改变LLM的系统提示,我们能够利用相同的框架来执行各种生物医学

任务,例如真/假和多项选择回答、药物重新利用建议以及解决与疾病相关的一般生物医学查询。

这种适应性凸显了我们的方法与任务无关的本质。进一步进行了系统的比较分析,以评估 Llama-

2-13b、GPT-3.5-Turbo 和 GPT-4 在此框架内的性能。因此,我们的方法展示了处理各种特定领域

生物医学任务的能力,而无需对通用LLM进行额外的预训练或微调。这种方法不仅简化了流程,而

且具有成本效益和时间效率。

4. 框架

我们开发了一个框架,为大语言模型构建准确且值得信赖的生物医学提示。该 KG-RAG 框架涉及

根据用户提示进行实体识别、从 KG 中提取生物医学概念、提示感知上下文生成、转换为自然语

言、提示组装和答案检索。使用不同的场景对该方法的性能进行了广泛的测试。

图 1 显示了使用两种方法作为 GPT-4 模型输入的一跳提示(图 1A 黄色框)和两跳提示(图 1B 黄

色框):(i)基于提示,即没有 KGRAG(蓝色框)和 (ii) 有 KG-RAG(绿色框)。我们观察到,

只有 KG-RAG 能够解决该问题,并为一跳(图 1A 黄色框)和两跳提示(图 1B 黄色框)提供了简

短而直接的答案。 

基于知识图谱的检索增强生成 (KGRAG) 框架的架构。箭头方向表示该框架中管道的流向。

疾病实体识别这是KG-RAG的第一步。这一步的目标是从输入的文本提示中提取疾病概念(一个实

体),然后在KG中找到对应的匹配疾病节点(一个SPOKE概念)。这是通过两步过程实现的:i)

从提示中提取实体,ii) 与 SPOKE 进行实体匹配。实体提取识别并提取输入文本提示中提到的疾病

实体,也称为“提示疾病提取”。为了实现这一目标,在 GPT-3.5-Turbo 模型上使用了零样本提示

[17] 方法。具体来说,系统提示被设计为从输入文本中提取疾病实体并以 JSON 格式返回它们。

接下来,使用实体匹配来获取 KG 中表示的疾病的概念名称。为此,SPOKE 中所有疾病概念(即

节点)的嵌入均使用“all-MiniLM-L6-v2”句子转换器模型[46]。该过程将疾病概念的名称转换为 384

维密集向量空间,使其适合语义搜索。接下来,这些新创建的疾病概念嵌入被存储在“Chroma”向

量数据库中[47]。选择与提取的实体具有最高向量相似度的疾病概念用于后续上下文检索。如果零

样本方法无法识别提示中的疾病实体,则会从向量数据库中选择与整个输入文本提示具有最显着向

量相似性的五个疾病概念。

虚线框显示了知识图中“疾病实体识别”和“提示感知上下文提取”的详细信息 。

首先,使用转换器模型(使用超参数调整完成模型选择)将输入提示和所有提取的上下文关联嵌入

到同一向量空间(上图中的上下文潜在空间)。接下来,仅选择与输入提示向​​量具有最高余弦相似

度的上下文关联(上图)。对于上下文选择,提示上下文余弦相似度应该满足两个条件:(i) 大于

包含与所选疾病节点相关的所有上下文的相似性分布的 75%,以及 (ii) 具有 0.5 的最小相似性值。

5. 超参数分析

优化了“上下文体积”和“上下文嵌入模型”等两个超参数。

上下文量定义了允许从 KG 流向 LLM 的图形连接数量的上限。上下文嵌入模型是一种在从 KG 检

索准确的生物医学背景以响应输入提示方面表现出更高相关度的方法。为了优化这些超参数,我们

使用了两种上下文嵌入模型(基于 MiniLM 和 PubMedBert 的模型),并且上下文体积的大小不断

增加(图 2A)。对于一跳提示,在所有上下文卷设置中,基于 PubMedBert 的模型的平均性能

(Jaccard 相似度)比 MiniLM 模型高出约 10%(PubMedBert 的平均性能 = 0.67,MiniLM 的平

均性能 = 0.61)。对于两跳提示,在所有上下文设置中,PubMedBert 的性能比 MiniLM 高出

8.1%(PubMedBert 模型的平均性能 = 0.4,MiniLM 的性能 = 0.37)。

就上下文量而言,图 2A 显示单跳提示的性能曲线趋于稳定,并且双跳提示的性能曲线呈现趋于稳

定的趋势(对于两种模型)。

基于这些发现,我们选择基于 PubMedBert 的模型作为上下文嵌入模型,并将上下文量设置为

100-200 之间的值(对于大多数下游任务,我们选择上下文量为 150,对于 True/False 问题,我

们选择选择上下文体积 100)。

图 2. 超参数分析和药物再利用性能 (A) 使用一跳(上)和两跳(下)提示的超参数分析性能曲

线。 x 轴表示“上下文量”(来自 KG 的关联数量),y 轴表示提示中的平均表现(杰卡德相似

度)。红色曲线表示“S-PubMedBert-MSMARCO”,蓝色曲线表示“all-MiniLM-L6-v2”上下文嵌入模

型。 (B) LLM在药物再利用问题上的平均表现(杰卡德相似度)(上)。误差条表示 95% CI。底

部面板显示了关于 COVID-19 的药物再利用提示示例(黄色框)以及使用 KG-RAG 框架的 GPT-4

模型的相应响应(绿色框)。注意:由于空间限制,绿色框中的响应被截断。 

在本研究中,控制 LLM 输出随机性水平的“温度”参数 [4] 对于所有 LLM 均设置为 0。

6. 药物再利用

图 2B 显示了三种 LLM 模型(Llama-2-13b、GPT-3.5-Turbo 和 GPT-4)的药物再利用性能分析。

我们观察到性能指标持续增长(Jaccard 相似度)从 Llama-2-13b 到 GPT4,有趣的是这个顺序与

这些模型的参数大小的顺序一致(图 2B,表 1)。 KG-RAG 框架能够从 SPOKE 提供必要的背景

信息,以回答与 COVID-19 相关的药物再利用问题(图 2B 下图黄色和绿色框)。除了提供可行的

再利用建议外,它还对临床试验评估这些建议有效性的必要性发出了谨慎的警告。这表明一种负责

任且具有安全意识的文本生成方法(图 2B 下图绿色框)。

表 1. 使用 KG-RAG 框架在药物再利用提示上的模型性能(Jaccard 与 KG 的基本事实相似度)

7. True/False 和 MCQ 

为了评估LLM在 True/False 和 MCQ 数据集上的表现,我们随机抽取了 150 个问题并替换了

1000 次(使用 bootstrapping)。然后计算每次采样迭代的准确度指标,从而得出性能分布。在药

物再利用数据集的情况下,杰卡德相似度被用作性能指标。

图 3 显示了三个 LLM 在 True/False(图 3A)和 MCQ(图 3B)数据集上使用基于提示和 KG-

RAG 框架的性能(准确性)的引导分布。 

表 2 总结了三个LLM在这些数据集上的表现。我们观察到 KG-RAG 框架下的 LLM 模型在

True/False 和 MCQ 数据集上都有一致的性能增强(表 2)。KG-RAG 在更多方面将 Llama-2 的

性能从初始水平(0.31±0.03 至 0.53±0.03)显着提高了约 71%,具有挑战性的 MCQ 数据集(表

2)。有趣的是,我们还观察到,在不基于提示的方法中,与使用 KG-RAG 框架的 MCQ 数据集上

的 GPT-3.5-Turbo 模型 (0.79±0.02) 相比,GPT-4 模型 (0.74±0.03) 的性能有小幅下降(T 检验,p

-value < 0.0001,t-statistic = -47.7,N = 1000)。

图 3. True/False 和 MCQ 数据集上的 LLM 表现 LLM 在 (A) True/False 和 (B) MCQ 数据集上的表

现(准确度)分布。蓝色分布表示使用基于提示的方法的性能,红色分布表示使用基于 KG-RAG

的方法的性能。黑色垂直虚线表示分布的平均值。 

表 2. True/False 和 MCQ 数据集上的 LLM 表现(准确度:平均值±标准差)

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

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

相关文章

【PHP+代码审计】PHP基础——流程控制

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收…

[nlp入门论文精读] | Transformer

写在前面 最近工作从CV转向了NLP&#xff0c;于是空余时间便跟着哔哩哔哩李沐老师的视频学习。其实研一NLP课程讲论文的时候&#xff0c;我们小组就选择了经典的Attention和Bert&#xff0c;但还有很多细节并不完全理解&#xff0c;实际使用时也很困惑。 因此这个系列就来记…

C语言快速入门之字符函数和字符串函数

一.字符分类函数和字符转换函数 C语言中有一系列的函数专门做字符分类的&#xff0c;就是区分一个字符是属于什么类型的&#xff0c;头文件是 #include <ctype.h> 以下是具体函数&#xff1a; 这些函数的使用方法类似&#xff0c;我们写出一些代码来举例。 例如&…

神经网络线性量化方法简介

可点此跳转看全篇 目录 神经网络量化量化的必要性量化方法简介线性对称量化线性非对称量化方法神经网络量化 量化的必要性 NetworkModel size (MB)GFLOPSAlexNet2330.7VGG-1652815.5VGG-1954819.6ResNet-50983.9ResNet-1011707.6ResNet-15223011.3GoogleNet271.6InceptionV38…

【力扣精选算法100道】——二进制求和

LCR 002. 二进制求和 - 力扣&#xff08;LeetCode&#xff09; 目录 &#x1f388;了解题意 &#x1f388;算法分析 &#x1f6a9;cur1>0 &#x1f6a9;cur2>0 &#x1f6a9;t &#x1f388;实现代码 &#x1f388;了解题意 遵循二进制加法法则&#xff0c;如果俩…

单通道 6 阶高清视频滤波驱动电路芯片D1675,一款高清视频信号译码、编码的滤波器和缓冲器

1、概述&#xff1a; D1675单电源工作电压为2.5V到5V&#xff0c;是一款高清视频信号译码、编码的滤波器和缓冲器。与使用分立元件的传统设计相比&#xff0c;D1675更能节省PCB 板面积&#xff0c;并降低成本以及提高视频信号性能。D1675集成了一个直流耦合输入缓冲器、一个消除…

一分钟就能搞定发成绩这件事,你信吗?

快节奏的现代教育环境中&#xff0c;每一分钟都显得尤为宝贵。对于老师和家长来说&#xff0c;及时、准确地获取学生的成绩信息是关乎学生学习进度和效果的重要环节。那么&#xff0c;有没有一种方法能在短短一分钟内完成成绩的发布和查询呢&#xff1f;答案是肯定的&#xff0…

OceanBase4.2版本 Docker 体验

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 哈喽&#xff01;大家好&#xff0c;我是【IT邦德】&#xff0c;江湖人称jeames007&#xff0c;10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】&#xff01;&#x1f61c;&am…

闲聊电脑(7)常见故障排查

闲聊电脑&#xff08;7&#xff09;常见故障排查 夜深人静&#xff0c;万籁俱寂&#xff0c;老郭趴在电脑桌上打盹&#xff0c;桌子上的小黄鸭和桌子旁的冰箱又开始窃窃私语…… 小黄鸭&#xff1a;冰箱大哥&#xff0c;平时遇到电脑故障该咋处理呢&#xff1f; 冰箱&#xf…

linux 查看打开使用了哪些端口

你可以使用 netstat 命令来查看Linux系统中正在使用的端口。例如&#xff0c;要查看所有正在使用的TCP和UDP端口&#xff0c;你可以运行&#xff1a; sudo netstat -tulpn如果你只想查看所有正在使用的TCP端口&#xff0c;你可以运行&#xff1a; sudo netstat -tpln 如果你只…

C#,红黑树(Red-Black Tree)的构造,插入、删除及修复、查找的算法与源代码

1 红黑树(Red-Black Tree) 如果二叉搜索树满足以下红黑属性,则它是红黑树: 每个节点不是红色就是黑色。根是黑色的。每片叶子(无)都是黑色的。如果一个节点是红色的,那么它的两个子节点都是黑色的。对于每个节点,从节点到后代叶的所有路径都包含相同数量的黑色节点。红…

使用yarn创建vite+vue3electron多端运行

文章目录 第一步 使用yarn创建vitevue3项目遇到创建报错看 第二步 引入electron第三步 创建main.js在electron下面的main.js写入下面代码 第四步 安装同时运行多条命令npm包&&修改package.json文件npm包增加一条electron运行脚本命令 效果图 第一步 使用yarn创建vitevu…

关于- bounding box reparameterization

因为detr以及大部分detr的变体都是将box的x,y,w,h映射到[0~1]之间&#xff1b; 这样对于小目标的检测的话就会比较困难&#xff0c;因为损失被大目标主导了&#xff0c; 所以将box的坐标编码为跟长宽占比的数值&#xff0c;具体如图图中描述所示&#xff1a;

SA3D:基于 NeRF 的三维场景分割方法

Paper: Cen J, Zhou Z, Fang J, et al. Segment anything in 3d with nerfs[J]. Advances in Neural Information Processing Systems, 2024, 36. Introduction: https://jumpat.github.io/SA3D/ Code: https://github.com/Jumpat/SegmentAnythingin3D SA3D 是一种用于 NeRF 表…

JAVA实战开源项目:生活废品回收系统(Vue+SpringBoot)

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、研究内容三、界面展示3.1 登录注册3.2 资源类型&资源品类模块3.3 回收机构模块3.4 资源求购/出售/交易单模块3.5 客服咨询模块 四、免责说明 一、摘要 1.1 项目介绍 生活废品回收系统是可持续发展的解决方案&#xff0c;旨在鼓…

Linux中文件的权限

我们首先需要明白&#xff0c;权限 用户角色 文件的权限属性 一、拥有者、所属组和other&#xff08;用户角色&#xff09; 以文件file1为例 第一个箭头所指处即是文件的拥有者&#xff0c;拥有者为zz 第二个箭头所指处即使文件的所属组&#xff0c;所属组为zz 除去拥有者…

Docker 搭建 PaddleOCR

转自PaddleOCR docker模式 - 简书 目的: 公司要放弃第三方的ocr工具(日语),需要自己搭建训练一套,这篇是搭建 图片要标出文字的选取框 因为是日文所以ocr有专门的工具,只需要文字坐标就好如图 日文的账票需要加密一下 我得环境是 Ubuntu 22.04.1 LTS 1,下载代码 cd /hom…

10、Redis分布式系统之数据分区算法

Redis分布式系统之数据分区算法 1、什么是Redis分布式系统 ​ Redis分布式系统&#xff0c;官方称为Redis Cluster, Redis集群&#xff08;这个集群和前面的主从复制集群不同&#xff0c;这个集群可以理解为是多个主从复制集群所组成的集群&#xff09;&#xff0c;其实是Red…

js手写实现迭代器生成器函数包括【ES5】和【ES6】

/*** JS原生的集合类型数据结构&#xff0c;只有Array&#xff08;数组&#xff09;和Object&#xff08;对象&#xff09;&#xff1b;而ES6中&#xff0c;又新增了Map和Set。* 四种数据结构各自有着自己特别的内部实现&#xff0c;但我们仍期待以同样的一套规则去遍历它们&am…

垃圾清理软件大全免费 磁盘空间不足?注册表不敢乱动怎么办?ccleaner官方下载

在日常的工作中&#xff0c;面对重要文件时往往都会备份一份&#xff1b;在下载文件时&#xff0c;有时也会不小心把一份文件下载好多次。这些情况会导致电脑中出现重复的文件&#xff0c;删除这些重复文件&#xff0c;可以节省电脑空间&#xff0c;帮助提高电脑运行速度。那么…