AI Know · 技术研究笔记
切分粒度决定召回上限
召回排序错,模型再强也白搭;引用不可核对等于没有依据;评测要拆开检索与生成
三分钟读懂
先看结论,再决定是否深读
- 切分粒度决定召回上限
- 召回排序错,模型再强也白搭
- 引用不可核对等于没有依据
- 评测要拆开检索与生成
- 长尾与延迟需前置设计
核心原理
检索增强生成常被当作“给大模型外挂知识库”的简单方案,但真实系统里,多数错误并非模型推理能力不足,而是数据管道在三个环节发生了断裂:切分粒度不合理、召回排序失准、引用无法核对。切分决定了知识以什么形态进入索引;召回排序决定了模型能看到什么;引用核对决定了回答能否被验证。三者中任何一个环节失效,都会让最终答案看起来流畅却不可信。更麻烦的是,这些失效往往被误判为“模型幻觉”,导致团队不断换模型、调提示词,却忽略检索侧的结构性问题。
技术细节
输入侧是失效的起点。文档解析时,表格、代码块、多栏排版、页眉页脚如果处理不当,会直接污染文本。切分策略上,固定长度切分简单但容易切断语义;语义切分更自然,却可能产生大小不一的块。常见做法是父子块:子块用于精准召回,父块用于补充上下文。重叠窗口能缓解边界丢失,但会增加索引冗余。元数据同样关键,来源、时间、权限、章节路径都应随块存储。查询侧也不能忽视:用户口语化、指代不明、长尾术语,需要查询改写、多查询扩展或假设文档生成,否则召回从第一步就偏了。
推理/执行侧是失效的放大区。召回通常分向量召回、关键词召回和混合召回。向量擅长语义相似,关键词擅长精确匹配,混合后还需重排。重排模型能把关键块提到前面,但若候选集本身没有正确块,重排也无能为力。上下文组装时,去重、压缩、排序和窗口限制都会影响生成。引用标注若只到文档级,用户无法核对;若到句子级,又依赖切分单元与引用单元一致。多跳检索和工具调用进一步增加复杂度:一次召回不够,需要迭代检索;工具调用需要权限校验,否则可能越权访问。
输出/评测侧是失效的暴露区。输出必须带可核对引用,最好逐句对应来源块。评测要拆成组件级和端到端:检索侧看召回率、命中率、排序指标;生成侧看忠实度、答案相关性、引用准确率。人工抽检应覆盖漏召、误召、排序错、引用错、幻觉五类。只看最终答案对错,无法定位是检索问题还是生成问题。下表可帮助分类:
| 失效模式 | 典型表现 | 根因 |
|---|---|---|
| 漏召 | 正确知识未进入候选 | 切分过碎、查询改写差 |
| 误召 | 无关块挤占上下文 | 召回过宽、缺少重排 |
| 排序错 | 关键块排在后位 | 重排模型弱、特征不足 |
| 引用错 | 引用与答案不匹配 | 块 ID 与引用单元不一致 |
| 幻觉 | 无依据仍编造 | 检索失败后未拒答 |
工程实践
给开发者三条可执行建议。第一,建立切分单元与引用单元一致的块 ID,父子块保留回链关系,确保每个答案都能定位到原文位置。第二,采用混合召回加重排,并固定评测集做线上 A/B,特别关注长尾查询和否定式提问,不要只看平均指标。第三,把引用核对做成强制步骤:生成后逐句回查来源,不通过则拒答或降级为“未找到可靠依据”,而不是让模型自由发挥。
风险边界
成本方面,向量库、重排模型、长上下文推理都会推高开销,需按查询价值分层。幻觉方面,检索不到时模型仍可能编造,必须设置拒答阈值。越权调用方面,检索必须带权限过滤,多租户隔离,工具调用需鉴权与审计。长尾输入方面,专业术语、表格、多语言、口语化表达容易漏召,需持续补充领域数据。延迟方面,多跳检索与重排会增加响应时间,可用缓存、并行召回和超时降级控制。只有把切分、召回、引用核对当作一等工程问题,检索增强生成才能从演示走向生产。