Run:ai с открытым исходным кодом теперь в Lambda Kubernetes Service

Источник: Lambda•

Run:ai с открытым исходным кодом теперь в Lambda Kubernetes Service

Мы приветствуем решение NVIDIA сделать Run:ai проектом с открытым исходным кодом и работаем над тем, чтобы сделать его первоклассным решением в Lambda Kubernetes Service (LKS).

Мы приветствуем решение NVIDIA сделать Run:ai проектом с открытым исходным кодом и работаем над тем, чтобы сделать его первоклассным решением в Lambda Kubernetes Service (LKS).

Lambda, облако для ИИ, поддерживает Run:ai на своей инфраструктуре с 2022 года. Наше видение заключается в том, чтобы упростить внедрение и эксплуатацию возможностей Run:ai через LKS, предоставляя командам больше контроля над тем, как они распределяют и совместно используют ресурсы GPU.

Почему выделение целых GPU приводит к простою мощностей

Разработка ИИ предъявляет разнообразные требования к ресурсам GPU. Сеанс отладки может использовать лишь часть GPU. Оценка модели может запускать множество независимых задач. Распределенное обучение может потребовать много тесно связанных GPU одновременно. И эти потребности меняются по мере того, как проект переходит от идеи к эксперименту и производству.

Выделение целых GPU для небольших задач заставляет исследователей ждать, пока полезные мощности остаются зарезервированными. Та же проблема возникает между командами, когда эксперименты одной группы стоят в очереди за простаивающими ресурсами другой. И то, и другое превращает доступное оборудование в задержки между экспериментами.

Как Run:ai управляет совместным использованием и планированием GPU

Run:ai — это планировщик GPU для Kubernetes. Он добавляет две функции, которых нет в стандартном планировщике Kubernetes: совместное использование GPU, чтобы несколько рабочих нагрузок могли выполняться на одном GPU, и планирование на основе квот, чтобы команды получали гарантированное распределение, но могли занимать простаивающие мощности друг у друга. Результатом является более высокая утилизация GPU в общем кластере без необходимости координировать действия вручную.

На практике это сводится к двум функциям:

  • Его фрагменты GPU позволяют рабочим нагрузкам запрашивать и совместно использовать части памяти GPU.
  • Его политики планирования позволяют проектам занимать свободные мощности для прерываемых задач и возвращать их, когда другим командам требуется их доля.

Вместе они отвечают на два практических вопроса: какая часть GPU нужна для этого эксперимента и как общий кластер должен реагировать, когда разным командам он нужен в разное время?

Поддержание работоспособности GPU с помощью автоматического восстановления узлов

Совместное использование и вытеснение задач основаны на предположении, что GPU исправен. При работе с оборудованием GPU в больших масштабах это не всегда так. Ускорители выдают ошибки XID, каналы NVLink и PCIe деградируют, строки памяти переназначаются, а порты InfiniBand работают медленнее ожидаемого. Планировщик не может отличить исправный GPU от неисправного, поэтому продолжает отправлять задачи на узел, который их сбрасывает.

Это та часть, за которую отвечает LKS. LKS — это управляемый Kubernetes на GPU от Lambda, и функция автоматического восстановления уже доступна: Lambda отслеживает каждый узел на наличие таких сбоев и представляет каждый из них как стандартное состояние узла Kubernetes. Когда возникает сбой, узел переводится в режим изоляции (cordon), чтобы на него не планировались новые задачи, выполняемая работа переносится (drain), а неисправность либо устраняется автоматически, либо передается напрямую для аппаратного ремонта, и узел возвращается в работу только после повторной проверки. Неисправный GPU становится рутинным событием, а не инцидентом, что позволяет планировщику продолжать распределять задачи без необходимости подачи тикетов.

Run:ai в LKS

Планирование GPU — это уровень, который мы намеренно оставляем открытым. В дальнейшем LKS будет развиваться в сторону библиотеки программного обеспечения для ИИ: планировщики, работающие в Kubernetes, такие как Slurm и Run:ai, будут поставляться как управляемые компоненты, которые Lambda проверяет на совместимость с нашим оборудованием и поддерживает в актуальном состоянии, вместо того чтобы собирать их вручную из Helm-чартов. Run:ai — первоклассная цель для этой библиотеки, и мы работаем с NVIDIA, чтобы достичь этого. Открытый исходный код делает это возможным: он позволяет Lambda упаковывать, тестировать и поддерживать Run:ai как часть LKS, а не просто предоставлять клиентам набор инструкций по интеграции. Мы стремимся к готовой интеграции, где Lambda берет на себя упаковку, проверку и текущие операции.

Как компания, занимающаяся открытыми исследованиями, Lambda ценит возможность изучать, адаптировать и улучшать инструменты, от которых мы зависим. Решение NVIDIA сделать Run:ai проектом с открытым исходным кодом распространяет эту свободу на оркестрацию. Это направление, которое мы видим для инфраструктуры ИИ, и именно к нему мы ведем LKS. Команды сами выбирают, как распределять и совместно использовать свои GPU, в то время как платформа обеспечивает их работоспособность и доступность.

Чтобы узнать больше, прочитайте о Kubernetes на Lambda, изучите нашу документацию или свяжитесь с одним из наших инженеров по машинному обучению (MLE).

О чём эта статья

Ещё в разделе «AI и машинное обучение»

Все →

Ещё от Lambda