# ClearML: как автоматизировать хаос в ML-разработке и подружить облака с on-prem

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

---

Управление жизненным циклом машинного обучения (ML Lifecycle) часто превращается в хаос из-за разрозненности инструментов для написания кода, управления данными и развертывания моделей. Мозес Гудман, сооснователь и технический директор Allegro AI, в беседе с Сэмом Черрингтоном (ведущим TWIML AI Podcast) представил ClearML — платформу с открытым исходным кодом, призванную превратить разработку ИИ в упорядоченный процесс, напоминающий классический CI/CD в софтверной инженерии.

## 🛠️ Философия Open Source и модель «двух строк кода»
[[JUMP:00:29]]

ClearML позиционируется как комплексная платформа, охватывающая весь путь от разработки и оркестрации до управления данными и обслуживания моделей (serving) [00:29]. По словам Гудмана, проект придерживается принципа «сначала открытый код» (open first): и клиентская, и серверная части доступны публично, что позволяет компаниям развертывать систему полностью на своих мощностях [01:08]. Хотя у проекта есть коммерческие предложения для предприятий (Open Core), корпоративные клиенты получают полный доступ к исходному коду для создания собственных надстроек [01:20].

Одной из ключевых особенностей системы является минимальный порог входа. Гудман утверждает, что для полной интеграции проекта с платформой требуется всего две строки кода на Python:

1.  Импорт пакета ClearML.
2.  Инициализация (task initialization) [02:39].

После этого система работает в фоновом режиме, автоматически «выкачивая» данные из используемых фреймворков (TensorFlow, PyTorch, Keras и др.). Это обеспечивает полную прозрачность процессов без необходимости вручную прописывать логирование для каждого шага конвейера [02:53].

## 🧪 От экспериментов к оркестрации: взгляд со стороны Data Scientist
[[JUMP:04:04]]

В ходе демонстрации на примере обучения модели на датасете MNIST Гудман показал, что ClearML автоматически фиксирует не только сам код, но и состояние репозитория Git, включая даже незакоммиченные изменения [04:17]. По его мнению, это критически важно, так как исследователи данных часто работают «грязно», меняя магические числа в коде на лету [17:36].

Основные возможности для исследователя:

*   **Автоматическое логирование:** гиперпараметры, вывод консоли, графики Matplotlib и Tensorboard фиксируются в реальном времени [04:30].
*   **Воспроизводимость:** система сохраняет полный список установленных Python-пакетов и конфигурационных файлов, что позволяет любому коллеге в точности повторить эксперимент [05:22].
*   **Работа с блокнотами:** при использовании Jupyter Notebook ClearML конвертирует блокнот в исполняемый код, избавляя от необходимости хранить тяжелые файлы .ipynb в Git-репозиториях [26:38].

По утверждению Гудмана, такой подход дает Data Scientist-у возможность сосредоточиться на алгоритмах, не задумываясь о Docker-контейнерах или особенностях инфраструктуры [17:11].

## 🏗️ Масштабирование и MLOps: управление ресурсами и Docker
[[JUMP:08:01]]

После того как код превращен в «задачу» (job), в игру вступает инженер машинного обучения (MLOps). ClearML позволяет клонировать существующие задачи через UI, изменять параметры (например, количество эпох обучения) и отправлять их в очереди на исполнение (execution queues) [10:28].

Архитектурные особенности оркестрации по версии Гудмана:

*   **Абстракция аппаратного обеспечения:** задачи ставятся в очередь, а агенты на серверах (on-prem, облако или bare metal) забирают их в зависимости от приоритетов [08:28].
*   **Гибридные облака:** пользователи могут бесшовно перемещать вычислительные нагрузки между собственными дата-центрами и облачными провайдерами, не меняя код [11:46].
*   **Борьба с «Docker-хаосом»:** вместо создания нового образа для каждого эксперимента ClearML использует базовые образы (например, от NVIDIA), устанавливая только разницу в пакетах и коде во время выполнения [13:54]. Это экономит место в хранилище и сокращает время настройки окружения до 15 секунд благодаря кэшированию [14:35].

Интересно, что Гудман называет ClearML «панелью управления» (control plane), которая не хранит данные пользователей сами по себе, а управляет ссылками на существующие объектные хранилища (S3 и аналоги), сохраняя привычный для компании стек [19:58].

## 🚀 Продакшн и совместная работа
[[JUMP:20:35]]

Для этапа развертывания предусмотрен компонент ClearML Serving. По словам Гудмана, система работает как «sidecar» для движков вроде NVIDIA Triton Inference Server [20:48]. Когда исследователь «публикует» модель в интерфейсе ClearML, сервисный слой автоматически обнаруживает новую версию и обновляет конфигурацию Triton, исключая ручные манипуляции с API [21:14].

Система также поддерживает:

*   Контроль версий и стратегии развертывания (Canary, A/B-тестирование) при использовании KFServing [21:56].
*   Полное отслеживание (lineage): можно проследить путь от модели, работающей в продакшене, до конкретной строки кода и набора данных, на которых она обучалась [13:15].
*   Совместный доступ: разработчики видят, что используется в эксплуатации, а DevOps-инженеры получают мониторинг загрузки GPU/CPU в реальном времени [23:16].

В завершение Мозес Гудман отметил, что хотя исторически ClearML пользовался спросом у специалистов по Deep Learning из-за сложности управления видеокартами, сегодня интерес растет и со стороны классического машинного обучения [25:40]. По мнению Гудмана, гибкость открытой платформы и возможность объединять офисные ресурсы с облачными мощностями являются главными факторами перехода компаний на подобные комплексные решения [27:31].