DRAG: Distilling RAG for SLMs from LLMs to Transfer Knowledge and Mitigate Hallucination¶
会议: ACL 2025
arXiv: 2506.01954
代码: https://github.com/VILA-Lab/DRAG
领域: 模型压缩
关键词: RAG蒸馏, 知识图谱, 小语言模型, 幻觉缓解, 证据提取
一句话总结¶
DRAG 提出了一种从大模型向小模型蒸馏 RAG 能力的框架:用大模型(如 GPT-4o)为给定问题生成证据和知识图谱三元组,经排序过滤后作为结构化上下文输入给小模型(2B-9B),无需微调即可将小模型在 ARC-C 上提升高达 27.7%,同时显著减少幻觉。
研究背景与动机¶
- 领域现状:RAG 通过检索外部知识增强 LLM 生成的事实准确性,已被广泛应用。但现有 RAG 系统主要为大模型设计,维护大规模知识库成本高昂,在资源受限环境下的小模型上难以部署。
- 现有痛点:(a) 小模型直接使用 RAG 效果不佳,因其理解和整合检索文档的能力有限;(b) 传统 RAG 的检索结果可能包含噪声和不相关信息,小模型更容易被干扰产生幻觉;(c) 现有蒸馏方法(如 LLMQuoter)需要微调,效率低下。
- 核心矛盾:小模型的上下文窗口和理解能力有限,无法直接处理大量检索文档,但又需要外部知识来减少幻觉。
- 本文要解决什么? 如何将大模型的 RAG 能力高效蒸馏给小模型,且无需微调。
- 切入角度:不让大模型直接给答案,而是让大模型生成结构化的"证据"和"知识图谱",作为小模型推理时的辅助上下文。大模型当"检索器和知识提取器",小模型当"推理器"。
- 核心idea一句话:用大模型生成并排序证据 + 构建知识图谱三元组,将蒸馏后的结构化知识注入小模型的提示中,实现免微调的 RAG 能力迁移。
方法详解¶
整体框架¶
四阶段管线:给定问题 q → (1) 大模型生成 N 条证据 → (2) 通过语义相似度 + LLM 排序筛选证据 → (3) 大模型从筛选后的证据中提取知识图谱三元组 (entity, entity, relation) → (4) 将排名靠前的证据和/或图谱三元组拼接到 prompt 中,输入小模型生成最终答案。
关键设计¶
- 证据生成 (Evidence Generation):
- 做什么:用大模型为每个问题生成 N 条文本证据
- 核心思路:设计 prompt 让 \(\mathcal{M}_{large}\) 生成 N 条与问题相关的事实片段 \(\mathcal{D} = \{d_1, ..., d_N\}\)。关键洞察是"训练良好的 LLM 是比传统检索器更强的知识源",因为它已内化了大量世界知识
-
设计动机:避免维护外部文档索引,利用大模型的内部知识作为"检索"来源,对小模型更友好
-
证据排序过滤 (RAG Evidence Ranking):
- 做什么:用双重评分机制筛选最相关的证据
- 核心思路:对每条证据计算综合分 \(s_i = \text{cos}(\mathbf{e}_i, \mathbf{q}) + \text{rank}_{LLM}(d_i)\),前者是 sentence-transformer 编码后的余弦相似度,后者是大模型给出的内在相关性排名。保留 top-K 证据
-
设计动机:单独的语义相似度可能不够,LLM 排序捕捉更深层的上下文相关性
-
知识图谱生成 (Graph RAG Generation):
- 做什么:将证据转化为结构化的实体关系三元组
- 核心思路:提示大模型从每条筛选后的证据中提取 \((a, b, r)\) 三元组,构建知识图谱 \(\mathcal{G} = (\mathcal{V}, \mathcal{E})\)。还引入了图聚合策略,将相同实体的配对合并成统一表示
-
设计动机:长证据文本对小模型计算负担大,图谱表示虽有信息损失但更精简高效,保留了关键的结构化关系
-
隐私保护机制:
- 做什么:本地小模型先改写查询去除隐私信息,再发送给云端大模型
- 核心思路:小模型改写问题(简单任务)→ 云端大模型生成证据和图谱 → 本地小模型利用结构化知识生成答案
- 设计动机:避免将用户原始隐私数据上传到云端
损失函数 / 训练策略¶
DRAG 是完全免微调的框架(training-free),仅通过 prompt engineering 将大模型蒸馏的知识注入小模型的推理过程中。
实验关键数据¶
主实验¶
Teacher: GPT-4o;Student: 多种 2B-9B 小模型;基准:MedMCQA, MMLU, ARC-C
| 模型 | 方法 | MedMCQA Acc | MMLU Acc | ARC-C Acc |
|---|---|---|---|---|
| Llama-3.2-3B | MiniRAG | 52.7 | 69.1 | 65.3 |
| Llama-3.2-3B | DRAG | 73.6 (+20.9) | 74.4 (+5.3) | 93.0 (+27.7) |
| Gemma-2-2B | MiniRAG | 48.5 | 57.3 | 68.6 |
| Gemma-2-2B | DRAG | 72.4 (+23.9) | 71.2 (+13.9) | 91.5 (+22.9) |
| Phi-3.5-mini | MiniRAG | 61.1 | 72.7 | 82.7 |
| Phi-3.5-mini | DRAG | 74.4 (+13.3) | 77.8 (+5.1) | 94.1 (+11.4) |
| Llama-3.1-8B | SimRAG | - | 67.5 | 81.4 |
| Llama-3.1-8B | DRAG | 74.2 | 75.7 (+8.2) | 93.1 (+11.7) |
消融实验¶
证据数量 K 对 Phi-3.5-mini 在 ARC-C 上的影响:
| 配置 | K=5 | K=10 | K=15 | K=20 |
|---|---|---|---|---|
| Graph Only | 91.69 | 92.76 | 93.48 | 93.30 |
| Evidence Only | 92.31 | 93.74 | 94.01 | 94.10 |
| Graph + Evidence | 92.40 | 93.12 | 93.74 | 93.74 |
| 原始模型 (无RAG) | 78.55 | - | - | - |
Teacher 模型对比(Student: Qwen2.5-3B,ARC-C):
| Teacher | Acc |
|---|---|
| GPT-4o | 93.03 |
| Claude 3.5 Sonnet | 91.60 |
| DeepSeek V3 | 89.97 |
| Llama 3.3 70B | 87.23 |
| Gemini 1.5 Flash | 84.95 |
关键发现¶
- ~15 条证据是最优平衡点:太少知识不足,太多引入噪声
- 仅用证据优于图谱 + 证据组合:组合方案引入冗余,增加推理开销但无精度提升
- 更强的大模型 ≠ 更好的蒸馏效果:GPT-4o 最佳,但 Gemini 1.5 Flash 最差,说明证据的结构化质量比模型能力更重要
- 图谱虽有信息损失但足够有效:纯图谱模式在 ARC-C 上也能达到 93.48%,接近纯证据的 94.01%
亮点与洞察¶
- 免微调的 RAG 蒸馏:不需要对小模型做任何训练,只通过 prompt 注入结构化知识即可大幅提升性能。这种思路可以迁移到任何需要小模型部署的场景
- LLM 作为检索器:用大模型的内部知识代替传统外部检索器,避免了维护文档索引的成本。在小模型场景下,大模型生成的抽象、清洁的证据比原始检索文档更有效
- 隐私保护框架的额外价值:本地改写查询 → 云端大模型生成知识 → 本地生成答案的模式,天然适合需要隐私保护的企业部署场景
局限性 / 可改进方向¶
- 依赖大模型 API(如 GPT-4o),有成本和延迟问题,不适合实时应用
- 证据质量完全取决于大模型的知识,如果大模型本身知识有误则会传播错误
- 未与更先进的 RAG 方法(如 Active RAG with dynamic retrieval、GraphRAG 的 community-based approach)对比
- 图谱聚合策略较简单,更复杂的图推理可能进一步提升效果
- 零样本评估设置下的隐私保护基准较小,实际部署需更大规模验证
相关工作与启发¶
- vs MiniRAG (Fan et al., 2025): MiniRAG 也针对小模型 RAG,但直接在小模型上做检索。DRAG 通过大模型蒸馏结构化知识给小模型,效果大幅领先(+27.7% on ARC-C)
- vs SimRAG (Xu et al., 2024): SimRAG 基于 8B 模型自检索,DRAG 用大模型蒸馏后在相同 8B 模型上提升 11.7%
- vs Self-RAG: Self-RAG 训练模型自我判断何时检索,DRAG 无需训练直接通过 prompt 蒸馏
评分¶
- 新颖性: ⭐⭐⭐ 框架设计合理但各组件较标准(LLM 生成证据 + 排序 + 图谱提取),核心创新在于组合方式
- 实验充分度: ⭐⭐⭐⭐ 多个基准、多种 teacher/student 组合、丰富的消融实验
- 写作质量: ⭐⭐⭐⭐ 框架描述清晰,流程图直观
- 价值: ⭐⭐⭐⭐ 免微调的 RAG 蒸馏在实际部署中有很强的实用性