本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
步骤 6. 扩大管道
本指南介绍了如何使用具体架构 AWS 快速开始构建机器学习管道。在完善管道过程中,还需要考虑其他注意事项,例如元数据管理、实验跟踪和监控。这些重要主题不在本指南的讨论范围内。以下各节讨论管道管理的另一个方面,即管道自动化。
不同级别的自动化
尽管您可以在 SageMaker AI 控制台中手动设置训练管道,但实际上,我们建议在部署机器学习训练管道时尽量减少手动接触点,以确保机器学习模型得到一致且重复的部署。根据您的要求和要解决的业务问题,您可以确定并实施三个层次的部署策略:半自动、全自动和完全托管。
-
半自动:默认情况下,上一节讨论的步骤采用半自动方法,因为它们通过使用 AWS CloudFormation 模板来部署训练和推理管道。这有助于确保管道的可重复性,并帮助您轻松更改和更新管道。
-
完全自动化 — 更高级的选择是使用持续集成和持续部署(培训管道部署的CI/CD) to the development, staging, and production environments. Incorporating CI/CD实践可以确保自动化包括可追溯性和质量门)。
-
完全托管 — 最终,您可以开发一个完全托管的系统,这样您就可以部署带有一组简单清单的机器学习训练管道,并且系统可以自行配置和协调所需的 AWS 服务。
在本指南中,我们选择介绍一个具体的架构。但您可以考虑使用其他技术。接下来的两节将讨论平台和编排引擎的一些替代选择。
适用于机器学习工作负载的不同平台
Amazon SageMaker AI
-
内置可追溯性(包括标记、训练、模型跟踪、优化和推理)。
-
内置一键式训练和推理选项,只需极少的 Python 和机器学习经验。
-
高级超级参数调整。
-
支持所有主要人工智能和机器学习 (ML/AI) 框架以及自定义 Docker 容器。
-
内置监控功能。
-
内置历史记录跟踪功能,包括训练作业、处理作业、批量转换作业、模型、端点和可搜索性。有些历史记录,例如训练、处理和批量转换,是不可变的,只能附加。
使用 SageMaker 人工智能的替代方法之一是AWS Batch
-
Out-of-the-box 根据工作负载自动扩展计算资源。
-
Out-of-the-box 支持作业优先级、重试次数和作业依赖性。
-
基于队列的方法,支持构建循环作业和按需作业。
-
支持 CPU 和 GPU 工作负载。使用 GPU 构建机器学习模型的能力至关重要,因为 GPU 可以显著加快训练过程,尤其是对于深度学习模型而言。
-
能够为计算环境定义自定义 Amazon 机器映像(AMI)。
用于管道编排的不同引擎
第二个主要组件是管道编排层。 AWS 提供 Step Func
-
必需的基础架构 — AWS Step Functions 是一项完全托管的服务,并且是无服务器的,而 Airflow 需要管理您自己的基础架构,并且基于开源软件。因此, Step Functions 可提供开箱即用的高可用性,而管理 Apache Airflow 则需要额外的步骤。
-
调度功能 — Step Functions 和 Airflow 均提供类似的功能。
-
可视化功能和用户界面 — Step Functions 和 Airflow 均提供类似的功能。
-
在计算图中传递变量 — Step Functions 提供的 AWS Lambda 函数使用功能有限,而 Airflow 提供 XCom 接口。
-
用法 — Step Functions 在 AWS 客户中非常受欢迎,Airflow 已被数据工程界广泛采用。