一、RAG 简介
大语言模型(LLM)相较于传统的语言模型具备了强大的自然语言理解与生成能力,但在实际企业级应用中,仍面临准确性、知识更新速度及答案透明度等核心问题。典型的幻觉现象(Hallucination)导致模型可能编造事实,而预训练数据的静态性使得模型难以掌握最新的行业动态或私有数据。
检索增强生成(Retrieval-Augmented Generation, RAG)因此被视为大模型应用开发的一种关键新范式。其核心思想是在利用大语言模型回答问题之前,先从外部知识库中检索相关信息,然后将检索到的内容与用户查询结合,构建新的 Prompt,让模型基于这些真实依据进行总结归纳。这种方式确保了回答有据可依,有效降低了幻觉风险。
尽管大模型发展迅速,但单纯依赖模型本身仍存在以下局限:
- 准确性:LLM 本质是自回归概率模型,基于前一个词推测下一个词,这种机制不可避免地会产生错误信息。
- 知识更新速度:LLM 的训练数据是固定的,导致模型知识滞后,无法实时反映最新变化。
- 答案透明度:LLM 生成的内容往往缺乏明确的信息来源引用,影响内容的可信度和可审计性。
- 领域专业知识欠缺:通用预训练数据分布均匀,缺乏特定垂直领域的深度数据,处理专业问题时效果不佳。
二、RAG 与微调效果对比
在解决上述问题时,通常有两种主要路径:RAG 和模型微调(Fine-tuning)。两者各有优劣,适用于不同场景。
| 性能维度 | RAG (检索增强生成) | 微调 (Fine-tuning) |
|---|---|---|
| 知识更新速度 | 直接更新知识库内容即可,无需重新训练,成本极低 | 需要重新训练以保持知识和数据更新,成本高且周期长 |
| 专业性 | 取决于知识库中的数据质量,无明显专业性倾向 | 针对特定领域数据微调后,可具备较强的领域专业性 |
| 可解释性 | 可以追溯到具体的数据来源文档,具有较好的可解释性 | 可解释性相对较低,黑盒性质较强,回答质量依赖预训练数据 |
| 计算资源 | 需要额外的向量数据库和检索服务资源,推理时增加检索开销 | 对计算资源要求较高,尤其是全量微调,显存消耗大 |
| 推理延迟 | 增加了输入向量化、检索步骤的耗时,整体延迟略高 | 普通 LLM 推理耗时,无额外检索步骤,响应较快 |
| 降低幻觉 | 通过检索到的真实信息约束生成,显著降低幻觉概率 | 模型学习特定领域数据有助于减少幻觉,但对未见输入仍可能产生幻觉 |
三、RAG 的工作流程
虽然不同学者对 RAG 的定义略有差异,但公认一般包含索引构建、检索和生成三个核心阶段。
1. 索引构建阶段
这是 RAG 的基础。首先需要将非结构化的文档数据进行处理:
- 分块(Chunking):将长文档切割成适合模型上下文窗口的小片段。策略包括固定字符数分割、按语义段落分割或递归分割。
- 嵌入(Embedding):使用向量模型将文本块转换为高维向量表示。常用的模型包括 BERT、Sentence Transformers 等。


