AI 产品经理越来越多地被要求评审知识库方案或主导 RAG 产品落地,但绝大多数人对知识库的理解停留在同一个认知,把文档上传进去,AI 就能基于它回答问题。
这个判断不只是不够精确,在产品决策时会直接导致技术方案评审失焦,无法识别真正影响效果的关键变量。
老王把这十个核心概念逐一拆解,读完能看懂一套知识库系统在做什么,每个模块解决什么问题,哪里最容易出问题。
检索增强生成
RAG 的完整链路,用户提问,系统检索相关文档块,将检索内容与问题组装成上下文,模型基于此生成回答。
知识更新无需重训模型,只需更新外部文档库,成本从训练级别降到文档管理级别,差距在数量级以上。
RAG 是独立的知识工程体系,大模型在其中只是生成器模块。知识管理、检索精度、上下文组装,才是决定最终输出质量的核心变量。链路中任意一个环节失准,整体质量都会显著下降。老王见过太多团队把 RAG 当补丁用,把知识注入大模型就算落地了。实际上一旦这样定位,后续所有工程优化的方向都会跑偏。

向量嵌入
向量嵌入 把文本转换成高维浮点数组(通常 768 维或 1536 维),让语义相近的文本在数值空间中距离更近。"大模型幻觉问题" 和 "人工智能错误生成现象",字面表述不同,但在向量空间中彼此接近。语义无关的两段文字,向量距离则相应拉远。
嵌入模型 的训练目标是从大规模语料中自动习得语义关联模式,让语义相近的句子对在向量空间中相互靠近,让语义无关的句子对彼此远离。这不是靠规则手动定义语义,而是统计学习的结果。
选型时优先看 领域匹配度,而非基准测试分数。基准测试使用通用语料,与实际业务文档的术语分布往往差异显著,直接拿分数做选型依据,误差相当大。在高度专业化领域,基于领域语料微调的嵌入模型通常能将召回率提升 10 至 20 个百分点。

向量数据库
向量数据库 解决的是在数百万条向量中快速找到最相近结果的工程问题。传统数据库做精确匹配,向量数据库做 近似最近邻搜索。暴力遍历百万条向量耗时超过秒级,不可接受。主流算法通过预建索引结构,比如分层可导航小世界图,把检索延迟控制在 10 毫秒以内,精度损失低于 1%。
三类方案各有适用场景:
托管型服务适合不想自运维的团队
开源自托管适合对数据隔离有严格要求的场景
已有关系型数据库体系的团队可通过向量扩展插件以最低迁移成本接入
三者性能基准差异不大,关键差异在运维复杂度和元数据过滤性能上。

文本分块
原始文档无法直接向量化后检索,需要切分成更小的单元进行索引。分块有一个根本性的权衡,块太大时检索噪声多,匹配精度低,块太小时单块缺失足够上下文,模型生成时理解容易断层。通常做法是固定词元数切割(256 至 512 词元),允许相邻块有 50 至 100 词元的 重叠窗口,防止关键信息被切断在边界。
场景决定策略,精确问答倾向小块,摘要生成倾向大块。两种需求并存时,可以构建多粒度索引,在不同粒度上并行检索后合并。
分块前的 文档清洗 是最容易被低估的环节。乱码字符、标签残留、表格被打散成无意义文本行,这些噪声直接损害向量质量。清洗工作量通常占整个索引构建工时的 30% 至 50%,是踩坑成本最高、最容易被忽视的一步。

语义检索
语义检索 用向量相似度而非关键词匹配来定位相关文档。"大模型会胡说" 和 "LLM 幻觉",语义检索能找到同一批相关文档;关键词检索需要精确命中词汇才能返回结果。
弱点是 低频专有名词。某个技术产品型号或行业缩写,如果训练数据里极少出现,嵌入模型无法生成稳定的语义向量,检索会失准。这是语义检索和关键词检索必须联合使用的原因之一。
返回候选数量由前 K 参数控制。K 太小,检索材料不足;K 太大,无关材料混入,干扰生成质量,同时消耗更多上下文空间。通常从 K = 5 开始,根据实测质量调整。

