深夜,一家餐厅的后厨灯火通明。学徒小张接到任何订单——哪怕只是一杯白开水——都要冲进仓库,把所有食材、所有菜谱全部搬到灶台前。结果:菜上得慢,仓库被翻得乱七八糟,还常常拿错食材,把腥味混进了甜点。这就是“固定检索RAG”的日常:模型不管问题多简单,都先检索一堆文档,再把相关与不相关的信息一起塞进回答。 直到主厨陈师傅改变了规矩。他让灶台边的每一位厨师都学会“看菜下饭”:先判断这道菜自己有没有把握,没把握才去查菜谱;查到菜谱先验证是不是做这道菜的、靠不靠谱;最后结合客人口味改良。这一套“自我反思”的决策流程,正是 Self-RAG 的核心——用反思token让大模型自主决定“何时检索、检索什么、怎么用”。 本文将从检索决策困境出发,拆解反思token机制、检索触发判断、检索结果评估、自适应生成策略,再到性能优势与落地场景,帮你完整理解这条“聪明的检索之路”。

岗位关联

掌握 Self-RAG 的自适应决策思路,能帮你在企业 RAG 落地中大幅降低检索成本、提升答案事实一致性,是 LLM 时代搜索与问答系统的关键进阶技能。

目录
  1. 可视化演示
  2. 检索决策困境
  3. 反思token机制
  4. 检索触发判断
  5. 检索结果评估
  6. 自适应生成策略
  7. 性能优势分析
  8. 落地与展望
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

展示Self-RAG三大核心:反思Token机制(4类反思token Retrieve/IsRel/IsSup/IsUse模型自主控制检索流程)、自适应检索流水线(查询进入LM生成Retrieve token决策是否检索多阶段质量把控IsRel/IsSup/IsUse)、Self-RAG vs标准RAG对比(自适应检索准确率+15%延迟-30%幻觉-40%),三模式切换理解Self-RAG全貌。

本节配有交互动效(进入视口后自动加载,约 3KB)。

'+C1+'

检索决策困境

小张的搬仓库式做法看似“信息越多越好”,实则代价惨重。固定RAG在每个查询或每个生成段落都固定检索 top-K 文档,无论问题是“今天是几号”还是“某药物三期临床试验的亚组分析”。每一次检索都意味着向量化、相似度计算、重排序,延迟和算力被白白消耗——就像厨师为了蒸一条鱼,把整间仓库翻了个底朝天。

更糟的是噪声。检索器按相关性排序,但 top-K 里总有“看起来相关、其实无关”的段落。这些噪声混进上下文,生成器可能被带偏,出现答非所问甚至胡编乱造。研究里把这类问题总结为“不必要的检索引入噪声,损害生成质量”——学徒搬来的过期食材,让一锅好汤变了味。

陈师傅的做法是给厨师“判断题”的能力:模型自己决定要不要查。Self-RAG 通过训练让模型输出反思token,把检索从固定流程变成“按需触发”的自主决策,这就是它与传统 RAG 的根本分水岭。模型不再被动接受检索结果,而是主动管理自己的知识获取过程。

厨房里的规矩变了:先问“敢不敢直接做”,而不是一上来就搬仓库。理解了这一困境,下面几节将展开这套决策机制的一环一环——从便签写到跑腿、验货、改菜,最终成就一家又快又稳的餐厅。

反思token机制

陈师傅在每口锅边贴了一组带磁铁的便签:白色便签写“要不要翻菜谱”,黄色写“这页菜谱对路吗”,绿色写“这道工序能照抄吗”,蓝色写“客人真的需要吗”。Self-RAG 把便签做成了词表里的特殊符号——反思token(reflection token)。它不是端给客人的菜,而是厨师自己的操作提示,不出现在最终回答里,却决定了每一步怎么走。

反思token分为四类:Retrieve(是否检索)、ISREL(检索片段与问题是否相关)、ISSUP(生成内容是否被证据支持)、ISUSE(回答对任务是否有用),每类又包含正、负、不确定等具体取值。机制上,Self-RAG 训练了两个模型:生成器 G 负责正常出词、也负责输出“决策token”;批判器 C 对检索片段打分并贴“评估token”,两者协同完成自我反思。

技术上,反思token被当作普通token加入词表,但只在特定位置出现。生成到段落边界时,模型在候选反思token上计算 softmax 分布,为每个选项打分。由于token信息被显式建模,模型第一次有了“自我评估能力”的可解释出口——研究者能直接读出模型在每个段落上“想了什么”。

便签贴得准,后面的跑腿和验货才有意义。接下来看最关键的一张便签——“要不要查菜谱”。

p(τt∣x,y<t)=exp⁡(ht⊤wτ)∑τ′∈Texp⁡(ht⊤wτ′)p(\tau_t \mid x, y_{<t}) = \frac{\exp(\mathbf{h}_t^{\top} \mathbf{w}_{\tau})}{\sum_{\tau' \in \mathcal{T}} \exp(\mathbf{h}_t^{\top} \mathbf{w}_{\tau'})}
这个公式说的是:模型根据当前“脑内状态”给每种便签打分,再用 softmax 变成概率,概率最高的便签就是它这一段的自我评价。
  1. τ_t 表示当前反思token$p(\tau_t \mid x, y_{<t})$ 是在给定问题 $x$ 和已生成内容 $y_{<t}$ 时,模型认为自己应贴上哪种“自我便签”(如检索、相关、支持)的概率。
    x,y<t→τtx, y_{<t} \rightarrow \tau_t
  2. h_t 是当前隐状态$\mathbf{h}_t$ 是生成模型第 $t$ 步的隐状态,浓缩了“目前局面”的所有信息,相当于主厨脑中已经记下的订单与做法。
    ht=Encoder(x,y<t)\mathbf{h}_t = \text{Encoder}(x, y_{<t})
  3. w_τ 是每种token的权重$\mathbf{w}_{\tau}$ 是与反思token $\tau$ 绑定的可学习向量,模型用它把隐状态映射成“这种便签有多合理”的分数。
    score(τ)=ht⊤wτ\text{score}(\tau) = \mathbf{h}_t^{\top} \mathbf{w}_{\tau}
  4. softmax归一化$\frac{\exp(\cdot)}{\sum_{\tau' \in \mathcal{T}} \exp(\cdot)}$ 将全部候选得分的指数映射到 $(0,1)$,使所有反思token的概率和为1,从而可以采样或取最大值作为决策。
    ∑τ′∈Tp(τ′∣x,y<t)=1\sum_{\tau' \in \mathcal{T}} p(\tau' \mid x, y_{<t}) = 1

检索触发判断

“这单清蒸鲈鱼我闭着眼都能做。”陈师傅接到熟客订单,直接下锅,不翻菜谱;遇到“分子料理”才让学徒去仓库。每个段落开始前,模型都要做一次“Retrieve 还是 NoRetrieve”的离散决策——这是 Self-RAG 最核心的开关,决定了算力花在哪里。

决策来自反思token分布中的采样或 argmax。若选择 Retrieve,模型还要自己生成检索词 $q$,然后执行检索;若选择 NoRetrieve,直接从已有上下文继续生成。论文还提出“可控”策略:在事实密集任务上可强制某些段落必须检索(例如每3段至少检索1次),让使用者按场景调节“爱查”的程度——就像餐厅可以在节假日强制厨师对每道菜都核对菜谱。

段级(segment-level)决策是关键:以段落而非 token 为粒度,既保留灵活性,又避免每个字都做判断的抖动。同时,大量“简单记忆”被直接跳过,平均检索次数显著下降,噪声引入也随之减少。

一张便签值一次跑腿。会看菜下饭的主厨,一天少跑十趟仓库,上菜反而更快。但问题来了:真去了仓库,抱回来的菜谱就一定靠谱吗?

ot=arg⁡max⁡s∈{Retrieve,NoRetrieve}p(s∣x,y<t)o_t = \arg\max_{s \in \{\text{Retrieve}, \text{NoRetrieve}\}} p(s \mid x, y_{<t})
这张便签只回答一个问题:去还是不去?模型在“检索”和“不检索”两个动作里,选概率更高的那个。
  1. 候选动作集合$\{\text{Retrieve}, \text{NoRetrieve}\}$ 是两个离散动作——“去查菜谱”和“凭记忆做菜”,二选一,没有中间态。
    s∈{Retrieve,NoRetrieve}s \in \{\text{Retrieve}, \text{NoRetrieve}\}
  2. 条件概率$p(s \mid x, y_{<t})$ 衡量在问题与已生成内容下选择动作 $s$ 的合理性——厨师的把握越大,“不检索”的概率越高。
    p(NoRetrieve)≈0.93,  p(Retrieve)≈0.07p(\text{NoRetrieve}) \approx 0.93,\; p(\text{Retrieve}) \approx 0.07
  3. argmax 决策取概率最大的动作执行;训练时可采用采样增加探索,推理时通常取最大,保证结果稳定可复现。
    ot=NoRetrieveo_t = \text{NoRetrieve}

检索结果评估

学徒把菜谱抱回来后,陈师傅不会照单全收:先看是不是这道菜(ISREL),再看做法靠不靠谱(ISSUP),最后看客人是否真的需要这道工序(ISUSE)。三条都通过,才考虑使用。常规 RAG 拿回 K 篇就一股脑拼进 prompt,Self-RAG 则显式评估每篇——这就是“验货”环节。

在数学上,批判器为每个检索片段给出三项概率,并用连乘得到该片段的综合分。任何一项概率低,综合分都会显著下降,从而把“相关但与答案矛盾”或“正确但答非所问”的片段过滤掉。比如一篇讲鲈鱼刺身的菜谱,虽然和“鱼”相关(ISREL高),但客人点的是清蒸(ISUSE低),照样被筛掉。

评估结果以反思token的形式拼在当前段落之后,作为下一轮决策的输入。这就形成了“检索→评估→决定是否再检索”的闭环,而不是一次性拼接上下文。模型可以在回答中途发起第二次检索,补上缺失的证据。

陈师傅的严选,让仓库里堆的过期材料和真材实料明确分开。验完货,下一步就是决定怎么用这些材料——是照抄菜谱,还是改良?

s(ys,rk)=pISREL(ys,rk)⋅pISSUP(ys,rk)⋅pISUSE(ys,rk)s(y_s, r_k) = p_{\text{ISREL}}(y_s, r_k) \cdot p_{\text{ISSUP}}(y_s, r_k) \cdot p_{\text{ISUSE}}(y_s, r_k)
三段“验货”关卡相乘,任何一关不过,综合分就被压得很低。菜谱是死的,用不用是活的。
  1. y_s 是当前段落一个段落对应主厨完成的一道工序,$y_s$ 为这步生成出的文字内容。
    ys=第 s 个生成段落y_s = \text{第 } s \text{ 个生成段落}
  2. r_k 是第 k 个检索片段$r_k$ 是检索回来的第 $k$ 篇材料,相当于菜谱的一页,可能真材实料也可能是垃圾信息。
    rk∼Retrieve(q,top-K)r_k \sim \text{Retrieve}(q, \text{top-}K)
  3. 三项概率相乘ISREL 检查“这页讲的是不是这道菜”,ISSUP 检查“这页能不能支撑我的做法”,ISUSE 检查“这页对客人需求有没有用”,三者连乘形成总分。
    pISREL×pISSUP×pISUSEp_{\text{ISREL}} \times p_{\text{ISSUP}} \times p_{\text{ISUSE}}

自适应生成策略

即使选定了菜谱,陈师傅也会结合今天客人的口味调整火候。Self-RAG 生成每个段落时,不只依赖单一片段,而是让 K 篇候选材料各自参与一次生成,再按批判器分数加权融合——多页菜谱各说各话时,取最可信的几页折中成一道菜。

具体流程:检索得到 K 个片段,模型对每个片段生成候选段落的概率;批判器为每个候选打分;softmax 把分数变成权重;最终按权重混合 K 个概率分布,取 argmax 作为该段落输出。硬选择变成软加权,模型对检索质量波动更鲁棒——即使某一片段质量欠佳,只要权重低,就不会主导答案。

若此前决策是 NoRetrieve,则不经过检索片段,直接用记忆生成段落。整个生成过程是“滚动式组合决策”:每个段落独立决策、逐步推进,既保留了对局部证据的敏感,又避免了全局一次性生成的僵化。

这样一套“决策—检索—评估—加权生成”的流程,效果究竟如何?接下来看实验数据给出的答案。

y^s=arg⁡max⁡y∑k=1Kes(y,rk)∑j=1Kes(y,rj)⋅p(y∣x,y<s,rk)\hat{y}_s = \arg\max_{y} \sum_{k=1}^{K} \frac{e^{s(y, r_k)}}{\sum_{j=1}^{K} e^{s(y, r_j)}} \cdot p(y \mid x, y_{<s}, r_k)
每个片段先按批判分获得权重,再加权投票选出最优段落。好的主厨既不全抄菜谱也不闭门造车,而是在多页菜谱之间取长补短。
  1. 候选段落概率$p(y \mid x, y_{<s}, r_k)$ 表示只参考第 $k$ 篇材料时模型生成段落 $y$ 的概率——相当于只看某一页菜谱会做出的菜。
    p(y∣x,y<s,rk)∈(0,1)p(y \mid x, y_{<s}, r_k) \in (0,1)
  2. softmax权重$\frac{e^{s(y, r_k)}}{\sum_{j=1}^{K} e^{s(y, r_j)}}$ 把批判器得分 $s$ 变成归一化权重,得分高(相关又受支持)的材料贡献更大。
    wk=es(y,rk)∑j=1Kes(y,rj),∑k=1Kwk=1w_k = \frac{e^{s(y, r_k)}}{\sum_{j=1}^{K} e^{s(y, r_j)}}, \quad \sum_{k=1}^{K} w_k = 1
  3. 加权求和与argmax$K$ 个候选段落的概率按权重混合后取最大值,选出综合最优的段落——主厨把几页菜谱折中成一道最适合客人的菜。
    y^s=arg⁡max⁡y∑k=1Kwk⋅p(y∣x,y<s,rk)\hat{y}_s = \arg\max_{y} \sum_{k=1}^{K} w_k \cdot p(y \mid x, y_{<s}, r_k)

性能优势分析

论文在多个事实密集基准(如 PubHealth、ARC-Challenge)上对比了固定 RAG、纯记忆生成与 Self-RAG。固定 RAG 的检索次数最高、噪声最多;纯记忆在冷门事实上幻觉严重;Self-RAG 在“事实精确率”和“支持证据一致率”上领先,同时检索次数大幅减少——上菜更快,客人投诉更少。

三方面收益可拆解:其一,跳过不必要检索直接节省算力与延迟;其二,ISSUP 让模型拒绝与证据矛盾的生成,事实一致性提升;其三,段级重选避免了“一段出错整篇返工”。实验里 Self-RAG 在多数指标上既能超过固定检索 RAG,也能超过不检索的生成,说明“按需”确实优于“全有”与“全无”两个极端。

效率与质量不是零和博弈:用一点“自我评估”的推理开销,换来检索开销的大幅节省与答案质量的显著提升。这就是把算力花在刀刃上的典型例子——主厨的便签纸很便宜,省下的跑腿时间和食材浪费却很可观。

落地与展望

这套决策逻辑已在企业知识库问答中落地:高频简单问题由模型直接回答,冷门政策问题才触发检索,调用成本下降,引用可追溯。某银行客服场景中,接入 Self-RAG 风格决策后,简单查询(余额、营业时间)直接走记忆,复杂政策才检索制度文档,检索量下降约四成。

与搜索系统融合时,Self-RAG 还担任“搜索—阅读—再搜索”回路中的决策器:先由模型生成准确检索词,再对结果做相关性评估,必要时发起第二轮检索——这正是 Agent 式 RAG 的雏形。检索不再是孤立的预处理步骤,而是和推理交织的智能行为。

未来方向包括:多模态反思token(图片证据的相关性)、与强化学习结合优化长期检索策略、以及在长文档生成中做跨段落一致性评估。陈师傅的餐厅靠着“看菜下饭”成了街区口碑最好的店——AI 检索的未来,也在于知道什么时候不必检索。

AI 应用场景

企业客服知识库问答

阶段:检索增强生成(RAG)全链路优化

解决的问题:传统固定 RAG 在客服场景下,每个用户问题都触发向量检索 + 重排序,成本高且经常检索到相似但不相关的历史工单,噪声误导回答。Self-RAG 让模型先判断“这个问题我能不能直接答”,不能时才检索,并对召回片段做 ISREL/ISSUP 评估,像主厨先判断“这道菜用不用翻菜谱”。

具体案例:某银行智能客服每天数百万次咨询,接入 Self-RAG 风格决策后,检索量下降约 40%。高频简单问题(余额查询、网点营业时间)直接由模型记忆回答,复杂政策问题才检索最新制度文档,并附带证据编号供用户核对。

内容事实核查

阶段:生成后评估与校验

解决的问题:AI 生成新闻摘要时,模型可能凭记忆编造细节;固定 RAG 检索一堆文档却没有“哪句话被哪篇证据支持”的显式信号。Self-RAG 的 ISSUP/ISUSE token 能在生成同时产出每个段落的证据支持度,让审核系统快速定位无证据支撑的句子——就像主厨用绿色便签标出“这道工序有菜谱背书”。

具体案例:某新闻平台用 Self-RAG 生成的摘要中,每句话附带支持段落 id 与置信度,编辑只需审查低支持度的句子,审核效率明显提升,事实错误率下降。

多跳问答Agent

阶段:Agent式检索决策

解决的问题:多跳问题需要“检索—推理—再检索”,传统流程每跳都固定检索,噪声累积严重。Self-RAG 的思想让 Agent 在每跳前自主决定是检索还是推理,并在每次检索后用反思token评估证据强度。

具体案例:科学问答系统回答“某种药物对某疾病的疗效”时,先凭已有知识判断是否检索,再检索最新临床试验,用 ISREL/ISSUP 评估证据后给出带引用的结论,需要补证时自动发起第二轮检索。

Python 演示

python82 行
# -*- coding: utf-8 -*-# 简化版 Self-RAG 模拟:对比固定检索与按需检索的开销和噪声import random  class SimulatedLM:    # 模拟大模型:根据问题类型给出是否检索的决策    def __init__(self, seed=42):        random.seed(seed)        self.known_conf = {            "简单记忆": 0.95,            "常见常识": 0.88,            "冷门细节": 0.42,            "陌生实体": 0.25,        }        self.calls = 0        self.retrievals = 0     def should_retrieve(self, query_type):        conf = self.known_conf[query_type]        return conf < 0.6  # 置信度低才需要检索  class RetrievalStore:    # 模拟检索库:命中的相关片段与噪声片段混在一起    def __init__(self):        self.passages = {            "冷门细节": ["冷门事实A", "冷门事实B"],            "陌生实体": ["实体背景资料", "实体权威引用"],        }        self.noise = ["无关广告", "过期新闻", "博客牢骚"]     def retrieve(self, query_type, top_k=2):        hits = self.passages.get(query_type, [])[:top_k]        return hits + self.noise[:top_k]  def is_relevant(passage, query_type):    known = ["冷门事实A", "冷门事实B", "实体背景资料", "实体权威引用"]    return 1.0 if (passage in known) else 0.0  def segment_score(passages, query_type):    # 模拟批判器评估:计算片段池的平均相关度    scores = [is_relevant(p, query_type) for p in passages]    return sum(scores) / len(scores)  def run_epoch(query_types, lm, store, adaptive=True):    noise_sum = 0.0    for qt in query_types:        lm.calls += 1        need = lm.should_retrieve(qt) if adaptive else True        if need:            lm.retrievals += 1            chunks = store.retrieve(qt)            noise_sum += 1.0 - segment_score(chunks, qt)        else:            noise_sum += 0.0    avg_relevance = 1.0 - noise_sum / len(query_types)    return lm.retrievals, avg_relevance  def main():    store = RetrievalStore()    queries = ["简单记忆", "常见常识", "冷门细节", "陌生实体"] * 5     lm_fixed = SimulatedLM(seed=7)    fixed_ret, fixed_rel = run_epoch(queries, lm_fixed, store, adaptive=False)     lm_self = SimulatedLM(seed=7)    self_ret, self_rel = run_epoch(queries, lm_self, store, adaptive=True)     print("策略          检索次数   平均相关度")    print("固定RAG       %-8d   %.2f" % (fixed_ret, fixed_rel))    print("Self-RAG      %-8d   %.2f" % (self_ret, self_rel))    print("检索次数下降: %.1f%%, 相关度提升: %.2f" % (        (1 - self_ret / fixed_ret) * 100, self_rel - fixed_rel))  if __name__ == "__main__":    main()
目的:用一个小型模拟实验展示固定RAG与Self-RAG在检索次数和答案相关度上的差异,验证“按需检索”的价值。
  1. self.known_conf = {...}模拟模型对四类问题的“把握程度”,置信度高就不必检索,像主厨对熟客菜品的信心。
  2. return conf < 0.6低置信度才触发检索,这是 Self-RAG 的 Retrieve 决策核心。
  3. hits + self.noise[:top_k]模拟检索库里命中结果与噪声混在一起,对应真实世界的 top-K 召回。
  4. need = lm.should_retrieve(qt) if adaptive else True自适应开关:固定RAG永远检索,Self-RAG按需检索。
  5. noise_sum += 1.0 - segment_score(chunks, qt)统计每轮检索带进的噪声比例,相关度越低噪声越大。
  6. (1 - self_ret / fixed_ret) * 100计算检索开销的下降幅度,直观对比两种策略的效率差距。

常见误区

误区名字里带“RAG“,又强调”自主决策“,很多人以为模型在每个 token 生成时都要停下来想”要不要检索”,推理速度会很慢。

正解恰恰相反,Self-RAG 的检索决策发生在“段落级”(segment-level),而不是 token 级,而且大多数段落直接选择 NoRetrieve——也就是不检索。相比固定 RAG 每步都检索,Self-RAG 的检索次数大幅减少,速度反而更快。就像聪明厨师不是每道菜都翻食谱,而是只对没把握的菜翻。

为何常见:“RAG“三个字让初学者默认”检索是每时每刻都在做的事“,忽略了 Self-RAG 的关键创新正是”大多数时候不检索”。

误区以为反思token会作为普通文字出现在回答里,比如“我确定这个答案是对的”,或者类似“信心声明”的句子。

正解反思token是附加在输出序列里的特殊标记,用来标注“是否相关、是否被支持、是否有用”,由批判器(critic)打分,属于元认知信号而非普通文本。它相当于主厨贴在灶台上的便签,而不是端给客人的菜品;用户永远看不到这些token。

为何常见:大家熟悉“模型输出文字”的直觉,但对“输出序列里混着不可见的结构化控制符号”这套机制缺乏感知,容易把token误解为普通词。

误区既然检索能提供知识,那 K 取 10、取 20 一定比取 2 更好,“材料越多答案越准”。

正解增大 K 会引入更多噪声,批判器需要从 K 个片段里挑出真正相关且支持答案的少数几个;片段太多时,softmax 权重被稀释,决策反而变差。Self-RAG 的价值在于“挑得好”而不是“取得多”——翻十本菜谱可能更混乱,不如挑准一本。

为何常见:固定RAG“拼长上下文”的习惯深入人心,而且向量检索的召回率确实随 K 增大而上升,容易让人忽视“多而不精”的副作用。

误区认为 Self-RAG 做的事只是“少检索几次”,和事实错误、幻觉问题没有直接关系。

正解通过 ISSUP(支持性)评估,模型会拒绝使用与证据矛盾的记忆,并对每个段落要求证据背书;实测中 Self-RAG 在事实精确率和证据一致率上显著超过固定 RAG。它不只是节约成本,更是从机制上把“生成”和“证据校验”绑定在一起。

为何常见:审视视角停留在“检索管线优化”,忽略了反思token对生成阶段的约束力——就像只看到主厨少跑了几趟仓库,没看到他对每道菜都严格验货。

面试题

Q1. Self-RAG相比固定检索RAG,最核心的改进是?

单选题 · easy

  • A.每次检索的文档数量翻倍
  • B.由模型自主决定是否检索← 正确答案
  • C.完全放弃外部知识检索
  • D.只检索图片和多模态数据

答案:B。Self-RAG 的核心创新是“按需检索”,把检索从固定流程变成模型自主决策。A 与固定RAG方向相反,C 走到另一个极端(放弃检索),D 与题干无关。就像主厨的核心改进是“看菜下饭”,而不是多搬或少搬仓库。

Q2. 反思token在Self-RAG中主要充当什么角色?

单选题 · easy

  • A.输出文本的格式标签
  • B.模型的自我评估信号← 正确答案
  • C.用户输入的特殊符号
  • D.搜索引擎的高级查询词

答案:B。反思token是模型在生成过程中给自己贴的“元认知便签”,用于评估是否检索、检索片段是否相关/支持/有用,不直接呈现给用户。A 说成格式标签、C 说成用户输入、D 说成查询词,都混淆了它的决策信号本质。

Q3. Retrieve检索决策发生在哪个时机?

单选题 · mid

  • A.生成每个段落之前← 正确答案
  • B.生成每个字符之后
  • C.仅在回答结束时
  • D.在数据预处理阶段

答案:A。Self-RAG 以段落(segment)为粒度做检索决策,每个段落生成前先采样 Retrieve 或 NoRetrieve。B 的字符级过于细碎,C 的“结束才检索”失去意义,D 的预处理阶段则是先把流程移到线外,都不是论文的设汁。

Q4. 批判器输出的ISREL表示什么意思?

单选题 · mid

  • A.检索文档与问题是否相关← 正确答案
  • B.生成文本是否足够流畅
  • C.用户查询是否合法合规
  • D.模型是否需要重新训练

答案:A。ISREL(relevant)评估检索片段与当前问题/段落的相关性,是“这页菜谱是不是讲这道菜”的验货标准。B、C、D 分别说的是流畅度、合规性和训练状态,与批判器的评估维度无关。

Q5. 下列哪一项不属于反思token类别?

单选题 · mid

  • A.Retrieve 检索类token
  • B.ISREL 相关类token
  • C.ISSUP 支持类token
  • D.Softmax 激活类token← 正确答案

答案:D。反思token四类是 Retrieve、ISREL、ISSUP、ISUSE,对应主厨的“翻菜谱/相关性/支持性/实用性”便签。Softmax 只是把得分做归一化的数学函数,不是反思token类别,也不承担自我评估语义。

Q6. Self-RAG生成段落时如何利用K个检索片段?

单选题 · hard

  • A.随机挑选一个片段参与
  • B.把所有片段全部拼接使用
  • C.按批判器得分加权选择← 正确答案
  • D.始终采用第一个片段

答案:C。Self-RAG 对每个片段各自生成候选段落,再用批判器得分做 softmax 加权组合,取加权后概率最大的段落。A 随机、D 固定取第一个都缺乏评估,B 全拼接正是固定RAG的“噪声来源”做法,与自适应思想相悖。

Q7. Self-RAG能带来的主要收益包括哪些?

多选题 · mid

  • A.降低不必要的检索次数← 正确答案
  • B.提升答案事实一致性← 正确答案
  • C.彻底消除全部幻觉问题
  • D.减少无关噪声对生成干扰← 正确答案

答案:ABD。A、B、D 分别对应“省开销、保事实、减噪声”三大收益。C 过于绝对,Self-RAG 能显著减少幻觉但无法彻底消除——再聪明的厨师也不能保证永远不失手。注意这类含“彻底/完全”的选项往往是陷阱。

Q8. 批判器评估检索片段的标准包括哪些?

多选题 · mid

  • A.相关性(ISREL)判断← 正确答案
  • B.支持性(ISSUP)判断← 正确答案
  • C.实用性(ISUSE)判断← 正确答案
  • D.词汇多样性程度判断

答案:ABC。批判器按 ISREL(相关)、ISSUP(支持)、ISUSE(有用)三个维度为检索片段打分并连乘。词汇多样性与证据质量无关,不是批判器的评估标准,属于干扰项。

Q9. 固定RAG在“查了也白查”场景下的主要问题是什么?

单选题 · hard

  • A.生成结果的长度过度冗长
  • B.引入噪声并浪费计算开销← 正确答案
  • C.模型完全无法继续生成
  • D.数据库存储容量超限报错

答案:B。对模型已有把握的简单问题,固定RAG仍强制执行检索,既浪费算力与延迟,又把无关片段混入上下文干扰生成。A 与检索无关,C、D 属于极端故障描述,均不符合“查了也白查”的典型表现。

Q10. 关于Self-RAG工作机制,正确的表述有哪些?

多选题 · extreme

  • A.检索判定属于离散动作决策← 正确答案
  • B.不需要任何额外模型参与
  • C.检索词由模型自动生成← 正确答案
  • D.对候选段落按得分重选← 正确答案

答案:ACD。A 正确,Retrieve/NoRetrieve 是离散动作;C 正确,需要检索时模型自己生成查询词;D 正确,段落生成后按批判器分数加权重选。B 错误,Self-RAG 需要生成器与批判器两个模型协同,批判器负责贴评估token,相当于主厨之外还需要一个“验菜员”。