ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

【从零到一学 RAG】检索增强生成全流程精讲:step/agentic/hybrid 三种流程+向量库+检索评估全覆盖!

【从零到一学 RAG】检索增强生成全流程精讲:step/agentic/hybrid 三种流程+向量库+检索评估全覆盖! 【从零到一学 RAG】检索增强生成全流程精讲step/agentic/hybrid 三种流程向量库检索评估全覆盖1. 引言为什么需要 RAG大语言模型LLM虽然能力强大但存在知识截止、幻觉、无法访问私有数据等固有局限。检索增强生成Retrieval-Augmented GenerationRAG通过引入外部知识库在生成前先检索相关内容再让模型基于检索结果作答从而显著提升回答的准确性、时效性和可解释性。本文将从零到一系统讲解 RAG 的完整流程覆盖 step、agentic、hybrid 三种主流流程范式以及向量库的构建与检索评估方法帮助读者建立从原理到实战的完整认知。2. RAG 基础概念在深入流程之前先厘清几个核心概念检索Retrieval从知识库中找出与用户问题最相关的文本片段。增强Augmentation将检索到的上下文与用户问题拼接构造更完整的提示词。生成GenerationLLM 基于增强后的提示词生成最终回答。RAG 的价值在于它把模型的「记忆」从参数内扩展到外部知识库既降低了幻觉风险又让知识可以随时更新无需重新训练模型。3. 三种 RAG 流程范式根据检索与生成的交互方式RAG 流程可以划分为 step、agentic、hybrid 三种范式各有适用场景。3.1 Step RAG单轮检索Step RAG 是最经典的流程用户提问后系统执行一次检索将结果拼入提示词再由 LLM 生成回答。整个过程是线性的、确定性的适合问题明确、知识库结构清晰的场景。其优点是实现简单、延迟低、成本可控缺点是面对复杂多跳问题时单次检索往往无法覆盖全部所需信息。3.2 Agentic RAG智能体检索Agentic RAG 引入智能体Agent机制让模型自主决定「何时检索、检索什么、是否继续检索」。模型可以多次调用检索工具根据中间结果调整检索策略甚至改写查询词。这种范式适合复杂推理、多跳问答、需要动态规划的场景灵活性更高但代价是延迟和 token 消耗增加且对模型的工具调用能力要求较高。3.3 Hybrid RAG混合检索Hybrid RAG 将多种检索方式融合常见组合是「关键词检索BM25 向量检索Embedding」再通过 RRFReciprocal Rank Fusion等算法融合排序结果。关键词检索擅长精确匹配专有名词、编号向量检索擅长语义相似匹配二者互补能显著提升召回质量。Hybrid 范式在工业界应用最广是兼顾效果与稳定性的主流选择。4. 向量库的构建向量库是 RAG 系统的核心基础设施负责存储文本的向量表示并支持相似度检索。构建一个可用的向量库通常包含以下步骤4.1 文档切分原始文档需要先切分为合适的块Chunk。切分粒度直接影响检索效果块太大则噪声多、精度低块太小则上下文不完整、召回率低。常见策略包括按固定长度、按段落、按语义边界切分并设置合理的重叠Overlap以保留上下文连续性。4.2 向量化将每个文本块通过 Embedding 模型转换为向量。常用的 Embedding 模型包括 OpenAI 的 text-embedding-3、BGE、M3E 等。选择模型时需考虑语言支持、维度、推理成本等因素。4.3 索引与存储向量需要建立索引以支持高效检索。主流向量数据库包括 Milvus、Qdrant、Weaviate、Chroma 等也支持在 PostgreSQL 中通过 pgvector 扩展实现。索引算法常用 HNSW、IVF 等近似最近邻ANN方案在召回速度与精度之间取得平衡。5. 检索评估方法检索质量直接决定 RAG 的上限因此必须建立科学的评估体系。评估通常分为「检索评估」和「生成评估」两个层面。5.1 检索评估指标指标含义适用场景RecallK前 K 个结果中命中的相关文档比例衡量召回能力PrecisionK前 K 个结果中相关文档占比衡量结果纯净度MRR第一个相关结果的倒数排名单答案场景NDCGK考虑排序位置的归一化折损累计增益多相关文档排序5.2 生成评估指标生成质量通常结合自动指标与人工评估忠实度Faithfulness回答是否严格基于检索到的上下文不引入幻觉。答案相关性Answer Relevance回答是否切题、完整。上下文相关性Context Relevance检索到的上下文是否与问题相关。业界常用 RAGAS、TruLens 等框架自动化评估这些维度也可结合人工标注构建评测集。6. 完整流程实战示例下面以一个基于 Python 的简化示例串联「文档切分 → 向量化 → 检索 → 生成」的完整流程。from langchain_community.vectorstores import Chroma from langchain_community.embeddings import OpenAIEmbeddings from langchain.text_splitter import RecursiveCharacterTextSplitter from langchain.chains import RetrievalQA from langchain_openai import ChatOpenAI 1. 文档切分 text 你的知识库文档内容…… splitter RecursiveCharacterTextSplitter(chunk_size500, chunk_overlap50) chunks splitter.split_text(text) 2. 向量化并入库 embeddings OpenAIEmbeddings() vectorstore Chroma.from_texts(chunks, embeddings) 3. 构建检索问答链 qa RetrievalQA.from_chain_type( llmChatOpenAI(modelgpt-4o-mini), retrievervectorstore.as_retriever(search_kwargs{k: 3}) ) 4. 生成回答 answer qa.invoke(你的问题) print(answer)实际生产系统中还需考虑检索重排Rerank、多路召回融合、缓存、监控告警等工程化能力。7. 常见问题与优化方向检索不到相关内容检查切分粒度、Embedding 模型选择、查询改写策略。回答幻觉严重增加检索结果约束引入忠实度校验必要时降低模型温度。延迟过高优化索引结构、减少检索轮次、引入缓存。知识更新不及时建立增量入库与文档版本管理机制。8. 总结RAG 是连接大模型与外部知识的关键桥梁。本文从基础概念出发梳理了 step、agentic、hybrid 三种流程范式的特点与适用场景讲解了向量库的构建要点并给出了检索与生成的评估方法。掌握这些内容后读者可以根据业务需求选择合适的流程范式搭建并持续优化自己的 RAG 系统。
返回列表