Skip to content
Voltar ao Blog
DreamerV3: Como Machine Learning Aprende a Dominar Minecraft

DreamerV3: Como Machine Learning Aprende a Dominar Minecraft

Alexandru Maftei
Alexandru Maftei
@ice
Updated
1 visualizações
TL;DR:DreamerV3 é um framework de machine learning que treina agentes de IA para compreender como o mundo funciona, construindo modelos internos, testado em ambientes tipo Minecraft. Para pesquisadores de ML curiosos sobre como agentes aprendem a dominar jogos em aberto.
GitHub · Projeto da comunidade Minecraft

dreamerv3 (danijar/dreamerv3)

Dominando Domínios Diversos através de Modelos de Mundo

Favoritad no GitHub ↗
⭐ 3.209 estrelas💻 Python📄 MIT

Quer ver o que acontece quando você dá a um agente de IA um mundo tipo Minecraft sem instruções explícitas? DreamerV3 é um framework de pesquisa que treina agentes a construir modelos internos de como os jogos funcionam, e depois usa esses modelos para tomar decisões inteligentes. Não é para jogadores casuais, mas se você tem curiosidade sobre para onde a pesquisa de IA em jogos está indo, ou se você já se perguntou como machine learning poderia enfrentar problemas abertos como Minecraft, isso vale a pena entender.

O que DreamerV3 Faz

DreamerV3 é um framework de aprendizado por reforço baseado em Python, construído em JAX. Fundamentalmente, ele faz algo meio contra-intuitivo: em vez de treinar um agente para jogar diretamente, ele primeiro ensina o agente a prever o que acontecerá em seguida.

Pense desta forma. Um jogador experiente de Minecraft não memoriza todas as situações possíveis. Ele compreende causa e efeito: madeira queima em fornos, pedra requer uma picareta, água flui para baixo. A maioria constrói um modelo mental das regras do mundo e depois usa esse modelo para planejar o futuro. DreamerV3 tenta replicar esse processo em código - ele se observa jogando, aprende padrões sobre como o ambiente responde às ações e constrói um modelo de mundo interno. Uma vez que compreende as regras, treina um controlador separado para tomar decisões inteligentes com base nesse modelo.

Os detalhes técnicos importam se você estiver implementando isso. Mas este framework codifica observações em distribuições categóricas (não vetores contínuos), prevê estados futuros e recompensas dadas ações e treina tanto o modelo de mundo quanto a política a partir de trajetórias imaginadas. Mas a intuição é mais simples: aprenda como o mundo funciona, depois use esse conhecimento para vencer.


A Conexão com Minecraft

Aqui é onde preciso ser honesto. DreamerV3 não é um mod de Minecraft. Não é algo que você baixa e joga. Mas o projeto é comumente testado em Crafter, que é essencialmente um ambiente 2D gerado proceduralmente, inspirado em Minecraft - completo com crafting, coleta de recursos, mecânicas de sobrevivência e exploração. É assim que pesquisadores validam que seus algoritmos funcionam nos tipos de problemas abertos que Minecraft representa.

Algumas pessoas na comunidade de pesquisa também experimentaram conectar a Minecraft Java Edition real ao DreamerV3 usando a API do jogo, embora isso não seja oficialmente suportado. Honestamente, o repositório em si (3.209 estrelas do GitHub) inclui configurações padrão para vários ambientes, com Crafter como um dos principais campos de testes.

Por que se importar? DreamerV3 representa a fronteira de como estamos pensando em ensinar máquinas a jogar e explorar mundos abertos. Vale a pena prestar atenção se você se importa com para onde a IA de jogos está indo.


Instalação (e o que você precisa)

Verificação de realidade primeiro: você vai precisar de Python 3.11 ou mais novo, uma GPU (ou semanas de paciência em CPU), e conforto genuíno lendo código de pesquisa. Então isso não é uma modificação de jogo ou uma ferramenta que roda em segundo plano. É um framework de pesquisa completo.

