AWS、SageMaker(セージメーカー)AIの学習・処理ジョブにSOCIインデックスを提供13.2GBのイメージ取得が3分42秒から約6秒に(AWS測定)
日刊AIニュース10月27日(火)号:前日のAIのニュース12本を短くまとめました(約8分)›
AWSは10月27日、Amazon SageMaker AIの学習・処理ジョブでSOCIインデックスによるコンテナイメージの遅延読み込みを全AWSリージョンで使えるようにしたと発表した。AWSの測定では13.2GBのイメージ取得が3分42秒から約6秒になり、ジョブ全体は1〜6分短くなった。

目次
AWSは2026年10月27日(現地)、Amazon SageMaker(セージメーカー)AIの学習ジョブと処理ジョブで、Seekable OCI(SOCI)インデックスによるコンテナイメージの遅延読み込みを使えるようにしたと、AWS Machine Learning Blogで発表した。ブログの公開時刻の表記は日本時間10月28日午前2時ごろにあたる。AWSによると、利用は全AWSリージョンで可能で、AWSの測定では圧縮後13.2GBのイメージの取得が通常3分42秒かかるところ、約6秒になった。
3行まとめ
- AWSがSageMaker AIの学習・処理ジョブでSOCIインデックスによるイメージの遅延読み込みを発表。全AWSリージョンで利用可能とAWSは説明
- AWS測定(中央値)で13.2GBは3分42秒→約6秒、35.4GBは7分17秒→3〜11秒。実際の学習ジョブ全体では1〜6分短縮
- 対象はAmazon ECRのプライベートリポジトリのみ。約4GB未満のイメージは効果が小さく、自前イメージには自分でインデックス作成が必要
本記事の内容は、日本時間10月28日2時台に公式ページで確認したものです。
何ができるようになったのか
これまでSageMaker AIの学習・処理ジョブは、コードを動かす前にコンテナイメージ全体をインスタンスへダウンロードし、全レイヤーを展開してディスクに書き込んでいた。AWSによると、深層学習用のイメージは10GB以上になることが多く、その分が毎回ジョブの時間として課金される。ハイパーパラメータ探索のように何百ものジョブを回す場面や、短い処理ジョブでは、取得時間が全体の大半を占めることもあるとAWSは書いている。
SOCIインデックスを使うと、SageMaker AIはイメージを遅延読み込みする。AWSの説明では、コンテナの起動に必要なファイルだけを先に取り、残りはコードが触るのに合わせてバックグラウンドで取得する。
SOCIインデックスは、イメージ内の全ファイルの位置を対応づけたメタデータで、Amazon ECRにOCI準拠の成果物として元のイメージに紐づけて置く。インデックスは別の成果物なので、イメージのダイジェストと既存の署名は有効なままだとAWSは説明している。
ジョブ作成時の挙動は次のとおり(AWSの説明)。
| 状況 | 何が起きるか |
|---|---|
| イメージにSOCIインデックスがある | 遅延読み込みし、全取得の完了前にコンテナを起動 |
| インデックスがない | 通常のダウンロード。挙動は変わらない |
| インデックスが読めない、または遅延読み込みに失敗 | 通常のダウンロードに切り替えてジョブは続行 |
失敗時は通常のダウンロードに戻るため、インデックスを付けてもジョブが動かなくなることはない、とAWSは述べている。
どのくらい速くなるのか(AWSの測定値)
AWSは、同じイメージを通常のダウンロードとSOCI遅延読み込みの2通りで、実際のSageMaker AIの学習ジョブ上で取得した。条件は、圧縮後1.8〜35.4GBの8イメージ、ml.g4dn・ml.g5・ml.g6・ml.g6e・ml.g7・ml.g7e・ml.p4d・ml.p5・ml.m7iのxlargeから48xlarge、米国西部(オレゴン)と米国東部(バージニア北部)。時間はイメージ取得の開始からコンテナが動かせる状態になるまでで、数値はすべて繰り返し実行の中央値。
| イメージ(圧縮後) | 通常のダウンロード | 遅延読み込み | 改善 |
|---|---|---|---|
| 1.8GB | 48秒 | 3〜11秒 | 約8倍 |
| 13.2GB | 3分42秒 | 約6秒 | 約34倍 |
| 35.4GB | 7分17秒 | 3〜11秒 | 約38倍 |
13.2GBのイメージを13通りのインスタンス種別・サイズで試した結果では、通常のダウンロードが3分16秒〜4分20秒、遅延読み込みは6〜8秒で、どの構成でも約34倍だったという。AWSはインスタンスを変えなくても恩恵を受けられると書いている。
学習そのものは遅くならないのか
AWSは、ResNet-50の画像分類(Imagenette・9,469枚、PyTorchの13.2GBとTensorFlowの9.9GBのDLC)と、Qwen2.5-0.5Bのフルパラメータ教師ありファインチューニング(alpaca-cleaned・51,760件、9.4GBのHugging Face PyTorch DLC)の2種類を、通常取得とSOCIの両方で最後まで回して比べた。
- 2エポック目以降のエポック時間は、全インスタンス・両ワークロードで同じ(実行ごとのばらつきの範囲内)
- 初回エポックは、フレームワークが初めて触るファイルを取得する間、3〜16秒長くなる。この増分はインスタンスのサイズによらず同じ
- 差し引きで、各ジョブは1〜6分早く終わった
ブログの冒頭では、これらの測定でイメージ取得中のGPUアイドル時間が最大90%減ったとも書かれている。
AWSは、効果が出にくい例も測定している。torch.compileとJITビルドのCUDA拡張で初回エポックが7〜15秒延びたケースでも、純減は3分25秒〜3分56秒だった。6GBのモデルをイメージに焼き込み、ロード時に重みを取得したケースでは2〜3.5分延びたが、ジョブ全体ではインデックス付きの方が2〜2.5分早く終わったという。一方で、学習開始前にイメージの大部分を読むコード(走査、チェックサム、中身の先読みなど)では、通常の取得とほぼ同じ量を待つため、純粋な改善は小さくなるとAWSは注意している。
どうやって使うのか
AWSは2つの方法を挙げている。
1. インデックス付きのAWS Deep Learning Container(DLC)を使う。 AWSはDLCのうち、イメージタグの末尾が -soci の版を公開している。例として挙げられているのは pytorch-training:2.9-gpu-py312-cu130-ubuntu22.04-sagemaker-v1-soci。インデックス付きの版があるのはPyTorch Training、TensorFlow Training、vLLM、SGLangで、一部のフレームワークにはarm64版もある。ジョブ定義のイメージタグをこの版に替えるだけでよい。
2. 自前のイメージにインデックスを付ける。 containerd、SOCI snapshotter、Finchまたはnerdctlを入れたLinuxホスト(AWSの例ではAmazon Linux 2023のEC2)で nerdctl image convert --soci を実行し、できたイメージをpushする。ECRにはSOCIインデックスと、イメージとインデックスを結ぶOCIのイメージインデックスマニフェストの2つが作られ、元のイメージとそのダイジェストは変わらない。pushのたびに自動でインデックスを作りたい場合は、EventBridgeのルールでECRへのpushを検知する「CFN ECR SOCI Index Builder」が使える。
ジョブ側は、SageMaker Python SDKの ModelTrainer の training_image に、インデックス付きのタグ(例では v1.0-soci)を渡す形で、AWSは「APIの変更は不要」としている。インデックスが付いているかは aws ecr batch-get-image で確認でき、artifactType が application/vnd.amazon.soci.index. で始まる子マニフェストがあればよい。
使う前に知っておきたい条件
AWSが「Things to keep in mind」の節とDLCの項の注記で挙げている注意点は次のとおり。
- Amazon ECRのプライベートリポジトリのみ。 他のレジストリのイメージや、
TrainingRepositoryAccessModeをVpcにしてプライベートなDockerレジストリ経由で取得するイメージは対象外 - 約4GB未満のイメージは改善が比較的小さい
- DLCを土台に自前でビルドしたイメージは、最終イメージ用にインデックスを作り直す。 土台のインデックスは派生イメージに引き継がれない
- containerdベースのランタイムで動く。 エントリポイントやセットアップスクリプトがDockerのCLIを呼ぶ、
/var/run/docker.sockを読む、cgroupのパスから識別子を作る、といった処理は見直しが必要。互換のために/.dockerenvのマーカーはマウントされるが、新しく依存しないようAWSは求めている
日本の利用者にとっての意味
AWSは「SOCI indexing for SageMaker AI jobs is available across all AWS Regions」(SageMaker AIジョブ向けのSOCIインデックスは全AWSリージョンで利用できる)と書いている。東京リージョンなど個別のリージョン名は、今回取得した公式ページには出てこない。上の測定も、米国の2リージョンで実施されたものだ。
料金については、今回取得した公式ページに、SOCIインデックスそのものの追加料金や課金の変更に関する記載は見つからなかった。AWSが述べているのは、取得時間がジョブ時間として課金されているため、短くなれば総ジョブコストが下がるという点まで。インデックスをECRに置く際のストレージ料金などがどうなるかは、このページからは確認できていない。
筆者の確認:本文の数字が箇所によって違う
日本時間10月28日2時台に公式ページを読んだ時点で、表と図の説明文の数字が一致していない箇所があった。表では1.8GBの改善が約8倍、35.4GBが約38倍だが、図1の説明文は「最小のイメージで約10倍、最大のもので35倍超」としており、その直後の本文は「8倍〜46倍」と書いている。本記事では、表にある値だけを使った。8イメージ分の個別の数値は、取得したテキストには表の3行(と図の説明)しか出ていない。
まだ分からないこと
- 測定はすべてAWS自身のもので、条件は米国2リージョン、8イメージ、2種類の学習ワークロード。AWSも自分のワークロードで試すよう勧めており、初回エポックの増分はイメージと起動時の処理で変わる
- 「ジョブのコストが下がる」の具体的な金額は、取得したページには出ていない
- 日本語の公式ドキュメントがあるかどうかは、今回取得したページからは分からない
本記事はAWSの発表を読んで整理したもので、筆者がSageMaker AIで試したものではない。関連して、同じSageMaker AIではtraining session APIsやMoEカーネル最適化の記事も出している。
出典と確認時刻
- Announcing SOCI-indexed images for faster SageMaker AI jobs(AWS Machine Learning Blog): https://aws.amazon.com/blogs/machine-learning/announcing-soci-indexed-images-for-faster-sagemaker-ai-jobs/
上記ページを日本時間2026年10月28日2時6分に取得して確認しました。本記事は続報があり次第更新します。
この記事でよく聞かれること
- SageMaker AIのSOCIインデックスとは何ですか?
- AWSの説明では、Seekable OCI(SOCI)はコンテナイメージを遅延読み込みするオープンソースの技術です。コンテナの起動に必要なファイルだけを先に取得し、残りはコードが使う間にバックグラウンドで取得します。SageMaker AIの学習ジョブと処理ジョブで使え、AWSは全AWSリージョンで利用できるとしています。
- SOCIインデックスを使うにはジョブの定義を変える必要がありますか?
- AWSによると、ジョブ定義・エントリポイント・データチャネルの変更は不要で、API変更もなく、イメージのタグが違うだけです。AWSが用意したインデックス付きのDeep Learning Containerを使う場合はタグ末尾に -soci を付けたものに替えます。自前のイメージはインデックスを作って同じリポジトリに置きます。
- どのくらい速くなりますか?
- AWSの測定(中央値)では、圧縮後13.2GBのイメージの取得が通常3分42秒、遅延読み込みでは約6秒でした。35.4GBでは7分17秒が3〜11秒です。実際の学習ジョブでは、初回エポックが3〜16秒長くなる分を差し引いても、ジョブ全体で1〜6分短くなったとAWSは説明しています。
- どんな場合は効果が小さいですか?
- AWSは、約4GB未満のイメージでは改善が比較的小さいとしています。また、学習開始前にイメージの大部分を読むコード(走査やチェックサムなど)では、通常の取得とほぼ同じ量を待つため純粋な改善は小さくなります。対象はAmazon ECRのプライベートリポジトリのイメージのみです。
出典・参照資料
大きいニュースはYouTubeでも解説しています。Xでは新着記事をお知らせしています。
コメント
まだコメントはありません。最初のコメントを書いてみませんか?
AIについて聞きたいことはありますか?
質問箱で無料で受け付けています。回答は公開され、他の方の参考にもなります。
質問箱を見る →