当前位置: 首页 > news >正文

基于KG生成语料增强解决RAG问答幻觉问题的简单框架-WalkRetrieve

Walk&Retrieve基于知识图谱,利用基于图遍历和知识表述来进行零样本RAG的语料库生成。解决RAG系统的幻觉问题。该框架思路比较简单,核心点在于零样本RAG的语料库生成,下面来看看,供参考。

方法架构

语料生成

在框架中,语料生成该方法的核心步骤。该阶段从知识图谱中提取相关信息,并将其转化为适合LLM处理的文本格式。语料生成包括以下几个步骤:基于图的遍历、知识表示和索引。

1.基于图的遍历
  1. 随机游走:随机游走是一种随机过程,从一个节点开始,每次以均匀的概率选择当前节点的邻居节点进行移动。

    其中, ∣ N ( v i ) ∣ \left|N\left(v_{i}\right)\right| N(vi) 表示节点 v i v_i vi 的邻居数量。
    对于每个节点 v ∈ V v \in V vV,生成 n w n_w nw 条长度为 l l l 的随机游走路径 W l \mathcal{W}_{l} Wl。最终的语料库 C R W C_{RW} CRW 是所有节点的随机游走路径的集合。

    • 优点:简单易行,适用于大规模图谱。
    • 缺点:可能会产生重复路径和噪声。
  2. 广度优先搜索-BFS游走:BFS是一种图遍历算法,从根节点开始,逐层访问其邻居节点。对于每个根节点 v r ∈ V v_r \in V vrV,构建一个层次结构,每一层的节点表示与根节点的最短路径距离。然后,按照层次顺序进行遍历,确保每个节点只被访问一次。

    其中, L 0 = { v r } L_0 = \{v_r\} L0={vr} d d d 是最大深度。

    • 优点:避免了重复路径,生成的游走路径更加多样化。
    • 缺点:计算复杂度较高,尤其是在深层遍历时。
2.知识表示

LLM需要文本输入,需要将提取的图遍历路径转换为自然语言描述。使用预定义的提示模板,将每个节点的游走路径转化为自然语言句子。例如,对于一个随机游走的路径 ( v 1 , r 1 , v 2 , r 2 , v 3 ) (v_1, r_1, v_2, r_2, v_3) (v1,r1,v2,r2,v3),可以生成类似“ v 1 v_1 v1 通过关系 r 1 r_1 r1 连接到 v 2 v_2 v2,而 v 2 v_2 v2 通过关系 r 2 r_2 r2 连接到 v 3 v_3 v3”的句子。

预定义的提示模板

3.索引

将每个游走路径 w i v w_i^v wiv 转换为向量表示,并计算每个节点的全局表示,作为其所有游走路径向量的拼接。将节点及其对应的游走路径向量存储起来,便于在推理阶段进行快速检索。

检索问答

该阶段不是重点,与传统的RAG相同,包括将query编码、相似性检索(k近邻搜索)、上下文整合、答案生成。

答案生成prompt模板

实验性能

MetaQA上的性能:Walk&Retrieve-BFS在答案准确性和减少虚假答案方面表现最佳,相对提高了38.64%。其他基于KG的RAG系统虽然准确性高,但虚假答案更多。Walk&Retrieve-BFS在1跳、2跳和3跳问题上的真实性和减少无响应方面表现优异。

CRAG上的性能:Walk&Retrieve变体在答案准确性上优于仅使用LLM和基于文本的RAG,同时在虚假答案和无响应率上与之相当。由于CRAG的复杂性较高,Walk&Retrieve的性能略有下降,但仍表现出良好的鲁棒性。

参考文献:Walk&Retrieve: Simple Yet Effective Zero-shot Retrieval-Augmented Generation via Knowledge Graph Walks,https://arxiv.org/pdf/2505.16849v2

http://www.xdnf.cn/news/708139.html

相关文章:

  • 【Redis】string 类型
  • 【Doris基础】Apache Doris vs 传统数据仓库:架构与性能的全面对比
  • 架构意识与性能智慧的双重修炼
  • 为 Ubuntu 安装的软件创建桌面图标
  • qt结构化绑定的重大缺陷:只能创建局部变量
  • Knife4j框架的使用
  • WPF的布局核心:网格布局(Grid)
  • 【海康USB相机被HALCON助手连接过后,MVS显示无法连接故障。】
  • forward(转发)和redirect(重定向)
  • Spring AI(9)——MCP客户端
  • HackMyVM-Dejavu
  • Spark-Core Project
  • scp 命令
  • Unity开发之Webgl自动更新程序包
  • 4.1.1 Spark SQL概述
  • spark在执行中如何选择shuffle策略
  • Java开发经验——阿里巴巴编码规范实践解析6
  • 【Linux篇】叩响新世界的大门:线程
  • 【stm32开发板】原理图设计(电源部分)附:设计PCB流程
  • SmolVLM2: The Smollest Video Model Ever(七)
  • Kafka核心技术解析与最佳实践指南
  • BPE、WordPiece 与 Unigram:三种主流子词分词算法对比
  • 关于测试小记
  • flutter项目迁移空安全
  • ADQ36-2通道2.5G,4通道5G采样PXIE
  • 5G-A时代与p2p
  • 晶振频率稳定性:5G 基站与航天设备的核心竞争力
  • Axios 如何通过配置实现通过接口请求下载文件
  • 网络渗透基础:信息收集
  • thinkphp 5.1 部分知识记录<一>