В мире робототехники существует вечный конфликт между мощностью моделей и ограничениями «железа». Чем умнее робот, тем больше данных он должен обработать, а значит, тем мощнее нужен процессор. Однако переносить вычисления в облако — это риск задержек, зависимость от сети и проблемы с безопасностью. NVIDIA предлагает элегантное решение: запускать сложные мировые модели прямо на борту робота. В центре этой революции — новая модель NVIDIA Cosmos 3 Edge, специально оптимизированная для работы на компактных вычислительных платформах, таких как Jetson Thor.
Эта статья — не просто обзор, а подробное руководство по тому, как превратить большую языковую и визуальную модель в реального робота, способного принимать решения за миллисекунды. Мы разберем процесс пост-обучения (post-training), настройки гиперпараметров, развертывания сервера политик и оценки результатов в симуляции. Если вы хотите создать автономного робота, который не «думает» в дата-центре, а действует здесь и сейчас, этот материал для вас.
01Почему именно Cosmos 3 Edge? Фундамент физического понимания
Мировые модели (World Models) — это новый класс ИИ, которые не просто генерируют картинки или текст, а понимают физику мира. Они знают, как объекты падают, скользят, сталкиваются и реагируют на контакт. NVIDIA Cosmos 3 Edge — это часть семейства Cosmos 3, представляющая собой 4B omni-model (модель с 4 миллиардами параметров), которая включает в себя 2-миллиардный_reasoner_ на базе NVIDIA Nemotron для логического вывода.
Ключевое преимущество Cosmos 3 Edge заключается в том, что она предварительно обучена на тех же данных физического мира, что и ее старшие собратья — Cosmos 3 Nano и Cosmos 3 Super. Это означает, что модель уже обладает глубоким «заземлением» в понимании того, как движутся объекты. Вам не нужно учить робота с нуля тому, что чашка разобьется, если ее толкнуть. Модель уже знает это.
Однако размер модели всегда был проблемой для внедрения. Cosmos 3 Edge решает эту дилемму, оставаясь достаточно компактной, чтобы работать на борту робота, но достаточно мощной, чтобы справляться со сложными манипуляциями. Это позволяет избежать двух главных проблем развертывания:
- Память устройства: Модель и состояние ее работы должны помещаться в память бортового компьютера.
- Задержка управления: Полный цикл инференса должен быть достаточно быстрым, чтобы поддерживать частоту управления робота.
Пост-обучение (post-training) Cosmos 3 Edge адаптирует эту общую физическую модель под конкретные задачи манипуляции, создавая политику, которая помещается в память Jetson Thor и работает в реальном времени.

02Данные: Основа обучения политики
Качество политики робота напрямую зависит от качества данных, на которых она обучается. В данном руководстве используется датасет nvidia/Cosmos3-DROID. Это не просто набор случайных видео, а тщательно отобранные траектории успешных телеопераций.
Структура датасета DROID
Датасет содержит 76 000 успешных траекторий, охватывающих примерно 350 часов работы. Эти данные собраны с использованием манипулятора Franka Panda и захвата Robotiq. Всего представлено 86 различных задач и 564 сцены, что обеспечивает высокую вариативность условий обучения.
Данные упакованы в формат LeRobotDataset v3.0 с разрешением 640 × 360 пикселей. Подготовка данных включает три ключевых этапа:
- Фильтрация: Удаление кадров, где робот бездействует или не выполняет задачу.
- Селекция: Оставление только успешных демонстраций для обучения.
- Аугментация: Применение случайной обрезки, масштабирования и цветовых искажений во время обучения для повышения устойчивости модели.
Для начала работы необходимо загрузить датасет с Hugging Face:
hf download nvidia/Cosmos3-DROID --repo-type dataset --local-dir Cosmos3-DROIDРабота с собственными данными
Если у вас есть свой робот, вы можете конвертировать свои данные в формат LeRobot Dataset v3. Формат требует наличия кадров с камер, состояний суставов (joint states), состояния захвата, действий и текстовых инструкций задачи. Для настройки под другую конфигурацию робота (например, двухрукий Franka, UR или WidowX 250) потребуется создать собственный конфигурационный файл, определяющий пространство действий, размерность, раскладку камер и настройки нормализации. Полный список поддерживаемых воплощений (embodiments) доступен в карточке модели Cosmos 3 Edge.

