RAG检索后如何应用更有效?

欢迎关注v:数据分析能量站

1 引言

一、核心背景:RAG的价值与关键痛点

1. RAG的核心作用

检索增强生成(RAG)是提升大型语言模型(LLMs)在知识密集型任务(如需要大量事实支撑的问答、文档生成)中性能的重要技术,它通过为LLMs补充外部检索到的知识,解决了模型参数内知识有限或过时的问题,已成为该领域的主流方法之一。

2. RAG的致命痛点:噪声段落的干扰

尽管RAG有效,但检索到的文档质量无法保证——存在“低质量噪声段落”,这类段落可能误导LLMs,导致模型生成错误答案。因此,增强LLMs对噪声段落的鲁棒性(即抵抗错误信息的能力),是提升RAG系统可靠性的关键问题,也是本文研究的出发点。

二、研究灵感:推理增强型LLMs的特性

近年来出现的“推理增强型LLMs”(如Qwen3、OpenAI o1等)具备两大核心能力,为解决RAG的噪声问题提供了思路:

  • 分步推理与自我反思:这类模型不会直接输出答案,而是先生成中间推理步骤,并且能在输出最终答案前,通过“自我反思”检测并修正推理过程中的错误;

  • 启发核心假设:既然模型能修正自身推理错误,那么若将“易误导的噪声段落”融入模型的推理过程(而非仅作为输入前缀),模型或许能像审视自身推理一样,识别出段落中的噪声,从而保持鲁棒性。基于这一假设,论文提出了核心方法“段落注入(Passage Injection)”。

三、核心方法:段落注入(Passage Injection)的定义与对比

1. 方法核心逻辑

“段落注入”是一种将“检索到的外部段落”明确融入LLMs推理过程的方法,而非传统RAG(基础RAG)那样将段落直接拼接在输入提示词里。其目的是让模型把外部段落当作“自身推理的一部分”,通过自我反思识别噪声,最终同时实现“抗噪声鲁棒性提升”和“RAG整体性能优化”。

2. 与传统方法(基础RAG)的关键区别

对比维度

基础RAG(Vanilla RAG)

段落注入(Passage Injection)

段落放置位置

输入阶段(直接拼在问题后面,作为提示词前缀)

推理阶段(融入模型生成的中间推理过程)

模型对段落的态度

被动接收,易忽略错误

主动纳入推理,通过反思检测错误

核心目标

补充知识

补充知识+识别噪声

四、实验设计:如何验证段落注入的有效性?

为全面验证“段落注入”的效果,论文设计了三类实验场景,覆盖“通用性能”“抗噪声能力”“对有用段落的利用”三大核心维度,具体设计逻辑如下:

1. 场景1:通用RAG场景——验证基础有效性

  • 实验目的:确认“段落注入”在常规RAG任务中是否比传统方法更优;

  • 关键设置

    • 检索器:用行业常用的BM25检索器,获取Top-1/3/5的相关段落;

    • 数据集:覆盖“简单”到“复杂”的问答任务——单跳任务(PopQA,问题可通过单一段落回答)、多跳任务(2WikiMultiHopQA、HotpotQA等,需整合多个段落推理);

    • 模型:两类推理增强型LLM——自主探索型(Qwen3系列8B/14B/32B,通过强化学习获得推理能力)、蒸馏模仿型(DeepSeek-R1-Distill-Qwen-32B,通过模仿教师模型获得推理能力);

  • 核心发现

    • 几乎所有情况下,“段落注入”的性能(用F1分数衡量答案准确性与完整性)都最优;

    • 对多跳任务的提升更显著(多跳需更复杂推理,段落注入能更好辅助模型梳理逻辑);

    • 蒸馏型模型的提升幅度更小(因推理能力源于“模仿”,而非自主反思,对推理过程的修改不敏感)。

