AWS認定資格 WEB問題集&徹底解説

機械学習エンジニア–アソシエイト

正解 D問題
分野2:ML モデルの開発 分野3:ML ワークフローのデプロイとオーケストレーション タスクステートメント2.2:モデルのトレーニングと改良 タスクステートメント3.1:既存アーキテクチャと要件に基づくデプロイインフラの選択
合格に向けて、もっと深く学習する
豊富な問題と詳細なAWSサービス解説を、24時間無料でお試しいただけます
プレミアム会員機能を無料で試す ❯
問題文と選択肢
ある企業は、一般的なオープンソースMLフレームワークとは異なる、社内開発の特殊な機械学習ライブラリ群を活用して最先端のモデルを構築しています。この独自ライブラリはAmazon SageMakerが直接サポートする組み込みアルゴリズムやフレームワークに含まれていません。この企業は、モデルのトレーニングとデプロイメントにAmazon SageMakerのインフラストラクチャを利用しつつ、既存の特殊な開発環境を維持したいと考えています。この要件を満たすため、彼らはAmazon SageMakerの「独自のコンテナを持ち込む(Bring Your Own Container)」アプローチを採用することを決定しました。このアプローチを選択することで得られる主なメリットと、企業側が引き続き責任を負うべきタスクの組み合わせとして最も適切なものはどれですか。
  • Amazon SageMakerが自動的にカスタムコンテナイメージを生成し、その配布を管理するため、企業はモデルコードのみを提供すればよい。
  • Amazon SageMakerがトレーニングおよび推論のランタイム環境を完全に管理し、企業はカスタムコンテナ内で実行されるモデルのトレーニングスクリプトと推論ハンドラのみを提供すればよい。
  • 企業はAmazon SageMakerの組み込みトレーニングアルゴリズムを引き続き利用でき、推論エンドポイントのみを独自のコンテナでカスタマイズすることで、独自のMLライブラリを組み込むことができる。
  • 企業はAmazon SageMakerのプラットフォーム上で独自のランタイム環境を完全に制御できるが、カスタムDockerイメージのビルド、コンテナ内部の依存関係の管理、Amazon ECRへのイメージ登録は企業側が責任を負う。
解説 頻出度★★★★
この問題は、「SageMaker が直接サポートしないカスタムライブラリ × トレーニングと推論の両方 × BYOC」の要件で、ランタイムの自由度と引き換えにコンテナ(イメージのビルド・依存関係・ECR 登録)の責任がユーザー側に来るという責任分界を理解しているかがポイント

A. Amazon SageMakerが自動的にカスタムコンテナイメージを生成し、その配布を管理するため、企業はモデルコードのみを提供すればよい。

Amazon SageMaker がカスタムコンテナイメージを自動生成することはありません。Dockerfile を書き、必要なライブラリを組み込み、イメージをビルドするのはユーザーの作業です。

「モデルコードだけ渡せばよい」のは、SageMaker が用意した組み込みアルゴリズムやマネージドフレームワークコンテナ(スクリプトモード)を使う場合の話であり、そもそも今回はそれらが独自ライブラリに対応していないから BYOC を選んでいます。前提を取り違えた選択肢です。

B. Amazon SageMakerがトレーニングおよび推論のランタイム環境を完全に管理し、企業はカスタムコンテナ内で実行されるモデルのトレーニングスクリプトと推論ハンドラのみを提供すればよい。

SageMaker が管理するのはコンテナを動かすインフラストラクチャ(インスタンスの起動・ジョブ実行・エンドポイントのホスティング)であって、コンテナ内部のランタイム環境ではありません。OS イメージ・ライブラリ・依存関係はユーザーが持ち込む Docker イメージで定義します。

「トレーニングスクリプトと推論ハンドラだけを提供する」のは、マネージドフレームワークコンテナを使うスクリプトモードの説明であり、BYOC の説明ではありません。BYOC とスクリプトモードを混同させる代表的なひっかけです。

C. 企業はAmazon SageMakerの組み込みトレーニングアルゴリズムを引き続き利用でき、推論エンドポイントのみを独自のコンテナでカスタマイズすることで、独自のMLライブラリを組み込むことができる。

BYOC は組み込みアルゴリズムでは扱えない独自ライブラリを使うための手段であり、「組み込みアルゴリズムを使い続ける」という前提と矛盾します。

また、独自コンテナはトレーニングにも推論にも適用できます(推論だけに限定される仕組みではありません)。実際、トレーニング用と推論用のイメージを分けることも、1 つのイメージで両方をまかなうこともできます。「推論エンドポイントのみカスタマイズ可能」という制限は存在しません。

正解

D. 企業はAmazon SageMakerのプラットフォーム上で独自のランタイム環境を完全に制御できるが、カスタムDockerイメージのビルド、コンテナ内部の依存関係の管理、Amazon ECRへのイメージ登録は企業側が責任を負う。

BYOC の本質はランタイム環境の完全な制御権をユーザーが握ることです。任意の OS パッケージ・言語・自社製 ML ライブラリを Docker イメージに封じ込め、SageMaker のトレーニングジョブや推論エンドポイントとして実行できます。

その引き換えとして、Dockerfile の作成とイメージのビルド、コンテナ内部の依存関係の管理、Amazon ECR へのイメージ登録はユーザー側の責任になります。SageMaker は ECR に登録されたイメージ URI を受け取り、それを指定のインスタンス上で実行する部分を引き受けます。

「自由度を得る代わりにコンテナの保守責任を負う」という責任分界を正しく述べた唯一の選択肢であり、これが正解です。

構成図

[ユーザー責任]Dockerfile 作成 → 依存関係の導入 → イメージのビルド
   │ docker push
   ▼
Amazon ECR(イメージ登録もユーザー責任)
   │ イメージ URI を指定
   ▼
