Перейти к содержимому
ПереводыHugging Face

Deep RL Course: путеводитель по курсу

Карта курса Hugging Face по глубокому обучению с подкреплением: юниты и бонусы, порядок чтения вместе с модулем 6.0, что из практики запускать на своей машине без многочасового обучения и где лежат русские переводы.

Deep RL Course от Hugging Face — бесплатный открытый курс по глубокому обучению с подкреплением (deep reinforcement learning, Deep RL). Его основал Томас Симонини в 2018 году; здесь описана нынешняя версия курса — 2.0. Каждый юнит состоит из теории и практического ноутбука для Google Colab: вы обучаете агента, смотрите видео его игры и (по желанию) выкладываете модель на Hugging Face Hub. Исходники курса лежат на GitHub под лицензией Apache-2.0, поэтому самые важные юниты мы перевели полностью.

Добро пожаловать в самую увлекательную тему искусственного интеллекта — глубокое обучение с подкреплением. Этот курс научит вас глубокому обучению с подкреплением от новичка до эксперта. Он полностью бесплатный и открытый.

В этом курсе вы:

  • 📖 изучите глубокое обучение с подкреплением в теории и на практике;
  • 🧑‍💻 научитесь пользоваться известными библиотеками Deep RL: Stable Baselines3, RL Baselines3 Zoo, Sample Factory и CleanRL;
  • 🤖 обучите агентов в необычных средах — SnowballFight, собака Хагги (Huggy), ViZDoom (Doom) — и в классических: Space Invaders, PyBullet и других;
  • 💾 будете одной строкой кода делиться обученными агентами на Hub и скачивать сильных агентов сообщества;
  • 🏆 поучаствуете в состязаниях, где ваши агенты играют против агентов других команд, а вы сами можете сыграть против своих агентов.

В конце курса у вас будет прочный фундамент — от основ до самых современных (SOTA) методов.

Курс состоит из трёх частей: теория (понятие объясняется на пальцах, с картинками), практика (ноутбук Colab, к некоторым есть видео) и состязания (лидерборд и матчи «ИИ против ИИ»). Рекомендованный темп авторов — один юнит в неделю, 3–4 часа работы. Нужны только компьютер с интернетом, бесплатный Google Colab и аккаунт Hugging Face.

Порядок — как в оглавлении курса. «Важность» — для нашего пути к RL для языковых моделей (PPO, GRPO): ★★★ — читать обязательно, ★★ — полезно, ★ — по интересу.

ЮнитО чёмПрактика: библиотека, средаПереводУрок ChinaAIВажность
0Знакомство с курсом, сертификация, Discord—эта страница——
1Что такое RL: агент, среда, награда, отдача, политика, ценностьStable-Baselines3 (PPO), LunarLanderтеория, практика6.0.1, 6.3.1★★★
Бонус 1Собака Хагги учится приносить палкуUnity ML-Agentsпутеводитель—★
2Функции ценности, Беллман, Монте-Карло и TD, Q-learningс нуля на NumPy, FrozenLake и Taxiтеория, практика6.0.1, 6.0.2★★
3Deep Q-Learning: DQN, replay buffer, целевая сеть, Double DQNRL Baselines3 Zoo, Atari (Space Invaders)теория и практика6.0.2★★
Бонус 2Автоподбор гиперпараметров с OptunaOptuna + SB3путеводитель—★
4Методы на основе политики, теорема о градиенте политики, REINFORCEс нуля на PyTorch, CartPole и Pixelcopterтеория, практика6.0.3, 6.3.1★★★
5Unity ML-Agents, любопытство (curiosity)ML-Agents, SnowballTarget и Pyramidsпутеводитель—★
6Дисперсия REINFORCE, actor-critic, преимущество, A2CStable-Baselines3 (A2C), panda-gymтеория и практика6.0.3★★★
7Мультиагентное RL, self-play, рейтинг ЭлоML-Agents, SoccerTwosпутеводитель—★
8, ч. 1PPO: отношение вероятностей, клиппинг, полный lossPPO с нуля по CleanRL, LunarLanderтеория, практика6.0.3, 6.3.2★★★
8, ч. 2Асинхронный PPO в Sample FactorySample Factory, ViZDoomпрактика—★
Бонус 3Продвинутые темы: RL с моделью, офлайн-RL, RLHF, Decision Transformer, языковые модели в RL—путеводитель6.3.2★★
Бонус 5Имитационное обучение в Godot RL AgentsGodot RL Agentsпутеводитель—★

