RAG
RAG 是 Retrieval-Augmented Generation 的缩写,中文通常称为“检索增强生成”。它让模型在回答问题前先查找外部资料,再把相关内容连同问题一起交给大语言模型生成答案。
它解决什么问题
大语言模型只能依赖训练时学到的知识和当前请求中的上下文。面对企业内部资料、刚刚更新的信息或需要给出依据的问题时,单独依赖模型容易遇到知识过时、缺少私有信息和回答依据不足等问题。
RAG 将可维护的外部知识库接入回答流程,使资料更新和模型训练相互独立。文档发生变化时,通常只需要更新知识库,不需要重新训练整个模型。
工作流程
一个典型的 RAG 应用包含四个阶段:
- 准备知识:把文档切分成适合检索的片段,并转换为向量或其他可搜索的索引。
- 检索资料:收到问题后,从知识库中找出与问题最相关的若干片段。
- 组织上下文:将问题、检索结果和回答要求组合成模型能够理解的输入。
- 生成答案:模型基于提供的上下文作答,并可以附上引用或来源。
实际示例
以企业客服为例,公司把产品手册、售后政策和常见问题导入知识库。用户询问“设备超过一年还能免费维修吗”时,系统先检索最新的保修条款,再让模型根据条款回答,而不是让模型凭训练记忆猜测。
这种方式也适用于内部知识助手、合同检索、技术文档问答、研究资料整理和需要引用来源的内容生成。
RAG 与模型微调的区别
RAG 主要解决“回答时需要哪些外部知识”,模型微调主要改变“模型如何理解指令、表达或完成特定任务”。
如果信息经常更新、需要引用原文或属于企业私有资料,通常优先考虑 RAG。如果目标是稳定改变输出格式、语气或特定任务能力,才更适合评估模型微调。两者也可以组合使用。
常见误区
- 检索到资料不等于答案一定正确:检索结果的相关性、上下文组织方式和模型能力都会影响结果。
- 文档越多不一定越好:重复、过时或切分不合理的内容会降低检索质量。
- 向量数据库不是唯一选择:关键词检索、结构化查询和混合检索也可以成为 RAG 的组成部分。
- RAG 不能完全消除模型幻觉:它能提供更可靠的依据,但仍需要引用、评测和业务校验。
在教程中继续学习
相关术语
向量数据库、向量嵌入、大语言模型和上下文窗口都会影响 RAG 系统的检索与生成效果。
