【大模型 幻觉】CRAG:改进传统的 RAG,增加纠正机制提升生成文本的准确性

news2025/1/19 14:34:26

CRAG:改进传统的 RAG,增加纠正机制提升生成文本的准确性

    • 提出背景
    • CRAG 框架
      • 轻量级检索评估器
      • 大规模网络搜索
      • 分解再重组算法

 


提出背景

论文:https://arxiv.org/abs/2401.15884

代码:https://github.com/HuskyInSalt/CRAG

 
大型语言模型经常因依赖内部参数知识而产生不准确或幻觉化的内容。

对于大模型的内部错误,可以引入RAG,从外部知识来源(pdf、网页等)寻找支撑证据。

虽然RAG方法通过获取外部文档来丰富生成,从而补充了LLM,但其有效性显著依赖于这些检索文档的相关性。当检索不准确时,模型受到误导。

RAG的局限性:依赖检索文档的相关性和准确性,不准确的检索结果会损害模型性能。

CRAG延续了RAG的基本框架,即通过检索器从大量知识文档中检索相关信息,并将这些信息作为输入的一部分提供给生成器,以增强生成文本的相关性和准确性。

假设我们的任务是生成一个特定历史人物的详细传记。

基于RAG的系统可能直接从预先设定的知识库中检索与查询相关的文档,并基于这些文档生成传记。

如果检索到的文档不够准确或者包含过时信息,生成的传记可能会包含错误的事实,导致整体质量下降。

解法: 纠正检索增强生成(CRAG)。

核心组件:

  • 轻量级检索评估器:评估检索到的文档与输入查询的相关性,发现质量不高,信心度低,这时会触发网络搜索。
  • 大规模网络搜索:作为补充策略,当静态语料库检索失败或返回次优文档时,从网络中检索更相关、更高质量的文档。
  • 分解再重组算法:精炼检索到的文档,提取关键信息,过滤掉不相关内容。

流程步骤:

  1. 查询输入:用户输入查询,例如要求生成关于“艾萨克·牛顿”的传记。
  2. 检索阶段:使用CRAG框架,首先由检索器R检索出与“艾萨克·牛顿”相关的顶K篇文档。
  3. 检索评估:轻量级检索评估器评估这些文档的相关性得分,确定它们与查询的相关度。
  4. 行动触发
    • 如果文档被评估为相关(Correct),则通过知识精炼方法进一步提取关键知识条。
    • 如果文档被评估为不相关(Incorrect),则丢弃这些文档,并通过网络搜索寻找更准确的补充知识源。
    • 如果评估结果是模糊的(Ambiguous),则结合相关和不相关的处理策略,试图从现有文档中提取有价值的信息,同时寻找外部补充。
  5. 生成阶段:根据精炼后的知识或补充的外部知识,生成器G生成详细的传记。

比如有一个查询:“艾萨克·牛顿是如何发现万有引力的?”

  • 检索:系统从预设的知识库或互联网中检索相关文档。
  • 评估:检索评估器分析文档的相关性。
  • 行动触发:根据评估结果,可能触发不同的行动。
  • 知识精炼/网络搜索:如果文档被评估为相关,系统将提取关键信息;如果不相关,系统将通过网络搜索找到更准确的信息。
  • 生成:最终,系统基于精炼或补充的知识生成准确的回答。

CRAG 框架

在这里插入图片描述
通过对检索文档进行评估,CRAG将结果分为三类:正确、不正确和模糊,然后对应地进行知识纠正或搜索。

如果评估为正确,CRAG会通过分解和重组过程精炼知识;如果评估为不正确或模糊,CRAG可能会进行网络搜索以寻找更准确的信息。

轻量级检索评估器

轻量级检索评估器是CRAG中用来评估检索到的文档相关性的组件。它的实现通常依赖于以下步骤和技术:

  1. 模型选择:选择一个预训练的语言模型,如T5-large,因其能够以较小的计算代价提供有效的性能。
  2. 微调:使用标注过的数据集对模型进行微调,以便它能够对给定的查询和文档对进行相关性评分。
  3. 评分:对于每个检索到的文档,模型会生成一个相关性得分,该得分表示文档与查询的匹配程度。
  4. 阈值设定:设定阈值来判断文档是否足够相关,以便后续是否使用该文档进行生成或采取其他策略。

大规模网络搜索

