KG+LLM(一)KnowGPT: Black-Box Knowledge Injection for Large Language Models

在这里插入图片描述
论文链接:2023.12-https://arxiv.org/pdf/2312.06185.pdf

1.Background & Motivation

目前生成式的语言模型,如ChatGPT等在通用领域获得了巨大的成功,但在专业领域,由于缺乏相关事实性知识,LLM往往会产生不准确的回复(即幻觉)。许多研究人员企图通过外部知识注入提高LLM在专业领域的表现,但许多最先进的llm都不是开源的,这使得仅向模型api注入知识具有挑战性。

研究发现KGs中存储的大量事实知识有可能显著提高LLM反应的准确性,所以解决上述问题的一个可行方法是将知识图(KGs)集成到LLM中。在此基础上本文提出了一个向LLM的进行黑盒知识注入框架KnowGPT。KnowGPT包括两部分:①利用深度强化学习(RL)从知识图(KGs)中提取相关知识;②并使用多臂赌博机(MAB)为每个问题选择最合适的路径抽取策略和提示
在这里插入图片描述
现有的KG+LMs的方法有很多:
KG+LMs部分方法
但许多最先进的LLM只能通过黑盒调用,即只能通过提交文本输入来检索模型响应,而无法访问模型细节。因而无法使用上述的白盒知识注入技术。(尽管白盒方法可以应用于开源LLMs,如BLOOM和LLaMA,但由于更新模型权重,往往会产生显著的计算成本。)因此,本文关注:能否开发一个黑盒知识注入框架,能够有效地将KG集成到仅使用API的LLM中

在解决该问题时需要关注两个挑战:①如何检索KG;②如何编码、利用检索到的信息。

2.问题定义

给定一个问题上下文 Q = { Q s , Q t } Q=\{Q_s,Q_t\} Q={Qs,Qt} Q s = { e 1 , . . . , e m } Q_s=\{e_1,...,e_m\} Qs={e1,...,em}为问题实体集合, Q t = { e 1 , . . . , e n } Q_t=\{e_1,...,e_n\} Qt={e1,...,en}为答案实体集合),一个LLM f f f ,和一个知识图谱 G G G, G G G包含三元组(头实体,关系,尾实体),表示为 ( h , r , t ) (ℎ,r,t) (h,r,t),目标是学习一个提示函数 f p r o m p t ( Q , G ) f_{prompt}(Q,G) fprompt(Q,G),生成一个提示 x x x,将 Q Q Q的上下文和 G G G中的事实知识结合起来,使得LLM的预测能够输出 Q Q Q的正确答案。

3.KnowGPT Framework

KnowGPT Framework
KnowGPT根据问题背景和答案选项,从现实世界的知识图谱中检索出一个问题特定的子图。首先,路径提取模块寻找最具信息量和简洁推理背景来适应上下文。然后,优化提示转换模块,考虑给定问题的知识和格式的最佳组合

3.1 如何检索KG:强化学习(Reinforcement Learning, RL)

