RAG 是 Retrieval-Augmented Generation 的缩写,通常翻译为检索增强生成。它的核心思想是:让模型在回答前先检索相关资料,再基于资料生成结果。

为什么需要 RAG

大模型本身参数中包含大量知识,但这些知识可能过期,也不一定包含私有资料。RAG 通过外部知识库补充上下文,让回答更贴近指定资料。

它并不是让模型“记住”新知识,而是在每次回答时临时提供相关内容。

基本步骤

一个典型 RAG 流程包括:

  1. 文档切分:把长文档拆成适合检索的小块;
  2. 向量化:把文本转换成向量表示;
  3. 检索:根据问题找出相关片段;
  4. 重排:对候选片段重新排序;
  5. 生成:把问题和片段一起交给模型回答。

其中每一步都会影响最终效果。

切分很重要

文档切得太大,检索结果可能包含太多无关内容;切得太小,又可能丢失上下文。实际使用中经常需要根据文档类型调整 chunk 大小和重叠长度。

检索结果要可引用

好的 RAG 系统不只给答案,还应该能指出答案来自哪些片段。引用来源能帮助用户判断可信度,也方便排查错误。

小结

RAG 的价值在于把生成能力和外部资料结合起来。它不是万能答案机,效果取决于文档质量、切分方式、检索准确性和生成约束。