机器学习操作正在兴起
对数据科学家来说,给数据打上标签并开发出一个准确的机器学习模型是很困难的,而且在生产中管理模型也可能会更加令人生畏。识别模型漂移、通过更新数据集来对模型进行再训练、提高性能以及维护底层技术平台都是重要的数据科学实践。如果没有这些规程,模型就可能会产生严重影响业务的错误结果。
开发出一个可用于生产的模型并非易事。根据一项机器学习的研究,55%的公司没有将模型部署到生产当中,40%或更多的公司需要30天以上才能部署一个模型。而即使成功也会带来新的挑战,41%的受访者承认了机器学习模型的版本控制和再现性的困难。
这里的教训是,一旦机器学习模型被部署到生产中并在业务流程中被使用,新的障碍就又会出现。
模型管理和操作曾经是更先进的数据科学团队的挑战。现在的任务则还包括了监控生产机器学习模型的漂移,自动再训练模型,当漂移显著时发出警报,以及识别模型何时需要被升级。随着越来越多的组织投资于机器学习,建立模型管理和操作的意识就变得越来越有必要了。
好消息是,诸如开源的MLFlow和DVC等平台和库,以及来自Alteryx、Databricks、Dataiku、SAS、DataRobot、ModelOp等的商业工具,正在使数据科学团队的模型管理和操作变得更加容易。公共云提供商也分享了一些实践,比如Azure Machine Learning所提供的MLops。
模型管理和devops之间有一些相似之处。许多人将模型管理和操作称为MLops,并将其定义为开发和维护机器学习模型所需的文化、实践和技术。
理解模型管理和操作
为了更好地理解模型管理和操作,需要考虑软件开发实践与科学方法的结合。
作为一名软件开发人员,你知道完成应用程序的版本并将其部署到生产环境中并非是一件易事。而且,一旦应用程序进入生产环境,一个更大的挑战就开始了。最终用户希望定期进行增强,底层基础设施、平台和库也需要打补丁和维护。
现在让我们转向科学的世界,在那里,其问题也会导致多种假设和重复实验。你在科学课上学会了维护这些实验的日志,并能够跟踪从一个实验到下一个实验调整不同变量的过程。试验会带来更好的结果,记录过程则有助于让同事相信你已经探索了所有的变量,并且结果是可重复的。
使用机器学习模型进行实验的数据科学家必须结合来自软件开发和科学研究的学科。机器学习模型是用Python和R等语言开发的软件代码,使用TensorFlow、PyTorch或其他机器学习库进行构建,运行在Apache Spark等平台上,并被部署到了云基础设施上面。机器学习模型的开发和支持需要大量的实验和优化,数据科学家必须证明他们的模型的准确性。
像软件开发一样,机器学习模型也需要不断的维护和增强。其中的一些可能来自维护代码、库、平台和基础设施,但是数据科学家还必须关注模型漂移的问题。简单地说,当新的数据可用,而机器学习模型所提供的预测、聚类、分割和建议又偏离预期结果时,模型漂移就发生了。
成功的模型管理始于开发最佳模型
我与Alteryx的首席数据和分析官Alan Jacobson就组织如何成功地进行机器学习模型开发进行了交谈。“为了简化模型开发,大多数数据科学家所面临的第一个挑战是如何确保拥有一个强有力的问题表述。许多复杂的业务问题可以通过非常简单的分析来解决,但这首先需要以数据和分析能够有助于回答问题的方式来构建问题。即使使用了最复杂的模型,在这个过程中最困难的部分也通常是如何构建数据,并确保使用的正确输入处于正常的质量水平。”
我同意Jacobson的观点。太多的数据和技术实现是从糟糕的或没有问题的陈述开始的,而且没有足够的时间、工具和专业知识来确保足够的数据质量。组织必须首先从提出一个关于大数据的聪明的问题开始,投资于数据操作,然后使用数据科学中的敏捷方法来迭代解决方案。
监控机器学习模型的模型漂移
获得一个精确的问题定义对于生产中的模型的持续管理和监控是至关重要的。Jacobson继续解释道:“监控模型是一个重要的过程,但想要正确地进行监控就需要对需要监控的目标和潜在的不利影响有深刻的理解。虽然大多数人讨论的是监测模型的性能以及随时间的变化,但在这个领域,更重要和更具挑战性的是对意外结果的分析。”
理解模型漂移和意外结果的一个简单方法就是考虑COVID-19对那些使用了大流行前的训练数据所开发的机器学习模型的影响。基于人类行为的机器学习模型、自然语言处理、消费者需求模型或欺诈模式都受到了大流行期间不断变化的行为的影响,而这些变化扰乱了人工智能模型。
随着越来越多的组织开始获得价值并使数据科学程序日趋成熟,技术提供商也正在发布新的MLops功能。例如,SAS引入了一个特征贡献指数,能够帮助数据科学家在没有目标变量的情况下评估模型。Cloudera则于最近宣布了一项ML监控服务,它可以捕获技术性能指标和跟踪模型预测。
MLops还解决了自动化和协作的问题
在开发一个机器学习模型和在生产中监控它之间,还有一些额外的工具、流程、协作和使数据科学实践能够得以扩展的能力。一些自动化和基础设施就像是devops,包括了适用于机器学习模型的基础设施即代码和CI/CD(持续集成/持续部署)。还有一些其他的开发人员的能力,例如使用底层培训数据来对模型进行版本控制,以及搜索模型存储库。