Генерация весов нейросети: диффузия вместо обучения робота
Робот, который никогда не учился ходить. Его нейросеть не тренировали, её сгенерировали из шума, как изображение в диффузионной модели. Звучит как сюжет фантастики, но это результат свежей работы на arXiv: исследователи обучили диффузионную модель создавать веса нейросетей управления гуманоидом Unitree G1, и сгенерированные сети сразу заработали на реальном железе. Ходьба, танец и spin kick получаются у сетей, которых не было ни в одном тренировочном прогоне.
Вся современная робототехника строится на одном паттерне: одно движение, один цикл обучения, одна сеть-политика. Гуманоид с десятком навыков несёт на борту десяток отдельных нейросетей, и каждая появилась из тысяч часов симуляции. Генерация весов предлагает другой путь: сначала модель учится на распределении готовых сетей, а потом создаёт новые.
Один навык, один цикл обучения
Стандартный конвейер выглядит так. Инженеры настраивают симулятор, пишут функцию вознаграждения и запускают обучение с подкреплением. В новой работе для этого использовали mjlab, лёгкий фреймворк на базе MuJoCo: алгоритм PPO, 4096 параллельных сред, до 4500 итераций на каждую политику. Когда обучение сходится, сеть забирают и разворачивают на роботе. Индустрия давно ищет способы не начинать каждую задачу с нуля: мы разбирали подход, где моторные примитивы предобучают до подключения VLM, и это только один пример. Новая работа идёт дальше и вообще отказывается тренировать финальную сеть.
Тренд на генерацию весов
Идея генерировать веса не новая. Ещё в 2016 году появились hypernetworks: вспомогательная сеть предсказывала веса целевой, обучаясь вместе с ней. В 2024 году вышла работа Neural Network Diffusion, где диффузионная модель генерировала веса обычных классификаторов. Потом идею перенесли на управление: латентная диффузия научилась создавать политики для простых симуляций вроде HalfCheetah, а для четвероногих сетей удалось даже сэмплировать веса, работающие в реальном мире.
Гуманоиды оставались почти неисследованной территорией из-за размерности: их сети крупнее, а движения сложнее. Новая работа закрывает этот пробел: диффузионная генерация весов впервые доведена до реального человекоподобного робота с динамичными движениями вроде танца и удара ногой.
Датасет из 6000 сетей
Чтобы генерировать веса, нужен датасет весов. Исследователи взяли три движения Unitree G1: ходьбу, танец и spin kick. На каждое движение запустили 750 независимых прогонов обучения со случайными сидами, и из каждого прогона сохранили по 8 сетей после сходимости. Получается 6000 сетей на одно движение.
Все сети одной архитектуры: трёхслойный MLP со скрытыми слоями 128 на 128, активации ELU, 29 выходов по числу суставов робота. Параметров немного, от 30 до 40 тысяч на сеть. Разброс связан с размерностью входов: 99 наблюдений у ходьбы против 154 у танца и spin kick. Нормализацию наблюдений при обучении отключили, чтобы не искажать картину весов.
Почему для генерации выбрали именно гуманоида? Весовое пространство тут большое и на первый взгляд хаотичное. Но веса нейросетей избыточны: эффективная размерность намного ниже номинального числа параметров. Это и делает идею реалистичной: не нужно моделировать все 40 тысяч чисел, достаточно найти компактное описание.
Сжатие в латент и Diffusion Transformer
Генератор состоит из двух частей. Первая это линейный автоэнкодер, который сжимает сеть в компактное представление. Схема cluster-wise: веса и биасы первого слоя превращаются в латент из 1024 чисел, оставшиеся слои в ещё один латент из 1024 чисел. Итого сеть на 30-40 тысяч параметров упаковывается в вектор из 2048 чисел, причём энкодер с декодером тут однослойные линейные, без активаций. Ошибка реконструкции порядка 0,0001, то есть сжатие почти без потерь. Разбиение на два кластера принципиально: единый латент даёт MSE в пять раз хуже.
Вторая часть это Diffusion Transformer, сокращённо DiT. Он учится на латентах и генерирует новые. Вместо стандартного предсказания шума модель предсказывает чистый латент (подход x-prediction), внутри 8 слоёв и 8 голов внимания, размерность эмбеддинга 1024, обучение идёт 100 тысяч шагов, а сэмплирование занимает 1000 шагов DDPM. Авторы сознательно выбрали трансформер вместо U-Net из предыдущих работ: трансформер лучше ловит глобальные корреляции между слоями весов. Отдельные автоэнкодер и диффузионная модель обучаются на каждое движение.
Отдельная абляция показывает, насколько критична ширина эмбеддинга. При 512 прогресс по задаче ходьбы составляет 0,64, при 768 уже 0,89, а при 1024 доходит до 0,997. Экономия на размерности здесь не работает.
Насколько хороши сгенерированные сети
Теперь к результатам. По 100 сгенерированных сетей на каждое движение. Средняя успешность: 99,3% для ходьбы, 94,1% для танца, 94,3% для spin kick. Лучшая сеть из сотни добирается до 100% во всех трёх движениях. Ошибка отслеживания: 0,19 м/с у ходьбы (отклонение от команд по скорости), 0,042 и 0,053 метра у танца и spin kick (отклонение от референсной траектории) в среднем, и 0,161 / 0,036 / 0,044 у лучших.
Для сравнения, тренировочные сети дают 99,9%, 99,8% и 99,7% успеха при ошибке 0,162 / 0,037 / 0,046. То есть лучшие сгенерированные сети вплотную подходят к уровню тех, что прошли полный цикл обучения с подкреплением.
Обобщение, а не запоминание
Здесь возникает очевидный вопрос: может, модель просто запомнила обучающие сети и выдаёт их же? Авторы проверили это элегантным способом. Они добавили к тренировочным сетям гауссов шум с таким расчётом, чтобы расстояние до обучающего распределения совпало с расстоянием сгенерированных сетей (эквивалентный уровень шума около 0,1).
Если бы генерация была запоминанием, шум на том же расстоянии не испортил бы поведение. На практике всё наоборот: шумовые сети на эквивалентном расстоянии обваливаются до 91,4%, 86,5% и 78,3% успеха, а сгенерированные держат 99,3%, 94,1% и 94,3%. Модель выучила структуру весового пространства, а не отдельные точки в нём. Это генерализация.
Zero-shot на реальном роботе
Самая наглядная часть: сгенерированные сети развернули на физическом Unitree G1 без дообучения. Ходьба, танец и spin kick выполняются на железе, причём ни одна из сетей не видела реальных данных: весь пайплайн живёт в симуляции. Для инженеров это означает вот что: сеть не нужно калибровать под конкретный экземпляр робота, веса декодируются из латента и заливаются на железо как есть. Видео с демонстрациями выложены на сайте проекта humanoid-weight-diffusion.github.io.
Что зашито в весах: кинематический приоритет
Дальше начинается самое интересное. Вторая половина работы это не генерация, а анализ: что вообще зашито в весах обученных сетей. Исследователи сфокусировались на первом слое, потому что его входы имеют прямой физический смысл: скорости базы, направление гравитации, углы суставов, команды.
Оказалось, что первый слой хранит кинематический приоритет. Веса для суставов hip pitch, knee и waist систематически выше, чем для остальных. Иными словами, сеть с первых слоёв знает: для баланса и движения критичны бедро, колено и корпус. Это не сюрприз для биомехаников, но важно другое: паттерн одинаково проявляется и при обучении с подкреплением, и при имитационном обучении. Два разных оптимизационных процесса приходят к одной структуре, значит, это не артефакт метода, а общее знание, связанное с морфологией гуманоида. Тело робота как будто диктует, как должны выглядеть его сети.
Физика здесь сходится с биомеханикой: hip pitch отвечает за шаг и наклон корпуса, knee за амортизацию, waist за стабилизацию верхней части тела. Именно эти степени свободы несут основную нагрузку при ходьбе и динамичных трюках, и сеть, судя по весам, выучивает эту иерархию сама. Анализ проводили с нормализацией наблюдений, чтобы разные масштабы входов не маскировали структуру.
Для контекста: интерпретируемость весов обычно изучают на зрительных моделях, мы разбирали похожий сюжет про weight banding в свёрточных сетях. В робототехнике такая аналитика почти не встречалась, и это первая работа, которая системно смотрит на весовое пространство политик гуманоида.
Ещё один результат: RL и IL сети почти не различаются по качеству, 99,94% против 99,79% на ходьбе, и демонстрируют сходную структуру весов. А вот как именно доменная рандомизация меняет распределение весов, остаётся менее понятным, особенно за пределами первого слоя.
Почему это важно
Первое: концепция policy generator. Генеративная модель над весами превращает каталог навыков в латентное пространство, из которого можно сэмплировать новые политики. Сегодня это безусловная генерация с отдельной моделью на каждое движение, но следующий логичный шаг это условная генерация по описанию задачи, траектории или тексту. Авторы прямо называют это направлением будущих работ.
Второе: компактность. 6000 сетей на 30-40 тысяч параметров каждая сжимаются в 2048-мерный латент. Если подход масштабируется, библиотека навыков робота становится намного компактнее, а новый навык перестаёт требовать полного цикла обучения.
Третье: интерпретируемость. У RL-политик репутация чёрных ящиков, и то, что в первом слое нашлась понятная структура, редкий и полезный результат. Он намекает, что веса сетей управления не случайный шум, а сжатое описание физики тела. Практическая польза тоже возможна: понимание того, какие входы важны, помогает проектировать более компактные архитектуры и подсказывает, что можно переносить между задачами.
Ограничения
Честная часть работы тоже есть. Анализ ограничен первым слоем, глубокие слои остаются неисследованными. Всё сделано на одном теле (Unitree G1) и трёх движениях, а генерация пока безусловная: своя модель на каждое движение. И главное: найденные структуры пока не конвертировались в улучшение производительности. Это доказательство концепции, а не готовый инструмент.
Часто задаваемые вопросы
Роботов теперь не нужно обучать?
Не совсем. Обучение никуда не уходит: 6000 сетей для датасета кто-то должен был натренировать, и новые морфологии или движения всё равно потребуют прогонов. Меняется последний шаг: вместо очередного цикла RL вы сэмплируете сеть из выученного распределения. Пока это работает для трёх движений одного робота.
Чем это отличается от hypernetworks?
Hypernetworks генерируют веса условно: на вход подаётся задача или контекст, на выходе веса целевой сети, и вся конструкция обучается end-to-end. Здесь схема другая: диффузионная модель учится на распределении уже готовых сетей, а двухступенчатая архитектура сначала сжимает веса в латент, потом генерирует в нём.
Можно ли так же генерировать веса LLM?
Направление то же: neural network diffusion уже пробовали на зрительных и языковых моделях. Но масштаб другой: здесь речь о 30-40 тысячах параметров, у больших языковых моделей миллиарды. Эффективная размерность весов сильно ниже номинальной, так что идея не выглядит безумной, однако до работающих генераторов LLM пока далеко.
Итог
Свежая работа показывает, что веса политик можно генерировать напрямую: 6000 сетей сжали в латент из 2048 чисел, обучили Diffusion Transformer, и сгенерированные сети ходят, танцуют и делают spin kick на реальном Unitree G1. Бонусом нашёлся кинематический приоритет в первом слое, одинаковый для RL и IL. Если тренд продолжится, следующим шагом станет условная генерация: описываешь движение словами и получаешь готовую сеть.
Если интересно, как устроена экономика гуманоидов снизу, начните с разбора Unitree R1 за 4900 долларов: там про то, почему человекоподобный робот стал дешевле подержанной Toyota. А сама работа лежит на arXiv под номером 2610.20606.