解锁黑匣子:Chain-of-Note如何为(RAG)带来透明度

英文原文地址:https://ai.plainenglish.io/unlocking-the-black-box-how-chain-of-note-brings-transparency-to-retrieval-augmented-models-rag-ae1ebb007876

论文地址:https://arxiv.org/pdf/2311.09210.pdf

2023 年 11 月 16 日

介绍

检索增强语言模型(RALM)已成为自然语言处理中强大的新范式。通过将大型预训练语言模型与外部知识检索相结合,RALM 旨在减少事实错误和幻觉,同时注入最新知识。然而,现有的 RALM 面临几个关键挑战:

  • 嘈杂的检索:不相关的检索文档可能会误导模型并导致错误的响应。
  • 未知的稳健性:RALM 很难确定它们是否有足够的知识来回答问题,并且在缺乏信息时应默认为“未知”。
  • 缺乏透明度:尚不清楚 RALM 如何利用检索到的信息来制定响应。

为了解决这些问题,腾讯人工智能实验室的研究人员在论文《Chain-of-Note: Enhancing Robustness in Retrieval-Augmented Language Models》中提出了一种名为Chain-of-Note (CON)的新颖框架。

笔记链概述

笔记链的关键思想是通过对检索到的每个文档进行总结和评估,让模型生成阅读笔记,然后再生成最终的回应。此记录过程可以增强模型的以下能力:

  • 评估检索到文档的相关性
  • 识别可靠信息与误导信息
  • 过滤掉无关或不可信的内容
  • 认识到知识差距并回应“未知”

具体而言,给定一个问题和k个检索到的文档,“笔记链”会进行如下操作:

  • 笔记生成:为每个文档创建1个阅读笔记,然后分析其相关性;
  • 综合:整合笔记中的见解来确定最终回应。

这种方法反映了人类的推理——将问题分解为更小的步骤。笔记为模型的思维过程提供了透明度,并提高了其噪声和未知稳健性。

读书笔记的类型

笔记链生成的笔记可分为三类:

  1. 相关(Relevant):文档可以直接回答问题,最终的回复只来自该文档;
  2. 无关但有用的上下文(Irrelevant but useful context):文档没有回答问题,但提供了有用的背景。该模型将其知识与上下文相结合可以推断出答案;
  3. 无关(Irrelevant):文档是无关的,模型缺乏知识来回答。默认响应为“未知”。

该系统允许模型在直接检索信息、进行推断和承认其局限性之间取得平衡。

笔记示例    

笔记链(CON)框架根据检索到的文档与输入问题的相关性生成三种类型的阅读笔记。以下是每种类型的笔记的示例:

3.1 类型1—直接回答

输入问题:“法国首都是什么?”

检索文件:一篇讨论法国各个城市的文章。

生成的笔记:“正如文章中所提到的,法国的首都是巴黎。”

最后回应:“法国首都是巴黎。”

3.2 类型2—有用上下文

输入问题:“光合作用是如何工作的?”

检索文件:解释植物生物学基础的文本,不直接涉及光合作用。

生成笔记:“虽然该文件没有直接解释光合作用,但它提供了有关植物生物学的有用信息,表明光合作用是植物将光转化为能量的过程。”

最后回应:“光合作用是植物将光转化为能量的过程,包括叶绿素对光的吸收以及二氧化碳和水转化为葡萄糖和氧气。”

3.3 类型3—无关或未知

输入问题:“量子计算的最新进展是什么?”

检索文档:一篇讨论经典计算技术的文章。

生成的笔记:“检索到的文档不包括量子计算,而是专注于经典计算技术。该模型缺乏足够的信息来根据此文档进行回答。”

最终回应:“未知,因为现有文件没有提供量子计算最新进展的相关信息。”

 这些例子说明了CON框架如何处理不同类型的文档:直接使用相关文档中的信息,从上下文有用的文档中推断答案,并承认知识或无关信息中的差距。

训练模型

为了训练一个模型来生成阅读笔记,腾讯团队执行如下步骤:

  1. 使用ChatGPT为不同类型的笔记生成10K的训练数据;
  2. 使用这些数据对LLaMa-2模型进行微调,以增强模型记笔记的能力;
  3. 使用加权损失函数策略,将训练重点放在最终答案的准确性上。

评估笔记链

在几个QA数据集的实验表明:

  • 提高了QA性能: 从上表2可以看出,当使用检索到的文档时,Chain of Note的平均得分比标准RALM高+1.97 EM;
  • 增强了噪声鲁棒性:从上表3可以看出,在给定不相关的检索文档的情况下,与标准RALM相比,Chain of Note将EM得分提高了+7.9;
  • 更好的未知稳健性:从上表4可以看出,在域外问题上,笔记链将拒绝率提高了+10.5。

个案研究

让我们通过一个示例来了解笔记链的作用:

问题:《死侍2》是什么时候上映的?

文档1:讨论2018年6月1日在美国上映的《死侍2》。

文档2:提及《死侍2》于2018年5月10日首播,日期变更后于2018年8月18日上映。

标准RALM:2018年6月1日❌

带笔记链的RALM:

文档1笔记:猜测《死侍2》于2018年6月1日在美国上映。

文档2笔记:明确实际发布日期为2018年5月18日。

回复:根据Doc 2,答案为2018年5月18日✅