03Технические требования и подготовка окружения
Прежде чем приступать к обучению, необходимо убедиться, что ваше окружение соответствует строгим требованиям NVIDIA. Это не просто рекомендация, а необходимость для стабильной работы фреймворка.
Аппаратное обеспечение
Для валидированного запуска требуется мощная инфраструктура. Рекомендуется использовать NVIDIA DGX Station с чипом NVIDIA GB200 Grace Blackwell Superchip или NVIDIA GB300 Grace Blackwell Ultra Desktop Superchip. Валидированный запуск использует 64 узла с 4× GB200 каждый, выполняя 60 000 итераций за примерно 68 часов (около 17,4K GB200-часов). Планируйте вычислительные ресурсы заранее.
Программное обеспечение
Необходимы следующие версии:
- Последняя версия Cosmos framework.
- CUDA 13.0 (cu130).
- Контейнер NGC 26.06-py3.
- Доступ к базовому чекпоинту Cosmos 3 Edge.
- Токен доступа к Hugging Face.
04Конфигурация обучения: Гиперпараметры и настройки
Успех пост-обучения зависит от тонкой настройки гиперпараметров. Ниже приведена таблица конфигурации, используемой в официальном руководстве. Эти значения служат отправной точкой для ваших экспериментов.
| Параметр | Значение |
|---|---|
| Инициализация | Чекпоинт Cosmos3 Edge |
| Пространство действий | joint_pos: 8-D абсолютное (7 суставов + захват) |
| Состояние | Проприоцепция включена (use_state=true) |
| Наблюдение | 3-камерный холст: запястье (360×640) поверх двух внешних видов (180×320 каждый) → 540×640 |
| Чанк действий | 32 будущих действия при 15 Гц на предсказание |
| Головы действий | Свежеинициализированный энкодер + декодирующий MLP + эмбеддинги, множитель LR 5x |
| Баланс потерь | Визуальное flow-matching взвешено для соответствия потере действий |
| Скорость обучения/батч | 2e-4; глобальный батч 8192 (32 образца/ранк × 256 ранков, HSDP 32×8) |
| Расписание | Long-cosine decay (цикл 100K) в течение 10K итераций; чекпоинт каждые 1K |
| Нормализация | Сырые значения суставов, без нормализации |

