Appearance
11.4.1 RAG 检索策略升级时如何做灰度发布?
先给结论:检索策略升级必须做灰度,因为它会直接影响召回覆盖、噪声比例和最终生成质量。最稳的做法是“先影子评测,再小流量灰度,再扩量”,并且提前定义回滚阈值。
检索策略升级常见包括:
- 更换检索模型
- 增加混合检索
- 调整
TopK - 改索引或过滤逻辑
这些改动一旦直接全量上线,很容易出现:
- 召回退化
- 噪声激增
- 生成质量整体下降
一、灰度发布的最小闭环
一个最小可用的灰度流程通常包含三步:
- 影子评测
- 小流量灰度
- 分阶段放量
每一步都必须有可回滚机制。
二、第一步:影子评测(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"
]一句话总结
检索策略升级必须灰度发布:先影子评测,再小流量灰度,再分阶段放量。任何时候都要有明确的回滚阈值,否则升级就是不可控风险。