模块 3Context、RAG 与 Memory

高级检索策略

先给检索失败分类

  • 关键词不匹配但语义相近
  • 专有名词、编号和精确条件丢失
  • 问题包含多个子意图
  • 答案需要跨文档或多跳证据
  • 召回正确但排序和上下文组装失败

Dense 与 Sparse 解决不同盲区

  • 语义改写、同义表达和概念相似
  • ID、错误码、版本、名称和精确短语

RRF 等排名融合

  • 避免直接比较不可比的原始分数
  • 权重需要任务集验证

查询变换要保留原始意图

  • 消歧、补全上下文和规范化术语
  • 从实例问题抽象到上位原则

生成假设文档改善语义召回

  • 可能放大错误假设

多个视角提高召回

  • 需要去重和预算上限

复杂问题先分解或路由

  • 按数据域选择索引和 Retriever
  • 子查询之间保留依赖与共享实体
  • 并行无依赖查询,串行处理需要前序答案的查询
  • 最终合并前检查子问题是否完整覆盖原问题

Reranker 用更高成本换候选精度

  • Cross-Encoder、ColBERT 等交互式评分直觉
  • 候选数、重排数和延迟预算
  • 文档相关不等于包含答案
  • 按权限过滤必须早于重排和生成

多跳与 Agentic Retrieval 需要受控循环

  • 基于已得证据决定下一查询
  • 记录证据图和未解决问题
  • 限制跳数、查询数和重复检索
  • 证据不足时明确停止而不是补全结论

用消融决定复杂度是否值得

  • 从简单 Hybrid 基线开始
  • 分别加入改写、重排、分解和多跳
  • 比较 Recall@K、NDCG、答案正确性、延迟与费用
  • 只保留对目标任务有稳定增益的组件