知识图谱增强的RAG(KG-RAG)详细解析

转自:知识图谱科技

这是一个与任务无关的框架,它将知识图谱(KG)的显性知识与大型语言模型(LLM)的隐含知识结合起来。这是该工作的arXiv预印本 https://arxiv.org/abs/2311.17330 。

我们在这里利用一个名为SPOKE(https://spoke.ucsf.edu/)的大规模生物医学知识图谱作为生物医学背景的提供者。SPOKE已经整合了来自不同领域的40多个生物医学知识库,每个知识库都专注于生物医学概念,如基因、蛋白质、药物、化合物、疾病及其相关连接。

SPOKE由21种不同类型的超过2700万个节点和55种类型的5300万条边组成(https://doi.org/10.1093/bioinformatics/btad080)。

KG-RAG的主要特点是从SPOKE KG中提取“提示感知上下文”,其定义为:足以回答用户提示的最小上下文。

图片

图片

因此,这个框架通过从生物医学KG中获得的优化领域特定的“提示感知上下文”,赋予了一个通用型的LLM更强大的功能。

图片

图片

询问 GPT-4 关于上述药物:

没有KG-RAG

注意:此示例是使用KG-RAG v0.3.0运行的。我们是通过终端来启动GPT,而不是通过chatGPT浏览器。分析中的温度参数设置为0。参考此yaml文件进行参数设置,包括KG-RAG。

有KG-RAG

注意:此示例是使用KG-RAG v0.3.0运行的。分析过程中,温度参数设置为0。有关参数设置,请参阅此yaml文件。

Step 4: 更新config.yaml

注意:还有另一个名为system_prompts.yaml的yaml文件。它已经填充好,并保存了KG-RAG框架中使用的所有系统提示。

设置脚本以交互方式运行。

运行设置脚本将:

1.为KG-RAG创建疾病向量数据库

2.在您的机器上下载Llama模型(可选,您可以跳过此步骤,完全没有问题)

你可以使用GPT和Llama模型来运行KG-RAG。

示例:注意:以下示例在AWS p3.8xlarge EC2实例上运行,并使用KG-RAG v0.3.0。

用GPT的交互模式

示例

注意:以下示例是在AWS p3.8xlarge EC2实例上运行,并使用KG-RAG v0.3.0。

用Llama交互模式

SPOKE KG可以通过以下链接访问:

https://spoke.rbvi.ucsf.edu/neighborhood.html。也可以使用REST-API访问

(https://spoke.rbvi.ucsf.edu/swagger/)。

KG-RAG代码可在

https://github.com/BaranziniLab/KG_RAG 下载。本研究中使用的生物医学数据集(一跳问题、两跳问题、真假问题、多选题问题、药物重新定位问题、SPOKE KG中的疾病上下文)可供研究界使用,位于同一GitHub存储库中。

原文 - [2311.17330] Biomedical knowledge graph-enhanced prompt generation for large language models (arxiv.org)zhu

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

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

相关文章

Typescript配置文件(tsconfig.json)详解系列四:esModuleInterop和allowSyntheticDefaultImports

Typescript版本 Typescript5.5.2 如果我们使用ESM作为模块系统,那么我们经常会用以下两种方式去导入另一个模块: // 引入一个对象,包括了所有的export xxx 和 export default import * as A from ./xx; // 引入export default import B fr…

自定义表格_可拖拽排序

在做后台管理系统的时候,经常需要表格里面的每行排序,自定义可拖拽表格,更改样式方便。 一、实现效果 进行拖拽演示: 可拖拽排序表格 无滚动条样式: 有滚动条样式: 二、代码 使用reactscssts,实现页面。 …

用最简单的方法对大数据进行处理 vs spark(不需要安装大数据处理工具)

一、大文件处理策略 (一)、难点 内存管理: 大文件无法一次性加载到内存中,因为这可能会导致内存溢出(OutOfMemoryError)。 因此,需要使用流(Stream)或缓冲区&#xff08…

Linux(CentOS)ftp服务搭建

ftp服务器搭建 1. 下载ftp服务2. 查找ftp配置文件3. 查看配置文件信息4. Windows连接ftp服务1)使用文件资源管理器连接2)使用FlashFXP工具,比文件资源管理器好用,强烈推荐 5. Linux连接 1. 下载ftp服务 yum install -y vsftpd2. …

Docsify:快速用Markdown文档搭建网站的利器

Github官方地址:Docsify 什么是Docsify? 对于经常写博客的人来说,markdown大家都不陌生。今天介绍一个在最近需求中碰到的软件Docsify,通过它能够将Markdown直接转换为网页。话不多说,下面直接介绍它的快速用法。 D…

Apache、nginx

一、Web 1、概述 Web:为⽤户提供的⼀种在互联⽹上浏览信息的服务,Web 服务是动态的、可交互的、跨平台的和图形化的。 Web 服务为⽤户提供各种互联⽹服务,这些服务包括信息浏览服务,以及各种交互式服务,包括聊天、购物…

fastapi教程(五):中间件

一,什么是中间件 中间件是一种软件组件,它在请求到达应用程序处理程序之前和/或响应发送回客户端之前执行操作。 请求从客户端发出。 请求首先经过Middleware 1。 然后经过Middleware 2。 请求到达FastAPI路由处理器。 响应从路由处理器返回。 响应经过…

LeetCode242 有效的字母异位词

前言 题目: 242. 有效的字母异位词 文档: 代码随想录——有效的字母异位词 编程语言: C 解题状态: 成功解答! 思路 问题的本质就是两个字符串是否包含相同的元素。字符串的元素都是小写的字母,那么元素的种…

如何通过 CloudCanal 实现从 Kafka 到 AutoMQ 的数据迁移

01 引言 随着大数据技术的飞速发展,Apache Kafka 作为一种高吞吐量、低延迟的分布式消息系统,已经成为企业实时数据处理的核心组件。然而,随着业务的扩展和技术的发展,企业面临着不断增加的存储成本和运维复杂性问题。为了更好地…

Android Studio Module 引入aar

1. 把 aar 文件放到 module 的 libs 目录下 2. 作为 lib 的 module 的 build.gradle 文件: repositories {flatDir {dirs libs}}dependencies {.....implementation (name: TestLibrary-release, ext: aar)}3. app 的 build.gradle 文件:(必须配置) rep…

《LeetCode热题100》---<双指针篇四道>

本篇博客讲解LeetCode热题100道双指针篇中的 第一道:移动零(简单) 第二道:盛最多水的容器(中等) 第一道:移动零(简单) class Solution {public void moveZeroes(int[] nu…

web小游戏开发:拼图(一)

web小游戏开发:拼图(一) 拼图游戏规则拼图方式原始拼图对调拼图移动拼图拼图难度拼图交互puzzle8.com联众拼图其他部分拼图游戏准备工作htmljscss小结拼图游戏规则 对于拼图游戏来说,整理有两种拼图块,一种就是方形的,一种是不规则的,带有咬合齿的。一般来说,线下手工…

基于CentOS Stream 9平台安装JDK17.0.12

官方: https://www.oracle.com/java/technologies/downloads/#java17 1. 下载: https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz 2. 存放目录 mkdir /usr/local/javacd /usr/local/java3. 解压 tar -zxvf jdk-17_linux-x64_…

除了GPT,还有哪些好用的AI工具?

最强AI视频生成:小说文案智能分镜智能识别角色和场景批量Ai绘图自动配音添加音乐一键合成视频百万播放量https://aitools.jurilu.com/ 多得很,这20个免费的国产AI工具,打工人必备,除了比chatGPT好用,甚至还可以用来变现…

Linux:进程通信之管道

管道 A.What 本质是内核缓存区 B. 管道的特点 内核缓冲区大小固定位4k管道独立于进程存在管道的数据结构:环形队列(读端和写端)单工:写端流向读端读数据相当于出队列默认阻塞:管道无数据,默认读端阻塞&am…

C语言中的指针基础

文章目录 🍊自我介绍🍊地址🍊C语言中的指针 你的点赞评论就是对博主最大的鼓励 当然喜欢的小伙伴可以:点赞关注评论收藏(一键四连)哦~ 🍊自我介绍 Hello,大家好,我是小珑也要变强&am…

099、Python 从网站上下载图片,并压缩发送到指定邮箱中

要实现从网站上下载图片,并压缩发送到指定邮箱中,可以按下面步骤进行编程。 一、从网络上下载图片: 这里我们使用requests 模块,requests 模块是一个非常流行的 HTTP 库,用于发送各种 HTTP 请求。 1、安装 pip ins…

论文阅读-《Distant Supervision for Relation Extraction beyond the Sentence Boundary》

文章提出了首个将远程监督应用于跨句子关系提取的方法,通过整合句内和句间关系,利用图表示和多路径特征提取提高了准确性和鲁棒性。 摘要 文章提出了一种新的方法,用于在远程监督下进行跨句子的关系抽取。这种方法利用图表示来整合依赖和话…

七天学Flutter(day0)

前言 上周把这周的需求提前干完了,准备突击学习一下flutter。其实早就年初就想学习flutter,但是种种原因没有学习。这里不过多概述。 基础情况:没有学过dart以及flutter;有一定compose、kotlin安卓原生基础 O:坚持打卡…

常用传感器讲解十五--触摸传感器(KY-036)

常用传感器讲解十五–触摸传感器(KY-036) 具体讲解 这个比较简单,就是触摸后给个信号 电路连接 在Arduino上将VCC引脚连接到5V。 将GND连接到Arduino的GND。 将OUT连接到Arduino上的D2 代码实现 void setup() {pinMode(2, INPUT);Seri…