SageMaker перестал ждать полный pull: SOCI-образы стартуют за секунды

На SageMaker Training и processing контейнер раньше качали целиком до запуска вашего entry point — на сжатом образе в 35,4 ГБ медиана до готовности контейнера доходила до 7 минут 17 секунд, и это оплачиваемое время без шагов обучения. AWS включила Seekable OCI: сервис подтягивает только то, что нужно для старта, остальное догружает в фоне, пока уже выполняется код.
Индекс SOCI хранится в Amazon ECR отдельным OCI-артефактом, дайджест исходного образа не меняется. При создании джобы SageMaker AI сам проверяет наличие индекса — lazy load, обычный pull или откат к pull при сбое. Для сотен коротких джоб в hyperparameter tuning именно эти минуты на каждом прогоне часто доминируют в runtime.
Что показали замеры
В бенчмарках AWS простой GPU на этапе image pull снизился до 90%. Медианы до готовности контейнера: 1,8 ГБ — 48 с против 3–11 с; 13,2 ГБ — 3 мин 42 с против ~6 с; 35,4 ГБ — 7 мин 17 с против 3–11 с. На 13 типах и размерах инстансов (ml.g4dn–ml.p5 и др.) с тем же 13,2 ГБ образом lazy load держался 6–8 с.
На полных прогонах классификации ResNet-50 на Imagenette и full-parameter SFT Qwen2.5-0.5B на alpaca-cleaned со второй эпохи время эпохи совпало с обычным pull; первая эпоха длиннее на 3–16 с, итог джобы быстрее на 1–6 минут.
Как подключить
Готовые AWS Deep Learning Container помечены суффиксом -soci в теге — PyTorch Training, TensorFlow Training, vLLM, SGLang. Достаточно сменить тег образа; API, entry point и data channels не трогаете. Свой образ индексируют через nerdctl image convert --soci и push в приватный ECR; индекс с базового DLC на производный не переносится. Lazy loading только для приватного ECR, не для сторонних registry и не при TrainingRepositoryAccessMode Vpc.
Источник: Announcing SOCI-indexed images for faster SageMaker AI jobs.