05Процесс пост-обучения: Пошаговое руководство
Процесс пост-обучения разбит на четыре основных шага. Давайте разберем каждый из них подробно.
Шаг 1: Загрузка датасета
Как уже упоминалось, загружаем успешные траектории:
hf download nvidia/Cosmos3-DROID --repo-type dataset --local-dir /path/to/Cosmos3-DROIDШаг 2: Конвертация чекпоинта в DCP
Базовый чекпоинт необходимо преобразовать в формат Distributed Checkpoint (DCP). Это однократная операция, которая выполняется на CPU и не требует GPU-вычислений. Она просто переупаковывает веса модели для эффективного распределенного обучения.
python -m cosmos_framework.scripts.convert_model_to_dcp \
-o /path/to/Cosmos3-Edge-dcp \
--checkpoint-path Cosmos3-EdgeШаг 3: Применение фильтра кураторства
Фреймворк включает фильтры для очистки данных перед обучением. Убедитесь, что фильтр настроен на удаление нецелевых кадров и аугментацию.
Шаг 4: Запуск обучения
В репозитории cosmos-framework есть скрипт для запуска обучения. Однако по умолчанию он настроен на модель Nano. Для запуска Cosmos 3 Edge необходимо внести три изменения в конфигурационный файл:
- Заменить импорт
NANO_MODEL_CONFIGнаEDGE_MODEL_CONFIG(изconfigs/base/experiment/sft/models/edge_model_config.py). - Установить
BASE_CHECKPOINT_PATHна путь к DCP-чекпоинту Cosmos 3 Edge, созданному на шаге 2. - Переименовать скрипт запуска
examples/launch_sft_action_policy_droid_nano.shвexamples/launch_sft_action_policy_droid_edge.sh.
После внесения изменений запускаем скрипт:
bash examples/launch_sft_action_policy_droid_edge.shВсе остальные параметры, включая датасет, пространство действий и расписание обучения, остаются неизменными. Для получения актуальных инструкций обращайтесь к официальному руководству по воспроизведению DROID и карточке модели.
06Развертывание политики на NVIDIA Jetson Thor
Самый интересный этап — это запуск обученной модели непосредственно на роботе. Политика обслуживается сервером политик WebSocket, использующим протокол OpenPI. Клиент отправляет словарь наблюдений, а сервер возвращает чанк действий.
Запуск сервера на борту
Сервер работает нативно на Jetson Thor. Веса модели занимают около 9 ГБ в формате BF16, что полностью помещается в память Thor. Это означает, что и сервер политик, и клиент управления работают на роботе, без участия GPU в дата-центре.
export HF_TOKEN=
# Thor: запускаем в режиме eager; стандартные колеса Triton не имеют ядер sm_110a
export TORCHDYNAMO_DISABLE=1
python -m cosmos_framework.scripts.action_policy_server_robolab \
--checkpoint_path nvidia/Cosmos3-Edge-Policy-DROID \
--port 8000 \
--format-prompt-as-json True
# Первый запуск скачивает веса и занимает несколько минут; затем:
curl localhost:8000/healthz # -> OK Поскольку сервер работает на Thor, хостом является localhost, и запросы никогда не покидают робота. Это обеспечивает инференс в реальном времени, который делает возможным автономное управление.
Тестирование без робота (Smoke Test)
Политика DROID зависит от состояния. Это значит, что joint_position и gripper_position являются реальными входами модели, а не просто формальностью. Если у вас нет робота под рукой, вы можете провести тест, используя нули в качестве заглушки. Это доказывает, что сервер возвращает корректный чанк действий.
import numpy as np
from PIL import Image
from openpi_client.websocket_client_policy import WebsocketClientPolicy
client = WebsocketClientPolicy(host="localhost", port=8000)
observation = {
"prompt": "put the marker in the basket",
"observation/wrist_image_left": np.asarray(Image.open("wrist.jpg")),
"observation/exterior_image_1_left": np.asarray(Image.open("left.jpg")),
"observation/exterior_image_2_left": np.asarray(Image.open("right.jpg")),
"observation/joint_position": np.zeros(7, dtype=np.float32), # только для smoke test
"observation/gripper_position": np.float32(0.0), # только для smoke test
}
result = client.infer(observation)
actions = result["action"] # [32, 8]: 7 положений суставов + захват, 15 ГцРабота с реальным роботом
В реальном сценарии этот вызов находится в цикле перепланирования. Каждый цикл считывает свежие данные с камер и реальные положения суставов и захвата робота, выполняет префикс чанка, а затем запрашивает новое действие:
def get_observation():
return {
"prompt": "put the marker in the basket",
"observation/wrist_image_left": read_camera("wrist"),
"observation/exterior_image_1_left": read_camera("left"),
"observation/exterior_image_2_left": read_camera("right"),
"observation/joint_position": robot.joint_positions(), # РЕАЛЬНЫЕ, 7 чисел
"observation/gripper_position": robot.gripper_position(),
}
while not task_done():
result = client.infer(get_observation())
execute_actions(result["action"][:16], hz=15) # первые 16 из 32, затем перепланированиеВыполнение только префикса и перепланирование — это стандартная практика. Политика самокорректируется каждые несколько секунд. Поскольку она зависит от состояния, каждое перепланирование начинается с того места, где находится робот на самом деле, а не с того места, где, как предполагалось, он будет находиться. Запуск сервера с включенным декодированием видео возвращает воображаемый ролл политики вместе с действиями, позволяя вам проверить, что предсказывает мировая модель.
07Оценка в замкнутом цикле симуляции
Прежде чем тестировать политику на физическом роботе, настоятельно рекомендуется проверить ее в симуляции. Это позволяет избежать неожиданных поведения и потенциального повреждения оборудования. Для этого используется RoboLab — открытый бенчмарк на базе Isaac Lab-Arena.
Настройка RoboLab
Клиент RoboLab подключается к тому же серверу политик. Он выполняет каждый чанк действий в физической среде и передает отрендеренные наблюдения обратно для истинного замкнутого цикла. Тестирование проводится на 120 задачах манипуляции с языковыми условиями.
# Клонировать RoboLab и загрузить ассеты сцен
git clone https://github.com/NVlabs/RoboLab.git && cd RoboLab
git lfs pull
# Собрать образ симуляции и запустить одну задачу против сервера политик
./docker/build_docker.sh latest
./docker/run_docker.sh latest
python policies/cosmos3/run.py --task BananaInBowlTask
# Или запустить headless для получения статистики успешности
python policies/cosmos3/run.py --task BananaInBowlTask --num-envs 10 --headlessЗамените --task на любую из 120 задач, чтобы построить более полную картину поведения политики. Каждый запуск создает видео с видом от первого лица и с камер робота, а также журнал успешности, позволяя вам inspect как результат, так и траекторию.
Результаты
В оценках замкнутого цикла RoboLab пост-обученная политика Edge достигает 22,9% успешности по всему набору задач. Этот результат достигается при доли вычислительных затрат, необходимых для более крупных вариантов Cosmos3 (Nano достигает 36,8%). Это именно тот компромисс, для которого создана Edge: реальное время, полная автономия на борту робота при конкурентоспособных показателях успешности.

