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

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

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

В этом посте рассматривается пример того, как отслеживать эксперименты с кодом, данными, артефактами и метриками с помощью Эксперименты с Amazon SageMaker в сочетании с Контроль версий данных (DVC). Мы покажем, как можно использовать DVC одновременно с Создатель мудреца Амазонки обработка и обучение рабочих мест. Мы обучаем различные модели CatBoost на наборе данных о жилье в Калифорнии из Репозиторий StatLibи меняйте стратегии удержания, отслеживая версию данных с помощью DVC. В каждом отдельном эксперименте мы отслеживаем входные и выходные артефакты, код и метрики с помощью SageMaker Experiments.

SageMaker эксперименты

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

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

Обсуждая эксперименты SageMaker, мы имеем в виду следующие концепции:

  • Эксперимент – Сборник связанных испытаний. Вы добавляете испытания в эксперимент, который хотите сравнить.
  • Суд – Описание многоэтапного рабочего процесса машинного обучения. Каждый шаг рабочего процесса описывается пробным компонентом.
  • Пробный компонент – Описание отдельного шага рабочего процесса машинного обучения, такого как очистка данных, извлечение признаков, обучение модели или оценка модели.
  • Tracker – Менеджер контекста Python для регистрации информации об одном компоненте пробного исследования (например, параметрах, метриках или артефактах).

Контроль версий данных

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

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

DVC имеет следующие особенности:

  • ДВК – это бесплатно, Открытый исходный код командной строки инструмент.
  • DVC работает поверх репозиториев Git и имеет аналогичный интерфейс командной строки и поток операций, что и Git. DVC также может работать автономно, но без версиями клапанов.
  • Управление версиями данных обеспечивается за счет замены больших файлов, каталогов наборов данных, моделей машинного обучения и т. д. небольшими. метафайлы (легко справиться с Git). Эти заполнители указывают на исходные данные, которые отделены от управления исходным кодом.
  • Вы можете использовать локальное или облачное хранилище для хранения данных проекта отдельно от его базы кода. Таким образом ученые, работающие с данными, могут передавать большие наборы данных или делиться моделью, обученной на графическом процессоре, с другими.
  • DVC делает проекты по обработке и анализу данных воспроизводимыми, создавая легкие трубопроводов используя неявные графы зависимостей и кодифицируя задействованные данные и артефакты.
  • DVC не зависит от платформы. Он работает во всех основных операционных системах (Linux, macOS и Windows) и работает независимо от языков программирования (Python, R, Julia, сценарии оболочки и т. д.) или библиотек ML (Keras, TensorFlow, PyTorch, Scipy и т. д.). подробнее), использованные в проекте.
  • DVC быстро устанавливать и не требует специальной инфраструктуры и не зависит от API или внешних сервисов. Это автономный инструмент CLI.

Эксперименты SageMaker и образец DVC

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

Следующая диаграмма иллюстрирует архитектуру решения и рабочий процесс.

Создайте собственный образ Studio с уже установленным DVC.

В этом Репозиторий GitHubмы объясним, как создать собственный образ для Studio, в которой уже установлен DVC. Преимущество создания образа и предоставления его всем пользователям Studio заключается в том, что он создает согласованную среду для пользователей Studio, которую они также могут запускать локально. Хотя выборка основана на Облако AWS9вы также можете собрать контейнер на своем локальном компьютере, если у вас установлен и работает Docker. Этот образец основан на следующем Dockerfile и среда.yml. Полученный образ Docker сохраняется в Реестр Amazon Elastic Container (Amazon EMR) в вашей учетной записи AWS. См. следующий код:

# Login to ECR
aws --region ${REGION} ecr get-login-password | docker login --username AWS --password-stdin ${ACCOUNT_ID}.dkr.ecr.${REGION}.amazonaws.com/smstudio-custom

# Create the ECR repository
aws --region ${REGION} ecr create-repository --repository-name smstudio-custom