当检索到的文档不相关或质量不高时,CRAG会采用网络搜索来找到更好的信息源。这个过程包括:

  1. 查询重写:将用户的查询重写为更适合网络搜索引擎的关键词。
  2. 搜索执行:使用商业或开源的网络搜索API执行搜索查询,收集搜索结果。
  3. 选择和过滤:从搜索结果中选择相关的文档,并过滤掉不相关的内容。

分解再重组算法

这是CRAG中用于优化检索文档内容的技术,具体包括:

  1. 分解:将检索到的文档分解为更细粒度的知识片段,例如句子或段落。
  2. 评分和筛选:使用检索评估器对每个知识片段进行评分,并筛选掉得分低的不相关片段。
  3. 重组:将得分高的相关片段重新组合,形成一个更加凝练和准确的知识基础,用于生成阶段。

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

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

相关文章

适合tiktok运营的云手机需要满足什么条件?

TikTok作为一款全球热门的社交媒体平台,具有无限的市场潜力。然而,卖家在运营过程中常常会面临到视频0播、账号被降权、限流等问题,甚至可能因为多人同时使用一个IP而导致封号的风险。为了规避这些问题,越来越多的卖家将目光投向了…

k8s学习(RKE+k8s+rancher2.x)成长系列之简配版环境搭建(四)之Helm及cert-manager安装

安装Helm(三台都安装) 下载helm安装包并加入执行目录 tar zxf helm-v3.2.4-linux-amd64.tar.gz cd linux-amd64 cp helm /usr/bin/ helm version添加rancher稳定版仓库(三台都安装) helm repo add rancher-stable http://rancher-mirror.oss-cn-beijing.aliyuncs.com/serve…

8.2 新特性 - 透明的读写分离

文章目录 前言1. 安装部署1.1 下载安装包1.2 MySQL Shell1.3 配置 MySQL 实例1.4 启动 ReplicaSet1.5 启动 8.2 Router 2. 测试路由总结 前言 MySQL 8.0 官方推出过一个高可用方案 ReplicaSet 主要由 Router、MySQL Shell、MySQL Server 三个组件组成。 MySQL Shell 负责管理…

qt-双臂SCARA机器人动画

qt-双臂SCARA机器人动画 一、演示效果二、核心程序三、下载链接 在Qt opengl中完成的双臂SCARA机器人的简单模拟。 一、演示效果 二、核心程序 #include "glwidget.h"#include <GL/glu.h>GLWidget::GLWidget(QWidget *parent) :QGLWidget(parent),pitch(30.…

Java集合框架-1

目录 List集合 常见方法 迭代器&#xff08;Iterator&#xff09; List集合特有方法 List 的特点 创建 List 遍历List Java集合框架是Java编程语言提供的各种数据结构和算法的实现。它提供了不同类型的集合类&#xff0c;如列表(List)、集(Set)、映射(Map)等&#xff0c…

iOS通过p12导出公钥失败

通过p12文件导出证书crt文件一直报invalid password错误。 adminJiaozl Downloads % openssl pkcs12 -in ce.p12 -clcerts -nokeys -out MyCertificate.crt Enter Import Password: Mac verify error: invalid password?解决&#xff1a; 在 https://developer.apple.com/acc…

MongoDB文档插入

文章目录 MongoDB文档插入对比增删改查文档插入 MongoDB写安全机制非确认式写入 MongoDB文档查询参数说明查询操作符比较查询操作符逻辑查询操作符元素查询操作符数组查询操作符 模糊查询区别:$regex操作符中的option选项 MongoDB游标介绍游标函数手动迭代游标示例游标介绍 Mon…

AMC8美国数学思维竞赛2000-2024年真题练一练,你能做对几道?

为帮助备考AMC8美国数学竞赛的孩子们了解比赛的题型&#xff0c;掌握相关的知识&#xff0c;我会陆续分享2000-2024年的比赛真题&#xff0c;每道题都有解析&#xff0c;帮助孩子们不但会做题&#xff0c;还掌握背后的知识&#xff0c;从而达到举一反三的效果&#xff0c;提升比…

QT-LCD模拟显示

QT-LCD模拟显示 一、演示效果二、关键程序三、下载链接 一、演示效果 二、关键程序 #include "lcd_widget.h" #include <QDebug> #include <QPainter>LCDWidget::LCDWidget(QWidget *parent) : QWidget(parent),display(nullptr), display_char_buffer(…