Бонуса 4 в репозитории нет: нумерация в оглавлении курса так и идёт — 1, 2, 3, 5.

flowchart LR
U1["Юнит 1: словарь RL"] --> U2["Юнит 2: Q-learning"]
U2 --> U3["Юнит 3: DQN"]
U1 --> U4["Юнит 4: REINFORCE"]
U4 --> U6["Юнит 6: actor-critic"]
U6 --> U8["Юнит 8: PPO"]
U8 --> LLM["RLHF и GRPO: уроки 6.3–6.4"]
U3 -.-> U8
Две ветки курса: методы на основе ценности (юниты 2–3) и на основе политики (4, 6, 8). Для языковых моделей важна вторая

Модуль 6.0 «Основы обучения с подкреплением» даёт те же понятия строже: с вероятностями переходов, выводами формул и заданиями в браузере. Курс Hugging Face — нагляднее: мышка и сыр, пылесос и хомяки, ковбой и корова, и почти в каждом юните — живой агент на экране. Лучше всего они работают в паре: юнит курса как интуиция до урока, ноутбук курса как практика после.

  1. Юнит 1 → урок 6.0.1 «MDP, отдача и функции ценности». Юнит даёт словарь (агент, среда, состояние, награда, отдача, γ, политика) без формул сложнее суммы. Практику юнита 1 — посадку лунного модуля — можно отложить до PPO: в ней обучение идёт «чёрным ящиком» Stable-Baselines3.

  2. Юнит 2, первая половина (до «Промежуточного теста») → тот же урок 6.0.1. Функции VV и QQ и уравнение Беллмана; в уроке к ним добавятся value iteration и policy iteration на мире-сетке.

  3. Юнит 2, вторая половина, и практика FrozenLake/Taxi → урок 6.0.2 «Монте-Карло, TD и Q-learning». Здесь обе стороны пишут Q-learning с нуля: курс — на настоящем Gymnasium, урок — в браузере на своей мини-среде.

  4. Юнит 3 (DQN) → конец урока 6.0.2 («От таблицы к нейросети: DQN» и локальный DQN на CartPole). Практику юнита 3 на Atari запускайте, только если хочется увидеть агента в игре: см. таблицу ниже.

  5. Юнит 4 (REINFORCE) → начало урока 6.0.3 «Actor-critic, GAE и PPO полностью». Обязательно пройдите практику юнита 4: это первый агент на PyTorch, написанный своими руками, и тот же REINFORCE, что в уроке 6.3.1 обучает «игрушечную LLM».

  6. Юнит 6 (actor-critic) → середина урока 6.0.3 (baseline, критик, преимущество). Урок идёт дальше курса: в юните 6 нет GAE, а в уроке 6.0.3 GAE выведен и посчитан.

  7. Юнит 8, ч. 1 (PPO) → конец урока 6.0.3. Теорию юнита 8 читайте до раздела урока «PPO целиком»: таблица из шести случаев клиппинга — лучшая наглядная часть курса. PPO с нуля по CleanRL — после урока, как вторую реализацию рядом с нашей.

  8. Дальше — языковые модели. Урок 6.3.2 «RLHF — reward model и PPO» переносит PPO на LLM (бонус 3 курса, раздел RLHF, — короткое введение в то же). Урок 6.4.1 «GRPO — RL без критика» убирает из PPO критика. Продолжение на практике — главы 12 LLM Course Hugging Face в этом же разделе: RL и DeepSeek-R1 и GRPO для математики.

Юниты 5 и 7 и бонусы 1, 2 и 5 для языковых моделей не нужны: это Unity, игры и робототехника. Они хороши, если хочется увидеть, как те же PPO и self-play обучают персонажей в 3D. Главное из них переведено в путеводителе по юнитам 5, 7 и бонусам.

