ある企業が AWS 上で機械学習パイプラインを構築しており、毎日新しいトレーニングデータが S3 に追加されます。データエンジニアは特徴量エンジニアリングを Jupyter Notebook で実験し、本番パイプラインは毎日自動的にモデルを再トレーニングして Canary デプロイで本番 API に反映させたいと考えています。MLOps の最善のプラクティスに従った、最も包括的な AWS アーキテクチャはどれですか?
- A. Amazon SageMaker Studio でデータ探索と実験を行い、SageMaker Pipelines で自動化された ML ワークフローを定義する。SageMaker Model Registry でモデルのバージョン管理と承認フローを管理し、SageMaker Endpoints でのデプロイに Blue/Green デプロイメント(カナリア重み付け)を使用する
- B. AWS Glue で特徴量エンジニアリングを行い、EMR で ML トレーニングを実行する。ECS コンテナで推論 API をホストし、CodeDeploy でカナリアデプロイを実装する
- C. Google Colab でノートブックを実行し、モデルを S3 にアップロードして Lambda で推論する
- D. EC2 インスタンスで Jupyter Notebook を実行し、cron ジョブでトレーニングスクリプトを毎日実行する。モデルを S3 に保存し、Lambda 関数で推論を実行する
解答と解説を見る
正解: A
SageMaker Studio は統合 ML 開発環境として Jupyter Notebook を提供します。SageMaker Pipelines は ML ワークフローの自動化(データ前処理→トレーニング→評価→デプロイ)を定義でき、EventBridge でスケジュールトリガーが可能です。Model Registry でモデルのバージョン管理と本番承認フローを管理し、SageMaker Endpoint の Blue/Green デプロイでカナリアデプロイが実現できます。完全な MLOps ライフサイクルを一つのサービスファミリーで完結できます。 D: cron ジョブと手動管理は MLOps のベストプラクティスに反し、実験管理、再現性、モデルのバージョン管理、カナリアデプロイが困難です。 B: Glue + EMR + ECS + CodeDeploy の組み合わせは機能しますが、ML に特化した機能(実験トラッキング、モデルレジストリ、モデルモニタリング)が欠けており、複数サービスの統合管理の運用負荷が高くなります。 C: Google Colab は AWS 環境外のサービスであり、AWS の MLOps ベストプラクティスに従う要件に反します。
📚 関連サービスの解説: Amazon SageMaker