介绍
在现实世界中,数据以各种系统和格式记录,并且不断变化。 这些变化可能会随着便携式系统的老化和机械破裂而引入噪音,或者在生产过程发生根本变化或消费者行为变化的情况下发生。 这些变化对预测的准确性有影响,因此有必要测试在模型开发过程中所做的假设在模型投入生产时是否仍然有效。
在机器学习的背景下,我们认为模型输入数据中的数据漂移会发生变化,从而导致模型性能受损。在本文的剩余部分中,我们将介绍如何检测将图像数据或文本数据作为输入的模型的数据漂移,以防止它们在生产中无声地恶化。
四种不同类型的实时监测技术来检测和减少模型漂移
- 数据质量——帮助检测数据schema的变化以及因变量和自变量的统计属性,并在检测到偏差时发出警报。
- 模型质量——通过使用从应用程序收集的实际值并自动将实际值信息与预测数据相结合,实时监控模型性能特征,例如:准确率或精确率。
- 模型偏差——虽然你的初始数据或模型可能没有偏差,但世界的变化可能会导致偏差在已经训练好的模型中随着时间的推移而发展。
- 模型可解释性——当特征属性的相对重要性发生变化时,数据漂移会提醒您。
让我们讨论适用于文本数据的数据漂移类型。
NLP 数据漂移
NLP 用于许多不同的场景,从聊天机器人和视觉助手到机器翻译和文本摘要。为了确保这些应用程序以预期的性能水平运行,训练和生产区域中的数据来自相同的分布非常重要。
当用于推理的数据(生产数据)与模型训练期间使用的数据不同时,我们会遇到所谓的数据漂移。如果发生数据漂移,该模型将不再对生产中的数据进行操作,并且可能会比预期的更糟。持续监控推理数据并将其与训练期间使用的数据进行比较非常重要。
数据漂移可以根据输入端或输出端是否发生分布变化,或者输入和输出之间的关系是否发生变化而分为三类。
协变量漂移
在协变量漂移中,输入分布随时间变化,但条件分布 P(y∣x)P (y | x)P(y∣x) 不变。这种类型的漂移称为协变量偏移,因为问题是由于协变量(特征)分布的变化而出现的。例如,在垃圾邮件分割模型中,训练数据(电子邮件语料库)的分布可能与评分期间的数据分布不同。
标签漂移
虽然协变量漂移关注特征分布的变化,但标签变化关注类别可变性的变化。这种类型的移位实际上是反向协变量漂移。正确的思考方式是考虑不平衡的数据集。如果您发送垃圾邮件,我们的训练集中电子邮件的非垃圾邮件率为 50%,但实际上,我们有 10% 的电子邮件不是垃圾邮件,那么目标标签分布发生了变化。
概念漂移
概念的变化不同于协变量和标签的变化,因为它与数据分布或类分布无关,而是与两个差异之间的关系有关。例如,垃圾邮件发件人经常使用各种概念来传达到垃圾邮件过滤模型,而训练期间使用的电子邮件概念可能会随着时间而改变。
模型监控:方法
可以开发一个简单的模型监控系统,计算训练数据和推理数据中的文本 embedding 。然后计算余弦相似度,看看我们的训练数据和推理数据有多接近。
图像数据漂移
鉴于对深度学习的兴趣日益浓厚,将非书面文本和图像等非传统数据形式导入生产的模型正在增长。 在这种情况下,主要依赖数值数据的统计控制和性能研究等方法难以接受,需要一种新的方法来监控生产中的模型。 让我们探索一种可用于检测对图像数据进行分类/评分的模型的数据漂移的方法。
模型监控:方法
我们的方法不对所使用的模型做出任何假设,但需要访问用于建模的训练数据和用于评分的推理数据。检测图像数据漂移的最准确方法是构建训练数据集的机器可读表示,并使用它来重建呈现给模型的数据。如果重建误差很高,那么模型中呈现的数据与训练的数据不同。
具体顺序如下:
- 学习训练数据低维部分的表示(编码器)
- 使用来自第 1 步(解码器)的表示重建验证数据,并将重建损失存储为基线重建损失
- 在第 1 步和第 2 步中使用编码器和解码器重建正在发送用于预测的一批数据;储存重建损失
如果用于预测的数据集的重建损失超过基线重建损失预定义的阈值,则发出警报。