多跳问答中的语言模型知识编辑增强

news2024/9/28 16:57:17

人工智能咨询培训老师叶梓 转载标明出处

大模型在整合实时知识更新方面常常遇到困难,这可能导致回答过时或不准确。尤其当处理多跳问题时,挑战进一步增加,因为这类问题需要模型更新和整合与问题相关的多个知识点。图 1为传统基于相似度的搜索失败案例。

为了解决这一问题,来自美国佐治亚大学、纽约大学、莱斯大学和北卡罗来纳州立大学的研究人员提出了一种名为“检索增强型模型编辑(RAE)”的新框架。RAE框架专为多跳问答设计,通过检索编辑后的事实,然后通过上下文学习来完善语言模型。

RAE框架

RAE框架针对大模型在多跳问答任务中的知识更新提出了一种新的解决方案。该框架通过两个关键步骤来实现对大模型的知识编辑:首先是通过检索与问题相关的编辑事实,然后利用这些事实通过上下文学习的方式对模型进行编辑。

图2为RAE框架的整体流程。首先,通过知识插入/编辑步骤,构建了以“Misery”为中心的子图。然后,利用基于互信息的检索策略,检索到与“Misery”相关的编辑事实。接下来,通过冗余知识剪枝步骤,筛选出最相关的事实。最后,在上下文学习编辑阶段,利用编辑模板和筛选出的事实,对模型进行编辑,以生成准确的答案。

检索编辑后的事实

检索步骤的核心是找到与输入问题直接相关的编辑后事实。这是通过一个基于互信息最大化的检索策略来实现的,该策略优于传统的基于文本相似度的检索方法。在传统的相似度检索中,仅依靠问题和事实之间的文本相似度来选择相关事实,这在多跳问答中可能不够准确,因为多跳问答需要理解问题中蕴含的复杂关系链。

利用外部知识图谱

为了增强检索过程,RAE框架引入了外部知识图谱(如图2所示),如WikiData。这一步骤涉及将编辑过的事实整合到外部知识图谱中,创建一个新的、包含编辑和未编辑事实的增强图G*。这个增强图不仅补充了编辑事实库,而且通过连接不同的实体,提供了额外的事实知识,有助于大模型输出正确的答案。

互信息最大化的检索目标

RAE框架定义了一个优化目标,即在给定问题的情况下,最大化检索子图和问题集之间的互信息。互信息量化了问题和检索子图之间的共享信息量,最大化互信息意味着检索到的子图与问题在信息上高度相关。通过最小化条件熵来实现互信息的最大化,这有助于选择最相关的子图以回答输入问题。

概率估计

为了计算互信息,RAE框架利用了大模型的下一词预测能力。通过考虑知识图谱中的事实链,RAE框架可以迭代地选择最相关的事实。这一过程涉及到对每个候选事实的预测概率进行估计,选择那些能够最大化预测概率的事实,从而构建出最能回答问题的事实链。

冗余事实剪枝

检索到的子图可能包含与问题回答无关的冗余信息。为了减少这种冗余,RAE框架采用了基于编辑不确定性的剪枝方法。编辑不确定性通过计算模型输出的香农熵来量化,反映了模型对其输出答案的信心水平。通过构建不同的事实集候选,并计算每个候选集的输出熵,选择使熵最小的事实集作为最终的编辑事实,从而减少了冗余信息的影响。图3展示了不同事实子集输入时模型编辑不确定性的分布。

RAE框架的理论基础是上下文学习,即当提示文本和输入查询之间存在共享的潜在概念时,可以有效地触发大模型的上下文学习能力。RAE框架通过最大化互信息来选择与问题最相关的事实,从而有效地激活了大模型的上下文学习能力。

想要掌握如何将大模型的力量发挥到极致吗?叶老师带您深入了解 Llama Factory —— 一款革命性的大模型微调工具。实战专家1小时讲解让您轻松上手,学习如何使用 Llama Factory 微调模型。

评论留言“参加”或扫描微信备注“参加”,即可参加线上直播分享,叶老师亲自指导,互动沟通,全面掌握Llama Factory。关注享粉丝福利,限时免费录播讲解。

实验

实验旨在评估RAE框架在多跳问答中编辑大模型输出的有效性,并与其他方法进行比较。实验设计回答了以下几个核心问题:

Q1: RAE在编辑大模型输出上的效果如何?

Q2: 本检索策略与其他检索方法相比表现如何?

Q3: 本剪枝技术是否能够从检索到的事实中移除冗余信息?

Q4: RAE是否适用于专有大模型?

实验评估了多种不同规模和系列的大模型,包括GPT-2 (1.5B)、GPT-J (6B)、Falcon (7B)、Vicuna (7B)和Llama2-chat (7B)。这些模型中,GPT-2、GPT-J和Falcon是没有指令调整的预训练模型,而Vicuna是Llama1的变体,Llama2-chat是Llama2的指令调整版本。

与RAE框架比较的编辑方法包括:

  1. 模型权重更新方法:通过语言建模编辑过的知识来微调模型权重。
  2. 辅助模型方法:训练额外的语言模型来存储更新的知识。
  3. RAG基础方法:如Mello和DeepEdit,采用多轮对话编辑模型输出。

还考虑了一种先进的知识检索方法——子图检索器(SR)。

实验在MQUAKE-CF和MQUAKE-T数据集上进行,这些数据集包含不同跳数的问题编辑实例。实验使用多跳编辑准确率作为评估指标。

表2展示了RAE框架在不同数据集和大模型上编辑性能的评估结果。RAE框架在所有情况下均优于其他方法,显示出其在处理数千个编辑时的优越性能。这主要得益于RAE的新颖的基于互信息的检索目标和有效的剪枝策略。

为了回答Q2,实验评估了基于互信息的检索方法在多跳问答任务中的有效性。

实验包括了三种基于嵌入的方法和一种基于概率的方法:

  1. 基于嵌入的方法:使用嵌入检索来获取相关语料。
  2. 基于概率的方法:即子图检索器,它检索最大化条件概率的子图。

实验从MQUAKE-CF数据集中选择了每种2、3和4跳问题的300个案例,并报告了检索精度分数。

结果显示RAE框架在多跳事实提取中表现出色,并且在较小的语言模型如GPT-2上也取得了成功,显示出强大的泛化能力。相比之下,传统的基于嵌入的方法在多跳事实检索挑战中表现不佳。Mello在将多跳问题分解为单跳问题方面表现出一定的有效性,但随着跳数的增加,性能显著下降。

为了回答Q3,实验验证了所提出的剪枝策略对多跳编辑任务的益处。实验结果显示,剪枝技术显著提高了模型编辑的性能。

为了回答Q4,研究者们将RAE框架应用于只能通过API访问的专有大模型,如ChatGPT。实验结果表明,RAE框架在编辑这些专有模型方面非常有效,并且与Mello相比,成本大大降低。

实验还评估了不同编辑批次大小的编辑性能。结果显示,RAE框架的准确性在不同编辑实例中保持稳定,而Mello的准确性随着实例的增加显著下降。

图6展示了M-CF数据集中的两个案例,说明了在知识图谱上的检索过程和检索到的事实的剪枝过程。图中的红线、黑线和虚线分别代表知识图谱中最终的、候选的和丢弃的路径,反映了检索设计中的决策过程。

通过这些实验,研究者们证明了RAE框架在多跳问答中编辑大模型输出的有效性和优越性。

论文链接:https://arxiv.org/pdf/2403.19631

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

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

相关文章

一个神级 Python 日志管理库:Loguru

大家好,在Python开发过程中,日志记录是不可或缺的一部分,它帮助开发者了解应用程序的运行状态和发现潜在错误。尽管Python自带的logging模块功能全面,但其配置复杂且不够直观。 这时,Loguru库以其简单易用和功能强大而…

Java基础扫盲(二)

想看Java基础扫盲(一)的可以观看我的上篇文章Java基础扫盲 目录 String为什么设计为不可变的 String有长度限制吗 为什么JDK9将String的char[]改为byte[] 泛型中K,T,V,E,Object,?等都代表什么含义 怎么修改一个类中使用了private修饰的String类型…

电子连接器信号完整性仿真实训教程 一

电子连接器信号完整性仿真学习除需要熟悉软件的基本操作外,还需要基本的实际操作练习才能完全掌握,学以致用。因此推出几期实训教程,教程中将不再详细讲怎么一步一步操作软件,重点讲一些步骤,及一些技巧。也会将连接器…

Spring Boot实战:构建在线商城系统

1 绪论 1.1 研究背景 当前社会各行业领域竞争压力非常大,随着当前时代的信息化,科学化发展,让社会各行业领域都争相使用新的信息技术,对行业内的各种相关数据进行科学化,规范化管理。这样的大环境让那些止步不前&#…

QQ机器人搭建

使用QQ官方机器人Python SDK和三方框架搭建QQ群聊机器人 文章目录 使用QQ官方机器人Python SDK和三方框架搭建QQ群聊机器人前言编写机器人代码机器人监听群聊进行文字回复机器人监听群聊进行图片回复机器人监听群聊进行文件发送机器人监听群聊进行视频发送机器人监听群聊进行语…

U-Net——当卷积遇见了扩散,图像生成便有了光

U-Net原文 LDM介绍 1. 引言 U-net 模型最初由 Olaf Ronneberger 等人在 2015 年提出,主要用于生物医学图像分割。其创新的网络结构,特别是跳跃连接的设计,使其在各种图像处理任务中表现优异。随着深度学习的快速发展,U-net 逐渐…

Jupyterlab 创建虚拟环境 CondaHTTPError: HTTP 000 CONNECTION FAILED

在创建虚拟环境的时候总是遇到&#xff1a; CondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://conda.anaconda.org/conda-forge/linux-64/current_repodata.json> Elapsed: -An HTTP error occurred when trying to retrieve this URL. HTTP errors are of…

这15道C++多态宝藏题及题解,值得瞧一瞧的喔!

