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.
Поток выполнения
- Пользователь создаёт задание через AWS Management Console, AWS CLI или SDK, указывая путь к модели, входным данным и настройки инстансов.
- SageMaker автоматически масштабирует количество инстансов в зависимости от объёма данных и настроек параллелизма (например,
MaxPayloadInMB— максимальный размер пакета данных на один запрос). - Каждый инстанс загружает модель из контейнера, разбивает входные данные на партиции (по файлам или по строкам) и обрабатывает их параллельно.
- Результаты агрегируются и записываются в выходную директорию S3. При ошибках в отдельных записях задание может завершиться частично (с пометкой
CompletedWithErrors).
Ключевые возможности
Пакетная обработка без постоянного эндпоинта
Основное преимущество Batch Transform — отсутствие необходимости в постоянном развёртывании эндпоинта. Это снижает затраты для задач, не требующих низкой задержки (latency). Например, обработка исторических данных для анализа, генерация рекомендаций раз в день или пакетная классификация изображений.
Автоматическое масштабирование
Сервис автоматически распределяет данные по инстансам. Пользователь может задать максимальное количество инстансов (MaxConcurrentTransforms) и размер пакета (BatchStrategy — MultiRecord или SingleRecord). Это позволяет оптимизировать время выполнения и стоимость.
Поддержка различных форматов данных
- CSV: строки, разделённые запятыми.
- JSON: объекты или массивы.
- Parquet: столбцовый формат для больших наборов данных.
- Изображения: в форматах JPEG, PNG и других (через контейнер с предобработкой).
Интеграция с другими сервисами AWS
- Amazon S3: хранение входных и выходных данных.
- AWS CloudWatch: мониторинг и логирование заданий.
- AWS Lambda: автоматизация запуска заданий по расписанию или по событию (например, при появлении нового файла в S3).
- Amazon SageMaker Pipelines: включение Batch Transform в пайплайны MLOps.
Настройка контейнера
Пользователь может использовать встроенные образы SageMaker (например, для XGBoost, PyTorch, TensorFlow) или собственные кастомные Docker-образы. В кастомных образах необходимо реализовать обработку запросов через HTTP-сервер (например, Flask), который принимает данные и возвращает прогнозы.
Сравнение с другими методами инференса в SageMaker
| Параметр | Batch Transform | Real-time Inference | Serverless Inference |
|---|---|---|---|
| Время ответа | Минуты–часы (асинхронно) | Миллисекунды (синхронно) | Секунды–минуты (синхронно) |
| Затраты | Оплата только за время выполнения задания | Оплата за время работы эндпоинта (почасовая) | Оплата за количество запросов и вычислительные ресурсы |
| Масштабирование | Автоматическое, на основе объёма данных | Ручное или авто-масштабирование | Автоматическое, до 1000 запросов в минуту |
| Использование | Пакетная обработка, ETL, анализ исторических данных | Онлайн-сервисы, чат-боты, рекомендации в реальном времени | Низкочастотные запросы, прототипирование |
Пример использования
Сценарий: пакетная классификация текстов
- Подготовка данных: тексты сохранены в Amazon S3 в формате CSV с колонкой
text. - Обучение модели: модель на основе BERT (PyTorch) обучена на задаче классификации тональности.
- Создание задания:
``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 ``
- Результат: в
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 →