第3分野: MLワークフローのデプロイとオーケストレーション (22%)
タスク3.1: 既存のアーキテクチャと要件に基づいてデプロイインフラストラクチャを選択する
対象知識
- デプロイのベストプラクティス(バージョニング、ロールバック戦略など)
- AWSのデプロイサービス(SageMakerなど)
- MLモデルをリアルタイムにバッチ処理する方法
- 本番環境とテスト環境にコンピューティングリソース(CPU、GPUなど)をプロビジョニングする方法
- デプロイエンドポイントのモデルとエンドポイントの要件(サーバーレスエンドポイント、リアルタイムエンドポイント、非同期エンドポイント、バッチ推論など)
- 適切なコンテナの選択方法(提供されたコンテナ、カスタマイズされたコンテナなど)
- エッジデバイス上のモデルを最適化する方法(SageMaker Neoなど)
対象スキル
- パフォーマンス、コスト、レイテンシーのトレードオフを評価
- 要件に基づき、トレーニングと推論に適したコンピューティング環境を選択
- 適切なデプロイオーケストレーターを選択
- マルチモデルデプロイまたはマルチコンテナデプロイを選択
- 適切なデプロイターゲットを選択
- モデルデプロイ戦略を選択
模擬試験問題
問題: CloudFormationでSageMakerエンドポイントがホストするMLモデルを展開したい。
解答(順番に):
- AWS::SageMaker::Model
- AWS::SageMaker::EndpointConfig
- AWS::SageMaker::Endpoint
ALBの背後にSageMakerエンドポイントをデプロイ
問題: ALBの背後にSageMakerエンドポイントをデプロイしてカナリアデプロイみたいなこともできる。
解答:
- プロダクションバリアントをSageMakerエンドポイントに追加して、重みを設定する
タスク3.2: 既存のアーキテクチャと要件に基づいてインフラストラクチャを作成し、スクリプト化する
対象知識
- オンデマンドリソースとプロビジョンドリソースの違い
- スケーリングポリシーを比較する方法
- Infrastructure as Code (IaC)のオプション(CloudFormation、AWS CDKなど)のトレードオフとユースケース
- コンテナ化の概念とAWSのコンテナサービス
- SageMakerエンドポイントのオートスケーリングポリシーを使用してスケーラビリティの要件を満たす方法
対象スキル
- 保守可能かつスケーラブルで費用対効果の高いMLソリューションを有効にするベストプラクティスを適用
- スタック間の通信を含むコンピューティングリソースのプロビジョニングを自動化
- コンテナを構築および保守
- VPCネットワーク内にSageMakerエンドポイントを設定
- SageMaker SDKを使用してモデルをデプロイおよびホスト
- オートスケーリングのための具体的なメトリクスを選択
学習ポイント
- コスト管理: SageMakerドメイン内でリソースタグを追加してコスト管理
- Budgets: コンピュート費用が予算の閾値を超えたら通知
タスク3.3: 自動オーケストレーションツールを使用して、CI/CDパイプラインを設定する
対象知識
- AWS CodePipeline、CodeBuild、CodeDeployの機能とクォータ
- データ取り込みのオートメーションとオーケストレーションサービスとの統合
- バージョン管理システム(Gitなど)と基本的な使用方法
- CI/CDの原則とMLワークフローへの適合性
- デプロイ戦略(ブルー/グリーン、Canary、線形など)とロールバックアクション
- コードリポジトリとパイプラインの連携方法
対象スキル
- CodeBuild、CodeDeploy、CodePipelineを設定およびトラブルシューティング
- 継続的デプロイフロー構造を適用してパイプラインを呼び出す
- AWSサービスを使用してオーケストレーションを自動化
- トレーニングジョブと推論ジョブを設定
- CI/CDパイプラインで自動テストを作成
- モデルを再トレーニングするためのメカニズムを構築および統合
模擬試験問題
SageMaker Pipelinesでの手動承認ワークフロー
問題: SageMakerで手動承認ワークフローを実装して、承認されたモデルだけが本番環境にデプロイされるようにしたい。
解答:
- SageMaker Pipelineで手動承認ステップを含んだワークフローを定義できる
- これに加えてSageMaker ModelRegistryに登録されたときにSDKから承認済みにステータス更新する仕組みも作れる
SageMaker PipelinesでGlueのデータ処理ジョブ出力を使用
問題: SageMaker PipelinesでGlueのデータ処理ジョブ出力を使用したい。
解答: CallbackステップからGlueのジョブを起動し、そのジョブが完了するまで待機する