站群导航· 游戏攻略 / 礼包码 / 配置 / 换算 / 查询 / 手册
导航菜单
首页 全部文章 留言本

推荐模型上线前的4层评估:离线、回放、灰度、全量

模型评估常被压成一句话:离线AUC涨了吗。2023年某3C平台做了完整四层评估,耗时3周,最终拦下一个离线NDCG涨0.05但线上会亏钱的模型。四层是:离线评估、日志回放、灰度实验、全量。每层有量化门槛,不达标不往下走。

第一层离线评估。数据集切分按时间切,用前60天训练、第61到67天验证、第68到74天测试。常见错误是随机切分,导致未来信息泄漏。指标看三个:AUC、NDCG@10、以及一个业务指标——"高价值商品曝光占比"。门槛:AUC相对基线提升不低于0.008,NDCG@10不低于0.01,业务指标不能降超过1个百分点。某次一个模型AUC涨0.012但高价值商品曝光占比降3.2个百分点,卡在这一层。

第二层日志回放。用线上真实曝光日志重放,模型对同一批请求重新打分。为什么不用离线指标代替?因为离线数据集里没有"位置偏置"。回放时算两个数:Top10重合率、以及"原Top10但新模型排到100名之后"的商品占比。重合率低于55%说明模型变化太大,要检查是不是特征口径错了。实操步骤:(1)导出7天日志约2.3亿条;(2)抽1%做回放,约230万请求;(3)跑分对比;(4)人工看100个case。

第三层灰度。流量切5%,跑7天。看四个指标:CTR、人均时长、GMV每千次曝光、以及"负反馈率"(举报加不感兴趣)。门槛:CTR相对提升不低于1.5%,负反馈率涨幅不超过15%。2022年某模型CTR涨2.1%但负反馈率涨31%,原因是推了更多争议内容。灰度期每天看一次,连续3天负反馈超标就回滚。

第四层全量。分两批:先到50%跑3天,再到100%。为什么不一刀切100%?因为缓存和下游服务需要预热。某次全量后发现推荐服务的特征缓存命中率从94%掉到81%,原因是新模型多用了2个特征,缓存key变了。全量期监控:服务P99耗时、缓存命中率、降级次数。P99从120ms涨到210ms,超过200ms门槛就该限流。

四层之外还有个常见疏漏:评估口径不一致。离线用NDCG,线上看CTR,两者不同向的情况不少。建议加一个中间指标——"回放期的模拟CTR",用逆倾向加权从回放日志里估。步骤:(1)用旧模型的曝光概率做权重;(2)新模型打分后算加权点击率;(3)和线上灰度CTR对比,偏差超过0.3个百分点就查原因。

最后给时间预算。离线2天、回放3天、灰度7天、全量分两批各3天,合计约18天。如果赶大促,可以压缩回放到1天,但灰度7天不能压,因为用户行为有周内周期性。2023年618前有团队把灰度压到3天,周一到周三跑,漏掉了周末行为差异,全量后周末CTR掉了0.4个百分点。评估流程的价值不在快,在于每层都有明确的数字门槛和回滚条件。

站群互链

攻略窝 · 礼包窝 · 配置窝 · 换算窝 · 算法窝 · 查文窝 · 手册窝 · 问答窝 · 全文搜 · 手册库
上一篇 时差怎么算(示例1) 下一篇 跌幅怎么算(出行规划场景)