RAG基础设施:构建生产级检索增强生成系统
更新于2025年12月8日
2025年12月更新: RAG采用率加速增长,成为企业LLM第一大用例。GraphRAG和智能体RAG架构在复杂推理场景中获得广泛应用。向量数据库市场整合,Pinecone、Weaviate、Milvus和Qdrant占据主导地位。Voyage-3-large在嵌入性能上超越OpenAI和Cohere 9-20%。语义分块相比固定大小分块,召回率提升高达9%。生产挑战正从原型阶段转向规模化——嵌入漂移、多租户以及亚50毫秒延迟需求正在推动基础设施投资。
Harvey AI为97%的Am Law 100律师事务所提供服务,利用检索增强生成技术将法律研究锚定在真实案例法上,而非生成虚假引用。¹ Anthropic、OpenAI和Google都推荐RAG作为将大型语言模型连接到企业专有数据的首选技术。然而,从可运行的RAG原型到生产级基础设施之间存在数月的工程差距。组织发现,向量数据库、嵌入管道、分块策略和检索优化各自都面临独特的基础设施挑战,这些挑战在规模化时会叠加放大。构建能够处理数百万文档、服务数千并发用户并保持亚秒级延迟的RAG系统,需要在概念验证阶段很少有团队能预见到的架构决策。
每个生产级RAG系统必需的核心架构
RAG系统结合了两项基本能力:从知识库中检索相关上下文,以及生成基于该上下文的响应。该架构分为五个独立组件,每个组件都有特定的基础设施要求。
文档摄取管道处理从原始文档到可搜索嵌入的流程。生产系统通过特定格式的解析器处理PDF、HTML、Word文档、Slack消息和数据库记录。摄取管道必须跟踪文档版本、处理增量更新,并维护用于过滤的元数据。典型的企业部署在初始回填期间处理10万到1000万份文档,每日增量加载1000到5万份新文档。²
分块系统将文档划分为便于检索的片段。固定大小分块适用于新闻文章等同质内容,而语义分块则为复杂文档保留语义边界。³ 大多数生产系统使用400-512个token的递归分块,重叠率为10-20%,在基准测试中达到85-90%的召回率。⁴ 分块策略的选择具有半永久性——之后更改方法需要重新嵌入整个语料库。
嵌入基础设施将文本块转换为稠密向量表示。组织可以选择托管API(OpenAI、Cohere、Voyage AI)或自托管模型。嵌入生成在RAG系统中产生最可变的成本结构,根据模型选择,价格从每百万token 0.02美元到0.18美元不等。⁵ 批处理在GPU节点间并行化嵌入生成以完成初始加载,而流式管道处理增量更新。
向量数据库使用近似最近邻算法存储和检索嵌入。四个主流选项——Pinecone、Weaviate、Milvus和Qdrant——服务于不同的运营场景。Pinecone提供零运维托管服务,Weaviate提供具有知识图谱功能的混合搜索,Milvus处理十亿级部署,Qdrant擅长复杂元数据过滤。⁶ 存储需求随嵌入维度和文档数量而增长;一个包含1000万文档、1024维嵌入的语料库大约需要40GB的向量存储。
检索和生成编排将各组件整合在一起,通常使用LangChain、LlamaIndex等框架或自定义实现。编排处理查询处理、检索、重排序、提示构建和响应生成。生产系统在每个阶段都实现缓存层、回退策略和可观测性监控。
向量数据库选择决定运维复杂度
到2025年12月,向量数据库市场整合为四大主要玩家,各自服务于不同的运营场景和用例。
Pinecone在托管服务领域占据主导地位,完全通过API处理基础设施。团队可以在数小时而非数周内部署生产系统,自动扩展、多区域复制和SOC 2合规性均已包含。Pinecone支持每个向量最多40KB的元数据,无需外部系统即可实现丰富的过滤。权衡之处在于较高的每查询成本和对基础设施优化的控制减少。运行可预测工作负载的组织通常发现Pinecone具有成本效益;而那些工作负载变化大或需要极端规模的组织通常会迁移到其他方案。⁷
Weaviate通过Weaviate Cloud在开源灵活性和托管便利性之间架起桥梁。该系统将向量搜索与知识图谱功能相结合,支持在按结构化数据过滤的同时按语义相似度排序的混合查询。Weaviate的模块化架构同时支持多个嵌入模型,对于尝试不同方法的组织很有用。Docker和Kubernetes部署需要适度的运维专业知识,使Weaviate在具有一定基础设施能力的团队中很受欢迎。⁸
Milvus(及其托管版本Zilliz Cloud)以性能为首要设计目标,针对十亿级部署。Milvus在原始延迟基准测试中领先,通过GPU加速和先进的索引算法在十亿向量索引上实现亚10毫秒的查询时间。⁹ 该架构分离计算和存储,支持每层独立扩展。运营Milvus需要丰富的数据工程专业知识——没有专职基础设施人员的团队通常在集群管理和性能调优方面会遇到困难。
Qdrant因复杂过滤需求而快速获得采用。Qdrant采用Rust构建,在搜索算法内部直接执行负载过滤,而非作为后处理,为过滤查询提供卓越性能。¹⁰ 紧凑的资源占用使Qdrant在成本敏感型部署中很受欢迎,而其简洁的API设计加快了开发速度。自托管部署在适度的基础设施上运行顺畅,但企业功能需要商业许可。
选择标准应优先考虑运维能力。需要零运维的团队选择Pinecone或Weaviate Cloud。对有状态Kubernetes工作负载感到舒适的具有SRE能力的组织,通过自托管Milvus、Qdrant或Weaviate获得成本节省和控制权。合规性要求有时会排除某些选项——Pinecone和Weaviate Cloud提供SOC 2和HIPAA合规性,而本地部署要求则需要自托管解决方案。
嵌入模型选择影响成本和检索质量
嵌入模型将文本转换为向量表示,模型选择直接影响检索准确性。2025年12月的格局提供了三个领先的商业选项以及几个强大的开源替代方案。
Voyage AI在MTEB基准测试中领先,voyage-3-large在评估领域中的表现超越OpenAI text-embedding-3-large 9.74%,超越Cohere embed-v3-english 20.71%。¹¹ Voyage AI支持32K token的上下文窗口(相比OpenAI的8K和旧版Cohere模型的512),无需分块即可处理更长的文档。1024维嵌入每百万token成本0.06美元——比OpenAI便宜2.2倍,比Cohere便宜1.6倍——同时所需的向量存储比OpenAI的3072维嵌入少3倍。
OpenAI text-embedding-3-large为生产部署提供最经过实战检验的选项。该模型支持从256到3072的可配置输出维度,实现成本-存储权衡。每百万token 0.13美元的价格使OpenAI处于定价频谱的中间位置,同时提供可靠的正常运行时间和详尽的文档。已经使用OpenAI推理API的组织通常为了运营简便性而统一使用其嵌入。
Cohere embed-v4截至2025年11月达到最高的MTEB分数(65.2),专门针对搜索和检索优化,而非通用嵌入。¹² Cohere嵌入与Cohere的重排序器自然配对,用于两阶段检索管道。该模型在多语言应用中表现出色,支持超过100种语言,具有强大的跨语言检索能力。
开源替代方案包括BGE、E5和GTE模型,支持大规模自托管嵌入。处理数十亿文档的组织通常在内部GPU基础设施上部署这些模型,以消除每token成本。自托管需要管理模型更新、容量规划和推理优化——这些权衡只有在相当规模时才有意义。
嵌入模型决策会级联影响整个系统。之后更换模型需要重新嵌入完整的文档语料库,这个过程会消耗时间、计算资源,并可能导致服务中断。生产系统应根据特定领域的基准测试来评估模型,而非依赖通用的MTEB分数。在通用知识方面表现出色的模型在法律、医疗或金融文本上可能表现不佳。
分块策略决定检索精度
文档分块创建检索系统搜索的原子单元。分块策略选择是最具影响力的基础设施决策之一,最佳和最差方法之间可能存在9%的召回率差异。¹³
固定大小分块按预定的token数量分割文档,不考虑内容结构。这种方法适用于同质语料库——新闻文章、产品描述或标准化文档。实现复杂度最低,使固定大小分块成为原型的自然起点。大多数生产系统使用400-512 token的块,重叠50-100 token,平衡检索粒度和上下文保留。
语义分块在有意义的边界处分割文档——段落分隔、章节标题或主题转换——在每个块内保留连贯的思想。实现使用句子嵌入来检测语义边界,当相邻句子之间的相似度低于阈值时进行分割。对于文档、FAQ和对话数据等叙事内容,语义分块可将召回率提升高达9%。¹⁴ 这种方法在摄取期间需要更多计算资源,并需要仔细调整相似度阈值。
递归分块应用分层分割规则,首先尝试大分割(章节分隔),然后逐步缩小(段落分隔、句子分隔),直到块达到目标大小。LangChain的RecursiveCharacterTextSplitter实现了这种模式,在不同文档类型上实现了强劲性能,无需按语料库调优。递归分块平衡了实现简单性和检索质量,使其成为新系统的默认推荐。
页面级分块源于NVIDIA的基准测试,显示在不同文档类型中准确率为0.648,方差最低。¹⁵ 对于报告和论文等结构化文档,将每页视为一个块可保留空间关系和交叉引用。页面级方法对于缺乏清晰页面边界的文档(HTML、聊天记录、代码)效果不佳,但对于以PDF为主的语料库表现出色。
层次分块构建具有嵌套粒度的多级索引——章节、子章节、段落和句子级别。检索首先识别相关章节,然后深入到具体的