# Build the image - it might take a few minutes to complete this step
docker build . -t ${IMAGE_NAME} -t ${ACCOUNT_ID}.dkr.ecr.${REGION}.amazonaws.com/smstudio-custom:${IMAGE_NAME}

# Push the image to ECR
docker push ${ACCOUNT_ID}.dkr.ecr.${REGION}.amazonaws.com/smstudio-custom:${IMAGE_NAME}

Ты можешь сейчас создать новый домен Studio or обновить существующий домен Studio у которого есть доступ к вновь созданному образу Docker.

МЫ ИСПОЛЬЗУЕМ Комплект для разработки облачных сервисов AWS (AWS CDK), чтобы создать следующие ресурсы через AWS CloudFormation:

  • Роль исполнения SageMaker с необходимыми разрешениями для вашего нового или существующего домена Studio.
  • Образ SageMaker и версия образа SageMaker из образа Docker. conda-env-dvc-kernel которые мы создали ранее
  • An AppImageConfig который определяет, как должен быть настроен шлюз ядра
  • Пользователь студии (data-scientist-dvc) с правильной ролью выполнения SageMaker и доступным для него пользовательским образом Studio.

Подробные инструкции см. Свяжите собственное изображение с SageMaker Studio..

Запустить лабораторию

Чтобы запустить лабораторию, выполните следующие действия:

  1. В домене Studio запустите Studio для data-scientist-dvc пользователь.
  2. Выберите значок Git, затем выберите Клонировать репозиторий.
    Клонировать репозиторий
  3. Введите URL репозитория (https://github.com/aws-samples/amazon-sagemaker-experiments-dvc-demo) и выберите Клон.Клонировать кнопку репо
  4. В файловом браузере выберите amazon-sagemaker-experiments-dvc-demo репозиторий.
  5. Откройте приложение dvc_sagemaker_script_mode.ipynb Блокнот.
  6. Что касается Пользовательское изображение, выберите образ conda-env-dvc-kernel.
  7. Выберите Выберите.
    Конда-env-dvc-ядро

Настройка DVC для управления версиями данных

Создаем подкаталог, в котором подготавливаем данные: sagemaker-dvc-sample. В этом подкаталоге мы инициализируем новый репозиторий Git и настраиваем удаленный репозиторий, который мы создаем в AWS CodeCommit. Цель состоит в том, чтобы иметь версии конфигураций DVC и файлов для отслеживания данных в этом репозитории. Однако Git предлагает встроенные возможности для управления подпроектами, например, с помощью подмодулей и поддеревьев git, и вы можете расширить этот пример, чтобы использовать любой из вышеупомянутых инструментов, которые лучше всего подходят для вашего рабочего процесса.

Основным преимуществом использования CodeCommit с SageMaker в нашем случае является его интеграция с Управление идентификацией и доступом AWS (IAM) для аутентификации и авторизации, что означает, что мы можем использовать роли IAM для отправки и получения данных без необходимости получения учетных данных (или ключей SSH). Установка соответствующих разрешений для роли выполнения SageMaker также позволяет блокноту Studio и заданию обучения и обработки SageMaker безопасно взаимодействовать с CodeCommit.

Хотя вы можете заменить CodeCommit любой другой службой контроля версий, например GitHub, Gitlab или Bitbucket, вам необходимо подумать о том, как обращаться с учетными данными для вашей системы. Одна из возможностей — сохранить эти учетные данные на Менеджер секретов AWS и извлекайте их во время выполнения из блокнота Studio, а также из заданий обработки и обучения SageMaker.

Инициализировать DVC

Обработка и обучение с помощью DVC и SageMaker

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

Настройте эксперимент SageMaker

Чтобы отслеживать этот тест в SageMaker, нам нужно создать эксперимент. Нам также необходимо определить испытание внутри эксперимента. Для простоты мы рассматриваем только одно испытание для эксперимента, но вы можете иметь любое количество испытаний в рамках эксперимента, например, если вы хотите протестировать разные алгоритмы.

Мы создаем эксперимент под названием DEMO-sagemaker-experiments-dvc с двумя испытаниями, dvc-trial-single-file и dvc-trial-multi-files, каждый из которых представляет отдельную версию набора данных.

Давайте создадим DEMO-sagemaker-experiments-dvc эксперимент:

from smexperiments.experiment import Experiment
from smexperiments.trial import Trial
from smexperiments.trial_component import TrialComponent
from smexperiments.tracker import Tracker

experiment_name = 'DEMO-sagemaker-experiments-dvc'

# create the experiment if it doesn't exist
try:
    my_experiment = Experiment.load(experiment_name=experiment_name)
    print("existing experiment loaded")
except Exception as ex:
    if "ResourceNotFound" in str(ex):
        my_experiment = Experiment.create(
            experiment_name = experiment_name,
            description = "How to integrate DVC"
        )
        print("new experiment created")
    else:
        print(f"Unexpected {ex}=, {type(ex)}")
        print("Dont go forward!")
        raise

Тест 1. Создайте отдельные файлы для обучения и проверки.

В этом разделе мы создаем сценарий обработки, который извлекает необработанные данные непосредственно из Простой сервис хранения Amazon (Amazon S3) в качестве входных данных; обрабатывает его для создания наборов обучающих, проверочных и тестовых данных; и сохраняет результаты обратно в Amazon S3 с помощью DVC. Кроме того, мы покажем, как можно отслеживать артефакты вывода, создаваемые DVC, с помощью SageMaker при выполнении заданий обработки и обучения, а также с помощью экспериментов SageMaker.

Сначала мы создаем dvc-trial-single-file пробную версию и добавьте ее в DEMO-sagemaker-experiments-dvc эксперимент. Поступая таким образом, мы сохраняем содержательную организацию всех компонентов исследования, связанных с этим тестом.

first_trial_name = "dvc-trial-single-file"

try:
    my_first_trial = Trial.load(trial_name=first_trial_name)
    print("existing trial loaded")
except Exception as ex:
    if "ResourceNotFound" in str(ex):
        my_first_trial = Trial.create(
            experiment_name=experiment_name,
            trial_name=first_trial_name,
        )
        print("new trial created")
    else:
        print(f"Unexpected {ex}=, {type(ex)}")
        print("Dont go forward!")
        raise

Используйте DVC в задании обработки SageMaker для создания версии одного файла.

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

Наконец, мы объединяем возможности отслеживания DVC с возможностями отслеживания SageMaker при запуске заданий обработки с помощью SageMaker Experiments.

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

  • DVC_REPO_URL
  • DVC_BRANCH
  • USER
  • data_commit_hash
  • train_test_split_ratio

Сценарий предварительной обработки клонирует репозиторий Git; генерирует обучающие, проверочные и тестовые наборы данных; и синхронизирует его с помощью DVC. Как упоминалось ранее, при использовании DVC мы не можем воспользоваться собственными возможностями загрузки данных SageMaker. Помимо снижения производительности, которое может возникнуть при работе с большими наборами данных, мы также теряем возможности автоматического отслеживания выходных артефактов. Однако благодаря трекеру и API DVC Python мы можем компенсировать эти недостатки, получать такую ​​информацию во время выполнения и без особых усилий сохранять ее в пробном компоненте. Дополнительная ценность при этом заключается в том, чтобы иметь единое представление об артефактах ввода и вывода, принадлежащих этому конкретному заданию обработки.

Полный сценарий Python для предварительной обработки доступен в Репо GitHub.

with Tracker.load() as tracker:
    tracker.log_parameters({"data_commit_hash": commit_hash})
    for file_type in file_types:
        path = dvc.api.get_url(
            f"{data_path}/{file_type}/california_{file_type}.csv",
            repo=dvc_repo_url,
            rev=dvc_branch
        )
        tracker.log_output(name=f"california_{file_type}",value=path)

SageMaker дает нам возможность запускать наш сценарий обработки для образов контейнеров, управляемых AWS, которые оптимизированы для работы в инфраструктуре AWS. Если наш скрипт требует дополнительных зависимостей, мы можем предоставить requirements.txt файл. Когда мы запускаем задание обработки, SageMaker использует pip-install для установки всех необходимых нам библиотек (например, библиотек, связанных с DVC). Если вам необходимо более жестко контролировать все библиотеки, установленные в контейнерах, вы можете добавить свой собственный контейнер в SageMaker, например для обработка и обучение.

Теперь у нас есть все ингредиенты для запуска нашего задания обработки SageMaker:

  • Сценарий обработки, который может обрабатывать несколько аргументов (--train-test-split-ratio) и две переменные среды (DVC_REPO_URL и DVC_BRANCH)
  • A requiremets.txt файл
  • Репозиторий Git (в CodeCommit)
  • Эксперимент и испытание SageMaker
from sagemaker.processing import FrameworkProcessor, ProcessingInput
from sagemaker.sklearn.estimator import SKLearn

dvc_repo_url = "codecommit::{}://sagemaker-dvc-sample".format(region)
dvc_branch = my_first_trial.trial_name

script_processor = FrameworkProcessor(
    estimator_cls=SKLearn,
    framework_version='0.23-1',
    instance_count=1,
    instance_type='ml.m5.xlarge',
    env={
        "DVC_REPO_URL": dvc_repo_url,
        "DVC_BRANCH": dvc_branch,
        "USER": "sagemaker"
    },
    role=role
)

experiment_config={
    "ExperimentName": my_experiment.experiment_name,
    "TrialName": my_first_trial.trial_name
}

Затем мы запускаем задание обработки с помощью preprocessing-experiment.py сценарий, experiment_config, dvc_repo_urlи dvc_branch мы определили ранее.

%%time

script_processor.run(
    code='./source_dir/preprocessing-experiment.py',
    dependencies=['./source_dir/requirements.txt'],
    inputs=[ProcessingInput(source=s3_data_path, destination="/opt/ml/processing/input")],
    experiment_config=experiment_config,
    arguments=["--train-test-split-ratio", "0.2"]
)

Выполнение задания по обработке занимает около 5 минут. Теперь вы можете просмотреть детали испытания для одного набора данных файла.

На следующем снимке экрана показано, где можно найти сохраненную информацию в Studio. Обратите внимание на значения для dvc-trial-single-file in DVC_BRANCH, DVC_REPO_URLи data_commit_hash на параметры меню.

Вкладка параметров экспериментов SageMaker

Также обратите внимание на детали ввода и вывода на Артефакты меню.

Вкладка артефактов SageMaker Experiments

Создайте оценщик и подгоните модель к версии данных одного файла.

Чтобы использовать интеграцию DVC в задании обучения SageMaker, мы передаем dvc_repo_url и dvc_branch в качестве переменных среды при создании объекта Estimator.

Мы тренируемся на dvc-trial-single-file ветка первая.

При извлечении данных с помощью DVC мы используем следующую структуру набора данных:

dataset
    |-- train
    |   |-- california_train.csv
    |-- test
    |   |-- california_test.csv
    |-- validation
    |   |-- california_validation.csv

Теперь мы создаем оценщик Scikit-learn, используя SDK для SageMaker Python. Это позволяет нам указать следующее:

  • Путь к исходному файлу Python, который следует запустить в качестве точки входа в обучение.
  • Роль IAM, которая контролирует разрешения на доступ к данным Amazon S3 и CodeCommit и запуск функций SageMaker.
  • Список словарей, определяющих метрики, используемые для оценки заданий по обучению.
  • Количество и тип обучающих экземпляров. Мы используем один экземпляр ml.m5.large.
  • Гиперпараметры, которые используются для обучения.
  • Переменные среды, которые будут использоваться во время обучения. Мы используем DVC_REPO_URL, DVC_BRANCHи USER.
metric_definitions = [{'Name': 'median-AE', 'Regex': "AE-at-50th-percentile: ([0-9.]+).*$"}]

hyperparameters={ 
        "learning_rate" : 1,
        "depth": 6
    }
estimator = SKLearn(
    entry_point='train.py',
    source_dir='source_dir',
    role=role,
    metric_definitions=metric_definitions,
    hyperparameters=hyperparameters,
    instance_count=1,
    instance_type='ml.m5.large',
    framework_version='0.23-1',
    base_job_name='training-with-dvc-data',
    environment={
        "DVC_REPO_URL": dvc_repo_url,
        "DVC_BRANCH": dvc_branch,
        "USER": "sagemaker"
    }
)

experiment_config={
    "ExperimentName": my_experiment.experiment_name,
    "TrialName": my_first_trial.trial_name
}

Мы вызываем метод fit Оценщика с помощью Experiment_config, который мы определили ранее, чтобы начать обучение.

%%time
estimator.fit(experiment_config=experiment_config)

Выполнение обучающего задания занимает около 5 минут. В журналах показаны эти строки, обозначающие файлы, извлеченные DVC:

Running dvc pull command
A       train/california_train.csv
A       test/california_test.csv
A       validation/california_validation.csv
3 files added and 3 files fetched
Starting the training.
Found train files: ['/opt/ml/input/data/dataset/train/california_train.csv']
Found validation files: ['/opt/ml/input/data/dataset/train/california_train.csv']

Тест 2. Создайте несколько файлов для обучения и проверки.

Мы создаем новый dvc-trial-multi-files пробную версию и добавьте ее в текущую DEMO-sagemaker-experiments-dvc эксперимент.

second_trial_name = "dvc-trial-multi-files"
try:
    my_second_trial = Trial.load(trial_name=second_trial_name)
    print("existing trial loaded")
except Exception as ex:
    if "ResourceNotFound" in str(ex):
        my_second_trial = Trial.create(
            experiment_name=experiment_name,
            trial_name=second_trial_name,
        )
        print("new trial created")
    else:
        print(f"Unexpected {ex}=, {type(ex)}")
        print("Dont go forward!")
        raise

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

Вы можете изучить второй скрипт Python предварительной обработки на GitHub.

%%time

script_processor.run(
    code='./source_dir/preprocessing-experiment-multifiles.py',
    dependencies=['./source_dir/requirements.txt'],
    inputs=[ProcessingInput(source=s3_data_path, destination="/opt/ml/processing/input")],
    experiment_config=experiment_config,
    arguments=["--train-test-split-ratio", "0.1"]
)

Выполнение задания по обработке занимает около 5 минут. Теперь вы можете просмотреть детали испытания для многофайлового набора данных.

На следующих снимках экрана показано, где можно найти сохраненную информацию в SageMaker Experiments в Пробные компоненты раздел в пользовательском интерфейсе Studio. Обратите внимание на значения для dvc-trial-multi-files in DVC_BRANCH, DVC_REPO_URLи data_commit_hash на параметры меню.

Вкладка параметров многофайловых экспериментов SageMaker

Вы также можете просмотреть детали ввода и вывода на Артефакты меню.

Вкладка артефактов многофайловых экспериментов SageMaker

Теперь мы тренируемся на dvc-trial-multi-files ветвь. При извлечении данных с помощью DVC мы используем следующую структуру набора данных:

dataset
    |-- train
    |   |-- california_train_1.csv
    |   |-- california_train_2.csv
    |   |-- california_train_3.csv
    |   |-- california_train_4.csv
    |   |-- california_train_5.csv
    |-- test
    |   |-- california_test.csv
    |-- validation
    |   |-- california_validation_1.csv
    |   |-- california_validation_2.csv
    |   |-- california_validation_3.csv

Как и раньше, мы создаем новый оценщик Scikit-learn с названием испытания. dvc-trial-multi-files и начать обучение.

%%time

estimator.fit(experiment_config=experiment_config)

Выполнение обучающего задания занимает около 5 минут. В журналах заданий обучения, выводимых в блокнот, вы можете увидеть следующие строки, обозначающие файлы, извлеченные DVC:

Running dvc pull command
A       validation/california_validation_2.csv
A       validation/california_validation_1.csv
A       validation/california_validation_3.csv
A       train/california_train_4.csv
A       train/california_train_5.csv
A       train/california_train_2.csv
A       train/california_train_3.csv
A       train/california_train_1.csv
A       test/california_test.csv
9 files added and 9 files fetched
Starting the training.
Found train files: ['/opt/ml/input/data/dataset/train/california_train_2.csv', '/opt/ml/input/data/dataset/train/california_train_5.csv', '/opt/ml/input/data/dataset/train/california_train_4.csv', '/opt/ml/input/data/dataset/train/california_train_1.csv', '/opt/ml/input/data/dataset/train/california_train_3.csv']
Found validation files: ['/opt/ml/input/data/dataset/validation/california_validation_2.csv', '/opt/ml/input/data/dataset/validation/california_validation_1.csv', '/opt/ml/input/data/dataset/validation/california_validation_3.csv']

Разместите свою модель в SageMaker

После обучения модели машинного обучения вы можете развернуть ее с помощью SageMaker. Чтобы развернуть постоянную конечную точку в реальном времени, которая делает один прогноз за раз, мы используем Услуги хостинга SageMaker в режиме реального времени.

from sagemaker.serializers import CSVSerializer

predictor = estimator.deploy(1, "ml.t2.medium", serializer=CSVSerializer())

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

import io
import dvc.api

raw = dvc.api.read(
    "dataset/test/california_test.csv",
    repo=dvc_repo_url,
    rev=dvc_branch
)

Затем мы подготавливаем данные с помощью Pandas, загружаем тестовый CSV-файл и вызываем predictor.predict для вызова созданной ранее конечной точки SageMaker с данными и получения прогнозов.

test = pd.read_csv(io.StringIO(raw), sep=",", header=None)
X_test = test.iloc[:, 1:].values
y_test = test.iloc[:, 0:1].values

predicted = predictor.predict(X_test)
for i in range(len(predicted)-1):
    print(f"predicted: {predicted[i]}, actual: {y_test[i][0]}")

Удалить конечную точку

Вам следует удалить конечные точки, когда они больше не используются, поскольку оплата за них взимается по времени развертывания (дополнительную информацию см. в разделе Цены на Amazon SageMaker). Обязательно удалите конечную точку, чтобы избежать непредвиденных расходов.

predictor.delete_endpoint()

Убирать

Прежде чем удалить все созданные вами ресурсы, убедитесь, что все приложения удалены из data-scientist-dvc пользователя, включая все приложения KernelGateway, а также приложение JupiterServer по умолчанию.

Затем вы можете уничтожить стек AWS CDK, выполнив следующую команду:

cdk destroy

Если вы использовали существующий домен, также выполните следующие команды:

# inject your DOMAIN_ID into the configuration file
sed -i 's/<your-sagemaker-studio-domain-id>/'"$DOMAIN_ID"'/' ../update-domain-no-custom-images.json
# update the sagemaker studio domain
aws --region ${REGION} sagemaker update-domain --cli-input-json file://../update-domain-no-custom-images.json

Заключение

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

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

Для дальнейшего чтения обратитесь к следующим ресурсам:


Об авторах

Паоло Ди ФранческоПаоло Ди Франческо является архитектором решений в AWS. Имеет опыт работы в области телекоммуникаций и разработки программного обеспечения. Он увлечен машинным обучением и в настоящее время сосредоточен на использовании своего опыта, чтобы помочь клиентам достичь своих целей в AWS, в частности, в обсуждениях MLOps. Вне работы он любит играть в футбол и читать.

Эйтан СелаЭйтан Села является специалистом по машинному обучению, архитектором решений в Amazon Web Services. Он работает с клиентами AWS, предоставляя рекомендации и техническую помощь, помогая им создавать и использовать решения для машинного обучения на AWS. В свободное время Эйтан любит бегать и читать последние статьи по машинному обучению.

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

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