コンテンツ分野 3: ML ワークフローのデプロイとオーケストレーション
タスク
タスク 3.1: 既存のアーキテクチャと要件に基づいてデプロイインフラストラクチャを選択する。
対象知識:
デプロイのベストプラクティス (バージョニング、ロールバック戦略など)
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: 既存のアーキテクチャと要件に基づいてインフラストラクチャを作成し、スクリプト化する。
対象知識:
オンデマンドリソースとプロビジョンドリソースの違い
スケーリングポリシーを比較する方法
Infrastructure as Code (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、SageMaker AI での独自コンテナ (BYOC) の使用などによる]。
VPC ネットワーク内に SageMaker AI エンドポイントを設定する。
SageMaker AI SDK を使用してモデルをデプロイおよびホストする。
自動スケーリングのための具体的なメトリクス (モデルレイテンシー、CPU 使用率、インスタンスごとの呼び出し回数など) を選択する。
タスク 3.3: 自動オーケストレーションツールを使用して、継続的インテグレーションおよび継続的デリバリー (CI/CD) パイプラインを設定する。
対象知識:
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 パイプラインで自動テスト (統合テスト、単体テスト、エンドツーエンドテストなど) を作成する。
モデルを再トレーニングするためのメカニズムを構築および統合する。