Наука о данных
Начало работы с Comet REST API
Обзор Comet REST API с практическим примером
Comet — это платформа для экспериментов, которая позволяет отслеживать, контролировать и сравнивать ваши эксперименты с машинным обучением. Вы можете написать свой код на предпочитаемом вами языке, а затем сравнить результаты своих экспериментов в интерфейсе Comet. Первоначально я тестировал Comet с помощью Python, но в некоторых из своих последних статей я описал, как легко работать с Comet, используя также R и Java.
В этой статье я сосредоточусь на REST API. Да, потому что Comet также предоставляет очень полезный сервис REST API для взаимодействия!
Статья организована следующим образом:
- Обзор Comet REST API
- Практический пример
1. Обзор Comet REST API
Служба Comet REST API позволяет получить доступ к рабочим областям, проектам, экспериментам, моделям и т. д. Чтобы настроить соединение со службой Comet REST API, необходимо сначала настроить заголовок авторизации HTTP с помощью ключа Comet API. В следующем разделе вы увидите, как создать вызов REST API с помощью команды curl
.
Comet предоставляет следующий базовый URL-адрес для доступа к службе REST API:
https://www.comet.ml/api/rest/v2/
В зависимости от того, что вы передадите в качестве следующего параметра базовому URL, вы получите разные объекты Comet.
Например, чтобы получить доступ ко всем рабочим областям, вы можете использовать параметр workspaces
следующим образом:
https://www.comet.ml/api/rest/v2/workspaces
Вы также можете получить доступ ко всем проектам в рабочей области, используя параметр projects
и имя рабочей области:
https://www.comet.ml/api/rest/v2/projects?workspaceName=aWorkspace
Чтобы получить доступ к экспериментам в рамках проекта, вы можете использовать параметр experiment
, а также параметр projectId
. Если вы не хотите получать доступ к заархивированным экспериментам, вам необходимо установить для ключевого слова archived значение false:
https://www.comet.ml/api/rest/v2/experiments?projectId=aProjectId&archived=false
Вы даже можете получить доступ к моделям, содержащимся в реестре, используя параметр register-model, а также имя рабочей области:
https://www.comet.ml/api/rest/v2/registry-model?workspaceName=aWorkspace
Чтобы загрузить модель из реестра, вы можете использовать параметр register-model, а также имя рабочей области, имя модели и ее версию:
https://www.comet.ml/api/rest/v2/registry-model/item/download?workspaceName=AWorkspace&modelName=AModel&version=AVersion
Служба Comet REST API также позволяет вам получать доступ к другим объектам. Список всех вызовов, предоставляемых Comet API, доступен здесь.
У разных команд разные потребности. Комета вас прикроет. Узнайте, как команда Uber использует управление экспериментами Comet для настройки моделей в реальном времени.
2. Практический пример
Предположим, вы построили эксперимент и протестировали разные модели. Вы выбрали лучшую из этих моделей и зарегистрировали ее в реестре Comet. Вы можете найти подробное описание того, как выполнять эти операции, в моей предыдущей статье под названием Как использовать реестр Comet для отслеживания ваших моделей машинного обучения.
Теперь вы хотите использовать Comet Registry в качестве официального репозитория для вашей модели. Это может быть очень полезно, когда вы переводите свое приложение в рабочую среду, потому что вы можете использовать Comet, чтобы всегда хранить лучшую и последнюю модель. Благодаря использованию Comet Registry вам больше не придется помнить, какая модель лучше, потому что вы будете держать все под контролем в Comet Registry. Например, если новый эксперимент докажет, что одна модель лучше текущей, достаточно будет зарегистрировать ее в Comet Registry и просто заменить предыдущую модель на новую. Через REST API вы всегда сможете скачать самую последнюю модель.
Чтобы загрузить модель, вы можете использовать две разные стратегии.
В первой стратегии вы можете использовать интерфейс Comet. Если у вас есть доступ к реестру Comet, вы можете: 1) загрузить самую последнюю версию модели с помощью кнопки «Получить модель» или; 2) загрузить любую конкретную версию, нажав на значок загрузки, как показано на следующем рисунке:
Однако эта стратегия требует, чтобы вы вручную загружали интересующую вас версию модели. Таким образом, каждый раз, когда вы хотите загрузить модель, вам необходимо получить доступ к интерфейсу Comet.
Во второй стратегии вы можете написать код на предпочитаемом вами языке для автоматической загрузки модели из реестра с помощью Comet Python API.
Здесь я комбинирую REST API и bash-скрипты для загрузки модели.
Сначала создайте файл с именем get_model.sh
. Затем отредактируйте следующим образом:
Определите некоторые переменные, содержащие ваш Comet API и ваше рабочее пространство:
#!/bin/sh COMET_API_KEY='YOUR_COMET_API_KEY' COMET_WORKSPACE='YOUR_COMET_WORKSPACE'
Теперь определите две дополнительные переменные, содержащие имя модели и версию модели, которую вы хотите загрузить:
MODEL_NAME='YOUR_MODEL_NAME' MODEL_VERSION='YOUR_MODEL_VERSION'
Наконец, используйте команду curl
для загрузки модели:
curl -o model.zip -s "https://www.comet.ml/api/rest/v2/registry-model/item/download?workspaceName=$COMET_WORKSPACE&modelName=$MODEL_NAME&version=$MODEL_VERSION" -H "Authorization: $COMET_API_KEY"
Загруженная модель хранится в файле с именем model.zip
. Чтобы восстановить исходную модель этого файла, просто разархивируйте его.
И все — быстро и просто!
Краткое содержание
Поздравляем! Вы только что узнали о Comet REST API и о том, как использовать его для загрузки модели из реестра моделей Comet.
Вы можете использовать Comet REST API для различных целей, включая интеграцию Comet с конвейером CI/CD. Подробнее об этом можно узнать здесь.
Удачного кодирования! Счастливая Комета!
Примечание редактора. Heartbeat — это интернет-издание и сообщество, созданное участниками и посвященное предоставлению лучших образовательных ресурсов для специалистов по науке о данных, машинному обучению и глубокому обучению. Мы стремимся поддерживать и вдохновлять разработчиков и инженеров из всех слоев общества.
Независимая от редакции, Heartbeat спонсируется и публикуется Comet, платформой MLOps, которая позволяет специалистам по данным и командам машинного обучения отслеживать, сравнивать, объяснять и оптимизировать свои эксперименты. Мы платим нашим авторам и не продаем рекламу.
Если вы хотите внести свой вклад, перейдите к нашему призыву к участию. Вы также можете подписаться на получение наших еженедельных информационных бюллетеней (Еженедельник глубокого обучения и Информационный бюллетень Comet), присоединиться к нам в Slack и следить за Comet в Twitter и LinkedIn, чтобы получать ресурсы, события и многое другое, что поможет вам быстрее создавать лучшие модели машинного обучения.