RAG常见七大坑

论文题目:《Seven Failure Points When Engineering a Retrieval Augmented Generation System》
论文地址:https://arxiv.org/pdf/2401.05856.pdf

这篇论文主要探讨了构建检索增强生成系统(Retrieval Augmented Generation, RAG)时可能遇到的七个失败点。论文通过三个案例研究来展示这些失败点,并分享了作者团队的经验和教训。

RAG 简介

Meta AI 的研究人员引入了一种叫做检索增强生成(Retrieval Augmented Generation,RAG)的方法来完成这类知识密集型的任务。RAG 把一个信息检索组件和文本生成模型结合在一起。RAG 可以微调,其内部知识的修改方式很高效,不需要对整个模型进行重新训练。 RAG 会接受输入并检索出一组相关/支撑的文档,并给出文档的来源(例如维基百科)。这些文档作为上下文和输入的原始提示词组合,送给文本生成器得到最终的输出。这样 RAG 更加适应事实会随时间变化的情况。这非常有用,因为 LLM 的参数化知识是静态的。RAG 让语言模型不用重新训练就能够获取最新的信息,基于检索生成产生可靠的输出。

RAG 系统的主要目的是:

  • a) 减少LLM的幻觉回答问题
  • b) 将来源/参考关联到大模型生成的回答
  • c) 消除使用元数据注释文档的需要。

RAG坑点

然而,RAG 系统受到信息检索系统固有的限制以及对LLM能力的依赖,RAG 系统中存在一些可能的“坑点”。

  • 内容缺失——这是生产案例中最大的问题之一。 用户假设特定问题的答案存在于知识库中。 事实并非如此,系统也没有回应“我不知道”。 相反,它提供了一个看似合理的错误答案,但实际是“毫无意义”。

  • 漏掉排名靠前的文档 - 检索器是小型搜索系统,要获得正确的结果并不简单。 简单的嵌入查找很少能达到目的。 有时,检索器返回的前 K 个文档中不存在正确答案,从而导致失败。

  • 不符合上下文 - 有时,RAG系统可能会检索到太多文档,并且还是强制根据上下文分割并输入文档。 这意味着对问题的回答不在上下文中。 有时,这会导致模型产生幻觉,除非系统提示明确指示模型不要返回不在上下文中的结果。

  • 未提取到有用信息 - 当LLM无法从上下文中提取答案时。 当你塞满上下文并且LLM会感到困惑时,这往往会成为一个问题。 不同大模型对背景信息的理解能力层次不齐。

  • 格式错误——虽然论文将这视为一种失败模式,但这种类型的功能并不是大型语言模型(LLM)的开箱即用功能。这种需要特定格式的输出,需要进行大量的系统提示和指令微调,以生成特定格式的信息。例如,使用Abacus AI,可以创建一个代理程序来以特定格式输出代码,并生成带有表格、段落、粗体文本等的Word文档。这种一般可以通过MarkDown输出来渲染!

  • 不合适的回答 -响应中返回答案,但不够具体或过于具体,无法满足用户的需求。 当 RAG 系统设计者对给定问题(例如教师对学生)有期望的结果时,就会发生这种情况。 在这种情况下,应该提供具体的教育内容和答案,而不仅仅是答案。 当用户不确定如何提出问题并且过于笼统时,也会出现不正确的特异性。

总的来说,这意味着 RAG 系统在投入生产之前必须经过彻底的稳健性测试,并且很容易因为发布未经测试的代理或聊天机器人而搬起石头砸自己的脚。

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

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

相关文章

如何正确使用数据库的读写分离

本文已收录至我的个人网站:程序员波特,主要记录Java相关技术系列教程,共享电子书、Java学习路线、视频教程、简历模板和面试题等学习资源,让想要学习的你,不再迷茫。 背景 在应用系统发展的初期,我们并不知…

QT图表-折线图、曲线图

时间记录:2024/1/15 一、使用步骤 1.添加图表模块 .pro项目管理文件中添加charts模块 QChart类:图表类 QChartView类:图表显示类 2.ui文件中添加QChartView组件 (1)选择一个QGrapicsView组件将其拖拽到ui界面上合适位…

C语言从入门到实战——结构体与位段

结构体与位段 前言一、结构体类型的声明1.1 结构体1.1.1 结构的声明1.1.2 结构体变量的创建和初始化 1.2 结构的特殊声明1.3 结构的自引用 二、 结构体内存对齐2.1 对齐规则2.2 为什么存在内存对齐2.3 修改默认对齐数 三、结构体传参四、 结构体实现位段4.1 什么是位段4.2 位段…

vue前端开发自学,插槽练习,同时渲染父子组件的数据信息

vue前端开发自学,插槽练习,同时渲染父子组件的数据信息! 如果想在slot插槽出口里面,同时渲染出来,来自父组件的数据,和子组件自身的数据呢。又有点绕口了。vue官方给的解决办法是。需要借助于,父组件的自定义属性。 …

边缘计算的挑战和机遇(结合RDH-EI)

边缘计算的挑战和机遇 边缘计算面临着数据安全与隐私保护、网络稳定性等挑战,但同时也带来了更强的实时性和本地处理能力,为企业降低了成本和压力,提高了数据处理效率。因此,边缘计算既带来了挑战也带来了机遇,需要我…

