【LLM之RAG】Self-RAG论文阅读笔记

研究背景

尽管大型语言模型(LLM)展示出了显著的能力,但它们在生成回答时经常包含事实错误,因为它们仅依赖于封装在模型中的参数知识。增强型检索生成(Retrieval-Augmented Generation, RAG)是一种方法,通过检索相关知识来减少此类问题。然而,无论是否需要检索,或检索的段落是否相关,不加选择地检索和整合固定数量的检索段落会降低语言模型的多功能性,或可能导致生成无用的回答。​

研究目标

介绍了自反式增强型检索生成(Self-Reflective Retrieval-Augmented Generation, SELF-RAG)框架,旨在通过检索和自我反思提高语言模型的质量和事实性,训练一个可以根据需求适应性检索段落的模型,并通过生成特殊的反思标记来反思检索到的段落及其自身的生成内容。

相关工作

传统的RAG方法可能会妨碍LLM的多功能性或引入不必要或偏题的段落,导致生成质量低下。此外,输出并不保证与检索到的相关段落一致,因为这些模型并未明确训练以利用并遵循提供的段落中的事实。

方法论

数据处理

四种反思tokens的类型:

Retrieve:这是一个决策过程,它决定了是否从某个资源 R 中检索信息。

IsREL:这是一个相关性检查,目的是确定给定的数据 d 是否包含解决问题 x 所需的相关信息。

IsSUP:这是一个验证过程,用于检查提供的响应 y 中的声明是否得到了数据 d 的支持。

IsUSE:这是一个评估过程,旨在评估给定的响应 y 对于问题 x 有多么有用。输出是一个从1到5的评分,5分代表最有用。

数据样例如下:

这个框架主要需要训练2个模型,一个评判家模型(critic model),一个生成模型(generator model)。

解决方案

SELF-RAG首先会判断通过检索段落来增强生成会有帮助。如果是,它输出一个检索标记,按需调用检索模型(步骤1)。然后,SELF-RAG同时处理多个检索到的段落,评估它们的相关性,然后生成相应的任务输出(步骤2)。接着,它依据事实性和总体质量生成批评标记以批评其自身的输出并选择最佳输出(步骤3)。

实验

实验设计

实验设计包括使用7B和13B参数的SELF-RAG模型,在多样化的任务集上进行测试,以展示其在开放领域问答、推理和事实验证任务上的表现。像事实验证和多项选择推理等闭集任务,使用准确性作为评估指标。对于开放域问答这样简短的生成任务,作者使用groundtruth答案是否包含在模型生成中来进行评估,而不是严格要求精确匹配。

对于传记生成和长格式QA等长文本生成任务,作者使用FactScore(https://github.com/shmsw25/FActScore)来评估传记------基本上是对生成的各种信息及其事实正确性的衡量。对于长格式QA,使用了引用精度和召回率。

实验结论

ELF-RAG在所有测试任务中显著优于现有的最先进的LLM和增强型检索模型。特别是在提高长文本生成的事实性和引用准确性 方面,与其他模型相比,显示出显著的优势。

参考资料

相关推荐
Java后端的Ai之路4 小时前
RAG 还是 Agent 自主检索?Claude Code 删掉向量库之后,我把选型讲透了
开发语言·人工智能·prompt·agent·rag
泯泷6 小时前
一个小改动,让 Claude 在 SWE-bench 上刷新纪录:工具描述有多重要
llm·agent·claude
泯泷10 小时前
模型越聪明越健忘?“上下文腐烂”背后的 3 个解法
人工智能·llm·agent
吴凡wudianmei11 小时前
RAG 别只会向量检索:玄镜为什么加了「特征加权」
llm·agent
一壶浊酒伴余生15 小时前
新概念英语第一册 · 句法笔记
笔记·英语学习·英语语法·新概念英语
火山引擎开发者社区15 小时前
接大模型别再自己配 Key、搭代理了,火山引擎 IGA Pages 一步搞定
llm
Flynn Liang16 小时前
AiServices 源码级拆解:一个接口如何变成 RAG Agent
java·langchain·源码分析·rag·langchain4j·aiservices
Flynn Liang16 小时前
LangChain4j 1.23 架构全景:Java 大模型应用的 6 层抽象
java·langchain·大模型·rag·ai agent·langchain4j
Rocky Ding*17 小时前
REPA-E技术深度解析:解冻 VAE 之后,扩散模型为什么需要选择梯度
论文阅读·人工智能·深度学习·机器学习·aigc·ai-native·repa-e
Flynn Liang18 小时前
LangChain4j 生产级工程骨架:12 个模块 + Docker 一键启动
java·spring boot·langchain·rag·langchain4j