针对领域定制检索器噪声缓解的微调在 RAG 流水线中
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 对。
图 1:端到端领域特定数据生成示意图
下面的章节对各步骤进行详细说明。
文档转样本(Documents‑To‑Samples)
我们首先使用 docling 等工具对文档进行切块,然后生成与切块数据关联的 QA 对。这构成了领域定制的初始训练集。该过程遵循合成数据生成(SDG)方法,如图 2 所示。
SDG 流程
-
切块与嵌入(Chunking & Embedding) – 将文档拆分为块并存入 VectorDB。
-
合成问答生成(Synthetic Q&A Generation) – 使用 LLM 通过 SDGHub [5] 框架创建问答对。采用了以下模型,并混合其输出:
-
打分(Scoring) – 基于 LLM 的评分器评估:
- 可回答性(Answerability): 查询是否能够从文档/段落中得到答案。
- 忠实度(Faithfulness): 答案是否忠实反映源材料。
未通过任一标准的样本将被过滤。
图 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)。
结果
评估指标
- Rouge‑L [7] – 衡量生成答案与金答案之间的最长公共子序列 n‑gram 重叠度;不奖励改写。
- LLM‑as‑a‑Judge – 使用 meta‑llama/Llama‑3.3‑70B‑Instruct 模型 (link) 来评估答案质量,包括对改写正确性的判断。