2. 场景2:噪声场景——验证抗噪声鲁棒性

  • 实验目的:确认“段落注入”的性能提升是否源于“抗噪声能力增强”;

  • 两类噪声设计(覆盖“无关”和“误导”两种典型噪声):

    • 随机噪声:给模型匹配与问题无关的随机段落(模拟“检索偏差导致的无关信息”);

    • 反事实噪声:用ConFiQA数据集,给模型匹配“语义流畅、主题相关但事实错误”的段落(如把“北爱尔兰属于英国”改成“属于美国”,模拟“更隐蔽的错误信息”);

  • 核心发现:两种噪声场景下,“段落注入”的问答性能均显著优于基础RAG,尤其在反事实噪声场景下优势更明显——证明其能有效帮助模型识别并抵抗“看似合理的错误信息”。

3. 场景3:黄金段落场景——验证对有用知识的利用能力

  • 实验目的:避免“抗噪声”与“用知识”失衡(比如模型为了抗噪声,反而忽略了有用信息),验证“段落注入”是否能同时利用好有用段落;

  • 实验设置:仅给模型提供“黄金段落”(即包含正确答案的、100%有用的段落);

  • 核心发现

    • 小参数模型(如Qwen3-8B):“段落注入”比基础RAG更能利用黄金段落(小模型自主提取信息能力弱,需通过推理过程融入段落来强化);

    • 大参数模型(如Qwen3-32B):“段落注入”与基础RAG性能接近(大模型本身已能高效从输入中提取有用信息,无需额外通过推理过程强化);

  • 结论:“段落注入”在抗噪声的同时,不会牺牲对有用段落的利用,实现了“鲁棒性”与“有效性”的平衡。

(a)方法流程对比(Method Description)

问题与噪声段落

顶部设定场景:用户问 “Jamie Dornan 是哪个国家的公民”,检索到含误导信息的段落(称他来自 “Northern Ireland, United States of America”,实际北爱尔兰是英国一部分 ),模拟真实 RAG 中 “噪声段落干扰” 的痛点。

Vanilla RAG(传统方法)

  • 流程:指令要求模型结合段落和自身知识回答,段落直接作为输入。

  • 结果:模型被误导,认为他是美国公民(错误答案),体现传统方法对 “噪声段落” 抵抗力弱,易直接采信错误信息。

Passage Injection(段落注入方法)

  • 流程:指令调整为 把段落放进推理阶段(<think> 标签内),强调 “用段落 + 自身知识推理”,让模型主动思考段落有效性。

  • 结果:模型识别出 “美国” 可能是错误,结合知识(北爱尔兰属英国),输出正确答案(英国),体现方法通过 “推理阶段整合段落”,提升抗误导能力。

(b)性能对比(RAG Performance)

右侧柱状图用 平均 F1 分数(衡量答案质量,越高越好),对比两种方法在 Qwen3-14B、Qwen3-32B 模型上的表现(Top-1/3/5 表示检索 top-k 段落):

  • 结论:无论模型规模、检索段落数量,Passage Injection 的 F1 分数均高于 Vanilla RAG,证明段落注入方法能持续提升 RAG 性能,尤其在抗噪声场景下优势显著。

2 相关工作

一、检索增强生成(RAG)领域的现有研究与本文创新

1. 先明确:RAG的基础逻辑

检索增强生成(RAG)的核心是给大型语言模型(LLMs)“配一个外部知识库”——模型遇到问题时,先从外部语料库中检索相关段落,再结合这些段落生成答案,解决了LLMs“参数里知识有限/过时”的问题,这是领域内的共识方法[]。

2. 现有研究:如何把“检索到的段落”融入模型?

过去的研究主要从三个层面尝试优化“段落与模型的结合方式”,本质都是“在‘生成答案’前让模型接触到段落”,具体如下:

现有方法类型

核心逻辑(通俗理解)

例子(论文提及)

提示层增强

把段落直接整理成“提示词格式”喂给模型(比如按相关性排序段落,加一句“请结合这些段落回答”)

