OpenAI Gym: как открытая песочница задала стандарт RL
OpenAI Gym вышел в бете в апреле 2016 года и стал общим языком для обучения с подкреплением. Разбираем, что он дал разработчикам, почему проект передали сообществу и во что он превратился под именем Gymnasium.

Что такое Gym и зачем он появился
27 апреля 2016 года OpenAI выложила в открытый доступ инструмент под названием Gym — библиотеку на Python с единым интерфейсом для задач обучения с подкреплением. До этого каждый исследователь городил свой велосипед: одна среда для игр Atari, другая для управления роботом, третья для классических задач вроде удержания шеста на тележке. Сравнивать алгоритмы между собой было почти невозможно — слишком по-разному устроены сами эксперименты.
Gym решал ровно одну, но болезненную проблему: он давал стандартный контракт между агентом1 и средой. Любую задачу можно было запустить одинаковыми несколькими строками кода. Именно эта унификация, а не какой-то прорывной алгоритм, сделала проект инфраструктурой, на которой выросли тысячи статей и учебных курсов.
Единый интерфейс в четырёх методах
Вся суть Gym укладывается в короткий цикл. Вы создаёте среду через make, сбрасываете её в начальное состояние через reset, а дальше в цикле передаёте действие в step и получаете четыре вещи: новое наблюдение, награду, флаг завершения и служебную информацию.
import gym
env = gym.make("CartPole-v1")
observation = env.reset()
for _ in range(1000):
action = env.action_space.sample() # случайное действие
observation, reward, done, info = env.step(action)
if done:
observation = env.reset()
env.close()Этот шаблон работал одинаково для балансировки шеста, для гонок на симуляторе и для прохождения игр Atari. Разработчику алгоритма не нужно было ничего знать про внутренности среды — только про форму пространства наблюдений и пространства действий.
Что было внутри в бета-версии
Стартовый набор Gym собрал под одной крышей разнородные наборы задач. Их удобно разделить по сложности и назначению.
- Classic control — учебные задачи вроде CartPole и MountainCar, где состояние описывается несколькими числами. Идеальны для проверки, что алгоритм вообще работает.
- Algorithmic — задачи на копирование и обращение последовательностей: проверка способности агента к работе с памятью.
- Atari — набор из десятков игр через Arcade Learning Environment, где наблюдение это картинка с экрана. На этих средах в те годы проверяли глубокое обучение с подкреплением.
- Board games и 2D/3D-физика — часть задач опиралась на физический движок MuJoCo, который тогда был платным и требовал отдельной лицензии.
Зависимость от платного MuJoCo была одним из трений раннего Gym: чтобы воспроизвести половину бенчмарков по непрерывному управлению, нужно было купить лицензию. Ситуация изменилась только в 2021 году, когда MuJoCo стал бесплатным после покупки его командой DeepMind.
Gym не научил машины играть в игры. Он сделал так, что результат одной лаборатории стало можно честно сравнить с результатом другой — и это оказалось важнее любого отдельного алгоритма.
Зачем нужен был единый бенчмарк
До Gym научная статья по RL часто выглядела так: авторы описывали свою среду словами, публиковали график и просили верить, что настройки честные. Воспроизвести чужой результат было тяжело. Общий набор сред с фиксированными версиями (то самое -v1 в имени) убрал значительную часть этих споров.
Версионирование сред — недооценённая деталь. Когда OpenAI меняла правила задачи или награду, менялся и суффикс версии. Старые результаты оставались привязаны к старой версии, и никто не мог случайно сравнить цифры от разных постановок задачи, выдав это за прогресс.
Отдельная площадка для результатов
Вместе с библиотекой запускался сайт-таблица результатов, куда можно было заливать записи обучения агентов. Идея была в открытом соревновании: любой мог выложить, как его алгоритм проходит CartPole или Pong. Эту публичную площадку со временем свернули, а центр тяжести сместился в сам код и в сообщество вокруг него.
От Gym к Gymnasium
Ключевой сдвиг произошёл позже. OpenAI постепенно перестала активно развивать библиотеку, и в 2022 году сопровождение перешло к некоммерческой команде Farama Foundation. Форк получил имя Gymnasium и стал фактическим продолжением проекта, тогда как оригинальный пакет gym перестал получать обновления.
Для тех, кто пишет код сегодня, это практический момент: устанавливать стоит gymnasium, а не архивный gym. API при переходе слегка изменился — в частности, step теперь возвращает пять значений вместо четырёх (завершение по цели и обрыв по лимиту шагов разделили), а reset возвращает пару из наблюдения и служебной информации.
| Признак | OpenAI Gym (2016, бета) | Gymnasium (Farama) |
|---|---|---|
| Кто сопровождает | OpenAI, развитие остановлено | Farama Foundation, активная разработка |
| Возврат step | 4 значения (obs, reward, done, info) | 5 значений (obs, reward, terminated, truncated, info) |
| MuJoCo | платная лицензия в ранние годы | бесплатный движок |
| Статус пакета | legacy, не обновляется | рекомендуемый к использованию |
Что из этого следует для разработчика
Если вы только заходите в обучение с подкреплением, наследие Gym касается вас напрямую. Практический план на старте выглядит так:
- Ставьте
gymnasium, а не архивныйgym— иначе рискуете завязать код на API, который больше не поддерживают. - Начинайте с classic control, например CartPole: там нет тяжёлых зависимостей и понятно, работает ли ваш алгоритм.
- Учитывайте новый контракт
stepс пятью значениями — большинство свежих туториалов и готовых реализаций алгоритмов рассчитаны именно на него. - Прежде чем брать чужой бенчмарк, сверяйте версию среды в имени: цифры для
-v1и-v4сравнивать напрямую нельзя.
Главный урок Gym не технический, а инфраструктурный. Общий интерфейс и версионирование задач дали целой области язык, на котором результаты сопоставимы. Именно поэтому проект пережил и остановку разработки в OpenAI, и смену владельца — идея оказалась важнее конкретного пакета.
1 Агент в обучении с подкреплением — программа, которая выбирает действия в среде, получает награду и постепенно учится действовать так, чтобы суммарная награда была выше.
Prompt-инженер: Идеальные запросы для Midjourney, ChatGPT и других моделей.
Спросить за 15 ₽Источники: OpenAI Gym — анонс проекта в блоге OpenAI, Gymnasium — документация Farama Foundation
Частые вопросы
Gym и Gymnasium — это одно и то же?
Можно ли до сих пор использовать старый пакет gym?
Нужна ли платная лицензия MuJoCo для сред с физикой?
Что означают суффиксы вроде -v1 и -v4 в названиях сред?
С какой среды начать новичку?
Почему step теперь возвращает пять значений вместо четырёх?
Материал носит информационный характер и подготовлен редакцией «Агентуры». Он не является офертой, рекламой или индивидуальной консультацией. Упомянутые продукты, компании и торговые знаки принадлежат их правообладателям. Перед принятием решений, влекущих юридические или финансовые последствия, обратитесь к профильному специалисту.