# ClearML: как автоматизировать R&D и оркестрацию GPU за две строки кода

Источник: https://www.youtube.com/watch?v=CLp55IU95wo
Канал: The TWIML AI Podcast
Опубликовано: 06.09.2022

---

В рамках воркшопа на конференции TWIMLcon Ариэль Биллер, евангелист ClearML, представил возможности одноимённой платформы для автоматизации MLOps. В ходе демонстрации было показано, как превратить исследовательский хаос в структурированный процесс разработки с помощью всего нескольких строк кода, обеспечив полную воспроизводимость экспериментов и масштабирование вычислений.

## 🛠 Проблема «грязных» исследований в машинном обучении
[[JUMP:02:00]]

Процесс разработки в области Machine Learning и Deep Learning (R&D) существенно отличается от традиционной разработки ПО. По мнению Ариэля Биллера, этот процесс часто бывает «грязным» и неструктурированным [03:07]. Основные сложности, с которыми сталкиваются команды:

*   **Доминирование подготовки данных:** Около 80% времени уходит на очистку и обработку данных (data wrangling), а не на само моделирование [02:28].
*   **Отсутствие воспроизводимости:** Часто исследователь не может точно вспомнить или повторить путь, который привёл к получению наилучшего результата [02:14].
*   **Разрыв между R&D и продакшеном:** Код, написанный в блокнотах, сложно передать инженерам для деплоя.
*   **Технический долг:** Быстрое внедрение крутых фишек Deep Learning мгновенно порождает технический долг, который необходимо минимизировать [03:19].

По словам Биллера, MLOps — это прежде всего управление техническим долгом через автоматизацию, оркестрацию и обеспечение воспроизводимости [03:44]. При этом критически важно, чтобы инструменты MLOps интегрировались в существующий рабочий процесс, не снижая продуктивность исследователя [04:11].

## 🏗 Стратегия выбора MLOps-платформы
[[JUMP:05:44]]

Организации часто пытаются решить проблемы MLOps частичными мерами: принудительным коммитом для каждого эксперимента, использованием общих Conda-окружений или ручной сборкой контейнеров [04:50]. Ариэль Биллер утверждает, что такие методы создают огромные накладные расходы на воспроизводимость, что в итоге приводит к её полному отсутствию [05:29].

Существует три основных пути внедрения платформы:

1.  **Разработка с нуля:** Подходит только для гигантских корпораций с неограниченным бюджетом и временем. Биллер иронично замечает, что первую версию всё равно придётся выбросить, как только вы поймёте реальные потребности [05:56].
2.  **Сборка стека из Open Source инструментов:** Требует написания большого количества «склеивающего» кода (glue code) и множества YAML-файлов, что усложняет оркестрацию [06:22].
3.  **Использование единого решения:** ClearML позиционируется как бесплатное Open Source решение «всё в одном» для экспериментов, оркестрации и управления данными [06:35].

Нир Бар-Лев (Nir Bar-Lev) и команда ClearML заложили в основу продукта принцип «снизу вверх»: интеграция должна быть простой, а автоматическое логирование — незаметным для пользователя [07:01].

## 🧬 Архитектура ClearML: Три кита системы
[[JUMP:08:16]]

Система ClearML состоит из трёх основных компонентов, которые могут быть развернуты локально или в облаке:

*   **Среда разработчика (Data Scientist Environment):** Место, где пишется Python-код. Для интеграции достаточно добавить всего две строки кода [08:30].
*   **Сервер ClearML:** Центральный узел (открытый исходный код), который отвечает за визуализацию результатов, версионирование, совместную работу и отслеживание данных [08:44]. Он не выполняет вычисления, а только управляет метаданными.
*   **Агент (ClearML Agent):** Пакет, устанавливаемый на вычислительные узлы (GPU-серверы, облачные инстансы или ноутбуки). Агент «слушает» сервер и выполняет задачи из очереди [08:56].

Для новичков и небольших команд компания предоставляет бесплатный Community Server, который включает 100 ГБ облачного хранилища для моделей и артефактов [11:18].

## 🚀 Интеграция и первый запуск за две строки кода
[[JUMP:12:39]]

Демонстрация работы началась с обычного Jupyter-блокнота для классификации изображений на наборе данных CIFAR-10 с использованием PyTorch. Процесс интеграции выглядит следующим образом:

1.  Установка пакета: `pip install clearml`.
2.  Инициализация задачи: импорт класса `Task` и вызов `Task.init(project_name, task_name)` [17:16].

После этого ClearML автоматически начинает отслеживать:

*   **Код:** Состояние репозитория, ID коммита и даже незакоммиченные изменения (uncommitted changes) [19:42].
*   **Окружение:** Список установленных python-пакетов.
*   **Вывод:** Все логи консоли и графики Tensorboard [15:42].
*   **Артефакты:** Сохраняемые модели автоматически загружаются в хранилище (S3, GCP, Azure или ClearML Storage) [18:36].

Биллер подчеркивает, что ClearML автоматически конвертирует Jupyter-блокнот в исполняемый Python-скрипт, который можно запустить удалённо на любой машине [19:54].

## 🤖 Удалённое выполнение и оркестрация задач
[[JUMP:20:20]]

Одной из самых мощных функций является ClearML Agent. Он избавляет исследователя от необходимости вручную собирать Docker-контейнеры и настраивать драйверы на удалённых серверах.

Процесс удалённого запуска:

1.  Установка агента на удалённую машину: `pip install clearml-agent` [21:23].
2.  Запуск демона (daemon), который привязывается к определённой очереди (например, `GPU_queue`) [21:37].
3.  В интерфейсе ClearML достаточно нажать кнопку **Clone** на задаче, изменить параметры (например, количество эпох или learning rate) и отправить её в очередь (Enqueue) [24:41].

Агент сам создаст виртуальное окружение или Docker-контейнер «на лету», установит зависимости и выполнит код [25:21]. Это позволяет команде «самообслуживаться» без постоянного обращения к DevOps-инженерам [34:41].

## 🧪 Оптимизация гиперпараметров (HPO)
[[JUMP:30:00]]

ClearML позволяет запускать поиск гиперпараметров без изменения основного кода обучения. Используя API для оптимизации (по умолчанию интегрирован Optuna), можно создать задачу-оркестратор [31:18].

Особенности HPO в ClearML:

*   **Валидация параметров:** Система проверяет наличие указанных параметров в базовом скрипте ещё до запуска, предотвращая ошибки из-за опечаток [32:12].
*   **Параллелизация:** Задачи распределяются по всем доступным агентам в очереди.
*   **Визуализация:** Автоматическое построение графиков параллельных координат (Parallel Coordinates Plot) для анализа влияния параметров на точность [35:59].

Биллер продемонстрировал, как одним кликом можно клонировать исследование, увеличить лимит вычислительного времени и перезапустить поиск с новыми настройками, не написав ни строчки кода [38:23].

## 🤝 Совместная работа и сравнение результатов
[[JUMP:38:47]]

Платформа предоставляет развитые инструменты для командного взаимодействия:

*   **Общие ссылки:** Можно создать публичную ссылку на эксперимент (read-only), чтобы поделиться результатами или моделью с коллегами [39:15].
*   **Сравнение (Diff):** Инструмент позволяет сравнивать неограниченное количество запусков. Система подсвечивает различия в коде, версиях пакетов, гиперпараметрах и даже визуально сравнивает предсказания на одних и тех же изображениях [43:09].
*   **Управление моделями:** Полная прослеживаемость (lineage) — для каждой модели известно, какой эксперимент её породил, на каких данных и с какими параметрами [40:08].

## 🛡 Безопасность и промышленное использование
[[JUMP:46:00]]

Отвечая на вопросы слушателей, Ариэль Биллер отметил, что ClearML широко используется в закрытых контурах (on-premise), включая медицинские и оборонные организации, где доступ к интернету ограничен [46:27]. Система поддерживает работу внутри приватных Kubernetes-кластеров и VPC [46:15].

Что касается деплоя моделей, Биллер уточнил, что ClearML в настоящее время фокусируется на «бережливом стеке» (lean stack) для R&D, но предоставляет возможности для простых POC (Proof of Concept) в продакшене через API доступа к артефактам и ID задач [47:55].

В завершение выступления Биллер подчеркнул, что компания Allegro AI (разработчик ClearML), основанная в 2016 году, стремится сделать MLOps доступным для исследователей, а не только для инфраструктурных инженеров [51:08].