Наука о данных

Начало работы с 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, чтобы получать ресурсы, события и многое другое, что поможет вам быстрее создавать лучшие модели машинного обучения.