08Пост-обучение за пределами управления роботами
Техники пост-обучения, улучшающие управление роботами, также расширяются на другие возможности, такие как генерация синтетических данных для обучения роботов. Разработчики могут создавать специализированные мировые модели, которые генерируют высококачественные синтетические данные, адаптированные к их средам и задачам, как для внутреннего, так и для наружного обучения роботов.
Например, проект Aigen пост-обучил Cosmos для генерации разнообразных синтетических вариаций культурных растений и сорняков, что позволило автономной системе прополки достичь высокой производительности, используя всего 1% реальных данных для обучения. Это демонстрирует потенциал Cosmos для создания эффективных решений в сельском хозяйстве и других областях.
В более широком смысле, открытые веса Cosmos и фреймворк с лицензией OpenMDW1.1 делают пост-обучение мощным, гибким и простым способом создания специализированных, высокопроизводительных и точных пользовательских моделей для физического ИИ.
09Что это значит на практике
Внедрение NVIDIA Cosmos 3 Edge на Jetson Thor знаменует собой сдвиг парадигмы в робототехнике. Раньше сложные модели ИИ требовали облачной инфраструктуры, что делало роботов зависимыми от сети и уязвимыми к задержкам. Теперь же, благодаря оптимизации моделей и аппаратному обеспечению Jetson, мы можем запускать 4-миллиардные модели прямо на борту.
Это означает:
- Низкая задержка: Управление в реальном времени без ожидания ответа от сервера.
- Автономность: Робот может работать в условиях отсутствия сети.
- Масштабируемость: Легче развертывать множество роботов, так как не требуется централизованная вычислительная инфраструктура для каждого.
- Доступность: Открытые веса и фреймворк позволяют разработчикам по всему миру экспериментировать с передовыми технологиями физического ИИ.
Для разработчиков из России это особенно актуально, так как локальный запуск моделей снижает зависимость от зарубежных облачных сервисов и позволяет создавать собственные решения на базе открытого ПО. Начните с загрузки чекпоинтов, изучения документации и экспериментов с симуляцией. Будущее робототехники — за автономными системами, которые думают сами.
Готовы начать? Загрузите веса политики Cosmos Edge и данные, присоединяйтесь к сообществу Cosmos Labs и исследуйте возможности Jetson. Код доступен на GitHub, а документация постоянно обновляется. Попробуйте Cosmos 3 Nano Reasoner и Cosmos 3 Nano, чтобы понять полный спектр возможностей семейства.
Источник: NVIDIA Developer ↗
