部署原则
即使代码正确、基准测试表现出色,系统仍可能失效。第四部分从受控环境转向生产环境,在这里,机器学习系统还面临静默衰退的威胁。当现实世界逐渐偏离训练分布时,机器学习系统仍可能持续产生置信度高、格式规范却错误的输出。部署后,数据环境脱离了工程师的控制,可能以任何测试集都未曾预料的方式,对训练好的算法和提供服务的机器施加压力。因此,可靠性是数据—算法—机器协同设计的持续控制闭环,而非一次性的发布关卡。这里的原则定义了实现这种可靠性所需的要求和诊断模型。
Principle 原则(英文原版): 验证鸿沟
不变量:统计验证仅在明确定义的部署总体
\(P_{\text{deploy}}\)、任务距离
\(d\)、容差
\(\tau\) 和目标误差
\(\epsilon\) 下成立,并由有限样本程序在指定置信水平下进行估计:
\[ \Pr_{(x,y)\sim P_{\text{deploy}}}\!\left[d(f(x),y) \leq \tau\right] \geq 1-\epsilon \] 推论:部署不是单向移交,而是一个控制闭环。由于任何测试套件都无法覆盖所有可能的现实输入,生产系统必须监测自身的不确定性,并在偏离已知性能范围时以受控方式失效。
验证鸿沟意味着,有限评估只能对明确定义的总体上的行为作出带有不确定性的估计。随着生产数据偏离用于确定这些界限的数据,这些界限可能逐渐失去效力。
Principle 原则(英文原版): 统计漂移诊断
不变量:生产分布与基准分布之间的差异本身并不能确定准确率是否发生变化;在已测量的部署范围内,可以利用带标签的结果拟合局部线性关系:
\[ \text{Accuracy}(t) \approx \text{Accuracy}_0 - \lambda \cdot \mathcal{D}(P_t \lVert P_0) \] 其中,
\(P_0\) 为基准分布,
\(\text{Accuracy}_0\) 为模型在
\(P_0\) 上的性能,
\(\mathcal{D}(P_t \lVert P_0)\) 为当前分布与基准分布之间的统计散度,
\(\lambda\) 则根据带标签的结果拟合,而非仅由散度推断。考虑一个基于 2020 年借款人行为训练的信用评分模型。两年后,通货膨胀上升、利率变化、信贷政策调整。系统仍在生成评分,但输入与结果之间的统计关系可能已经改变;在常规错误日志毫无异常的情况下,需要通过监测带标签的结果来确定实际准确率是否下降。传统软件的许多故障往往通过崩溃、异常或明确的服务健康信号暴露出来,而机器学习系统即使代码和基础设施保持不变,也可能因
环境变化而静默失效。这种一阶线性化仅适用于已测量的范围;该关系取决于具体模型,在漂移较大时可能呈非线性。
推论:可观测性必须超越系统指标(延迟、错误),将统计漂移信号与带标签的结果结合起来。系统可能在预测质量变化的同时保持运行,但仅靠漂移监测无法确认性能退化。
外部漂移并非唯一威胁。即使外部世界保持不变,服务流水线本身也可能偏离经过离线验证的模型。
Principle 原则(英文原版): 训练与服务偏差诊断
不变量:训练与服务代码路径对相同输入的处理可能存在差异,而且无需标签即可测量这种差异。对于标量模型评分,将训练与服务差异定义为:在指定的比较输入分布上,两个函数输出的绝对差的期望值:
\[ S_{\text{skew}} = \mathbb{E}[|f_{\text{serve}}(x) - f_{\text{train}}(x)|] \] \(S_{\text{skew}}\) 与准确率之间的确切关系取决于损失函数、决策边界的几何形态以及生产分布。无法解释的差异会削弱“离线验证能够估计生产行为”这一假设,并可能造成静默的准确率损失,但
\(S_{\text{skew}}\) 并不是通用的准确率损失方程。这种差异可能源于预处理逻辑不一致、库实现不同、特征值过时,或两条代码路径之间的环境状态变化。
推论:特征一致性是一项架构要求,而不只是最佳实践。特征存储不只是缓存;它们可以通过集中管理特征定义和检索来减少偏差。团队仍需验证特征新鲜度、时间点正确性,以及预处理、模型运行时和后处理的一致性。即使是细微差异(PIL 与 OpenCV 的缩放操作、FP64 与 FP32 的归一化),也可能累积成标准监测无法发现的静默准确率退化。
所有这些可靠性问题之下,还存在一个不可妥协的约束:时间。一个以 99% 的准确率检测肿瘤、但每次扫描需要 30 秒的医学影像系统,可能无法满足工作流程的截止时间要求。一个能够正确分类障碍物、但响应时间为 200 ms 而非 50 ms 的自动驾驶感知模型,可能错过制动截止时间。正确结果若来得太晚,可能没有任何实际运行价值。对延迟敏感的已部署模型必须在截止时间内完成任务,超过截止时间在功能上可能等同于完全没有返回预测。
Principle 原则(英文原版): 延迟预算原则
不变量:按串行请求路径核算时,端到端延迟是网络、预处理、推理、后处理和排队延迟之和;部署是否满足截止时间要求,必须以指定的完成时间分位数为准:
\[ L_{\text{lat,total}} = L_{\text{lat,net}} + L_{\text{lat,pre}} + L_{\text{lat,infer}} + L_{\text{lat,post}} + L_{\text{lat,queue}}, \qquad \Pr[L_{\text{lat,total}} \leq D] \geq q \] 推论:在对延迟敏感的模型服务中,由产品侧确定截止时间和可接受的完成时间分位数,例如 0.95、0.99 或 0.999,并在该约束内优化吞吐量。服务系统必须实施尾延迟控制措施(例如,具有延迟上界的动态批处理或对冲请求)。服务系统必须能够牺牲整体吞吐量,以满足队列中等待时间最长的请求的延迟截止时间要求。
一个系统即使满足延迟服务级别目标(SLO)、检测到已测量的分布变化,并保持训练与服务的一致性,仍可能造成系统性伤害。前面的原则处理正确性和服务质量方面的静默失效;本原则处理通过静默放大而损害公平性的失效。
Principle 原则(英文原版): 偏差反馈模型
不变量:当输出影响未来输入时,当前的差异就会成为下一轮训练的输入,因此差异会作为一个动力系统演化,而非保持不变。令
\(\Delta_g(k) \geq 0\) 表示经过
\(k\) 个固定反馈间隔后,群体
\(g\) 相对于指定参照群体的差异幅度。在没有有效干预且无量纲反馈因子
\(\alpha_{\text{fb}} > 0\) 近似恒定的情况下,差异可能按如下方式演化:
\[ \Delta_g(k) \approx \Delta_g(0) \cdot \alpha_{\text{fb}}^k \] 其中,
\(\Delta_g(0)\) 为相对于该参照群体的初始差异幅度,
\(\alpha_{\text{fb}}\) 按每个反馈间隔拟合。考虑一个贷款审批模型,它对来自历史上金融服务不足社区的申请人以更高的比率拒绝授信。被拒绝的申请人无法积累信用记录,使得未来申请的资质更弱,进而提高未来的拒贷率。模型在其训练分布上的准确率保持稳定,但其服务的人群已被自身的决策重塑。在上述假设下,当
\(\alpha_{\text{fb}} > 1\) 时,反馈闭环会自我强化;当
\(\alpha_{\text{fb}} \leq 1\) 时,模型描述的动态过程保持稳定或呈衰减状态。实际部署中的动态过程也可能呈非线性、趋于饱和,或因干预而改变。
推论:公平性不是部署后的一次审计,而是部署控制闭环的稳定性约束。当影响的重要程度确有需要,且收集或使用群体属性合法并有充分理由时,系统必须以监测延迟百分位数同等的严谨程度,监测相关人口群体的分组性能指标,因为偏差恶化可能无法体现在总体准确率中,正如尾延迟违规可能无法体现在平均延迟中一样。
这五项原则共同定义了一个部署控制闭环:明确证据能够支持哪些结论,观测在线系统及其环境,仅在测得的失效确有必要时采取干预措施,并重新评估相关的服务、预测或子群体判据。它们将诊断与响应区分开来。一个信号可以缩小调查范围,但既不意味着必须自动采取某种干预,也不能证明质量已经退化。
第四部分将具体阐述这一控制闭环。“模型服务”构建能够在流量变化时满足延迟预算的基础设施。“机器学习运维”检测漂移与偏差,同时保留诊断和响应所需的证据。“负责任的工程实践”将公平性与反馈视为可测量的部署动态过程,而非一次性的合规检查。本卷最后将这些生产控制措施与前面各部分建立的定量界限和模型联系起来。
Back to top