MLAMLワークフローのデプロイとオーケストレーション
MLエンジニアは、SageMaker リアルタイム推論エンドポイントで本番トラフィックの一部(10%)を新しいモデルバージョンに送りながら、問題が発生した場合は即座に旧バージョンに戻せる安全なデプロイ戦略を実装したいと考えています。SageMaker の機能を最大限に活用して、この要件を最もシンプルに実現する方法はどれですか?
A旧モデルと新モデルをそれぞれ別の SageMaker エンドポイントにデプロイし、Application Load Balancer(ALB)でトラフィックを 90:10 に分割する
ALBで複数エンドポイント間のトラフィック分割を管理する構成は複雑であり、エンドポイント管理も分散します。UpdateEndpointWeightsAndCapacitiesでの動的調整も使用できません。
BSageMaker エンドポイントの本番バリアント(Production Variants)機能を使用して、同一エンドポイント内に旧モデルと新モデルを設定し、InitialVariantWeight で 90:10 のトラフィック分割を行う
✓ 正解
SageMaker Production Variants機能は単一エンドポイント内で複数モデルをデプロイでき、InitialVariantWeightで段階的ロールアウト(カナリアリリース)が実現します。問題発生時にAPIで即座に旧バージョンへ切り戻し可能です。
CSageMaker Model Registry でモデルバージョンを管理し、Blue/Green デプロイを手動でスクリプト化して旧バージョンへのロールバックを実現する
Model Registry内でのバージョン管理と手動Blue/Greenスクリプトは運用負荷が高く、Production Variantsのマネージド機能と比べて効率が低くなります。
DSageMaker Pipelines の ConditionStep を使用して、A/Bテスト(統計的仮説検定)の結果が有意になるまで新モデルへの切り替えを保留する
SageMaker Pipelinesの ConditionStepはデプロイ手法ではなく、パイプライン実行フローの評価結果に基づく分岐制御機能であり、段階的ロールアウト実装には不適切です。
解説
SageMaker の Production Variants(本番バリアント)は、単一エンドポイント内に複数のモデルバージョンをデプロイしてトラフィックを重み付きで分割できる機能です。InitialVariantWeight を 90:10 に設定することで段階的ロールアウト(カナリアリリース)が実現でき、問題発生時は UpdateEndpointWeightsAndCapacities API で即座に旧バージョンに切り戻しが可能です。
選択肢AはALBで2つの別エンドポイントを管理する構成はリソースが増えて複雑になり、SageMakerのネイティブ機能を最大限に活かしたシンプルな解決策ではありません。
選択肢Cは手動スクリプトによるBlue/Greenデプロイは実装・管理コストが高く、Production Variantsを使う方法と比べてシンプルではありません。
選択肢DのSageMaker PipelinesのConditionStepはモデル評価・承認フローの自動化に使うものであり、本番トラフィックのリアルタイム分割には対応していません。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでMLAを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →