论文分享

FineFilter- A Fine-grained Noise Filtering Mechanism for Retrieval-Augmented Large Language Models

任务目标是:通过噪声检测与过滤来提升模型在复杂问题中的推理能力。

收集充分有效的推理线索,过滤其余无关信息(噪声也即模型判别的对推理无效的句子)。

基准数据集:Natural Questions (NQ),TriviaQA和HotpotQA,利用Dense Passage Retriever (DPR)从整个维基百科文章库中检索出每个问题的前五篇文章作为输入,评测的是基于维基百科的开放领域的知识问答中多维度的问答能力。

NQ:开放域问答的深度阅读理解与答案形式多样性。
TriviaQA:知识密集型问题的开放域检索与生成。
HotpotQA:复杂多跳推理与跨文档证据链构建。

核心思想:将噪音过滤视为句子级的最小最大优化问题,基于上下文信息从多个文档中识别潜在的线索,然后再过滤保留最少的线索。

image

在论文给出的示例中比较了两个现有的模型,一个是压缩上下文的,一个是获取充分线索的,但这个示例是没有价值的。

目前复杂推理这一块最关键的其实是相关事实的获取,也就是充分的潜在线索识别,因为对于deepseek这样最新的模型而言,其依据能够直接判断了。

1.相关工作

1.传统检索器常会获取大量含噪声的内容,导致输出准确性下降,而过长的上下文会进一步降低模型效率。为解决这些问题,部分研究者采用重排序方法以优先选择更相关的句子。例如,RichRAG(Wang 等人,2025)提出一种生成式列表排序器(generative list-wise ranker),通过生成并排序候选文档,确保答案的全面性并符合模型偏好;Ke 等人(2024)设计了一种新型桥接机制,优化检索增强生成中检索器与大语言模型(LLMs)的连接,显著提升了问答和个性化生成任务的性能。然而,重排序可能破坏文档原有的逻辑结构,并产生不忠实的线索。

桥接:基于假设「忽略了检索到的人类友好信息与组装成LLM友好的上下文之间的差距
1.监督加强化学习,训练了一个优化检索器和LLM之间连接的桥梁模型(桥梁模型旨在将检索到的信息转换为LLMs喜欢并能有效工作的格式)
2.验证了在RAG中检索器的排名和选择假设

LLM和人类表现出的不同偏好,候选区块不多时,排名对LLM影响不大,而候选区块能否被选中影响大
(信息选择>排名正确性)

为了训练桥接模型获取对大模型更有效的检索区块排序(甚至重复一些重要文本?),给大模型提供更有效更友好的信息,需要构建理想项序列的真实标注标签。
之前的相关研究比如使用大模型通过困惑度蒸馏去构建,但所有可能的序列都用LLM计算并不可行。

2.另一类研究则通过抽象或抽取式摘要模型筛选与查询相关的答案线索。Xu 等人(2024)提出利用大语言模型作为抽象过滤器,通过聚焦最相关句子对检索文本进行压缩;Zhu 等人(2024)基于信息瓶颈原理过滤噪声,力图在简洁性与正确性之间达成平衡。尽管此类方法潜力显著,但其训练过程涉及高昂的计算复杂度,实际落地面临额外挑战。Xu 等人(2024)与 Wang 等人(2023)探索了抽取式过滤器以选择关键句子。然而,这些方法在消除无关信息的同时,可能因过度压缩导致输出准确性下降。

3.另有研究者提出创新路径:Li 等人(2023)引入「选择性上下文」(Selective Context)概念,通过自信息指标(self-information metrics)剔除冗余内容以提升大语言模型推理效率。但该技术可能削弱上下文的语义连贯性。

2.本文的工作

2.1 问题的提出:

给定一个查询q和一组检索到的文档D={d1,...,dn},其中每个文档di由一组句子Si={si1,...,sini}组成,ni是di中的句子数量。噪声过滤任务的目标是确定最优子集S⊆n i=1Si,使得语言模型fθ以最高概率为查询q生成正确的答案y。最优子集S可以通过以下MinMax来确定。

其中,S是最有可能产生正确答案的子集,|S🪄|是S中的句子数量。选择S*应该动态适应RAG系统的实际反馈,以平衡信息量和简洁性,确保在计算效率和答案准确性之间取得平衡。该问题可以形式化为一个NP-hard组合优化问题(Wu等人,2023),从大量文档中选择最小、最相关的答案线索来提高答案精度。

image

文中提出了一种用于RAG的三阶段噪声过滤机制,称为FineFilter,如图2所示。FineFilter由三个模块组成:线索提取器、线索再排序器和自适应截断器。

首先,线索提取器通过最大化信息增益从多个文档中选择潜在的答案线索,从而减少搜索范围空间并提高候选集的相关性。

其次,线索重排序器使用成对损失优化句子的排名,确保最相关的线索优先考虑。