[23,24]的研究

嵌入层融合

把段落的语义“转化为数字向量”,和模型输入的向量混合,让模型在“理解语义”阶段就接触到段落

[4,8]的研究

参数层适配

专门用检索到的段落微调模型参数,让模型“更习惯用外部段落”(类似给模型做“专项训练”)

[21]的研究

3. 本文创新:跳出“生成前”,直击“推理中”

现有方法的共同点是——都把段落放在“模型生成答案之前”的环节(要么是输入提示,要么是语义理解,要么是参数训练)。而本文提出了全新方向:不只是“让模型看到段落”,而是“让段落走进模型的推理过程”,即把检索到的段落直接融入模型思考“如何一步步推导答案”的环节,让外部知识和模型的逻辑推理更紧密地绑定[]。

二、推理增强型LLM领域的现有研究与本文创新

1. 先明确:推理增强型LLM是什么?

这类模型(比如OpenAI o1、Qwen3、DeepSeek-R1)和普通LLM的区别是——不直接给答案,会先“说思路”:生成答案前,会一步步写出中间推理步骤,还能自己检查思路里的错误,特别擅长处理“需要多步思考”的任务(比如复杂问答、数学题)。

2. 现有研究:如何“干预模型的推理过程”?

近期有研究发现,模型推理时“注意力很内向”——主要盯着自己生成的思路(内部token),不太关注输入的外部信息(比如检索到的段落)。为了改善这一点,现有研究尝试“给推理过程加引导”,比如:

  • Wu等人[25]的方法:在模型的推理步骤里插入“指令”(比如“请再检查下是否用到了输入的段落”),强迫模型关注外部信息,提升遵循指令的能力[]。

3. 本文创新:干预方式从“加指令”升级为“加段落”

现有干预方法是“用文字指令引导模型关注外部”,而本文提出直接把“检索到的段落”放进推理过程——不是让指令提醒模型“看段落”,而是让段落本身成为模型推理的一部分(比如模型思考时会说“根据段落里的XX信息,下一步应该推导XX”),从根源上解决“模型推理时忽略外部段落”的问题,进而增强识别噪声的能力。

四、关键总结:本文如何在现有研究中“找位置、做创新”?

领域

现有研究的局限

本文的突破方向

RAG(段落融入)

仅在“生成答案前”让模型接触段落,未结合推理

把段落注入“推理过程中”,绑定知识与逻辑

推理增强型LLM(干预)

仅用“指令”引导模型关注外部,未融入实际段落

直接把“检索段落”放进推理,替代纯指令引导

简单来说,本文的创新是“跨领域的结合优化”——既解决了RAG领域“段落与推理脱节”的问题,又解决了推理增强LLM领域“干预方式不落地”的问题,最终实现“1+1>2”的效果(抗噪声鲁棒性提升)。

3 方法

一、增强推理型LLMs的内部知识问答逻辑

这部分聚焦模型仅依赖内部知识时的问答模式,明确了“工作流程”与“推理能力赋予方式”两大核心:

  • 三阶段工作流程(直接问答Direct QA)针对问题q,模型需经历输入、推理、响应三个阶段:输入阶段接收并编码问题;推理阶段在</think></think>标签内生成推理与自我反思过程;响应阶段在</think>标签后输出最终答案a。这种模式虽能充分调用内部知识,但易出现“过度思考”问题,导致推理路径过长、计算成本增加,且生成内容出现“幻觉”的风险更高。

  • 两种主流推理能力赋予方式

    • 强化学习驱动:让模型自主探索推理路径,典型代表为Qwen3系列模型;

    • 蒸馏技术驱动:通过知识蒸馏转移推理能力,例如DeepSeek-R1-Distill-Qwen模型。

二、结合外部知识的RAG基础框架

当增强推理型LLMs存在知识盲区时,需通过“检索-阅读” pipeline补充外部知识:先由检索器从外部语料库中获取相关段落集合D(含1个或多个段落),再将D输入模型辅助问答,后续三种RAG方法均基于此基础框架展开。

