Spinning Up in Deep RL: с чего начать обучение агентов
OpenAI выложила образовательный набор Spinning Up in Deep RL: конспекты, эталонные реализации пяти алгоритмов и список статей для чтения. Разбираем, что внутри и как запустить первый алгоритм.

Spinning Up in Deep RL — открытый образовательный ресурс от OpenAI, собранный вокруг простой идеи: не пересказывать чужие туториалы, а дать читаемый код и структурированный путь от нуля до понимания современных policy-gradient методов. Внутри — теоретические конспекты, короткие эталонные реализации нескольких алгоритмов и упражнения. Всё лежит на GitHub под открытой лицензией, документация — на spinningup.openai.com. Важная деталь на 2024 год: официальный репозиторий давно не обновляется, поэтому запускать его нужно с оговорками про версии зависимостей.
Что именно входит в набор
Spinning Up — это не фреймворк для продакшена, а учебный полигон. Авторы сознательно жертвовали производительностью ради читаемости: каждый алгоритм умещается в один-два файла, которые можно прочитать за вечер, не проваливаясь в абстракции на десять уровней вложенности.
- Введение в RL — что такое агент, среда, политика, функция ценности и почему policy gradient работает.
- Таксономия алгоритмов — разделение на model-free и model-based, on-policy и off-policy.
- Реализации — VPG, TRPO, PPO, DDPG, TD3 и SAC, каждая с версиями на разных бэкендах в зависимости от ветки репозитория.
- Список литературы — «Key Papers in Deep RL»: подборка статей, которые стоит прочитать по порядку.
- Упражнения — задания на дозаполнение кода, где часть логики намеренно вырезана.
Главная ценность Spinning Up не в том, что он что-то обучает лучше других библиотек. Она в том, что вы можете открыть ppo.py и понять каждую строку — а не импортировать чёрный ящик.
Какие алгоритмы разобраны
Набор охватывает шесть базовых методов. Если вы только входите в тему, порядок изучения обычно идёт от простого VPG к PPO, а потом к off-policy семейству для непрерывных действий.
| Алгоритм | Тип | Пространство действий | Когда смотреть |
|---|---|---|---|
| VPG | on-policy | дискретное и непрерывное | первым, чтобы понять policy gradient |
| TRPO | on-policy | дискретное и непрерывное | чтобы понять идею ограничения шага |
| PPO | on-policy | дискретное и непрерывное | рабочая лошадка, упрощённый TRPO |
| DDPG | off-policy | непрерывное | управление, робототехника |
| TD3 | off-policy | непрерывное | улучшенный DDPG |
| SAC | off-policy | непрерывное | стабильный выбор для непрерывного контроля |
Цена вопроса: время и подводные камни установки
Главный риск для новичка — не математика, а окружение. Репозиторий писался под старые версии Python, TensorFlow 1.x и gym, и «просто склонировать и запустить» в 2024 году часто не работает. Вот что реально отнимает время.
- Версии Python. Оригинальные инструкции предполагают Python 3.6. На свежих интерпретаторах часть зависимостей не собирается — проще создать отдельное виртуальное окружение с версией, близкой к рекомендованной в README.
- MuJoCo. Часть примеров для непрерывного контроля требует физического движка. Раньше он был платным, сейчас open-source, но интеграция со старым gym требует ручной подгонки.
- gym против gymnasium. Библиотека сред переехала в форк gymnasium с изменённым API (метод
stepвозвращает пять значений вместо четырёх). Старый код Spinning Up рассчитан на прежнюю сигнатуру. - Бэкенд. Если берёте PyTorch-ветку, проверьте совместимость версий torch с вашим CUDA, иначе обучение уйдёт на CPU и растянется на часы.
Реалистичная оценка: чтобы поднять окружение и увидеть первый график обучения на простой среде вроде CartPole, закладывайте от одного до нескольких вечеров, если раньше не работали с RL-стеком.
Минимальный запуск через CLI
После установки Spinning Up предоставляет единую точку входа для тренировки. Базовый прогон PPO на классической среде выглядит так:
python -m spinup.run ppo \
--env CartPole-v1 \
--exp_name ppo_cartpole \
--epochs 50 \
--steps_per_epoch 4000
# просмотр обученной политики
python -m spinup.run test_policy \
data/ppo_cartpole/ppo_cartpole_s0
# построить кривую обучения
python -m spinup.run plot \
data/ppo_cartpole
Команды выше — иллюстрация интерфейса из документации. Точные имена флагов и структуру каталогов data/ сверяйте с README вашей версии репозитория: они менялись между ветками TensorFlow и PyTorch.
Кому это подойдёт, а кому нет
Spinning Up хорош, когда цель — понять, как устроены алгоритмы, а не выжать максимум производительности. Читаемый код и конспекты дают то, чего не дают тяжёлые фреймворки: возможность отладить каждый шаг градиента вручную.
Если же задача — обучать агентов на серьёзных средах сегодня, разумнее смотреть в сторону активно поддерживаемых библиотек: Stable-Baselines3, CleanRL (та же философия «один файл — один алгоритм», но на актуальном стеке), RLlib для распределённого обучения. Spinning Up при этом остаётся отличным первым чтением перед тем, как открыть их исходники.
Порядок, в котором есть смысл двигаться
- Прочитать вводные конспекты и таксономию — без кода.
- Разобрать VPG построчно, запустить на CartPole.
- Перейти к PPO, сравнить, что добавилось по сравнению с VPG.
- Сделать упражнения с дозаполнением кода — они закрепляют понимание лучше, чем чтение.
- Дальше — off-policy методы и статьи из «Key Papers».
Сноска. Policy gradient — семейство методов RL, где напрямую оптимизируется параметризованная политика (функция, отображающая состояние в действие) по градиенту ожидаемой награды, в отличие от методов, которые сначала учат функцию ценности, а действие выводят из неё.
Prompt-инженер: Идеальные запросы для Midjourney, ChatGPT и других моделей.
Спросить за 15 ₽Источники: Spinning Up in Deep RL — официальная документация OpenAI, OpenAI Spinning Up — репозиторий на GitHub
Частые вопросы
Нужны ли предварительные знания, чтобы начать?
Актуален ли Spinning Up в 2024 году?
Есть ли версия на PyTorch или только TensorFlow?
Обязателен ли GPU?
Чем Spinning Up отличается от Stable-Baselines3?
С какого алгоритма начинать?
Материал носит информационный характер и подготовлен редакцией «Агентуры». Он не является офертой, рекламой или индивидуальной консультацией. Упомянутые продукты, компании и торговые знаки принадлежат их правообладателям. Перед принятием решений, влекущих юридические или финансовые последствия, обратитесь к профильному специалисту.