工作原理与流程详解)
检索增强生成Retrieval-Augmented GenerationRAG是一种将信息检索与大语言模型LLM相结合的生成式 AI 架构。其核心目标是在不重新训练模型的前提下为 LLM 注入外部知识缓解知识截止、幻觉以及领域知识不足等问题。本文系统性地阐述 RAG 的工作原理与完整流程。1. RAG 的基本概念大语言模型在预训练阶段已将大量知识内化至参数中但存在明显局限知识存在截止日期无法感知训练后发生的事实。面对垂直领域、私有文档或实时数据时模型缺乏相关背景。容易产生“幻觉”即编造事实性错误内容。RAG 的解决思路是在生成回答之前先从外部知识库中检索与用户问题相关的文档片段将这些片段作为“参考上下文”与原始问题一同送入 LLM从而让模型基于检索到的证据生成答案。这一模式将生成过程解耦为“检索”与“生成”两个环节增强了输出的可控性、可解释性和时效性。2. RAG 的整体架构与工作流程RAG 系统的运行通常分为离线索引构建和在线查询处理两个阶段。以下为端到端的流程示意离线阶段知识库构建 文档源 → 文档解析 → 文本分块 → 嵌入向量化 → 向量索引存储 在线阶段查询与生成 用户问题 → 查询向量化 → 相似度检索 → 获取 Top-K 文档块 → 构造提示词 → LLM 生成回答2.1 离线阶段知识库准备文档加载与解析支持多种格式PDF、HTML、Markdown、Word 等通过文档加载器提取纯文本内容并保留必要的元数据如标题、章节、来源等。文本分块Chunking长文档需切割为适当大小的语义单元称为“块”chunk。分块策略直接影响检索粒度与生成质量固定长度分块按字符或 Token 数分割简单高效但可能割裂语义。基于分隔符的分块按段落、句号等自然边界分割保持语义相对完整。递归分块使用分隔符层次结构段落 → 句子 → 词语逐步分割兼顾完整性与长度控制。语义分块利用模型判断句子间相似度将语义连贯的句子归入同一块但计算成本较高。块大小过大会引入噪声降低检索精度块大小过小则可能丢失上下文使检索结果碎片化。典型块大小在 2561024 Token 之间并常设置块间重叠overlap以保留边界处的连续信息。嵌入向量化使用嵌入模型Embedding Model将每个文本块映射为固定维度的稠密向量。该向量编码了文本的语义信息。常用的嵌入模型包括 OpenAItext-embedding-3系列、Cohere Embed、bge-large、all-MiniLM-L6-v2等。向量索引构建将生成的向量集合存入向量数据库如 Milvus、Qdrant、Pinecone、Weaviate 等并构建近似最近邻ANN索引以支持高效检索。索引算法的选择HNSW、IVF、DiskANN 等需在速度、精度和内存占用之间权衡。2.2 在线阶段检索与增强生成查询处理与向量化用户输入自然语言问题后系统使用与离线阶段相同的嵌入模型将查询文本转换为查询向量。保持嵌入空间一致是确保检索有效性的前提。相似度检索Retrieval查询向量在向量数据库中执行相似度搜索通常采用余弦相似度或内积作为度量。返回与查询向量最相似的 Top-K 个文本块及其相似度分数。K 的取值需要平衡信息充分性与上下文窗口限制典型值在 310 之间。为提高检索质量常引入以下优化查询重写利用 LLM 对原始问题进行扩展或分解以提升召回率。混合检索结合稀疏检索如 BM25的关键词匹配能力对向量检索与关键词检索的结果进行融合排序。重排序Re-ranking使用更精准但计算成本更高的排序模型如 Cohere Rerank、bge-reranker对召回结果进行二次排序筛选出最相关的块。上下文构造与 Prompt 组装将检索到的 Top-K 文档块内容按一定格式拼接与原始用户问题组合成提示词Prompt。典型的 Prompt 模板如下请根据以下参考信息回答问题。如果参考信息不足以回答问题请明确说明。 参考信息 {context} 问题{question} 回答其中{context}为拼接后的文档块可附带来源标记以提高可信度。LLM 生成回答组装完成的 Prompt 送入大语言模型如 GPT-4、Claude、开源 Llama 3 等模型在给定上下文的条件下生成最终答案。此时模型的行为从“完全依赖内部知识”转变为“基于检索证据的阅读理解与总结”。2.3 可选增强Agentic RAG 与迭代检索在基础 RAG 之上更复杂的架构允许模型主动决定何时检索、如何检索甚至进行多步推理与工具调用。例如Self-RAG模型在生成过程中自我评判是否需要检索并反思生成内容的相关性与事实性。ReAct交替进行推理与行动模型可多次调用检索工具并整合逐步获取的信息。Adaptive RAG根据问题复杂度动态调整检索策略。这些模式将 RAG 从固定流程扩展为灵活的 Agent 行为但仍以基础的检索-生成循环为根基。3. 工作流程中的关键要素3.1 嵌入模型的选择嵌入模型决定了语义空间的分布质量。不同模型对同一文本产生的向量差异显著替换模型时需重新评估相似度阈值、检索性能甚至重新构建索引。3.2 向量数据库与索引类型向量数据库不仅存储向量还管理元数据过滤、增量更新和分布式扩展。索引类型的选择直接影响检索延迟和召回率。例如HNSW 在内存中实现高速搜索但占用资源大IVF 配合量化技术可压缩存储适合超大规模数据集。3.3 相似度度量与阈值余弦相似度是主流度量但值的绝对值因模型而异。设定合理的相似度阈值可用于过滤不相关结果避免引入噪声。工程实践中常结合归一化向量使用内积代替余弦计算以提升效率。3.4 上下文窗口管理大语言模型的上下文窗口虽然不断扩大但有效利用仍至关重要。需在 Prompt 中对检索到的文档块进行排序如按相似度降序、截断并避免因过多无关内容挤占有效空间。必要时可采用摘要压缩或对长文档进行层级检索如先检索段落再检索具体句子。4. RAG 相对于纯生成模型的优势知识实时性外部知识库可随时更新无需重新训练模型。可解释性生成的答案可追溯至具体来源文档便于验证。领域适配只需构建领域知识库即可让通用模型具备专业能力降低微调成本。幻觉缓解当答案被约束在检索到的证据范围内时模型凭空捏造的概率显著降低。5. 总结RAG 通过将检索系统与生成模型深度结合构建了一套灵活、可控、可扩展的知识问答架构。其核心流程——文档解析、分块、向量化、相似度检索、上下文组装与 LLM 生成——构成了现代 AI 应用中知识检索系统的标准范式。理解这一流程及其每个环节的设计考量是构建高质量 RAG 系统的前提。在此基础上开发者可根据业务需求引入混合检索、重排序、查询改写以及 Agent 化策略持续优化性能与准确性。