【LLM之KG】TOG论文阅读笔记

embedded/2024/10/18 8:22:07/

研究背景

本文针对大型语言模型(LLMs)在处理深度和负责任的推理任务时常见的幻觉问题进行研究,特别是在需要深层次逻辑链多跳知识推理的场景中。为了解决这些问题,作者提出通过结合外部知识图谱(KGs)来增强LLMs的推理能力。

研究目标

研究的核心目标是开发一种新的算法框架“Think-on-Graph”(ToG),该框架通过在知识图谱上进行动态探索和推理,使LLMs能够进行更深入和负责任的推理。ToG框架的目标是提供一种灵活的、无需额外训练成本的解决方案,以提高模型在知识密集型任务中的表现。

相关工作

论文详细回顾了使用LLMs进行推理的现有方法,特别强调了链式思考(Chain-of-Thought)和自我一致性(Self-Consistency)等技术。此外,文章还探讨了知识图谱在增强LLMs推理能力方面的作用,分析了将KGs作为外部知识源用于减轻LLMs幻觉问题的各种方法。

方法论

数据处理

ToG开始于定义问题的初始实体,接着利用LLM对这些实体在KG中的相应三元组进行动态检索。这一过程涉及到从KG中提取与问题直接相关的信息,并构建可能的推理路径。举个例子:
在这里插入图片描述

解决方案

ToG采用了一个三阶段的推理框架:初始化、探索和推理。在初始化阶段,ToG识别问题中的关键实体并定位它们在KG中的位置。探索阶段通过beam search算法迭代地探索多个可能的推理路径。最后,在推理阶段,LLM评估当前的推理路径是否足够回答问题,如果不够则继续探索,直到找到满足条件的答案或达到搜索的最大深度。流程如下:
在这里插入图片描述

  1. 主题实体提取,使用LLM初始化实体提取,得到若干后续主题实体;
  2. 子图查询,包括关系查询和实体查询,先根据实体,查找其存在的关系,然后再根据关系,查询对应的实体;
  3. 关系裁剪,对于给定的实体,通过查询,可以得到多个路径(关系),需要对路径进行排序,在这里,利用大模型进行评估,通过prompt完成,如:请检索对问题有贡献的N个关系(用分号隔开),并按0到1的等级对其贡献进行评分(N个关系的分数总和为 1);
  4. 实体裁剪,让大模型用0至1分给各实体对问题的贡献打分(所有实体得分之和为1),用来做评分对比,也是通过prompt实现;
  5. 相关度判断,通过探索过程获得当前推理路径P后,会提示LLM评估当前推理路径是否足以生成答案。如果评估结果是肯定的,就提示LLM以查询为输入,使用推理路径生成答案。反之,如果评估结果为负,则重复探索和推理步骤,直到评估结果为正或达到最大搜索深度Dmax。如果算法尚未结束,则表明即使达到最大搜索深度Dmax,ToG仍无法探索出解决问题的推理路径。在这种情况下,ToG将完全根据LLM中的固有知识生成答案。这一目标,同样也是依赖prompt完成处理,思想在于:给定一个问题和相关的检索知识图谱三元组(实体、关系、实体),要求大模型回答用这些三元组和大模型知识是否足以回答这个问题(是或否);
  6. 生成结果,直接将检索到的文本加入到prompt中,送入大模型,完成答案生成。

同时,本文还提出了TOG的变体ToG-R,即“Think-on-Graph with Relation-based reasoning”(基于关系的思考图推理),专注于利用关系链进行推理。与基本的ToG框架主要通过实体和它们的三元组进行推理不同,ToG-R更加专注于利用从知识图谱(KG)中提取的关系来推动问题的解答。

ToG-R的优点:

  • 效率:通过关注关系链而非多个实体间的复杂连接,ToG-R可以更快地导航知识图谱,减少了计算负荷。
  • 专注性:这种方法使模型更专注于利用和分析那些直接与问题相关的知识,有助于提高答案的相关性和准确性。
  • 简化的推理路径:关系链的使用简化了推理过程,使得从问题到答案的逻辑更加清晰,也便于解释和验证。

实验

实验处理

实验设计部分使用了多个KBQA数据集来评估ToG的性能,包括CWQ和WebQSP等。实验中,ToG与现有的基于提示的方法和微调方法进行了比较:
在这里插入图片描述

实验结论

  1. ToG在大多数数据集上都实现了新的最佳性能,特别是在多步骤推理任务上的表现优于其他所有方法。(注:IO指直接few-shot prompt提示,SC指Self-Consistency)
    在这里插入图片描述
  2. 特定的知识图谱、搜索深度和宽度、以及prompt设计显著影响ToG的性能
    在这里插入图片描述
    在这里插入图片描述
  3. LLMs可能因为其语言理解能力或训练数据的差异而表现更好或更差

参考资料

  • 论文
  • 代码

http://www.ppmy.cn/embedded/52596.html

相关文章

QT中线程同步的互斥量QMutex与QRecursiveMutex

在 Qt 中,有两种常用的互斥量类:QMutex 和 QRecursiveMutex。这两种互斥量类都用于在多线程环境中控制对共享资源的访问,确保线程安全性。下面是关于这两种互斥量类的详细说明: 1. QMutex: 功能:QMutex 是…

Linux常用命令大全

Linux操作系统因其强大的功能和灵活性在服务器和开发环境中被广泛应用。掌握Linux常用命令是高效使用Linux系统的基础。本文将介绍一系列常用的Linux命令,涵盖文件和目录操作、文件内容查看与处理、系统管理、网络配置与管理、压缩与解压、搜索与查找、权限管理等方…

vue项目cnpm i 报错

报错内容: Install fail! TypeError: Cannot convert undefined or null to object npminstall version: 3.28.1 npminstall args: C:\Program Files\nodejs\node.exe C:\Users\user\AppData\Roaming\nvm\v12.4.0\node_modules\cnpm\node_modules\npminstall\bin\i…

dsp开发与arm开发有什么区别,应用差别

一、DSP开发与ARM开发的区别 DSP(Digital Signal Processor)和ARM(Advanced RISC Machine)是两种不同类型的处理器,它们在设计理念、应用领域、指令集架构、性能特点等方面有所区别。 设计理念和应用领域 DSP&#…

HTML静态网页成品作业(HTML+CSS)——新媒体专业介绍介绍网页(1个页面)

🎉不定期分享源码,关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 🏷️本套采用HTMLCSS,未使用Javacsript代码,共有1个页面。 二、作品演示 三、代…

rk3568 Android 11在系统怎样执行命令获取SN号

目录 1. 使用ADB(Android Debug Bridge)2. 使用Shell脚本或应用程序3. 使用系统API4. 直接在设备上使用Shell5. getprop使用方法常见属性示例注意事项 在瑞芯微RK3568 Android 11系统中执行命令或获取SN号(序列号)通常可以通过几种…

计算机网络课程实训:局域网方案设计与实现(基于ensp)

文章目录 前言基本要求操作分公司1分公司2总部核心交换机配置实现内部服务器的搭建acl_deny部分用户与服务器出口出口防火墙配置 前言 本篇文章是小编实训部分内容,内容可能会有错误,另外ensp对电脑兼容性及其挑剔,在使用之前一定要安装好。…

文生视频开源产品的一些调研(一)

笔者尝试AI视频生成的几个特点: 玄学prompt,每个视频的prompt可能也需要微调很多次,需要找到使用模型的最佳prompt词组合,不恰当的比喻,骑自行车,座位高度等都是人与车彼此熟悉玄学生成,因为需…