在机器学习系统中维护数据质量

数据 | 机器学习 | 问答

关于机器学习的看不见的基石的建议

Photo by Battlecreek Coffee Roasters on Unsplash

在令人眼花缭乱的机器学习(ML)世界中,很容易沉迷于设计复杂算法、引人入胜的可视化和令人印象深刻的预测模型的激情。

然而,就像建筑物的耐久性不仅取决于其可见结构,还取决于其隐藏的基础一样,机器学习系统的有效性取决于常常被忽视但非常关键的一个方面:数据质量。

上游数据质量保证的重要性

把你的ML训练和推理流程想象成一趟蒸汽火车的旅程。

保持火车本身(ML系统)的健康至关重要,但如果轨道受损呢?

如果没有确保系统输入的数据质量,那就像是一条受损的铁轨,你的火车注定会在操作规模时迟早出轨。

因此,从一开始就监控数据质量非常重要,就在数据的源头。

就像旅程前检查轨道的检查员一样,我们必须在数据的起点仔细检查我们的数据。

这可以通过一个称为“数据合同”的概念实现。

数据合同在维护数据质量中的作用

想象一下被邀请参加一次聚餐,每个客人都带了一道菜。

如果没有任何协调,你可能最终会得到一个完全由甜点组成的盛宴!

同样,在广阔的数据领域中,数据生产者和消费者之间必须有一个协议(即数据合同),以确保所产生的数据符合特定的质量标准。

这个合同本质上是一个蓝图,包括非详尽列表的元数据,例如:

  1. 模式定义:数据结构的详细信息,如字段、数据类型等。
  2. 模式版本:确保在进行修改或改进时保持一致。
  3. 服务级别协议(SLA)元数据:管理期望的SLA规范。
  4. 语义:澄清数据的含义和解释。
  5. 血统:记录数据的旅程,从起始点到目的地。

让我们通过一个强制执行数据合同的架构更好地理解这一点。

数据合同的实际应用:一个示例架构

想象一条制造装配线,每个工人都知道自己的角色和需要达到的标准。

现在,让我们将这个概念应用到我们的数据架构中。

  1. 模式更改首先在版本控制中进行,一旦获得批准,它们就会在数据生成应用程序、数据库和一个中央的数据合同注册表中实施。这是你的数据合同执行的理想起始阶段,从数据生成本身开始。下游的任何验证步骤都是为了防止低质量数据渗入系统。
  2. 一旦生成数据,就会将其推送到像Kafka主题这样的一些消息系统中。这可能包括应用程序服务直接发出的事件,或者用于变更数据捕获(CDC)流的原始数据主题。
  3. 现在,将Flink应用程序视为警惕的门卫人员,它们从原始数据流中消耗数据,并根据合同注册表中的模式进行验证。
  4. 不符合合同的数据,类似于装配线上的废品,会被导向“死信主题”。
  5. 经过验证的数据会被批准发送到“验证数据主题”,就像经过质量批准的商品准备包装和发货一样。
  6. 然后,将经过验证的数据发送到对象存储进行另一轮验证,充当双重检查机制。
  7. 按计划,对象存储中的数据将根据数据合同中的附加SLA进行验证。在经过这一审查后,它被推送到“数据仓库”,用于进行分析目的的转换和建模。
  8. 从这里,建模和策划的数据采取了两种路径。它被发送到“特征存储系统”进行进一步的特征工程,并且实时特征直接从“验证数据主题”中摄取。需要注意的是,在这个阶段确保数据质量可能是具有挑战性的,因为进行SLA检查是困难的。
  9. 这些高质量的数据随后被用于“机器学习训练流程”。
  10. 同样的数据被用于推理中的“特征服务”。

记住,机器学习系统也容易受到数据相关问题的影响,如数据漂移和概念漂移。

虽然这些问题被认为是“沉默的失败”,可以进行监控,但通常不包括在数据合同中。

我们将在以后的文章中深入探讨数据漂移的主题。

总结

机器学习系统的潜在优势在于支持它们的数据的不可见完整性。

数据质量虽然不起眼,但在机器学习项目的成功中起着关键作用。

数据合同的概念确保不会忽视这个重要方面。

记住,不仅仅是建造最快的列车或最令人印象深刻的车站,同样重要的是保持轨道的质量。

无论您的机器学习系统有多复杂,如果没有高质量的数据,它的发展将充满中断和潜在的脱轨风险。

请记住并确保在您的机器学习努力中给予数据质量应有的重视。

毕竟,最令人激动的机器学习进展不仅建立在革命性算法上,还依赖可靠的高质量数据。

您喜欢这篇文章吗?只需每月支付5美元,您就可以成为会员,解锁对小猪AI的无限访问权限。您将直接支持我和您喜爱的其他作家在小猪AI上的创作。对此表示衷心感谢!

作为小猪AI会员,您会员费的一部分将用于支持您阅读的作家,并且您将获得对每个故事的完全访问权限…

david-farrugia.medium.com

想要联系我吗?

我很愿意听到您对这个话题或任何关于人工智能和数据的想法。

如果您希望联系我,请发送电子邮件至[email protected]

领英