解锁黑匣子: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推理过程提供了可解释性;
  • 平衡检索信息、进行推断和确认限制;
  • 分解复杂问题的简单而有效的方法。

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

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

相关文章

文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《基于混合博弈的配电网与多综合能源微网优化运行》

本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 这个标题涉及到配电网和多综合能源微网的优化运行,而优化的方法基于混合博弈理论。让我们逐步解读这个标题的关键部分: 基于混合…

django邮件通知功能-

需求: 1:下单人员下订单时需要向组长和投流手发送邮件通知 2:为何使用邮件通知功能?因为没钱去开通短信通知功能 设计 1:给用户信息表添加2个字段 第一个字段为:是否开通邮件通知的布尔值 第二个字段为: 用…

一键完成,批量转换HTML为PDF格式的方法,提升办公效率

在当今数字化的时代,HTML和PDF已经成为两种最常用的文件格式。HTML用于网页内容的展示,而PDF则以其高度的可读性和不依赖于平台的特性,成为文档分享和传播的首选格式。然而,在办公环境中,我们经常需要在这两种格式之间…

外包干了5个月,技术退步明显...

先说一下自己的情况,大专生,18年通过校招进入武汉某软件公司,干了接近4年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落! 而我已经在一个企业干了四年的功能测…

VS Code + Python + Selenium 自动化测试基础-01

VS Code Python Selenium 自动化测试基础-01 让我们来讲一个故事为什么要写自动化开发前的准备工作牛刀小试开常用的web DriverAPI-定位元素id定位:find_element_by_id()name 定位:find_element_by_name()class 定位:find_element_by_class…

logstack 日志技术栈-04-opensource 开源工具 OpenObserve+Grafana Loki

日志技术栈 日志管理包含日志数据存储、处理、分析和可视化,通过利用日志管理工具,可以监控性能趋势、解决问题、检测异常并优化整体系统性能。 近年来,开源日志管理解决方案在大家寻求灵活且经济有效的方式来管理现代系统典型的大量日志数…

04 思维导图的方式回顾ospf

思维导图的方式回顾OSPF 1 ospf 领行学习思维导图 1.1 ospf 的工作过程 建立领据表同步数据库计算路由表1.2 ospf 的状态 1.3 ospf的报文 1.4 ospf的L

Unity中URP下的SimpleLit的 Lambert漫反射计算

文章目录 前言一、Lambert漫反射计算11、MixRealtimeAndBakedGI 函数有三个重载2、3号 调用了 2号3、1号调用了 SubtractDirectMainLightFromLightmap函数4、我们重点来看 Lambert漫反射的实现部分5、其余部分 二、Lambert漫反射计算21、LightingLambert 前言 在之前的文章中&…

hot100:06三数之和

题目链接: 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 算法思想: 使用双指针的思想,首先需要先对数组进行排序,让数组满足单调性,这样在相加的时候更加方便更新条件;再遍历…

【代码整理】基于COCO格式的pytorch Dataset类实现

import模块 import numpy as np import torch from functools import partial from PIL import Image from torch.utils.data.dataset import Dataset from torch.utils.data import DataLoader import random import albumentations as A from pycocotools.coco import COCO …

【机器学习300问】14、什么是特征工程?

当我学习到这个知识点的时候十分困惑,因为从名字中我完全无法理解这个什么东西。于是呢我就去问了一下维基百科,下面是他的回答: 特征工程(英语:feature engineering)又称特征提取(英语&#xf…

Jetbrains Writerside 使用教程

系列文章目录 前言 一、入门 Writerside 是基于 IntelliJ 平台的 JetBrains 集成开发环境。使用它可以编写、构建、测试和发布技术文档。 如果你想将 Writerside 作为另一个 JetBrains IDE 的插件,请参阅 Writerside 作为插件。 1.1 安装 Writerside…

cetos7搭建部署k8s 版本1.28

主机分配 内存最少是4G cpu个数最少两个 IP内存CPU主机名192.168.231.12044K1 192.168.231.12144K2192.168.231.12244K3 关闭防火墙 systemctl stop firewalled 关闭swap vim /etc/fstab 设置主机名称 hostnameset 安装docker 三个主机 初始化集群 在mas…

相关系数(皮尔逊相关系数和斯皮尔曼相关系数)

本文借鉴了数学建模清风老师的课件与思路,可以点击查看链接查看清风老师视频讲解:5.1 对数据进行描述性统计以及皮尔逊相关系数的计算方法_哔哩哔哩_bilibili 注:直接先看 ( 三、两个相关系数系数的比较 ) 部分&#x…

VC++中使用OpenCV进行颜色检测

VC中使用OpenCV进行颜色检测 在VC中使用OpenCV进行颜色检测非常简单,首选读取一张彩色图像,并调用函数cvtColor(img, imgHSV, COLOR_BGR2HSV);函数将原图img转换成HSV图像imgHSV,再设置好HSV三个分量的上限和下限值,调用inRange函…

自动化测试:5分钟了解Selenium以及如何提升自动化测试的效果

在快节奏的技术世界里,自动化测试已经成为确保 Web 应用程序质量和性能的重要手段。自动化测试不仅加快了测试过程,还提高了测试的重复性和准确性。Selenium,作为领先的自动化测试工具之一,为测试人员提供了强大的功能来模拟用户在…

C++-类和对象(3)

1. 再谈构造函数 1.1 构造函数体赋值 我们在创建一个对象时,编译器会调用该对象的构造函数对该对象的成员进行初始化。 class Date { public:Date(int year, int month, int day){_year year;_month month;_day day;} private:int _year;int _month;int _day…

Linux系统安装Samba服务器

在实际开发中,我们经常会有跨系统之间文件传递的需求,Samba 便是能够在 Windows 和 Linux 之间传递文件的服务,功能也是非常强大和好用,本篇文章将介绍如何在 Linux 系统上安装 Samba 服务,以 CentOS7 系统为例。 一、…

SpringBoot:详解Bean生命周期和作用域

🏡浩泽学编程:个人主页 🔥 推荐专栏:《深入浅出SpringBoot》《java项目分享》 《RabbitMQ》《Spring》《SpringMVC》 🛸学无止境,不骄不躁,知行合一 文章目录 前言一、生命周期二…

大数据平台的硬件规划、网络调优、架构设计、节点规划

1.大数据平台硬件选型 要对Hadoop大数据平台进行硬件选型,首先需要了解Hadoop的运行架构以及每个角色的功能。在一个典型的Hadoop架构中,通常有5个角色,分别是NameNode、Standby NameNode、ResourceManager、NodeManager、DataNode以及外围机。 其中 NameNode 负责协调集群…