模块 3Context、RAG 与 Memory
高级检索策略
先给检索失败分类
- 关键词不匹配但语义相近
- 专有名词、编号和精确条件丢失
- 问题包含多个子意图
- 答案需要跨文档或多跳证据
- 召回正确但排序和上下文组装失败
Dense 与 Sparse 解决不同盲区
- 语义改写、同义表达和概念相似
- ID、错误码、版本、名称和精确短语
RRF 等排名融合
- 避免直接比较不可比的原始分数
- 权重需要任务集验证
查询变换要保留原始意图
- 消歧、补全上下文和规范化术语
- 从实例问题抽象到上位原则
生成假设文档改善语义召回
- 可能放大错误假设
多个视角提高召回
- 需要去重和预算上限
复杂问题先分解或路由
- 按数据域选择索引和 Retriever
- 子查询之间保留依赖与共享实体
- 并行无依赖查询,串行处理需要前序答案的查询
- 最终合并前检查子问题是否完整覆盖原问题
Reranker 用更高成本换候选精度
- Cross-Encoder、ColBERT 等交互式评分直觉
- 候选数、重排数和延迟预算
- 文档相关不等于包含答案
- 按权限过滤必须早于重排和生成
多跳与 Agentic Retrieval 需要受控循环
- 基于已得证据决定下一查询
- 记录证据图和未解决问题
- 限制跳数、查询数和重复检索
- 证据不足时明确停止而不是补全结论
用消融决定复杂度是否值得
- 从简单 Hybrid 基线开始
- 分别加入改写、重排、分解和多跳
- 比较 Recall@K、NDCG、答案正确性、延迟与费用
- 只保留对目标任务有稳定增益的组件