Оглавление
Команда PyTorch от Meta* и Lightning AI анонсировали интеграцию фреймворка Monarch в платформу Lightning Studios, что обещает революционизировать процесс распределенного обучения моделей машинного обучения. Новый подход устраняет традиционные барьеры при работе с крупномасштабными GPU-кластерами, предоставляя интерактивную среду разработки прямо из блокнотов.
Проблема итераций в распределенном обучении
Исторически разработка на крупных кластерах сопровождалась длительными циклами итераций — каждый код требовал перераспределения ресурсов, пересборки и повторного развертывания рабочих процессов с нуля. Monarch атакует эти узкие места с помощью специализированного языка для распределенных вычислений, позволяя разработчикам работать непосредственно на кластерах из единого локального тренировочного скрипта.
Интеграция с платформой Lightning AI и приложением Multi-Machine Training (MMT) позволяет пользователям асинхронно планировать крупномасштабные задачи, автоматически обеспечивая и конфигурируя вычислительные среды от множества облачных провайдеров, включая AWS, Google Cloud Platform, Voltage Park, Nebius и Lambda.

Это выглядит как очередная попытка сделать распределенное обучение доступным для всех, но в отличие от предыдущих решений, здесь действительно чувствуется системный подход. Вместо того чтобы просто обернуть сложные технологии в красивый интерфейс, команды работают над фундаментальными изменениями в парадигме разработки — от перезапуска кластеров при каждом изменении до устойчивой среды, которая просто ждет, пока вы вернетесь к работе.
Три ключевые возможности интеграции
Постоянные вычисления и бесшовные итерации
С Monarch вычислительные ресурсы сохраняются даже во время итераций, экспериментов или перерывов. Процессный аллокатор системы отвечает за маршрутизацию сообщений и создание процессных сеток произвольной формы, что отделяет аппаратное обеспечение от пользовательской среды выполнения.
Основная абстракция Monarch начинается с возможности аллокации Process Meshes. После выделения процессов пользователи могут использовать акторную модель Monarch для развертывания инкапсулированных единиц Python-кода. Эти акторы функционируют как серверы, предоставляя конечные точки в качестве примитивов коммуникации.
import asyncio from monarch.actor import Actor, current_rank, endpoint, proc_mesh NUM_ACTORS = 4 class ToyActor(Actor): def __init__(self): self.rank = current_rank().rank @endpoint async def hello_world(self, msg): print(f"Identity: {self.rank}, {msg=}") async def create_toy_actors(): local_proc_mesh = proc_mesh(gpus=NUM_ACTORS) toy_actor = await local_proc_mesh.spawn("toy_actor", ToyActor) return toy_actor, local_proc_mesh async def call_all_actors(toy_actor): await toy_actor.hello_world.call("hey there, from script!!")
Управление кластерами прямо из блокнота
Масштабируйтесь до сотен GPU и оркестрируйте сложные распределенные задачи — все в рамках Studio notebook. Monarch предоставляет мощь кластера буквально под рукой с простотой, характерной для Lightning Studios.
Резервирование кластера через Lightning MMT осуществляется простым определением необходимых GPU, количества узлов и GPU на узел. После этого можно вызывать тренировочные акторы через определенную процессную сетку.
from lightning_sdk import Machine, MMT, Studio studio = Studio() NUM_NODES = 16 NUM_GPUS = 8 studio.install_plugin("multi-machine-training") machine_type = getattr(Machine, f"H100_X_{NUM_GPUS}") job = MMT.run( command=process_allocator, name="Multi-Nodes-Monarch-Titan", machine=machine_type, studio=studio, num_machines=NUM_NODES, env={ "CUDA_VISIBLE_DEVICES": "0,1,2,3,4,5,6,7", }, )
Интерактивная отладка в реальном времени
Отлаживайте живые распределенные задачи интерактивно, не прерывая рабочий процесс. Monarch открывает новый уровень контроля и понимания, ускоряя процесс обнаружения и инноваций.
Система поддерживает отладку pdb для Python actor meshes. Можно настроить акторы с использованием встроенных точек останова Python (breakpoint()) для отладки. При запуске программы Monarch отображает таблицу со всеми акторами, остановленными на точках останова, включая детали имени актора, ранга, координат, имени хоста, функции и номера строки.
Технические преимущества
- Сокращение времени итераций: от минут на итерацию до практически нулевого времени ожидания для последовательных запусков
- Автоматическое управление ресурсами: Monarch обрабатывает обмен кодами и файлами между блокнотом и рабочими узлами
- Устойчивость к сбоям: вычислительная среда остается живой даже при завершении или сбое клиентской программы
- Интуитивное программирование: API построен вокруг удаленных акторов с масштабируемым обменом сообщениями
Новый рабочий процесс позволяет разработчикам добавлять забытые операторы печати, изменять конфигурации моделей или даже изменять поток выполнения — все из знакомого интерактивного блокнота и в контексте единого выделения ресурсов.
По сообщению PyTorch, интеграция уже доступна для тестирования и обещает существенно изменить опыт работы с распределенным обучением для сообщества машинного обучения.
*Meta признана экстремистской и запрещена в РФ
Оставить комментарий