简介:本文对比本地知识库(RAG)与大模型长上下文两种技术路线,分析二者在架构、成本、适用场景与选型依据上的核心差异。读者可据此判断何时该引入检索增强、何时可依赖长上下文,并了解文档解析、切片策略与迁移注意事项,减少选型试错成本。
把大模型接入自有领域知识,是绝大多数智能体项目绕不开的一步。通用模型的知识来自公开语料,无法覆盖企业内部的规程、手册、工单和业务文档,因此必须通过某种方式把”私有知识”注入模型。目前业界常见两条路线:
两条路线解决的是同一个问题——“让模型掌握它原本不知道的领域知识”,但实现逻辑、成本结构和适用边界差异明显。本文围绕这两条路线展开对比,帮助开发者在不同阶段做出更合适的判断。
路线A(RAG):核心是”检索 + 生成”两段式流程。离线阶段完成文档解析、切片、向量化与入库;在线阶段完成查询改写、向量召回、重排、上下文拼装和生成。它的本质是”用检索缩小模型需要阅读的范围”,把无关信息挡在提示词之外。
路线B(长上下文):核心是”全量投喂”。不再做检索召回,而是直接把相关文档整体放入上下文窗口,依赖模型自身的注意力机制定位答案。它的本质是”用容量换工程复杂度”,把切片、召回、重排这些环节全部省掉。
两条路线在目标层面高度一致:
路线A需要额外维护解析、切片、向量库、检索服务、重排模型等组件,系统边界更大;路线B的架构要简单得多,基本只有”文档预处理 + 调用模型”两步,中间环节少,故障面也小。
这是路线A中最容易被低估的环节。真实文档往往不是规整的纯文本:有扫描件、有截图型文档、有带层级编号的规程手册。以规程类文档为例,章节下嵌着大量”第X条”的子条目,条目之间还存在互相引用。如果按固定长度切分,一条完整规定会被从中间截断,召回时拿到的就是半句话,模型自然答不准。
因此路线A必须引入结构化解析:先识别标题层级、条目编号、引用关系,再按语义单元切片,必要时为每个切片补充所属章节路径作为元数据。路线B则不需要切片,但需要处理超长文档的分批投喂与跨批次一致性。
| 维度 | 路线A(RAG) | 路线B(长上下文) |
|---|---|---|
| 一次性建设成本 | 较高,需要搭建解析、入库、检索链路 | 较低,主要是一次性文档预处理 |
| 单次调用成本 | 较低,提示词只含少量召回片段 | 较高,提示词随文档规模线性增长 |
| 长期维护成本 | 需要持续更新索引、调优召回 | 文档更新后需重新组织上下文 |
| 人力成本 | 需要工程与算法投入 | 主要依赖提示词工程 |
需要说明的是,具体费用取决于文档规模、调用频次和模型定价,本文不给出具体数值,选型时应结合实际压测数据测算。
路线A的延迟主要来自检索与重排环节,通过缓存、并行召回、向量索引优化可以控制在可接受范围;路线B的延迟随上下文长度增长,长上下文的推理耗时和显存占用都会明显上升,在高并发场景下压力更大。在弹性扩展方面,路线A更容易通过增加检索节点横向扩展,路线B受限于模型侧容量。
两条路线都需要关注身份认证、权限控制、数据隔离与审计。路线A的一个优势是可以做细粒度权限过滤:在召回阶段就按用户角色过滤文档范围,确保不同岗位只能检索到授权内容。路线B如果整篇投喂,权限粒度较粗,容易把不该给的内容一并送入上下文。此外,两条路线都应考虑敏感信息脱敏、传输加密和调用日志留存。
路线A组件多,需要监控检索服务的可用性、索引新鲜度、召回质量漂移;路线B组件少,但一旦出现答案错误,排查链路反而更不透明——很难判断是文档本身有问题还是模型注意力分散。
路线A不适合文档量极小、问题高度开放、或对实时性要求极高的场景;路线B不适合文档规模远超上下文窗口、需要精确引用出处、或对单次调用成本敏感的场景。
| 对比维度 | 路线A:本地知识库(RAG) | 路线B:长上下文投喂 |
|---|---|---|
| 核心逻辑 | 检索缩小范围后生成 | 全量投喂后生成 |
| 系统组件 | 多(解析/切片/向量库/重排) | 少(预处理/模型调用) |
| 文档解析要求 | 高,需结构化切片 | 中,需分批组织 |
| 单次调用成本 | 低 | 高 |
| 建设成本 | 高 | 低 |
| 延迟 | 中等,可控 | 随长度增长 |
| 权限粒度 | 细,可召回级过滤 | 粗,整体投喂 |
| 引用可追溯 | 强,可定位到片段 | 弱,定位依赖模型自述 |
| 扩展性 | 好,检索层可横向扩展 | 受模型容量限制 |
| 适用文档规模 | 大 | 中到小 |
从长上下文迁移到检索路线,或反向迁移,都需要注意以下几点:
本地知识库(RAG)与长上下文投喂,本质是”用工程复杂度换成本与可控性”和”用调用成本换工程简洁”之间的权衡。前者在文档规模大、需要精确引用、权限要求细、调用频次高的场景下更具优势;后者在文档规模有限、验证周期短、团队工程投入有限的场景下更易落地。
实际项目中,更务实的做法是:先把文档解析这一层做扎实——无论是扫描件识别、层级结构还原还是条目引用关系提取,这层做不好,两条路线都跑不出好效果;在此基础上,根据规模、成本、权限和引用要求,决定是走检索路线、长上下文路线,还是二者组合。选型不是一次性的,随着文档规模增长和业务要求变化,路线本身也应该被重新评估。