[SageMaker 管理]トレーニングジョブ/推論エンドポイントの実行基盤
これだけ覚える(記憶フック)
BYOC=「中身は自分、外側は SageMaker」。Docker イメージと ECR はユーザー、インフラ実行はマネージド。
正解への思考ルート 問題文から要件を抽出し、選択肢の適否を判断するのがポイントです。
要件 判断ポイント
独自ライブラリが組み込みアルゴリズム・マネージドフレームワークに含まれない 組み込みアルゴリズムを前提にした選択肢はBYOC を選ぶ動機そのものと矛盾する
→選択肢(C)を消す
独自のコンテナを持ち込む(BYOC)アプローチを採用済み コンテナイメージはユーザーがビルドして Amazon ECR に登録する。SageMaker が自動生成する仕組みはない
→選択肢(A)を消す
SageMaker のインフラストラクチャは利用したい SageMaker が管理するのはコンテナの実行基盤まで。コンテナ内部のランタイム(OS・依存関係)はユーザー定義
→選択肢(B)を消す
メリットと企業側の責任の「組み合わせ」を問われている ランタイムの完全制御(メリット)× イメージのビルド・依存関係・ECR 登録(責任)の対を選ぶ
→選択肢(D)が正解
トレーニングとデプロイメントの両方で使いたい BYOC はトレーニングにも推論にも適用可能。片方だけという制限はない
→選択肢(C)を消す
ひっかけポイント
  • 選択肢 B の「トレーニングスクリプトと推論ハンドラのみを提供」はスクリプトモード(マネージドフレームワークコンテナ)の説明。BYOC と似た文面で混ぜてくる典型的なひっかけ
  • 「SageMaker がランタイム環境を完全に管理」という文言は一見マネージドサービスらしく見えるが、BYOC ではランタイムを定義するのはユーザーの Docker イメージ。SageMaker が管理するのはインスタンスなどの実行基盤
  • 選択肢 C の「組み込みアルゴリズムを引き続き利用できる」は、組み込みが独自ライブラリに対応していないから BYOC を選んだという設問の前提と矛盾する
  • BYOC は「何でもできる」=「何でも自分でやる」。自由度とマネージド度はトレードオフという視点で選択肢を読むと、責任範囲を誇張/過小に書いた選択肢を落とせる
出題バリエーション 同じ知識が本番では条件を変えて出題されます。
問題文がこう変わったら 正解はこう変わる
PyTorch や TensorFlow などの標準フレームワークを使い、独自の学習スクリプトだけ持ち込みたい」 BYOC ではなく マネージドフレームワークコンテナ+スクリプトモードが正解軸に。コンテナ管理は不要。
「既存のフレームワークコンテナに数個の追加ライブラリを入れたいだけ AWS のディープラーニングコンテナを拡張(extend)する方式や requirements.txt の同梱が正解軸に。ゼロからのイメージ作成は過剰。
「カスタムコンテナのイメージをどこに置くかを問われる」 Amazon ECR が答え。SageMaker はトレーニング/推論とも ECR のイメージ URI を参照する。
推論のみ独自ロジックで、学習は組み込みアルゴリズムを使いたい」 組み込みアルゴリズムで学習し、推論用のカスタムコンテナを用意する構成が成立する(本問の選択肢 C に近い形が正解になり得る)。
関連サービスの解説 Amazon Elastic Container Registry (Amazon ECR)
Amazon SageMaker
リファレンス この問題を解くために必要な知識を扱う公式ドキュメントです。
知識項目 公式ドキュメント
SageMaker のトレーニング/デプロイ用 Docker コンテナ(BYOC) モデルのトレーニングとデプロイのための Docker コンテナ - Amazon SageMaker AI
+ 質問 / コメント
解答・解説に疑問がある場合や、よりよい解説がある場合など、お気軽にコメントください。ただし、短文コメントは表示されません。また、中傷などコメントの内容によっては、会員機能を停止させて頂きます。教え学び合える場になれば嬉しいです。(コメント投稿にはログインが必要です)
正答率 59%
No.1 解説
ある企業は、一般的なオープンソースMLフレームワークとは異なる、社内開発の特殊な機械学習ライブラリ群を活用して最先端のモデルを構築しています。この独自ライブラリはAmazon SageMakerが直接サポートする組み込みアルゴリズムやフレームワークに含まれていません。この企業は、モデルのトレーニングとデプロイメントにAmazon SageMakerのインフラストラクチャを利用しつつ、既存の特殊な開発環境を維持したいと考えています。この要件を満たすため、彼らはAmazon SageMakerの「独自のコンテナを持ち込む(Bring Your Own Container)」アプローチを採用することを決定しました。このアプローチを選択することで得られる主なメリットと、企業側が引き続き責任を負うべきタスクの組み合わせとして最も適切なものはどれですか。
  • Amazon SageMakerが自動的にカスタムコンテナイメージを生成し、その配布を管理するため、企業はモデルコードのみを提供すればよい。
  • Amazon SageMakerがトレーニングおよび推論のランタイム環境を完全に管理し、企業はカスタムコンテナ内で実行されるモデルのトレーニングスクリプトと推論ハンドラのみを提供すればよい。
  • 企業はAmazon SageMakerの組み込みトレーニングアルゴリズムを引き続き利用でき、推論エンドポイントのみを独自のコンテナでカスタマイズすることで、独自のMLライブラリを組み込むことができる。
  • 企業はAmazon SageMakerのプラットフォーム上で独自のランタイム環境を完全に制御できるが、カスタムDockerイメージのビルド、コンテナ内部の依存関係の管理、Amazon ECRへのイメージ登録は企業側が責任を負う。

(会員限定)当問題の評価をお願いします。改善に活用します。