View a markdown version of this page

第 6 步。扩大管道 - AWS 规范性指导

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

第 6 步。扩大管道

本指南介绍如何使用具体架构在 AWS 上开始快速构建机器学习管道。在完善管道过程中,还需要考虑其他注意事项,例如元数据管理、实验跟踪和监控。这些重要主题不在本指南的讨论范围内。以下各节讨论管道管理的另一个方面,即管道自动化。

不同级别的自动化

尽管您可以在 SageMaker AI 控制台中手动设置训练管道,但在实践中,我们建议在部署机器学习训练管道时尽量减少手动接触点,以确保机器学习模型的部署具有一致性和重复性。根据您的要求和要解决的业务问题,您可以确定并实施三个层次的部署策略:半自动、全自动和完全托管。

  • 半自动:默认情况下,上一节讨论的步骤采用半自动方法,因为它们通过使用 CloudFormation 模板来部署训练和推理管道。这有助于确保管道的可重复性,并帮助您轻松更改和更新管道。

  • 全自动化 — 更高级的选项是在开发、暂存和生产环境中使用持续集成和持续部署 (CI/CD)。将 CI/CD 实践纳入训练管道的部署,可确保自动化包括可追溯性和质量门。

  • 完全托管:最终,您可以开发一个完全托管的系统,这样您就可以部署一个带有一组简单清单的机器学习训练管道,并且系统可以自行配置和协调所需的 AWS 服务。

在本指南中,我们选择介绍一个具体的架构。但您可以考虑使用其他技术。接下来的两节将讨论平台和编排引擎的一些替代选择。

适用于机器学习工作负载的不同平台

Amazon SageMaker AI 是一项用于训练和提供机器学习模型的 AWS 托管服务。许多用户都喜欢它为运行机器学习工作负载提供的各种内置功能和多种选项。如果您刚刚开始在云中实施机器学习,SageMaker AI 特别有用。SageMaker AI 的主要功能包括:

  • 内置可追溯性(包括标记、训练、模型跟踪、优化和推理)。

  • 内置一键式训练和推理选项,只需极少的 Python 和机器学习经验。

  • 高级超级参数调整。

  • 支持所有主要人工智能和机器学习 (ML/AI) 框架以及自定义 Docker 容器。

  • 内置监控功能。

  • 内置历史记录跟踪功能,包括训练作业、处理作业、批量转换作业、模型、端点和可搜索性。有些历史记录,例如训练、处理和批量转换,是不可变的,只能附加。

使用 SageMaker AI 的替代方法之一是 AWS Batch。AWS Batch 为您的环境提供较低级别的计算和编排控制,但它不是为机器学习而定制的。它的一些主要功能包括:

  • 开箱即用,可根据工作负载自动扩展计算资源。

  • 开箱即用支持作业优先级、重试及作业依赖性。

  • 基于队列的方法,支持构建循环作业和按需作业。

  • 支持 CPU 和 GPU 工作负载。使用 GPU 构建机器学习模型的能力至关重要,因为 GPU 可以显著加快训练过程,尤其是对于深度学习模型而言。

  • 能够为计算环境定义自定义 Amazon 机器映像(AMI)。

用于管道编排的不同引擎

第二个主要组件是管道编排层。AWS 提供 Step Functions,实现完全托管的编排体验。Apache Airflow 是 Step Functions 的热门替代方案。在两者之间做出决定时,请考虑以下事项:

  • 必需的基础设施:AWS Step Functions 是一项完全托管的无服务器服务,而 Airflow 需要管理自己的基础设施,并且基于开源软件。因此, Step Functions 可提供开箱即用的高可用性,而管理 Apache Airflow 则需要额外的步骤。

  • 调度功能 — Step Functions 和 Airflow 均提供类似的功能。

  • 可视化功能和用户界面 — Step Functions 和 Airflow 均提供类似的功能。

  • 在计算图中传递变量:Step Functions 提供了使用 AWS Lambda 函数有限功能,而 Airflow 提供 XCom 接口。

  • 用法:Step Functions 深受 AWS 客户欢迎, Airflow 已被数据工程界广泛采用。