三、三种RAG方法的设计与差异

对比了基础RAG方法的缺陷,并提出两种优化方案,具体差异如下:

方法名称

核心逻辑

优势/缺陷

典型场景表现

基础检索增强生成(Vanilla RAG)

将段落D与问题q直接拼接,输入“输入阶段”

缺陷:模型对段落关注度不足,难识别错误信息

面对“北爱尔兰属于美国”的误导性段落时,无法察觉错误,生成错误答案

段落注入(Passage Injection,核心提出方法)

将段落D注入“推理阶段”,让段落成为模型推理的一部分

优势:提升错误检测与修正能力,增强鲁棒性

面对上述误导性段落时,能识别错误并修正,最终输出“北爱尔兰属于英国”的正确答案

指令注入(Instruction Injection,消融实验设置)

仅将“如何使用段落”的指令注入“推理阶段”,段落仍在“输入阶段”

优势:可验证“段落本身”vs“指令”对模型的影响;缺陷:效果弱于段落注入

作为对照方法,用于证明“将段落融入推理过程”的必要性

4 实验设置

通过“通用场景+受控场景”的双层设置,全面覆盖不同变量(段落数量、问题难度、噪声类型等),确保实验结果的可靠性与说服力。

一、通用RAG设置:验证“段落注入”在常规场景的基础有效性

1. 核心目标

模拟真实RAG场景中“检索段落辅助问答”的常规流程,测试“段落注入”相比基线方法(如Vanilla RAG),在不同模型规模、不同段落数量、不同问题难度下的性能提升,回答“该方法是否能在常规场景中起效”的核心问题。

2. 关键设置细节与设计逻辑

实验要素

具体内容

设计逻辑(为何这样设置)

检索方式

用BM25检索器(经典且广泛使用的检索工具),从维基百科语料库取top-k段落,k=1、3、5

控制“检索工具”为已知变量(避免因检索器差异干扰结果),通过k值变化测试“段落数量对方法的影响”

数据集

4个事实性QA数据集:3个多跳(2WikiMultiHopQA、HotpotQA、ComplexWebQuestions)+1个单跳(PopQA)

多跳问题需复杂推理、单跳问题推理简单,通过难度差异,测试“方法是否对复杂推理场景更有效”

模型

1. Qwen3系列(8B/14B/32B,通过强化学习获得推理能力);2. DeepSeek-R1-Distill-Qwen-32B(通过蒸馏获得推理能力)

覆盖“推理能力获取方式”(强化学习vs蒸馏)和“模型规模”两个变量,测试“方法是否适配不同类型的推理增强LLM”

模型参数

所有模型统一设置:temperature=0.6、top-p=0.95

消除“生成参数差异”对结果的干扰,确保性能差异仅来自“方法不同”

基线方法

Direct QA(无外部段落,纯内部知识)、Vanilla RAG(段落放输入阶段)、Instruction Injection(仅指令放推理阶段)

三个基线分别对应“无外部知识”“常规RAG”“仅指令优化”,通过对比凸显“段落注入(段落+推理阶段结合)”的独特价值

评估指标

F1分数(精确率+召回率的调和平均)

事实性QA需兼顾“答案正确”(精确率)和“信息完整”(召回率),F1能全面衡量答案质量

二、受控设置:拆解“段落注入”的性能来源,验证鲁棒性与有用性

通用设置仅能证明“方法有效”,但无法解释“有效原因”——是因为能抵抗噪声段落?还是能更好利用有用段落?受控设置通过“隔离变量”,分别测试这两个维度,回答“方法的核心优势到底是什么”。

1. 噪声设置:验证“段落注入”对噪声段落的鲁棒性

(1)核心目标

模拟真实场景中“检索到无关/误导性段落”的问题,测试“段落注入”是否比基线方法更能抵抗噪声,避免被错误信息误导——这是RAG系统可靠性的关键指标。

