- v3でEstimator系を廃止し、訓練はModelTrainerに統一
- SourceCodeでコードを実行時に注入、コンテナ再ビルド不要
- scikit-learnとStable Diffusion 3.5の例を公開
発表の概要
アマゾン・ウェブ・サービス(AWS)は2026年8月26日、機械学習プラットフォーム「Amazon SageMaker AI」向けのPython SDK v3でスクリプトモードを刷新したと発表した。スクリプトモードは、AWSが提供するマネージドなコンテナ上で独自の学習・推論コードを動かす仕組みで、2021年にも解説記事が公開されていた。今回の記事では、v3で追加された新APIの使い方を、2つの実例を通して説明している。
v3では、従来のフレームワーク別Estimatorクラス(SKLearn、PyTorch、XGBoost)を廃止し、訓練にはModelTrainer、デプロイにはModelBuilderという2クラスに統一した。これにより、フレームワークの種類によらず同じインターフェースで操作できるようになったとしている。また、ローカルのソースコードディレクトリを実行時に訓練ジョブへ同期するSourceCodeオブジェクトも導入された。
新APIの仕組み
SourceCodeオブジェクトは、source_dirで指定したローカルディレクトリを、ジョブ起動時にコンテナ内へ同期する。訓練時はcommandでシェルコマンドを指定し、推論時はentry_scriptでエントリポイントを指定する。この設計により、コードとコンテナイメージが分離され、学習スクリプトを変更してもDockerイメージの再ビルドが不要になる。
ModelTrainerは、従来のEstimatorの後継に当たるクラスで、訓練イメージ、SourceCode、計算リソース、出力先などを指定してtrainメソッドを呼ぶ。ModelBuilderは推論ハンドラとモデルアーティファクトをまとめてパッケージ化し、リアルタイムエンドポイントを作成する。どちらも既存のv2のAPIよりも少ないコードで記述できるとみられる。
v2との違い
v2ではフレームワークごとにSKLearn、PyTorch、XGBoostといったEstimatorクラスが存在し、学習コードをコンテナに組み込むための仕組みも異なっていた。v3ではこれらがModelTrainerに統合され、コンテナに対する前提条件が減った。AWS Deep Learning Containerを使う場合も、自作イメージを使う場合も、同じAPIで扱える。
推論側も、v2のModel/PredictorパターンがModelBuilderに置き換わった。ModelBuilderは選択したモデルサーバー(例: DJL Serving)の慣習に合わせて、推論ハンドラとモデルアーティファクトを自動的に再パッケージする。コンテナ内のPythonライブラリやCUDAライブラリも自由に導入でき、SDKが内部を仮定しない点が特徴だ。
具体例と注意点
1つ目の例は、糖尿病データセットを使ったscikit-learnのRandom Forest分類器の訓練とデプロイだ。訓練用コンテナはPython 3.13ベースの最小限のDockerfileで構成され、コードは含めない。学習スクリプトを変更しても、イメージはそのままにSourceCodeの内容だけを差し替えて再実行できる。デプロイには、AWSが提供するDJL ServingのDockerコンテナを利用している。
2つ目の例は、Hugging Face Accelerateを使ったStable Diffusion 3.5のLoRA微調整で、マルチGPU分散訓練に対応する。一方で、v3のスクリプトモードを使うには、SageMaker SDK v3のインストールに加え、訓練用のコンテナイメージをAmazon ECRにプッシュしておく必要がある。SageMaker StudioのJupyterLabスペースで利用する場合は、ドメインレベルでDockerアクセスを有効化しなければならない。
| 項目 | SDK v2 | SDK v3 |
|---|---|---|
| 訓練用クラス | フレームワーク別Estimator | ModelTrainer |
| 推論用クラス | Model / Predictor | ModelBuilder |
| コードの指定方法 | Estimatorにsource_dir等を指定 | SourceCodeオブジェクトで指定 |
| フレームワーク対応 | フレームワークごとに別クラス | 共通インターフェース |
Script mode was a leap forward: you didn’t need to build or maintain Docker images to run your own algorithm on Amazon SageMaker AI.
スクリプトモードは飛躍的な進歩でした。Amazon SageMaker AI上で独自のアルゴリズムを動かすために、Dockerイメージを構築したり管理したりする必要がなくなったのです。
今後の見通し
v3のスクリプトモードは、コンテナの再ビルド不要でイテレーションを高速化できるため、SageMaker AIを使う開発者にとっては、モデル開発のワークフローが大きく変わる可能性がある。今後は、既存のv2コードを機械的に移行するツールや、より詳細な比較資料が提供されるかどうかが、普及の鍵になりそうだ。また、今回紹介された2つの例以外にも、独自の推論バイナリやCUDAライブラリを使うケースでの実績が増えれば、採用を検討しやすくなるとみられる。
日本の開発者・IT企業にとっての意味
日本のIT企業では、PoCや内製モデルの開発にAmazon SageMakerを利用するケースが増えている。v3のスクリプトモードは、Dockerに詳しくないMLエンジニアでも独自の学習コードを動かしやすくなる点で意味がある。訓練用イメージを一度ビルドしておけば、アルゴリズムの修正はコードだけを同期して再実行できるため、実験サイクルの短縮につながる。また、ModelBuilderによるデプロイも統一APIで行えるため、フレームワークの移行コストを下げられる。一方、既存のv2ベースのコード資産は書き換えが必要であり、移行計画を立てる際には、APIの差分を把握しておくことが重要だ。
気になる点
- SageMaker SDK v3はどこからインストールできますか?
- pip install sagemaker>=3.0 でインストールできます。公開済みのバージョンを利用でき、AWSアカウントとAmazon SageMaker AIのアクセス権限が必要です。
- 訓練用のDockerイメージは必須ですか?
- はい。v3のスクリプトモードでは、訓練用にAmazon ECRへプッシュしたコンテナイメージが必要です。自作のほか、AWS Deep Learning Containerやサードパーティのイメージも利用できます。推論側はマネージドのDJL Servingコンテナも使えます。
- 既存のv2スクリプトはどう移行すればよいですか?
- 移行手順は現時点では公表されていません。ただし、v2のEstimatorやModel/PredictorはModelTrainerとModelBuilderに置き換わるため、対応が必要とみられます。詳細な移行ガイドが公開されるかどうかは不明です。
用語解説
- SageMaker AI
- AWSの機械学習プラットフォーム。モデルの訓練・デプロイをマネージドに実行できる。
- ModelTrainer
- SageMaker SDK v3で導入された、訓練ジョブを設定・起動する新しいクラス。
- ModelBuilder
- SageMaker SDK v3で導入された、推論ハンドラとモデルをまとめてデプロイするクラス。
- SourceCode
- ローカルのコードディレクトリを、実行時にコンテナへ同期するための設定オブジェクト。
- DJL Serving
- 高性能なモデルサーバー。Deep Java Libraryの略。SageMakerの推論コンテナとして利用できる。
- LoRA
- 大規模モデルを低コストで微調整する手法。Stable Diffusionなどで利用される。
出典
Bring your own model with Amazon SageMaker AI: Script mode in SDK v3
AI導入も顧問も、お任せください
何から手をつけるか、どこまでAIに任せるか。自社の業務に合わせて整理し、導入から運用まで伴走します。相談だけでも構いません。
AI導入について相談する