作者|Roshini Johri 编译|VK 来源|Towards Data Science
将大规模的机器学习系统投入生产,建立一个漂亮的流线化功能库,这已经成为我一个新痴迷的技术点。
我最近开始了一系列关于学习和教学如何做到这一点的三部分教程,以实现不同的机器学习工作流程。本文假设了机器学习模型的基本知识,并重点介绍了如何在生产中建立工作流和部署。
在本系列的第一部分中,我们将在Amazon Sagemaker上设置此功能。我们将使用sklearn的波士顿住房数据集。
机器学习生命周期
让我们花点时间来回顾一下机器学习的生命周期。简化的机器学习生命周期如下所示:
现在,第一部分,数据准备,实际上应该是包括数据预处理和用于接下来步骤所需的特征工程。我将简要地概述这些步骤是什么样子。
- 获取数据:这是一个从repo、etl等读取数据的过程,将数据移动到一个位置,以形成训练数据的原始版本。
- 清理数据:这个阶段更多的是做一些基本的清理,比如类型转换、空处理、确保字符串/类别等是一致的
- 准备/转换:特征转换、派生、高阶特征,如交互特征、进行一些编码等。
下一阶段包括建模和评估阶段:
- 训练模型:在这个阶段,你的数据应该以特征向量的形式出现,标签分为训练、验证和测试。在这个阶段,你将读取这些数据,在训练集上训练你的模型,在验证集上调参并在测试集上进行测试!这也是你保存模型以进行评估的阶段。
- 评估模型:评估阶段,判断是否“我的模型做正确的事情”,是最重要的阶段之一,我觉得我们从来没有花足够的时间在这个阶段上。模型评估将帮助你了解模型性能。注意你的模型评估指标,并选择正确的指标。
最后,也是我们阅读本文的真正原因,部署。
- 部署到生产环境:这是准备将模型发布到公共的阶段。我们要注意概念漂移和模型衰减(由于底层分布的变化而导致性能的变化)
- 监控/收集/评估数据:模型性能、输入/输出路径、错误度量、日志、模型组件等都将被时间戳标记和记录,应围绕模型选择建立度量监控和警报系统,以实现完美的管道!
以上是一个简化但很漂亮的机器学习管道。现在让我们看看如何使用Amazon Sagemaker设置一个。
Amazon Sagemaker
现在,第一步从创建AWS帐户开始。如果你已经熟悉Amazon提供的实例(ec2实例)的类型,这会有所帮助。
如果没有,可以查看这个链接:https://aws.amazon.com/sagemaker/pricing/instance-types/
Sagemaker实例针对运行机器学习(ML)算法进行了优化。实例的类型还取决于区域和可用区域。