LeetCode JS专栏刷题笔记(二)

一、前言 LeetCode - JavaScript 专栏刷题笔记第二篇。 第一篇刷题笔记详见&#xff1a;LeetCode JS专栏刷题笔记&#xff08;一&#xff09; 二、算法题目 1. 复合函数 LeetCode地址&#xff1a;2629. 复合函数 请你编写一个函数&#xff0c;它接收一个函数数组 [f1, f2, …

Mac清理系统垃圾软件CleanMyMac X2025免费版本下载

嘿&#xff0c;Mac用户们&#xff0c;你是否经常感觉你的Mac就像是在背着一个沉重的包袱在跑步&#xff1f;是的&#xff0c;我在说那些堆积如山的系统垃圾。清理这些垃圾不仅可以让你的Mac跑得更快&#xff0c;还能让它“呼吸”更畅快。今天&#xff0c;让我们一起来探索如何M…

【医学大模型】MEDDM LLM-Executable CGT 结构化医学知识: 将临床指导树结构化,便于LLM理解和应用

MEDDM LLM-Executable CGT 结构化医学知识: 将临床指导树结构化&#xff0c;便于LLM理解和应用 提出背景对比传统医学大模型流程步骤临床指导树流程图识别临床决策支持系统 总结解决方案设计数据收集与处理系统实施临床决策支持 提出背景 论文&#xff1a;https://arxiv.org/p…

代码智能生成插件‘通义灵码‘使用指南

介绍 通义灵码&#xff0c;通义灵码&#xff0c;是阿里云出品的一款基于通义大模型的智能编码辅助工具&#xff0c;提供行级/函数级实时续写、自然语言生成代码、单元测试生成、代码优化、注释生成、代码解释、研发智能问答、异常报错排查等能力&#xff0c;并针对阿里云的云服…

相机图像质量研究(36)常见问题总结:编解码对成像的影响--块效应

系列文章目录 相机图像质量研究(1)Camera成像流程介绍 相机图像质量研究(2)ISP专用平台调优介绍 相机图像质量研究(3)图像质量测试介绍 相机图像质量研究(4)常见问题总结&#xff1a;光学结构对成像的影响--焦距 相机图像质量研究(5)常见问题总结&#xff1a;光学结构对成…

Leo赠书活动-16期 名校毕业生教材

Leo赠书活动-16期 名校毕业生教材 ✅作者简介&#xff1a;大家好&#xff0c;我是Leo&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Leo的博客 &#x1f49e;当前专栏&#xff1a; 赠…

STM32的SDIO

一.SDIO简介 SDIO&#xff0c;全称Secure Digital Input/Output&#xff0c;是一种用于在移动设备和嵌入式系统中实现输入/输出功能的接口标准。它结合了SD卡的存储功能和I/O功能&#xff0c;允许设备通过SD卡槽进行数据输入输出和外围设备连接。 SDIO接口通常被用于连接各种…

基于SSM的在线教学质量评价系统(有报告)。Javaee项目。ssm项目。

演示视频&#xff1a; 基于SSM的在线教学质量评价系统&#xff08;有报告&#xff09;。Javaee项目。ssm项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&#xff0c;通过Spri…

java中容易被忽视的toString()方法

之前一直认为toString就是将数据转换成字符类型&#xff0c;直到最近写出了一个bug才对toString有了新的认识 不同数据类型&#xff0c;toString() 有不同的操作 定义一个student类&#xff0c;包含姓名 String类型、性别 String类型、年龄 int 类型、分数列表 String类型的li…

网络安全工程师必知的WEB知识

作为一名网络安全工程师&#xff0c;尤其是WEB渗透测试工程师&#xff0c;必须掌握一些WEB相关的基础知识&#xff0c;下面重点从WEB服务架构、浏览器请求过程、服务器操作系统、WEB应用服务器、数据库系统、动态网站脚本语言、WEB前端框架等。 1. Web服务架构 Web服务主要分…

sensitive-word v0.13 特性版本发布 支持英文单词全词匹配

拓展阅读 sensitive-word-admin v1.3.0 发布 如何支持分布式部署&#xff1f; sensitive-word-admin 敏感词控台 v1.2.0 版本开源 sensitive-word 基于 DFA 算法实现的高性能敏感词工具介绍 更多技术交流 业务背景 对于英文单词 Disburse 之类的&#xff0c;其中的 sb 字母会被…