最后,自适应线索截断器截取最小必要的上下文,以平衡计算效率和答案准确性。

2.2 线索提取器

目标:从多个文档中识别潜在的答案线索,并构建一个更小的查询相关候选集,以减少搜索空间。

为了优化句子提取过程,文中引入信息增益 (Information Gain, IG) 的概念。给定查询 $q$ 和候选句子集合 $S = {s_1, s_2, \dots, s_n}$,句子 $s_i$ 的信息增益 $\text{IG}(q, s_i)$ 定义为:

$$
\text{IG}(q, s_i) = H(q) - H(q \mid s_i)
$$

其中:

  • $H(q)$ 表示查询 $q$ 的熵,用于衡量查询的不确定性;
  • $H(q \mid s_i)$ 表示在给定句子 $s_i$ 后查询 $q$ 的条件熵。

在问答任务中,信息增益衡量了引入特定句子后查询不确定性的减少程度。通常,直接包含答案的句子会显著降低查询的未解析部分,帮助模型更好地理解查询核心,并提升下游生成模块的准确性。

其中,H(q)表示查询q的熵,衡量查询的不确定性;H(q|si)表示给定句子si时查询的不确定性。在问答任务中,信息增益度量了通过包含特定句子来减少查询中的不确定性。

基于这个信息增益概念,我们首先从检索到的文档集合中提取包含真实答案作为提取目标的句子。给定查询q、真实答案y和检索到的句子S={s1, s2,..., sn},含有答案的句子定义为:

基于此概念,我们首先从检索文档集合中提取包含真实答案(ground-truth answer)的句子作为目标。给定查询 $q$、真实答案 $y$ 和检索到的句子集合 $S = {s_1, s_2, \dots, s_n}$,包含答案的句子集合定义为:

$$
S^a = {s_j \mid y \sqsubseteq s_j, s_j \in S}
$$

其中,$y \sqsubseteq s_j$ 表示 $y$ 是 $s_j$ 的子字符串。

接着,我们微调一个大型语言模型(LLM)作为线索提取器(Clue Extractor) ,通过特定提示模板(参见附录A.1),根据查询 $q$ 和检索到的句子集合 $S$ 生成包含答案的句子集合 $S^a$。提取器的损失函数定义为:

$$
\mathcal{L}{\text{extra}} = -\log P\theta(S^a \mid q, S)
$$

最终,线索提取器在推理阶段能够基于用户查询和检索文档生成潜在候选线索:

$$
S^c = \text{Extractor}(q, S)
$$


基于KNN的相似句子提取

我们发现,包含答案的句子对简单问答数据集(如NQ)的性能提升显著,但对复杂问答数据集(如TriviaQA和HotpotQA)效果有限(如图3所示)。因此,针对复杂推理场景,我们提出基于K近邻(K-Nearest Neighbors, KNN)的相似句子提取策略。具体方法如下:

  1. 简单问题:直接选择包含答案的句子作为提取器的优化目标。这些句子提供关键信息,可显著降低查询不确定性。
  2. 复杂问题
    • 首先选择包含答案的句子;
    • 进一步使用KNN方法(Guo et al., 2003)筛选与答案语义相似的句子。
    尽管这些相似句子可能不直接包含答案,但它们提供与问题答案相关的上下文信息,帮助模型更深入理解问题本质并生成更精准的答案。

我们将包含答案的句子基于KNN的相似句子共同作为提取器的优化目标。这种策略使系统能够灵活应对不同复杂度的查询,在最小化计算开销的同时确保更高准确性。


说明

  • 公式与变量符号(如 $H(q), S^a, \mathcal{L}_{\text{extra}}$)保留原文格式以保证技术严谨性;
  • 术语(如 KNNInformation Gain)首次出现时标注中英文全称,后续使用缩写;
  • 逻辑流程通过分段和编号清晰呈现,技术细节通过脚注(如“图3”)和附录引用保持完整。
2.3 线索重排器-rerank

「线索提取器选出的句子通常包含多个相关线索,但其相关性可能存在差异,因此需要进一步重新排序。为实现这一目标,我们通过成对损失(pairwise loss)训练重排序器(Re-ranker),优化排序模型,确保最相关的句子被优先排列。」

训练过程
我们使用真实RAG生成的反馈数据为重排序器标注训练数据,因为复杂问题的问答性能高度依赖生成模块的特性。具体流程如下:

  1. 首先,将每个从提取的线索句子集合 $S^c$ 中选取的句子 $s^c_j$ 与查询 $q$ 配对,形成样本对 $(s^c_j, q)$;
  2. 若某个句子 $s^c_j$ 能使下游生成模块正确回答 $q$,则将其标记为正样本 $s_{\text{positive}}$,其余句子视为负样本 $s_{\text{negative}}$。

重排序器的目标是优化以下成对损失函数(Karpukhin et al., 2020),以提升相关性排序效果:

