使用 AWS Controllers for Kubernetes 部署 Amazon SageMaker 管道

在本文中,我们展示了熟悉 Jupyter 笔记本和 SageMaker 环境的 ML 工程师如何与熟悉 Kubernetes 和相关工具的 DevOps 工程师高效合作,设计和维护具有适合其组织的基础架构的 ML 管道。这使 DevOps 工程师能够使用他们习惯的同一套工具和环境来管理 ML 生命周期的所有步骤。

来源:亚马逊云科技 _机器学习

Kubernetes是用于管理容器的流行编排平台。它的可扩展性和负载平衡功能使其非常适合处理机器学习(ML)应用程序典型的可变工作负载。 DevOps工程师经常使用Kubernetes来管理和扩展ML应用程序,但是在使用ML模型之前,必须对其进行培训和评估,如果获得的模型的质量令人满意,则将其上传到模型注册表。

Amazon SageMaker提供了删除建筑物和部署ML模型的不体分化繁重的功能。 Sagemaker简化了管理依赖性,容器图像,自动缩放和监视的过程。专门针对模型构建阶段,Amazon Sagemaker管道通过管理处理数据,训练模型和运行评估测试所需的基础架构和资源来自动化该过程。

Amazon Sagemaker Amazon Sagemaker Pipelines

对DevOps工程师的挑战是使用Kubernetes来管理部署阶段的额外复杂性,同时诉诸其他工具(例如AWS SDK或AWS Cloud Formation)来管理模型构建管道。简化此过程的一种替代方法是将AWS控制器用于Kubernetes(ACK)来管理和部署SageMaker培训管道。 ACK允许您利用托管模型构建管道,而无需在Kubernetes群集之外定义资源。

AWS CloudFormation aws kubernetes的控制器

在这篇文章中,我们介绍了一个示例,以帮助DevOps工程师使用相同的工具包管理整个ML生命周期(包括培训和推理)。

解决方案概述

JSON管道定义 亚马逊简单存储服务 AWS密钥管理服务 Amazon S3 Amazon Elastic Kubernetes服务

先决条件

要跟随,您应该有以下先决条件:

  • 将创建ML管道的EKS群集。
  • eks群集 AWS身份和访问管理 iam:createrole iam:artachrolepolicy 教程