【电子通识】各国电源插头标准和电压标准

在使用仪器时,通常会在使用之前去看下规格书。比如安装指南、快速使用指南等等来提取我们需要的信息。 一般大型的仪器供应商会卖往不同的国家,所以都会配置多种电源线。如下所示规格书中对仪器的电源线种类进行了说明。其中有中国、美国、加拿大、日本…

CentOS将磁盘剩余空间分配到已有分区

CentOS将磁盘剩余空间分配到已有分区 引growpartresize2fs 引 手里有台云服务,之前磁盘只有60G,在执行SQL语句时报错No space left on device. 通过df -h查看磁盘占用情况,确实所剩无几了 通过云服务后端控制台升级了下配置,将…

16 命令行模式

命令行模式 将行为的执行与与行为的调用通过命令分离,行为的的调用者不需要知道具体是哪个类执行的,他们之间通过命令连接。 demo的目录结构 命令的执行者(接口) package behavioralpattern.commandpattern.actuator;import ja…

宁夏银行关键系统基于OceanBase的创新实践

宁夏银行成立于 1998 年,是宁夏第一家“宁”字号地方商业银行,西部地区第一家以省级行政区命名的地方商业银行。2016 年,被中国人民银行评为宁夏地区系统性重要银行。目前,全行设分支机构 97 家,其中总行营业部 1 家&a…

vulnhub靶场之DC-9

一.环境搭建 1.靶场描述 DC-9 is another purposely built vulnerable lab with the intent of gaining experience in the world of penetration testing. The ultimate goal of this challenge is to get root and to read the one and only flag. Linux skills and famili…

编码技巧:如何在Golang中高效解析和生成XML

编码技巧:如何在Golang中高效解析和生成XML 引言Golang中的XML基础解析XML文件生成XML文件错误处理和调试高级技巧和最佳实践总结 引言 在当今数据驱动的编程世界中,有效地处理各种数据格式是每个开发人员必备的技能之一。其中,XML&#xff…

【MATLAB】CEEMD+FFT+HHT组合算法

代码原理 CEEMD(集合经验模态分解)FFT(快速傅里叶变换)HHT(希尔伯特-黄变换)组合算法也是一种常见的信号处理和分析方法。这种组合算法结合了CEEMD、FFT和HHT三个步骤,可以处理非线性和非平稳信…

Vue入门七(Vuex的使用|Vue-router|LocalStorage与SessionStorage和cookie的使用)

文章目录 一、Vuex1)理解vuex2)优点3)何时使用?4)使用步骤① 安装vuex② 注册vuex③ 引用vuex④ 创建仓库Store五个模块介绍 5)基本使用 二、Vue-router三、LocalStorage与SessionStorage、cookie的使用 一…

如何用GPT/GPT4完成AI绘图和论文写作?

详情点击链接:如何用GPT/GPT4完成AI绘图和论文写作? 一OpenAI 1.最新大模型GPT-4 Turbo 2.最新发布的高级数据分析,AI画图,图像识别,文档API 3.GPT Store 4.从0到1创建自己的GPT应用 5. 模型Gemini以及大模型Clau…

202406读书笔记|《沉睡的线条世界》——翻山越岭,只为与你分享点滴的快乐

《沉睡的线条世界》登登登Dn绘著,简简单单的小画,简简单单的线条,简简单单的语言,温馨又有一点暖心。 怎样的你都好,做最真实的自己。 部分节选如下: 愿你我永远有热情,永远能为生活的每一个小惊…

运筹说 第67期 | 动态规划模型的建立与求解

通过前一期的学习,我们已经学会了动态规划的基本概念和基本原理。本期小编带大家学习动态规划模型的建立与求解。 动态规划模型的建立 一 概述 建立动态规划的模型,就是分析问题并建立问题的动态规划基本方程。 成功地应用动态规划方法的关键&#x…

flutter使用getx进行数据状态管理,实现页面响应式

无论是什么样的应用,都还是需要最基础的数据来支撑的,而且不同的页面之间可能需要共享数据状态,这就显得数据状态管理非常有必要了。因为我这里使用了get依赖库,所以就可以直接在项目中使用getx来管理状态,不想再使用别…

PXE 高效批量网络装机

前提: 虚拟机恢复到初始化 调整网卡为vm1 关闭防火墙 安全linux systemctl stop firewalld vim /etc/selinux/config 配置IP地址 vim /etc/sysconfig/network-scripts/ifcfg-ens33 重启网卡 systemctl restart network 挂载磁盘 安装yum源 安装服务 yum install vs…

如何购买腾讯云服务器?图文教程超详细

腾讯云服务器购买流程很简单,有两种购买方式,直接在官方活动上购买比较划算,在云服务器CVM或轻量应用服务器页面自定义购买价格比较贵,但是自定义购买云服务器CPU内存带宽配置选择范围广,活动上购买只能选择固定的活动…

算法-二分专题

文章目录 概念应用场景代码模板OJ练习寻找指定元素1题目描述输入描述输出描述样例题解 寻找指定元素2题目描述输入描述输出描述样例题解 寻找指定元素3题目描述输入描述输出描述样例题解 寻找指定元素4题目描述输入描述输出描述样例题解 寻找指定元素5题目描述输入描述输出描述…