$$
\mathcal{L}{\text{rerank}} = -\log \frac{e^{\text{sim}(q, s{\text{positive}})}}{e^{\text{sim}(q, s_{\text{positive}})} + e^{\text{sim}(q, s_{\text{negative}})}}
$$

其中,$\text{sim}(q, )$ 表示重排序模型计算的查询 $q$ 与句子 $$ 之间的语义相似度。通过最小化该损失函数,模型能有效识别最相关线索并优先排序。

推理过程
给定查询 $q$ 和提取的句子集合 $S^c$,重排序模型计算每个句子 $s^c_j \in S^c$ 与查询 $q$ 的相关性得分。最终的重排序答案线索集合定义为:

$$
S^r = \text{Reranker}(q, S^c)
$$

训练时,我们使用真实的碎布生成的反馈来注释训练数据,以便重新排名。由于通用模块的特性在很大程度上决定了其在复杂问题上的表现。首先,我们将提取的每个线索句子scj ∈ Sc与查询q配对为 (scj,q),其中,使下游生成模块能够生成q的正确答案的句子scj被认为是正样本积极的,而其他句子被视为负样本。2,重新分析程序的目标是最小化以下成对损失函数 (Karpukhin等人,2020) 以提高相关性排名:

一对一(scj,q)这样的组合,生成与否作为正负样本是否有偏差?

2.4 自适应截断器

自适应截断器的目标是根据问题的复杂性和检索文档的内容,捕获最小必要线索,在保留足够信息以生成准确答案的同时,进一步降低推理开销。

训练过程

为确定每个查询 $q$ 的最优线索子集 $S^t$,我们基于前一步骤重排序后的答案线索 $S^r$ 进行数据标注。具体流程如下:

  1. 给定查询 $q$ 及其重排序后的线索集合 $S^r = {s^r_1, \dots, s^r_n}$,目标是找到最小的子集 $S^t$,使得RAG系统的生成模型 $M$ 能基于 $q$ 和 $S^t$ 生成正确答案 $y$。

  2. 定义 $D_k = {s^r_1, \dots, s^r_k}$(其中 $1 \leq k \leq n$),通过检查生成模型的输出 $M(q, D_k)$ 是否与真实答案 $y$ 匹配,评估每个子集 $D_k$ 的性能。正确性条件定义为:

    $$
    \text{Correct}(q, D_k) =
    \begin{cases}
    1, & \text{if } M(q, D_k) = y \
    0, & \text{otherwise}
    \end{cases}
    $$

  3. 由于重排序器无法保证最相关的句子始终排在前面(尤其是复杂问题),我们从最大子集 $D_n$ 向最小子集 $D_1$ 迭代。最优子集 $S^t$ 是能生成正确答案的最小子集:

    $$
    S^t = {s^r_1, \dots, s^r_K}, \quad K = \arg\min_k {k \mid \text{Correct}(q, D_k) = 1}
    $$

  4. 若RAG系统对任何子集均无法生成正确答案,则 $S^t = \emptyset$,表明当前重排序的线索不足以生成正确答案。该方法确保使用最小必要上下文 $S^t$,在信息相关性与计算效率间实现最优平衡。

在模型训练阶段,我们基于数据标注结果微调一个大型语言模型(LLM)作为自适应截断器。截断器的训练目标是预测回答每个查询所需的最小索引 $K$:

$$
\mathcal{L}{\text{truc}} = -\log P\theta(K \mid q, S^r)
$$

推理过程

在推理阶段,给定新查询 $q$ 及其重排序后的线索集合 $S^r$,截断器预测最小索引 $K_g$,并将 $S^r$ 截断为 $S^t = {s^r_1, \dots, s^r_{K_g}}$。这确保了在维持答案准确性的同时高效利用计算资源。最终,RAG的生成模块将查询 $q$ 与过滤后的答案线索 $S^t$ 拼接为提示(参见附录A.3),进行答案推理。

( 1) 线索提取器使用包含答案的所有句子及其基于knn聚类的相似句子作为微调目标,因为我们发现RAG需要更多相关的正文本信息来推理多跳问题的正确答案。因此,微调的提取器可以为复杂的推理提取足够的潜在线索。

(2) 根据生成模块的真实反馈,训练reranker对有效线索进行优先级排序,能够生成正确答案的线索为正样本,其他线索为负样本。

(3) 截断器取最小数量的线索 (截断点)需要RAG生成正确答案作为微调目标。基于预测的点,将重新排序的线索截断,以实现细粒度的噪声过滤。

理想目标:获取所有潜在线索,并细粒度有效过滤掉看似相关实则无关的信息并保留足够的有效上下文

现实偏差与不足:很依赖初始文档,没有对齐潜在线索的过程

  • 算法
    437 引用 • 254 回帖 • 24 关注

相关帖子

回帖

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...