

# 内容领域 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 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 CDK）
+ 容器化概念和 AWS 容器服务
+ 如何使用 SageMaker AI 终端节点弹性伸缩策略来满足可扩展性要求（例如：基于需求、时间）

具备以下技能：
+ 应用最佳实践来打造可维护、可扩展且经济实惠的 ML 解决方案（例如：在 SageMaker AI 终端节点上弹性伸缩、动态添加竞价型实例、使用 Amazon EC2 实例、在终端节点后面使用 Lambda）
+ 自动预置计算资源，包括堆栈之间的通信（例如：使用 CloudFormation、AWS CDK）
+ 构建与维护容器（例如： Amazon ECR、Amazon EKS、Amazon ECS，以及带有 SageMaker AI 的自备容器 [BYOC]）
+ 在 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 管道中创建自动化测试（例如：集成测试、单元测试、端到端测试）
+ 构建并集成用于重新训练模型的机制