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

Amazon SageMaker Experiments

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

История и развитие

Amazon SageMaker Experiments был представлен в составе платформы Amazon SageMaker в 2017 году. Первоначально функциональность отслеживания экспериментов была встроена непосредственно в процесс обучения моделей в SageMaker. В 2020 году сервис получил значительное обновление, включающее улучшенный пользовательский интерфейс для сравнения запусков и возможность работы с экспериментами, выполняемыми вне SageMaker (например, в локальных средах или на других облачных платформах). В 2022 году была добавлена интеграция с MLflow — популярным инструментом с открытым исходным кодом для управления экспериментами. В 2024 году возможности SageMaker Experiments были расширены за счёт поддержки пайплайнов (SageMaker Pipelines) и автоматического документирования метаданных для всех этапов жизненного цикла модели.

Ключевые концепции и терминология

Эксперимент (Experiment)

Эксперимент — это логическая группа, объединяющая несколько запусков, связанных с решением одной задачи машинного обучения. Например, эксперимент «Классификация изображений кошек и собак» может содержать десятки или сотни запусков с разными архитектурами нейронных сетей, гиперпараметрами и наборами данных.

Запуск (Run)

Запуск — это единичная попытка обучения модели, в ходе которой фиксируются все параметры и результаты. Каждый запуск имеет уникальный идентификатор и связан с определённым экспериментом. Запуск может быть создан как в рамках SageMaker (через Estimator или Processor), так и в пользовательском коде (через SDK).

Пробная версия (Trial)

Пробная версия — это подгруппа запусков внутри эксперимента, объединённых по какому-либо признаку, например, по используемой архитектуре модели или методу предобработки данных. Пробные версии позволяют структурировать эксперимент и упрощают сравнение результатов.

Артефакты (Artifacts)

Артефакты — это файлы и объекты, созданные в ходе запуска: обученные модели, контрольные точки (checkpoints), графики, логи, конфигурационные файлы и т.д. SageMaker Experiments автоматически сохраняет артефакты в Amazon S3 и связывает их с соответствующим запуском.

Функциональные возможности

Автоматическое отслеживание

При использовании встроенных оценщиков (Estimators) SageMaker Experiments автоматически фиксирует:

  • гиперпараметры (learning rate, batch size, количество слоёв и т.д.);
  • метрики, определённые пользователем (accuracy, loss, F1-score);
  • метрики инфраструктуры (время обучения, использование CPU/GPU, память);
  • путь к артефактам в Amazon S3;
  • версии фреймворков (TensorFlow, PyTorch, MXNet) и контейнеров.

Ручное отслеживание

Для кода, выполняемого вне SageMaker, или для кастомных процессов обучения, пользователь может использовать SageMaker Experiments SDK для ручного создания и управления запусками. Это позволяет, например, отслеживать эксперименты, проводимые на локальных машинах или в кластерах Kubernetes.

Сравнение запусков

Пользовательский интерфейс SageMaker Experiments позволяет выбирать несколько запусков и отображать их параметры и метрики в виде таблицы или параллельных координат (parallel coordinates plot). Это облегчает выявление комбинаций гиперпараметров, приводящих к наилучшим результатам.

Визуализация

Сервис предоставляет встроенные графики для визуализации метрик во времени (например, кривые обучения), а также возможность создания кастомных визуализаций с помощью Amazon SageMaker Studio и Jupyter Notebooks.

Поиск и фильтрация

Пользователь может искать запуски по названию, статусу, времени создания, значениям гиперпараметров или метрик. Фильтрация позволяет быстро находить, например, «все запуски с accuracy > 0.95, выполненные за последнюю неделю».

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

  • Amazon S3: хранение артефактов и метаданных.
  • Amazon CloudWatch: мониторинг метрик инфраструктуры и логов.
  • AWS Identity and Access Management (IAM): управление доступом к экспериментам.
  • Amazon SageMaker Studio: единый интерфейс для управления экспериментами, написания кода и визуализации.
  • Amazon SageMaker Pipelines: автоматическое создание и отслеживание экспериментов в рамках пайплайнов.
  • Amazon SageMaker Model Registry: регистрация лучших моделей, полученных в результате экспериментов, для последующего развёртывания.

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

  1. Создание эксперимента: sagemaker.experiments.Experiment.create(experiment_name="my-experiment").
  2. Запуск обучения: при создании оценщика указывается имя эксперимента, и все запуски автоматически связываются с ним.
  3. Анализ: после завершения нескольких запусков пользователь открывает SageMaker Studio, выбирает эксперимент, видит таблицу со всеми запусками, их гиперпараметрами и метриками. С помощью параллельных координат он находит, что комбинация learning_rate=0.001 и batch_size=32 даёт наилучшую accuracy.
  4. Регистрация модели: лучшая модель сохраняется в Model Registry для дальнейшего развёртывания.

Ограничения и критика

  • Привязка к экосистеме AWS: SageMaker Experiments не является кроссплатформенным решением; его использование предполагает работу в облаке AWS.
  • Сложность для небольших проектов: для простых экспериментов с одним-двумя запусками функциональность может быть избыточной, и проще использовать локальные инструменты (например, MLflow или TensorBoard).
  • Стоимость: хранение метаданных и артефактов в Amazon S3, а также использование вычислительных ресурсов SageMaker может приводить к дополнительным расходам, особенно при большом количестве запусков.
  • Отсутствие полной поддержки нестандартных фреймворков: хотя SageMaker Experiments поддерживает популярные фреймворки, для кастомных решений может потребоваться ручная настройка отслеживания.

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

ИнструментПлатформаОтслеживаниеВизуализацияИнтеграция с MLflow
SageMaker ExperimentsAWSАвтоматическое и ручноеВстроенные графики, параллельные координатыПоддерживается (с 2022)
MLflowКроссплатформенныйРучное (через API)Встроенные графики, UIНативная
TensorBoardКроссплатформенныйРучное (через callback)Графики, гистограммы, распределенияЧерез плагины
Weights & BiasesКроссплатформенныйРучное (через API)Расширенные графики, дашбордыЧерез интеграцию

SageMaker Experiments выигрывает в автоматизации отслеживания при использовании SageMaker, но уступает в гибкости и кроссплатформенности MLflow и Weights & Biases.

Источники

  • Документация Amazon SageMaker Experiments (AWS)
  • Amazon SageMaker Developer Guide (AWS)
  • Блог AWS: «Introducing Amazon SageMaker Experiments» (2017)
  • Блог AWS: «New – Amazon SageMaker Experiments Update» (2020)
  • Статья «A Comparison of Experiment Tracking Tools for Machine Learning» (Towards Data Science, 2023)
  • Официальная документация MLflow (mlflow.org)

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

На главную BFOmetr →