Чтобы добиться успеха, организациям необходимо контролировать свой интеллект. Однако обучение и обслуживание этого интеллекта в масштабе требует петафлопс вычислительной мощности и терабит в секунду пропускной способности сети, распределенных по множеству узлов. Но владение интеллектом не обязательно означает владение этим оборудованием.
Последние полтора года мы проводили боевое тестирование нового примитива: Modal Clusters. Сегодня мы рады объявить, что они стали общедоступными благодаря одному декоратору: @modal.clustered:
Modal Clusters легко интегрируются со всеми существующими примитивами Modal. Записывайте свои контрольные точки в Volumes, загружайте данные через Cloud Bucket Mounts и организуйте свои задачи с помощью Queues. Помимо существующей интеграции, вы получаете:
- Взаимодействие между узлами через InfiniBand verbs со скоростью до 6,4 Тбит/с, автоматически настроенное для PyTorch и NCCL
- Ваш код запускается на кластере через несколько секунд после запроса, с посекундной тарификацией
- Наша надежная автоматизированная система обеспечения работоспособности GPU и устранения неполадок, теперь расширенная до контроля состояния RDMA
В других местах доступ к кластеру по требованию означает почасовую оплату или необходимость бронирования. В Modal вы запускаете задачи, когда захотите, и платите только за то, что используете.
Переосмысление стека Modal
Кластеры (группы контейнеров) — это принципиально новая единица работы в стеке Modal. Для их поддержки нам пришлось создавать новые системы на каждом уровне нашего стека.
Групповое планирование: размещение N узлов одновременно
Традиционный планировщик Modal работает по жадному алгоритму. Все узлы в парке постоянно опрашивают систему на наличие новой работы, а наш планировщик проверяет очередь на наличие подходящих задач, назначая их, если они соответствуют требованиям. Существуют эвристики для размещения, фрагментации и стоимости, но, по сути, планировщик принимает решение о том, должен ли узел взять задачу, на индивидуальной основе.
Для планирования на нескольких узлах представления одного узла недостаточно — атомарная единица планирования расширяется с одного узла до N узлов. Это означало, что нам пришлось создать совершенно новый планировщик с явным циклом наблюдения, планирования и действия: просматривать весь парк, принимать решение о размещении для каждого ожидающего кластера, а затем действовать. Это направление, в котором движутся и остальные системы планирования Modal. На каждой итерации групповой планировщик:
- Собирает метаданные для всех многоузловых рабочих нагрузок в системе
- Назначает все рабочие нагрузки на узлы, группируя их по зонам доступности (AZ) и сетевым идентификаторам
- Запускает новые мощности для рабочих нагрузок, которые в данный момент не помещаются
- Отправляет уведомления о расписании всем активным узлам
Одна итерация группового планировщика
Кластер A 4 × B300:8
ожидание
Кластер B 2 × H100:8
ожидание
Парк
Зона 1 4 свободно
Зона 2 1 свободно
свободный узел в использовании + новые мощности
Наблюдение. Просмотр всего парка и каждого ожидающего кластера одновременно.
Групповой планировщик использует тот же пул мощностей, что и все остальные компоненты Modal, что позволяет получить кластер за считанные секунды. Это самое быстрое время получения многоузлового кластера на рынке и единственное место, где вы платите по-настоящему серверным тарифам.
Поддержка RDMA
Многоузловые рабочие нагрузки передают огромные объемы данных. Каждый шаг обучения GLM 4.7 должен синхронизировать около 717 ГБ весов BF16 от тренера к движку развертывания: почти две минуты через 50 Гбит/с TCP, менее двух секунд через RDMA, и так тысячи раз. Для вывода дезагрегация prefill-decode в Llama 3.1 70B перемещает около 10 ГБ KV-кэша на каждый промпт в 32 тыс. токенов, и это должно произойти в рамках бюджета времени до первого токена в несколько сотен миллисекунд.
RDMA (Remote Direct Memory Access) позволяет передавать память GPU или CPU между хостами по сети, не проходя через пространство ядра. Пропуск программного уровня позволяет RDMA достигать скорости до 6,4 Тбит/с! Эта возможность критически важна для большинства многоузловых рабочих нагрузок: обучение требует ее для DDP all-reduce и всех типов параллелизма моделей; вывод требует ее для передачи KV-кэша при дезагрегации PD.
RDMA, как известно, сложно поддерживать. У каждого облачного провайдера немного отличается реализация, требующая разных драйверов, переменных окружения и библиотек пользовательского пространства.
Мы поставили перед собой амбициозную цель: скрыть всю эту сложность за одним флагом, rdma=True. Сегодня вы можете установить этот флаг, и любая рабочая нагрузка, использующая PyTorch с NCCL, заработает «из коробки». Мы автоматизировали настройку RDMA в различных облаках, предоставив вам глубокий доступ к кластерным мощностям по требованию без каких-либо хлопот.
Что настраивает rdma=True
RDMA-фабрика до 6,4 Тбит/с на узел
ваш кластер · 4 узла
Узел 1
Узел 2
Узел 3
Узел 4
Дата-центр. Modal размещает все 4 узла вашего кластера на одной RDMA-фабрике в одной зоне.
Этой интеграции нам было недостаточно. Поскольку Modal использует многопользовательскую вычислительную среду, мы предпочитаем безопасную среду выполнения контейнеров gVisor вместо runc. Однако в ней не было поддержки RDMA, поэтому мы встроили ее в gVisor самостоятельно. Мы отправили эти изменения в основную ветку, чтобы другие участники экосистемы OSS получили доступ к безопасному RDMA.
Клиенты, создающие интеллектуальные приложения на кластерах
Мы гордимся передовыми исследованиями и производственными приложениями, созданными на базе многоузловых кластеров.
Decagon обучил более совершенного агента для работы с клиентами
Decagon создает ИИ-агентов для взаимодействия с клиентами. В партнерстве с Modal компания Decagon дообучила открытые модели с количеством параметров до триллиона, используя Miles на Modal Clusters, адаптируя их к требованиям клиентских взаимодействий с упором на качество ответов и эффективность вывода. В рамках этого сотрудничества Modal внесла поддержку LoRA в Miles и помогла создать стабильный открытый рецепт обучения.
«Производительность модели имеет решающее значение для качества обслуживания клиентов в Decagon. Нашим агентам необходимо понимать нюансы каждого бизнеса и надежно обрабатывать сложные разговоры с клиентами. Дообучение позволяет нам формировать поведение модели в соответствии с этими требованиями, но выполнение этого в масштабе триллиона параметров — серьезная инфраструктурная задача. Modal Clusters помогли нам обучать модели в таком масштабе, чтобы мы могли сосредоточиться на повышении качества и надежности наших агентов». Сайрус Асгари, ведущий исследователь, Decagon
«Производительность модели имеет решающее значение для качества обслуживания клиентов в Decagon. Нашим агентам необходимо понимать нюансы каждого бизнеса и надежно обрабатывать сложные разговоры с клиентами. Дообучение позволяет нам формировать поведение модели в соответствии с этими требованиями, но выполнение этого в масштабе триллиона параметров — серьезная инфраструктурная задача. Modal Clusters помогли нам обучать модели в таком масштабе, чтобы мы могли сосредоточиться на повышении качества и надежности наших агентов».
Сайрус Асгари, ведущий исследователь, Decagon
1x предварительно обучает NEO
1x создает NEO, домашнего робота. В основе NEO лежит мировая модель, которую 1x предварительно обучает на Modal Clusters: многоузловые кластеры B300 с RDMA для больших запусков и парки одноузловых заданий для оценок, которые показывают, как работает модель. Один и тот же планировщик обрабатывает и то, и другое, поэтому 1x может масштабироваться до сотен GPU, когда им нужно распределить эксперименты, и сокращать ресурсы между запусками.
«Создание NEO требует гибких рабочих нагрузок; иногда это несколько многоузловых запусков на одном spine-коммутаторе, а иногда нам нужно запустить множество одноузловых оценок одновременно, чтобы глубоко понять производительность модели. Modal Clusters позволяют нам масштабироваться до сотен B300 с RDMA, а затем отключать их, когда мы закончили, с минимальными накладными расходами. Мы платим только за то, что используем, и команда может сосредоточиться на том, как создать интеллект для NEO, вместо того чтобы думать о GPU и о том, где их найти». Сэм Синха, руководитель лаборатории World Model Lab, 1x
«Создание NEO требует гибких рабочих нагрузок; иногда это несколько многоузловых запусков на одном spine-коммутаторе, а иногда нам нужно запустить множество одноузловых оценок одновременно, чтобы глубоко понять производительность модели. Modal Clusters позволяют нам масштабироваться до сотен B300 с RDMA, а затем отключать их, когда мы закончили, с минимальными накладными расходами. Мы платим только за то, что используем, и команда может сосредоточиться на том, как создать интеллект для NEO, вместо того чтобы думать о GPU и о том, где их найти».
Сэм Синха, руководитель лаборатории World Model Lab, 1x
Передовые модели Runway воплощают идеи в жизнь
Runway создает интеллект реального мира для эпохи мировых моделей. Их новейшие передовые модели для генерации и редактирования видео, Gen-4.5 и Aleph 2.0, создают видео производственного качества за считанные секунды. Каждая генерация использует Modal Clusters, распределяя инференс по нескольким узлам, а автоскейлер Modal масштабирует эти кластеры как единое целое по всему нашему глобальному пулу вычислительных ресурсов.
«Многоузловой инференс — это сложная инфраструктурная задача. Она затрудняет эластичность, которая является обязательным условием для рабочих нагрузок инференса. Платформа Modal с готовыми функциями, такими как кластеризация и настраиваемое автомасштабирование, помогла нам быстро масштабировать несколько производственных рабочих нагрузок инференса, чтобы удовлетворить растущий спрос». Камил Синди, технический директор, Runway
«Многоузловой инференс — это сложная инфраструктурная задача. Она затрудняет эластичность, которая является обязательным условием для рабочих нагрузок инференса. Платформа Modal с готовыми функциями, такими как кластеризация и настраиваемое автомасштабирование, помогла нам быстро масштабировать несколько производственных рабочих нагрузок инференса, чтобы удовлетворить растущий спрос».
Камил Синди, технический директор, Runway
Начните сегодня
Modal Clusters доступны для всех рабочих пространств уже сегодня. Независимо от того, масштабируете ли вы инференс или занимаетесь пост-обучением передовой модели, достаточно одной строки кода, чтобы масштабировать ваше приложение Modal. Размер кластера ограничен лимитами GPU вашего тарифного плана, поэтому, если вы планируете что-то масштабное, свяжитесь с нами.
Для начала:
- Установите Modal: pip install modal
- Создайте учетную запись: python -m modal setup
- Ознакомьтесь с нашей документацией по многоузловым кластерам
Нам не терпится увидеть, что вы создадите.











