Meta AI открывает исходный код GCM для улучшения мониторинга GPU-кластеров и обеспечения высокой производительности при обучении ИИ и надёжности оборудования

Пока специалисты по технологиям увлечены последними контрольными точками Llama, в подвалах центров обработки данных идёт гораздо более напряжённая борьба. По мере того как модели ИИ масштабируются до триллионов параметров, кластеры, необходимые для их обучения, стали одними из самых сложных — и хрупких — машин на планете.

Исследовательская группа Meta AI только что выпустила GCM (GPU Cluster Monitoring) — специализированный инструментарий, разработанный для решения проблемы «тихого убийцы» прогресса в области ИИ: нестабильности оборудования в больших масштабах. GCM — это схема управления взаимодействием аппаратного и программного обеспечения в высокопроизводительных вычислениях (HPC).

Проблема: когда «стандартной» наблюдаемости недостаточно

В традиционном веб-разработке, если микросервис отстаёт, вы проверяете панель управления и масштабируете горизонтально. В обучении ИИ правила другие. Один GPU в кластере из 4096 карт может испытать «тихий сбой» — когда он технически остаётся «включённым», но его производительность снижается, что фактически приводит к «отравлению» градиентов для всего процесса обучения.

Стандартные инструменты мониторинга часто слишком высокого уровня, чтобы уловить эти нюансы. GCM от Meta действует как специализированный мост, соединяя необработанную аппаратную телеметрию NVIDIA GPUs с логикой оркестрации кластера.

Мониторинг по методу Slurm

Для разработчиков Slurm — это вездесущий (хотя иногда и разочаровывающий) менеджер рабочих нагрузок. GCM интегрируется напрямую со Slurm для обеспечения мониторинга с учётом контекста.

* Присвоение атрибутов на уровне заданий: вместо того чтобы видеть общий всплеск потребления энергии, GCM позволяет вам связать метрики с конкретными идентификаторами заданий.
* Отслеживание состояния: он извлекает данные из sacct, sinfo и squeue для создания карты состояния кластера в режиме реального времени. Если узел помечен как DRAIN, GCM помогает вам понять почему, прежде чем испортить выходные дни исследователя.

Стратегия «Пролог» и «Эпилог»

Одной из наиболее технически важных частей фреймворка GCM является набор проверок работоспособности. В среде HPC время имеет решающее значение. GCM использует два критических окна:

* Пролог: это скрипты, запускаемые перед началом задания. GCM проверяет, исправна ли сеть InfiniBand и доступны ли GPU. Если узел не прошёл предварительную проверку, задание перенаправляется, что экономит часы «мёртвого» времени вычислений.
* Эпилог: они запускаются после завершения задания. GCM использует это окно для глубокой диагностики с помощью NVIDIA DCGM (Data Center GPU Manager), чтобы убедиться, что оборудование не было повреждено во время интенсивной работы.

Телеметрия и мост OTLP

Для разработчиков и исследователей ИИ, которым необходимо обосновать свои вычислительные бюджеты, процессор телеметрии GCM является звездой шоу. Он преобразует необработанные данные кластера в форматы OpenTelemetry (OTLP).

Стандартизируя телеметрию, GCM позволяет командам передавать данные, специфичные для оборудования (например, температуру GPU, ошибки NVLink и события XID), в современные стеки наблюдаемости. Это означает, что вы наконец-то сможете соотнести падение производительности при обучении с конкретным событием аппаратного регулирования, перейдя от фразы «модель работает медленно» к «GPU 3 на узле 50 перегревается».

Технические детали

Реализация Meta — это мастер-класс по прагматичной инженерии. Репозиторий в основном написан на Python (94%), что делает его легко расширяемым для разработчиков ИИ, а логика, критичная для производительности, реализована на Go.

* Коллекторы: модульные компоненты, собирающие телеметрию из таких источников, как nvidia-smi и Slurm API.
* Стоки: «выходной» слой. GCM поддерживает несколько стоков, включая stdout для локальной отладки и OTLP для мониторинга производственного уровня.
* DCGM & NVML: GCM использует библиотеку управления NVIDIA (NVML) для прямого взаимодействия с оборудованием, минуя высокоуровневые абстракции, которые могут скрывать ошибки.