(2)两种噪声场景设计(从“无关”到“误导”,难度递增)

噪声类型

具体设置

测试重点

随机噪声

每个问题配3个随机抽取的无关段落,用4个数据集测试

验证“面对完全无关的噪声,方法是否能忽略无用信息,不被干扰”

反事实噪声

用ConFiQA数据集,段落“流畅且主题相关,但事实错误”(如把正确实体换成同类型干扰项)

验证“面对更隐蔽的误导性噪声(看似相关实则错误),方法是否能识别并修正错误”

设计逻辑:

从“简单噪声”(随机无关)到“复杂噪声”(反事实误导),逐步提升挑战难度,更全面地验证方法的鲁棒性——若能在反事实噪声下仍表现优异,说明其对“高迷惑性错误”的识别能力更强。

2. 正确段落设置(Gold Settings):验证“段落注入”对有用段落的利用能力

(1)核心目标

排除噪声干扰,仅提供“包含正确答案的有用段落”,测试“段落注入”是否会因“关注推理阶段”而忽略有用信息,确保其“抗噪声”的同时不牺牲“利用有用信息”的能力——避免方法“为了防错而错过正确信息”。

(2)具体设置:

  • 数据集:仅用2个多跳数据集(2WikiMultiHopQA、HotpotQA);

  • 段落:每个问题仅配对“正确段落”(gold passages,明确含正确答案);

  • 测试重点:对比“段落注入”与Vanilla RAG在该场景下的F1分数,若性能相当或更优,说明方法能有效利用有用信息。

三、整体实验设计的核心逻辑总结

该章节的实验设置围绕“一个核心方法(段落注入)”,通过“两层场景(通用+受控)”和“多维度变量(模型、段落、噪声、难度)”,形成了完整的验证链条:

  • 先通过通用设置证明“方法在常规场景有效”,建立基础结论;

  • 再通过受控设置拆解“有效原因”——既能抗噪声(噪声设置),又能利用有用信息(正确段落设置),消除“方法仅靠某单一优势起效”的疑问;

  • 全程控制“无关变量”(如检索器、生成参数),确保实验结果的可归因性,让读者相信“性能提升确实来自段落注入,而非其他因素”。

这种设计既回答了“方法是否有效”,又解释了“为何有效”,为后续“结果与分析”章节的结论提供了严谨的实验支撑。

5 结果与分析

一、通用RAG场景:证明“段落注入”的基础有效性与优势差异

1. 核心结论:方法有效,且对复杂推理、非蒸馏模型更友好

实验通过对比“段落注入”与基线方法(Vanilla RAG、Instruction Injection等)在4个QA数据集、不同模型上的表现,得出5个关键结论,可归纳为“一个核心优势+三个差异特征”:

  • 核心优势:段落注入在所有模型、所有检索段落数量(top-1/3/5)下,平均F1分数均最高,是通用场景下的最优方案,证明其基础有效性

  • 差异特征1:对多跳问答提升更显著多跳问题(如“某事件的起因→发展→结果”需多步推理)的性能增益,远超单跳问题(如“某人物的国籍”仅需直接匹配)。这是因为多跳问题需更精细的推理过程,而“段落注入”将外部段落融入推理阶段,能帮助模型更准确地串联多步信息,减少因推理断层导致的错误。

  • 差异特征2:“段落+推理阶段”比“仅指令”更关键指令注入(仅把“如何用段落”的指令放进推理阶段,段落仍在输入阶段)的效果弱于段落注入。这说明单纯靠指令引导不够,必须让段落本身成为推理过程的一部分,才能让模型更精准地判断段落信息的有效性。

  • 差异特征3:蒸馏模型“受益特殊但增益有限”

    • 特殊点:蒸馏模型(如DeepSeek-R1-Distill-Qwen-32B)在无外部段落的Direct QA场景下不如Qwen3-32B,但在Vanilla RAG场景下反超——因为蒸馏训练时学习了“长上下文推理”,更适配RAG的“段落+问题”输入格式,能更好利用外部内容。

    • 局限点:段落注入对蒸馏模型的性能提升,远小于对Qwen3系列(强化学习获推理能力)的提升——因为蒸馏模型的推理路径是“模仿教师模型”习得的,而非自主探索,对“推理阶段注入段落”的修改不敏感。

2. 读者理解关键点

该部分通过“变量控制”(如统一模型生成参数、固定检索器为BM25)确保:性能差异仅来自“方法不同”,而非其他实验条件。例如,通过k=1/3/5的设置,排除“段落数量”对结果的干扰,证明“段落注入”的优势是“方法本身的设计”带来的,而非“用了更多段落”。

二、噪声场景:拆解“段落注入”的核心价值——抗干扰能力强

1. 实验背景:模拟真实RAG的“痛点”

真实场景中,检索到的段落常含“无关信息(随机噪声)”或“看似相关的错误信息(反事实噪声)”,模型若被误导会生成错误答案。此部分实验旨在验证:段落注入是否能提升模型对这类噪声的“免疫力”。

2. 核心结论:抗两种噪声均有效,对高迷惑性噪声效果更突出

  • 对随机噪声(无关段落):段落注入在所有模型上的F1分数均高于Vanilla RAG——说明模型能通过“推理阶段整合段落”,识别出哪些信息与问题无关,避免被无用内容干扰。

  • 对反事实噪声(误导性段落):提升效果更显著——反事实噪声(如“北爱尔兰属于美国”)因“主题相关、表述流畅”,比随机噪声更难辨别,但段落注入仍能让模型发现矛盾(如结合内部知识判断“北爱尔兰属英国”),修正错误,证明其抗干扰能力的深度。

  • 再次验证“段落整合”的必要性:指令注入的抗干扰效果仍弱于段落注入,进一步强化“必须让段落进入推理阶段,而非仅靠指令”的结论。

反事实噪声的实验结果是核心——它证明段落注入的优势不仅是“过滤无关信息”,更是“识别并修正错误信息”,这对RAG系统的可靠性至关重要(毕竟误导性信息比无关信息的危害更大)。

三、正确段落场景:排除“方法顾此失彼”的担忧

1. 实验背景:避免“为抗噪声牺牲有用信息”

若一种方法仅能抗噪声,但无法利用正确段落,仍无实用价值。此部分实验通过“仅提供含正确答案的段落(Gold Passages)”,验证段落注入是否“既防错,又能用对”。

2. 核心结论:平衡抗噪声与用有用信息,小模型更受益

  • 整体平衡:段落注入与Vanilla RAG性能相当——说明它在提升抗噪声能力的同时,没有损害对有用信息的利用,排除了“顾此失彼”的问题。

  • 规模差异:仅在Qwen3-8B(小模型)上,段落注入优于Vanilla RAG——因为小模型的“直接从输入提取信息”能力较弱,将正确段落融入推理阶段后,能更清晰地定位关键信息;而大模型(如Qwen3-32B)本身已能高效处理输入中的正确段落,无需额外的推理阶段整合。

此部分实验是对“段落注入”实用价值的关键背书——它证明该方法的核心是“优化信息利用方式”,而非“为了抗噪声而放弃有用信息”,消除了“方法可能适用于噪声场景,但不适用于正常场景”的顾虑。

四、输出长度分析:补充“段落注入”的附加价值——缓解过度思考

1. 核心结论:输出更简洁,降低推理成本

实验发现,无论在哪个数据集、哪个模型上,段落注入的输出长度均显著短于Vanilla RAG。这是因为:

  • Vanilla RAG将段落放在输入阶段,模型可能因“不确定哪些信息有用”而过度分析,导致推理路径冗长;

  • 段落注入将段落融入推理阶段,模型能更明确地判断信息相关性,减少无效思考,生成更简洁的答案。

