10.3 高基数与校准自理


10.3 高基数与校准自理

本节摘要:全书最后一节收两笔长期账。第一笔是高基数边界:官方口径下约二十个以上选项的场景 laya 不如 Jev,第 6.3 节的 shortlist 与 tournament 是工程补偿,但补偿有代价——短名单召回失败会连累模型,锦标赛的轮次让推理次数按选项数对数增长。本节给出「走补偿路线还是直接留在 Jev」的判断表。第二笔是校准自理:laya 的温度不会自动跟随微调更新,每次微调后必须重拟合(第 7.1 节),还要按节奏定期重校准并监控漂移——混合语言的输入更要先测 Router 的脚本检测,防止检查点错配。本节末尾给一张全书运维清单总表,作为本书与生产环境之间的交接文件。

学习目标

  • 说明高基数边界的官方口径与短名单、锦标赛各自的代价模型。
  • 用判断表决定高基数任务是走补偿路线还是留在 Jev。
  • 建立微调后重拟合温度、定期重校准、漂移监控的固定流程。
  • 对混合语言输入完成 Router 脚本检测的上线自测。

一、高基数:边界口径与补偿的代价

官方口径很直接:约二十个以上选项的高基数场景,Jev 更强。第 6.3 节给的两段式补偿——先 shortlist 缩到二十个以内,再 tournament 两两对比——能把任务塞进 laya 的能力区间,但两条补偿路径各有账单:

补偿手段 代价 失败模式
shortlist 短名单 召回层要自建(规则/向量/排序模型) 正确选项没进短名单,后面全白搭
tournament 锦标赛 推理次数约按选项数对数增长 轮次间的位置偏差叠加(第 10.2 节)
两者叠加 系统复杂度显著上升 排查问题时分层定位成本高

于是判断表变成一道简单的算术题:

条件 建议
高基数 + 低频调用(每天几百次) 留在 Jev,按量计费不心疼
高基数 + 高频调用 + 对延迟不敏感 Jev 或 Kev(大底座高基数更强)
高基数 + 高频调用 + 必须毫秒级 补偿路线,但先测短名单召回率
名义高基数、实际常用选项少 先做选项分层,把热路径变成低基数

最后一行常被忽略:很多「高基数」任务的热路径其实只集中在少数选项上,把长尾交给 Jev 或人工、热路径交给 laya,比硬上锦标赛划算得多——这与第 9.2 节混合架构的思路一脉相承。

二、校准自理:一份长期合同

第 7 章讲过温度拟合与两种置信,这里只强调运维事实:校准状态是有保质期的。三类事件会让它过期:

其一,微调。任何一次微调(第 5 章)都会改变概率分布的形状,旧温度立即作废——必须用隔离的校准集重新拟合,然后重跑第 10.1 节的最小验证集,两个动作缺一不可。跳过重拟合的表现很典型:答案准确率上去了,置信度却系统性偏高或偏低,min_confidence 弃权(第 7.3 节)的阈值全部失准。

其二,分布漂移。生产输入的语言、长度、话题分布慢慢变化,概率分布跟着变。监控手段是把置信分布做分桶看板(示意做法):健康的分布形状稳定,某一天突然整体右移,就是输入侧出了新话题或新语言,先查数据再查模型。

其三,路由错配。多语言输入经 Router 的脚本检测分流(第 2.2 节),检测错了检查点就错了——中文句子被误判进英语检查点,效果直接跌回近随机。上线前与每月例行都要做 Router 自测:准备各语言的固定探针句(每语言十条,示意值),验证分流的正确率;混合语言(一句话中英夹杂)要单独测,必要时在请求里显式指定检查点,绕过自动路由。

# calib_ops.py —— 校准运维三件事:重拟合触发、漂移监控、Router 探针 from datetime import date CALIB_POLICY = { "微调后": "立即重拟合温度 + 重跑最小验证集", # 硬性,不可跳过 "例行重校准": "每季度一次(示意节奏)", # 低风险任务可放宽 "漂移监控": "每日分桶看置信分布,形状突变即告警", # 自动化 "Router 探针": "每月一次各语言探针句验证分流", # 混合语言重点 } def check_calibration_health(conf_hist_recent, conf_hist_baseline, psi_warn=0.25): # 用分桶 PSI 对比近期与基线的置信分布(阈值示意) buckets = [0.0, 0.2, 0.4, 0.6, 0.8, 1.0] psi = 0.0 for i in range(len(buckets) - 1): p = proportion(conf_hist_recent, buckets[i], buckets[i + 1]) q = proportion(conf_hist_baseline, buckets[i], buckets[i + 1]) if p > 0 and q > 0: psi += (p - q) * __import__("math").log(p / q) return {"psi": round(psi, 3), "动作": "重校准" if psi > psi_warn else "继续观察"} ​

三、全书运维清单总表

把第 7 章与本节的运维要求合并,得到 laya 生产化的交接清单:

频率(示意) 动作 关联章节
每次微调后 重拟合温度;重跑最小验证集 第 5、7.1、10.1 节
每日 置信分布分桶看板;弃权率监控 第 7.3、10.3 节
每周 抽样生产问题做打乱重测(位置偏差) 第 10.2 节
每月 Router 各语言探针;回退开关演练(若迁移自 Jev) 第 9.3、10.3 节
每季度 例行重校准;边界复读(高基数任务清单过一遍) 第 10.3 节

这张表的潜台词是:laya 的总拥有成本里,运维是持续项,选型时(第 9.1 节的六轴)要把它算进「微调门槛」与「算力」两轴,而不是只看推理费。

四、常见问题与排查

问题 排查顺序与处置
短名单召回率多高才能用 目标 95% 以上(示意值):正确选项没进短名单,后面全白搭;先在历史数据上离线测召回再上线
锦标赛轮次里位置偏差叠加怎么办 固定配对次序加对称轮(每对打两个次序);轮次预算与第 10.2 节对称化成本合并核算
温度多久重拟合一次 两次硬性时机:每次微调后立即;例行每季度(示意节奏)。漂移告警触发时不受周期限制
漂移告警响了先查什么 按序查三处:输入分布(新话题/新语言进来了)→ Router 分流(脚本检测是否误判)→ 模型本身(最后才怀疑)
混合语言探针怎么做 每语言固定 10 句(示意值),含 3 句夹杂语;预期检查点与实际分流不一致即记错配,月度统计错配率
高基数任务想要毫秒级又想要精度 别硬扛:热路径分层(常用选项给 laya,长尾留给 Jev 或人工)优于全量锦标赛——见第 10.3 节判断表最后一行
季度重校准做了但置信看着仍正常 正常不等于免检:校准是保险不是纠错,等「看着不正常」再重拟合通常已经误判了一段;按节奏做,把例行的成本算进第 9.1 节的成本轴
多个微调检查点并存怎么管理 命名带版本与日期、一屏登记(检查点名/温度/验证集得分/上线日期);线上只挂一个,其余归档——检查点漂移与第 10.2 节的位置偏差一样,都靠登记制度防乱
锦标赛结果要不要落日志 要:每轮配对、每对的概率、最终胜者——排查「分派异常」时没有轮次日志就只剩猜
Router 显式指定会不会更稳 封闭单语言业务建议显式指定(绕开脚本检测的误判面);混合语言才交给自动路由

排查的共同底色:高基数与校准的问题都不是「一次修好」,而是「制度管住」——第 10.3 节开头的判断表管选型,这张表管日常。交接清单三件套:

  • 判断表(本节一):高基数任务走补偿还是换路线,粘贴进选型文档。
  • 运维频率表(本节三):五频率节奏进值班日历。
  • FAQ 表(本节四):新人接手先通读一遍再上手。

边界写在 README 里是项目的诚实,边界写进运维手册里才是生产的成熟。

本节要点回顾

  • 高基数边界官方口径约二十个选项;补偿有代价,热路径分层常比锦标赛划算。
  • 校准有保质期:微调必重拟合、漂移要监控、Router 要探针自测。
  • 混合语言输入是路由错配重灾区,显式指定检查点是兜底手段。
  • 运维清单五频率(微调后/日/周/月/季)是 laya 生产化的交接文件。

全书到此收束:三向选型(第 9 章)给你的路线图,本章给你的边界与账单——合在一起,才是「养得起」的完整答案。附录 A/B/C 收拢术语与速查,练习题留给读者推演。


作者与出处
原作者: 灏天文库
整理: 灏天文库整理
本站整理收录,版权归原作者/开源协议所有;欢迎通过原文链接访问源仓库。
发布者: 作者: 灏天文库 转发
评论区 (0)
U