Retrieval-Augmented Generation 已成为企业 AI 的基础设施。本教程以首席科学家视角,系统解析分块策略、混合检索、重排序、生成优化、RAGAS 评估,以及 GraphRAG / Agentic RAG 等前沿范式,帮助你构建生产可用的企业知识库系统。
LLM 的三大致命局限,以及 RAG、Fine-tuning、Long Context 的三角抉择
RAG = 让 LLM 在回答前先去"查资料"。大模型的权重里存的是训练截止前的世界知识,但企业需要 AI 回答的问题 90% 涉及内部私有知识(合同、产品文档、运营数据)或实时动态知识(今天的股价、昨天的事故报告)。RAG 用精准检索替代模糊记忆,让 LLM 成为有扎实"查阅"能力的分析师,而非靠记忆说话的通才。
| 维度 | 🔍 RAG | 🎯 Fine-tuning | 📖 Long Context (1M+) |
|---|---|---|---|
| 知识更新成本 | ✓ 实时更新,重新索引即可 | ✗ 需重新训练,成本高 | ◑ 每次需塞入全量知识 |
| 私有知识保护 | ✓ 知识在数据库,不进权重 | ✗ 知识进入模型权重,难管控 | ✓ 运行时注入,不留痕 |
| 领域风格适应 | ✗ 回答风格取决于基础模型 | ✓ 可深度适配行业术语/格式 | ✗ 无法改变模型风格 |
| 回答可溯源 | ✓ 每句话可追回源文档 | ✗ 来自权重,无法溯源 | ✓ 可指向上下文位置 |
| 推理延迟 | ◑ 检索 + 生成,约 2-5 秒 | ✓ 直接生成,最快 | ✗ 长 Context 推理慢 + 贵 |
| 启动成本 | ✓ 低,数周内可上线 | ✗ 高,需要标注数据+GPU | ✓ 低,API 即用 |
| 适用场景 | 企业知识库、客服、合规 | 固定输出格式、专业代码生成 | 长文档分析、一次性任务 |
知识动态 + 需要溯源 + 有隐私要求 → 优先 RAG。 只有当你的需求是"让模型说话像个法律专家"(风格/格式)而非"让模型知道你的法律文档"(知识),才考虑 Fine-tuning。Long Context 是 RAG 的补充而非替代——用于单次需要处理超大文档的场景。70% 的企业 AI 需求,RAG 是第一选择。
从文档入库到答案生成:完整的离线索引流水线与在线查询流水线
离线流水线决定知识库的质量天花板——垃圾进垃圾出,分块和向量化做不好,检索层无论多精巧都无济于事。在线流水线决定用户体验——延迟、相关性、可信度都在这里体现。两条流水线必须独立监控、独立优化,索引质量和查询质量的 A/B 实验要完全分开跑。
Chunk Size 的黄金法则、六种分块模式、Metadata 策略——最被低估的工程环节
90% 的 RAG 质量问题根源在分块策略。Chunk 太小 → 缺乏语义完整性,检索到的片段没有足够上下文;Chunk 太大 → 噪声多、精度差、超出 Context 窗口。没有放之四海皆准的最优 Chunk Size——它取决于你的文档类型、Embedding 模型的最大长度、以及你的查询通常有多精确。
| 技术文档 / API Doc | 256–512 tokens |
| 法律合同 / 合规文件 | 512–1024 tokens |
| 新闻 / 文章 | 200–400 tokens |
| FAQ / 知识库条目 | 100–256 tokens |
| 学术论文 | 512–1024 tokens |
| 代码文件 | 按函数/类边界 |
从单一向量搜索到混合检索 + 重排序:企业级精准召回体系
生成层的质量上限由检索层决定——如果检索回来的文档本身就是错的或不相关的,再强的 LLM 也无能为力。混合检索 + 重排序是 2025-2026 年企业 RAG 的黄金标准:Dense 检索捕捉语义,Sparse 检索保留精确关键词,Reranker 做最终精排。三层叠加,召回率和精确率双优化。
企业级考量:规模、托管、混合查询、安全隔离
数据量 <1000万 + 不想运维 → Pinecone Serverless 或 pgvector(已有 PG)
需要混合检索(BM25+Dense)且要自控 → Weaviate 自托管
亿级以上 + 高并发写入 → Milvus / Zilliz
需要和业务数据 JOIN 查询 → pgvector(SQL 联表优先)
实时推荐 + 毫秒延迟 → Redis Vector
关键考量:Metadata 过滤能力(用户权限隔离必须)和多租户支持(B2B SaaS
场景)是企业选型两个非谈判项。
Prompt 工程、Context 压缩、幻觉抑制、引用溯源——让 LLM 忠实于检索结果
你希望 LLM 仅基于检索到的文档回答,但 LLM 的训练让它有强烈冲动用自身知识"补全"答案——这就是 RAG 中的幻觉来源。生成层优化的本质是:通过 Prompt 设计和后处理机制,最大化 LLM 对检索内容的忠实度,最小化其对训练知识的依赖。
GraphRAG · Agentic RAG · Multi-hop · ColPali 多模态 — 超越传统向量检索的下一代架构
Claude 3.7 / Gemini 2.5 Pro 的 1M+ Token Context 窗口正在改变 RAG 的使用边界。新范式正在形成:RAG 做粗筛选(从百万文档中找出相关的几十份),Long Context 做精读(把这几十份塞进 1M Context 让 LLM 深度理解)。纯 Long Context 把整个知识库塞进去的做法不会成立(成本过高),但 RAG + Long Context 的组合会成为企业标准。
RAGAS 五大指标 + 生产监控 — 没有评估就没有迭代
没有评估体系的 RAG 工程是盲目的——你不知道改进了分块策略后检索质量有没有提升,也不知道换了 Reranker 后答案忠实度变化如何。RAGAS(RAG Assessment)是 2024-2026 年企业 RAG 评估的事实标准,提供五个维度的量化指标,支持全自动 LLM-as-Judge 评估,无需人工标注。
安全隔离 · 增量更新 · 成本优化 · 生产监控 · 知识库治理
企业 RAG 最危险的安全漏洞:用户 A 的查询返回了用户 B 才能看的文档。解决方案:每个 Chunk 打上 access_level +
department + user_groups 标签,在向量检索时叠加 Metadata Filter 硬过滤。Pinecone 用
Namespace,Weaviate 用 RBAC,pgvector 用 Row-level Security。不能用 LLM 判断权限——必须在向量数据库层硬隔离。
文档更新是企业 RAG 最高频的运维操作。策略分级:① 新文档增量追加(索引追加,不影响现有数据);② 文档修改 → 删除旧向量 + 插入新向量(按 doc_id 精确替换);③ 文档删除 → 软删除 + 定期硬清理。永远不要全量重建索引(数百万向量重建需数小时停服)。监控指标:知识库新鲜度(最老文档 Age)+ 更新延迟(文档上传到可检索的时间)。
企业 RAG 的主要成本是 LLM API 调用(约占总成本 70-80%)。四大优化手段:① 语义缓存:相似 Query(cosine >0.95)直接返回缓存答案(GPTCache / Redis);② Query 路由:简单问题用 GPT-4o-mini(便宜 20x),复杂推理用 Claude-3.7;③ Context 压缩(LLMLingua 5-10x 压缩 Prompt);④ 批处理:Embedding 批处理(batch_size=512)比逐条快 10x 且便宜。
RAG 系统的可观测性需要三层:① 检索层:每次检索的 Top-K 相关度分布、召回 Chunk 的元数据分布、检索延迟 P50/P95/P99;② 生成层:答案长度分布、引用率(有多少答案引用了至少一个来源)、LLM 拒答率;③ 业务层:用户满意度(👍/👎)、追问率(首次回答未解决问题的比例)。将低满意度答案自动进入人工审核队列。
企业知识库的质量腐化比代码更快。治理规范:① 文档 Schema 标准化(必填字段:标题、作者、有效期、所有者、审批状态);② 有效期机制(文档标注过期时间,到期触发所有者审核);③ 孤儿文档清理(超过 12 个月无人访问的文档自动归档);④ 知识库地图(定期生成覆盖率报告:哪些业务领域文档充足,哪些空白)。
企业 RAG 端到端延迟目标:P95 < 3 秒。拆解:检索 <500ms(HNSW 索引 + Metadata 过滤)、Rerank <300ms(API 调用或本地模型)、LLM 生成 <2s(流式输出 first-token <500ms)。关键优化:① 检索和 Query 向量化并行执行;② 流式输出(Streaming)优先显示 first token,降低感知延迟;③ Embedding 服务本地部署(避免 API 往返);④ 向量检索异步预热(不等第一次冷启动)。
45+ 道高频 RAG 面试题,覆盖算法原理、系统设计、工程落地三维度
选 RAG 当:知识频繁更新(无法每次重新训练);需要引用可溯源;知识涉及隐私(不能进权重);快速上线(数周 vs 数月);知识量大(微调无法"记住"全部细节)。
选 Fine-tuning 当:需要改变模型的输出格式/风格(如"像法律专家一样说话");任务高度专业且固定(代码补全、特定领域分类);推理延迟预算极紧(Fine-tuned 模型直接生成,无检索步骤);知识相对稳定不更新。
最常见答案:两者经常一起用——Fine-tuning 赋予模型领域风格和格式偏好,RAG 提供实时私有知识。
Hybrid Retrieval 同时运行 Dense(向量)和 Sparse(BM25)两路检索,再用 RRF 融合排名。
Dense 的优势:语义理解能力强,能匹配同义词、近义概念("涨薪"≈"薪资调整")。BM25 的优势:精确关键词匹配,对型号、代码、缩写("GPT-4o-mini")的召回准确率极高,不会因语义漂移而丢失。
互补性:Dense 在语义匹配上胜出,BM25 在精确词匹配上胜出。Hybrid 通过 RRF 融合,在两类查询上都能取得好结果。实践上 Hybrid 比单一方法 NDCG@10 提升 10-25%(BEIR benchmark)。
Bi-Encoder(向量检索):Query 和 Document 分别独立编码为向量,计算两向量的余弦相似度。速度极快(ANN 搜索),但 Query 和 Document 的交互信息在编码时丢失。
Cross-Encoder(Reranker):将 Query + Document 拼接后一起输入 Transformer,模型能看到 Query-Document 的完整交互(attention 机制),打分精度显著更高。代价是:不能预计算 Document 向量,必须为每对(Query, Doc)实时推理,无法扩展到大规模召回。
最佳实践:两阶段——Bi-Encoder 快速从百万文档中召回 Top-50,Cross-Encoder 对 Top-50 精排,取 Top-5 送入生成层。Bi-Encoder 管规模,Cross-Encoder 管精度。
RAGAS 是 RAG 系统的自动化评估框架,用 LLM-as-Judge 替代人工标注。
Faithfulness(忠实度):评估答案中的声明是否能在检索文档中找到依据,衡量幻觉程度。即"LLM 说的话,文档里有没有说"。Faithfulness=1 表示没有幻觉。
Answer Relevancy(答案相关性):评估答案是否切题,衡量是否跑题。方法:让 LLM 根据答案反向生成几个问题,这些问题与原始问题越相似,答案越切题。Answer Relevancy=1 表示完全切题。
区别举例:答案"公司成立于 1998 年,业务覆盖全球 50 个国家"——如果文档里确实这么写,Faithfulness=1;但如果用户问的是"公司的财务状况",Answer Relevancy 就很低(跑题了)。
多租户权限隔离是企业 RAG 的安全核心,必须在向量数据库层实现,不能依赖 LLM 判断(LLM 不可信)。
技术方案:① Metadata 标签 + 过滤:每个 Chunk 打上
user_id/tenant_id/access_groups 标签,检索时叠加
where: {tenant_id: {$eq: current_user_tenant}} 过滤;② Namespace
隔离(Pinecone):每个租户数据写入独立 Namespace,查询时指定 Namespace,物理隔离;③ Row-level
Security(pgvector):PostgreSQL 行级安全策略,从数据库层面强制隔离;④
文档级权限矩阵:文档打标 access_level: ["finance", "director+"],检索时
filter 当前用户的角色列表与文档标签的交集。
原则:永远在数据库层过滤,永远不在 Prompt 层过滤(Prompt 过滤可被绕过)。
传统 RAG 的局限:只能回答"局部"问题——从单个或少数几个文档中提取信息。无法回答"全局"问题——需要跨整个文档集做综合推理的问题。
GraphRAG 的解法:先对所有文档提取实体(人、组织、地点、概念)和关系,构建知识图谱;再对图的社区(紧密连接的节点群)做层级摘要。Global Search 基于这些摘要回答跨文档的宏观问题。
必须用 GraphRAG 的场景:① "这 500 份客户反馈中,最常见的痛点是什么?"(需要跨全量文档聚合);② "张三和李四在哪些项目上有过合作?"(多跳关系推理);③ "公司战略文档中,哪些业务线被提到的次数最多?"(全局统计)。普通 RAG 对这类问题会漏掉大量信息;GraphRAG 成本更高但覆盖全局。
金融合规是 RAG 最严苛的场景,关键决策:
分块:使用层级分块(Hierarchical),保留条款编号("第 15.3 条")作为 Metadata,支持精确条款定位。Chunk Size 512-1024 tokens(合规文件段落较长)。
检索:混合检索(Dense + BM25)——合规文件有大量精确法规引用(如"《证券法》第 68 条"),必须有 BM25 保障精确召回。Reranker 必上,精排 Top-5。
生成:System Prompt 强制要求每个声明必须引用来源条款;禁止推断("文档未提及,不予回答");添加免责声明。
安全:按用户角色(分析师/合规官/总经理)+ 文件密级(内部/机密/公开)双维度权限矩阵,向量库层硬过滤。
评估:RAGAS Faithfulness 基线 ≥0.95(金融合规容错极低);上线前全量人工审核 100 条案例;生产实时监控引用率 + 低满意度触发审计。