MLAMLワークフローのデプロイとオーケストレーション
機械学習エンジニアが SageMaker Pipelines を使用してトレーニングと評価を自動化しています。評価ジョブで計算した F1 スコア(適合率と再現率の調和平均)が 0.85 以上の場合のみ、モデルを Model Registry に登録するようパイプラインを設計したいと考えています。この要件を最も適切に実装する方法はどれですか?
AEvaluationStep の後に AWS Lambda 関数を呼び出し、Lambda 内でスコアを確認してから RegisterModel API を直接呼び出してモデルを登録する
Lambda 方式も動作しますが、パイプラインの可視性・再現性の観点でネイティブ機能が推奨されます。
BSageMaker Pipelines の ConditionStep で F1 スコアを閾値と比較し、条件を満たした場合のみ RegisterModel ステップへ自動的に分岐する
✓ 正解
SageMaker Pipelines の ConditionStep はパイプライン内で条件分岐を実現するネイティブ機能です。ProcessingStep などが出力した JSON メトリクスをパイプラインプロパティとして参照し、ConditionGreaterThanOrEqualTo などの条件クラスで閾値比較を行えます。条件が真なら if_steps(RegisterModel)、偽なら else_steps(通知など)へ分岐でき、外部 Lambda を呼ばずパイプライン内で完結します。
CSageMaker Experiments のトライアルコンポーネントにスコアを記録し、手動レビューと承認を経た後に Model Registry へ登録する
SageMaker Experiments はトライアルコンポーネントへのメトリクス記録・比較に特化した機能であり、パイプラインの自動条件分岐には使用できず、手動レビューが必要になるため自動化要件を満たしません。
Dトレーニングジョブの ObjectiveMetricValue を閾値と比較するカスタムメトリクスフィルターを CloudWatch Logs で設定し、SNS 通知をトリガーする
CloudWatch Logs メトリクスフィルター+SNS 通知はモニタリング・アラート通知向けの仕組みであり、パイプライン内でのモデル自動登録の条件制御には使用できません。
解説
SageMaker Pipelines の ConditionStep はパイプライン内で条件分岐を実現するネイティブ機能です。ProcessingStep などが出力した JSON メトリクスをパイプラインプロパティとして参照し、ConditionGreaterThanOrEqualTo などの条件クラスで閾値比較を行えます。条件が真なら if_steps(RegisterModel)、偽なら else_steps(通知など)へ分岐でき、外部 Lambda を呼ばずパイプライン内で完結します。
選択肢Aの Lambda 方式も動作しますが、パイプラインの可視性・再現性の観点でネイティブ機能が推奨されます。
選択肢Cの SageMaker Experiments はトライアルコンポーネントへのメトリクス記録・比較に特化した機能であり、パイプラインの自動条件分岐には使用できず、手動レビューが必要になるため自動化要件を満たしません。
選択肢Dの CloudWatch Logs メトリクスフィルター+SNS 通知はモニタリング・アラート通知向けの仕組みであり、パイプライン内でのモデル自動登録の条件制御には使用できません。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでMLAを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →