《60天AI学习计划启动 | Day 22: RAG 检索优化(Chunking / 压缩 / 混合检索》

Day 22:RAG 检索优化(Chunking / 压缩 / 混合检索)

一、学习目标

  • 掌握 文本切片策略(chunkSize / overlap / 语义边界)
  • 理解 上下文压缩、Multi-Vector 检索的作用与场景
  • 会设计 简单的 Hybrid Search(向量 + 关键词混合打分)

二、核心知识点

  • 1. 文本切片(Chunking)

    • 关键参数:chunkSizeoverlap、按段/句/标题切 vs 纯按长度切
    • 经验结论:
      • 问答类:400~600 tokens + 50~80 tokens overlap 比较稳
      • 技术/说明文档:优先按小节/段落切,再控制大致 token 数
    • 取舍:
      • 小 chunk:召回更精细,噪音少,但 chunk 数多
      • 大 chunk:上下文完整,但噪音多,生成容易啰嗦
  • 2. 上下文压缩(Contextual Compression)

    • 问题:TopK 文本很长,很多与当前 query 弱相关
    • 思路:baseRetriever → compressionRetriever
      • 先粗检索 N 个 chunk
      • 再用 LLM / 规则对每个 chunk 做「与 query 相关的句子提取/摘要」
    • 效果:答案更贴题,废话/无关背景明显减少,适合长文、会议纪要、说明书等
  • 3. 多向量检索(Multi-Vector Retriever)

    • 同一原文生成多条向量:标题 embedding / 摘要 embedding / 关键句 embedding
    • 检索命中的可以是任一视角,但最终都指回同一原文片段
    • 好处:
      • 标题/摘要向量负责“粗定位”文档
      • 关键句向量负责“细命中”具体信息
  • 4. Hybrid Search(混合检索)

    • 向量相似度(semantic) + 关键词/BM25(lexical) → 综合排序
    • 简易实现思路:
      • score_vec ∈ [0,1](归一化后的向量相似度)
      • score_kw:基于关键词命中次数/TF-IDF 粗算,再归一化到 [0,1]
      • 最终:score_final = 0.7 * score_vec + 0.3 * score_kw
    • 适用:业务里 query 很短且包含强关键词(如“退款规则”“404 状态码”)的场景

三、实战作业 + 参考答案要点

  • 作业 1:Chunk 策略对比

    • 题:同一文档,用
      • A:chunkSize=300, overlap=50
      • B:chunkSize=700, overlap=100
        对同一问题比较 TopK 片段质量
    • 参考结论
      • A:召回更精准、噪音少,但容易把完整答案切成多个 chunk;需要 TopK 够大
      • B:更不容易截断答案,但 chunk 里废话多,生成时更啰嗦
      • 建议默认:400~600 tokens + 少量 overlap;技术文档优先按「小节/段」切
  • 作业 2:二次筛选/压缩效果

    • 题:baseRetriever TopK → 再做「与 query 相关的句子提取/摘要」,对比回答前后变化
    • 参考结论
      • 开启压缩后:回答更聚焦问题本身,长背景/离题内容显著减少
      • 适合:长文、多段描述场景;对短 FAQ、规整小条目收益有限
  • 作业 3:简易 Hybrid 排序设计

    • 题:设计 score_vec + score_kw 的组合方式
    • 参考解法
      • score_kw_raw = 精确命中词数 * 2 + 子串命中词数 * 1
      • score_kw_norm = min(score_kw_raw / 5, 1)
      • score_final = 0.7 * score_vec + 0.3 * score_kw_norm 排序
      • 实测:对含明显业务词的 query,真正包含该词的条款/段落更容易排前;对纯语义问题影响较小

四、思考 / 笔记建议

  • 用自己项目实际文档,挑 3~5 个「之前答得不太对」的问题,检查:
    • 是检索不到(召回问题),还是检索到了但生成胡说(生成问题)
  • 记录下:
    • 当前使用的 chunk 策略
    • 是否需要压缩/Hybrid(根据日志和实际 QA 体验判断)
  • 输出一篇短文:《我们在业务项目里做的 3 个 RAG 检索优化》,沉淀为团队 best practice
posted @ 2025-12-17 09:21  XiaoZhengTou  阅读(5)  评论(0)    收藏  举报