重排序
初步检索用 双编码器,问题和文档各自独立编码成向量后计算相似度。速度快,但精度有上限,独立编码看不到问题和文档之间的细粒度交互关系。
重排序 引入 交叉编码器 弥补这个缺口。它把问题和候选文档拼接成一个序列,整体建模,输出精确相关性得分。代价是计算成本上升,20 个候选文档需要 20 次完整推理,延迟可达 200 至 500 毫秒。
工程上的标准方案是两阶段:
第一阶段用双编码器快速召回前 20 至 50 个候选 第二阶段用交叉编码器精排出前 3 至 5 个
加入重排序后,精确度平均提升 15 至 25 个百分点。
⚠️ 取舍提醒
合规文件查询、医疗知识问答、法律条款检索,检索召回一个错误文档的代价远高于多等几百毫秒,老王在这类场景会优先配置重排序。实时对话场景需要在精度和延迟之间做明确取舍。

混合检索
混合检索 擅长弥补单一路径的缺陷。语义检索擅长语义理解,对精确术语匹配不稳定;关键词检索(词频权重算法)擅长精确匹配,不理解语义等价。两者的失效场景互补,混合检索同时运行两条检索路径,再用 倒数排名融合算法 合并结果。
倒数排名融合 不依赖两路得分的绝对数值,对每个文档的排名取倒数后加和,排名越靠前、在两路结果中均出现的文档得分越高。实现简单,效果稳定。
在包含大量专有名词的技术文档场景,混合检索比纯语义检索的平均倒数排名指标提升 8 至 15 个百分点。通用知识问答场景提升幅度通常低于 5 个百分点,纯语义检索已经足够,强行引入混合检索只会增加运维复杂度,得不偿失。

上下文窗口
❗ 硬约束
上下文窗口是模型单次推理能处理的最大词元数量,是整套 RAG 体系中不可突破的硬约束。
窗口空间被四类内容瓜分:
系统提示(角色设定、回答规则)
对话历史
检索到的文档块
用户当前问题
在 8 千词元的窗口下,实际能放入的文档块通常只有 3 至 5 个。窗口溢出时,要么截断旧对话历史(损失连贯性),要么减少检索块数量(损失知识供给),两条路都会降低输出质量。
窗口越大不等于效果越好。相关信息出现在长上下文中间位置时,模型关注度显著下降,这被称为 迷失于中间现象。有效的组装策略是把最相关的文档块放在上下文的开头或结尾,不做随机排列。
推理费用 是容易忽视的隐性成本。满窗口推理成本可达最小窗口的十倍以上,高并发场景下直接影响毛利率结构。老王在做上下文组装设计时,会为每类内容明确分配词元预算上限,不让各组件动态竞争后靠截断兜底。

索引构建
索引构建 是离线准备阶段,在任何检索发生之前必须完成。
完整链路分五步:
数据接入(从各类数据源提取原始文本,关键是格式解析的准确性) 清洗(去除重复段落、过滤乱码、修复编码问题) 分块 嵌入(每个文本块送给嵌入模型处理,计算成本最高,但绝对数值不贵) 写入向量数据库
增量更新策略 需要专门设计。业务文档持续产生,每次全量重建索引成本随文档量线性增长,不可持续。文档变更检测加上支持增量写入的向量数据库,是解决这个问题的标准组合。这一点在工程实践中长期被忽略,等到文档量上了规模再补,改造成本极高。

知识接地
知识接地 是使模型输出能够追溯到具体外部来源的机制设计,分两层实现。
第一层是内容接地,模型被要求只基于提供的文档作答,不允许超范围推断 第二层是引用接地,每个文档块携带来源元数据,模型在生成时标注引用,输出结果附带可点击的来源链接,用户可以核实
只做到第一层的团队,在用户侧完全感知不到引用能力,放弃了接地机制最重要的可信度收益。第二层的实现是系统工程问题,不是模型能力问题,模型需要被指令要求标注来源,系统需要将引用标注解析为可点击链接,产品层需要在界面上展示引用信息。
未采用 RAG 的通用大模型在领域问答中幻觉率约 15 至 25%,正确实现接地机制后降至 2 至 5%。

最后
老王给你一个口诀,你就按照这么理解,应该很快就能梳理清楚
- 知识怎么理解:向量嵌入
- 知识存在哪:向量数据库
- 知识怎么切:文本分块、索引构建
- 知识怎么找:语义检索、混合检索、重排序
- 知识怎么用:上下文窗口
- 知识怎么验:知识接地
任何一个概念理解偏差,都会在产品落地时放大成数倍的定位成本
夜雨聆风