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

SageMaker Batch Transform

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

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

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

  • Input (входные данные): данные, как правило, хранятся в Amazon S3 в форматах CSV, JSON, Parquet или как изображения. Можно указать путь к папке или конкретному файлу.
  • Model (модель): предварительно обученная модель, зарегистрированная в SageMaker Model Registry или переданная как артефакт из S3.
  • Transform Job (задание на преобразование): единица работы, которая запускается на временных вычислительных инстансах (например, ml.m5.large, ml.p3.2xlarge). Задание автоматически создаёт и уничтожает инстансы после завершения.
  • Output (выходные данные): результаты прогнозов сохраняются в указанном bucket S3, обычно в формате CSV или JSON Lines.

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

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

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

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

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

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

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

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

  • CSV: строки, разделённые запятыми.
  • JSON: объекты или массивы.
  • Parquet: столбцовый формат для больших наборов данных.
  • Изображения: в форматах JPEG, PNG и других (через контейнер с предобработкой).

Интеграция с другими сервисами 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).

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

  • Задержка: не подходит для задач, требующих ответа в реальном времени (менее 1 секунды).
  • Ошибки в данных: если одна запись вызывает сбой, задание может не завершиться полностью. Рекомендуется использовать механизмы повторных попыток (retry) и логирование.
  • Размер данных: максимальный размер входного файла — 5 ТБ (ограничение S3). Для больших наборов данных рекомендуется разбивать на партиции.
  • Стоимость: длительные задания могут быть дороже, чем использование Serverless Inference для небольших объёмов.

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

  • Amazon SageMaker Real-time Inference: для сервисов с низкой задержкой.
  • Amazon SageMaker Serverless Inference: для нерегулярных запросов без управления инстансами.
  • AWS Lambda + SageMaker: для лёгких пакетных задач с малым объёмом данных.
  • Amazon EMR или AWS Glue: для сложных ETL-процессов, где машинное обучение — лишь часть пайплайна.

Источники

  • AWS Documentation. «Use Batch Transform». Amazon Web Services, 2024.
  • AWS Documentation. «Create a Transform Job». Amazon Web Services, 2024.
  • AWS Documentation. «SageMaker Batch Transform Best Practices». Amazon Web Services, 2023.
  • AWS Documentation. «Amazon SageMaker Developer Guide». Amazon Web Services, 2024.

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

На главную BFOmetr →