模型监控(model monitoring)
/ MOD-ul MON-ih-tur-ing /
模型监控,是这样一桩持续不断的实践:盯住一个已部署、在生产里跑着的模型,好在它开始出问题时及时发觉。模型不是那种「装好就不用管」的家电。它训练时所依据的那个世界,一直在变,所以一个上线时表现漂亮的模型,几个月后可能悄无声息地衰朽。监控,就是那套盯着这种缓慢腐烂的仪表盘与警报系统,正如医院的监护仪盯着病人的生命体征。
它盯两类东西。其一,是那些枯燥却要命的运行健康:服务还活着吗、它响应得多快、错误是不是在飙升?其二,也更难,是模型实打实的质量:它的预测还准吗、它收到的输入还是它训练时见过的那一类吗、它输出的模式有没有偏移?难就难在:在生产里,你往往不会立刻知道正确答案——一个贷款模型预测「会还款」,可这判断对不对,你也许好几年都不会知道——所以监控倚靠的是「输入漂移」「预测分布」之类的代理信号,而非直接的准确度。
为什么这很重要:现实里大多数机器学习的失败,并非戏剧性的崩溃,而是悄无声息的退化——一个仍在运行、仍在返回答案的模型,只是越来越错,却没有一条错误消息来警示任何人。监控,是横在你与那种看不见的衰朽之间唯一的东西。诚实的提醒是:它能告诉你「有些地方看着不对劲」,却很少告诉你「为什么」,它自己也修不了任何东西。它是一只烟雾报警器,而非一名消防员——它为你买来在「一场静悄悄的失败酿成一场昂贵的灾祸」之前作出反应的机会。
一个需求预测模型平稳跑了好几个月,随后一条新产品线,用一批它训练时从没见过的输入把它淹没。准确度要几周后才能确认,但监控此刻就标出了输入模式的骤变——给了团队一个在错误预测堆积起来之前重训的机会。
当真实准确度要等上很久才知道时,盯住输入,才是你实际拿得到的那个早期预警。
监控发现问题,却不诊断、也不修复它们。一条「有东西变了」的警报,仍把最难的活儿——弄清是什么、为什么,并决定要不要重训——留给了人。别把一块绿色的仪表盘错当成一个健康的模型;它顶多意味着,你恰好追踪的那寥寥几个信号,眼下没有报警而已。