利用奖励函数激励RL提取KG子图中有关问题中提到的源实中到潜在答案中的目标实体的路径 P = { P 1 , . . . , P m } P=\{P_1,...,P_m\} P={P1,...,Pm}。且 P i = { ( e 1 , r 1 , t 1 ) , ( t 1 , r 2 , t 2 ) , . . . , ( t ∣ P i ∣ − 1 , r ∣ P i ∣ , t ∣ P i ∣ ) } P_i=\{(e_1,r_1,t_1),(t_1,r_2,t_2),...,(t_{|P_i|-1},r_{|P_i|},t_{|P_i|})\} Pi={(e1,r1,t1),(t1,r2,t2),...,(tPi1,rPi,tPi)}。RL使用策略梯度。其马尔可夫过程定义如下:

  • 状态: 表示知识图谱中当前的位置,表示从实体ℎ到t的空间变化。状态向量 s s s定义为 s t = ( e t , e t a r g e t − e t ) s_t=(e_t,e_target−e_t) st=(et,etargetet)。为了获得从背景知识图谱中提取的实体的初始节点嵌入,将知识图谱中的三元组转换为句子,并将其输入预训练语言模型中以获取节点嵌入。

  • 动作: 包含当前实体的所有邻近实体。通过采取行动,模型将从当前实体移动到选择的邻近实体。

  • 动作转移概率P: 转移模型的形式为 P ( s ’ ∣ s , a ) = 1 P(s’|s,a)=1 P(s’∣s,a)=1,如果通过动作 a a a s s s到达 s ’ s’ s;否则 P ( s ’ ∣ s , a ) = 0 P(s’|s,a)=0 P(s’∣s,a)=0

  • 奖励函数包括: 提取路径的可达性、上下文相关性和简洁性

    • 路径的可达性: 如果在K个行动内达到目标,将获得奖励+1。否则,将获得奖励−1。
      路径可达性
    • 上下文相关性: 路径与上下文越相关,越应该被奖励
      上下文相关性
    • 简洁性: 基于黑盒LLMs对输入长度的限制和调用成本考虑,引导的提示需在最短的路径长度内找到尽可能多有价值的信息。
      简洁性
  • 最终奖励函数:
    奖励

3.2 如何利用检索到的KG: Prompt Construction with Multi-armed Bandit

MAB: 多臂赌博机MAB有许多“臂”,每次选择一个“臂”进行尝试,都会得到一个结果或奖励。一方面,希望“利用”那些之前表现良好的“臂”,可以在短时间内获得最大的奖励。另一方面,也想“探索”那些之前没有尝试过的“臂”,可能发现更好的策略或选择,从而在未来获得更大的奖励。

基于该原理,提示构建就是要想办法选择最有前途的提示。(多种方法组合,有点类似集成学习,但不一样

假设有几种路径提取策略 P 1 , . . . , P m P_1,...,P_m P1,...,Pm和几种候选提示格式 F 1 , . . . , F n F_1,...,F_n F1,...,Fn。每个路径提取策略 P i P_i Pi是一种在给定问题环境下选择子图的方法,每个提示模板 F j F_j Fj代表一种将子图中的三元组转化为LLM预测的提示机制。

提示构建问题是要确定给定问题的最佳 P P P F F F的组合。本文将选择的整体过程定义为一个奖励最大化问题 m a x ∑ r P F max\sum{r_{PF}} maxrPF,其计算如下:
在这里插入图片描述
为了捕捉问题与不同知识和提示格式组合间的上下文感知相关性, 文章使用期望函数 E ( ⋅ ) E(·) E()来确定多臂赌博机的选择机制。它能自适应地衡量不同问题对某个组合的潜在期望。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
J J J表示最小二乘训练LOSS, β ( i ) β^(i) β(i)通过最大置信上界(UCB)计算。通过最大化期望函数 E ( ⋅ ) E(·) E(),LLM学会了平衡开发和探索,以优先选择最有前途的提示来回答特定的问题背景。

4. Implementation

  • 路径抽取策略(两种):
    • P R L P_{RL} PRL:基于强化学习的路径提取策略。
    • P s u b P_{sub} Psub:由于强化学习不够稳健,引入 P s u b P_{sub} Psub作为MAB选择的备选策略。这是一种启发式的子图提取策略,在源实体和目标实体周围提取2跳子图。
  • Prompt(三种):
    • 三元组 F t F_t Ft:例如(Sergey_Brin, founder_of,Google)。
    • 句子描述 F s F_s Fs:将知识转化为口语化句子。
    • 图表描述 F g F_g Fg:将知识视为结构化图表来激活LLM。通过使用黑盒LLM预处理提取的知识,突出中心实体生成描述。
      MAB通过来自语言模型的反馈进行训练,以优先选择在不同实际问题背景下最合适的两种提取方法和三种预定义提示格式的组合。
      在这里插入图片描述

5. Experiments

5.1 实验设置

关注问题:
RQ1: How does KnowGPT perform when compared with the state-of-the-art LLMs and KG_x0002_enhanced QA baselines?
RQ2: Does the proposed MAB-based prompt construction strategy contribute to the performance?
RQ3: Can KnowGPT solve complex reasoning tasks, and is KG helpful in this reasoning process?

数据集: 选用CommonsenseQA(多项选择题问答数据集),OpenBookQA(多项选择题),MedQA-USMLE(医学多项选择题)。

Base: ChatGPT

5.2 对比实验

整体表现:
整体表现
与其他KG+LMs方法对比
在这里插入图片描述

5.3 消融实验

在这里插入图片描述
在这里插入图片描述

5.4 case study-多提示融合的有效性

在这里插入图片描述

可参考:https://mp.weixin.qq.com/s/k7tzvAXlCPQLHy1l8Wtx1Q

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

List常见方法和遍历操作

List集合的特点 有序: 存和取的元素顺序一致有索引:可以通过索引操作元素可重复:存储的元素可以重复 List集合的特有方法 Collection的方法List都继承了List集合因为有索引,所以有了很多操作索引的方法 ublic static void main…

sklearn学习的一个例子用pycharm jupyter

环境 运行在jupyter 进行开发。即一个WEB端的开发工具。能适时显示开发的输出。后缀用的是ipynb.pycharm也可以支持。但也要提示按装jupyter. 或直接用andcoda 这里我们用pycharm进行项目创建 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple jupyterlab pip ins…

Java关键字(1)

Java中的关键字是指被编程语言保留用于特定用途的单词。这些关键字不能用作变量名或标识符。以下是Java中的一些关键字: public:表示公共的,可以被任何类访问。 private:表示私有的,只能被定义该关键字的类访问。 cl…

centos 7.9 升级系统默认的python2.7到python 2.7.18

centos 7.9 升级系统默认的python2.7到python 2.7.18 备份旧版本 mv /usr/bin/python /usr/bin/python_2.7.5 下载新版本 Download Python | Python.org Python Release Python 2.7.18 | Python.org wget https://www.python.org/ftp/python/2.7.18/Python-2.7.18.tgz cd /…

2023 IoTDB Summit:天谋科技 CTO 乔嘉林《IoTDB 企业版 V1.3: 时序数据管理一站式解决方案》...

12 月 3 日,2023 IoTDB 用户大会在北京成功举行,收获强烈反响。本次峰会汇集了超 20 位大咖嘉宾带来工业互联网行业、技术、应用方向的精彩议题,多位学术泰斗、企业代表、开发者,深度分享了工业物联网时序数据库 IoTDB 的技术创新…

Rust开发⼲货集(1)--迭代器与消费器

本内容是对 Rust开发干货集[1] 的实践与扩展. iter() 不转移所有权 先简单解释下什么叫"转移所有权": 在 Rust 中,"转移所有权"(Ownership Transfer)是一种核心概念,它涉及变量和数据的所有权从一个实体转移…

2023.12.28 关于 Redis 数据类型 List 内部编码、应用场景

目录 List 编码方式 早期版本 现今版本 List 实际应用 多表之间的关联关系 消息队列 频道(多列表)消息队列 微博 Timeline 栈 & 队列 List 编码方式 早期版本 早期版本 List 类型的内部编码方式有两种 ziplist(压缩列表&#xf…

vscode: make sure you configure your user.name and user.email in git

一、问题描述 使用VScode编辑代码后,Push到云端报错:Make sure you configure your "user.name" and "user.email" in git 二、解决方案 解决步骤: 1.打开Git Bash: 2.输入命令: git config -…

ElasticSearch学习笔记(二)

通过前面的一阵胡乱操作,显然提升了我的学习兴趣,趁热打铁,接着往下学。还是先看看别人的教程吧。这里我看的是B站上【尚硅谷】的ElasticSearch教程,有兴趣的同学也可以去看看。 一、缘起–索引操作 看B站上的视频教程&#xff0…

命令模式-实例使用

未使用命令模式的UML 使用命令模式后的UML public abstract class Command {public abstract void execute(); }public class Invoker {private Command command;/*** 为功能键注入命令* param command*/public void setCommand(Command command) {this.command command;}/***…

数据库原理与应用快速复习(期末急救)

文章目录 第一章数据库系统概述数据、数据库、数据库管理系统、数据定义、数据组织、存储和管理、数据操纵功能、数据库系统的构成数据管理功能、数据库管理的3个阶段以及特点数据库的特点、共享、独立、DBMS数据控制功能数据库的特点 数据模型两类数据模型、逻辑模型主要包括什…

SVN下载安装(服务器与客户端)

1.下载 服务器下载:Download | VisualSVN Server 客户端下载:自行查找 2. 服务器安装 双击执行 运行 下一步 同意下一步 下一步 选中安装目录 3. 客户端安装 双击执行 下一步 4. 服务器创建仓库 5. 服务器创建用户 6. 客户端获取资源 文件夹右键

基于ssm的便民自行车管理系统的开发与实现+vue论文

摘 要 进入21世纪网络和计算机得到了飞速发展,并和生活进行了紧密的结合。目前,网络的运行速度以达到了千兆,覆盖范围更是深入到生活中的角角落落。这就促使管理系统的发展。管理系统可以实现远程处理事务,远程提交工作和随时追踪…

电路分析基础速成课笔记

基础知识 串并联,短路和断路 电源 例题: 电阻电路的等效变换 电压源串联 u u 1 u 2 uu_1u_2 uu1​u2​ 方向相同直接加,不同取决于大的方向 电流源并联 i i s 1 i s 2 ii_{s_1}i_{s_2} iis1​​is2​​ 电压源和电流源串联 省略电压…

通信原理课设(gec6818) 007:语音识别

目录 1、去科大讯飞官网下载对应的sdk 2、科大讯飞文件夹的意思 3、配置ARM的录音环境 4、编程实现语音识别 我们的需求是将一个语音文件从客户端传到服务器,因此我们最好是选用tcp 现在市面上面常用的语音识别解决方案为:科大讯飞c和百度c 离…

python+django高校教材共享管理系统PyCharm 项目

本中原工学院教材共享平台采用的数据库是mysql,使用nodejs技术开发。在设计过程中,充分保证了系统代码的良好可读性、实用性、易扩展性、通用性、便于后期维护、操作方便以及页面简洁等特点。系统所要实现的功能分析,对于现在网络方便的管理&…

[计算机提升] Windows系统软件:管理类

3.6 系统软件:管理类 3.6.1 运行 通过运行程序,在打开输入框中输入名称,按下回车后可以打开相应的程序、文件夹、文档或Internet资源: 3.6.2 命令提示符:cmd 在Windows系统中,cmd是指"命令提示符…

HTML5+CSS3+JS小实例:过年3D烟花秀

实例:过年3D烟花秀 技术栈:HTML+CSS+JS 效果: 源码: 【HTML】 <!DOCTYPE html> <html lang="zh-CN"> <head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><…

【web安全】验证码识别-burp的captcha-killer-modified插件教程(基于百度接口)(总结一些坑)

前言 菜某分享 captcha-killer-modified插件的安装教程 整体安装教程可以看他的 安装captcha-killer-modified插件&#xff08;windospython环境&#xff09;_aptcha-killer-modified的安装-CSDN博客 但是有一点补充。 这个里面的codereg.py文件有个问题 可能是版本的问…

AI绘画工具Midjourney绘画提示词Prompt分享

一、Midjourney绘画工具 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭…
最新文章