A instalação começa com JAX e dependências:

bash
pip install -U -r requirements.txt

Depois que as dependências estão instaladas, treinar um modelo fica assim:

bash
python dreamerv3/main.py \ --logdir ~/logdir/dreamer/{timestamp} \ --configs crafter \ --run.train_ratio 32

Isso treina um agente em Crafter. O parâmetro `train_ratio` é importante - ele controla quantas etapas imaginadas o agente faz para cada interação real com o ambiente. Valores maiores significam aprendizado mais rápido, mas mais computação.

Uma armadilha: se você vir um erro "Too many leaves for PyTreeDef" durante o treinamento, você provavelmente está recarregando o modelo incorretamente no script de treinamento. Verifique a lógica de carregamento de pesos.


O que Torna Isso Diferente

A maioria dos algoritmos de aprendizado por reforço requer horas de ajuste de hiperparâmetros para cada novo ambiente. Treina em Atari? Um conjunto de configurações. Treina em robótica? Configurações diferentes. Treina em Crafter? Novamente diferente. É tedioso.

A reivindicação central do DreamerV3 é que não precisa disso. Os mesmos hiperparâmetros funcionam em domínios dramaticamente diferentes - jogos Atari, Crafter, tarefas de controle contínuo, robótica com visão. Isso é genuinamente raro na área.

Também escala suavemente. Modelos maiores funcionam melhor, o que parece óbvio até você perceber que muitos algoritmos batem em uma parede onde computação adicional para de ajudar. DreamerV3 escala com contagem de parâmetros e tamanho de dados mais como um grande modelo de linguagem do que um algoritmo de RL típico.


Quando (e Quando Não) Usar Isso

Vamos ser diretos: DreamerV3 é para pesquisadores de ML, engenheiros de IA de jogos e pessoas dispostas a investir tempo aprendendo aprendizado por reforço em papers e código. Você não o usará para otimizar o desempenho do servidor. Quem experimenta isso não o usará para gerar mundos Minecraft ou gerenciar números de jogadores.

O que você poderia usá-lo para: treinar agentes inteligentes para navegar em ambientes gerados proceduralmente, pesquisar como modelos de mundo aprendem com entrada visual, ou entender a lacuna entre intuição humana e abordagens de machine learning para jogos.

Se você está configurando servidores experimentais para validar o comportamento do agente, você pode automatizar a configuração com nosso Gerador de Propriedades do Servidor. E se você está monitorando servidores de teste durante execuções de treinamento, acompanhe-os com nosso Verificador de Status do Servidor. Mas honestamente, a maioria do trabalho acontece em ambientes simulados de qualquer forma.

O tempo de treinamento varia muito. Em GPU, espere de 4 a 24 horas para modelos utilizáveis em Crafter. O treinamento em CPU pode se estender por semanas. Você precisará estar confortável lendo Python, depurando erros de JAX e compreendendo estruturas de arquivo de configuração.


Alternativas e Contexto

Se você quer uma introdução mais suave ao aprendizado por reforço, Stable-Baselines3 é mais acessível e melhor documentado. O Gymnasium do OpenAI é o padrão para interfaces de ambiente. Se você quer trabalhar especificamente com servidores Minecraft ativos, projetos da comunidade usando a API do Minecraft diretamente serão mais simples, embora menos flexíveis.

Onde DreamerV3 vence é em generalidade pura. Um algoritmo, um codebase, um conjunto de hiperparâmetros em problemas radicalmente diferentes. Para pesquisadores e engenheiros perguntando "podemos construir um único algoritmo de aprendizado que funciona em todos os lugares?", esta é uma resposta impressionante.

danijar/dreamerv3 - MIT, ⭐3.209
About the author
Alexandru Maftei
Alexandru MafteiLead Writer

Lead writer at minecraft.how. Long-time Minecraft player running a small SMP server, testing every build, mod, and seed before writing about it.

Share with your friends!