Ноутбуки курса написаны для Google Colab: в начале каждого — установка пакетов через apt и pip, виртуальный дисплей для записи видео и загрузка на Hub. Запускать их можно и локально, в отдельном виртуальном окружении (python -m venv), пропустив ячейки с apt и виртуальным дисплеем, если у вас есть экран. Учтите три вещи.

  • Версии сред. Ноутбуки писались под старые версии Gym и Gymnasium. В Gymnasium 1.x среды LunarLander-v2 и Taxi-v3 заменены на LunarLander-v3 и Taxi-v4 (FrozenLake-v1 и CartPole-v1 не изменились), а reset() и step() возвращают на одно значение больше, чем в старом Gym. Если ноутбук падает на gym.make, дело почти всегда в этом. Подробности — на страницах практики.
  • Загрузка на Hub необязательна. Ячейки с notebook_login() и package_to_hub() нужны только для лидерборда и сертификата, а лидерборд выключен. Сохраняйте модель локально (model.save(...)) и оценивайте её у себя.
  • Не всё надо обучать. Для многих сред на Hub уже лежат обученные агенты (организация sb3, модели Эдварда Бичинга для Doom). Скачать и посмотреть готового агента — минута, обучить такого же — часы.
ПрактикаЧто требуетОценка авторов курсаЧто делать на вашей машине
Юнит 1: PPO, LunarLander, 1 млн шаговCPU, сеть крошечная≈20 мин в Colab с GPUЗапустить, начав со 100–200 тыс. шагов: уже видно, как растёт награда
Юнит 2: Q-learning, FrozenLake и TaxiCPU, только NumPy«пара минут»Запустить целиком
Юнит 3: DQN, Space InvadersGPU; буфер на 100 тыс. кадров1 млн шагов ≈90 мин на P100, 10 млн ≈9 чСкачать готового агента sb3/dqn-… и посмотреть игру; обучать — по желанию, на одной GPU. Буфер займёт ≈6 ГБ ОЗУ
Юнит 4: REINFORCE, CartPoleCPU—Запустить целиком: это главная практика для LLM-трека
Юнит 4: REINFORCE, PixelcopterCPU, PyGame Learning Environment— (50 тыс. эпизодов в ноутбуке)По желанию, с меньшим числом эпизодов
Бонус 1, юнит 5: ML-Agentsсборка Unity под Linux10–45 мин на средуПо желанию
Юнит 6: A2C, PandaReachDenseCPU, PyBullet1 млн шагов ≈25–40 минЗапустить на 200–300 тыс. шагов или целиком
Юнит 7: SoccerTwos, self-playML-Agents5 млн шагов ≈5–8 чПропустить или оставить на ночь
Юнит 8, ч. 1: PPO с нуля (CleanRL)CPU50 тыс. шагов по умолчаниюЗапустить: CartPole — минуты; LunarLander — дольше, увеличьте --total-timesteps
Юнит 8, ч. 2: Sample Factory, DoomLinux, много ядер CPU, GPU4 млн шагов ≈20 минПо желанию: многоядерному процессору это по силам. Deathmatch — только скачать готового агента

Оценка памяти для юнита 3: в буфере хранятся наблюдение и следующее наблюдение, каждое — 4 кадра 84×84 по одному байту: 2×4×84×84=56 4482 \times 4 \times 84 \times 84 = 56\,448 байт на переход, а 100 000 переходов — около 5,6 ГБ.

Почти все юниты построены одинаково, и переводы сохраняют эту структуру:

  1. Введение — что будем изучать и какого агента обучим.
  2. Теория — 3–5 разделов с картинками. Формулы, которые в оригинале нарисованы на картинках, в переводах записаны формулами, а рисунки описаны словами или заменены схемами.
  3. Глоссарий — его пишут участники сообщества.
  4. Практика — ноутбук Colab. В переводах переведены условия, пояснения и комментарии в коде; код сохранён, а где он не работает с текущими версиями библиотек — дана пометка.
  5. Тест — вопросы с ответами; в переводах они оформлены интерактивными квизами или раскрывающимися ответами.
  6. Заключение и дополнительное чтение.
  • Spinning Up in Deep RL (OpenAI) — короткое строгое введение и вывод градиента политики; у нас переведены ключевые понятия, виды алгоритмов и оптимизация политики.
  • Reinforcement Learning: An Introduction Ричарда Саттона и Эндрю Барто — классический учебник, его PDF бесплатно лежит на сайте авторов.
  • CleanRL (vwxyzjn/cleanrl) — однофайловые реализации DQN, PPO и других алгоритмов: их удобно читать сверху вниз.
EnglishРусский
unitюнит (глава курса)
hands-onпрактическое занятие, практика
leaderboardлидерборд, таблица результатов
certificate of completion / of excellenceсертификат об окончании / с отличием
low-maintenanceминимальная поддержка
self-pacedв своём темпе, без сроков
Hugging Face HubHub — платформа для моделей, датасетов и демо
model cardкарточка модели
replay videoвидео игры агента