

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 6. 持续监控
<a name="monitoring"></a>

在持续监控中，自动化流程会观察并检测性能问题和模型问题。然后，所有者可以实时识别潜在的问题和威胁，从而快速解决这些问题和威胁。

持续监控揭示了可能的模型问题，例如数据质量、分发漂移、模型概念漂移及模型质量下降。持续监控还包括对传统系统衡量标准（例如饱和度、延迟、流量和错误）的全面日志记录。制定了实用的通知和提醒策略，以在出现问题时通知所有者。


|  |  | 
| --- |--- |
| **6.1 模型监控：数据质量检测** | 基于规则的监控可以知道传入的数据何时偏离模型训练数据。这种类型的监控通过训练数据创建架构，根据该架构设置约束条件，然后在发生违规时运行异常。 | 
| **6.2 模型监控：分发漂移** | 设置监控是为了查看传入的数据分布，并检查其是否偏离模型训练数据分布。例如，将传入的数据[作为推理数据的移动窗口](https://www.cs.princeton.edu/courses/archive/spr04/cos598B/bib/BabcockDM.pdf)进行采样。然后运行作业来测试采样分发和训练分发，以查看它们是否相同。 | 
| **6.3 模型监控：模型概念漂移** | 概念漂移检查会检查模型的输入和目标变量之间的关系是否与训练数据保持一致。另一项检查是为了确认相对特征及其重要性没有改变。 | 
| **6.4 模型监控：模型评测检查** | 这是一项监控检查，用于评估模型的质量是否已下降。模型评测检查将训练时间的基准评估指标与传入的结果进行比较，以评测模型在新数据上的准确性水平是否有所降低。由于该检查会计算准确率指标，因此需要在推理之后获得新数据的实际情况。 | 
| **6.5 系统捕获：输入架构** | 机器学习系统捕获训练、测试和验证数据的架构。除了提供有关输入的信息外，架构还提供有关偏斜和完整性的统计数据。  架构用于生产中的即时测试和数据质量监控检查。 | 
| **6.6 系统捕获：评估结果和统计数据** | 机器学习系统输出有关验证和训练数据的准确性信息。它可以输出验证和训练运行中的预测和真实标签。它们用作实时生产模型的监控约束条件。 | 
| **6.7 系统捕获：异常** | 系统设有跟踪机制，用于标记传入数据流中的异常情况。如果传入数据中出现异常值，或者在指定的时间范围内关键特征分发更改，则系统会将其识别为异常并进行标记。 | 
| **6.8 日志记录：饱和度和资源** | 系统设有日志记录，用于记录系统的满载程度。资源和饱和度指标应侧重于 CPU 利用率、图形处理单元（GPU）利用率、内存利用率和磁盘利用率。这些指标应以时间序列格式提供，且能够以百分位数进行测量。对于批量作业，它提供了有关吞吐量的信息，该信息显示了系统在每段时间内可以处理的信息单位量。 | 
| **6.9 日志记录：延迟** | 应进行日志记录，以测量网络通信的延迟或处理请求所需的时间。工程师应该能够判断推理模型需要多长时间才能提供预测服务，以及模型加载需要多长时间。 | 
| **6.10 日志记录：流量** | 流量的日志记录设置用于测量每个实例上的流量。流量是通过在一定时间内发送或接收的 HTTP 请求数和字节数或数据包来测量的。日志记录流量可提供对系统总工作负载的洞察。 | 
| **6.11 日志记录：错误** | 错误的日志记录设置会捕获失败的请求数。失败有以下几种类型：  显式（例如，HTTP 500 错误）   隐式（例如，带有错误内容的 HTTP 200 成功响应）   策略（例如，如果您承诺响应时间为一秒，则任何超过一秒的请求都视为错误）  如果协议响应代码不足以表达所有故障情况，则可能需要辅助（内部）协议来跟踪部分故障模式。 | 
| **6.12 通知和提醒** | 通知和提醒是通过监控设置的。通知包括获取 Slack、电子邮件通知、寻呼和短信服务（SMS）消息的功能。提醒并不意味着针对所有可能的违规行为发送通知。相反，这意味着要针对对开发团队有意义且重要的特定异常设置提醒。通过此方式，可以避免警觉性疲劳。 | 