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

SageMaker Processing

SageMaker Processing — это полностью управляемый сервис в составе платформы Amazon Web Services (AWS) Amazon SageMaker, предназначенный для выполнения этапов предобработки данных, постобработки и проверки качества (валидации) в конвейерах машинного обучения. Сервис предоставляет временную инфраструктуру для запуска пользовательских скриптов на выделенных вычислительных ресурсах (экземплярах Amazon EC2) без необходимости управления кластером или сервером.

История и контекст появления

SageMaker Processing был анонсирован в декабре 2019 года на конференции AWS re:Invent. Его появление было обусловлено необходимостью решить проблему «склеивания» этапов обработки данных в конвейерах машинного обучения. До этого разработчики часто использовали для предобработки либо отдельные кластеры Amazon EMR (Elastic MapReduce), либо запускали скрипты непосредственно внутри ноутбуков SageMaker Notebook, что было неэффективно для больших объёмов данных и не обеспечивало воспроизводимости результатов.

SageMaker Processing стал частью более широкой экосистемы SageMaker, которая включает в себя SageMaker Training (обучение моделей), SageMaker Inference (развёртывание моделей) и SageMaker Pipelines (оркестрация конвейеров). Сервис позволил выполнять обработку данных в том же управляемом окружении, что и обучение моделей, упрощая интеграцию и управление ресурсами.

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

Основные компоненты

  1. Обработчик (Processor): Объект, который определяет тип и количество вычислительных ресурсов, а также образ контейнера (Docker image) для выполнения скрипта. SageMaker предоставляет встроенные образы для популярных фреймворков, таких как Scikit-learn, PySpark, TensorFlow и PyTorch. Пользователь также может использовать собственный кастомный образ.
  2. Скрипт обработки: Пользовательский код (на Python, R или Scala), который содержит логику обработки данных. Скрипт принимает аргументы командной строки, указывающие пути к входным и выходным данным.
  3. Входные и выходные данные: Данные для обработки хранятся в Amazon S3 (Simple Storage Service). SageMaker Processing автоматически загружает входные данные из S3 на вычислительные экземпляры и после завершения работы скрипта выгружает результаты обратно в S3.
  4. Вычислительный кластер: Временный кластер из одного или нескольких экземпляров Amazon EC2, который создаётся на время выполнения задания. После завершения задания кластер автоматически уничтожается.

Процесс выполнения

  1. Пользователь создаёт объект Processor в коде (например, SKLearnProcessor, PySparkProcessor или ScriptProcessor), указывая образ контейнера, тип экземпляра и количество экземпляров.
  2. Пользователь запускает задание (processor.run()), передавая путь к скрипту, аргументы, а также пути к входным данным в S3 и выходному S3-бакету.
  3. SageMaker Processing автоматически:

Классификация и виды процессоров

SageMaker Processing поддерживает несколько типов процессоров, которые различаются по используемому контейнеру и возможностям распределённой обработки.

1. Встроенные процессоры

2. Кастомные процессоры

Пользователь может создать собственный процессор, унаследовавшись от базового класса Processor и определив свой образ. Это необходимо, когда встроенные образы не удовлетворяют требованиям по версиям библиотек или операционной системе.

Применение

SageMaker Processing используется на различных этапах жизненного цикла модели машинного обучения.

Предобработка данных

Постобработка данных

Валидация и проверка качества

Интеграция с SageMaker Pipelines

SageMaker Processing является ключевым компонентом SageMaker Pipelines — сервиса для построения автоматизированных конвейеров машинного обучения (MLOps). Этапы Processing могут быть объединены с этапами Training, Evaluation и Inference в единый конвейер, что позволяет автоматизировать весь процесс от сырых данных до развёрнутой модели.

Преимущества и недостатки

Преимущества

Недостатки

Сравнение с альтернативами

ХарактеристикаSageMaker ProcessingAmazon EMRAWS GlueЛокальный сервер
Управление инфраструктуройПолностью управляемыйУправляемый (требуется настройка)Полностью управляемыйТребуется администрирование
Сложность настройкиНизкаяСредняяНизкаяВысокая
МасштабируемостьВысокаяОчень высокаяВысокаяНизкая
Интеграция с SageMakerПрямаяЧерез SageMaker StudioЧерез SageMaker StudioОтсутствует
Тип задачПредобработка MLETL, аналитикаETL, каталогизацияЛюбые
Стоимость для малых объёмовНизкаяСредняяНизкаяНизкая (при наличии оборудования)

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

Типичный сценарий использования SageMaker Processing — это предобработка данных для обучения модели классификации текстов. Пользователь загружает сырой датасет в Amazon S3. Затем он создаёт SKLearnProcessor и запускает скрипт preprocess.py, который:

  1. Загружает данные из S3.
  2. Удаляет HTML-теги и стоп-слова.
  3. Преобразует тексты в числовые векторы с помощью TfidfVectorizer.
  4. Разделяет данные на обучающую и тестовую выборки.
  5. Сохраняет обработанные данные и векторизатор обратно в S3.

После завершения задания SageMaker Processing автоматически уничтожает кластер. Обработанные данные затем могут быть использованы в следующем этапе конвейера — обучении модели.

Источники

  1. Документация Amazon Web Services: «Amazon SageMaker Processing» (AWS Documentation).
  2. Блог Amazon Web Services: «Introducing Amazon SageMaker Processing – Fully Managed Data Processing for Machine Learning» (AWS News Blog, декабрь 2019).
  3. Книга: «Data Science on AWS» by Chris Fregly, Antje Barth (O'Reilly Media, 2021).
  4. Документация Amazon Web Services: «Amazon SageMaker Pipelines» (AWS Documentation).
  5. Репозиторий AWS Samples на GitHub: «amazon-sagemaker-examples» (раздел Processing).

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

На главную BFOmetr →