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.xdnf.cn/news/824191.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

AIGC系统ChatGPT系统源码,Midjourney绘画,GPT语音对话+ChatFile文档对话总结+DALL-E3文生图+思维导图一站式解决方案

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

华为hcia之ipv6实验手册

R3: dhcp enable ipv6 dhcpv6 pool test address prefix 2000:23::/64 excluded-address 2000:23::2 dns-server 2000:23::2 interface GigabitEthernet0/0/0 ipv6 enable ipv6 address 2000:12::2/64 ipv6 address auto link-local undo ipv6 nd ra halt //无状态配置 inter…

云原生|kubernetes|kubernetes资源备份和集群迁移神器velero的部署和使用

前言: kubernetes集群需要灾备吗?kubernetes需要迁移吗? 答案肯定是需要的 那么,如何做kubernetes灾备和迁移呢?当然了,有很多的方法,例如,自己编写shell脚本,或者使用…

WPF+Halcon 培训项目实战(12):WPF导出匹配模板

文章目录 前言相关链接项目专栏运行环境匹配图片WPF导出匹配模板如何了解Halcon和C#代码的对应关系逻辑分析:添加截取ROI功能基类矩形圆形 生成导出模板运行结果:可能的报错你的文件路径不存在你选择的区域的内容有效信息过少 前言 为了更好地去学习WPF…

深度学习在语义分割中的进展和应用

语义分割(semantic segmentation)是计算机视觉领域的一项关键任务,涉及将图像中的每个像素分类为预定义的类别。这项任务对从自动驾驶车辆到医学成像的各种应用都具有深远的影响。深度学习的出现显著提高了语义分割模型的能力和准确性。本文深…

STM32 ESP8266 物联网智能温室大棚 源码PCB原理图 设计文档

资料下载: https://download.csdn.net/download/vvoennvv/88680924 一、概述 本系统以STM32F103C8T6单片机为主控芯片,采用相关传感器构建系统硬件电路。其中使用DHT11温湿度传感器对温度和湿度的采集,MQ-7一氧化碳传感器检测CO浓度,GP2Y101…

vr体验馆用什么软件计时计费,如遇到停电软件程序如何恢复时间

vr体验馆用什么软件计时计费,如遇到停电软件程序如何恢复时间 一、软件程序问答 如下图,软件以 佳易王vr体验馆计时计费软件V17.9为例说明 1、软件如何计时间? 点击相应编号的开始计时按钮即可 2、遇到停电再打开软件时间可以恢复吗&…

DrGraph原理示教 - OpenCV 4 功能 - 颜色空间

前言 前段时间,甲方提出明确需求,让把软件国产化。稍微研究了一下,那就转QT开发,顺便把以前的功能代码重写一遍。 至于在Ubuntu下折腾QT、OpenCV安装事宜,网上文章很多,照猫画虎即可。 这个过程&#xff0…

【JVM】一篇通关JMM内存模型

JMM内存模型 1. 原子性1-1. 问题分析1-2. 问题解决 2. 可见性2-1. 问题分析2-2. 问题解决 3. 有序性3-1. 问题分析3-2. 问题解决 4. CAS与原子性5. synchronized 优化 1. 原子性 很多人将【java 内存结构】与【java 内存模型】傻傻分不清,【java 内存模型】是 Java…

互联网加竞赛 基于Django与深度学习的股票预测系统

文章目录 0 前言1 课题背景2 实现效果3 Django框架4 数据整理5 模型准备和训练6 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 **基于Django与深度学习的股票预测系统 ** 该项目较为新颖,适合作为竞赛课题方向&#xff…

springboot 项目新建流程

一、新建工程 二、工程建好后&#xff0c;在pom文件中加入springboot 依赖 <dependencies><!--SpringBoot启动依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>&l…

数模学习day05-插值算法

插值算法有什么作用呢&#xff1f; 答&#xff1a;数模比赛中&#xff0c;常常需要根据已知的函数点进行数据、模型的处理和分析&#xff0c;而有时候现有的数据是极少的&#xff0c;不足以支撑分析的进行&#xff0c;这时就需要使用一些数学的方法&#xff0c;“模拟产生”一些…

微信小程序开发系列-07组件

微信小程序开发系列目录 《微信小程序开发系列-01创建一个最小的小程序项目》《微信小程序开发系列-02注册小程序》《微信小程序开发系列-03全局配置中的“window”和“tabBar”》《微信小程序开发系列-04获取用户图像和昵称》《微信小程序开发系列-05登录小程序》《微信小程序…

DDC和PLC的区别

前言 PLC与DDC控制器的比较&#xff0c;一直以来在相关领域内受到广泛关注。每个人站在不同的角度分析&#xff0c;都会有不同的结论&#xff0c;我们今天聊聊这个话题。 基本定义和功能 可编程控制器PLC与直接数字控制器DDC&#xff0c;两者都由CPU模块、I/O模块、显示模块…

计算机毕业设计 基于HTML5+CSS3的在线英语阅读分级平台的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

unity学习笔记----游戏练习03

一、修复植物种植的问题 1.当手上存在植物时&#xff0c;再次点击卡片上的植物就会在手上添加新的植物&#xff0c;需要修改成只有手上没有植物时才能再次获取到植物。需要修改AddPlant方法。 public bool AddPlant(PlantType plantType) { //防止手上出现多个植…

【计算机毕业设计】python+django数码电子论坛系统设计与实现

本系统主要包括管理员和用户两个角色组成&#xff1b;主要包括&#xff1a;首页、个人中心、用户管理、分类管理、数码板块管理、数码评价管理、数码论坛管理、畅聊板块管理、系统管理等功能的管理系统。 后端&#xff1a;pythondjango 前端&#xff1a;vue.jselementui 框架&a…

Android实验:contentprovider 实验+SQLite 数据库的实现

目录 SQLite实验目的实验内容实验要求项目结构代码实现结果展示 SQLite SQLite 是一个开源的嵌入式关系数据库&#xff0c;实现了自给自足的、无服务器的、配置无需的、事务性的 SQL 数据库引擎。它是一个零配置的数据库&#xff0c;这意味着与其他数据库系统不同&#xff0c;…

基于JWT的用户token验证

1. 基于session的用户验证 2. 基于token的用户身份验证 3. jwt jwt代码实现方式 1. 导包 <dependency><groupId>com.auth0</groupId><artifactId>java-jwt</artifactId><version>3.18.2</version> </dependency> 2. 在登录…

【BERT】深入BERT模型2——模型中的重点内容,两个任务

前言 BERT出自论文&#xff1a;《BERT&#xff1a;Pre-training of Deep Bidirectional Transformers for Language Understanding》 2019年 近年来&#xff0c;在自然语言处理领域&#xff0c;BERT模型受到了极为广泛的关注&#xff0c;很多模型中都用到了BERT-base或者是BE…