2. 读者理解关键点

这一结论不仅是“附加价值”,更是对“方法设计合理性”的佐证——与第3章“段落注入可减少过度思考”的设计初衷完全一致,说明实验结果与理论预期相符,方法逻辑自洽。

该章节通过四个维度的分析,形成了完整的“方法验证闭环”:

  • 通用场景:先证明“段落注入”比现有方法更有效;

  • 噪声场景:再拆解“有效原因”——核心是抗干扰能力强;

  • 正确段落场景:接着排除“副作用”——证明不影响有用信息利用;

  • 输出长度:最后补充“附加价值”——缓解过度思考,降低成本。

同时,所有实验结果均围绕“模型类型(强化学习vs蒸馏)”“模型规模(小vs大)”“问题难度(单跳vs多跳)”三个变量展开,清晰界定了“段落注入”的适用边界:对强化学习获推理能力的模型、小模型、多跳复杂推理问题的提升效果最显著,为后续实际应用提供了明确指导。

### RAG 技术的实现方法 RAG 技术的实现主要依赖于两个核心组件:高效的检索算法和先进的生成模型。这种组合使得 RAG 能够在面对复杂查询时,快速从大规模数据集中提取相关信息,并利用生成模型对其进行重组和表达[^2]。具体而言,检索部分负责从外部数据库中找到最相关的文档片段,而生成模型则基于这些片段生成最终的回答。 为了提高效率和准确性,RAG检索模块通常采用向量索引技术或语义匹配算法来加速相似度计算过程。与此同时,生成模型可以是预训练的语言模型(如 T5 或 BART),它们经过微调后能够好地适应特定领域的需求[^4]。 --- ### RAG 技术的应用场景 #### 1. **问答系统** RAG 技术广泛应用于构建智能问答系统。相比于传统的仅依靠固定知识库的方法,RAG 可以实时访问最新的互联网资源,从而提供及时、准确的信息答复[^1]。例如,在医疗咨询或者法律援助等领域,RAG 能够帮助用户获取权威且新的知识点。 #### 2. **对话机器人** 在设计多轮对话系统时,RAG 提供了一种有效的方式来管理海量背景资料。它允许聊天机器人根据用户的输入动态调整回复策略,同时保持较高的信息质量和服务水平[^3]。 #### 3. **内容创作辅助工具** 对于新闻撰写、文案编辑等工作来说,借助 RAG 技术可以从浩瀚的数据海洋里筛选出合适的素材作为灵感来源之一;然后再由生成器完成具体的文字加工任务,极大地提升了工作效率与创意空间扩展可能性。 #### 4. **搜索引擎优化** 传统搜索引擎返回的是链接列表形式的结果页面,而集成有 RAG 功能的新一代产品可以直接给出针对提问的具体答案摘要甚至全文重述版本,改善用户体验的同时也增加了交互深度层次感。 --- ```python import torch from transformers import RagTokenizer, RagRetriever, RagTokenForGeneration # 初始化 tokenizer 和 model tokenizer = RagTokenizer.from_pretrained("facebook/rag-token-nq") retriever = RagRetriever.from_pretrained("facebook/rag-token-nq", index_name="exact", use_dummy_dataset=True) model = RagTokenForGeneration.from_pretrained("facebook/rag-token-nq", retriever=retriever) def generate_answer(question): input_ids = tokenizer.question_encoder(question, return_tensors="pt").input_ids with torch.no_grad(): outputs = model.generate(input_ids) answer = tokenizer.batch_decode(outputs, skip_special_tokens=True)[0] return answer question = "What is the capital of France?" answer = generate_answer(question) print(f"Question: {question}\nAnswer: {answer}") ``` 上述代码展示了如何使用 Hugging Face 提供的 `transformers` 库加载一个预训练好的 RAG 模型实例,并通过简单的 API 接口实现基本功能演示。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据分析能量站

谢谢支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值