这展示了笔记链如何仔细分析文件,并确定最相关、最可信的细节,以产生正确的回应。

关键要点

  • 笔记链增强了RALM对噪声检索和未知场景的鲁棒性;
  • 记笔记为RALM推理过程提供了可解释性;
  • 平衡检索信息、进行推断和确认限制;
  • 分解复杂问题的简单而有效的方法。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

树形结构下拉框组件vue-treeselect的使用(安装、模糊匹配、单选、多选、延迟加载、异步搜索等)

一、基本使用流程 首先npm安装依赖 npm install riophae/vue-treeselect --save然后在需要使用的组件中引入 import Treeselect from riophae/vue-treeselect import riophae/vue-treeselect/dist/vue-treeselect.css声明组件 components: { Treeselect }使用 <treesele…

JDK 动态代理(Spring AOP 的原理)(面试重点)

代理模式 也叫委托模式.定义&#xff1a;为其他对象提供⼀种代理以控制对这个对象的访问.它的作⽤就是通过提供⼀个代理类,让我们 在调⽤⽬标⽅法的时候,不再是直接对⽬标⽅法进⾏调⽤,⽽是通过代理类间接调⽤&#xff0c;在某些情况下,⼀个对象不适合或者不能直接引⽤另⼀个对…

为什么 HTTPS 协议能保障数据传输的安全性?

HTTP 协议 在谈论 HTTPS 协议之前&#xff0c;先来回顾一下 HTTP 协议的概念。 HTTP 协议介绍 HTTP 协议是一种基于文本的传输协议&#xff0c;它位于 OSI 网络模型中的应用层。 HTTP 协议是通过客户端和服务器的请求应答来进行通讯&#xff0c;目前协议由之前的 RFC 2616 拆…

电压检测芯片适用于哪些应用领域?

原文链接&#xff1a; 电压检测芯片适用于哪些应用领域&#xff1f; - 知乎 (zhihu.com) 电压检测基本涉及到电子世界的方方面面。 我上一份工作是做无人机飞控研发&#xff0c;无人机在使用过程中是需要事件监测电压的&#xff0c;还需要针对电压对航行进行预估&#xff0c;…

WebDriverWait太强大

selenium webdriver及wait 1 implicitly包打天下2 Linkedin无法登录返回值很乱&#xff0c;怎么破&#xff1f; 1 implicitly包打天下 有了implicitly之后&#xff0c;基本上不再关注网速之类的影响。 self.driver.implicitly_wait(511)2 Linkedin无法登录返回值很乱&#xf…

.net core 6 集成nacos的服务注册和配置中心

1、安装nuget包 2、加上配置文件 "nacos": {"ServerAddresses": [ "http://127.0.0.1:8848" ],"GroupName": "DEFAULT_GROUP","ClusterName": "DEFAULT","ServiceName": "webapi"…

MySQL锁机制与优化实践

数据库乐观和悲观锁 乐观锁 比如在数据库中设置一个版本字段&#xff0c;每操作一次&#xff0c;都会将这行对应的版本号1&#xff0c;这样下次更新都会拿到最新的版本号更新&#xff0c;如果一个事务拿到了版本号但是更新前其他人已经将版本号升级了&#xff0c;那么当前事务…

Centos7 如何设置开机启动某个程序

以设置自动启动sentinel-dashboard作为案例 要在CentOS 7上设置开机启动一个Java程序&#xff0c;你可以按照以下步骤进行操作&#xff1a; 1. 进入应用程序的目录 cd /usr/localvim sentinel-dashboard.sh 2. 在sentinel-dashboard.sh 文件中 输入启动脚本 nohup java -D…

[MySQL]基础的增删改查

目录 1.前置介绍 2.数据库操作 2.1显示当前数据库 2.2创建数据库 2.3 使用数据库 2.4 删除数据库 3.常用数据类型 3.1整型和浮点型 3.2字符串类型 4.表的操作 4.1查看表结构 4.2创建表 4.3删除表 5.重点 5.1操作数据库 5.2常用数据类型 5.3操作表 1.前置介绍 …

Pycharm详细安装 配置教程

继上次安装完Anaconda之后&#xff0c;现在更新最新版本的pycharm的安装和使用教程~~~ Anaconda&#xff1a;是一个开源的Python发行版本&#xff0c;其中包含了conda、Python等180多个科学包及其依赖项。【Anaconda和Pycharm详细安装 配置教程_anconda安装时clear the packag…

GoZero微服务个人探究之路(七)添加中间件、自定义中间件

说在前面 官方已经自己实现了很多中间件&#xff0c;我们可以方便的直接使用&#xff0c;不用重复造轮子了 开启方式可以看官方文档 中间件 | go-zero Documentation 实现自定义的中间件 在业务逻辑中&#xff0c;我们需要实现自定义功能的中间件 ------这里我们以实现跨源…

RT-Thread 瑞萨 智能家居网络开发:RA6M3 HMI Board 以太网+GUI技术实践

不用放大了&#xff0c; 我在包里找到张不小的…… 以太网HMI线下培训-环境准备 这是社群的文档&#xff1a;【腾讯文档】以太网线下培训&#xff08;HMI-Board&#xff09; https://docs.qq.com/doc/DY0FIWFVuTEpORlNn 先介绍周六的培训是啥&#xff0c;然后再介绍一下要准…