这一章主要是对C多态——点我可以了解章节的具体应用&#xff0c;接下来一道一道的来分析&#xff1a;&#x1f447;&#x1f440; 1. 关于虚函数说法【正确】的是&#xff08; B&#xff09; A.被virtual修饰的函数称为虚函数 B.虚函数的作用是用来实现多态 C.虚函数在类中声明…

< 基础物理 >

SI国际单位制 常见的公制单位 为什么需要单位&#xff0c;是统一衡量的标准 通过国际单位&#xff0c;以及单位的拓展&#xff0c;以及单位的组合&#xff0c;形成一系列新的测量单位 面积 m^2 速率 m/s 米每二次方秒&#xff0c;m / s, delta表示增量, 每秒移动多少米 加…

手写体识别毕设——人工智能和深度学习技术的快速发展

引言 研究背景 随着人工智能和深度学习技术的快速发展,手写体识别作为其中的一项重要应用,受到了广泛关注。手写体识别技术可以应用于教育、金融、医疗等多个领域,对于提高识别效率和准确性具有重要意义。

C++深入学习string类成员函数(3):访问与修饰

引言 在 C 中&#xff0c;std::string 提供了丰富的成员函数来访问和修改字符串中的字符。通过这些函数&#xff0c;程序员可以灵活地处理字符串中的各个元素&#xff0c;无论是读取特定位置的字符&#xff0c;还是修改字符串的内容。此外&#xff0c;std::string 类还确保了访…

git使用“保姆级”教程3——添加暂存区及提交本地库

1、存入暂存区——命令行git add 要将代码放入暂存区&#xff0c;要使用git add指令注意&#xff1a;只是把在工作区的文件往暂存区复制了一份&#xff0c;并不是工作区的文件就消失了 将单文件放在暂存区 // 把文件夹下的1.txt文本放在暂存区 > 1.txt可以替换成任意文件名…

搭建高效知识库:教培机构数字教学的关键一步

在数字化时代&#xff0c;教育培训行业正经历着前所未有的变革。随着在线教育的兴起和个性化学习需求的增长&#xff0c;构建一个高效、易用的知识库已成为教培机构提升教学质量、优化学习体验、增强竞争力的关键一步。本文将深入探讨构建高效知识库的重要性&#xff0c;以及如…

简站wordpress主题产品多图ACF插件设置方法

此教程仅适用于演示站有产品多图的主题&#xff0c;演示站没有产品多图的主题&#xff0c;就别往下看了&#xff0c;省得浪费时间。 1、给产品添加轮播图 简站wordpress主题有多个产品图的主题&#xff0c;添加产品轮播图的具体方法如下&#xff1a; 1.2、选择产品分类 添加…

【管理】销售管理到底应该怎么管?

销售是个数字游戏&#xff0c;销售管理的最终目的就是完成销售业绩。有人说销售管理是门艺术&#xff0c;有人说销售管理是科学。销售是一门艺术&#xff0c;但是可以通过科学的方式将这些艺术固化很多人对销售管理的认识存在很多不同&#xff0c;我们尝试用最为平时的语言总结…

黑马程序员pink前端查漏补缺笔记,耗时6天,针对必要案例进行练习

HTML 1&#xff09;插件 自动闭合标签&#xff0c;修改开标签时闭标签跟着变&#xff08;微信开发者工具没有这个功能&#xff09; 主题 保存格式化 浏览器打开 实时刷新&#xff0c;不用按浏览器的刷新按钮 win←/→ 快速分屏 2&#xff09;初始结构标签 文档类型声明标签…

在已安装的openresty上添加安装upstream模块报错的解决以及使用Consul服务发现时定时变更nginx的upstream的shell脚本

一、在已经安装好的openresty环境上添加安装upstream模块报错&#xff1a; 在已经安装好的openresty环境上添加安装upstream模块报错&#xff1a;http upstream check module can not find any check server, make sure you ve added the check 的问题解决。 服务器上已经安装好…

Unity3D入门(四) : Android和Unity3D交互 - Unity调用Android

1. 前言 上篇文章&#xff0c;我们讲了如何通过Android调用Unity3D。这篇文章&#xff0c;我们来讲一下Unity3D怎么调用Android。 1.1 unity和Android的三种通信方式 Unity官方提供的接口 : 有一个弊端&#xff0c;它有一个传输内容量的一个限制&#xff0c;传输内容过大或过…

详解JavaScript中的数组

第7章 数组 JavaScript数组索引基于32位数值&#xff0c;以0开头&#xff0c;最大索引2^32-2&#xff0c;最大容纳4294967295&#xff0c;大约42亿个。 JavaScript数组是动态的&#xff0c;根据需要增长或缩减&#xff0c;可能是稀疏的&#xff0c;有length属性。 用数字索引…

Linux下的驱动开发一

设备驱动 设备驱动程序&#xff08;Device Driver&#xff09;是操作系统中的一种软件组件&#xff0c;负责管理和控制计算机硬件设备的工作。驱动程序通过提供操作系统和硬件设备之间的接口&#xff0c;使得操作系统和应用程序能够与硬件设备进行交互&#xff0c;而无需了解硬…