ClearML Session — магия вне Хогвартса

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

В предыдущей статье мы познакомились с основными составляющими ClearML и детально рассмотрели модуль работы с данными. Теперь речь пойдёт о работе на удалённом сервере и настройках рабочего места с использованием ClearML Session. Заодно немного поговорим о модуле ClearML Agent. Поскольку эта тема вполне заслуживает отдельной статьи, в этот раз затронем агента лишь по касательной.

Что такое ClearML Session и для чего он используется в ML-задачах 

ClearML Session — это инструмент для запуска удалённых экземпляров Jupyter Notebooks и VSCode внутри какого-либо докер-контейнера и в любом развёртывании: Cloud, Kubernetes, Bare-Metal. Таким образом, инструмент позволяет создавать рабочие места для ML-инженеров и выделять нужное количество мощностей для каждого из них.

Примеры использования ClearML Session:

  1. Подключение к удаленным серверам с GPU;

  2. Дебаггинг удаленного запуска (воспроизведения) ранее выполненного эксперимента в изолированной среде;

  3. Быстрый перенос рабочего пространства на новый сервер.

С помощью этого решения можно эффективно распределять мощности и настраивать рабочие места для сотрудников. Об этом, например, рассказывал руководитель направления MLOps МТС в докладе на Data Fest Siberia.

Как применять Clear ML Session для настройки рабочей среды

Теперь рассмотрим по шагам, как настроить рабочую среду с Jupyter Lab и VSCode при использовании ClearML Session. Итак, поехали! 

Шаг 1. Регистрация и установка ClearML

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

Установка ClearML

Для начала установим ClearML на локальной машине:

  1. Устанавливаем у себя ClearML через pip install clearml

  2. Регистрируемся по ссылке: app.clear.ml/login

  3. Заходим в Settings → Workspace → Создаем креды «Create new credentials»

  4. Устанавливаем 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 можно изменять приоритет выполнения задач, слушать несколько очередей и использовать множество других полезных фичей. Впрочем, здесь мы уже отклоняемся в тему для отдельной статьи

Источник: https://habr.com/ru/companies/magnus-tech/articles/824798/


Интересные статьи

Интересные статьи

Привет, друзья!Благодарю вас за позитивный отклик на мои статьи и за подписки — это бесценно. Продолжим.К этому моменту мы с вами уже научились многому:- Запустили своего бота на aiogram 3 - Поговорил...
Всё, что сложно или невозможно объяснить, называют магией. Ещё в 1997 году суперкомпьютер Deep Blue обыграл чемпиона мира по шахматам. Шок, недоверие и теории заговора. В 2016 году другой суперкомпьют...
Quarkus – это стек Java, приспособленный для работы с OpenJDK HotSpot (или OpenJ9 на zSeries) и GraalVM, собранный из оптимизированных библиотек и стандартов Java. Он хорошо подходит для соз...
Бу́дущее — гипотетическая часть линии времени, множество событий, которые ещё не произошли, но могут произойти.Этот месяц может определённо пройт...
Пользование виртуальными машинами на Linux в Hyper-V из коробки — несколько менее комфортное занятие, чем с гостевыми Windows-машинами. Причиной тому является то, что Hyper-V все же изначально ...