针对领域定制检索器噪声缓解的微调在 RAG 流水线中

发布: (2025年12月12日 GMT+8 18:58)
6 min read
原文: Dev.to

Source: Dev.to

作者(所属机构:IBM Research, India)

  • Padmanabha V. Seshadri
  • Rudra Murthy
  • Arkadeep Acharya
  • Jaydeep Sen
  • Kushagra Bhushan
  • Yatin Nandwani
  • Praveen Jayachandran
  • Ashok Pon Kumar

RAG 流程是支持具备领域特定定制的对话 AI 的首选框架。典型系统包括一组包含领域知识的文档,作为知识来源。终端用户提出查询,触发从文档集合中检索与查询上下文相关的片段;这些片段随后与查询一起作为上下文注入。

为系统提供动力的 LLM 接收片段和查询作为输入,并应利用这些上下文片段生成响应。

然而,检索并非万无一失。检索到的片段可能对检索器看起来相关,却与查询无关。此外,真实答案可能以改写但仍正确的方式表达,这在对话交互中对终端用户是可接受的。为帮助 LLM 处理此类改写,需要在微调时注入答案的多样化表述。

为应对这些挑战,我们开展了消融研究,以确定一种能够缓解检索器噪声的合适微调数据配方,使用 IBM 的 Granite 4 混合模型 (link) 和 BharatGen 的主权模型 (link),针对农业和金融两个真实业务场景。

领域特定数据配方:概览

图 1 展示了数据配方的步骤。管道的输入是一组文档。处理这些文档并生成数据集的过程主要分为两个阶段:

  • 文档转样本(Documents‑to‑samples): 将文档转换为问答(QA)对。
  • 样本增强(Sample augmentation): 先通过生成干扰项(RAFT [3] 方法)再通过答案改写(PA‑RAG [4] 方法)来丰富 QA 对。

Figure 1: Illustration of end‑to‑end domain‑specific data generation

图 1:端到端领域特定数据生成示意图

下面的章节对各步骤进行详细说明。

文档转样本(Documents‑To‑Samples)

我们首先使用 docling 等工具对文档进行切块,然后生成与切块数据关联的 QA 对。这构成了领域定制的初始训练集。该过程遵循合成数据生成(SDG)方法,如图 2 所示。

SDG 流程

  1. 切块与嵌入(Chunking & Embedding) – 将文档拆分为块并存入 VectorDB。

  2. 合成问答生成(Synthetic Q&A Generation) – 使用 LLM 通过 SDGHub [5] 框架创建问答对。采用了以下模型,并混合其输出:

  3. 打分(Scoring) – 基于 LLM 的评分器评估:

    • 可回答性(Answerability): 查询是否能够从文档/段落中得到答案。
    • 忠实度(Faithfulness): 答案是否忠实反映源材料。

    未通过任一标准的样本将被过滤。

Figure 2: Flow of synthetic data generation

图 2:合成数据生成流程图

样本增强(Sample Augmentation)

对合成生成的训练集进一步加入干扰项和改写策略,以提升生成器对检索噪声的鲁棒性。

使用 RAFT [3] 创建干扰项

我们采用 检索增强微调(Retrieval‑augmented fine‑tuning,RAFT) 的后训练配方:

  • 对每个查询,从 VectorDB 检索出前 k 个匹配块。
  • 与金块(gold chunk)不匹配的块被视为干扰项。
  • 根据抽样比例 p,将干扰块加入样本,可选择性地与金块一起出现。

使用 PA‑RAG [4] 进行改写

对每个训练问题,生成多个改写答案(例如每个答案生成三条改写)。使用这些变体进行微调,可帮助 LLM 内化领域知识并容忍答案表述的差异。

微调配置

评估数据集准备

  • 从训练数据集中抽取约 2,000 条评估样本。
  • 每条评估样本至少与一条使用相同金块的训练样本共享金块,确保相关性。
  • 使用块 ID 来强制执行此覆盖约束。

训练配置

微调使用 fms‑hf‑tuning [6] 堆栈:

参数
学习率(Learning rate)1e-5
预热比例(Warm‑up ratio)0.01
梯度累积步数(Gradient accumulation steps)1
训练轮数(Number of epochs)3
优化器(Optimizer)AdamW (β₁=0.9, β₂=0.98, ε=1e-10)

硬件

  • 1 节点 × 8 × NVIDIA A100 80 GB GPU。

模型与基线

  • 农业用例: 微调 Granite 4.0 tiny hybrid [1](7 B 参数,MoE + Mamba + Transformer)。
  • 金融用例: 微调 BharatGen 的 FinanceParam [2](基于 BharatGen Param‑1‑2.9B‑Instruct)。

结果

评估指标

  1. Rouge‑L [7] – 衡量生成答案与金答案之间的最长公共子序列 n‑gram 重叠度;不奖励改写。
  2. LLM‑as‑a‑Judge – 使用 meta‑llama/Llama‑3.3‑70B‑Instruct 模型 (link) 来评估答案质量,包括对改写正确性的判断。
Back to Blog

相关文章

阅读更多 »

我放弃做 FinOps 咨询

几个月前,我开始支持不同的客户实施资源和基础设施优化策略。这是一个复杂的决定……