Ключевые выводы

* Преодоление разрыва «тихих сбоев»: GCM решает критически важную проблему инфраструктуры ИИ: выявление «зомби-GPU», которые появляются в сети, но вызывают сбои в обучении или приводят к повреждению градиентов из-за нестабильности оборудования.
* Глубокая интеграция со Slurm: в отличие от общего облачного мониторинга, GCM специально разработан для высокопроизводительных вычислений (HPC). Он привязывает аппаратные метрики к конкретным идентификаторам заданий Slurm, позволяя инженерам связывать падения производительности или скачки мощности с конкретными моделями и пользователями.
* Автоматизированные проверки работоспособности «Пролог» и «Эпилог»: фреймворк использует проактивную стратегию диагностики, выполняя специализированные проверки работоспособности через NVIDIA DCGM до начала задания (Пролог) и после его завершения (Эпилог), чтобы гарантировать, что неисправные узлы будут отключены до того, как они потратят дорогостоящее время вычислений.
* Стандартизированная телеметрия через OTLP: GCM преобразует низкоуровневые аппаратные данные (температуру, ошибки NVLink, события XID) в формат OpenTelemetry (OTLP). Это позволяет командам передавать сложные данные кластера в современные стеки наблюдаемости, такие как Prometheus или Grafana, для визуализации в реальном времени.
* Модульная, языково-независимая архитектура: хотя основная логика написана на Python для удобства, GCM использует Go для разделов, критичных для производительности. Его архитектура «Коллектор и сток» позволяет разработчикам легко подключать новые источники данных или экспортировать метрики в пользовательские серверные системы.

Ознакомьтесь с репозиторием и страницей проекта. Подписывайтесь на нас в Twitter и присоединяйтесь к нашему сообществу в Telegram.

1. Какие проблемы решает инструмент GCM от Meta AI в контексте обучения ИИ?

В статье указано, что GCM решает проблему «тихих сбоев» оборудования в больших масштабах, которые могут привести к снижению производительности и «отравлению» градиентов для всего процесса обучения.

2. Какие особенности GCM позволяют ему эффективно работать в среде высокопроизводительных вычислений (HPC)?

GCM интегрируется напрямую со Slurm для обеспечения мониторинга с учётом контекста, использует проактивную стратегию диагностики, выполняя проверки работоспособности через NVIDIA DCGM до начала задания (Пролог) и после его завершения (Эпилог), а также преобразует низкоуровневые аппаратные данные в формат OpenTelemetry (OTLP) для передачи в современные стеки наблюдаемости.

3. Какие языки программирования используются для реализации GCM?

В статье указано, что репозиторий GCM в основном написан на Python (94%), а логика, критичная для производительности, реализована на Go.

4. Какие преимущества предоставляет использование GCM для разработчиков и исследователей ИИ?

GCM позволяет разработчикам и исследователям ИИ более эффективно отслеживать и диагностировать проблемы с оборудованием, что может привести к повышению производительности и надёжности систем обучения ИИ. Кроме того, стандартизация телеметрии через OTLP позволяет передавать сложные данные кластера в современные стеки наблюдаемости для визуализации в реальном времени.

5. Какие ключевые выводы можно сделать из статьи о GCM?

Ключевые выводы из статьи включают:
* Преодоление разрыва «тихих сбоев» через выявление «зомби-GPU», которые могут вызывать сбои в обучении или повреждение градиентов.
* Глубокая интеграция со Slurm для привязки аппаратных метрик к конкретным идентификаторам заданий.
* Автоматизированные проверки работоспособности «Пролог» и «Эпилог» для гарантии отключения неисправных узлов до того, как они потратят дорогостоящее время вычислений.
* Стандартизированная телеметрия через OTLP для передачи сложных данных кластера в современные стеки наблюдаемости.
* Модульная, языково-независимая архитектура, которая позволяет разработчикам легко подключать новые источники данных или экспортировать метрики в пользовательские серверные системы.

Источник