Gym é um kit de ferramentas para desenvolver e comparar algoritmos de aprendizado por reforço. Ele suporta o ensino de agentes sobre como tomar decisões em vários ambientes simulados.
Detalhes do Projeto OpenAI Gym
Visão Geral do Projeto
OpenAI Gym é uma biblioteca Python de código aberto, dedicada ao desenvolvimento e comparação de algoritmos de aprendizado por reforço. Ela conecta algoritmos de aprendizado e ambientes através de uma API padronizada e fornece um conjunto de ambientes que seguem esse padrão de API. Desde o seu lançamento, a API do Gym se tornou o padrão na área de aprendizado por reforço.
⚠️ Declaração Importante
Mudança no Status de Manutenção do Projeto: A equipe que manteve o Gym desde 2021 transferiu todo o trabalho de desenvolvimento futuro para o Gymnasium, que é um substituto direto do Gym (pode ser usado com import gymnasium as gym
). O Gym não receberá mais nenhuma atualização futura, e recomenda-se que os usuários mudem para o Gymnasium o mais rápido possível.
Características Principais
API Padronizada
- Fornece uma interface unificada para a comunicação entre algoritmos de aprendizado por reforço e ambientes
- Simplifica o processo de criação e interação com ambientes
- Tornou-se o padrão de API na área de aprendizado por reforço
Rica Biblioteca de Ambientes
- Contém uma grande quantidade de ambientes de aprendizado por reforço pré-definidos
- Suporta vários tipos de tarefas e desafios
- Todos os ambientes seguem um padrão de interface unificado
Método de Instalação
Instalação Básica
pip install gym
Instalação de Famílias de Ambientes Específicas
# Instalar dependências para ambientes Atari
pip install gym[atari]
# Instalar dependências para todos os ambientes
pip install gym[all]
# Instalar dependências para ambientes MuJoCo (versão mais recente)
pip install gym[mujoco]
# Instalar dependências para ambientes MuJoCo (versão antiga)
pip install gym[mujoco_py]
Suporte do Sistema
- Versões do Python: Suporta Python 3.7, 3.8, 3.9, 3.10
- Sistemas Operacionais: Suporte oficial para Linux e macOS
- Windows: Aceita PRs relacionados, mas não oferece suporte oficial
Exemplo de Uso Básico
import gym
# Criar ambiente
env = gym.make("CartPole-v1")
# Reiniciar ambiente
observation, info = env.reset(seed=42)
# Loop de interação com o ambiente
for _ in range(1000):
# Escolher ação aleatoriamente
action = env.action_space.sample()
# Executar ação
observation, reward, terminated, truncated, info = env.step(action)
# Verificar se precisa reiniciar
if terminated or truncated:
observation, info = env.reset()
# Fechar ambiente
env.close()
Ecossistema Relacionado
Bibliotecas de Aprendizado Recomendadas
CleanRL - Biblioteca de aprendizado baseada na API do Gym
- Voltada para iniciantes em aprendizado por reforço
- Fornece excelentes implementações de referência
Tianshou - Biblioteca de aprendizado para usuários experientes
- Suporta modificações complexas de algoritmos
- Design flexível
RLlib - Biblioteca de aprendizado que suporta treinamento distribuído
- Suporta treinamento e inferência distribuídos
- Funcionalidades extremamente ricas
PettingZoo - Biblioteca de ambientes multiagente
- Semelhante ao Gym, mas suporta ambientes multiagente
Controle de Versão
O Gym adota um controle de versão rigoroso para garantir a reprodutibilidade:
- Todos os ambientes terminam com um sufixo de versão (como "_v0")
- Quando uma alteração no ambiente pode afetar os resultados do aprendizado, o número da versão é incrementado
- Garante a reprodutibilidade e consistência dos experimentos
Atualização dos Ambientes MuJoCo
- As versões mais recentes "_v4" e futuras não dependem mais de
mujoco-py
- Em vez disso, usam
mujoco
como uma dependência necessária - As versões antigas dos ambientes ainda são mantidas, mas não são mais atualizadas
Documentação e Recursos
- Documentação Oficial: https://www.gymlibrary.dev/
- Servidor Discord: Comunidade de discussão de desenvolvimento
- Repositório GitHub: https://github.com/openai/gym
Citação Acadêmica
O white paper do projeto está disponível no arXiv, formato de citação:
@misc{1606.01540,
Author = {Greg Brockman and Vicki Cheung and Ludwig Pettersson and Jonas Schneider and John Schulman and Jie Tang and Wojciech Zaremba},
Title = {OpenAI Gym},
Year = {2016},
Eprint = {arXiv:1606.01540},
}
Resumo do Status do Projeto
OpenAI Gym, como uma ferramenta pioneira na área de aprendizado por reforço, estabeleceu um padrão da indústria e cultivou um vasto ecossistema. Embora o projeto original não esteja mais sendo ativamente mantido, seu sucessor, Gymnasium, herdou todas as funcionalidades principais, garantindo o desenvolvimento contínuo da comunidade. Para novos projetos, é altamente recomendável usar o Gymnasium diretamente para obter os recursos mais recentes e suporte contínuo.