

# 内容领域 3： ML 工作流的部署和编排
<a name="machine-learning-engineer-associate-01-domain3"></a>

**Topics**
+ [任务 3.1： 根据现有架构和要求选择部署基础设施](#machine-learning-engineer-associate-01-domain3-task1)
+ [任务 3.2： 根据现有架构和要求创建基础设施并编写脚本](#machine-learning-engineer-associate-01-domain3-task2)
+ [任务 3.3： 使用自动编排工具来设置持续集成和持续交付 (CI/CD) 管道](#machine-learning-engineer-associate-01-domain3-task3)

## 任务 3.1： 根据现有架构和要求选择部署基础设施
<a name="machine-learning-engineer-associate-01-domain3-task1"></a>

掌握以下知识：
+ 部署最佳实践（例如，版本控制、回滚策略）
+ AWS 部署服务（例如，Amazon SageMaker AI）
+ 实时和批量提供 ML 模型的方法
+ 如何在生产环境和测试环境中预置计算资源（例如 CPU、GPU）
+ 部署终端节点的模型和终端节点要求（例如，无服务器终端节点、实时终端节点、异步终端节点、批量推理）
+ 如何选择合适的容器（例如，已提供容器或自定义容器）
+ 在边缘设备上优化模型的方法（例如 SageMaker Neo）

具备以下技能：
+ 评估性能、成本和延迟权衡
+ 根据需求（例如 GPU 或 CPU 规格、处理器系列、联网带宽），选择合适的计算环境用于训练和推理
+ 选择合适的部署编排程序（例如 Apache Airflow、SageMaker Pipelines）
+ 选择多模型或多容器部署
+ 选择合适的部署目标（例如，SageMaker AI 终端节点、Kubernetes、Amazon Elastic Container Service [Amazon ECS]、Amazon Elastic Kubernetes Service [Amazon EKS]、AWS Lambda）
+ 选择模型部署策略（例如，实时、批量）

## 任务 3.2： 根据现有架构和要求创建基础设施并编写脚本
<a name="machine-learning-engineer-associate-01-domain3-task2"></a>

掌握以下知识：
+ 按需资源和预置资源之间的区别
+ 如何比较扩缩策略
+ 基础设施即代码 (IaC) 选项（例如 AWS CloudFormation、AWS Cloud Development Kit [AWS CDK]）的权衡和使用案例
+ 容器化概念和 AWS 容器服务
+ 如何使用 SageMaker AI 终端节点弹性伸缩策略来满足可扩展性要求（例如，基于需求、时间）

具备以下技能：
+ 应用最佳实践来打造可维护、可扩展且经济实惠的 ML 解决方案（例如，在 SageMaker AI 终端节点上弹性伸缩、动态添加竞价型实例、使用 Amazon EC2 实例、在终端节点后面使用 Lambda）
+ 自动预置计算资源，包括堆栈之间的通信（例如，使用 CloudFormation、AWS CDK）
+ 构建和维护容器（例如，Amazon Elastic Container Registry [Amazon ECR]、Amazon EKS、Amazon ECS，将自带容器 [BYOC] 与 SageMaker AI 结合使用）
+ 在 VPC 网络中配置 SageMaker AI 终端节点
+ 使用 SageMaker AI SDK 部署和托管模型
+ 为自动扩缩选择特定的指标（例如，模型延迟、CPU 利用率、每个实例的调用数）

## 任务 3.3： 使用自动编排工具来设置持续集成和持续交付 (CI/CD) 管道
<a name="machine-learning-engineer-associate-01-domain3-task3"></a>

掌握以下知识：
+ AWS CodePipeline、AWS CodeBuild 和 AWS CodeDeploy 的功能和配额
+ 使用编排服务的数据摄取自动化和集成
+ 版本控制系统和基本用法（例如 Git）
+ CI/CD 原则以及如何将这些原则融入 ML 工作流
+ 部署策略和回滚操作（例如，蓝/绿、金丝雀、线性）
+ 代码存储库和管道如何协同工作

具备以下技能：
+ CodeBuild、CodeDeploy 和 CodePipeline（包括各阶段）的配置和故障排除
+ 应用持续部署流程结构来调用管道（例如 Gitflow、GitHub Flow）
+ 使用 AWS 服务来自动进行编排（例如，部署 ML 模型、自动模型构建）
+ 配置训练和推理作业（例如，使用 Amazon EventBridge 规则、SageMaker Pipelines、CodePipeline）
+ 在 CI/CD 管道中创建自动化测试（例如，集成测试、单元测试、端到端测试）
+ 构建并集成用于重新训练模型的机制