
В предыдущей статье мы познакомились с основными составляющими ClearML и детально рассмотрели модуль работы с данными. Теперь речь пойдёт о работе на удалённом сервере и настройках рабочего места с использованием ClearML Session. Заодно немного поговорим о модуле ClearML Agent. Поскольку эта тема вполне заслуживает отдельной статьи, в этот раз затронем агента лишь по касательной.
Что такое ClearML Session и для чего он используется в ML-задачах
ClearML Session — это инструмент для запуска удалённых экземпляров Jupyter Notebooks и VSCode внутри какого-либо докер-контейнера и в любом развёртывании: Cloud, Kubernetes, Bare-Metal. Таким образом, инструмент позволяет создавать рабочие места для ML-инженеров и выделять нужное количество мощностей для каждого из них.
Примеры использования ClearML Session:
Подключение к удаленным серверам с GPU;
Дебаггинг удаленного запуска (воспроизведения) ранее выполненного эксперимента в изолированной среде;
Быстрый перенос рабочего пространства на новый сервер.
С помощью этого решения можно эффективно распределять мощности и настраивать рабочие места для сотрудников. Об этом, например, рассказывал руководитель направления MLOps МТС в докладе на Data Fest Siberia.
Как применять Clear ML Session для настройки рабочей среды
Теперь рассмотрим по шагам, как настроить рабочую среду с Jupyter Lab и VSCode при использовании ClearML Session. Итак, поехали!
Шаг 1. Регистрация и установка ClearML
Как и в прошлый раз, начинаем с регистрации на сервере ClearML или разворачиваем свой фреймворк локально. Затем получаем креды (более подробно этот момент раскрыт в официальной документации). Поскольку мы подробно рассматривали процесс регистрации и установки в предыдущей публикации, не будем повторяться и обозначим лишь основные моменты под спойлером.
Установка ClearML
Для начала установим ClearML на локальной машине:
Устанавливаем у себя ClearML через
pip install clearmlРегистрируемся по ссылке: app.clear.ml/login
Заходим в Settings → Workspace → Создаем креды «Create new credentials»
Устанавливаем ClearML на локальную машину при помощи следующей команды:
pip install clearml
clearml-init
Затем используем креды во вкладке Local Python:

В консоли локальной машины запускаем команду clearml-init и вставляем креды:

После создания и получения кредов появится конфигурационный файл ~/clearml.conf для Linux.
А вот пути для других ОС:
Mac — $HOME/clearml.conf
Windows — \User\<username>\clearml.conf
Креды не должны коммититься и показываться публично. Примеры выше представлены только в демонстрационных целях.
После выполнения перечисленных действий появится файл clearml.conf, где будут записаны все созданные креды.
Шаг 2. Создание очереди в СlearML UI и агента на удаленном cервере
Как гласит народная мудрость, практика без теории слепа. Поэтому сперва немного поговорим о том, что такое агенты и очереди и как они работают, и только потом перейдём к пошаговым инструкциям.
Что такое агенты и очереди
ClearML Agent — это виртуальная среда и менеджер выполнения решений DL/ML на машинах с GPU, обеспечивающий полноценное кластерное решение.
В целом же агенты позволяют воспроизводить уже проведённые эксперименты и легко масштабироваться на нескольких удалённых серверах.
Например, есть код обучения, который был запущен с ClearML для отслеживания экспериментов (2 строки в начале вашего скрипта обучения). На сервере ClearML будет создана соответствующая задача. Напомним, что все сущности в СlearML относятся к типу task: для них сохраняются установленные пакеты с версиями, артефакты, не закоммиченый код, ссылки на репозиторий, запущенный скрипт, графики и др. Всё это позволяет воспроизвести эксперимент, клонировав задачу (task), изменив гиперпараметры и назначив его на очередь.
Запущенный агент будет слушать те очереди на сервере, на которые назначаются задачи. Притом в ClearML UI можно изменять приоритет выполнения задач, слушать несколько очередей и использовать множество других полезных фичей. Впрочем, здесь мы уже отклоняемся в тему для отдельной статьи
