Skip to content

11.4.1 RAG 检索策略升级时如何做灰度发布? ​

先给结论:检索策略升级必须做灰度,因为它会直接影响召回覆盖、噪声比例和最终生成质量。最稳的做法是“先影子评测,再小流量灰度,再扩量”,并且提前定义回滚阈值。

检索策略升级常见包括:

  • 更换检索模型
  • 增加混合检索
  • 调整 TopK
  • 改索引或过滤逻辑

这些改动一旦直接全量上线,很容易出现:

  • 召回退化
  • 噪声激增
  • 生成质量整体下降

一、灰度发布的最小闭环 ​

一个最小可用的灰度流程通常包含三步:

  1. 影子评测
  2. 小流量灰度
  3. 分阶段放量

每一步都必须有可回滚机制。

二、第一步:影子评测(Shadow Eval) ​

影子评测的目标是:

  • 不影响用户体验
  • 提前发现明显退化

做法通常是:

  • 新旧检索策略并行跑
  • 不影响真实用户输出
  • 用离线评测和指标比较差异

重点指标包括:

  • Recall@K 变化
  • 关键证据命中率变化
  • 噪声比例变化

如果影子评测已经显著退化,就不该进入灰度。

三、第二步:小流量灰度 ​

小流量灰度的目标是:

  • 观察真实流量下的表现

常见做法:

  • 按用户或租户分流
  • 只让 1% 或 5% 流量走新策略
  • 保证可快速切回旧策略

在这一阶段,必须监控:

  • 召回质量指标
  • 端到端满意度
  • 延迟变化
  • 失败案例分布

四、第三步:分阶段放量 ​

如果小流量稳定,再逐步扩量:

  • 1% -> 5% -> 20% -> 50% -> 100%

每次扩量都要有:

  • 明确的“回滚阈值”
  • 明确的时间窗口

否则扩量变成“赌运气”。

五、回滚触发条件要提前定义 ​

常见的回滚触发条件包括:

  • 关键证据命中率下降超过阈值
  • 生成忠实性指标下降
  • 用户满意度或任务完成率下降
  • 延迟显著上升

最重要的是:

  • 这些阈值必须上线前明确,不要临场决定

六、灰度时必须记录“失败样本差异” ​

灰度发布时不要只看整体指标,还要看:

  • 新策略失败的典型样本
  • 与旧策略的差异

这些样本是你判断“要不要继续放量”的关键证据。

七、一个最小灰度流程示意 ​

python
rollout = [
    "shadow_eval",
    "canary_1_percent",
    "monitor_key_metrics",
    "expand_to_5_20_50",
    "full_release_or_rollback"
]

一句话总结 ​

检索策略升级必须灰度发布:先影子评测,再小流量灰度,再分阶段放量。任何时候都要有明确的回滚阈值,否则升级就是不可控风险。