我们将机器学习的持续交付(CD4ML)作为所有部署在生产环境中的机器学习解决方案的默认起点。许多组织越来越依赖于机器学习解决方案来提供客户产品和内部运营,因此将持续交付(CD)所获得的经验教训和良好实践应用于机器学习解决方案具有良好的商业意义。
大约十年前,我们引入了持续交付(CD),将其作为我们交付软件解决方案的常规方式。如今解决方案在不断增多,其中也包括机器学习模型,并且我们发现在这种解决方案上,持续交付实践仍然适用。我们将之称为机器学习的持续交付(CD4ML)。尽管 CD 的原则仍保持不变,但用于实现训练、测试、部署和监测模型的端到端过程,其实践和工具需要进行一些修改。例如:版本控制不仅要考虑代码的版本控制,还要考虑数据、模型及其参数的版本控制;测试金字塔扩展为包含模型偏差、公平性、数据和特征验证;部署过程必须考虑如何针对当前的冠军模型来提升和评估新模型的性能。当业界正在为 MLOps 这个新的流行词庆祝时,我们反而认为 CD4ML 才是我们实现端到端(可靠地发布以及持续改进机器学习模型,由想法到生产)过程的整体方法。
利用机器学习使业务应用和服务智能化,并不仅仅是训练模型并为其提供服务。 它需要实现一整套端到端、持续可重复的模型训练、测试、部署、监控和运维周期。机器学习下的持续交付 (CD4ML) 是一种可靠的端到端开发、部署和监控机器学习模型的技术。支撑CD4ML的基础技术栈包括数据访问和探索工具、工件(例如数据、模型和代码)的版本控制、持续交付流水线、用于各种部署和实验的自动化环境设置、模型性能评估和跟踪,以及模型运作的可观测性。公司可以根据现有的技术栈选择自己的工具集。CD4ML强调自动化和避免手工交接。CD4ML是我们开发机器学习模型的默认方法。
随着基于ML的应用程序的日益普及以及构建它们所涉及的技术复杂性,我们的团队严重依赖于机器学习的持续交付(CD4ML),以安全快速且可持续的方式交付此类应用程序。CD4ML是将CD原理和实践引入ML应用程序的学科。它消除了从训练模型到部署生产环境的长周期。在构建和部署模型的端到端过程中,CD4ML消除了不同团队、数据工程师、数据科学家和ML工程师之间的手动传递。使用CD4ML,我们的团队成功地实现了基于ML的应用程序所有组件的自动化版本管理,测试和部署,包括数据,模型和代码。
Continuous delivery for machine learning (CD4ML) apply continuous delivery practices to developing machine learning models so that they are always ready for production. This technique addresses two main problems of traditional machine learning model development: long cycle time between training models and deploying them to production, which often includes manually converting the model to production-ready code; and using production models that had been trained with stale data.
A continuous delivery pipeline of a machine learning model has two triggers: (1) changes to the structure of the model and (2) changes to the training and test data sets. For this to work we need to both version the data sets and the model's source code. The pipeline often includes steps such as testing the model against the test data set, applying automatic conversion of the model (if necessary) with tools such as H2O, and deploying the model to production to deliver value.