Открыть сервис

SageMaker Batch Transform

SageMaker Batch Transform — это сервис в составе платформы Amazon Web Services (AWS) для выполнения пакетных (batch) прогнозов с использованием обученных моделей машинного обучения. В отличие от реального времени (inference в реальном времени), Batch Transform предназначен для обработки больших объёмов данных без необходимости поддержания постоянно работающего эндпоинта (сервера). Сервис позволяет запускать асинхронные задания (jobs), которые автоматически масштабируются, обрабатывают данные из указанного источника (обычно из Amazon S3) и записывают результаты обратно в хранилище.

Архитектура и принцип работы

SageMaker Batch Transform работает на основе контейнеризированных образов, содержащих модель и код для инференса. Основные компоненты включают:

Поток выполнения

  1. Пользователь создаёт задание через AWS Management Console, AWS CLI или SDK, указывая путь к модели, входным данным и настройки инстансов.
  2. SageMaker автоматически масштабирует количество инстансов в зависимости от объёма данных и настроек параллелизма (например, MaxPayloadInMB — максимальный размер пакета данных на один запрос).
  3. Каждый инстанс загружает модель из контейнера, разбивает входные данные на партиции (по файлам или по строкам) и обрабатывает их параллельно.
  4. Результаты агрегируются и записываются в выходную директорию S3. При ошибках в отдельных записях задание может завершиться частично (с пометкой CompletedWithErrors).

Ключевые возможности

Пакетная обработка без постоянного эндпоинта

Основное преимущество Batch Transform — отсутствие необходимости в постоянном развёртывании эндпоинта. Это снижает затраты для задач, не требующих низкой задержки (latency). Например, обработка исторических данных для анализа, генерация рекомендаций раз в день или пакетная классификация изображений.

Автоматическое масштабирование

Сервис автоматически распределяет данные по инстансам. Пользователь может задать максимальное количество инстансов (MaxConcurrentTransforms) и размер пакета (BatchStrategyMultiRecord или SingleRecord). Это позволяет оптимизировать время выполнения и стоимость.

Поддержка различных форматов данных

Интеграция с другими сервисами AWS

Настройка контейнера

Пользователь может использовать встроенные образы SageMaker (например, для XGBoost, PyTorch, TensorFlow) или собственные кастомные Docker-образы. В кастомных образах необходимо реализовать обработку запросов через HTTP-сервер (например, Flask), который принимает данные и возвращает прогнозы.

Сравнение с другими методами инференса в SageMaker

ПараметрBatch TransformReal-time InferenceServerless Inference
Время ответаМинуты–часы (асинхронно)Миллисекунды (синхронно)Секунды–минуты (синхронно)
ЗатратыОплата только за время выполнения заданияОплата за время работы эндпоинта (почасовая)Оплата за количество запросов и вычислительные ресурсы
МасштабированиеАвтоматическое, на основе объёма данныхРучное или авто-масштабированиеАвтоматическое, до 1000 запросов в минуту
ИспользованиеПакетная обработка, ETL, анализ исторических данныхОнлайн-сервисы, чат-боты, рекомендации в реальном времениНизкочастотные запросы, прототипирование

Пример использования

Сценарий: пакетная классификация текстов

  1. Подготовка данных: тексты сохранены в Amazon S3 в формате CSV с колонкой text.
  2. Обучение модели: модель на основе BERT (PyTorch) обучена на задаче классификации тональности.
  3. Создание задания:

``bash aws sagemaker create-transform-job \ --transform-job-name sentiment-batch \ --model-name sentiment-model \ --transform-input "DataSource={S3DataSource={S3DataType=S3Prefix,S3Uri=s3://bucket/input/}},ContentType=text/csv" \ --transform-output "S3OutputPath=s3://bucket/output/" \ --transform-resources "InstanceType=ml.m5.large,InstanceCount=2" \ --batch-strategy MultiRecord \ --max-payload-in-mb 6 ``

  1. Результат: в s3://bucket/output/ появляются файлы с прогнозами (например, sentiment_batch.out.csv).

Ограничения и особенности

Альтернативы

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →