Amazon SageMaker Experiments следующего поколения. Организуйте, отслеживайте и сравнивайте свои тренинги по машинному обучению в масштабе PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Amazon SageMaker Experiments нового поколения — систематизируйте, отслеживайте и сравнивайте свои тренинги по машинному обучению в любом масштабе.

Сегодня мы рады сообщить об обновлениях нашего Эксперименты с Amazon SageMaker способность Создатель мудреца Амазонки который позволяет организовывать, отслеживать, сравнивать и оценивать эксперименты и версии моделей машинного обучения (ML) из любой интегрированной среды разработки (IDE) с помощью SageMaker Python SDK или boto3, включая локальные Jupyter Notebooks.

Машинное обучение (ML) — это итеративный процесс. При решении нового варианта использования специалисты по данным и инженеры по машинному обучению перебирают различные параметры, чтобы найти наилучшие конфигурации модели (также известные как гиперпараметры), которые можно использовать в производстве для решения выявленной бизнес-задачи. Со временем, после экспериментов с несколькими моделями и гиперпараметрами, командам машинного обучения становится трудно эффективно управлять запуском модели, чтобы найти оптимальную без инструмента для отслеживания различных экспериментов. Системы отслеживания экспериментов оптимизируют процессы для сравнения различных итераций и помогают упростить совместную работу и общение в команде, тем самым повышая производительность и экономя время. Это достигается за счет организации и управления экспериментами по машинному обучению, чтобы без усилий делать из них выводы, например, находить тренировочный прогон с наилучшей точностью.

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

Amazon SageMaker Experiments следующего поколения. Организуйте, отслеживайте и сравнивайте свои тренинги по машинному обучению в масштабе PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Благодаря новым обновлениям SageMaker Experiments теперь является частью SageMaker SDK, упрощая работу специалистов по обработке и анализу данных и избавляя от необходимости устанавливать дополнительную библиотеку для управления выполнением нескольких моделей. Мы вводим следующие новые основные концепции:

  • Эксперимент: набор прогонов, сгруппированных вместе. Эксперимент включает прогоны для нескольких типов, которые можно инициировать из любого места с помощью SageMaker Python SDK.
  • Run: каждый шаг выполнения процесса обучения модели. Прогон состоит из всех входных данных, параметров, конфигураций и результатов для одной итерации обучения модели. Пользовательские параметры и показатели могут быть зарегистрированы с помощью log_parameter, log_parametersкачества log_metric функции. Пользовательский ввод и вывод могут быть зарегистрированы с помощью log_file функции.

Концепции, которые реализуются как часть Run class доступны из любой IDE, в которой установлен SageMaker Python SDK. Для обучения, обработки и

Transform Jobs, запуск эксперимента SageMaker автоматически передается заданию, если задание вызывается в контексте выполнения. Вы можете восстановить объект запуска, используя load_run() от вашей работы. Наконец, благодаря интеграции новых функций специалисты по данным могут также автоматически регистрировать матрицу путаницы, графики точности и полноты, а также кривую ROC для вариантов использования классификации, используя run.log_confusion_matrix, run.log_precision_recallкачества run.log_roc_curve функции соответственно.

В этом сообщении блога мы предоставим примеры использования новых функций SageMaker Experiments в блокноте Jupyter с помощью SageMaker SDK. Мы продемонстрируем эти возможности с помощью PyTorch пример для обучения примера классификации рукописных цифр MNIST. Эксперимент будет организован следующим образом:

  1. Создание запусков эксперимента и параметры регистрации: Сначала мы создадим новый эксперимент, запустим новый запуск этого эксперимента и запишем в него параметры.
  2. Регистрация показателей производительности модели: Мы будем регистрировать показатели производительности модели и строить графики показателей.
  3. Сравнение запусков моделей: Мы будем сравнивать различные прогоны модели в соответствии с гиперпараметрами модели. Мы обсудим, как сравнивать эти прогоны и как использовать SageMaker Experiments для выбора лучшей модели.
  4. Выполнение экспериментов из заданий SageMaker: мы также предоставим пример того, как автоматически делиться контекстом вашего эксперимента с заданием обработки, обучения или пакетного преобразования SageMaker. Это позволяет автоматически восстанавливать контекст выполнения с помощью load_run функция внутри вашей работы.
  5. Интеграция отчетов SageMaker Clarify: Мы покажем, как теперь мы можем интегрировать SageMaker Уточнение отчеты о предвзятости и объяснимости в одном представлении с отчетом об обученной модели.

Предпосылки

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

  • Домен студии SageMaker
  • Профиль пользователя SageMaker Studio с полным доступом к SageMaker
  • Ноутбук SageMaker Studio с ml.t3.medium тип экземпляра

Если у вас нет домена SageMaker и профиля пользователя, вы можете создать их, используя этот руководство по быстрой установке.

Параметры регистрации

Для этого упражнения мы будем использовать факельное зрение, пакет PyTorch, который предоставляет популярные наборы данных, архитектуры моделей и общие преобразования изображений для компьютерного зрения. SageMaker Studio предоставляет набор Изображения докера для распространенных вариантов использования в науке о данных, которые доступны в Amazon ECR. Для PyTorch у вас есть возможность выбрать изображения, оптимизированные для обучения ЦП или ГП. Для этого примера мы выберем изображение PyTorch 1.12 Python 3.8 CPU Optimized и Python 3 ядро. Примеры, описанные ниже, сосредоточены на функциональных возможностях SageMaker Experiments и не являются полным кодом.

Давайте загрузим данные с torchvision упаковывайте и отслеживайте количество выборок данных для обучающих и тестовых наборов данных в качестве параметров с помощью SageMaker Experiments. Для этого примера предположим train_set и test_set как уже скачал torchvision наборы данных.

from sagemaker.session import Session
from sagemaker.experiments.run import Run
import os

# create an experiment and start a new run
experiment_name = "local-experiment-example"
run_name = "experiment-run"

with Run(experiment_name=experiment_name, sagemaker_session=Session(), run_name=run_name) as run:
    run.log_parameters({
        "num_train_samples": len(train_set.data),
        "num_test_samples": len(test_set.data)
    })
    for f in os.listdir(train_set.raw_folder):
        print("Logging", train_set.raw_folder+"/"+f)
        run.log_file(train_set.raw_folder+"/"+f, name=f, is_output=False)

В этом примере мы используем run.log_parameters регистрировать количество выборок обучающих и тестовых данных и run.log_file чтобы загрузить необработанные наборы данных в Amazon S3 и зарегистрировать их как входные данные для нашего эксперимента.

Amazon SageMaker Experiments следующего поколения. Организуйте, отслеживайте и сравнивайте свои тренинги по машинному обучению в масштабе PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай. Amazon SageMaker Experiments следующего поколения. Организуйте, отслеживайте и сравнивайте свои тренинги по машинному обучению в масштабе PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Обучение модели и регистрация метрик модели

Теперь, когда мы загрузили наш набор данных MNIST, давайте обучим модель CNN для распознавания цифр. Во время обучения модели мы хотим загрузить существующий запуск эксперимента, зарегистрировать в нем новые параметры и отслеживать производительность модели, регистрируя метрики модели.

Мы можем использовать load_run функция для загрузки нашего предыдущего прогона и использования ее для регистрации обучения нашей модели.

with load_run(experiment_name=experiment_name, run_name=run_name, sagemaker_session=Session()) as run:
    train_model(
        run=run,
        train_set=train_set,
        test_set=test_set,
        epochs=10,
        hidden_channels=5,
        optimizer="adam"
    )

Затем мы можем использовать run.log_parameter и run.log_parameters для регистрации одного или нескольких параметров модели в нашем прогоне.

# log the parameters of your model
run.log_parameter("device", "cpu")
run.log_parameters({
    "data_dir": data_dir,
    "optimizer": optimizer,
    "epochs": epochs,
    "hidden_channels": hidden_channels
})

И мы можем использовать run.log_metric чтобы регистрировать показатели производительности в нашем эксперименте.

run.log_metric(name=metric_type+":loss", value=loss, step=epoch)
run.log_metric(name=metric_type+":accuracy", value=accuracy, step=epoch)

Для моделей классификации вы также можете использовать run.log_confusion_matrix, run.log_precision_recallкачества run.log_roc_curve, чтобы автоматически построить матрицу путаницы, график точного отзыва и ROC-кривую вашей модели. Так как наша модель решает задачу мультиклассовой классификации, давайте запишем для нее только матрицу путаницы.

# log confusion matrix
with torch.no_grad():
    for data, target in test_loader:
        data, target = data.to(device), target.to(device)
        output = model(data)
        pred = output.max(1, keepdim=True)[1] 
        run.log_confusion_matrix(target, pred, "Confusion-Matrix-Test-Data")

Глядя на детали нашего запуска, мы теперь можем видеть сгенерированные метрики, как показано на снимке экрана ниже:

Amazon SageMaker Experiments следующего поколения. Организуйте, отслеживайте и сравнивайте свои тренинги по машинному обучению в масштабе PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

На странице сведений о запуске представлена ​​дополнительная информация о метриках.

Amazon SageMaker Experiments следующего поколения. Организуйте, отслеживайте и сравнивайте свои тренинги по машинному обучению в масштабе PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

И новые параметры модели отслеживаются на странице обзора параметров.

Amazon SageMaker Experiments следующего поколения. Организуйте, отслеживайте и сравнивайте свои тренинги по машинному обучению в масштабе PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Вы также можете проанализировать эффективность своей модели по классам, используя автоматически построенную матрицу путаницы, которую также можно загрузить и использовать для различных отчетов. И вы можете построить дополнительные графики для анализа производительности вашей модели на основе зарегистрированных показателей.

Amazon SageMaker Experiments следующего поколения. Организуйте, отслеживайте и сравнивайте свои тренинги по машинному обучению в масштабе PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Сравнение нескольких параметров модели

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

# define the list of parameters to train the model with
num_hidden_channel_param = [5, 10, 20]
optimizer_param = ["adam", "sgd"]
run_id = 0
# train the model using SageMaker Experiments to track the model parameters, 
# metrics and performance
sm_session = Session()
for i, num_hidden_channel in enumerate(num_hidden_channel_param):
    for k, optimizer in enumerate(optimizer_param):
        run_id += 1
        run_name = "experiment-run-"+str(run_id)
        print(run_name)
        print(f"Training model with: {num_hidden_channel} hidden channels and {optimizer} as optimizer")
        # Defining an experiment run for each model training run
        with Run(experiment_name=experiment_name, run_name=run_name, sagemaker_session=sm_session) as run:
            train_model(
                run=run, 
                train_set=train_set,
                test_set=test_set,
                epochs=10, 
                hidden_channels=num_hidden_channel,
                optimizer=optimizer
            )

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

Amazon SageMaker Experiments следующего поколения. Организуйте, отслеживайте и сравнивайте свои тренинги по машинному обучению в масштабе PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Использование экспериментов SageMaker с заданиями обучения, обработки и пакетного преобразования SageMaker

В приведенном выше примере мы использовали SageMaker Experiments для регистрации производительности модели из записной книжки SageMaker Studio, где модель обучалась локально в записной книжке. Мы можем сделать то же самое для регистрации производительности модели из заданий обработки, обучения и пакетного преобразования SageMaker. Благодаря новым возможностям автоматической передачи контекста нам не нужно специально делиться конфигурацией эксперимента с заданием SageMaker, поскольку она будет автоматически захвачена.

Пример ниже посвящен функциям SageMaker Experiments и не является полным кодом.

from sagemaker.pytorch import PyTorch
from sagemaker.experiments.run import Run
from sagemaker.session import Session
from sagemaker import get_execution_role
role = get_execution_role()

# set new experiment configuration
exp_name = "training-job-experiment-example"
run_name = "experiment-run-example"

# Start training job with experiment setting
with Run(experiment_name=exp_name, run_name=run_name, sagemaker_session=Session()) as run:
    est = PyTorch(
        entry_point="",
        dependencies=[""],
        role=role,
        model_dir=False,
        framework_version="1.12",
        py_version="py38",
        instance_type='ml.c5.xlarge',
        instance_count=1,
            hyperparameters={
            "epochs": 10,
            "hidden_channels":5,
            "optimizer": "adam",
        },
        keep_alive_period_in_seconds=3600
    )
    
    est.fit()

В нашем файле сценария модели мы можем получить контекст запуска, используя load_run(). В заданиях обработки и обучения SageMaker нам не нужно предоставлять конфигурацию эксперимента для загрузки конфигурации. Для заданий пакетного преобразования нам необходимо предоставить experiment_name и run_name чтобы загрузить конфигурацию эксперимента.

with load_run() as run:
    run.log_parameters({...})
    train_model(run, ...)

В дополнение к информации, которую мы получаем при запуске SageMaker Experiments из сценария блокнота, запуск из задания SageMaker автоматически заполняет параметры задания и выходные данные.

Amazon SageMaker Experiments следующего поколения. Организуйте, отслеживайте и сравнивайте свои тренинги по машинному обучению в масштабе PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай. Amazon SageMaker Experiments следующего поколения. Организуйте, отслеживайте и сравнивайте свои тренинги по машинному обучению в масштабе PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Новый SageMaker Experiments SDK также обеспечивает обратную совместимость с предыдущей версией, используя концепции пробных версий и пробных компонентов. Любой эксперимент, запущенный с помощью предыдущей версии SageMaker Experiments, будет автоматически доступен в новом пользовательском интерфейсе для анализа экспериментов.

Интеграция SageMaker Clarify и отчеты по моделированию обучения

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

С помощью новых экспериментов SageMaker мы также можем интегрировать отчеты SageMaker Clarify с обучением нашей модели, имея один источник достоверности, который позволяет нам глубже понять нашу модель. Для интегрированного отчета все, что нам нужно сделать, это иметь одно и то же имя запуска для наших заданий обучения и уточнения. В следующем примере показано, как мы можем интегрировать отчеты с помощью Модель XGBoost для прогнозирования доходов взрослых в Соединенных Штатах. В модели используется Набор данных UCI для взрослых. В этом упражнении мы предполагаем, что модель уже обучена и что мы уже рассчитали данные, модель и конфигурации смещения.

with Run(
    experiment_name='clarify-experiment',
    run_name="joint-run",
    sagemaker_session=sagemaker_session,
) as run:
    xgb.fit({"train": train_input}, logs=False)
    clarify_processor.run_bias(
        data_config=bias_data_config,
        bias_config=bias_config,
        model_config=model_config,
        model_predicted_label_config=predictions_config,
        pre_training_methods="all",
        post_training_methods="all",
    )
    clarify_processor.run_explainability(
        data_config=explainability_data_config,
        model_config=model_config,
        explainability_config=shap_config,
    )

С этой настройкой мы получаем комбинированное представление, которое включает метрики модели, совместные входные и выходные данные, а также отчеты Clarify для статистической систематической погрешности и объяснимости модели.

Amazon SageMaker Experiments следующего поколения. Организуйте, отслеживайте и сравнивайте свои тренинги по машинному обучению в масштабе PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай. Amazon SageMaker Experiments следующего поколения. Организуйте, отслеживайте и сравнивайте свои тренинги по машинному обучению в масштабе PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай. Amazon SageMaker Experiments следующего поколения. Организуйте, отслеживайте и сравнивайте свои тренинги по машинному обучению в масштабе PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай. Amazon SageMaker Experiments следующего поколения. Организуйте, отслеживайте и сравнивайте свои тренинги по машинному обучению в масштабе PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Заключение

В этом посте мы рассмотрели SageMaker Experiments нового поколения, интегрированную часть SageMaker SDK. Мы продемонстрировали, как вести журнал рабочих процессов машинного обучения из любого места с помощью нового класса Run. Мы представили новый пользовательский интерфейс экспериментов, который позволяет отслеживать ваши эксперименты и строить графики для метрики одного запуска, а также сравнивать несколько запусков с новой возможностью анализа. Мы предоставили примеры регистрации экспериментов из записной книжки SageMaker Studio и учебного задания SageMaker Studio. Наконец, мы показали, как объединить обучение модели и отчеты SageMaker Clarify в едином представлении, что позволит вам лучше понять вашу модель.

Мы рекомендуем вам опробовать новые функции Experiments и связаться с Сообщество машинного обучения и искусственного интеллекта если у вас есть какие-либо вопросы или отзывы!


Об авторах

Amazon SageMaker Experiments следующего поколения. Организуйте, отслеживайте и сравнивайте свои тренинги по машинному обучению в масштабе PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Майра Ладейра Танке является специалистом по машинному обучению в AWS. Имея опыт работы в области науки о данных, она имеет 9-летний опыт проектирования и создания приложений машинного обучения для клиентов из разных отраслей. В качестве технического руководителя она помогает клиентам ускорить достижение ценности бизнеса с помощью новых технологий и инновационных решений. В свободное время Майра любит путешествовать и проводить время со своей семьей в теплом месте.

Amazon SageMaker Experiments следующего поколения. Организуйте, отслеживайте и сравнивайте свои тренинги по машинному обучению в масштабе PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Мани Хануджа SA специалист по искусственному интеллекту и машинному обучению в Amazon Web Services (AWS). Она помогает клиентам решать бизнес-задачи с помощью машинного обучения с помощью AWS. Она тратит большую часть своего времени на глубокое погружение и обучение клиентов проектам AI / ML, связанным с компьютерным зрением, обработкой естественного языка, прогнозированием, машинным обучением на периферии и многим другим. Она увлечена машинным обучением на грани, поэтому она создала собственную лабораторию с комплектом для самостоятельного вождения и производственной линией по производству прототипов, где она проводит много свободного времени.

Amazon SageMaker Experiments следующего поколения. Организуйте, отслеживайте и сравнивайте свои тренинги по машинному обучению в масштабе PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Девэн Ци является инженером-разработчиком программного обеспечения в AWS. В настоящее время она участвует в создании набора сервисов и инструментов платформы в AWS SageMaker, чтобы помочь клиентам сделать их проекты машинного обучения успешными. Она также увлечена тем, чтобы донести концепцию MLOps до более широкой аудитории. Вне работы Дьюэн любит играть на виолончели.

Amazon SageMaker Experiments следующего поколения. Организуйте, отслеживайте и сравнивайте свои тренинги по машинному обучению в масштабе PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Абхишек Агарвал является старшим менеджером по продуктам Amazon SageMaker. Он увлечен работой с клиентами и делает машинное обучение более доступным. В свободное время Абхишек любит рисовать, кататься на велосипеде и изучать инновационные технологии.

Amazon SageMaker Experiments следующего поколения. Организуйте, отслеживайте и сравнивайте свои тренинги по машинному обучению в масштабе PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Дана Бенсон — инженер-программист, работающий в команде Amazon SageMaker Experiments, Lineage и Search. До прихода в AWS Дана уделяла время внедрению функций «умного дома» в Alexa и мобильных заказов в Starbucks.

Отметка времени:

Больше от Машинное обучение AWS