当前位置: 首页 > 科技观察

MLOps:数据质量是关键_0

时间:2023-03-13 15:01:17 科技观察

MLOps是AI领域一个比较新的概念,可以理解为“机器学习操作”。如何更好地管理数据科学家和操作员,以高效地开发、部署和监控模型?数据质量至关重要。本文介绍了MLOps,并强调了数据质量在MLOps工作流程中的关键作用。MLOps的发展弥合了机器学习和传统软件工程之间的差距,数据质量是MLOps工作流程、加速数据团队和保持对数据的信任的关键。什么是MLOps术语MLOps是从DevOps演变而来的。DevOps是一组流程、方法和系统的统称,它们促进开发(应用程序/软件工程)、技术运营和质量保证(QA)部门之间的沟通、协作和集成。DevOps旨在强调软件开发人员(Dev)与IT运维技术人员(Ops)之间沟通与合作的文化、运动或实践。通过自动化软件交付和架构变更过程,可以更快、更频繁、更可靠地构建、测试和发布软件。另一方面,MLOps基于提高工作流效率的DevOps原则和实践,例如持续集成、持续交付和持续部署。MLOps将这些原则应用于机器学习过程,目标是:更快地试验和开发模型更快地将模型部署到生产环境质量保证DevOps的一个常见示例是使用git、代码审查、持续集成(CI,即也就是频繁合并代码到共享主线)、自动化测试、持续部署(CD,即自动将代码合并到生产中)。当应用于机器学习时,MLOps旨在加速机器学习模型的开发和生产部署,同时确保模型输出的质量。然而,与软件开发不同,ML需要处理代码和数据:机器学习从数据开始,数据来自不同的来源,需要代码对来自不同来源的数据进行清理、转换和存储。然后,将处理后的数据提供给数据科学家,数据科学家编写代码,完成特征工程,开发、训练和测试机器学习模型,最后将这些模型部署到生产环境中。在生产中,ML模型以代码的形式存在,输入数据同样来自各种来源,以创建输出数据,这些输出数据被输入到产品和业务流程中。虽然上面的描述简化了流程,但仍然可以看出,代码和数据在ML环境中是紧耦合的,MLOps需要兼顾两者。具体来说,这意味着MLOps包含以下任务:用于数据转换和模型定义的代码的版本控制;在投入生产之前自动测试获取的数据和模型代码;将模型部署到生产环境中;监控模型性能和输出。数据测试和文档如何融入MLOps?MLOps旨在加速机器学习模型的开发和生产部署,同时确保模型输出的质量。当然,对于数据质量人员来说,要在ML工作流的各个阶段实现加速和质量,数据测试和文档是非常重要的:对于利益相关者而言,质量差的数据会影响他们对系统的信任,从而对基于决策的决策产生负面影响系统。更糟糕的是,未注意到的数据质量问题可能会导致错误的结论,并且会浪费大量时间来纠正它们。在工程方面,急于解决下游消费者注意到的数据质量问题是消耗团队时间并慢慢侵蚀团队生产力和士气的头号问题之一。此外,数据文档对于所有利益相关者交流数据和建立数据合同至关重要。以下部分提供了ML管道中各个阶段的高度概述,并讨论了数据测试和文档如何适应每个阶段。1.数据采集阶段即使在数据集处理的早期阶段,数据的质量检查和文档记录也可以大大加快长期运行的速度。对于工程师来说,可靠的数据测试非常重要,可以让他们安全地对数据摄取管道进行更改,而不会引起不必要的问题。同时,从内部和外部上游源获取数据时,在获取阶段执行数据验证非常重要,以确保数据不会发生意外更改。2.模型开发本文将特征工程、模型训练和模型测试作为核心模型开发过程的一部分。在这个迭代过程中,支持是围绕数据转换代码和模型输出构建的,以支持数据科学家,因此一个地方的变化不会破坏其他地方。在传统的DevOps中,通过CI/CD工作流进行持续测试可以快速捕获代码修改引入的任何问题。更进一步,大多数软件工程团队要求开发人员不仅要使用现有测试来测试代码,还要在创建新功能时添加新测试。同样,运行测试以及编写新测试应该是ML模型开发过程的一部分。3.在生产环境中运行模型与所有MLOps一样,在生产环境中运行的模型依赖于代码和输入数据来产生可靠的结果。与数据获取阶段类似,我们需要保护数据输入的安全,以避免由于代码更改或实际数据更改而导致不必要的问题。同时,我们还应该围绕模型输出进行一些测试,以确保模型持续满足我们的预期。特别是在具有黑盒ML模型的环境中,建立和维护质量标准对于模型输出至关重要。同样,在共享区域记录模型的预期输出可以帮助数据团队和利益相关者定义和传达“数据契约”,从而提高ML管道的透明度和信任度。原文链接:https://greateexpectations.io/blog/ml-ops-data-quality/【本文为《机器之心》专栏原文翻译,微信公众号《机器之心》(id:almosthuman2014)"]点此阅读作者更多好文