NVIDIA открыла исходный код OSMO: один YAML-файл оркестрирует обучение Physical AI, симуляцию и тестирование роботов
У разработчиков роботов не одна вычислительная проблема. Их 3. Политика обучается на кластерах GB200 или H100, тестируется в Isaac Sim на графических процессорах RTX, а затем проверяется на Jetson, установленном внутри настоящего робота. У каждого уровня есть собственный кластер, собственный планировщик и собственные связующие скрипты. NVIDIA OSMO — это ответ NVIDIA на такую фрагментацию: оркестратор рабочих процессов с открытым исходным кодом, нативный для Kubernetes, который позволяет команде описать весь конвейер в одном YAML-файле и запускать его на всех уровнях, не изменяя код инфраструктуры.
Можно развернуть? Да. OSMO распространяется по лицензии Apache-2.0, включает Helm-чарты и контейнеры на NGC, а также содержит быстрый локальный старт, который запускает всю управляющую плоскость на рабочей станции с помощью KIND.
Проблема трёх компьютеров
NVIDIA описывает физический ИИ как проблему трёх компьютеров. Обучение происходит на графических процессорах в дата-центрах. Симуляция, физика и визуализация данных с датчиков выполняются на рабочих станциях с оборудованием RTX. Развёртывание и тестирование по принципу «аппаратное обеспечение в контуре» (HIL) проходят на периферийных устройствах, таких как Jetson AGX Thor, обычно локально. Для каждого уровня обычно используются собственные инструменты, а именно при передаче между уровнями накапливаются пользовательские скрипты.
OSMO рассматривает все 3 уровня как бэкенды одной управляющей плоскости. Каждый бэкенд представляет собой кластер Kubernetes, зарегистрированный через CLI. Рабочие процессы никогда не указывают имя кластера. Вместо этого они указывают платформу (например, gb200, rtx-pro-6000 или jetson-agx-thor), а OSMO направляет задачу в пул, который её поддерживает.
Как выглядит рабочий процесс
Канонический пример репозитория — это 3 задачи, связанные данными:
simulationзапускает контейнер Isaac Sim на платформеrtx-pro-6000train-policyзапускает контейнер PyTorch на платформеgb200с 8 графическими процессорами, используя результат задачи симуляции в качестве входных данныхevaluate-thorзапускает приложение ROS на платформеjetson-agx-thor, использует обученную политику и записывает результаты в именованный набор данных
Зависимости задаются через inputs, сохранение данных — через outputs, а размещение — через platform. В руководстве пользователя описаны последовательные и параллельные группы задач, шаблонизация Jinja для параметризованных рабочих процессов, политики повторных попыток, а также приоритеты HIGH/NORMAL/LOW с вытеснением и заимствованием графических процессоров между пулами.
Ключевые возможности
- Переносимость: один и тот же YAML-файл работает на ноутбуке (Docker/KIND), а также в EKS, AKS, GKE, локальных или изолированных кластерах. В выпуске 6.3.0 появился мультипровайдерный скрипт
deploy-k8s.sh, который разворачивает OSMO в Azure AKS, AWS EKS, microk8s или любом существующем кластере, обеспечивая подключение хранилищ MinIO, Azure Blob, AWS S3 или собственного S3. - Интерактивная разработка: разработчики могут запускать VS Code, Jupyter или SSH-сеансы на удалённом узле с графическим процессором, выполнять
execв работающих задачах, перенаправлять порты служб и передавать файлы с помощьюrsyncв обоих направлениях. В версии 6.3.0 появилась командаosmo workflow rsync downloadс индикатором выполнения в реальном времени. - Планирование: по умолчанию OSMO использует NVIDIA KAI Scheduler. В выпуске 6.2.8 появилось размещение задач с несколькими графическими процессорами с учётом топологии NVLink. В выпуске 6.3.0 параметры
exec_timeoutиqueue_timeoutстали задаваться для каждой группы, поэтому зависшая группа симуляции больше не завершает соседние группы обучения. - Данные: проект описывает наборы данных с адресацией по содержимому и дедупликацией, которые, как утверждается, могут сократить объём хранилища в 10–100 раз. Обратите внимание, что автономные CLI-команды
osmo datasetи API/datasetsобъявлены устаревшими в версии 6.3.0 и должны быть удалены в версии 6.4; их заменой станут выходные данные наборов данных, управляемые рабочими процессами. - Безопасность и идентификация: начиная с версии 6.2.8 OSMO включает сайдкар авторизации RBAC, интеграцию с OAuth2-прокси с входом по коду устройства и сопоставление пользователей с поставщиком удостоверений. В выпуске 6.3.0 появилась терминация TLS на шлюзе Envoy и поддержка идентификации облачных рабочих нагрузок (Azure Workload Identity, AWS IRSA/Pod Identity), благодаря чему службам больше не требуется монтировать ключи хранилища в качестве Kubernetes Secrets. В выпуске 6.3.1 права роли
osmo-userпо умолчанию были ограничены пулом по умолчанию. - Интеграция с агентами: в репозитории есть файл AGENTS.md, каталог skills и руководство по развёртыванию MCP. На GTC 2026 NVIDIA заявила, что OSMO интегрируется с Claude Code, OpenAI Codex и Cursor, благодаря чему агенты-программисты могут отправлять, отслеживать и отлаживать конвейеры.
Интерактивное объяснение: смотрите, как OSMO направляет один рабочий процесс через 3 вычислительных уровня
Нажмите Запустить рабочий процесс, чтобы увидеть, как OSMO планирует выполнение примера из README шаг за шагом. Нажмите на любой уровень или номер шага, чтобы посмотреть, что там происходит.
Главные выводы
- OSMO оркестрирует задачи обучения, симуляции и периферийного HIL из одного YAML-файла в разнородных кластерах Kubernetes
- Лицензия Apache-2.0, Helm-чарты в NGC, последний выпуск 6.3.1 (июнь 2026 года), доступен локальный быстрый старт с KIND
- Планировщик KAI используется по умолчанию, размещение с учётом NVLink, тайм-ауты для отдельных групп, встроенные RBAC и OAuth2
- Проверено в боевых условиях на GR00T, Isaac Lab, Isaac Sim и Isaac ROS; доступны интеграции с Azure и Nebius
- CLI для наборов данных объявлен устаревшим в версии 6.3 и удалён в версии 6.4; планируйте миграцию соответствующим образом
Посетите GitHub, документацию, раздел с выпусками, сборник рецептов и страницу NVIDIA OSMO. Все заслуги принадлежат исследователю этого проекта. Также подписывайтесь на нас в Twitter и не забудьте присоединиться к нашему сабреддиту о машинном обучении с более чем 150 тыс. участников и подписаться на нашу рассылку. Постойте! Вы есть в Telegram? Теперь вы также можете присоединиться к нам в Telegram.
Хотите стать нашим партнёром для продвижения своего репозитория GitHub, страницы Hugging Face, выпуска продукта, вебинара и т. д.? Свяжитесь с нами
Переведено автоматически с английского. Оригинал статьи — по ссылке ниже.