GitHub avatar

Fox's Blog

AI Learns Minecraft PvP -- Imitation Learning, Reinforcement Learning, and the 30 Variables That Mattered

1,000 recorded duels, a neural net trained on pixels, 90% hit accuracy: and the bot ran straight into a wall. Then came RL, curriculum learning, and 60 hours of training.

Introduction

AI Learns Minecraft PvP thumbnail

There's a video titled AI Learns Minecraft PvP (Reinforcement Learning + Behavior Cloning) by Kadambi | AI Engineering, and it's one of the most honest game-AI training stories I've seen.

The principle: build a bot playing Minecraft PvP (sword kit, fully enchanted diamond armor) by watching the screen and sending mouse and keyboard commands. It works with pixels in and actions out only, no reading game memory, no macros, no mods.

What makes the video interesting isn't the final result. It's the journey: the imitation learning failure, the pivot to feature engineering, catastrophic forgetting cycles, and 60+ hours of training on a laptop with no GPU.

Phase 1: Imitation Learning (the failure)

The bot during imitation learning: facing a wall, jumping up and down

The creator started with a sensible approach: record 1,000 duels of his own gameplay, pair each mouse click and keypress with the matching frame, and train a neural net to predict actions from pixels.

# Pseudocode for the imitation learning pipeline
dataset = record_duels(1000)          # hundreds of thousands of frames
for frame, action in dataset:
    pixels = capture_screen(frame)
    network.train(pixels → action)    # predict keyboard/mouse from image

The net learned to predict hits with 90% accuracy. Promising.

Then they tested it in a real match. The bot walked straight to the map's edge, faced a wall, and jumped up and down.

Why?

The laziness trap. In a PvP fight, the W key is pressed most of the time. The net realized it could hit high accuracy by just holding W and doing nothing else. It optimized the most frequent action at the expense of all others.

Human latency. Actions in the dataset lag ~200ms of human reaction time. Frame by frame, cause and effect are nearly impossible for a model to learn from raw pixels when action and its visible consequence sit several frames apart.

Inconsistent demos. The creator's own gameplay varied: sometimes strafing with the keyboard, sometimes aiming with the mouse in identical situations. Those conflicting inputs confused the net.

Phase 2: Reinforcement Learning with curriculum

The bot learning horizontal tracking during RL training

Dropping imitation learning, the creator switched to RL. But throwing a fresh agent into a full PvP duel is useless: too much happens at once for random exploration to find anything.

The solution: curriculum learning. Isolate each mechanic and let the bot master basics before entering a real fight.

Step 1: Horizontal aim (7 hours)

The simplest reward function: positive reward for landing a hit, negative penalty for taking damage.

Initially, the bot barely moves (neural net initialized with neutral values). It jitters sideways: that's the bot testing different actions to see which give rewards.

After an hour, it learns to center horizontally, but painfully slowly. After 7 hours, it can track the enemy left and right, though asymmetrically (better moving right-to-left than left-to-right, a behavior persisting through all training).

Step 2: Feature Engineering

The raw screenshot exceeded 2 million pixels. Even downscaled to 360p, that's 200,000 inputs: way too many for efficient learning.

The creator analyzed thousands of duels and identified 30 variables that really matter, in three groups:

Vision (enemy tracking):

  • Enemy distance from crosshair
  • Enemy bounding box size
  • Enemy height
  • Crosshair state (on/off target)
  • Relative velocity

Instead of processing the whole image, the bot filters pixels strictly by enemy armor color, making detection near-instant. Similarly colored background blocks can disturb that filtering: but in Minecraft, you can just change textures.

OCR (HUD reading): Since the bot can't pull coords from game code, it scans the screen live to extract:

  • Camera pitch
  • Momentum
  • Y level

Standard OCR struggles with Minecraft's transparent text, so critical data gets forced to black and white for instant reading.

Time (context window):

  • Time since you hit the enemy
  • Time since it hit you
  • Sliding buffer of the bot's previous actions

That gives the net temporal context: without it, the bot has no idea whether it's mid-combo or just starting a fight.

Step 3: Vertical aim (7 more hours)

The bot learning to aim up and down during RL training

Adding vertical mouse movement was "a total disaster" at first. Initial performance was broken.

After another hour in the sandbox, the bot figured out looking up and down. But in the process, it completely forgot how to track horizontally.

That's catastrophic forgetting: a classic machine learning problem where optimizing for new data wipes previously learned representations. Optimizing vertical aim, the neural net accidentally crushed its horizontal progress, leaving the creator with a bot that could hold its crosshair level but couldn't track a target.

It took 6 more hours to recover horizontal tracking while keeping vertical control. The bot then held good crosshair placement thanks to the OCR group extracting camera pitch.

Step 4: Keyboard control

The bot toggling the W key constantly, learning to commit to movement

Giving the bot keyboard permission made temporal features even more critical. At first, the W key toggled constantly: rapid switching because the net hadn't learned to commit.

That behavior got penalized, so the bot learned to smooth it. It started landing more sprint hits (the thud versus the swish of a standing hit). Some combos felt unsatisfying because the bot exploited its range advantage over the enemy.

To make things fair, the creator raised the enemy's reach. Many of the bot's learned strategies stopped working. But over time, it adapted.

Step 5: Teaching the bot when to click

For the final phase, the creator brought imitation learning back: but only to teach click timing, not the full control policy. The bot tried mimicking click patterns from recorded duels.

Initially, it was too scared to try anything, fearing the bad-click penalty. But it finally found the courage to hit and land blows. Of course, it forgot how to aim again in the process: the creator had to leave it alone for 50 more hours to get back to a satisfying state.

The cheating debate

The video ends asking: does this bot cheat?

The case against: the bot only processes what a human sees (the same pixels), sends the same keyboard/mouse inputs as a human (no packet manipulation like anti-knockback), and doesn't read game memory (no X-ray or ESP).

The case for: a bot can process faster than a human, and if the opponent thinks they're playing a human but aren't, that's deception.

The creator's take: it depends on intent. If both sides know it's a bot, the match is fair. The bot chains the enemy into the void with a 100-hit streak.

The result

The bot executing a 100-hit combo

A Minecraft PvP bot trained on a GPU-less laptop, built on a custom training pipeline with:

  • Screenshot for pixel input (2M+ pixels → 30 designed features)
  • Curriculum learning (horizontal → vertical → keyboard → clicks)
  • RL for motor control + imitation learning for click timing
  • Feature engineering on raw pixels (3 groups: vision, OCR, time)
  • 60+ hours of training across several phases

Total training time is tens of hours, but most of it is passive. The bot jitters toward understanding, forgets what it learned, relearns, and ends up chaining a 100-hit streak.

The video is at youtube.com/watch?v=j5nxDKAjg6U.


This article covers only the video's content. For broader Minecraft AI context: VPT, DreamerV3, and the imitation learning vs RL landscape: the sections below connect this project to the wider field.

VPT: behavior cloning at scale

OpenAI's VPT project diagram: the Inverse Dynamics Model predicts actions from pairs of frames

The video's "behavior cloning" approach (Phase 1) is the same technique OpenAI used in its Video PreTraining (VPT) project, but at opposite ends of the resource spectrum. VPT proved imitation learning works for Minecraft when you have 70,000 hours of video, 720 GPUs, and an inverse dynamics model to pseudo-label unlabeled data. The creator here proved it fails with a laptop and 1,000 duels: but for the same core reason: imitation learning is limited by its demonstrations' quality.

OpenAI's VPT agent mining a tree in Minecraft

The VPT pipeline solves the data problem by training an Inverse Dynamics Model (IDM) that looks at frame t-1 and frame t+1 to predict the action at frame t. Because the IDM is non-causal (it sees future frames), the task is easier than behavior cloning and needs far less labeled data. They paid contractors about $2,000 for 2,000 hours of labeled data, then used the IDM to pseudo-label 70,000 hours of Minecraft YouTube videos.

Crafting/gathering rate vs pretraining data volume (log scale): crafting tables, wooden tools, stone tools

The scale effect is clear: on a log axis from 1 hour to 100,000 hours of pretraining data, the rate at which the model crafts a table, wooden tools, then stone tools climbs stepwise. The model trained only on the 2,000 contractor-labeled hours plateaus at crafting tables; it's by adding the 70,000 IDM pseudo-labeled hours (dashed line on the graph) that stone tools emerge zero-shot, without a single RL step.

The resulting 0.5B-parameter foundation model reached zero-shot capabilities impossible with RL alone: chopping trees, crafting tables, pillar-jumping: and fine-tuned with RL, it became the first AI to craft diamond tools.

Reward vs RL training episodes: starting from a randomly initialized model vs starting from the VPT pretrained model

That graph shows why pretraining changes everything for downstream RL. RL starting from a randomly initialized net (orange) stays flat near 0 for nearly a million episodes: the "get a diamond" task has too sparse a reward for a naive agent to stumble on by random exploration. RL fine-tuned from the VPT pretrained model (green) starts with base behavior (mining, crafting, exploring) and climbs steadily to a reward around 25, matching the full path to a diamond pickaxe.

Official demo videos from OpenAI's VPT project, showing the agent in action.

OpenAI Five: the reward shaping problem

OpenAI Five playing Dota 2 against human professionals

OpenAI Five (2019) beat the Dota 2 world champions using pure self-play RL: no imitation learning. 256 GPUs, 128,000 CPU cores, 180 years of game per day, 10 months of training.

But the reward function was hand-designed by Dota experts: 28 features out of 20,000 available, each with manually tuned weights. Net worth, kills, deaths, tower health, lane assignments: everything was selected and weighted by humans. Without that modeling, the agent barely learned (experiment: win/loss-only reward → plateau at semi-pro level).

The video's bot faces the same problem: its reward function encodes the creator's understanding of what matters in PvP (hitting is good, getting hit is bad, holding crosshair is good). It's inevitable: RL needs a reward signal, and shaping that signal encodes human bias.

DreamerV3: world models and sparse rewards

DreamerV3 benchmark scores across 150+ diverse tasks with a single configuration

DeepMind's DreamerV3 (2023) takes a third approach. Instead of behavior cloning or incentivized RL, it learns a world model: a neural net predicting future states and rewards from past actions: and plans by dreaming possible futures. It's the first algorithm to collect diamonds in Minecraft from scratch with no human data or curricula, published in Nature in 2025.

DreamerV3 learns a world model to imagine future trajectories

The diamond environment defines a sparse reward over 12 milestones (log → planks → stick → crafting table → wooden pickaxe → stone → stone pickaxe → iron ore → furnace → iron ingot → iron pickaxe → diamond), each giving +1 only once. Plus a small health reward (±0.01 per hp). Reachable total: 11.1 in a 36,000-step episode.

DreamerV3's world model lets it imagine trajectories and evaluate them internally: the actor learns from dreamed rollouts rather than real experience, testing thousands of possible futures per real step. That makes sparse rewards workable where they'd destroy a standard RL agent.

Over 40 seeds trained for 100M environment steps, 24 of 40 collected at least one diamond. The first diamond appeared after 29M steps (~9 days on one GPU).

ANNA: symbolic AI meets Minecraft

ANNA's task tree decomposition for a flint-and-steel

Before the video's PvP bot, before VPT and DreamerV3, there was ANNA: a Minecraft bot built on a completely different philosophy. Instead of learning from pixels or rewards, ANNA uses a symbolic state machine with a French NLP parser and a hand-written task dependency tree.

Created in 2022 (before "vibe coding" was a term), ANNA connects to a Minecraft server via Mineflayer and understands natural-language commands in French. Say "obtiens un briquet" ("get a flint-and-steel"), and ANNA parses the verb (obtiens → obtain), looks up the item's recipe, and recursively breaks it into subtasks: mine oak → craft planks → craft sticks → craft a crafting table → craft a wooden pickaxe → mine stone → craft a stone pickaxe → mine iron ore → smelt iron ingots → craft the flint-and-steel.

ANNA's NLP parser architecture for French command recognition

The NLP layer (utils/id_parser.js) splits commands on "et" ("and") to handle parallel orders, maps French verbs to task types, and translates French item names to Minecraft IDs via a 5,000-entry dictionary. Unrecognized commands fall through to a GPT-based conversation system presenting ANNA as a sentient Minecraft companion.

The task tree (mc-tasks-tree/) is the heart: a recursive algorithm walking Minecraft's item graph (crafting recipes, mining yields, mob drops, furnace recipes) to produce a step-by-step plan. For a diamond helmet, it generates a 40+ step breakdown covering wood, stone, iron, and diamond tiers.

ANNA's diamond helmet task tree: a 40+ step breakdown

Where the video's PvP bot learns from experience, ANNA works from knowledge. It needs no 1,000 duels or 60 hours of training: it needs the tree, the parser, and the server/distributor. But it also can't generalize beyond what its tree encodes. No amount of state-machine engineering would teach it PvP.

ANNA's approach reflects a different AI era: before end-to-end learning dominated, when the promise was that symbolic reasoning plus careful engineering could produce intelligent behavior. Today, projects like ANNA and the PvP bot represent two poles of Minecraft AI: one reasons about the world, the other perceives it.

Master Gumbo's Mace Bot: AI with only command blocks

The Mace PvP training arena with the bot

In a completely different corner of Minecraft AI, YouTuber Master Gumbo built a PvP training bot using only command blocks, just vanilla Minecraft commands, redstone, and a carpet mod for player-clone entities. The result is an AI opponent for the masses practicing breach swaps, wind charges, and shield mechanics with the player.

The bot starts as a zombie with unbreakable gear and a totem in its offhand (refilled every tick via /item replace), making it effectively immortal. Later, Master Gumbo switches to Carpet Mod's player replica bots, which support humanoid mechanics (shield raising, item switching) zombies can't do.

The settings center: buttons to configure bot behavior

The core innovation is a randomness-driven state machine. An armor stand gets teleported above a circle of colored concrete blocks via the /spreadplayers command, which scatters entities randomly. The concrete color the armor stand lands on determines the bot's next action:

  • Red concrete → strafe backward
  • Blue concrete → rise upward (attack) with wind charge
  • Green concrete → raise shield
  • White concrete → pause (adds delay between actions)

The AI decision system: an armor stand on colored concrete

The armor stand's position is read by command blocks detecting the block below and firing the matching mechanism. A redstone block gets placed or removed to enable/disable each behavior. Because /spreadplayers runs on repeat, the bot keeps making new decisions, producing unpredictable but structured behavior.

Master Gumbo calls it "a very simple and basic form of AI": it doesn't learn from interactions like neural nets, but randomness + state machine produces realistic PvP behavior harder to predict than a scripted bot. The settings center includes a book UI to toggle AI on/off, tune difficulty, and configure movement patterns.

After training with the bot then dueling the player who'd called him trash (in his video intro), Master Gumbo wins. The map is shared via Discord, Carpet Mod required.

The bot in a duel, practicing mace PvP techniques

Where the PvP bot (Kadambi) learns from pixels and ANNA reasons through a task tree, Master Gumbo's bot achieves intelligence through random state transitions: a pure command block approach proving you don't need neural nets to build a convincing PvP opponent.

Altoclef: Baritone + large-scale task tree

If ANNA is a symbolic bot that reads to know what to do, and the Mace Bot randomizes decisions, Altoclef is a full autonomous agent that plans its way through the whole game. Built by gaucho-matero as a Fabric mod and powered by Baritone pathfinding, Altoclef breaks any Minecraft goal into a task tree and executes it with no human intervention.

The interface is deceptively simple: type @gamer in chat, and Altoclef starts the "beat the game" task from a survival world. It harvests wood, crafts tools, mines iron and diamond, builds a Nether portal, collects Blaze rods and Ender pearls, finds the stronghold, and kills the Ender Dragon. All autonomously, via the native Minecraft client, on any vanilla server.

Under the hood, this is achieved through a recursive task tree system where each high-level goal (e.g., "craft a diamond pickaxe") breaks into prerequisite tasks: mine diamond → smelt it → craft sticks → combine them. The tree walks the full Minecraft recipe graph, handling production chains, mob drops, loot tables, and container access. Unlike ANNA's hand-written tree, Altoclef's tasks are programmable Java classes that can implement arbitrary logic: combat strategies, piglin bartering, exploration patterns.

The key architectural idea is separating what (the task tree) from how (Baritone pathfinding). Baritone handles low-level movement: pathfinding, obstacle avoidance, block breaking, inventory management, while the task system orchestrates the high-level plan. That modularity means neither component needs to be an AI: both are deterministic algorithms, but their combination produces complex, goal-directed behavior rivaling learning approaches.

Altoclef represents the limit of pure symbolic Minecraft AI: it can beat the game from scratch with no training, no GPU, and no human data, but it can't adapt to tasks its programmers didn't anticipate, and it can't learn from experience. It knows how to craft a diamond pickaxe because a Java class tells it exactly how, not because it figured it out alone.

What connects them

Approach Main method Data Compute Result
Video's PvP bot RL + imitation learning 1,000 duels 1 laptop, 60h 100-hit combo
OpenAI Five Self-play RL 180 game-years/day 256 GPUs, 10mo Dota 2 world champion
VPT Semi-supervised IL 70K h YouTube + IDM 720 GPUs, 9 days Diamond tools
DreamerV3 World model RL Dreamed trajectories 1 GPU, 9 days Diamond from scratch
ANNA Symbolic NLP + task tree Written recipes 1 laptop, instant Any craftable item
Altoclef Baritone + FS task tree Java task classes Fabric mod, no GPU Beat the entire game
Mace Bot Command block state machine Random decisions Vanilla MC, no GPU Mace PvP training

The video's bot is the most resource-constrained but the most honest about the process. It fails first, then iterates. It forgets what it learned, then relearns, and ends with a 100-hit combo: but also with a question about whether what it built cheats.


Video: AI Learns Minecraft PvP by Kadambi | AI Engineering

VPT: Paper · Blog · GitHub

OpenAI Five: Paper · Blog

DreamerV3: Paper · GitHub

ANNA: GitHub · (Node.js, Mineflayer, French NLP, task tree)

Altoclef: GitHub · Active fork · (Fabric, Baritone, task tree, beats game)

Mace Bot: Video by Master Gumbo · (Command Blocks, Carpet Mod, state machine)

L'IA apprend le PvP Minecraft -- Imitation Learning, Reinforcement Learning, et les 30 variables qui comptaient

1 000 duels enregistrés, réseau neuronal entraîné sur des pixels, 90 % de précision des frappes : et le bot fonçait droit dans un mur. Puis sont venus le RL, l'apprentissage curriculaire et 60 heures d'entraînement.

Introduction

AI Learns Minecraft PvP thumbnail

Il y a une vidéo intitulée AI Learns Minecraft PvP (Reinforcement Learning + Behavior Cloning) par Kadambi | AI Engineering, et c'est l'un des récits les plus honnêtes d'entraînement d'une IA de jeu vidéo que j'aie vus.

Le principe : construire un bot qui joue au PvP Minecraft (kit épée, armure de diamant entièrement enchantée) en regardant l'écran et en envoyant des commandes souris et clavier. Il fonctionne uniquement avec des pixels en entrée et des actions en sortie, sans lire la mémoire du jeu, sans macros et sans mods.

Ce qui rend la vidéo intéressante n'est pas le résultat final. C'est le parcours : l'échec de l'imitation learning, le pivot vers le feature engineering, les cycles d'oubli catastrophique, et les 60+ heures d'entraînement sur un laptop sans GPU.

Phase 1 : Imitation Learning (l'échec)

The bot during imitation learning: facing a wall, jumping up and down

Le créateur a commencé avec une approche sensée : enregistrer 1 000 duels de son propre gameplay, associer chaque clic de souris et pression de touche à l'image correspondante, et entraîner un réseau neuronal à prédire les actions à partir des pixels.

# Pseudocode for the imitation learning pipeline
dataset = record_duels(1000)          # hundreds of thousands of frames
for frame, action in dataset:
    pixels = capture_screen(frame)
    network.train(pixels → action)    # predict keyboard/mouse from image

Le réseau a appris à prédire les frappes avec 90 % de précision. Prometteur.

Puis ils l'ont testé dans un vrai match. Le bot s'est dirigé tout droit vers le bord de la carte, a fait face à un mur, et a sauté de haut en bas.

Pourquoi ?

Le piège de la paresse. Dans un combat PvP, la touche W est enfoncée la plupart du temps. Le réseau a réalisé qu'il pouvait atteindre une haute précision en maintenant simplement W enfoncé et en ne faisant rien d'autre. Il a optimisé l'action la plus fréquente au détriment de toutes les autres.

La latence humaine. Les actions dans le jeu de données sont retardées d'environ 200 ms de temps de réaction humain. Image par image, la cause et l'effet sont presque impossibles à apprendre pour un modèle à partir de pixels bruts quand l'action et sa conséquence visible sont séparées par plusieurs images.

Démonstrations incohérentes. Le propre gameplay du créateur variait : parfois il strafing avec le clavier, parfois visait à la souris dans des situations identiques. Ces entrées contradictoires ont perturbé le réseau.

Phase 2 : Reinforcement Learning avec curriculum

The bot learning to track horizontally during RL training

Abandonnant l'imitation learning, le créateur a basculé vers le RL. Mais plonger un agent frais dans un duel PvP complet est inutile : il se passe trop de choses à la fois pour qu'une exploration aléatoire trouve quoi que ce soit.

La solution : l'apprentissage curriculaire. Isoler chaque mécanique et laisser le bot maîtriser les bases avant d'entrer dans un vrai combat.

Étape 1 : Visée horizontale (7 heures)

La fonction de récompense la plus simple : récompense positive pour toucher une cible, pénalité négative pour subir des dégâts.

Initialement, le bot bouge à peine (réseau neuronal initialisé avec des valeurs neutres). Il tremble latéralement : c'est le bot qui teste différentes actions pour voir lesquelles donnent des récompenses.

Après une heure, il apprend à se centrer horizontalement, mais péniblement lentement. Après 7 heures, il peut suivre l'ennemi à gauche et à droite, bien qu'asymétriquement (meilleur pour se déplacer de droite à gauche que de gauche à droite, un comportement qui a persisté tout au long de l'entraînement).

Étape 2 : Feature Engineering

La capture d'écran brute faisait plus de 2 millions de pixels. Même réduite à 360p, cela représente 200 000 entrées : beaucoup trop pour un apprentissage efficace.

Le créateur a analysé des milliers de duels et identifié 30 variables qui comptent vraiment, réparties en trois groupes :

Vision (suivi ennemi) :

  • Distance de l'ennemi par rapport au viseur (crosshair)
  • Taille de la boîte englobante de l'ennemi
  • Hauteur de l'ennemi
  • État du viseur (sur cible / hors cible)
  • Vélocité relative

Au lieu de traiter toute l'image, le bot filtre les pixels strictement par la couleur de l'armure ennemie, rendant la détection quasi instantanée. Des blocs d'arrière-plan de couleur similaire peuvent perturber ce filtrage : mais dans Minecraft, on peut simplement changer les textures.

OCR (lecture HUD) : Comme le bot ne peut pas récupérer les coordonnées depuis le code du jeu, il scanne l'écran en temps réel pour extraire :

  • Pitch de la caméra
  • Momentum
  • Niveau Y

L'OCR standard peine avec le texte transparent de Minecraft, donc les données critiques sont forcées en noir et blanc pour une lecture instantanée.

Temps (fenêtre de contexte) :

  • Temps écoulé depuis que tu as touché l'ennemi
  • Temps écoulé depuis qu'il t'a touché
  • Tampon glissant des actions précédentes du bot

Cela donne au réseau un contexte temporel : sans lui, le bot n'a aucune idée s'il est au milieu d'un combo ou s'il commence juste un combat.

Étape 3 : Visée verticale (7 autres heures)

The bot learning to aim up and down during RL training

Ajouter le mouvement vertical de souris a été « un désastre total » au début. La performance initiale était brisée.

Après encore une heure dans le bac à sable, le bot a compris comment regarder en haut et en bas. Mais dans le processus, il a complètement oublié comment suivre horizontalement.

C'est l'oubli catastrophique : un problème classique d'apprentissage machine où l'optimisation pour de nouvelles données écrase les représentations précédemment apprises. En optimisant la visée verticale, le réseau neuronal a accidentellement écrasé ses progrès horizontaux, laissant le créateur avec un bot qui pouvait maintenir son viseur à niveau mais ne pouvait pas suivre une cible.

Il a fallu 6 heures supplémentaires pour retrouver le suivi horizontal tout en conservant le contrôle vertical. Le bot a alors maintenu un bon placement du viseur grâce au groupe OCR extrayant le pitch de la caméra.

Étape 4 : Contrôle clavier

The bot toggling the W key constantly, learning to commit to movement

Donner au bot la permission d'utiliser le clavier a rendu les caractéristiques temporelles encore plus critiques. Au début, la touche W était constamment activée et désactivée : un changement rapide parce que le réseau n'avait pas appris à s'engager.

Ce comportement a été pénalisé, donc le bot a appris à le lisser. Il a commencé à atterrir plus de coups en sprint (le son sourd contre le swish d'un coup debout). Certains combos semblaient insatisfaisants parce que le bot exploitait son avantage de portée sur l'ennemi.

Pour rendre les choses équitables, le créateur a augmenté la portée de l'ennemi. Beaucoup des stratégies apprises par le bot ont cessé de fonctionner. Mais avec le temps, il s'est adapté.

Étape 5 : Apprendre au bot quand cliquer

Pour la phase finale, le créateur a ramené l'imitation learning : mais seulement pour enseigner le timing des clics, pas la politique de contrôle complète. Le bot a essayé d'imiter les modèles de clics des duels enregistrés.

Initialement, il avait trop peur d'essayer quoi que ce soit, craignant la pénalité pour les mauvais clics. Mais il a finalement trouvé le courage de frapper et d'atterrir des coups. Bien sûr, il a oublié comment viser encore une fois dans le processus : le créateur a dû le laisser tranquille pendant 50 heures supplémentaires pour revenir à un état satisfaisant.

Le débat sur la triche

La vidéo se termine en demandant : ce bot triche-t-il ?

L'argument contre : le bot ne traite que ce qu'un humain voit (les mêmes pixels), envoie les mêmes entrées clavier/souris qu'un humain (sans manipulation de paquets comme l'anti-knockback), et ne lit pas la mémoire du jeu (sans X-ray ni ESP).

L'argument pour : un bot peut traiter plus vite qu'un humain, et si l'adversaire pense qu'il joue contre un humain mais que ce n'est pas le cas, c'est de la tromperie.

L'avis du créateur : cela dépend de l'intention. Si les deux parties savent que c'est un bot, le match est équitable. Le bot enchaîne l'ennemi dans le vide avec une série de 100 coups.

Le résultat

The bot executing a 100-hit combo

Un bot PvP Minecraft entraîné sur un laptop sans GPU, construit sur un pipeline d'entraînement personnalisé avec :

  • Capture d'écran pour l'entrée pixel (2M+ pixels → 30 caractéristiques conçues)
  • Apprentissage curriculaire (horizontal → vertical → clavier → clics)
  • RL pour le contrôle moteur + imitation learning pour le timing des clics
  • Feature engineering sur les pixels bruts (3 groupes : vision, OCR, temps)
  • 60+ heures d'entraînement sur plusieurs phases

Le temps total d'entraînement est de dizaines d'heures, mais la plupart sont passives. Le bot tremble jusqu'à la compréhension, oublie ce qu'il a appris, ré-apprend, et finit par enchaîner une série de 100 coups.

La vidéo est sur youtube.com/watch?v=j5nxDKAjg6U.


Cet article couvre uniquement le contenu de la vidéo. Pour un contexte plus large sur l'IA Minecraft : VPT, DreamerV3, et le paysage de l'imitation learning vs RL : les sections ci-dessous relient ce projet au domaine plus vaste.

VPT : Behavior cloning à grande échelle

OpenAI's VPT project diagram : the Inverse Dynamics Model predicts actions from pairs of frames

L'approche « behavior cloning » de la vidéo (Phase 1) est la même technique qu'OpenAI a utilisée dans son projet Video PreTraining (VPT), mais aux extrémités opposées du spectre de ressources. VPT a prouvé que l'imitation learning fonctionne pour Minecraft quand on a 70 000 heures de vidéo, 720 GPUs, et un inverse dynamics model pour pseudo-étiqueter des données non labellisées. Le créateur ici a prouvé qu'il échoue avec un laptop et 1 000 duels : mais pour la même raison fondamentale : l'imitation learning est limité par la qualité de ses démonstrations.

OpenAI's VPT agent mining a tree in Minecraft

Le pipeline VPT résout le problème des données en entraînant un Inverse Dynamics Model (IDM) qui regarde l'image t-1 et l'image t+1 pour prédire l'action à l'image t. Parce que l'IDM est non causal (il voit les images futures), la tâche est plus facile que le behavior cloning et nécessite beaucoup moins de données labellisées. Ils ont payé des contracteurs environ 2 000 $ pour 2 000 heures de données labellisées, puis ont utilisé l'IDM pour pseudo-étiqueter 70 000 heures de vidéos YouTube Minecraft.

Taux de crafting/collecte en fonction du volume de données de pré-entraînement (échelle log) : tables de craft, outils en bois, outils en pierre

L'effet d'échelle est net : sur un axe log de 1 heure à 100 000 heures de données de pré-entraînement, le taux auquel le modèle fabrique une table de craft, des outils en bois, puis des outils en pierre grimpe par paliers. Le modèle entraîné uniquement sur les 2 000 heures labellisées par des contracteurs plafonne aux tables de craft ; c'est en ajoutant les 70 000 heures pseudo-étiquetées par l'IDM (ligne pointillée sur le graphique) que les outils en pierre émergent en zero-shot, sans une seule étape de RL.

Le modèle fondamental de 0,5B paramètres résultant a atteint des capacités zero-shot impossibles avec le RL seul : couper des arbres, fabriquer des tables, saut en colonne : et fine-tuné avec du RL, il est devenu la première IA à fabriquer des outils en diamant.

Récompense en fonction du nombre d'épisodes d'entraînement RL : partir d'un modèle initialisé aléatoirement vs partir du modèle VPT pré-entraîné

Ce graphique montre pourquoi le pré-entraînement change tout pour le RL en aval. Le RL parti d'un réseau initialisé aléatoirement (orange) reste plat près de 0 sur près d'un million d'épisodes : la tâche « obtenir un diamant » a une récompense trop éparse pour qu'un agent naïf en tombe dessus par exploration aléatoire. Le RL fine-tuné à partir du modèle VPT pré-entraîné (vert) part déjà avec le comportement de base (miner, fabriquer, explorer) et grimpe régulièrement jusqu'à une récompense d'environ 25, ce qui correspond au chemin complet vers une pioche en diamant.

Démos vidéo officielles du projet VPT d'OpenAI, montrant l'agent en action.

OpenAI Five : Le problème du reward shaping

OpenAI Five playing Dota 2 against human professionals

OpenAI Five (2019) a vaincu les champions du monde de Dota 2 en utilisant du RL pur en auto-apprentissage : pas d'imitation learning. 256 GPUs, 128 000 cœurs CPU, 180 années de jeu par jour, 10 mois d'entraînement.

Mais la fonction de récompense a été conçue à la main par des experts de Dota : 28 caractéristiques sur les 20 000 disponibles, chacune avec des poids ajustés manuellement. Valeur nette, éliminations, morts, santé des tours, assignations de couloirs : tout a été sélectionné et pondéré par des humains. Sans cette modélisation, l'agent apprenait à peine (expérience : récompense seulement victoire/défaite → plateau au niveau semi-pro).

Le bot de la vidéo fait face au même problème : sa fonction de récompense encode la compréhension du créateur de ce qui compte en PvP (toucher est bon, être touché est mauvais, maintenir le viseur est bon). C'est inévitable : le RL a besoin d'un signal de récompense, et la modélisation de ce signal encode un biais humain.

DreamerV3 : World models et récompenses éparses

DreamerV3 benchmark scores across over 150 diverse tasks with a single configuration

Le DreamerV3 de DeepMind (2023) adopte une troisième approche. Au lieu du behavior cloning ou du RL avec incitations, il apprend un world model : un réseau neuronal qui prédit les états futurs et les récompenses à partir des actions passées : et planifie en rêvant de futurs possibles. C'est le premier algorithme à collecter des diamants dans Minecraft de zéro sans données humaines ni curricula, publié dans Nature en 2025.

DreamerV3 learns a world model to imagine future trajectories

L'environnement diamant définit une récompense éparse sur 12 jalons (bûche → planches → bâton → table de craft → pioche en bois → pierre → pioche en pierre → minerai de fer → four → lingot de fer → pioche en fer → diamant), chacun donnant +1 une seule fois. Plus une petite récompense de santé (±0,01 par pv). Total atteignable : 11,1 dans un épisode de 36 000 étapes.

Le world model de DreamerV3 lui permet d'imaginer des trajectoires et de les évaluer en interne : l'acteur apprend des rollouts rêvés plutôt que de l'expérience réelle, testant des milliers de futurs possibles pour chaque étape réelle. Cela rend possibles les récompenses épars la où elles détruiraient un agent RL standard.

Sur 40 graines entraînées pour 100M d'étapes environnementales, 24 des 40 ont collecté au moins un diamant. Le premier diamant est apparu après 29M d'étapes (~9 jours sur un GPU).

ANNA : L'IA symbolique rencontre Minecraft

ANNA's task tree decomposition for a flint-and-steel

Avant le bot PvP de la vidéo, avant VPT et DreamerV3, il y avait ANNA : un bot Minecraft construit avec une philosophie complètement différente. Au lieu d'apprendre à partir de pixels ou de récompenses, ANNA utilise une machine d'états symbolique avec un analyseur NLP français et un arbre de dépendances de tâches écrit à la main.

Créé en 2022 (avant que « vibe coding » soit un terme), ANNA se connecte à un serveur Minecraft via Mineflayer et comprend des commandes en langage naturel en français. Dis *« obtiens un briquet », et ANNA analyse le verbe (obtien → obtenir), cherche la recette de l'objet, et le décompose récursivement en sous-tâches : miner du chêne → fabriquer des planches → fabriquer des bâtons → fabriquer une table de craft → fabriquer une pioche en bois → miner de la pierre → fabriquer une pioche en pierre → miner du minerai de fer → fondre des lingots de fer → fabriquer le briquet.

ANNA's NLP parser architecture for French command recognition

La couche NLP (utils/id_parser.js) sépare les commandes sur « et » pour gérer les ordres parallèles, associe les verbes français aux types de tâches, et traduit les noms d'objets français en identifiants Minecraft via un dictionnaire de 5 000 entrées. Les commandes non reconnues passent à un système de conversation basé sur GPT qui présente ANNA comme un compagnon Minecraft conscient.

L'arbre de tâches (mc-tasks-tree/) est le cœur : un algorithme récursif qui parcourt le graphe d'objets Minecraft (recettes de craft, rendements miniers, drops de monstres, recettes de four) pour produire un plan pas à pas. Pour un casque en diamant, il génère une décomposition en 40+ étapes couvrant les niveaux bois, pierre, fer et diamant.

ANNA's diamond helmet task tree : a 40+ step breakdown

Là où le bot PvP de la vidéo apprend de l'expérience, ANNA fonctionne à partir de la connaissance. Il n'a pas besoin de 1 000 duels ou 60 heures d'entraînement : il a besoin de l'arbre, de l'analyseur et du serveur/distributeur. Mais il ne peut pas non plus généraliser au-delà de ce que son arbre encode. Aucune quantité d'ingénierie de machine d'états ne lui apprendrait à faire du PvP.

L'approche d'ANNA reflète une époque différente de l'IA : avant que l'apprentissage de bout en bout ne domine, quand la promesse était que le raisonnement symbolique associé à une ingénierie soigneuse pouvait produire un comportement intelligent. Aujourd'hui, des projets comme ANNA et le bot PvP représentent deux pôles de l'IA Minecraft : l'un raisonne sur le monde, l'autre le perçoit.

Master Gumbo's Mace Bot : IA avec seulement des command blocks

The Mace PvP training arena with the bot

Dans un coin complètement différent de l'IA Minecraft, le YouTubeur Master Gumbo a construit un bot d'entraînement PvP en utilisant seulement des command blocks, uniquement avec des commandes Minecraft vanilla, de la redstone, et un carpet mod pour des entités clones de joueur. Le résultat est un adversaire IA pour la masse qui pratique les changements de brèche, les charges de vent et les mécanismes de bouclier avec le joueur.

Le bot commence comme un zombie avec un équipement incassable et un totem dans sa seconde main (rempli à chaque tick via /item replace), le rendant effectivement immortel. Plus tard, Master Gumbo passe aux bots Carpet Mod's player replica, qui supportent des mécaniques humanoïdes (levage de bouclier, changement d'objet) que les zombies ne peuvent pas faire.

The settings center : buttons to configure bot behavior

L'innovation centrale est une machine d'états pilotée par l'aléatoire. Un porte-armure est téléporté au-dessus d'un cercle de blocs de béton coloré via la commande /spreadplayers, qui dispers les entités aléatoirement. La couleur du bloc de béton sur lequel le porte-armure atterrit détermine la prochaine action du bot :

  • Béton rouge → strafe en arrière
  • Béton bleu → s'élève vers le haut (attaque) avec la charge de vent
  • Béton vert → lever le bouclier
  • Béton blanc → pause (ajoute du délai entre les actions)

The AI decision system : an armor stand on colored concrete

La position du porte-armure est lue par des command blocks qui détectant le bloc en dessous et activent le mécanisme correspondant. Un bloc de redstone est placé ou retiré pour activer/désactiver chaque comportement. Parce que /spreadplayers tourne en répétition, le bot prend continuellement de nouvelles décisions, créant un comportement imprévisible mais structuré.

Master Gumbo appelle cela « une forme très simple et basique d'IA » : cela n'apprend pas des interactions comme les réseaux neuronaux, mais l'aleatoire + machine d'états produit un comportement PvP réaliste qui est plus difficile à prédire qu'un bot scripté. Le centre de paramètres inclut une interface livre pour activer/désactiver l'IA, ajuster la difficulté et configurer les motifs de déplacement.

Après leur entraînement avec le bot puis en duel contre le joueur qui l'avait traité de nul (dans l'intro de sa vidéo), Master Gumbo gagne. La carte est partagée via Discord, Carpet Mod requis.

The bot in a duel, practicing mace PvP techniques

Là où le bot PvP (Kadambi) apprend à partir de pixels et ANNA raisonne à travers un arbre de tâches, le bot de Master Gumbo atteint l'intelligence par des transitions d'états aléatoires : une approche pur command block qui prouve que tu n'as pas besoin de réseaux neuronaux pour construire un adversaire PvP convaincant.

Altoclef : Baritone + arbre de tâches à grande échelle

Si ANNA est un bot symbolique qui lit pour savoir quoi faire, et que le Mace Bot randomise les décisions, Altoclef est un agent autonome complet qui planifie son chemin à travers le jeu entier. Construit par gaucho-matero comme un mod Fabric et propulsé par le pathfinding Baritone, Altoclef décompose n'importe quel objectif Minecraft en un arbre de tâches et l'exécute sans intervention humaine.

L'interface est trompeusement simple : tape @gamer dans le chat, et Altoclef commence la tâche « finir le jeu » depuis un monde survival. Il récolte du bois, craft des outils, mine du fer et du diamant, construit un portail du Nether, collecte des bâtons Blaze et des perles de l'Ender, trouve le stronghold, et tue l'Ender Dragon. Le tout en autonomie, via le client Minecraft natif, sur n'importe quel serveur vanilla.

Sous le capot, ceci est réalisé grâce à un système d'arbre de tâches récursif où chaque objectif de haut niveau (par exemple, « craft une pioche en diamant ») est décomposé en tâches prérequises : miner du diamant → le fondre → craft des bâtons → les combiner. L'arbre parcourt le graphe complet des recettes Minecraft, gérant les chaînes de production, les drops de monstres, les tables de butin et l'accès aux conteneurs. Contrairement à l'arbre écrit à la main d'ANNA, les tâches d'Altoclef sont des classes Java programmables qui peuvent implémenter une logique arbitraire : stratégies de combat, troc avec les piglins, motifs d'exploration.

L'idée architecturale clé est la séparation du quoi (l'arbre de tâches) du comment (le pathfinding Baritone). Baritone gère les déplacements de bas niveau : pathfinding, évitement d'obstacles, cassage de blocs, gestion d'inventaire, tandis que le système de tâches orchestre le plan de haut niveau. Cette modularité signifie qu'aucun composant n'a besoin d'être une IA : ce sont tous deux des algorithmes déterministes, mais leur combinaison produit un comportement complexe et orienté vers un but qui rivalise avec les approches par apprentissage.

Altoclef représente la limite de l'IA Minecraft symbolique pure : il peut finir le jeu de zéro sans entraînement, sans GPU, et sans données humaines, mais il ne peut pas s'adapter à des tâches que ses programmeurs n'ont pas anticipées, et il ne peut pas apprendre de l'expérience. Il sait craft une pioche en diamant parce qu'une classe Java lui dit exactement comment, pas parce qu'il l'a découvert tout seul.

Ce qui les relie

Approche Méthode principale Données Calcul Résultat
Bot PvP de la vidéo RL + imitation learning 1 000 duels 1 laptop, 60h Combo de 100 coups
OpenAI Five RL en auto-apprentissage 180 ans de jeu/jour 256 GPUs, 10mo Champion du monde Dota 2
VPT IL semi-supervisé 70K h YouTube + IDM 720 GPUs, 9 jours Outils en diamant
DreamerV3 RL monde model Trajets rêvés 1 GPU, 9 jours Diamant de zéro
ANNA NLP symbolique + arbre de tâches Recettes écrites 1 laptop, instant Tout objet craftable
Altoclef Baritone + task tree FS Java task classes Fabric mod, no GPU Beat the entire game
Mace Bot Machine d'états Command block Décisions aléatoires Vanilla MC, sans GPU Entraînelent PvP mace

Le bot de la vidéo est le plus contraint en ressources mais le plus honnête sur le processus. Il échoue d'abord, puis itère. Il oublie ce qu'il a appris, puis l'apprend à nouveau. Il se termine par un combo de 100 coups : mais aussi par une question sur ce qu'il a construit en triche.


Vidéo : AI Learns Minecraft PvP par Kadambi | AI Engineering

VPT : Article · Blog · GitHub

OpenAI Five : Article · Blog

DreamerV3 : Article · GitHub

ANNA : GitHub · (Node.js, Mineflayer, NLP français, arbre de tâches)

Altoclef : GitHub · Active fork · (Fabric, Baritone, task tree, beats game)

Mace Bot : Vidéo par Master Gumbo · (Command blocks, Carpet Mod, machine d'états)

AI 学 Minecraft PvP,模仿学习、强化学习,以及那 30 个关键变量

录 1000 场决斗,神经网络看像素学,命中率 90%,结果机器人一头撞墙。之后是 RL、课程学习和 60 小时训练。

引言

AI 学 Minecraft PvP 缩略图

有个视频叫 AI Learns Minecraft PvP (Reinforcement Learning + Behavior Cloning)(Kadambi | AI Engineering),是我见过最诚实的游戏 AI 训练记录之一。

目标:做个打 Minecraft PvP 的机器人(剑套,全套附魔钻石甲),看屏幕、发鼠标键盘命令。只吃像素、只吐动作,不读游戏内存,不宏,不 mod。

视频有意思的不是最终结果。是过程:模仿学习翻车,转向特征工程,灾难性遗忘循环,无 GPU 笔记本上 60+ 小时训练。

阶段 1:模仿学习(翻车)

模仿学习中的机器人:面壁反复横跳

作者一开始走正路:录自己 1000 场决斗,每次鼠标点击和按键对上当时画面,训神经网络从像素预测动作。

# 模仿学习流水线伪代码
dataset = record_duels(1000)          # 几十万帧
for frame, action in dataset:
    pixels = capture_screen(frame)
    network.train(pixels → action)    # 从图像预测键鼠

网络把攻击预测到 90% 准确率。有戏。

然后扔进真对局。机器人直奔地图边缘,面壁,反复横跳。

为什么?

偷懒陷阱。 PvP 里 W 键大多时候按着。网络发现一直按 W 别的啥也不干,准确率就很高。它优化了最常见的动作,别的全扔了。

人类延迟。 数据集里的动作带约 200ms 人类反应延迟。逐帧看,因和看得见的果隔好几帧,模型从原始像素根本学不会因果。

演示不一致。 作者自己打法不稳定:同样局面有时键盘走位,有时鼠标瞄准。矛盾输入把网络搞懵了。

阶段 2:强化学习加课程

RL 训练中机器人学水平追踪

扔掉模仿学习转 RL。但把 fresh 智能体直接扔完整 PvP 是浪费:同时发生太多事,随机探索什么都撞不到。

解法:课程学习。每个机制隔离,基础打牢再打真架。

第 1 步:水平瞄准(7 小时)

最简单的奖励函数:打中加分,挨打扣分。

初始机器人几乎不动(神经网络中性初始化)。左右抖:它在试动作看哪个给奖励。

1 小时后学会左右居中,但慢得痛苦。7 小时后能左右跟敌人,虽然不对称(往右比往左好,这个毛病留到训练结束)。

第 2 步:特征工程

原始截图 200 万像素以上。压到 360p 还有 200000 个输入,学不动。

作者分析几千场决斗,挑出真正重要的 30 个变量,三组:

视觉(敌人追踪):

  • 敌人离准星多远
  • 敌人包围盒大小
  • 敌人高度
  • 准星状态(在目标上 / 不在)
  • 相对速度

不处理整图,按敌方护甲颜色过滤像素,检测近乎瞬时。背景同色块会干扰过滤,但在 Minecraft 里直接换材质就行。

OCR(读 HUD): 因为不能从游戏代码拿坐标,实时扫屏幕提取:

  • 相机俯仰
  • 动量
  • Y 层

标准 OCR 读 Minecraft 透明字不行,关键数据强制黑白,瞬时可读。

时间(上下文窗口):

  • 距上次打中敌人多久
  • 距上次被打中多久
  • 机器人之前动作的滑动缓冲

给网络时间上下文:没有它,它不知道自己在连击中还是刚开打。

第 3 步:垂直瞄准(再 7 小时)

RL 训练中机器人学上下瞄准

加上鼠标上下,一开始"彻底灾难"。初始性能全崩。

沙盒里再泡 1 小时,学会抬头低头。但过程中把水平追踪全忘了。

这就是灾难性遗忘:机器学习经典病,为新数据优化把之前学的表示覆盖了。优化垂直瞄准顺手把水平权重冲了,作者得到个能压住准星但跟不住目标的机器人。

又花 6 小时把水平追踪找回来,垂直控制保住。OCR 组给的相机俯仰这时立功,准星保持得不错。

第 4 步:键盘控制

机器人疯狂开关 W 键,学持续走位

给机器人键盘权限后,时间特征更关键。开头 W 键疯狂开关:网络没学会 commit,走一下停一下。

这个行为被罚,机器人学会抹平。开始跳劈命中更多(闷响对站着挥的 swish)。有些连击看着不过瘾,因为机器人在拿攻击距离欺负敌人。

为了公平,作者给敌人加了攻击距离。机器人学的很多套路废了。但慢慢适应了。

第 5 步:教机器人什么时候点

最后一步把模仿学习请回来:只教点鼠标的时机,不教完整控制策略。机器人模仿录像里的点击模式。

开头它吓得不敢点,怕点错被罚。但最后鼓起勇气出手命中。当然,瞄准又忘了,作者让它自己待了 50 小时才回到能看的状态。

作弊 debate

视频结尾问:这机器人算作弊吗?

说不算:机器人只处理人类看到的(同样像素),发同样键鼠(没有反击退这类发包挂),不读游戏内存(无透视无 ESP)。

说算:机器人处理比人快,对手以为在和人打其实不是,这是欺骗。

作者看法:看意图。双方都知道是机器人,对局就公平。机器人把敌人按空地连了 100 连击。

结果

机器人打出 100 连击

无 GPU 笔记本训出的 Minecraft PvP 机器人,自定义训练流水线:

  • 截图做像素输入(200 万像素 → 30 个设计特征)
  • 课程学习(水平 → 垂直 → 键盘 → 点击)
  • RL 管运动控制 + 模仿学习管点击时机
  • 像素上特征工程(三组:视觉、OCR、时间)
  • 60+ 小时训练,分多阶段

总训练时长几十小时,大多是挂着的。机器人抖着学会,忘了学的,重学,最后连出 100 连击,还附赠"我造的是不是挂"的灵魂拷问。

视频在 youtube.com/watch?v=j5nxDKAjg6。


这篇只覆盖视频内容。更大的 Minecraft AI 上下文:VPT、DreamerV3、模仿学习对 RL 的版图,下面几节把这个项目连到更大的领域。

VPT:大规模 behavior cloning

OpenAI VPT 项目图:逆动力学模型从前后帧预测动作

视频里的"behavior cloning"(阶段 1)和 OpenAI **Video PreTraining(VPT)**是同一技术,只是资源谱两端。VPT 证明模仿学习在 Minecraft 里行得通,条件是 7 万小时视频、720 GPU、逆动力学模型给无标签数据打伪标签。这位作者证明拿笔记本加 1000 场决斗行不通,但理由根本一样:模仿学习被演示质量锁死。

OpenAI VPT 智能体在 Minecraft 里砍树

VPT 流水线用 **Inverse Dynamics Model(IDM)**解数据问题,看 t-1 帧和 t+1 帧预测 t 帧的动作。IDM 非因果(能看未来帧),任务比 behavior cloning 简单,要的标签数据少得多。他们花约 2000 美元请标注工标 2000 小时数据,再用 IDM 给 7 万小时 YouTube Minecraft 视频打伪标签。

预训练数据量对合成/采集率(log 轴):工作台、木工具、石工具

scale 效应明显:预训练数据从 1 小时到 10 万小时 log 轴走,合成工作台、木工具、石工具的比率阶梯涨。只用 2000 小时标注工数据的模型卡在工作台,加上 IDM 伪标签的 7 万小时(图里虚线),石工具零样本冒出来,RL 一步没用。

0.5B 参数基础模型零样本能力 RL 单刷做不到:砍树、做工作台、柱跳,RL 微调后成了第一个做出钻石工具的 AI。

RL 训练奖励随 episode:随机初始化起步 vs VPT 预训练起步

这图说明预训练为什么改变下游 RL。随机初始化网络起步的 RL(橙色)近百万 episode 奖励贴零,"拿到钻石"任务奖励太稀疏,随机探索撞不到。VPT 预训练起步微调的 RL(绿色)开局就有基础行为(挖矿、合成、探索),稳步爬到约 25 奖励,对应钻石镐全链路。

OpenAI VPT 项目官方演示视频,智能体实机。

OpenAI Five:奖励塑形问题

OpenAI Five 打 Dota 2 对人类职业

OpenAI Five(2019)用纯 RL 自我对弈赢了 Dota 2 世界冠军,不用模仿学习。256 GPU、128000 CPU 核、每天 180 年对局,训 10 个月。

但奖励函数是 Dota 专家手搓的:20000 个可用特征里挑 28 个,权重手工调。净值、人头、死亡、防御塔血量、分路,全人挑人加权。没这个塑形,智能体几乎不学(实验:只给胜负奖励,卡在半职业水平)。

视频里机器人同病:奖励函数编码作者对 PvP 重要的理解(打中好、被打坏、准星稳好)。绕不开:RL 要奖励信号,塑奖励信号就注入人的偏见。

DreamerV3:世界模型和稀疏奖励

DreamerV3 150+ 多样任务 benchmark,单配置

DeepMind DreamerV3(2023)走第三条路。不 behavior cloning,不加料 RL,它学 world model:神经网络从过去动作预测未来状态和奖励,在梦里规划未来。这是第一个从零无人类数据无课程、在 Minecraft 里拿到钻石的算法,2025 年发 Nature。

DreamerV3 学世界模型想象未来轨迹

钻石环境奖励按 12 个里程碑稀疏给(原木 → 木板 → 木棍 → 工作台 → 木镐 → 石头 → 石镐 → 铁矿 → 熔炉 → 铁锭 → 铁镐 → 钻石),每个 +1 一次。再加小额血量奖励(±0.01 每点血)。一局 36000 步最高 11.1。

DreamerV3 的世界模型让它在内部想象轨迹、评估:actor 从梦里的 rollout 学,不从真实经验学,每步真实动作配几千个想象未来。稀疏奖励这才可行,标准 RL 智能体早死了。

40 个种子训 1 亿环境步,24 个至少拿到一块钻石。第一块钻石出现在 2900 万步后(约单 GPU 9 天)。

ANNA:符号 AI 遇上 Minecraft

ANNA 打火石任务树分解

视频 PvP 机器人、VPT、DreamerV3 之前,还有 ANNA:Minecraft 机器人走完全不同的哲学。不从像素或奖励学,符号状态机加法语 NLP 解析器加手写任务依赖树。

2022 年造的(那时还没"vibe coding"这词),ANNA 经 Mineflayer 连 Minecraft 服务器,懂法语自然语言命令。说"搞个打火石",ANNA 解析动词(搞 → 获取),查物品配方,递归拆子任务:挖橡木 → 做木板 → 做木棍 → 做工作台 → 做木镐 → 挖石头 → 做石镐 → 挖铁矿 → 烧铁锭 → 做打火石。

ANNA 法语命令 NLP 解析器架构

NLP 层(utils/id_parser.js)按"et"切分并行命令,法语动词映射任务类型,法语物品名经 5000 词典映射 Minecraft ID。解析不了的进 GPT 兜底对话,把 ANNA 介绍成有意识的 Minecraft 伙伴。

任务树(mc-tasks-tree/)是心脏:递归算法走 Minecraft 物品图(合成配方、挖掘掉落、怪物掉落、熔炉配方)产出分步计划。钻石头盔能展开 40+ 步,覆盖木、石、铁、钻石全阶段。

ANNA 钻石头盔任务树:40+ 步展开

视频 PvP 机器人从经验学,ANNA 从知识跑。它不需要 1000 场决斗或 60 小时训练,要树、解析器、服务器。树外它也泛化不了。多少状态机工程都教不会它打 PvP。

ANNA 映照 AI 的另一个年代:端到端学习统治之前,承诺是符号推理加细工程产出智能。今天 ANNA 和 PvP 机器人是 Minecraft AI 两极:一个推理世界,一个感知世界。

Master Gumbo 的钉头锤机器人:纯命令方块 AI

钉头锤 PvP 训练场和机器人

Minecraft AI 另一个角落,YouTube 主 Master Gumbo 用纯命令方块做了 PvP 陪练:只用 vanilla 命令、红石、carpet mod 的玩家镜像实体。机器人陪大众练换弹连击、风弹冲刺、盾机制。

机器人开局是穿无敌装备、手持图腾(每 tick 经 /item replace 补满)的僵尸,事实上不死。后升级 Carpet Mod 玩家镜像,支持举盾、切物品这些僵尸做不了的人形机制。

设置中心:配置机器人行为的按钮

核心创新是随机驱动的状态机。盔甲架经 /spreadplayers 命令随机撒到彩色混凝土圈上。落到什么颜色混凝土,触发机器人下个动作:

  • 红色混凝土 → 后撤
  • 蓝色混凝土 → 风弹升空(攻击)上天
  • 绿色混凝土 → 举盾
  • 白色混凝土 → 暂停(动作之间加延迟)

AI 决策系统:彩色混凝土上的盔甲架

盔甲架位置被命令方块读,检测脚下块激活对应机制。红石块放删开关行为。/spreadplayers 一直跑,机器人持续做新决策,行为不可预测但有结构。

Master Gumbo 管这叫"非常简单基础的 AI 形态":不像神经网络从交互学,但随机加状态机产出的 PvP 行为比脚本机器人难预测多了。设置中心有书本界面开关 AI、调难度、配移动模式。

拿它练完再和开场嘲讽他的玩家决斗,Master Gumbo 赢了。地图走 Discord 分享,要 Carpet Mod。

决斗中的机器人,练钉头锤 PvP 技术

PvP 机器人(Kadambi)从像素学,ANNA 沿任务树推理,Master Gumbo 的机器人靠随机状态转移拿到智能:纯命令方块打法,证明不用神经网络也能做出像样的 PvP 对手。

Altoclef:Baritone 加大规模任务树

ANNA 是读会做事的符号机器人,钉头锤机器人随机决策,Altoclef 是规划通关的完整自主智能体。gaucho-matero 做的 Fabric mod,路径靠 Baritone,任何 Minecraft 目标拆成任务树无人干预执行。

界面简单到离谱:聊天框敲 @gamer,Altoclef 从生存开局"通关游戏"。砍树、做工具、挖铁挖钻、建下界门、收烈焰棒和末影珍珠、找要塞、杀末影龙。全自动,走原生 Minecraft 客户端,任意 vanilla 服务器。

底层是递归任务树系统,高级目标(比如"做钻石镐")拆成前置任务:挖钻 → 烧 → 做木棍 → 合。树走 Minecraft 全配方图,管生产线、怪物掉落、战利品表、容器访问。ANNA 的树手写,Altoclef 的任务是可编程 Java 类,能实现任意逻辑:战斗策略、猪灵交易、探索模式。

关键架构思路是 what(任务树)和 how(Baritone 寻路)分离。Baritone 管底层移动:寻路、避障、破方块、管背包,任务系统管高级计划。两边都是确定性算法都不算 AI,但合起来产出复杂目标导向行为,不输学习派。

Altoclef 是纯符号 Minecraft AI 的极限:零训练、零 GPU、零人类数据通关,不用程序员预见的任务就不会,会做钻石镐因为 Java 类逐行告诉它,不是因为它自己悟出来的。

把它们连起来

方法 主要手段 数据 算力 结果
视频 PvP 机器人 RL + 模仿学习 1000 场决斗 1 台笔记本,60 小时 100 连击
OpenAI Five RL 自我对弈 每天 180 年对局 256 GPU,10 个月 Dota 2 世界冠军
VPT 半监督 IL 7 万小时 YouTube + IDM 720 GPU,9 天 钻石工具
DreamerV3 世界模型 RL 梦里轨迹 1 GPU,9 天 从零拿钻石
ANNA 符号 NLP + 任务树 手写配方 1 台笔记本,即时 任意可合成物品
Altoclef Baritone + FS 任务树 Java 任务类 Fabric mod,无 GPU 通关整个游戏
钉头锤机器人 命令方块状态机 随机决策 Vanilla MC,无 GPU 钉头锤 PvP 陪练

视频机器人资源最紧,但过程最诚实。先翻车,再迭代。忘了学的,重学。结尾打出 100 连击,还问自己造的是不是挂。


视频:AI Learns Minecraft PvP Kadambi | AI Engineering

VPT:论文 · 博客 · GitHub

OpenAI Five:论文 · 博客

DreamerV3:论文 · GitHub

ANNA:GitHub ·(Node.js、Mineflayer、法语 NLP、任务树)

Altoclef:GitHub · 活跃 fork ·(Fabric、Baritone、任务树、能通关)

钉头锤机器人:视频 Master Gumbo ·(命令方块、Carpet Mod、状态机)

AIがMinecraftのPvPを学ぶ:模倣学習、強化学習、そして重要だった30の変数

記録した決闘1,000戦、ピクセルで訓練したニューラルネット、90%の打撃予測精度。それでもボットは壁にまっすぐ突っ込んだ。その後RL、カリキュラム学習、60時間の訓練がやってきた。

はじめに

AI Learns Minecraft PvP thumbnail

Kadambi | AI EngineeringによるAI Learns Minecraft PvP (Reinforcement Learning + Behavior Cloning)という動画がある。私が見たゲームAI訓練の記録の中で最も正直なものの1つだ。

内容は、MinecraftのPvP(剣キット、フルエンチャントのダイヤ装備)をプレイするボットを作ることだ。画面を見てマウスとキーボードにコマンドを送る。入力はピクセルのみ、出力はアクションのみで、ゲームのメモリ読み取りもマクロもmodも使わない。

この動画が面白いのは最終結果ではない。その道のりだ。模倣学習の失敗、特徴量エンジニアリングへの転換、壊滅的忘却のサイクル、そしてGPUなしノートPCでの60時間超の訓練。

フェーズ1:模倣学習(失敗)

The bot during imitation learning: facing a wall, jumping up and down

作者は筋の通った方法から始めた。自分のプレイで決闘を1,000戦記録し、各マウスクリックとキー押下を対応する画像に紐付け、ピクセルからアクションを予測するニューラルネットを訓練する。

# 模倣学習パイプラインの疑似コード
dataset = record_duels(1000)          # 数十万フレーム
for frame, action in dataset:
    pixels = capture_screen(frame)
    network.train(pixels → action)    # 画像からキーボードやマウスを予測

ネットワークは打撃を90%の精度で予測できるようになった。有望だ。

そして本物の試合で試した。ボットはマップの端へまっすぐ進み、壁に向き合って、その場でジャンプを繰り返した。

なぜか。

怠け者の罠。 PvP戦闘ではWキーがほとんどの時間押されている。ネットワークは、ただWを押しっぱなしにして他に何もしなければ高い精度が出せることに気づいた。他の全アクションを犠牲にして、最頻出アクションに最適化してしまった。

人間の遅延。 データセット内のアクションは約200msの人間の反応時間分遅れている。1フレームごとに見ると、アクションと目に見える結果が数フレーム離れている場合、生ピクセルから因果関係を学ぶのはモデルにとってほぼ不可能だ。

一貫性のないデモ。 作者自身のプレイにばらつきがあった。同じ状況でも、ときどきキーボードでストレイフし、ときどきマウスで狙う。こうした矛盾する入力がネットワークを混乱させた。

フェーズ2:カリキュラム付き強化学習

The bot learning to track horizontally during RL training

模倣学習を捨てて、作者はRLに切り替えた。でも真っさらなエージェントをいきなり完全なPvP決闘に放り込んでも無駄だ。同時に起きることが多すぎて、ランダムな探索では何も見つけられない。

解決策はカリキュラム学習だ。各メカニクスを切り離し、本物の戦闘に入る前に基礎を1つずつ習得させる。

ステップ1:水平方向の照準(7時間)

最も単純な報酬関数だ。標的に当てたら正の報酬、ダメージを受けたら負のペナルティ。

最初、ボットはほとんど動かない(初期値が中立なニューラルネット)。横に震える。これはボットが、どのアクションが報酬を生むかいろんな動きを試している状態だ。

1時間後、水平方向に中央へ寄せることを学ぶが、まだぎこちない。7時間後、敵を左右に追えるようになった。ただし非対称で(右から左への移動より左から右の方が得意。この癖は訓練全体を通して残った)。

ステップ2:特徴量エンジニアリング

生スクリーンショットは200万ピクセル超だった。360pに縮小しても入力が20万ある。多すぎて効率的に学べない。

作者は何千もの決闘を分析し、本当に重要な30の変数を特定した。3グループに分かれる。

視覚(敵追跡):

  • 照準(クロスヘア)から敵までの距離
  • 敵のバウンディングボックスのサイズ
  • 敵の高さ
  • 照準の状態(標的の上か外か)
  • 相対速度

画像全体を処理する代わり、ボットは敵の防具の色だけでピクセルをフィルタするので検出はほぼ一瞬だ。似た色の背景ブロックがこのフィルタを乱すこともある。でもMinecraftならテクスチャを変えればいいだけだ。

OCR(HUD読み取り): ゲームのコードから座標を取れないので、画面をリアルタイムでスキャンして抽出する。

  • カメラのピッチ
  • 運動量
  • Yレベル

標準のOCRはMinecraftの半透明テキストに苦労するので、重要なデータは白黒に強制して即読めるようにしている。

時間(コンテキストウィンドウ):

  • 敵に当ててからの経過時間
  • 敵に当てられてからの経過時間
  • ボットの直前アクションのスライディングバッファ

これでネットワークに時間的コンテキストができる。これがないと、コンボの途中なのか戦闘開始直後なのかボットにはまったく分からない。

ステップ3:垂直方向の照準(さらに7時間)

The bot learning to aim up and down during RL training

マウスの上下移動を加えたら最初は「完全な大惨事」だった。初期性能はめちゃくちゃだ。

サンドボックスでさらに1時間後、ボットは上下を見る方法を理解した。でもその過程で水平方向の追跡をすっかり忘れていた。

これは壊滅的忘却だ。新しいデータへの最適化が以前学習した表現を上書きしてしまう、機械学習の古典的な問題である。垂直照準の最適化で、ニューラルネットは水平方向の進歩をうっかり消してしまった。結果、照準は水平に保てるが標的を追えないボットが残った。

水平追跡を取り戻しつつ垂直制御を維持するのにさらに6時間かかった。その後はOCRグループがカメラのピッチを抽出してくれるおかげで、良い照準位置を維持できた。

ステップ4:キーボード操作

The bot toggling the W key constantly, learning to commit to movement

ボットにキーボード使用を許可したら、時間的特徴量がさらに重要になった。最初、Wキーは常に入り切りを繰り返していた。ネットワークが動きへのコミットを学んでいないための速い切り替えだ。

この挙動にペナルティを与えたので、ボットは滑らかにすることを学んだ。スプリント中の打撃が増え始めた(立ったままの打撃のヒュッという音に対するドスッという音)。射程の優位を悪用しているように見えるコンボもあり、満足感に欠けた。

公平にするため、作者は敵の射程を伸ばした。ボットが学んだ戦略の多くが通用しなくなった。でも時間をかけて適応した。

ステップ5:クリックのタイミングを教える

最終フェーズでは作者は模倣学習を持ち戻した。ただし完全な制御ポリシーではなく、クリックのタイミングだけを教えるためだ。ボットは記録済み決闘のクリックパターンを真似しようとした。

最初は、下手なクリックへのペナルティを恐れて何も試そうとしなかった。でも最終的に打つ勇気を見つけて命中させ始めた。もちろんその過程でまた照準を忘れた。作者は満足できる状態に戻るまでさらに50時間放置しなければならなかった。

チート論争

動画はこう問いかけて終わる。このボットはチートなのか。

反対派の主張:ボットが処理するのは人間が見ているものだけ(同じピクセル)、送るのは人間と同じキーボードやマウス入力(アンチノックバックのようなパケット操作なし)、ゲームのメモリを読まない(X線もESPもなし)。

賛成派の主張:ボットは人間より速く処理できるし、相手が人間と対戦していると思っているのに実際は違うなら、それは欺瞞だ。

作者の見解:意図による。両者がボットだと知っていれば試合は公平だ。ボットは敵を虚空に100連撃でつなぐ。

結果

The bot executing a 100-hit combo

GPUなしノートPCで訓練したMinecraft PvPボット。自作の訓練パイプラインによる。

  • ピクセル入力用のスクリーンキャプチャ(200万超ピクセルから設計した30特徴量へ)
  • カリキュラム学習(水平から垂直からキーボードからクリックへ)
  • 運動制御用RLとクリックタイミング用模倣学習
  • 生ピクセルへの特徴量エンジニアリング(視覚、OCR、時間の3グループ)
  • 複数フェーズで60時間超の訓練

総訓練時間は数十時間だが、大半は放置だ。ボットは震えながら理解し、学んだことを忘れ、学び直し、最後に100連撃を決める。

動画はこちら。youtube.com/watch?v=j5nxDKAjg6U。


この記事は動画の内容のみを扱う。Minecraft AIのより広い文脈として、VPT、DreamerV3、模倣学習とRLの全体像については、以下のセクションでこのプロジェクトを分野全体につなげている。

VPT:大規模な行動クローニング

OpenAI's VPT project diagram : the Inverse Dynamics Model predicts actions from pairs of frames

動画の「行動クローニング」手法(フェーズ1)は、OpenAIの**Video PreTraining(VPT)**プロジェクトが使ったのと同じ技術だが、リソースの spectrum の両極端にある。VPTは、7万時間の動画、720 GPU、ラベルなしデータを疑似ラベル付けする逆動力学モデルがあれば模倣学習がMinecraftで機能することを証明した。ここの作者はノートPCと決闘1,000戦では失敗することを証明した。でも根本理由は同じだ。模倣学習はデモの質に縛られる。

OpenAI's VPT agent mining a tree in Minecraft

VPTパイプラインはデータ問題を**逆動力学モデル(IDM)**の訓練で解決する。画像t-1と画像t+1を見て画像tでのアクションを予測する。IDMは非因果的(未来の画像を見る)なので、行動クローニングよりタスクが簡単で、必要なラベル付きデータがずっと少ない。契約者に約2,000ドル払って2,000時間のラベル付きデータを集め、IDMでYouTubeのMinecraft動画7万時間を疑似ラベル付けした。

事前訓練データ量に対するクラフトや収集率(対数軸):作業台、木の道具、石の道具

スケール効果は明確だ。事前訓練データを対数軸で1時間から10万時間まで増やすと、作業台、木の道具、石の道具を作る率が段階的に上がる。契約者がラベル付けした2,000時間だけで訓練したモデルは作業台止まりだ。IDMで疑似ラベル付けした7万時間を追加してこそ(グラフの点線)、石の道具がRLなしのゼロショットで出現する。

結果の0.5Bパラメータ基盤モデルは、RL単独では不可能なゼロショット能力に到達した。木を切り、作業台を作り、柱ジャンプする。そしてRLでファインチューンすると、ダイヤの道具を作る初のAIになった。

RL訓練エピソード数に対する報酬:ランダム初期化モデルからとVPT事前訓練モデルから

このグラフは、事前訓練が下流RLを根本から変える理由を示している。ランダム初期化ネットワークからのRL(オレンジ)は100万近いエピソードを通して0付近で横ばいだ。「ダイヤを取る」タスクは報酬が疎すぎて、素朴なエージェントがランダム探索でたどり着けない。VPT事前訓練モデルからのRLファインチューン(緑)は基礎行動(掘る、作る、探索する)をすでに持ち、ダイヤのつるはしへの完全な道筋に相当する報酬約25まで着実に上がる。

OpenAIのVPTプロジェクト公式デモ動画。エージェントの動きが見られる。

OpenAI Five:報酬設計の問題

OpenAI Five playing Dota 2 against human professionals

OpenAI Five(2019年)は自己対戦の純粋RLでDota 2の世界王者を破った。模倣学習なしだ。256 GPU、128,000 CPUコア、1日あたり180年分のプレイ、10か月の訓練。

でも報酬関数はDotaの専門家が手で設計した。2万のうち28特徴量で、それぞれ重みを手動調整した。正味価値、キル、デス、タワーのHP、レーン割り当て。すべて人間が選んで重み付けした。このモデリングなしではエージェントはほとんど学ばなかった(実験では勝敗のみの報酬だとセミプロ水準で頭打ち)。

動画のボットも同じ問題に直面している。その報酬関数は、何がPvPで重要かという作者の理解をエンコードしている(当てれば良い、当てられれば悪い、照準維持は良い)。これは避けられない。RLには報酬信号が必要で、その信号の設計には人間のバイアスが入り込む。

DreamerV3:ワールドモデルと疎な報酬

DreamerV3 benchmark scores across over 150 diverse tasks with a single configuration

DeepMindのDreamerV3(2023年)は第三の道を取る。行動クローニングでも誘因付きRLでもなく、ワールドモデルを学ぶ。過去のアクションから未来の状態と報酬を予測するニューラルネットで、可能な未来を夢想して計画する。人間データもカリキュラムもなしにゼロからMinecraftでダイヤを集めた初のアルゴリズムで、2025年にNatureに掲載された。

DreamerV3 learns a world model to imagine future trajectories

ダイヤ環境は12のマイルストーンに疎な報酬を定義する(原木から板材から棒から作業台から木のつるはしから石から石のつるはしから鉄鉱石からかまどから鉄インゴットから鉄のつるはしからダイヤへ)。各1回だけ+1だ。あとは小さな体力報酬(HPあたりプラス・マイナス0.01)。到達可能な合計は36,000ステップのエピソードで11.1だ。

DreamerV3のワールドモデルは軌跡を想像して内部で評価できる。アクターは実経験ではなく夢想ロールアウトから学び、1つの実ステップごとに何千もの可能な未来を試す。これで、標準RLエージェントなら破綻する疎報酬が扱えるようになる。

100M環境ステップで訓練した40シードのうち、24が少なくとも1つのダイヤを集めた。最初のダイヤは29Mステップ後(1 GPUで約9日)に現れた。

ANNA:記号AIとMinecraftの出会い

ANNA's task tree decomposition for a flint-and-steel

動画のPvPボットより前、VPTやDreamerV3より前に、ANNAがいた。まったく違う哲学で作られたMinecraftボットだ。ピクセルや報酬から学ぶ代わり、記号的状态機械にフランス語NLPパーサーと手書きのタスク依存ツリーを組み合わせている。

2022年製(「vibe coding」がまだ言葉になる前)のANNAは、Mineflayer経由でMinecraftサーバーに接続し、フランス語の自然言語コマンドを理解する。「火打石と打ち金を取って」と言うと、ANNAは動詞を解析し(取ってから取るへ)、アイテムのレシピを探して、再帰的にサブタスクへ分解する。オークを掘るから板材を作るから棒を作るから作業台を作るから木のつるはしを作るから石を掘るから石のつるはしを作るから鉄鉱石を掘るから鉄インゴットを溶かすから火打石と打ち金を作る、まで。

ANNA's NLP parser architecture for French command recognition

NLP層(utils/id_parser.js)はコマンドを「そして」で分割して並列命令を処理し、フランス語動詞をタスク種別に対応付け、フランス語のアイテム名を5,000エントリの辞書経由でMinecraft IDに翻訳する。認識できないコマンドは、ANNAを自覚あるMinecraftコンパニオンとして提示するGPTベースの会話システムに回す。

タスクツリー(mc-tasks-tree/)が心臓部だ。Minecraftのアイテムグラフ(クラフトレシピ、採掘収量、モンスタードロップ、かまどレシピ)をたどって段階的プランを作る再帰アルゴリズムである。ダイヤのヘルメットなら木、石、鉄、ダイヤの各段階をカバーする40ステップ超の分解を生成する。

ANNA's diamond helmet task tree : a 40+ step breakdown

動画のPvPボットが経験から学ぶのに対し、ANNAは知識から動く。決闘1,000戦も60時間の訓練もいらない。ツリーとパーサーとサーバーやディストリビューターがあればいい。でもツリーがエンコードした範囲を超えて一般化はできない。どれだけ状態機械を工夫してもPvPは学べない。

ANNAの手法はAIの別の時代を映している。エンドツーエンド学習が主流になる前、丁寧なエンジニアリングと組み合わせた記号推論が知的行動を生めるという約束があった時代だ。今ではANNAとPvPボットのようなプロジェクトはMinecraft AIの両極を表す。一方は世界について推論し、もう一方は世界を知覚する。

Master Gumboのメイスボット:コマンドブロックだけのAI

The Mace PvP training arena with the bot

Minecraft AIのまったく別の片隅では、YouTuberのMaster GumboがコマンドブロックだけでPvP訓練ボットを作った。バニラのMinecraftコマンドとレッドストーン、そして人型クローンエンティティ用のcarpet modだけだ。結果は一般向けの対戦相手AIで、ブリーチ切り替え、ウィンドチャージ、盾メカニクスをプレイヤーと一緒に練習する。

ボットは壊れない装備とオフハンドのトーテム(/item replaceで毎tick補充)を持つゾンビとして始まり、事実上不死身だ。後にMaster GumboはCarpet Modのプレイヤーレプリカに切り替えた。ゾンビにはできない人型メカニクス(盾上げ、アイテム切り替え)に対応するためだ。

The settings center : buttons to configure bot behavior

中心的な革新はランダム駆動の状態機械だ。防具立てが色付きコンクリートの円の上に/spreadplayersコマンドでテレポートする。このコマンドはエンティティをランダムに散らす。防具立てが着地したコンクリートの色がボットの次の行動を決める。

  • 赤コンクリートは後ろにストレイフ
  • 青コンクリートはウィンドチャージで上昇(攻撃)
  • 緑コンクリートは盾を上げる
  • 白コンクリートは停止(行動間に遅延を加える)

The AI decision system : an armor stand on colored concrete

防具立ての位置は、下のブロックを検出するコマンドブロックが読み取り、対応する仕掛けを作動させる。レッドストーンブロックを置くか取り除くかで各挙動を有効化・無効化する。/spreadplayersが繰り返し回るので、ボットは継続的に新しい決定を下し、予測不能だが構造化された挙動を生む。

Master Gumboはこれを「とても単純で基本的な形のAI」と呼ぶ。ニューラルネットのような相互作用からの学習はないが、ランダムと状態機械の組み合わせが、スクリプトボットより予測困難な現実的なPvP挙動を生む。設定センターにはAIの有効化・無効化、難易度調整、移動パターン設定のための本インターフェースが含まれる。

ボットで訓練した後、自分を下手呼ばわりしたプレイヤーと決闘して(動画イントロ)、Master Gumboが勝つ。マップはDiscord経由で共有され、Carpet Modが必要だ。

The bot in a duel, practicing mace PvP techniques

KadambiのPvPボットがピクセルから学び、ANNAがタスクツリーで推論するのに対し、Master Gumboのボットはランダムな状態遷移で知能に到達する。ニューラルネットなしで説得力あるPvP対戦相手を作れることを証明する、純コマンドブロックの手法だ。

Altoclef:Baritoneと大規模タスクツリー

ANNAが何をすべきか読んで知る記号ボットで、メイスボットが決定をランダム化するなら、Altoclefはゲーム全体を計画的に進める完全自律エージェントだ。gaucho-matero作のFabric modで、Baritoneパスファインディングを動力とする。どんなMinecraft目標もタスクツリーに分解して人間の介入なしに実行する。

インターフェースは騙されるほど単純だ。チャットで@gamerと打てば、Altoclefはサバイバルワールドから「ゲームをクリアする」タスクを始める。木を集め、道具を作り、鉄とダイヤを掘り、ネザーポータルを作り、ブレイズロッドとエンダーパールを集め、要塞を見つけてエンダードラゴンを倒す。全部自律で、ネイティブのMinecraftクライアント経由で、どんなバニラサーバーでもだ。

内部では再帰的タスクツリーシステムで実現している。高水準目標(たとえば「ダイヤのつるはしを作る」)は前提タスクへ分解される。ダイヤを掘るから溶かすから棒を作るから組み合わせる、まで。ツリーはMinecraftの全レシピグラフをたどり、生産チェーン、モンスタードロップ、ルートテーブル、コンテナアクセスを処理する。ANNAの手書きツリーと違い、Altoclefのタスクは任意のロジックを実装できるプログラマブルなJavaクラスだ。戦闘戦略、ピグリン交易、探索パターンなどである。

鍵となる設計思想は、何を(タスクツリー)とどう(Baritoneパスファインディング)の分離だ。Baritoneが低水準の移動を担う。パスファインディング、障害物回避、ブロック破壊、インベントリ管理で、タスクシステムが高水準プランを指揮する。このモジュール性のおかげで、どちらの部品もAIである必要がない。どちらも決定論的アルゴリズムだが、組み合わせると学習手法に匹敵する複雑で目的志向の挙動が生まれる。

Altoclefは純粋記号Minecraft AIの到達点だ。訓練なし、GPUなし、人間データなしでゼロからゲームをクリアできる。でもプログラマーが想定しなかったタスクには適応できず、経験から学べない。ダイヤのつるはしを作れるのは、自分で発見したからではなく、Javaクラスが正確な方法を教えているからだ。

つなげるもの

手法 主な方法 データ 計算資源 結果
動画のPvPボット RL + 模倣学習 決闘1,000戦 ノートPC1台、60時間 100連撃
OpenAI Five 自己対戦RL 1日180年分のプレイ 256 GPU、10か月 Dota 2世界王者
VPT 半教師ありIL YouTube 7万時間 + IDM 720 GPU、9日 ダイヤ道具
DreamerV3 ワールドモデルRL 夢想軌跡 1 GPU、9日 ゼロからダイヤ
ANNA 記号NLP + タスクツリー 手書きレシピ ノートPC1台、即時 全クラフト可能品
Altoclef Baritone + タスクツリーFS Javaタスククラス Fabric mod、GPUなし ゲーム全体クリア
メイスボット コマンドブロック状態機械 ランダム決定 バニラMC、GPUなし メイスPvP訓練

動画のボットは最もリソースが制約されているが、プロセスに最も正直だ。まず失敗し、反復する。学んだことを忘れ、学び直す。100連撃で終わる。でも作ったものがチートなのかという問いも残す。


動画:Kadambi | AI EngineeringによるAI Learns Minecraft PvP

VPT:論文・ブログ・GitHub

OpenAI Five:論文・ブログ

DreamerV3:論文・GitHub

ANNA:GitHub・(Node.js、Mineflayer、フランス語NLP、タスクツリー)

Altoclef:GitHub・アクティブなフォーク・(Fabric、Baritone、タスクツリー、ゲームクリア)

メイスボット:Master Gumboによる動画・(コマンドブロック、Carpet Mod、状態機械)

AI가 Minecraft PvP를 배우다. 모방 학습과 강화 학습, 그리고 중요했던 30개 변수

녹화한 결투 1,000회, 픽셀로 훈련한 신경망, 90퍼센트 타격 정확도. 그런데 봇은 벽을 향해 돌진했어요. 그 뒤 RL과 커리큘럼 학습, 60시간 훈련이 왔어요.

소개

AI Learns Minecraft PvP 썸네일

Kadambi | AI Engineering의 AI Learns Minecraft PvP (Reinforcement Learning + Behavior Cloning)이라는 영상이 있어요. 제가 본 게임 AI 훈련 이야기 중 가장 솔직한 것 중 하나예요.

원리는요. 화면을 보고 마우스와 키보드 명령을 보내는 Minecraft PvP(검 키트, 완전히 마법 부여된 다이아몬드 갑옷) 봇 만들기. 픽셀 입력과 행동 출력만 쓰고, 게임 메모리를 읽지 않고, 매크로 없이, 모드 없이 동작해요.

이 영상이 흥미로운 것은 최종 결과가 아니에요. 과정이에요. 모방 학습의 실패, 특징 공학으로의 전환, 파국적 망각 사이클, GPU 없는 노트북에서의 60시간 이상 훈련.

1단계: 모방 학습 (실패)

모방 학습 중 봇: 벽을 보고 위아래로 점프해요

제작자는 합리적인 접근으로 시작했어요. 자기 플레이 결투 1,000회를 녹화하고, 각 마우스 클릭과 키 누름을 해당 이미지와 연결하고, 픽셀에서 행동을 예측하도록 신경망을 훈련시켰어요.

# 모방 학습 파이프라인 의사코드
dataset = record_duels(1000)          # 수십만 프레임
for frame, action in dataset:
    pixels = capture_screen(frame)
    network.train(pixels → action)    # 이미지에서 키보드와 마우스 예측

네트워크는 타격을 90퍼센트 정확도로 예측하는 법을 배웠어요. 희망적이에요.

그리고 진짜 경기에서 테스트했어요. 봇은 곧장 맵 가장자리로 가서 벽을 보고 위아래로 점프했어요.

왜요?

게으름의 함정. PvP 전투에서는 W 키가 대부분 눌려 있어요. 네트워크는 그냥 W를 누르고 아무것도 안 하면 높은 정확도에 이를 수 있음을 깨달았어요. 다른 모든 것을 희생하고 가장 잦은 행동을 최적화했어요.

인간 지연. 자료의 행동은 인간 반응 시간 때문에 약 200ms 늦어져 있어요. 프레임별로 보면 행동과 눈에 보이는 결과가 여러 이미지로 떨어져 있을 때 날것 픽셀에서 원인과 결과를 배우기가 모델에게 거의 불가능해요.

일관 없는 시연. 제작자 자신의 플레이가 달랐어요. 같은 상황에서 가끔 키보드로 스트레이프하고 가끔 마우스로 조준했어요. 이 모순 입력이 네트워크를 어지럽혔어요.

2단계: 커리큘럼 강화 학습

RL 훈련 중 수평 추적을 배우는 봇

모방 학습을 버리고 제작자는 RL로 바꿨어요. 하지만 새로 태어난 에이전트를 완전한 PvP 결투에 던지는 것은 소용없어요. 무작위 탐색이 뭔가를 찾기에는 한 번에 너무 많은 일이 일어나요.

해결책: 커리큘럼 학습. 각 구조를 분리하고 진짜 전투에 들어가기 전에 봇이 기초를 익히게 해요.

1단계: 수평 조준 (7시간)

가장 단순한 보상 함수예요. 목표를 맞히면 양의 보상, 피해를 입으면 음의 벌점.

처음에는 봇이 거의 움직이지 않아요 (중립 값으로 초기화된 신경망). 옆으로 떨려요. 봇이 어떤 행동이 보상을 주는지 보려고 여러 행동을 테스트하는 거예요.

한 시간 뒤, 수평으로 중심을 맞추는 법을 배우지만 고통스러울 정도로 느려요. 7시간 뒤, 좌우로 적을 따라갈 수 있어요. 비대칭적이긴 하지만요 (좌에서 우로 움직일 때보다 우에서 좌로 움직일 때가 나아요. 훈련 내내 남은 행동이에요).

2단계: 특징 공학

날것 스크린샷은 200만 픽셀을 넘었어요. 360p로 줄여도 입력 20만 개예요. 효과적 학습에는 너무 많아요.

제작자는 수천 회 결투를 분석하고 정말 중요한 30개 변수를 찾아냈어요. 세 그룹으로요.

시각 (적 추적):

  • 조준선(crosshair)에서 적까지의 거리
  • 적의 경계 상자 크기
  • 적의 높이
  • 조준선 상태 (목표 위와 밖)
  • 상대 속도

전체 이미지를 처리하는 대신 봇은 적 갑옷 색으로만 픽셀을 엄격히 걸러서 감지가 거의 바로 일어나요. 비슷한 색 배경 블록이 이 필터를 어지럽힐 수 있어요. 하지만 Minecraft에서는 텍스처를 바꾸면 돼요.

OCR (HUD 읽기): 봇이 게임 코드에서 좌표를 가져올 수 없으니 화면을 실시간으로 스캔해서 뽑아내요.

  • 카메라 피치
  • 모멘텀
  • Y 레벨

표준 OCR이 Minecraft 투명 텍스트에 애를 먹으니 핵심 자료는 바로 읽히도록 흑백으로 강제해요.

시간 (맥락 창):

  • 적을 맞힌 뒤 지난 시간
  • 적이 나를 맞힌 뒤 지난 시간
  • 봇의 앞선 행동 슬라이딩 버퍼

이렇게 하면 네트워크에 시간 맥락이 생겨요. 이것이 없으면 봇은 콤보 중간인지 전투 시작인지 전혀 몰라요.

3단계: 수직 조준 (7시간 더)

RL 훈련 중 위아래 조준을 배우는 봇

마우스 수직 움직임을 더하는 것은 처음에 "완전 재앙"이었어요. 초기 성능이 깨졌어요.

샌드박스에서 한 시간 더 지나 봇은 위아래 보는 법을 알았어요. 하지만 그 과정에서 수평 따라가기를 완전히 잊었어요.

이것이 파국적 망각이에요. 새 자료에 최적화하면서 앞서 배운 표현을 덮어쓰는 고전적 머신러닝 문제예요. 수직 조준을 최적화하면서 신경망이 실수로 수평 진전을 덮어써서, 제작자에게 조준선을 수평으로 유지하지만 목표를 따라가지 못하는 봇이 남았어요.

수직 조종을 유지하면서 수평 따라가기를 되찾는 데 6시간 더가 필요했어요. 그러자 봇은 카메라 피치를 뽑는 OCR 그룹 덕분에 조준선 배치를 잘 유지했어요.

4단계: 키보드 조종

W 키를 계속 켰다 껐다 하면서 움직임 확정을 배우는 봇

봇에게 키보드를 쓸 허락을 주자 시간 특징이 훨씬 중요해졌어요. 처음에는 W 키가 계속 켜졌다 꺼졌어요. 네트워크가 확정하는 법을 배우지 못해서 빠른 바꿈이었어요.

이 행동에 벌점을 주자 봇이 매끄럽게 하는 법을 배웠어요. 스프린트 중에 타격을 더 많이 맞히기 시작했어요 (서 있을 때의 휙 소리와 대비되는 쿵 소리). 적에 대한 사거리 이점을 봇이 악용해서 일부 콤보가 불만족스러워 보였어요.

공평하게 하려고 제작자가 적 사거리를 늘렸어요. 봇이 배운 전략 상당수가 동작하지 않게 됐어요. 하지만 시간이 지나 적응했어요.

5단계: 봇에게 클릭 타이밍 가르치기

최종 단계에 제작자는 모방 학습을 다시 가져왔어요. 하지만 완전한 조종 정책이 아니라 클릭 타이밍만 가르치려고요. 봇은 녹화된 결투의 클릭 패턴을 흉내 내려 했어요.

처음에는 나쁜 클릭 벌점이 두려워 뭔가를 시도하기 너무 무서워했어요. 하지만 결국 때릴 용기를 내고 타격을 맞히기 시작했어요. 물론 그 과정에서 조준하는 법을 또 잊었어요. 제작자는 만족스러운 상태로 돌아오려고 50시간 더 그냥 두어야 했어요.

부정행위 논쟁

영상은 이렇게 물으며 끝나요. 이 봇이 부정행위를 하나요?

반대 논거: 봇은 사람이 보는 것(같은 픽셀)만 처리하고, 사람과 같은 키보드와 마우스 입력(안티넉백 같은 패킷 조작 없이)을 보내고, 게임 메모리를 읽지 않아요 (엑스레이나 ESP 없이).

찬성 논거: 봇은 사람보다 빨리 처리할 수 있고, 상대가 사람과 둔다고 생각하는데 그렇지 않다면 속임이에요.

제작자 의견: 의도에 달려 있어요. 양쪽이 봇인 것을 알면 경기는 공평해요. 봇은 100연타 연속기로 적을 허공에 묶어 둬요.

결과

100연타 콤보를 실행하는 봇

GPU 없는 노트북에서 훈련된 Minecraft PvP 봇이고, 맞춤형 훈련 파이프라인 위에 지어졌어요.

  • 픽셀 입력을 위한 스크린샷 (200만 픽셀 이상에서 30개 설계 특징으로)
  • 커리큘럼 학습 (수평에서 수직, 키보드, 클릭으로)
  • 조종 운동은 RL + 클릭 타이밍은 모방 학습
  • 날것 픽셀의 특징 공학 (3개 그룹: 시각, OCR, 시간)
  • 여러 단계에 걸친 60시간 이상 훈련

총 훈련 시간은 수십 시간이지만 대부분 수동적이에요. 봇은 이해될 때까지 떨고, 배운 것을 잊고, 다시 배우고, 결국 100연타 연속기를 이어요.

영상은 youtube.com/watch?v=j5nxDKAjg6U에 있어요.


이 글은 영상의 내용만 다뤄요. Minecraft AI의 더 넓은 맥락(VPT, DreamerV3, 모방 학습 대 RL 지형)은 아래 섹션에서 이 프로젝트를 더 넓은 분야와 이어요.

VPT: 대규모 행동 복제

OpenAI VPT 프로젝트 도식: Inverse Dynamics Model이 프레임 쌍에서 행동을 예측해요

영상의 "행동 복제" 접근(1단계)은 OpenAI가 Video PreTraining (VPT) 프로젝트에서 쓴 것과 같은 기법이에요. 다만 자원 스펙트럼의 정반대 끝이에요. VPT는 영상 7만 시간과 GPU 720개, 라벨 없는 자료에 의사 라벨을 붙이는 inverse dynamics model이 있을 때 모방 학습이 Minecraft에 통함을 증명했어요. 여기 제작자는 노트북과 결투 1,000회로는 실패함을 증명했어요. 하지만 같은 기본 이유 때문이에요. 모방 학습은 시연 품질에 갇혀요.

OpenAI VPT 에이전트가 Minecraft에서 나무를 캐요

VPT 파이프라인은 자료 문제를 이렇게 풀어요. 이미지 t-1과 이미지 t+1을 보고 이미지 t의 행동을 예측하는 **Inverse Dynamics Model (IDM)**을 훈련시켜요. IDM이 비인과적(미래 이미지를 봐요)이라서 과제가 행동 복제보다 쉽고 라벨 자료를 훨씬 적게 필요로 해요. 계약자 2,000시간 라벨 자료에 약 2,000달러를 쓰고, IDM으로 YouTube Minecraft 영상 7만 시간에 의사 라벨을 붙였어요.

사전 훈련 자료량(로그 눈금)에 따른 제작과 수집 비율: 작업대, 나무 도구, 돌 도구

규모 효과는 분명해요. 사전 훈련 자료 1시간에서 10만 시간 로그 축에서 모델이 작업대와 나무 도구, 돌 도구를 만드는 비율이 단계적으로 올라가요. 계약자가 라벨한 2,000시간만으로 훈련한 모델은 작업대에서 정체돼요. IDM이 의사 라벨을 붙인 7만 시간을 더했을 때(그래프 점선) 돌 도구가 제로샷으로 나와요. RL 단계 하나 없이요.

0.5B 매개변수 파운데이션 모델 결과물은 RL만으로는 불가능한 제로샷 능력을 냈어요. 나무 캐기, 작업대 만들기, 기둥 점프. RL로 미세 조정하자 다이아몬드 도구를 만드는 첫 AI가 됐어요.

RL 훈련 에피소드 수에 따른 보상: 무작위 초기 모델에서 출발 대 VPT 사전 훈련 모델에서 출발

이 그래프는 사전 훈련이 하류 RL을 왜 바꾸는지 보여줘요. 무작위 초기화 네트워크에서 출발한 RL(주황)은 백만 에피소드 가까이 0 근처에 평평해요. "다이아몬드 얻기" 과제가 순진한 에이전트가 무작위 탐색으로 우연히 맞히기에는 보상이 너무 듬성해요. VPT 사전 훈련 모델에서 미세 조정한 RL(초록)은 기본 행동(캐기, 만들기, 탐험)을 이미 가지고 출발해서 다이아몬드 곡괭이로 가는 완전한 길에 해당하는 보상 25쯤까지 꾸준히 올라가요.

OpenAI VPT 프로젝트 공식 데모 영상. 에이전트가 실제로 움직여요.

OpenAI Five: 보상 만들기 문제

사람 프로와 Dota 2를 두는 OpenAI Five

OpenAI Five(2019년)는 순수 자가 학습 RL로 Dota 2 세계 챔피언을 이겼어요. 모방 학습 없어요. GPU 256개, CPU 코어 128,000개, 하루 게임 180년, 훈련 10개월.

하지만 보상 함수는 Dota 전문가가 손으로 설계했어요. 가능한 20,000개 중 28개 특징이고, 각각 가중치를 손으로 조정했어요. 순자산, 처치, 사망, 타워 체력, 라인 배정. 전부 사람이 고르고 가중했어요. 이 모델링이 없으면 에이전트는 거의 배우지 못했어요 (실험: 승리와 패배 보상만 → 세미프로 수준에서 정체).

영상의 봇도 같은 문제에 마주해요. 보상 함수는 PvP에서 무엇이 중요한지에 대한 제작자의 이해를 인코딩해요 (맞히기는 좋고, 맞기는 나쁘고, 조준선 유지하기는 좋아요). 피할 수 없어요. RL은 보상 신호가 필요하고, 이 신호 모델링은 인간 편향을 인코딩해요.

DreamerV3: 월드 모델과 듬성 보상

단일 설정으로 150개가 넘는 다양한 과제의 DreamerV3 벤치 점수

DeepMind의 DreamerV3(2023년)는 세 번째 접근을 써요. 행동 복제나 유인이 있는 RL 대신 월드 모델을 배워요. 지난 행동에서 미래 상태와 보상을 예측하고 가능한 미래를 꿈꾸며 계획하는 신경망이에요. 인간 자료도 커리큘럼도 없이 처음부터 Minecraft에서 다이아몬드를 모은 첫 알고리즘이고, 2025년 Nature에 났어요.

DreamerV3가 미래 궤적을 상상하려고 월드 모델을 배워요

다이아몬드 환경은 12개 이정표(통나무에서 판자, 막대, 작업대, 나무 곡괭이, 돌, 돌 곡괭이, 철광석, 화로, 철괴, 철 곡괭이, 다이아몬드)에 듬성 보상을 정해요. 각자 한 번씩 +1. 체력의 작은 보상(체력당 앞뒤 0.01). 도달 가능 합계: 36,000단계 에피소드에서 11.1.

DreamerV3의 월드 모델은 궤적을 상상하고 내부에서 평가하게 해요. 실제 경험이 아니라 꿈꾼 롤아웃에서 액터가 배우고, 실제 단계마다 수천 개 가능한 미래를 테스트해요. 이렇게 하면 표준 RL 에이전트를 무너뜨릴 듬성 보상이 가능해져요.

환경 1억 단계로 훈련한 40개 시드 중 24개가 다이아몬드를 최소 하나 모았어요. 첫 다이아몬드는 2,900만 단계 뒤에 나왔어요 (GPU 하나로 약 9일).

ANNA: 상징 AI가 Minecraft를 만나다

부싯돌과 부싯돌용 ANNA 과제 트리 분해

영상의 PvP 봇 이전, VPT와 DreamerV3 이전에 ANNA가 있었어요. 완전히 다른 철학으로 지은 Minecraft 봇. 픽셀이나 보상에서 배우는 대신, 상징 상태 기계와 프랑스어 NLP 파서, 손으로 쓴 과제 의존 트리를 써요.

2022년("vibe coding"이 말이 되기 전)에 만들었고, ANNA는 Mineflayer로 Minecraft 서버에 접속하고 프랑스어 자연어를 이해해요. "obtiens un briquet"이라고 말하면 ANNA가 동사(얻다)를 분석하고, 물건 레시피를 찾고, 하위 과제로 재귀 분해해요. 참나무 캐기에서 판자 만들기, 막대 만들기, 작업대 만들기, 나무 곡괭이 만들기, 돌 캐기, 돌 곡괭이 만들기, 철광석 캐기, 철괴 녹이기, 부싯돌 만들기.

프랑스어 명령 인식을 위한 ANNA NLP 파서 아키텍처

NLP 층(utils/id_parser.js)은 병렬 명령을 다루려고 "et"으로 명령을 나누고, 프랑스어 동사를 과제 종류에 연결하고, 5,000개 항목 사전으로 프랑스어 물건 이름을 Minecraft 식별자에 번역해요. 인식되지 않는 명령은 ANNA를 의식 있는 Minecraft 동반자로 소개하는 GPT 기반 대화 시스템으로 넘어가요.

과제 트리(mc-tasks-tree/)가 심장이에요. Minecraft 물건 그래프(제작 레시피, 채굴 수율, 몬스터 드롭, 화로 레시피)를 훑어서 단계별 계획을 만드는 재귀 알고리즘이에요. 다이아몬드 투구에는 나무와 돌, 철, 다이아몬드 수준을 아우르는 40단계 이상 분해를 만들어내요.

ANNA의 다이아몬드 투구 과제 트리: 40단계 이상 분해

영상의 PvP 봇이 경험에서 배우는 곳에서 ANNA는 지식에서 동작해요. 결투 1,000회도 훈련 60시간도 필요 없어요. 트리와 파서, 서버와 분배기가 필요해요. 하지만 트리가 인코딩한 것을 넘어 일반화할 수도 없어요. 아무리 상태 기계 공학을 해도 PvP를 가르치지는 못해요.

ANNA 접근은 AI의 다른 시대를 비춰요. 종단간 학습이 지배하기 전, 정교한 공학과 엮인 상징 추론이 지능적 행동을 만들 수 있다는 약속이 있던 때. 오늘날 ANNA와 PvP 봇 같은 프로젝트는 Minecraft AI의 두 극을 보여줘요. 하나는 세상을 추론하고, 다른 하나는 세상을 지각해요.

Master Gumbo의 Mace 봇: 명령 블록만의 AI

봇이 있는 Mace PvP 훈련장

Minecraft AI의 완전히 다른 구석에서 유튜버 Master Gumbo는 명령 블록만써서 PvP 훈련 봇을 만들었어요. 순수 바닐라 Minecraft 명령과 레드스톤, 클론 플레이어 개체용 carpet mod만으로요. 결과는 틈새 바꾸기와 돌풍 돌격, 방패 구조를 플레이어와 함께 연습하는 대중용 AI 상대예요.

봇은 부서지지 않는 장비와 두 번째 손의 토템(매 틱 /item replace로 채워요)을 든 좀비로 시작해서 사실상 불멸이에요. 나중에 Master Gumbo는 좀비가 못 하는 인간형 구조(방패 들기, 물건 바꾸기)를 지원하는 Carpet Mod 플레이어 복제 봇으로 넘어가요.

설정 센터: 봇 행동을 설정하는 버튼들

핵심 혁신은 무작위가 조종하는 상태 기계예요. 갑옷 거치대가 /spreadplayers 명령으로 색 콘크리트 원 위로 텔레포트돼요. 개체를 무작위로 흩뿌려요. 갑옷 거치대가 떨어진 콘크리트 블록 색이 봇의 다음 행동을 정해요.

  • 빨간 콘크리트 → 뒤로 스트레이프
  • 파란 콘크리트 → 돌풍 돌격으로 위로 올라가기 (공격)
  • 초록 콘크리트 → 방패 들기
  • 흰 콘크리트 → 쉬기 (행동 사이 지연 더하기)

AI 결정 시스템: 색 콘크리트 위 갑옷 거치대

갑옷 거치대 위치는 아래 블록을 감지하고 해당 구조를 작동시키는 명령 블록이 읽어요. 각 행동을 켜고 끄려고 레드스톤 블록을 놓거나 빼요. /spreadplayers가 반복해서 돌기 때문에 봇이 계속 새 결정을 내려서 예측할 수 없지만 구조화된 행동을 만들어요.

Master Gumbo는 이를 "아주 단순하고 기본적인 형태의 AI"라고 불러요. 신경망처럼 상호작용에서 배우지는 않지만, 무작위와 상태 기계가 스크립트 봇보다 예측하기 어려운 현실적 PvP 행동을 만들어요. 매개변수 센터에는 AI 켜고 끄기, 난이도 조정, 이동 패턴 설정을 위한 책 인터페이스가 있어요.

봇과 훈련한 뒤 자신을 바보라고 했던 플레이어와 결투해서(영상 인트로) Master Gumbo가 이겨요. 맵은 Discord로 공유되고 Carpet Mod가 필요해요.

결투 중인 봇, mace PvP 기술을 연습해요

Kadambi PvP 봇이 픽셀에서 배우고 ANNA가 과제 트리로 추론하는 곳에서, Master Gumbo 봇은 무작위 상태 전이로 지능에 이르러요. 신경망 없이도 설득력 있는 PvP 상대를 만들 수 있음을 증명하는 순수 명령 블록 접근이에요.

Altoclef: Baritone와 대규모 과제 트리

ANNA가 무엇을 할지 알려고 읽는 상징 봇이고, Mace 봇이 결정을 무작위화한다면, Altoclef는 게임 전체를 계획해서 통과하는 완전한 자율 에이전트예요. gaucho-matero가 Fabric 모드로 만들고 Baritone 길찾기로 움직여요. 어떤 Minecraft 목표든 과제 트리로 쪼개고 사람 개입 없이 실행해요.

인터페이스는 속임수처럼 단순해요. 채팅에 @gamer라고 치면 Altoclef가 서바이벌 월드에서 "게임 끝내기" 과제를 시작해요. 나무를 모으고, 도구를 만들고, 철과 다이아몬드를 캐고, 네더 포털을 만들고, 블레이즈 막대와 엔더 진주를 모으고, 요새를 찾고, 엔더 드래곤을 죽여요. 전부 자율로, 네이티브 Minecraft 클라이언트로, 어떤 바닐라 서버에서든요.

내부적으로는 재귀 과제 트리 시스템으로 이뤄져요. 상위 목표(예를 들어 "다이아몬드 곡괭이 만들기")가 선행 과제로 분해돼요. 다이아몬드 캐기에서 녹이기, 막대 만들기, 합치기. 트리가 Minecraft 레시피 전체 그래프를 훑고, 생산 사슬과 몬스터 드롭, 전리품 표와 상자 접근을 다뤄요. ANNA의 손으로 쓴 트리와 달리 Altoclef 과제는 임의 논리를 구현할 수 있는 프로그래밍 가능한 Java 클래스예요. 전투 전략, 피글린 물물교환, 탐험 패턴.

핵심 아키텍처 생각은 무엇(과제 트리)과 어떻게(Baritone 길찾기)의 분리예요. Baritone가 저수준 이동을 맡아요. 길찾기, 장애물 회피, 블록 깨기, 인벤토리 관리. 과제 시스템이 상위 계획을 조율해요. 이 모듈성 덕분에 어떤 컴포넌트도 AI일 필요가 없어요. 둘 다 결정적 알고리즘이지만, 합치면 학습 접근과 겨루는 복잡하고 목표 지향적인 행동이 나와요.

Altoclef는 순수 상징 Minecraft AI의 한계를 보여줘요. 훈련도 GPU도 인간 자료도 없이 처음부터 게임을 끝낼 수 있지만, 프로그래머가 예상하지 못한 과제에는 적응할 수 없고, 경험에서 배울 수 없어요. 다이아몬드 곡괭이를 만드는 법을 아는 것은 혼자 발견해서가 아니라 Java 클래스가 정확히 말해주기 때문이에요.

이들을 잇는 것

접근 주요 방법 자료 계산 결과
영상의 PvP 봇 RL + 모방 학습 결투 1,000회 노트북 1대, 60시간 100연타 콤보
OpenAI Five 자가 학습 RL 하루 게임 180년 GPU 256개, 10개월 Dota 2 세계 챔피언
VPT 준지도 IL YouTube 7만 시간 + IDM GPU 720개, 9일 다이아몬드 도구
DreamerV3 월드 모델 RL 꿈꾼 궤적 GPU 1개, 9일 처음부터 다이아몬드
ANNA 상징 NLP + 과제 트리 쓴 레시피 노트북 1대, 바로 제작 가능한 모든 물건
Altoclef Baritone + 과제 트리 FS Java 과제 클래스 Fabric 모드, GPU 없음 게임 전체 끝내기
Mace 봇 명령 블록 상태 기계 무작위 결정 바닐라 MC, GPU 없음 Mace PvP 훈련

영상의 봇은 자원이 가장 제약되지만 과정에 가장 솔직해요. 먼저 실패하고 반복해요. 배운 것을 잊었다가 다시 배워요. 100연타 콤보로 끝나지만, 만든 것이 부정행위인지 묻는 것으로도 끝나요.


영상: Kadambi | AI Engineering의 AI Learns Minecraft PvP

VPT: 논문 · 블로그 · GitHub

OpenAI Five: 논문 · 블로그

DreamerV3: 논문 · GitHub

ANNA: GitHub · (Node.js, Mineflayer, 프랑스어 NLP, 과제 트리)

Altoclef: GitHub · 활성 포크 · (Fabric, Baritone, 과제 트리, 게임 끝내기)

Mace 봇: Master Gumbo의 영상 · (명령 블록, Carpet Mod, 상태 기계)

Yapay zekâ Minecraft PvP öğreniyor, Taklit Öğrenmesi, Pekiştirmeli Öğrenme ve önemli olan 30 değişken

Kaydedilmiş 1.000 düello, pikseller üzerinde eğitilmiş sinir ağı, %90 vuruş

Giriş

AI Learns Minecraft PvP küçük resmi

Kadambi | AI Engineering tarafından AI Learns Minecraft PvP (Reinforcement Learning + Behavior Cloning) adlı bir video var ve gördüğüm en dürüst video oyunu yapay zekâsı eğitim anlatılarından biri.

İlke: ekrana bakıp fare ve klavye komutları gönderen, Minecraft PvP oynayan bir bot inşa etmek (kılıç kiti, tamamen büyülenmiş elmas zırh). Yalnızca piksel girdi ve aksiyon çıktı ile çalışır, oyun belleğini okumadan, makrosuz ve modesuz.

Videoyu ilginç yapan nihai sonuç değildir. Yolculuktur: taklit öğrenmesinin başarısızlığı, özellik mühendisliğine dönüş, yıkıcı unutma döngüleri ve GPUsuz bir dizüstünde 60+ saatlik eğitim.

Faz 1: Taklit Öğrenmesi (başarısızlık)

Taklit öğrenmesi sırasında bot: bir duvarla yüzleşiyor, yukarı aşağı zıplıyor

Yaratıcı mantıklı bir yaklaşımla başladı: kendi oynanışından 1.000 düello kaydetmek, her fare tıklaması ve tuş basımını ilgili görüntüyle eşleştirmek ve piksellerden aksiyonları tahmin etmesi için bir sinir ağı eğitmek.

# Taklit öğrenmesi pipelineı için sözde kod
dataset = record_duels(1000)          # yüz binlerce kare
for frame, action in dataset:
    pixels = capture_screen(frame)
    network.train(pixels → action)    # görüntüden klavye/fare tahmini

Ağ vuruşları %90 doğrulukla tahmin etmeyi öğrendi. Umut verici.

Sonra onu gerçek bir maçta test ettiler. Bot dosdoğru haritanın kenarına yürüdü, bir duvarla yüzleşti ve yukarı aşağı zıpladı.

Neden?

Tembellik tuzağı. Bir PvP savaşında W tuşu çoğu zaman basılıdır. Ağ yüksek doğruluğa basitçe Wyi basılı tutup başka hiçbir şey yapmayarak ulaşabileceğini fark etti. Diğerlerinin zararına en sık aksiyonu optimize etti.

İnsan gecikmesi. Veri kümesindeki aksiyonlar ~200 ms insan tepki süresiyle gecikmiştir. Kare kare, aksiyon ile görünür sonucu birkaç görüntıyla ayrıldığında ham piksellerden bir modelin neden ve sonucu öğrenmesi neredeyse imkânsızdır.

Tutarsız gösterimler. Yaratıcının kendi oynanışı değişiyordu: bazen klavyeyle strafing yapıyor, bazen aynı durumlarda fareyle nişan alıyordu. Bu çelişkili girdiler ağı bozdu.

Faz 2: Müfredatlı Pekiştirmeli Öğrenme

RL eğitimi sırasında bot yatay izlemeyi öğreniyor

Taklit öğrenmesini bırakıp yaratıcı RLe geçti. Ama taze bir ajanı tam bir PvP düellosuna daldırmak işe yaramaz: rastgele keşfin bir şey bulması için aynı anda çok şey olur.

Çözüm: müfredatlı öğrenme. Her mekaniği izole etmek ve bota gerçek savaşa girmeden önce temellerde ustalaşmayı bırakmak.

Adım 1: Yatay nişan (7 saat)

En basit ödül fonksiyonu: hedefi vurmak için pozitif ödül, hasar almak için negatif ceza.

Başlangıçta bot zar zor hareket eder (nötr değerlerle başlatılmış sinir ağı). Yana doğru titrer: bu botun hangi aksiyonların ödül verdiğini görmek için farklı aksiyonları test etmesidir.

Bir saat sonra yatayda acıyla yavaş merkezlenmeyi öğrenir. 7 saat sonra düşmanı sağa ve sola izleyebilir, asimetrik olsa da (soldan sağa harekettense sağdan sola daha iyi, eğitim boyunca süren bir davranış).

Adım 2: Özellik Mühendisliği

Ham ekran görüntüsü 2 milyon pikselden fazlaydı. 360pye indirilse bile bu 200.000 girdidir: etkili öğrenme için çok fazla.

Yaratıcı binlerce düelloyu analiz etti ve gerçekten önemli 30 değişkeni üç grupta belirledi:

Görüş (düşman izleme):

  • Düşmanın nişangâhtan (crosshair) uzaklığı
  • Düşmanın sınırlayıcı kutusunun boyutu
  • Düşmanın yüksekliği
  • Nişangâh durumu (hedefte / hedef dışı)
  • Göreli hız

Tüm görüntüyü işlemek yerine bot pikselleri kesinlikle düşman zırhının rengine göre filtreler, tespiti neredeyse anlık yapar. Benzer renkli arka plan blokları bu filtreyi bozabilir: ama Minecraftta dokuları basitçe değiştirebilirsin.

OCR (HUD okuma): Bot koordinatları oyun kodundan alamadığı için ekranı gerçek zamanlı tarayıp şunu çıkarır:

  • Kamera açısı
  • Momentum
  • Y seviyesi

Standart OCR Minecraftın saydam metniyle zorlanır, o yüzden kritik veriler anlık okuma için siyah beyaza zorlanır.

Zaman (bağlam penceresi):

  • Düşmana vurduğundan beri geçen süre
  • Onun sana vurduğundan beri geçen süre
  • Botun önceki aksiyonlarının kayan tamponu

Bu ağa zamansal bağlam verir: o olmadan botun bir kombonun ortasında mı olduğu ya da savaşa yeni mi başladığı hakkında fikri yoktur.

Adım 3: Dikey nişan (7 saat daha)

RL eğitimi sırasında bot yukarı ve aşağı nişan almayı öğreniyor

Fareye dikey hareket eklemek başlangıçta "tam bir felaket" oldu. Başlangıç performansı kırıktı.

Kum havuzunda bir saat daha sonra bot yukarı ve aşağı bakmayı anladı. Ama süreçte yatay izlemeyi tamamen unuttu.

Bu yıkıcı unutmadır: yeni veriler için optimize etmenin önceden öğrenilmiş temsilleri ezdiği klasik bir makine öğrenmesi sorunu. Dikey nişanı optimize ederken sinir ağı kazara yatay ilerlemelerini ezdi, yaratıcıyı nişangâhını hizada tutabilen ama hedef izleyemeyen bir botla bıraktı.

Yatay izlemeyi geri kazanıp dikey kontrolü korurken 6 saat daha gerekti. Bot sonra kamera açısını çıkaran OCR grubu sayesinde iyi nişangâh yerleşimini korudu.

Adım 4: Klavye kontrolü

W tuşunu sürekli açıp kapatan bot, harekete bağlanmayı öğreniyor

Bota klavyeyi kullanma izni vermek zamansal özellikleri daha da kritik yaptı. Başlangıçta W tuşu sürekli açılıp kapanıyordu: ağ bağlanmayı öğrenmediği için hızlı bir değişim.

Bu davranış cezalandırıldı, o yüzden bot yumuşatmayı öğrendi. Sprintte daha fazla vuruş indirmeye başladı (ayaktaki vuruşun swishine karşı tok ses). Bazı kombolar tatminsiz görünüyordu çünkü bot düşman üzerindeki menzil avantajını sömürüyordu.

İşleri adil yapmak için yaratıcı düşmanın menzilini artırdı. Botun öğrendiği stratejilerin çoğu çalışmayı bıraktı. Ama zamanla uyum sağladı.

Adım 5: Bota ne zaman tıklayacağını öğretmek

Final fazı için yaratıcı taklit öğrenmesini geri getirdi: ama tam kontrol politikasını değil, yalnızca tıklama zamanlamasını öğretmek için. Bot kaydedilmiş düelloların tıklama desenlerini taklit etmeye çalıştı.

Başlangıçta kötü tıklamaların cezasından korkup bir şey denemeye çok korkuyordu. Ama sonunda vurma cesaretini buldu ve vuruşlar indirdi. Tabii ki süreçte nişan almayı yine unuttu: yaratıcı tatmin edici bir duruma dönmek için onu 50 saat daha kendi haline bırakmak zorunda kaldı.

Hile tartışması

Video şunu sorarak biter: bu bot hile yapıyor mu?

Karşı argüman: bot yalnızca bir insanın gördüğünü işler (aynı pikseller), bir insanla aynı klavye/fare girdilerini gönderir (anti-knockback gibi paket manipülasyonu olmadan) ve oyun belleğini okumaz (X-ray ya da ESP olmadan).

Yana argüman: bir bot insandan hızlı işleyebilir ve rakip insana karşı oynadığını sanıyor ama durum bu değilse bu aldatmacadır.

Yaratıcının görüşü: niyete bağlıdır. İki taraf da bunun bir bot olduğunu biliyorsa maç adildir. Bot düşmanı 100 vuruşluk seriyle boşlukta zincirler.

Sonuç

100 vuruşluk kombo yapan bot

GPUsuz dizüstü üzerinde eğitilmiş bir Minecraft PvP botu, özel bir eğitim pipelineı üstüne inşa edilmiş:

  • Piksel girdi için ekran görüntüsü (2M+ piksel → 30 tasarlanmış özellik)
  • Müfredatlı öğrenme (yatay → dikey → klavye → tıklamalar)
  • Motor kontrolü için RL + tıklama zamanlaması için taklit öğrenmesi
  • Ham piksellerde özellik mühendisliği (3 grup: görüş, OCR, zaman)
  • Birden çok fazda 60+ saatlik eğitim

Toplam eğitim süresi onlarca saattir ama çoğu pasiftir. Bot anlamaya kadar titrer, öğrendiklerini unutur, yeniden öğrenir ve 100 vuruşluk seriyle bitirir.

Video youtube.com/watch?v=j5nxDKAjg6U adresindedir.


Bu makale yalnızca videonun içeriğini kapsar. Minecraft yapay zekâsına dair daha geniş bağlam için: VPT, DreamerV3 ve taklit öğrenmesi ile RL manzarası: aşağıdaki bölümler bu projeyi daha geniş alana bağlar.

VPT: Büyük ölçekli Davranış klonlama

OpenAI VPT proje şeması: Ters Dinamik Modeli kare çiftlerinden aksiyonları tahmin eder

Videonun "davranış klonlama" yaklaşımı (Faz 1), OpenAIın Video PreTraining (VPT) projesinde kullandığı tekniğin aynısıdır ama kaynak yelpazesinin zıt uçlarındadır. VPT, 70.000 saat video, 720 GPU ve etiketsiz verileri sözde etiketlemek için ters dinamik model olunca taklit öğrenmesinin Minecraft için işe yaradığını kanıtladı. Buradaki yaratıcı dizüstü ve 1.000 düello ile başarısız olduğunu kanıtladı: ama aynı temel nedenle: taklit öğrenmesi gösterimlerinin kalitesiyle sınırlıdır.

OpenAI VPT ajanı Minecraftta ağaç kazıyor

VPT pipelineı verileri t-1 görüntüsü ve t+1 görüntüsüne bakıp t görüntüsündeki aksiyonu tahmin eden bir Ters Dinamik Modeli (IDM) eğiterek veri sorununu çözer. IDM nedensel olmadığı için (gelecek görüntüleri görür) görev davranış klonlamadan kolaydır ve çok daha az etiketli veri gerektirir. Yüklenicilere yaklaşık 2.000 $ ödeyip 2.000 saat etiketli veri aldılar, sonra IDMyi 70.000 saat YouTube Minecraft videosunu sözde etiketlemek için kullandılar.

Ön eğitim veri hacmine göre üretim/toplama hızı (log ölçeği): üretim masaları, tahta aletler, taş aletler

Ölçek etkisi nettir: 1 saatten 100.000 saat ön eğitim verisine log eksende modelin üretim masası, tahta aletler, sonra taş aletler yapma hızı basamakla yükselir. Yalnızca yüklenicilerce etiketlenmiş 2.000 saatte eğitilmiş model üretim masalarında tavan yapar; taş aletlerin zero-shot ortaya çıkmasını sağlayan IDMce sözde etiketlenmiş 70.000 saatin eklenmesidir (grafikte kesikli çizgi), tek RL adımı olmadan.

Sonuç 0,5B parametreli temel model RL olmadan imkânsız zero-shot yeteneklere ulaştı: ağaç kesmek, masa üretmek, sütun zıplaması: ve RL ile ince ayarlanınca elmas aletler üreten ilk yapay zekâ oldu.

RL eğitim bölümü sayısına göre ödül: rastgele başlatılmış modelden başlamak ve önceden eğitilmiş VPT modelinden başlamak

Bu grafik ön eğitimin sonraki RL için neden her şeyi değiştirdiğini gösterir. Rastgele başlatılmış ağdan başlayan RL (turuncu) neredeyse bir milyon bölüm boyunca 0 yakınında düz kalır: "bir elmas al" görevi naif bir ajanın rastgele keşifle denk gelmesi için çok seyrek ödüllüdür. Önceden eğitilmiş VPT modelinden ince ayarlanan RL (yeşil) temel davranışla (kazma, üretme, keşfetme) başlar ve elmas kazmaya giden tam yola karşılık gelen ~25 ödüle düzenli tırmanır.

OpenAI VPT projesinin ajanı aksiyonda gösteren resmi tanıtım videoları.

OpenAI Five: Ödül şekillendirme sorunu

İnsan profesyonellere karşı Dota 2 oynayan OpenAI Five

OpenAI Five (2019) saf öz öğrenmeli RL kullanarak Dota 2 dünya şampiyonlarını yendi: taklit öğrenmesi yok. 256 GPU, 128.000 CPU çekirdeği, günde 180 oyun yılı, 10 aylık eğitim.

Ama ödül fonksiyonu Dota uzmanlarınca elle tasarlanmıştı: mevcut 20.000 arasından 28 özellik, her biri manuel ayarlanmış ağırlıklarla. Net değer, skorlar, ölümler, kule sağlığı, kulvar atamaları: hepsi insanlarca seçilip ağırlıklandırıldı. Bu modelleme olmadan ajan zar zor öğreniyordu (deney: yalnızca galibiyet/mağlubiyet ödülü → yarı pro seviyede plato).

Videonun botu aynı sorunla yüzleşir: ödül fonksiyonu yaratıcının PvPde neyin önemli olduğuna dair anlayışını kodlar (vurmak iyidir, vurulmak kötüdür, nişangâhı tutmak iyidir). Bu kaçınılmazdır: RL bir ödül sinyaline ihtiyaç duyar ve bu sinyalin modellenmesi bir insan önyargısı kodlar.

DreamerV3: Dünya modelleri ve seyrek ödüller

Tek yapılandırmayla 150den fazla çeşitli görevde DreamerV3 kıyas skorları

DeepMindin DreamerV3 modeli (2023) üçüncü bir yaklaşım benimser. Davranış klonlama ya da teşvikli RL yerine bir dünya modeli öğrenir: geçmiş aksiyonlardan gelecek durumları ve ödülleri tahmin eden bir sinir ağı: ve olası geleceklerin rüyasını görerek planlar. İnsan verisi ya da müfredatsız Minecraftta sıfırdan elmas toplayan ilk algoritmadır, 2025te Natureda yayınlandı.

DreamerV3 gelecek yörüngeleri hayal etmek için bir dünya modeli öğrenir

Elmas ortamı 12 dönüm noktasında seyrek bir ödül tanımlar (kütük → tahta → çubuk → üretim masası → tahta kazma → taş → taş kazma → demir cevheri → fırın → demir külçe → demir kazma → elmas), her biri bir kez +1 verir. Artı küçük bir sağlık ödülü (can başına ±0,01). Ulaşılabilir toplam: 36.000 adımlık bölümde 11,1.

DreamerV3ün dünya modeli yörüngeleri hayal edip dâhili değerlendirmesine izin verir: aktör gerçek deneyimden çok hayal edilmiş açılımlardan öğrenir, her gerçek adım için binlerce olası geleceği test eder. Bu seyrek ödülleri standart bir RL ajanını yok edeceği yerde mümkün kılar.

100M ortam adımı eğitilmiş 40 tohumdan 24ü en az bir elmas topladı. İlk elmas ~9 gün tek GPUda 29M adımdan sonra belirdi.

ANNA: Minecraft ile buluşan sembolik yapay zekâ

Çakmak taşı için ANNA görev ağacı ayrışımı

Videonun PvP botundan, VPT ve DreamerV3ten önce ANNA vardı: tamamen farklı bir felsefeyle inşa edilmiş bir Minecraft botu. Piksellerden ya da ödüllerden öğrenmek yerine ANNA Fransızca NLP ayrıştırıcılı ve elle yazılmış görev bağımlılık ağaçlı sembolik bir durum makinesi kullanır.

2022de yaratıldı ("vibe coding" bir terim olmadan önce), ANNA Mineflayer üzerinden bir Minecraft sunucusuna bağlanır ve Fransızca doğal dil komutlarını anlar. "obtiens un briquet" de ve ANNA fiili ayrıştırır (obtien → elde et), nesnenin tarifini arar ve özyinelemeli alt görevlere böler: meşe kaz → tahta üret → çubuk üret → üretim masası üret → tahta kazma üret → taş kaz → taş kazma üret → demir cevheri kaz → demir külçe erit → çakmak üret.

Fransızca komut tanıma için ANNA NLP ayrıştırıcı mimarisi

NLP katmanı (utils/id_parser.js) paralel emirleri yönetmek için komutları "et" üzerinden böler, Fransızca fiilleri görev türleriyle eşleştirir ve 5.000 girdili sözlükle Fransızca nesne adlarını Minecraft tanımlayıcılarına çevirir. Tanınmayan komutlar ANNAyı bilinçli bir Minecraft yoldaşı olarak sunan GPT tabanlı bir sohbet sistemine geçer.

Görev ağacı (mc-tasks-tree/) kalptir: adım adım plan üretmek için Minecraft nesne grafını (üretim tarifleri, madencilik verimleri, canavar dropları, fırın tarifleri) gezen özyinelemeli bir algoritma. Elmas miğfer için tahta, taş, demir ve elmas seviyelerini kapsayan 40+ adımlı ayrışım üretir.

ANNA elmas miğfer görev ağacı: 40+ adımlı ayrıntı

Videonun PvP botu deneyimden öğrenirken ANNA bilgiden çalışır. 1.000 düelloya ya da 60 saatlik eğitime ihtiyacı yoktur: ağaca, ayrıştırıcıya ve sunucu/dağıtıcıya ihtiyacı vardır. Ama ağacının kodladığının ötesine de genellemez. Hiçbir durum makinesi mühendisliği ona PvP yapmayı öğretemezdi.

ANNA yaklaşımı yapay zekânın farklı bir dönemini yansıtır: uçtan uca öğrenme baskın olmadan önce, vaat dikkatli mühendislikle birleşmiş sembolik akıl yürütmenin akıllı davranış üretebileceğiydi. Bugün ANNA ve PvP botu gibi projeler Minecraft yapay zekâsının iki kutbunu temsil eder: biri dünya hakkında akıl yürütür, diğeri onu algılar.

Master Gumbo Mace Botu: Yalnızca komut bloklu yapay zekâ

Botlu Mace PvP eğitim arenası

Minecraft yapay zekâsının tamamen farklı bir köşesinde YouTube kanalı Master Gumbo yalnızca komut blokları kullanarak bir PvP eğitim botu inşa etti; yalnızca vanilla Minecraft komutları, redstone ve oyuncu klon varlıkları için carpet mod. Sonuç, oyuncuyla gedik değişimleri, rüzgâr yükü hücumları ve kalkan mekaniklerini çalıştıran kitle için bir yapay zekâ rakiptir.

Bot kırılmaz ekipmanlı ve ikinci elinde totemli bir zombi olarak başlar (her tick /item replace ile doldurulur), onu fiilen ölümsüz yapar. Sonra Master Gumbo zombilerin yapamadığı insansı mekanikleri (kalkan kaldırma, eşya değişimi) destekleyen Carpet Mod oyuncu kopyası botlarına geçer.

Ayar merkezi: bot davranışını yapılandırma düğmeleri

Merkez yenilik rastgele sürümlü bir durum makinesidir. Bir zırh askısı /spreadplayers komutuyla renkli beton blok çemberinin üstüne ışınlanır; bu komut varlıkları rastgele dağıtır. Zırh askısının düştüğü beton bloğun rengi botun sonraki aksiyonunu belirler:

  • Kırmızı beton → geriye strafing
  • Mavi beton → rüzgâr yüküyle yukarı yükselir (saldırı)
  • Yeşil beton → kalkanı kaldırır
  • Beyaz beton → duraklama (aksiyonlar arasına gecikme ekler)

Yapay zekâ karar sistemi: renkli beton üzerinde bir zırh askısı

Zırh askısının konumu altındaki bloğu tespit edip ilgili mekanizmayı etkinleştiren komut bloklarınca okunur. Her davranışı etkinleştirmek/devre dışı bırakmak için bir redstone bloğu yerleştirilir ya da kaldırılır. /spreadplayers tekrarda döndüğü için bot sürekli yeni kararlar alır, öngörülemez ama yapılandırılmış bir davranış yaratır.

Master Gumbo buna "çok basit ve temel bir yapay zekâ biçimi" der: sinir ağları gibi etkileşimlerden öğrenmez ama rastgele + durum makinesi scriptli bir bottan tahmin etmesi zor, gerçekçi bir PvP davranışı üretir. Ayar merkezi yapay zekâyı etkinleştirmek/devre dışı bırakmak, zorluğu ayarlamak ve hareket desenlerini yapılandırmak için kitap arayüzü içerir.

Botla eğitimden sonra ve onu ezik diye çağıran oyuncuya karşı düelloda (videosunun introsunda) Master Gumbo kazanır. Harita Discord üzerinden paylaşılır, Carpet Mod gerekli.

Düelloda bot, mace PvP tekniklerini çalışıyor

PvP botu (Kadambi) piksellerden öğrenir, ANNA görev ağacında akıl yürütürken Master Gumbo botu rastgele durum geçişleriyle zekâya ulaşır: sinir ağlarına ihtiyaç olmadan inandırıcı bir PvP rakibi inşa edilebileceğini kanıtlayan saf komut bloklu bir yaklaşım.

Altoclef: Büyük ölçekli Baritone + görev ağacı

ANNA ne yapacağını okuyarak bilen sembolik bir botsa ve Mace Botu kararları rastgeleleştiriyorsa Altoclef tüm oyunda yolunu planlayan eksiksiz özerk bir ajandır. gaucho-matero tarafından Fabric mod olarak inşa edilmiş ve Baritone yol bulmayla güçlendirilmiş Altoclef herhangi bir Minecraft hedefini görev ağacına böler ve insan müdahalesi olmadan yürütür.

Arayüz aldatıcı basittir: sohbete @gamer yaz ve Altoclef survival dünyadan "oyunu bitir" görevine başlar. Odun toplar, alet üretir, demir ve elmas kazar, Nether portalı inşa eder, Blaze çubukları ve Ender incileri toplar, kaleyi bulur ve Ender Dragonu öldürür. Hepsi özerk, yerel Minecraft istemcisi üzerinden, herhangi bir vanilla sunucuda.

Kaputun altında bu, her üst düzey hedefin (örneğin "elmas kazma üret") önkoşul görevlere bölündüğü özyinelemeli bir görev ağacı sistemi sayesinde başarılır: elmas kaz → erit → çubuk üret → birleştir. Ağaç tam Minecraft tarif grafını gezer, üretim zincirleri, canavar dropları, ganimet tabloları ve konteyner erişimini yönetir. ANNA elle yazılmış ağacının tersine Altoclef görevleri keyfi mantık uygulayabilen programlanabilir Java sınıflarıdır: savaş stratejileri, piglin takası, keşif desenleri.

Kilit mimari fikir ne (görev ağacı) ile nasıl (Baritone yol bulma) ayrımıdır. Baritone düşük seviye hareketleri yönetir: yol bulma, engelden kaçınma, blok kırma, envanter yönetimi; görev sistemi üst düzey planı orkestre eder. Bu modülerlik hiçbir bileşenin yapay zekâ olmasına gerek olmadığı anlamına gelir: ikisi de deterministik algoritmadır ama kombinasyonları öğrenme yaklaşımlarıyla yarışan karmaşık, hedefe yönelik bir davranış üretir.

Altoclef saf sembolik Minecraft yapay zekâsının limitini temsil eder: eğitimsiz, GPUsuz ve insan verisiz oyunu sıfırdan bitirebilir ama programcılarının öngörmediği görevlere uyum sağlayamaz ve deneyimden öğrenemez. Elmas kazmayı nasıl üreteceğini bilir çünkü bir Java sınıfı ona tam nasıl olduğunu söyler, kendi keşfettiği için değil.

Onları bağlayan şey

Yaklaşım Ana yöntem Veri Hesaplama Sonuç
Videonun PvP botu RL + taklit öğrenmesi 1.000 düello 1 dizüstü, 60 saat 100 vuruşluk kombo
OpenAI Five Öz öğrenmeli RL 180 oyun yılı/gün 256 GPU, 10 ay Dota 2 dünya şampiyonu
VPT Yarı denetimli IL 70K saat YouTube + IDM 720 GPU, 9 gün Elmas aletler
DreamerV3 Dünya modeli RL Hayal edilmiş yolculuklar 1 GPU, 9 gün Sıfırdan elmas
ANNA Sembolik NLP + görev ağacı Yazılı tarifler 1 dizüstü, anlık Üretilebilir her eşya
Altoclef Baritone + FS görev ağacı Java görev sınıfları Fabric mod, GPU yok Tüm oyunu bitirme
Mace Botu Komut bloklu durum makinesi Rastgele kararlar Vanilla MC, GPU yok Mace PvP eğitimi

Videonun botu kaynakça en kısıtlı ama süreçte en dürüst olandır. Önce başarısız olur, sonra yineler. Öğrendiklerini unutur, sonra yeniden öğrenir. 100 vuruşluk komboyla biter: ama inşa ettiğinin hile olup olmadığı sorusuyla da.


Video: Kadambi | AI Engineering tarafından AI Learns Minecraft PvP

VPT: Makale · Blog · GitHub

OpenAI Five: Makale · Blog

DreamerV3: Makale · GitHub

ANNA: GitHub · (Node.js, Mineflayer, Fransızca NLP, görev ağacı)

Altoclef: GitHub · Aktif fork · (Fabric, Baritone, görev ağacı, oyunu bitirir)

Mace Botu: Master Gumbo tarafından Video · (Komut blokları, Carpet Mod, durum makinesi)

L'IA impara il PvP di Minecraft: Imitation Learning, Reinforcement Learning, e le 30 variabili che contavano

1 000 duelli registrati, rete neurale allenata sui pixel, 90% di precisione dei colpi: e il bot andava dritto contro un muro. Poi sono arrivati RL, apprendimento curriculare e 60 ore di allenamento.

Introduzione

AI Learns Minecraft PvP thumbnail

C'è un video intitolato AI Learns Minecraft PvP (Reinforcement Learning + Behavior Cloning) di Kadambi | AI Engineering, ed è uno dei racconti più onesti di allenamento di un'IA da videogioco che abbia visto.

Il principio: costruire un bot che gioca al PvP di Minecraft (kit spada, armatura di diamante completamente incantata) guardando lo schermo e inviando comandi di mouse e tastiera. Funziona solo con pixel in ingresso e azioni in uscita, senza leggere la memoria del gioco, senza macro e senza mod.

Ciò che rende interessante il video non è il risultato finale. È il percorso: il fallimento dell'imitation learning, il passaggio al feature engineering, i cicli di oblio catastrofico, e le oltre 60 ore di allenamento su un laptop senza GPU.

Fase 1: Imitation Learning (il fallimento)

The bot during imitation learning: facing a wall, jumping up and down

Il creatore ha iniziato con un approccio sensato: registrare 1 000 duelli del proprio gameplay, associare ogni clic del mouse e pressione di tasto all'immagine corrispondente, e allenare una rete neurale a prevedere le azioni dai pixel.

# Pseudocodice per la pipeline di imitation learning
dataset = record_duels(1000)          # centinaia di migliaia di frame
for frame, action in dataset:
    pixels = capture_screen(frame)
    network.train(pixels → action)    # prevede tastiera/mouse dall'immagine

La rete ha imparato a prevedere i colpi con il 90% di precisione. Promettente.

Poi l'hanno testato in un vero match. Il bot si è diretto dritto verso il bordo della mappa, ha guardato un muro, e ha saltato su e giù.

Perché?

La trappola della pigrizia. In un combattimento PvP, il tasto W è premuto quasi sempre. La rete ha capito che poteva raggiungere un'alta precisione tenendo semplicemente premuto W e non facendo altro. Ha ottimizzato l'azione più frequente a scapito di tutte le altre.

La latenza umana. Le azioni nel dataset sono ritardate di circa 200 ms di tempo di reazione umano. Frame per frame, causa ed effetto sono quasi impossibili da imparare per un modello dai pixel grezzi quando l'azione e la sua conseguenza visibile sono separate da varie immagini.

Dimostrazioni incoerenti. Il gameplay stesso del creatore variava: a volte faceva strafe con la tastiera, a volte mirava col mouse in situazioni identiche. Questi input contraddittori hanno confuso la rete.

Fase 2: Reinforcement Learning con curriculum

The bot learning to track horizontally during RL training

Abbandonato l'imitation learning, il creatore è passato al RL. Ma buttare un agente fresco in un duello PvP completo è inutile: succedono troppe cose insieme perché un'esplorazione casuale trovi qualcosa.

La soluzione: apprendimento curriculare. Isolare ogni meccanica e lasciare che il bot padroneggi le basi prima di entrare in un vero combattimento.

Passo 1: Mira orizzontale (7 ore)

La funzione di ricompensa più semplice: ricompensa positiva per colpire un bersaglio, penalità negativa per subire danni.

All'inizio, il bot si muove appena (rete neurale inizializzata con valori neutri). Trema lateralmente: è il bot che prova azioni diverse per vedere quali danno ricompense.

Dopo un'ora, impara a centrarsi orizzontalmente, ma faticosamente lento. Dopo 7 ore, può seguire il nemico a sinistra e a destra, anche se in modo asimmetrico (migliore a spostarsi da destra a sinistra che da sinistra a destra, un comportamento persistito per tutto l'allenamento).

Passo 2: Feature Engineering

Lo screenshot grezzo superava i 2 milioni di pixel. Anche ridotto a 360p, sono 200 000 input: troppi per un apprendimento efficace.

Il creatore ha analizzato migliaia di duelli e identificato 30 variabili che contano davvero, divise in tre gruppi:

Visione (tracciamento nemico):

  • Distanza del nemico dal mirino (crosshair)
  • Dimensione della bounding box del nemico
  • Altezza del nemico
  • Stato del mirino (su bersaglio / fuori bersaglio)
  • Velocità relativa

Invece di elaborare tutta l'immagine, il bot filtra i pixel solo per il colore dell'armatura nemica, rendendo il rilevamento quasi istantaneo. Blocchi di sfondo di colore simile possono disturbare questo filtro: ma in Minecraft puoi semplicemente cambiare le texture.

OCR (lettura HUD): Dato che il bot non può recuperare le coordinate dal codice del gioco, scansiona lo schermo in tempo reale per estrarre:

  • Pitch della camera
  • Momentum
  • Livello Y

L'OCR standard fatica con il testo trasparente di Minecraft, quindi i dati critici sono forzati in bianco e nero per una lettura istantanea.

Tempo (finestra di contesto):

  • Tempo passato da quando hai toccato il nemico
  • Tempo passato da quando lui ha toccato te
  • Buffer scorrevole delle azioni precedenti del bot

Questo dà alla rete un contesto temporale: senza, il bot non ha idea se è nel mezzo di una combo o se sta appena iniziando un combattimento.

Passo 3: Mira verticale (altre 7 ore)

The bot learning to aim up and down during RL training

Aggiungere il movimento verticale del mouse è stato "un disastro totale" all'inizio. La performance iniziale era distrutta.

Dopo un'altra ora nel recinto, il bot ha capito come guardare in alto e in basso. Ma nel processo, ha completamente dimenticato come seguire orizzontalmente.

È l'oblio catastrofico: un classico problema di machine learning dove ottimizzare per nuovi dati schiaccia le rappresentazioni apprese prima. Ottimizzando la mira verticale, la rete neurale ha accidentalmente cancellato i suoi progressi orizzontali, lasciando il creatore con un bot che poteva tenere il mirino a livello ma non poteva seguire un bersaglio.

Ci sono volute altre 6 ore per ritrovare il tracciamento orizzontale mantenendo il controllo verticale. Il bot ha poi mantenuto un buon piazzamento del mirino grazie al gruppo OCR che estraeva il pitch della camera.

Passo 4: Controllo tastiera

The bot toggling the W key constantly, learning to commit to movement

Dare al bot il permesso di usare la tastiera ha reso le caratteristiche temporali ancora più critiche. All'inizio, il tasto W era continuamente acceso e spento: un cambio rapido perché la rete non aveva imparato a impegnarsi.

Questo comportamento è stato penalizzato, quindi il bot ha imparato a renderlo fluido. Ha iniziato ad atterrare più colpi in sprint (il tonfo contro il fruscio di un colpo da fermo). Alcune combo sembravano insoddisfacenti perché il bot sfruttava il suo vantaggio di portata sul nemico.

Per rendere le cose eque, il creatore ha aumentato la portata del nemico. Molte strategie apprese dal bot hanno smesso di funzionare. Ma col tempo, si è adattato.

Passo 5: Insegnare al bot quando cliccare

Per la fase finale, il creatore ha riportato l'imitation learning: ma solo per insegnare il timing dei clic, non la politica di controllo completa. Il bot ha provato a imitare i pattern di clic dei duelli registrati.

All'inizio, aveva troppa paura di provare qualsiasi cosa, temendo la penalità per i clic sbagliati. Ma alla fine ha trovato il coraggio di colpire e atterrare colpi. Certo, ha dimenticato di nuovo come mirare nel processo: il creatore ha dovuto lasciarlo da solo per altre 50 ore per tornare a uno stato soddisfacente.

Il dibattito sul cheating

Il video finisce chiedendo: questo bot bara?

L'argomento contro: il bot elabora solo ciò che un umano vede (gli stessi pixel), invia gli stessi input tastiera/mouse di un umano (senza manipolazione di pacchetti come l'anti-knockback), e non legge la memoria del gioco (niente X-ray né ESP).

L'argomento a favore: un bot può elaborare più in fretta di un umano, e se l'avversario pensa di giocare contro un umano ma non è così, è inganno.

Il parere del creatore: dipende dall'intenzione. Se entrambe le parti sanno che è un bot, il match è equo. Il bot incatena il nemico nel vuoto con una serie di 100 colpi.

Il risultato

The bot executing a 100-hit combo

Un bot PvP Minecraft allenato su un laptop senza GPU, costruito su una pipeline di allenamento personalizzata con:

  • Screenshot per l'input pixel (2M+ pixel ridotti a 30 feature progettate)
  • Apprendimento curriculare (orizzontale, poi verticale, poi tastiera, poi clic)
  • RL per il controllo motorio + imitation learning per il timing dei clic
  • Feature engineering sui pixel grezzi (3 gruppi: visione, OCR, tempo)
  • Oltre 60 ore di allenamento su più fasi

Il tempo totale di allenamento è di decine di ore, ma quasi tutte passive. Il bot trema fino alla comprensione, dimentica ciò che ha imparato, re-impara, e finisce per incatenare una serie di 100 colpi.

Il video è su youtube.com/watch?v=j5nxDKAjg6U.


Questo articolo copre solo il contenuto del video. Per un contesto più ampio sull'IA di Minecraft: VPT, DreamerV3, e il panorama di imitation learning contro RL: le sezioni qui sotto collegano questo progetto al campo più vasto.

VPT: Behavior cloning su larga scala

OpenAI's VPT project diagram : the Inverse Dynamics Model predicts actions from pairs of frames

L'approccio "behavior cloning" del video (Fase 1) è la stessa tecnica che OpenAI ha usato nel suo progetto Video PreTraining (VPT), ma agli estremi opposti dello spettro di risorse. VPT ha provato che l'imitation learning funziona per Minecraft quando hai 70 000 ore di video, 720 GPU, e un inverse dynamics model per pseudo-etichettare dati non etichettati. Il creatore qui ha provato che fallisce con un laptop e 1 000 duelli: ma per la stessa ragione fondamentale: l'imitation learning è limitato dalla qualità delle sue dimostrazioni.

OpenAI's VPT agent mining a tree in Minecraft

La pipeline VPT risolve il problema dei dati allenando un Inverse Dynamics Model (IDM) che guarda l'immagine t-1 e l'immagine t+1 per prevedere l'azione all'immagine t. Poiché l'IDM è non causale (vede le immagini future), il compito è più facile del behavior cloning e richiede molti meno dati etichettati. Hanno pagato dei contractor circa 2 000 $ per 2 000 ore di dati etichettati, poi hanno usato l'IDM per pseudo-etichettare 70 000 ore di video YouTube di Minecraft.

Taux de crafting/collecte en fonction du volume de données de pré-entraînement (échelle log) : tables de craft, outils en bois, outils en pierre

L'effetto scala è netto: su un asse log da 1 ora a 100 000 ore di dati di pre-allenamento, il tasso con cui il modello fabbrica un tavolo di craft, attrezzi di legno, poi attrezzi di pietra sale a gradini. Il modello allenato solo sulle 2 000 ore etichettate dai contractor si ferma ai tavoli di craft; è aggiungendo le 70 000 ore pseudo-etichettate dall'IDM (linea tratteggiata sul grafico) che gli attrezzi di pietra emergono in zero-shot, senza un solo passo di RL.

Il modello fondazionale di 0,5B parametri risultante ha raggiunto capacità zero-shot impossibili col solo RL: tagliare alberi, fabbricare tavoli, salto in colonna: e affinato con RL, è diventato la prima IA a fabbricare attrezzi di diamante.

Récompense en fonction du nombre d'épisodes d'entraînement RL : partir d'un modèle initialisé aléatoirement vs partir du modèle VPT pré-entraîné

Questo grafico mostra perché il pre-allenamento cambia tutto per il RL a valle. Il RL partito da una rete inizializzata a caso (arancione) resta piatto vicino a 0 per quasi un milione di episodi: il compito "ottenere un diamante" ha una ricompensa troppo sparsa perché un agente ingenuo ci inciampi per esplorazione casuale. Il RL affinato dal modello VPT pre-allenato (verde) parte già col comportamento di base (minare, fabbricare, esplorare) e sale regolarmente fino a una ricompensa di circa 25, che corrisponde al percorso completo verso un piccone di diamante.

Demo video ufficiali del progetto VPT di OpenAI, che mostrano l'agente in azione.

OpenAI Five: Il problema del reward shaping

OpenAI Five playing Dota 2 against human professionals

OpenAI Five (2019) ha battuto i campioni del mondo di Dota 2 usando RL puro in auto-apprendimento: niente imitation learning. 256 GPU, 128 000 core CPU, 180 anni di gioco al giorno, 10 mesi di allenamento.

Ma la funzione di ricompensa è stata progettata a mano da esperti di Dota: 28 feature sulle 20 000 disponibili, ognuna con pesi regolati manualmente. Valore netto, uccisioni, morti, salute delle torri, assegnazioni di corsia: tutto è stato selezionato e pesato da umani. Senza questa modellazione, l'agente imparava a malapena (esperimento: ricompensa solo vittoria/sconfitta, poi plateau a livello semi-pro).

Il bot del video affronta lo stesso problema: la sua funzione di ricompensa codifica la comprensione del creatore di ciò che conta in PvP (colpire è bene, essere colpito è male, tenere il mirino è bene). È inevitabile: il RL ha bisogno di un segnale di ricompensa, e modellare quel segnale codifica un bias umano.

DreamerV3: World model e ricompense sparse

DreamerV3 benchmark scores across over 150 diverse tasks with a single configuration

Il DreamerV3 di DeepMind (2023) adotta un terzo approccio. Invece di behavior cloning o RL con incentivi, impara un world model: una rete neurale che prevede stati futuri e ricompense dalle azioni passate: e pianifica sognando futuri possibili. È il primo algoritmo a raccogliere diamanti in Minecraft da zero senza dati umani né curricula, pubblicato su Nature nel 2025.

DreamerV3 learns a world model to imagine future trajectories

L'ambiente diamante definisce una ricompensa sparsa su 12 tappe (tronco, poi assi, poi bastone, poi tavolo di craft, poi piccone di legno, poi pietra, poi piccone di pietra, poi minerale di ferro, poi forno, poi lingotto di ferro, poi piccone di ferro, poi diamante), ognuna dà +1 una sola volta. Più una piccola ricompensa di salute (±0,01 per pv). Totale raggiungibile: 11,1 in un episodio di 36 000 passi.

Il world model di DreamerV3 gli permette di immaginare traiettorie e valutarle internamente: l'attore impara da rollout sognati invece che dall'esperienza reale, testando migliaia di futuri possibili per ogni passo reale. Questo rende possibili le ricompense sparse là dove distruggerebbero un agente RL standard.

Su 40 seed allenati per 100M di passi ambientali, 24 dei 40 hanno raccolto almeno un diamante. Il primo diamante è apparso dopo 29M di passi (circa 9 giorni su una GPU).

ANNA: L'IA simbolica incontra Minecraft

ANNA's task tree decomposition for a flint-and-steel

Prima del bot PvP del video, prima di VPT e DreamerV3, c'era ANNA: un bot Minecraft costruito con una filosofia completamente diversa. Invece di imparare da pixel o ricompense, ANNA usa una macchina a stati simbolica con un parser NLP francese e un albero di dipendenze dei compiti scritto a mano.

Creato nel 2022 (prima che "vibe coding" fosse un termine), ANNA si connette a un server Minecraft via Mineflayer e capisce comandi in linguaggio naturale in francese. Dì "ottieni un acciarino", e ANNA analizza il verbo (ottieni, poi ottenere), cerca la ricetta dell'oggetto, e lo scompone ricorsivamente in sotto-compiti: minare quercia, poi fabbricare assi, poi fabbricare bastoni, poi fabbricare un tavolo di craft, poi fabbricare un piccone di legno, poi minare pietra, poi fabbricare un piccone di pietra, poi minare minerale di ferro, poi fondere lingotti di ferro, poi fabbricare l'acciarino.

ANNA's NLP parser architecture for French command recognition

Lo strato NLP (utils/id_parser.js) separa i comandi su "e" per gestire ordini paralleli, associa i verbi francesi ai tipi di compiti, e traduce i nomi di oggetti francesi in identificatori Minecraft via un dizionario di 5 000 voci. I comandi non riconosciuti passano a un sistema di conversazione basato su GPT che presenta ANNA come un compagno Minecraft senziente.

L'albero dei compiti (mc-tasks-tree/) è il cuore: un algoritmo ricorsivo che percorre il grafo di oggetti Minecraft (ricette di craft, rese minerarie, drop di mostri, ricette di forno) per produrre un piano passo passo. Per un elmo di diamante, genera una scomposizione in oltre 40 passi che copre i livelli legno, pietra, ferro e diamante.

ANNA's diamond helmet task tree : a 40+ step breakdown

Là dove il bot PvP del video impara dall'esperienza, ANNA funziona dalla conoscenza. Non ha bisogno di 1 000 duelli o 60 ore di allenamento: ha bisogno dell'albero, del parser e del server/distributore. Ma non può nemmeno generalizzare oltre ciò che il suo albero codifica. Nessuna quantità di ingegneria di macchine a stati gli insegnerebbe a fare PvP.

L'approccio di ANNA riflette un'epoca diversa dell'IA: prima che l'apprendimento end-to-end dominasse, quando la promessa era che il ragionamento simbolico unito a ingegneria attenta potesse produrre comportamento intelligente. Oggi, progetti come ANNA e il bot PvP rappresentano due poli dell'IA di Minecraft: uno ragiona sul mondo, l'altro lo percepisce.

Master Gumbo's Mace Bot: IA con soli command block

The Mace PvP training arena with the bot

In un angolo completamente diverso dell'IA di Minecraft, lo YouTuber Master Gumbo ha costruito un bot di allenamento PvP usando solo command block, solo con comandi Minecraft vanilla, redstone, e un carpet mod per entità cloni di giocatore. Il risultato è un avversario IA per la massa che pratica cambi di breccia, cariche di vento e meccanismi di scudo col giocatore.

Il bot inizia come uno zombie con equipaggiamento infrangibile e un totem nella seconda mano (riempito a ogni tick via /item replace), rendendolo di fatto immortale. Poi, Master Gumbo passa ai bot player replica del Carpet Mod, che supportano meccaniche umanoidi (alzata di scudo, cambio oggetto) che gli zombie non possono fare.

The settings center : buttons to configure bot behavior

L'innovazione centrale è una macchina a stati guidata dal caso. Un armor stand viene teletrasportato sopra un cerchio di blocchi di cemento colorato via il comando /spreadplayers, che disperde le entità a caso. Il colore del blocco di cemento su cui l'armor stand atterra determina la prossima azione del bot:

  • Cemento rosso → strafe all'indietro
  • Cemento blu → si alza verso l'alto (attacco) con la carica di vento
  • Cemento verde → alza lo scudo
  • Cemento bianco → pausa (aggiunge ritardo tra le azioni)

The AI decision system : an armor stand on colored concrete

La posizione dell'armor stand è letta da command block che rilevano il blocco sotto e attivano il meccanismo corrispondente. Un blocco di redstone viene piazzato o rimosso per attivare/disattivare ogni comportamento. Poiché /spreadplayers gira in ripetizione, il bot prende continuamente nuove decisioni, creando un comportamento imprevedibile ma strutturato.

Master Gumbo la chiama "una forma molto semplice e basilare di IA": non impara dalle interazioni come le reti neurali, ma caso + macchina a stati produce un comportamento PvP realistico più difficile da prevedere di un bot scriptato. Il centro impostazioni include un'interfaccia libro per attivare/disattivare l'IA, regolare la difficoltà e configurare i pattern di movimento.

Dopo il suo allenamento col bot e poi in duello contro il giocatore che l'aveva trattato da scarso (nell'intro del suo video), Master Gumbo vince. La mappa è condivisa via Discord, Carpet Mod richiesto.

The bot in a duel, practicing mace PvP techniques

Là dove il bot PvP (Kadambi) impara dai pixel e ANNA ragiona attraverso un albero di compiti, il bot di Master Gumbo raggiunge l'intelligenza con transizioni di stato casuali: un approccio puro command block che prova che non servono reti neurali per costruire un avversario PvP convincente.

Altoclef: Baritone + albero di compiti su larga scala

Se ANNA è un bot simbolico che legge per sapere cosa fare, e il Mace Bot randomizza le decisioni, Altoclef è un agente autonomo completo che pianifica il suo percorso attraverso l'intero gioco. Costruito da gaucho-matero come mod Fabric e spinto dal pathfinding Baritone, Altoclef scompone qualsiasi obiettivo Minecraft in un albero di compiti e lo esegue senza intervento umano.

L'interfaccia è ingannevolmente semplice: scrivi @gamer in chat, e Altoclef inizia il compito "finire il gioco" da un mondo survival. Raccoglie legno, crafta attrezzi, mina ferro e diamante, costruisce un portale del Nether, raccoglie bastoni Blaze e perle dell'Ender, trova la stronghold, e uccide l'Ender Dragon. Tutto in autonomia, via il client Minecraft nativo, su qualsiasi server vanilla.

Sotto il cofano, questo è realizzato grazie a un sistema di albero di compiti ricorsivo dove ogni obiettivo di alto livello (per esempio, "crafta un piccone di diamante") è scomposto in compiti prerequisiti: minare diamante, poi fonderlo, poi craftare bastoni, poi combinarli. L'albero percorre il grafo completo delle ricette Minecraft, gestendo catene di produzione, drop di mostri, tabelle di loot e accesso ai contenitori. A differenza dell'albero scritto a mano di ANNA, i compiti di Altoclef sono classi Java programmabili che possono implementare logica arbitraria: strategie di combattimento, baratto coi piglin, pattern di esplorazione.

L'idea architetturale chiave è la separazione del cosa (l'albero di compiti) dal come (il pathfinding Baritone). Baritone gestisce gli spostamenti di basso livello: pathfinding, evitamento ostacoli, rottura blocchi, gestione inventario, mentre il sistema di compiti orchestra il piano di alto livello. Questa modularità significa che nessun componente deve essere un'IA: sono entrambi algoritmi deterministici, ma la loro combinazione produce un comportamento complesso e orientato a uno scopo che rivaleggia con gli approcci per apprendimento.

Altoclef rappresenta il limite dell'IA Minecraft simbolica pura: può finire il gioco da zero senza allenamento, senza GPU, e senza dati umani, ma non può adattarsi a compiti che i suoi programmatori non hanno previsto, e non può imparare dall'esperienza. Sa craftare un piccone di diamante perché una classe Java gli dice esattamente come, non perché l'ha scoperto da solo.

Cosa li collega

Approccio Metodo principale Dati Calcolo Risultato
Bot PvP del video RL + imitation learning 1 000 duelli 1 laptop, 60h Combo da 100 colpi
OpenAI Five RL in auto-apprendimento 180 anni di gioco/giorno 256 GPU, 10mesi Campione del mondo Dota 2
VPT IL semi-supervisionato 70K h YouTube + IDM 720 GPU, 9 giorni Attrezzi di diamante
DreamerV3 RL world model Tragitti sognati 1 GPU, 9 giorni Diamante da zero
ANNA NLP simbolico + albero di compiti Ricette scritte 1 laptop, istantaneo Qualsiasi oggetto craftabile
Altoclef Baritone + task tree FS Classi Java di compiti Mod Fabric, no GPU Finisce l'intero gioco
Mace Bot Macchina a stati Command block Decisioni casuali MC vanilla, senza GPU Allenamento PvP mazza

Il bot del video è il più vincolato in risorse ma il più onesto sul processo. Fallisce prima, poi itera. Dimentica ciò che ha imparato, poi lo impara di nuovo. Finisce con una combo da 100 colpi: ma anche con una domanda su ciò che ha costruito che bara.


Video: AI Learns Minecraft PvP di Kadambi | AI Engineering

VPT: Articolo · Blog · GitHub

OpenAI Five: Articolo · Blog

DreamerV3: Articolo · GitHub

ANNA: GitHub · (Node.js, Mineflayer, NLP francese, albero di compiti)

Altoclef: GitHub · Fork attivo · (Fabric, Baritone, task tree, finisce il gioco)

Mace Bot: Video di Master Gumbo · (Command block, Carpet Mod, macchina a stati)

Die KI lernt Minecraft-PvP, Imitation Learning, Reinforcement Learning, und die 30 Variablen, die zählten

1 000 aufgezeichnete Duelle, neuronales Netz trainiert auf Pixeln, 90 % Treffpräzision: und der Bot rannte geradeaus gegen eine Wand. Dann kamen RL, curriculares Lernen und 60 Stunden Training.

Einleitung

AI Learns Minecraft PvP thumbnail

Es gibt ein Video namens AI Learns Minecraft PvP (Reinforcement Learning + Behavior Cloning) von Kadambi | AI Engineering, und es ist eine der ehrlichsten Erzählungen über Videospiel-KI-Training, die ich gesehen habe.

Das Prinzip: Einen Bot bauen, der Minecraft-PvP spielt (Schwert-Kit, voll verzauberte Diamantrüstung), indem er den Bildschirm anschaut und Maus- und Tastaturbefehle schickt. Er funktioniert nur mit Pixeln als Input und Aktionen als Output, ohne den Spielspeicher zu lesen, ohne Makros und ohne Mods.

Was das Video interessant macht, ist nicht das Endergebnis. Es ist der Weg: Das Scheitern des Imitation Learning, der Pivot zu Feature Engineering, die katastrophalen Vergessenszyklen und die 60+ Stunden Training auf einem Laptop ohne GPU.

Phase 1: Imitation Learning (das Scheitern)

The bot during imitation learning: facing a wall, jumping up and down

Der Ersteller begann mit einem vernünftigen Ansatz: 1.000 Duelle seines eigenen Gameplays aufzeichnen, jeden Mausklick und Tastendruck dem entsprechenden Bild zuordnen und ein neuronales Netz trainieren, Aktionen aus Pixeln vorherzusagen.

# Pseudocode für die Imitation-Learning-Pipeline
dataset = record_duels(1000)          # hundreds of thousands of frames
for frame, action in dataset:
    pixels = capture_screen(frame)
    network.train(pixels → action)    # Tastatur/Maus aus Bild vorhersagen

Das Netz lernte, Treffer mit 90 % Präzision vorherzusagen. Vielversprechend.

Dann testeten sie es in einem echten Match. Der Bot lief geradeaus zum Kartenrand, stellte sich vor eine Wand und sprang auf und ab.

Warum?

Die Faulheitsfalle. In einem PvP-Kampf ist die W-Taste die meiste Zeit gedrückt. Das Netz realisierte, dass es hohe Präzision erreichen konnte, indem es einfach W gedrückt hielt und sonst nichts tat. Es optimierte die häufigste Aktion auf Kosten aller anderen.

Die menschliche Latenz. Die Aktionen im Dataset sind um etwa 200 ms menschliche Reaktionszeit verzögert. Bild für Bild sind Ursache und Wirkung für ein Modell aus rohen Pixeln fast unmöglich zu lernen, wenn Aktion und ihre sichtbare Konsequenz um mehrere Bilder getrennt sind.

Inkonsistente Demonstrationen. Das eigene Gameplay des Erstellers variierte: Manchmal strafte er mit der Tastatur, manchmal zielte er mit der Maus in identischen Situationen. Diese widersprüchlichen Inputs verwirrten das Netz.

Phase 2: Reinforcement Learning mit Curriculum

The bot learning to track horizontally during RL training

Das Imitation Learning aufgebend, wechselte der Ersteller zu RL. Aber einen frischen Agenten in ein komplettes PvP-Duell zu stürzen ist nutzlos: Es passiert zu viel auf einmal, als dass zufällige Exploration irgendwas finden könnte.

Die Lösung: Curriculares Lernen. Jede Mechanik isolieren und den Bot die Basics beherrschen lassen, bevor er in einen echten Kampf geht.

Schritt 1: Horizontales Zielen (7 Stunden)

Die simpelste Reward-Funktion: Positive Belohnung fürs Treffen eines Ziels, negative Strafe für erlittenen Schaden.

Anfangs bewegt sich der Bot kaum (neuronales Netz mit neutralen Werten initialisiert). Er zittert lateral: Das ist der Bot, der verschiedene Aktionen testet, um zu sehen, welche Belohnungen geben.

Nach einer Stunde lernt er, sich horizontal zu zentrieren, aber mühsam langsam. Nach 7 Stunden kann er dem Gegner links und rechts folgen, wenn auch asymmetrisch (besser beim Bewegen von rechts nach links als umgekehrt, ein Verhalten, das während des ganzen Trainings persistierte).

Schritt 2: Feature Engineering

Der rohe Screenshot machte über 2 Millionen Pixel. Selbst auf 360p reduziert sind das 200.000 Inputs: Viel zu viel für effektives Lernen.

Der Ersteller analysierte Tausende Duelle und identifizierte 30 Variablen, die wirklich zählen, verteilt in drei Gruppen:

Vision (Gegnerverfolgung):

  • Distanz des Gegners zum Crosshair
  • Größe der Gegner-Bounding-Box
  • Höhe des Gegners
  • Crosshair-Zustand (auf Ziel / neben Ziel)
  • Relative Geschwindigkeit

Statt das ganze Bild zu verarbeiten, filtert der Bot die Pixel strikt nach der Farbe der Gegner-Rüstung, was die Erkennung quasi instantan macht. Hintergrundblöcke ähnlicher Farbe können dieses Filtern stören: Aber in Minecraft kann man einfach die Texturen ändern.

OCR (HUD lesen): Da der Bot keine Koordinaten aus dem Spielcode holen kann, scannt er den Bildschirm live, um zu extrahieren:

  • Kamera-Pitch
  • Momentum
  • Y-Level

Standard-OCR kämpft mit Minecrafts transparentem Text, also werden die kritischen Daten zum Schwarz-Weiß gezwungen für instantanes Lesen.

Zeit (Kontextfenster):

  • Vergangene Zeit seit du den Gegner getroffen hast
  • Vergangene Zeit seit er dich getroffen hat
  • Gleitender Puffer der vorherigen Bot-Aktionen

Das gibt dem Netz zeitlichen Kontext: Ohne ihn hat der Bot keine Ahnung, ob er mitten in einer Combo ist oder gerade erst einen Kampf beginnt.

Schritt 3: Vertikales Zielen (7 weitere Stunden)

The bot learning to aim up and down during RL training

Vertikale Mausbewegung hinzuzufügen war anfangs "ein totales Desaster". Die Anfangsleistung war gebrochen.

Nach einer weiteren Stunde in der Sandbox kapierte der Bot, wie man hoch und runter schaut. Aber dabei vergaß er komplett, wie man horizontal folgt.

Das ist katastrophales Vergessen: Ein klassisches Machine-Learning-Problem, wo Optimierung für neue Daten zuvor gelernte Repräsentationen überschreibt. Bei der Optimierung des vertikalen Zielens überschrieb das neuronale Netz versehentlich seine horizontalen Fortschritte und ließ den Ersteller mit einem Bot zurück, der sein Crosshair level halten, aber keinem Ziel folgen konnte.

Es brauchte 6 zusätzliche Stunden, um horizontales Tracking bei Erhalt der vertikalen Kontrolle zurückzugewinnen. Der Bot hielt dann gutes Crosshair-Placement dank der OCR-Gruppe, die den Kamera-Pitch extrahierte.

Schritt 4: Tastaturkontrolle

The bot toggling the W key constantly, learning to commit to movement

Dem Bot Tastaturerlaubnis zu geben machte die Zeitmerkmale noch kritischer. Anfangs wurde die W-Taste ständig an- und ausgeschaltet: Ein schnelles Wechseln, weil das Netz nicht gelernt hatte, sich festzulegen.

Dieses Verhalten wurde bestraft, also lernte der Bot, es zu glätten. Er fing an, mehr Treffer im Sprint zu landen (der dumpfe Sound gegen das Swish eines stehenden Treffers). Manche Combos wirkten unbefriedigend, weil der Bot seinen Reichweitenvorteil gegen den Gegner ausnutzte.

Um es fair zu machen, erhöhte der Ersteller die Gegnerreichweite. Viele der gelernten Bot-Strategien hörten auf zu funktionieren. Aber mit der Zeit passte er sich an.

Schritt 5: Dem Bot beibringen, wann er klicken soll

Für die finale Phase brachte der Ersteller Imitation Learning zurück: Aber nur um Klick-Timing zu lehren, nicht die komplette Kontrollpolicy. Der Bot versuchte, die Klickmuster aus den aufgezeichneten Duellen zu imitieren.

Anfangs hatte er zu viel Angst, irgendwas zu versuchen, aus Furcht vor der Strafe für schlechte Klicks. Aber er fand schließlich den Mut zu schlagen und Treffer zu landen. Natürlich vergaß er dabei wieder, wie man zielt: Der Ersteller musste ihn 50 zusätzliche Stunden in Ruhe lassen, um zu einem befriedigenden Zustand zurückzukehren.

Die Cheat-Debatte

Das Video endet mit der Frage: Cheatet dieser Bot?

Das Argument dagegen: Der Bot verarbeitet nur, was ein Mensch sieht (dieselben Pixel), schickt dieselben Tastatur/Maus-Inputs wie ein Mensch (ohne Paketmanipulation wie Anti-Knockback) und liest nicht den Spielspeicher (ohne X-Ray oder ESP).

Das Argument dafür: Ein Bot kann schneller verarbeiten als ein Mensch, und wenn der Gegner denkt, er spiele gegen einen Menschen, aber das nicht der Fall ist, ist das Täuschung.

Die Meinung des Erstellers: Es hängt von der Intention ab. Wenn beide Parteien wissen, dass es ein Bot ist, ist das Match fair. Der Bot kettelt den Gegner mit einer 100-Treffer-Serie ins Leere.

Das Ergebnis

The bot executing a 100-hit combo

Ein Minecraft-PvP-Bot trainiert auf einem Laptop ohne GPU, gebaut auf einer Custom-Trainingspipeline mit:

  • Screenshot für Pixel-Input (2M+ Pixel → 30 designede Merkmale)
  • Curriculares Lernen (horizontal → vertikal → Tastatur → Klicks)
  • RL für Motorsteuerung + Imitation Learning für Klick-Timing
  • Feature Engineering auf rohen Pixeln (3 Gruppen: Vision, OCR, Zeit)
  • 60+ Stunden Training über mehrere Phasen

Die Gesamttrainingszeit beträgt Dutzende Stunden, aber die meisten sind passiv. Der Bot zittert bis zum Verständnis, vergisst Gelerntes, lernt neu und kettelt am Ende eine 100-Treffer-Serie.

Das Video ist auf youtube.com/watch?v=j5nxDKAjg6U.


Dieser Artikel deckt nur den Videoinhalt ab. Für breiteren Minecraft-KI-Kontext: VPT, DreamerV3 und die Imitation-Learning-vs-RL-Landschaft: Die Abschnitte unten verbinden dieses Projekt mit dem größeren Feld.

VPT: Behavior Cloning in großem Maßstab

OpenAI's VPT project diagram: the Inverse Dynamics Model predicts actions from pairs of frames

Der "Behavior Cloning"-Ansatz des Videos (Phase 1) ist dieselbe Technik, die OpenAI in seinem Video PreTraining (VPT)-Projekt nutzte, aber an entgegengesetzten Enden des Ressourcenspektrums. VPT bewies, dass Imitation Learning für Minecraft funktioniert, wenn man 70.000 Stunden Video, 720 GPUs und ein Inverse-Dynamics-Model zum Pseudo-Labeln ungelabelter Daten hat. Der Ersteller hier bewies, dass es mit Laptop und 1.000 Duellen scheitert: Aber aus demselben fundamentalen Grund: Imitation Learning ist durch die Qualität seiner Demonstrationen begrenzt.

OpenAI's VPT agent mining a tree in Minecraft

Die VPT-Pipeline löst das Datenproblem, indem sie ein Inverse Dynamics Model (IDM) trainiert, das Bild t-1 und Bild t+1 anschaut, um die Aktion bei Bild t vorherzusagen. Weil das IDM nicht-kausal ist (es sieht zukünftige Bilder), ist die Aufgabe leichter als Behavior Cloning und braucht viel weniger gelabelte Daten. Sie zahlten Contractors etwa 2.000 $ für 2.000 Stunden gelabelte Daten und nutzten das IDM dann, um 70.000 Stunden Minecraft-YouTube-Videos pseudo-zu-labeln.

Crafting/Sammelrate je nach Pre-Training-Datenvolumen (Log-Skala): Crafting Tables, Holztools, Steintools

Der Skalierungseffekt ist klar: Auf einer Log-Achse von 1 Stunde bis 100.000 Stunden Pre-Training-Daten steigt die Rate, mit der das Modell einen Crafting Table, Holztools, dann Steintools herstellt, stufenweise. Das nur auf den 2.000 von Contractors gelabelten Stunden trainierte Modell cappt bei Crafting Tables; erst mit den 70.000 IDM-pseudo-gelabelten Stunden (gestrichelte Linie auf dem Graph) emergieren Steintools Zero-Shot, ohne einen einzigen RL-Schritt.

Das resultierende 0,5B-Parameter-Fundamentmodell erreichte Zero-Shot-Fähigkeiten, unmöglich mit RL allein: Bäume fällen, Tables herstellen, Säulensprung: Und feingetunt mit RL wurde es die erste KI, die Diamanttools herstellte.

Reward je nach RL-Trainingsepisodenzahl: von zufällig initialisiertem Modell starten vs. vom VPT-pretrainierten Modell starten

Dieser Graph zeigt, warum Pre-Training alles für Downstream-RL ändert. RL gestartet von einem zufällig initialisierten Netz (orange) bleibt flach nahe 0 über fast eine Million Episoden: Die "bekomme einen Diamant"-Aufgabe hat zu sparse Rewards, als dass ein naiver Agent per Zufallsexploration darüber stolpern könnte. RL feingetunt vom VPT-pretrainierten Modell (grün) startet schon mit Basisverhalten (minen, herstellen, erkunden) und steigt stetig bis zu einem Reward von etwa 25, was dem kompletten Weg zu einer Diamantspitzhacke entspricht.

Offizielle Videodemos des OpenAI-VPT-Projekts, die den Agenten in Aktion zeigen.

OpenAI Five: Das Reward-Shaping-Problem

OpenAI Five playing Dota 2 against human professionals

OpenAI Five (2019) besiegte die Dota-2-Weltmeister mit purem Self-Play-RL: Kein Imitation Learning. 256 GPUs, 128.000 CPU-Kerne, 180 Spieljahre pro Tag, 10 Monate Training.

Aber die Reward-Funktion wurde von Dota-Experten von Hand designed: 28 Merkmale von 20.000 verfügbaren, jedes mit manuell justierten Gewichten. Nettovermögen, Kills, Tode, Turmgesundheit, Lane-Zuweisungen: Alles wurde von Menschen selektiert und gewichtet. Ohne diese Modellierung lernte der Agent kaum (Experiment: Reward nur Sieg/Niederlage → Plateau auf Semi-Pro-Niveau).

Der Video-Bot steht vor demselben Problem: Seine Reward-Funktion kodiert das Verständnis des Erstellers davon, was in PvP zählt (Treffen ist gut, getroffen werden ist schlecht, Crosshair halten ist gut). Unvermeidlich: RL braucht ein Reward-Signal, und die Modellierung dieses Signals kodiert menschlichen Bias.

DreamerV3: World Models und sparse Rewards

DreamerV3 benchmark scores across over 150 diverse tasks with a single configuration

DeepMinds DreamerV3 (2023) verfolgt einen dritten Ansatz. Statt Behavior Cloning oder RL mit Anreizen lernt er ein World Model: Ein neuronales Netz, das zukünftige Zustände und Rewards aus vergangenen Aktionen vorhersagt: Und plant, indem es von möglichen Zukünften träumt. Es ist der erste Algorithmus, der in Minecraft von null Diamanten sammelt ohne menschliche Daten oder Curricula, 2025 in Nature publiziert.

DreamerV3 learns a world model to imagine future trajectories

Die Diamantumgebung definiert einen sparsen Reward über 12 Meilensteine (Stamm → Bretter → Stock → Crafting Table → Holzspitzhacke → Stein → Steinspitzhacke → Eisenerz → Ofen → Eisenbarren → Eisenspitzhacke → Diamant), jeder gibt +1 nur einmal. Plus einen kleinen Gesundheitsreward (±0,01 pro HP). Erreichbares Total: 11,1 in einer 36.000-Schritte-Episode.

DreamerV3s World Model erlaubt ihm, Trajektorien zu imaginieren und intern zu evaluieren: Der Actor lernt aus geträumten Rollouts statt aus echter Erfahrung und testet Tausende mögliche Zukünfte für jeden echten Schritt. Das macht sparse Rewards möglich, wo sie einen Standard-RL-Agenten zerstören würden.

Über 40 Seeds trainiert für 100M Umgebungsschritte sammelten 24 von 40 mindestens einen Diamanten. Der erste Diamant erschien nach 29M Schritten (~9 Tage auf einer GPU).

ANNA: Symbolische KI trifft Minecraft

ANNA's task tree decomposition for a flint-and-steel

Vor dem Video-PvP-Bot, vor VPT und DreamerV3 gab es ANNA: Einen Minecraft-Bot gebaut mit völlig anderer Philosophie. Statt aus Pixeln oder Rewards zu lernen, nutzt ANNA eine symbolische Zustandsmaschine mit einem französischen NLP-Parser und einem handgeschriebenen Task-Abhängigkeitsbaum.

Erstellt 2022 (bevor "Vibe Coding" ein Begriff war), verbindet sich ANNA via Mineflayer mit einem Minecraft-Server und versteht natürlichsprachliche Commands auf Französisch. Sag "obtiens un briquet", und ANNA parst das Verb (obtien → erhalten), sucht das Objektrezept und zerlegt es rekursiv in Subtasks: Eiche minen → Bretter herstellen → Stöcke herstellen → Crafting Table herstellen → Holzspitzhacke herstellen → Stein minen → Steinspitzhacke herstellen → Eisenerz minen → Eisenbarren schmelzen → Feuerzeug herstellen.

ANNA's NLP parser architecture for French command recognition

Die NLP-Schicht (utils/id_parser.js) trennt Commands an "et", um parallele Befehle zu handhaben, mappt französische Verben auf Tasktypen und übersetzt französische Objektnamen via 5.000-Einträge-Wörterbuch in Minecraft-IDs. Unerkannte Commands fallen auf ein GPT-basiertes Conversationssystem zurück, das ANNA als bewussten Minecraft-Begleiter präsentiert.

Der Taskbaum (mc-tasks-tree/) ist das Herz: Ein rekursiver Algorithmus, der den Minecraft-Objektgraphen durchläuft (Craft-Rezepte, Mining-Erträge, Monsterdrops, Ofenrezepte), um einen Schritt-für-Schritt-Plan zu produzieren. Für einen Diamanthelm generiert er eine 40+ Schritte-Zerlegung über Holz-, Stein-, Eisen- und Diamantlevel.

ANNA's diamond helmet task tree: a 40+ step breakdown

Wo der Video-PvP-Bot aus Erfahrung lernt, funktioniert ANNA aus Wissen. Er braucht keine 1.000 Duelle oder 60 Stunden Training: Er braucht Baum, Parser und Server/Verteiler. Aber er kann auch nicht über das generalisieren, was sein Baum kodiert. Keine Menge Zustandsmaschinen-Engineering würde ihn PvP lehren.

ANNAs Ansatz spiegelt eine andere KI-Ära: Bevor End-to-End-Lernen dominierte, als das Versprechen war, dass symbolisches Reasoning plus sorgfältiges Engineering intelligentes Verhalten produzieren könnte. Heute repräsentieren Projekte wie ANNA und der PvP-Bot zwei Pole der Minecraft-KI: Der eine reasoniert über die Welt, der andere perzipiert sie.

Master Gumbo's Mace Bot: KI mit nur Command Blocks

The Mace PvP training arena with the bot

In einer völlig anderen Ecke der Minecraft-KI hat der YouTuber Master Gumbo einen PvP-Trainingsbot gebaut mit nur Command Blocks, nur mit Vanilla-Minecraft-Commands, Redstone und einem Carpet-Mod für Spielerklon-Entities. Das Ergebnis ist ein KI-Gegner für die Masse, die Breach-Wechsel, Wind Charges und Schildmechaniken mit dem Spieler übt.

Der Bot startet als Zombie mit unzerbrechlicher Ausrüstung und einem Totem in der zweiten Hand (jeden Tick via /item replace gefüllt), was ihn effektiv unsterblich macht. Später wechselt Master Gumbo zu Carpet-Mod-Player-Replicas, die humanoide Mechaniken unterstützen (Schildheben, Itemwechsel), die Zombies nicht können.

The settings center: buttons to configure bot behavior

Die zentrale Innovation ist eine zufallsgesteuerte Zustandsmaschine. Ein Rüstungsständer wird via /spreadplayers-Command über einen Kreis farbiger Betonblöcke teleportiert, das Entities zufällig verteilt. Die Betonblockfarbe, auf der der Ständer landet, bestimmt die nächste Bot-Aktion:

  • Roter Beton → rückwärts strafen
  • Blauer Beton → mit Wind Charge nach oben steigen (Angriff)
  • Grüner Beton → Schild heben
  • Weißer Beton → Pause (fügt Delay zwischen Aktionen hinzu)

The AI decision system: an armor stand on colored concrete

Die Ständerposition wird von Command Blocks gelesen, die den Block darunter erkennen und den entsprechenden Mechanismus aktivieren. Ein Redstone-Block wird platziert oder entfernt, um jedes Verhalten zu aktivieren/deaktivieren. Weil /spreadplayers in Wiederholung läuft, trifft der Bot kontinuierlich neue Entscheidungen und erzeugt unvorhersehbares, aber strukturiertes Verhalten.

Master Gumbo nennt das "eine sehr simple und basale Form von KI": Es lernt nicht aus Interaktionen wie neuronale Netze, aber Zufall + Zustandsmaschine produziert realistisches PvP-Verhalten, das schwerer vorherzusagen ist als ein geskripteter Bot. Das Settings-Center enthält ein Book-Interface zum An/Ausschalten der KI, Schwierigkeit justieren und Bewegungsmuster konfigurieren.

Nach ihrem Training mit dem Bot und dann im Duell gegen den Spieler, der ihn Loser genannt hatte (im Intro seines Videos), gewinnt Master Gumbo. Die Map wird via Discord geteilt, Carpet Mod nötig.

The bot in a duel, practicing mace PvP techniques

Wo der PvP-Bot (Kadambi) aus Pixeln lernt und ANNA durch einen Taskbaum reasoniert, erreicht Gumbos Bot Intelligenz durch zufällige Zustandsübergänge: Ein purer Command-Block-Ansatz, der beweist, dass du keine neuronalen Netze brauchst, um einen überzeugenden PvP-Gegner zu bauen.

Altoclef: Baritone + Taskbaum in großem Maßstab

Wenn ANNA ein symbolischer Bot ist, der liest, um zu wissen, was zu tun ist, und der Mace Bot Entscheidungen randomisiert, ist Altoclef ein kompletter autonomer Agent, der seinen Weg durchs ganze Spiel plant. Gebaut von gaucho-matero als Fabric-Mod und angetrieben von Baritone-Pathfinding, zerlegt Altoclef jedes Minecraft-Ziel in einen Taskbaum und führt es ohne menschlichen Eingriff aus.

Das Interface ist täuschend simpel: Tippe @gamer in den Chat, und Altoclef startet die "Spiel beenden"-Aufgabe aus einer Survival-Welt. Er erntet Holz, craftet Tools, mint Eisen und Diamant, baut ein Netherportal, sammelt Blaze Rods und Enderperlen, findet die Stronghold und tötet den Enderdrachen. Alles autonom, via nativem Minecraft-Client, auf jedem Vanilla-Server.

Unter der Haube wird das durch ein rekursives Taskbaumsystem erreicht, wo jedes High-Level-Ziel (z. B. "crafte eine Diamantspitzhacke") in Prerequisite-Tasks zerlegt wird: Diamant minen → schmelzen → Stöcke craften → kombinieren. Der Baum durchläuft den kompletten Minecraft-Rezeptgraphen und handhabt Produktionsketten, Monsterdrops, Loot-Tabellen und Containerzugriff. Im Gegensatz zu ANNAs handgeschriebenem Baum sind Altoclefs Tasks programmierbare Java-Klassen, die arbiträre Logik implementieren können: Kampfstrategien, Piglin-Trading, Explorationsmuster.

Die architektonische Kernidee ist die Trennung von Was (der Taskbaum) und Wie (Baritone-Pathfinding). Baritone handhabt Low-Level-Bewegung: Pathfinding, Hindernisvermeidung, Blockabbau, Inventarverwaltung, während das Tasksystem den High-Level-Plan orchestriert. Diese Modularität heißt, dass keine Komponente eine KI sein muss: Beides sind deterministische Algorithmen, aber ihre Kombination produziert komplexes zielorientiertes Verhalten, das mit Lernansätzen rivalisiert.

Altoclef repräsentiert die Grenze purer symbolischer Minecraft-KI: Er kann das Spiel von null beenden ohne Training, ohne GPU und ohne menschliche Daten, kann sich aber nicht an Aufgaben anpassen, die seine Programmierer nicht antizipiert haben, und kann nicht aus Erfahrung lernen. Er weiß, wie man eine Diamantspitzhacke craftet, weil eine Java-Klasse ihm exakt sagt, wie, nicht weil er es selbst entdeckt hätte.

Was sie verbindet

Ansatz Hauptmethode Daten Rechenleistung Ergebnis
Video-PvP-Bot RL + Imitation Learning 1 000 Duelle 1 Laptop, 60h 100-Treffer-Combo
OpenAI Five Self-Play-RL 180 Spieljahre/Tag 256 GPUs, 10Mo Dota-2-Weltmeister
VPT Semi-supervisiertes IL 70K h YouTube + IDM 720 GPUs, 9 Tage Diamanttools
DreamerV3 World-Model-RL Geträumte Trajekte 1 GPU, 9 Tage Diamant von null
ANNA Symbolisches NLP + Taskbaum Geschriebene Rezepte 1 Laptop, instant Jedes craftbare Objekt
Altoclef Baritone + FS-Taskbaum Java-Taskklassen Fabric-Mod, keine GPU Komplettes Spiel besiegt
Mace Bot Command-Block-Zustandsmaschine Zufallsentscheidungen Vanilla MC, keine GPU Mace-PvP-Training

Der Video-Bot ist der ressourcenbeschränkteste, aber ehrlichste über den Prozess. Er scheitert zuerst, dann iteriert er. Er vergisst Gelerntes, lernt es dann neu. Er endet mit einer 100-Treffer-Combo: Aber auch mit einer Frage dazu, ob das Gebaute Cheat ist.


Video: AI Learns Minecraft PvP von Kadambi | AI Engineering

VPT: Paper · Blog · GitHub

OpenAI Five: Paper · Blog

DreamerV3: Paper · GitHub

ANNA: GitHub · (Node.js, Mineflayer, französisches NLP, Taskbaum)

Altoclef: GitHub · Aktiver Fork · (Fabric, Baritone, Task Tree, schlägt Spiel)

Mace Bot: Video von Master Gumbo · (Command Blocks, Carpet Mod, Zustandsmaschine)

ИИ учит PvP Minecraft -- Imitation Learning, Reinforcement Learning и 30 переменных, которые сыграли

1 000 записанных дуэлей, нейросеть, обученная на пикселях, 90 % точности ударов : а бот пёр прямо в стену. Затем пришли RL, куррикулумное обучение и 60 часов тренировки.

Введение

AI Learns Minecraft PvP thumbnail

Есть видео под названием AI Learns Minecraft PvP (Reinforcement Learning + Behavior Cloning) от Kadambi | AI Engineering, и это один из самых честных рассказов об обучении игрового ИИ, что я видел.

Принцип : построить бота, играющего в PvP Minecraft (набор с мечом, полностью зачарованная алмазная броня), глядя в экран и отправляя команды мыши и клавиатуры. Он работает только с пикселями на входе и действиями на выходе, без чтения памяти игры, без макросов и без модов.

Интересно в видео не финальный результат. А путь : провал imitation learning, пивот к feature engineering, циклы катастрофического забывания и 60+ часов обучения на ноутбуке без GPU.

Фаза 1 : Imitation Learning (провал)

Бот во время imitation learning : смотрит в стену, прыгает вверх-вниз

Создатель начал с разумного подхода : записать 1 000 дуэлей собственного геймплея, сопоставить каждый клик мыши и нажатие клавиши соответствующему кадру и обучить нейросеть предсказывать действия по пикселям.

# Псевдокод пайплайна imitation learning
dataset = record_duels(1000)          # сотни тысяч кадров
for frame, action in dataset:
    pixels = capture_screen(frame)
    network.train(pixels → action)    # предсказать клавиатуру/мышь по картинке

Сеть научилась предсказывать удары с 90 % точностью. Многообещающе.

Затем её протестировали в настоящем матче. Бот направился прямо к краю карты, встал лицом к стене и прыгал вверх-вниз.

Почему?

Ловушка лени. В PvP-бою клавиша W зажата большую часть времени. Сеть поняла, что может достичь высокой точности, просто держа W зажатой и больше ничего не делая. Она оптимизировала самое частое действие в ущерб всем остальным.

Человеческая задержка. Действия в датасете задержаны примерно на 200 мс человеческой реакции. Покадрово причину и следствие почти невозможно выучить модели из сырых пикселей, когда действие и его видимое следствие разделены несколькими кадрами.

Несогласованные демонстрации. Собственный геймплей создателя варьировался : порой он стрейфил клавиатурой, порой целился мышью в идентичных ситуациях. Эти противоречивые входы сбили сеть.

Фаза 2 : Reinforcement Learning с куррикулумом

Бот учится горизонтально отслеживать во время RL-тренировки

Отбросив imitation learning, создатель переключился на RL. Но бросать свежего агента в полную PvP-дуэль бесполезно : слишком много всего сразу, чтобы случайное исследование что-то нашло.

Решение : куррикулумное обучение. Изолировать каждую механику и дать боту освоить основы, прежде чем входить в настоящий бой.

Шаг 1 : Горизонтальная наводка (7 часов)

Простейшая функция награды : положительная награда за попадание по цели, отрицательный штраф за получение урона.

Изначально бот едва двигается (нейросеть инициализирована нейтральными значениями). Он трясётся вбок : это бот тестирует разные действия, чтобы увидеть, какие дают награды.

Через час он учится центрироваться горизонтально, но мучительно медленно. Через 7 часов он может следить за врагом влево и вправо, хотя асимметрично (лучше двигается справа налево, чем слева направо, поведение, сохранявшееся всю тренировку).

Шаг 2 : Feature Engineering

Сырой скриншот был больше 2 миллионов пикселей. Даже ужатый до 360p это 200 000 входов : слишком много для эффективного обучения.

Создатель проанализировал тысячи дуэлей и выявил 30 переменных, которые реально играют, разбитых на три группы :

Зрение (отслеживание врага) :

  • Дистанция врага до прицела (crosshair)
  • Размер ограничивающего бокса врага
  • Высота врага
  • Состояние прицела (на цели / вне цели)
  • Относительная скорость

Вместо обработки всего изображения бот фильтрует пиксели строго по цвету вражеской брони, делая детект почти мгновенным. Блоки фона похожего цвета могут мешать этой фильтрации : но в Minecraft можно просто сменить текстуры.

OCR (чтение HUD) : Раз бот не может забрать координаты из кода игры, он сканирует экран в реальном времени, чтобы извлечь :

  • Pitch камеры
  • Momentum
  • Уровень Y

Стандартный OCR страдает с прозрачным текстом Minecraft, так что критические данные форсируются в чёрно-белое для мгновенного чтения.

Время (окно контекста) :

  • Время с твоего попадания по врагу
  • Время с его попадания по тебе
  • Скользящий буфер предыдущих действий бота

Это даёт сети временной контекст : без него бот понятия не имеет, в середине комбо он или только начинает бой.

Шаг 3 : Вертикальная наводка (ещё 7 часов)

Бот учится целиться вверх и вниз во время RL-тренировки

Добавление вертикального движения мыши было «полной катастрофой» вначале. Начальная производительность была сломана.

После ещё часа в песочнице бот понял, как смотреть вверх и вниз. Но в процессе полностью забыл, как следить горизонтально.

Это катастрофическое забывание : классическая проблема машинного обучения, когда оптимизация под новые данные затирает ранее выученные представления. Оптимизируя вертикальную наводку, нейросеть случайно затёрла горизонтальный прогресс, оставив создателя с ботом, умеющим держать прицел ровно, но неспособным следить за целью.

Понадобилось ещё 6 часов, чтобы вернуть горизонтальное слежение, сохранив вертикальный контроль. Бот тогда держал хорошее размещение прицела благодаря группе OCR, извлекающей pitch камеры.

Шаг 4 : Управление клавиатурой

Бот постоянно переключает клавишу W, учась держать движение

Разрешение боту использовать клавиатуру сделало временные характеристики ещё критичнее. Вначале клавиша W постоянно включалась и выключалась : быстрое переключение, потому что сеть не научилась держать.

Это поведение штрафовалось, так что бот научился сглаживать. Он начал чаще попадать в спринте (глухой звук против свиста удара стоя). Некоторые комбо казались неудовлетворительными, потому что бот эксплуатировал своё преимущество дистанции над врагом.

Чтобы уравнять, создатель увеличил дистанцию врага. Многие выученные ботом стратегии перестали работать. Но со временем он адаптировался.

Шаг 5 : Учить бота, когда кликать

Для финальной фазы создатель вернул imitation learning : но только чтобы научить таймингу кликов, а не полной политике управления. Бот пытался имитировать модели кликов из записанных дуэлей.

Изначально он слишком боялся пробовать хоть что-то, страшась штрафа за плохие клики. Но в итоге нашёл смелость бить и попадать. Конечно, при этом снова забыл, как целиться : создателю пришлось оставить его в покое ещё на 50 дополнительных часов, чтобы вернуться к удовлетворительному состоянию.

Дебаты о читерстве

Видео заканчивается вопросом : этот бот читерит?

Аргумент против : бот обрабатывает только то, что видит человек (те же пиксели), шлёт те же входы клавиатуры/мыши, что человек (без манипуляции пакетами вроде anti-knockback), и не читает память игры (без X-ray и ESP).

Аргумент за : бот может обрабатывать быстрее человека, а если противник думает, что играет против человека, а это не так, это обман.

Мнение создателя : зависит от намерения. Если обе стороны знают, что это бот, матч честный. Бот приковывает врага в пустоте серией из 100 ударов.

Результат

Бот выполняет комбо на 100 ударов

PvP-бот Minecraft, обученный на ноутбуке без GPU, построенный на кастомном тренировочном пайплайне с :

  • Скриншот-захватом для пиксельного входа (2M+ пикселей → 30 спроектированных признаков)
  • Куррикулумным обучением (горизонталь → вертикаль → клавиатура → клики)
  • RL для моторного управления + imitation learning для тайминга кликов
  • Feature engineering поверх сырых пикселей (3 группы : зрение, OCR, время)
  • 60+ часов обучения в несколько фаз

Общее время обучения десятки часов, но большинство пассивны. Бот трясётся до понимания, забывает выученное, перевыучивает и в итоге выдаёт серию из 100 ударов.

Видео на youtube.com/watch?v=j5nxDKAjg6U.


Эта статья покрывает только содержимое видео. Для более широкого контекста про ИИ Minecraft : VPT, DreamerV3 и ландшафт imitation learning против RL : секции ниже связывают этот проект с более широкой областью.

VPT : Behavior cloning в большом масштабе

Диаграмма проекта VPT от OpenAI : Inverse Dynamics Model предсказывает действия по парам кадров

Подход «behavior cloning» из видео (Фаза 1) та же техника, что OpenAI использовал в проекте Video PreTraining (VPT), но на противоположных концах спектра ресурсов. VPT доказал, что imitation learning работает для Minecraft, когда есть 70 000 часов видео, 720 GPU и inverse dynamics model для псевдоразметки неразмеченных данных. Создатель здесь доказал, что он проваливается с ноутбуком и 1 000 дуэлей : но по той же фундаментальной причине : imitation learning ограничен качеством своих демонстраций.

Частота крафта/сбора в зависимости от объёма предобучающих данных (лог-шкала) : крафт-столы, деревянные инструменты, каменные инструменты

Эффект масштаба чёткий : на лог-оси от 1 часа до 100 000 часов предобучающих данных частота, с которой модель делает крафт-стол, деревянные инструменты, затем каменные инструменты, растёт ступенями. Модель, обученная только на 2 000 часов, размеченных контракторами, упирается в потолок крафт-столов ; именно добавление 70 000 часов, псевдоразмеченных IDM (пунктир на графике), даёт появление каменных инструментов в zero-shot без единого шага RL.

Результирующая фундаментальная модель на 0,5B параметров достигла zero-shot способностей, невозможных с одним RL : рубить деревья, делать столы, прыжок столбом : а дообученная с RL стала первым ИИ, сделавшим алмазные инструменты.

Награда в зависимости от числа эпизодов RL-тренировки : старт со случайно инициализированной модели против старта с предобученной модели VPT

Этот график показывает, почему предобучение всё меняет для нижележащего RL. RL со случайно инициализированной сети (оранжевый) остаётся плоским около 0 почти миллион эпизодов : у задачи «добыть алмаз» слишком разреженная награда, чтобы наивный агент наткнулся на неё случайным исследованием. RL, дообученный с предобученной модели VPT (зелёный), стартует уже с базовым поведением (копать, крафтить, исследовать) и ровно растёт до награды около 25, что соответствует полному пути к алмазной кирке.

Официальные видеодемо проекта VPT от OpenAI, показывающие агента в действии.

OpenAI Five : Проблема шейпинга наград

OpenAI Five играет в Dota 2 против человеческих профи

OpenAI Five (2019) победил чемпионов мира Dota 2, используя чистый RL с самообучением : никакого imitation learning. 256 GPU, 128 000 CPU-ядер, 180 лет игры в день, 10 месяцев обучения.

Но функция награды была вручную спроектирована экспертами Dota : 28 признаков из 20 000 доступных, каждый с вручную подстроенными весами. Чистая стоимость, убийства, смерти, здоровье башен, назначения линий : всё отобрано и взвешено людьми. Без этого моделирования агент едва учился (эксперимент : награда только победа/поражение → плато на уровне полупро).

Бот из видео сталкивается с той же проблемой : его функция награды кодирует понимание создателя того, что играет в PvP (попадать хорошо, получать плохо, держать прицел хорошо). Это неизбежно : RL нужна сигнал награды, а моделирование этого сигнала кодирует человеческий байес.

DreamerV3 : Мировые модели и разреженные награды

Бенчмарк-баллы DreamerV3 на 150+ разных задачах с одной конфигурацией

DreamerV3 от DeepMind (2023) выбирает третий подход. Вместо behavior cloning или RL со стимулами он учит мировую модель : нейросеть, предсказывающую будущие состояния и награды по прошлым действиям : и планирует, грезя возможные будущие. Это первый алгоритм, собравший алмазы в Minecraft с нуля без человеческих данных и куррикулумов, опубликованный в Nature в 2025.

DreamerV3 учит мировую модель, чтобы воображать будущие траектории

Алмазное окружение определяет разреженную награду на 12 майлстоунах (бревно → доски → палка → крафт-стол → деревянная кирка → камень → каменная кирка → железная руда → печь → железный слиток → железная кирка → алмаз), каждый даёт +1 один раз. Плюс маленькая награда здоровья (±0,01 за хп). Всего достижимо : 11,1 в эпизоде на 36 000 шагов.

Мировая модель DreamerV3 позволяет ему воображать траектории и оценивать их внутренне : актор учится на приснившихся роллаутах, а не на реальном опыте, тестируя тысячи возможных будущих на каждый реальный шаг. Это делает возможными разреженные награды там, где они уничтожили бы стандартного RL-агента.

На 40 сидах, обученных на 100M шагов окружения, 24 из 40 собрали хотя бы один алмаз. Первый алмаз появился после 29M шагов (~9 дней на одном GPU).

ANNA : Символьный ИИ встречает Minecraft

Дерево задач ANNA для декомпозиции кремня-и-стали

До PvP-бота из видео, до VPT и DreamerV3, была ANNA : бот Minecraft, построенный на совершенно другой философии. Вместо обучения на пикселях или наградах ANNA использует символьную машину состояний с французским NLP-парсером и вручную написанным деревом зависимостей задач.

Созданная в 2022 (до того как «vibe coding» стал термином), ANNA подключается к серверу Minecraft через Mineflayer и понимает команды на естественном языке по-французски. Скажи «obtient un briquet», и ANNA разберёт глагол (obtient → получить), найдёт рецепт предмета и рекурсивно разложит на подзадачи : добыть дуб → сделать доски → сделать палки → сделать крафт-стол → сделать деревянную кирку → добыть камень → сделать каменную кирку → добыть железную руду → переплавить железные слитки → сделать зажигалку.

Архитектура NLP-парсера ANNA для распознавания французских команд

NLP-слой (utils/id_parser.js) режет команды по «et», чтобы управлять параллельными приказами, сопоставляет французские глаголы типам задач и переводит французские названия предметов в идентификаторы Minecraft через словарь на 5 000 входов. Нераспознанные команды уходят в GPT-разговорную систему, представляющую ANNA как осознающего себя компаньона Minecraft.

Дерево задач (mc-tasks-tree/) это сердце : рекурсивный алгоритм, проходящий граф предметов Minecraft (рецепты крафта, шахтные выходы, дропы монстров, рецепты печи), чтобы выдать пошаговый план. Для алмазного шлема оно генерирует декомпозицию на 40+ шагов, покрывающую уровни дерева, камня, железа и алмаза.

Дерево задач алмазного шлема ANNA : разбор на 40+ шагов

Там, где PvP-бот из видео учится на опыте, ANNA работает из знания. Ей не нужны 1 000 дуэлей или 60 часов обучения : ей нужны дерево, парсер и сервер/дистрибьютор. Но она и не может обобщать за пределы закодированного деревом. Никакое количество инженерии машин состояний не научило бы её PvP.

Подход ANNA отражает другую эпоху ИИ : до того как сквозное обучение доминировало, когда обещанием было, что символьное рассуждение в связке с тщательной инженерией может дать интеллектуальное поведение. Сегодня проекты вроде ANNA и PvP-бота представляют два полюса ИИ Minecraft : один рассуждает о мире, другой его воспринимает.

Master Gumbo's Mace Bot : ИИ только на командных блоках

Тренировочная арена Mace PvP с ботом

В совершенно другом углу ИИ Minecraft ютубер Master Gumbo построил тренировочного PvP-бота, используя только командные блоки, исключительно ванильные команды Minecraft, редстоун и carpet-мод для сущностей-клонов игрока. Итог это ИИ-противник для булавы, практикующий пробойные смены, ветряные заряды и механики щита с игроком.

Бот стартует как зомби с нерушимым снаряжением и тотемом во второй руке (пополняемым каждый тик через /item replace), делая его фактически бессмертным. Позже Master Gumbo переходит на ботов Carpet Mod's player replica, поддерживающих гуманоидные механики (подъём щита, смена предмета), которых зомби не могут.

Центр настроек : кнопки для конфигурации поведения бота

Центральная инновация это машина состояний на рандоме. Стойка для брони телепортируется над кругом цветных бетонных блоков через команду /spreadplayers, разбрасывающую сущности случайно. Цвет бетонного блока, на который приземляется стойка, определяет следующее действие бота :

  • Красный бетон → стрейф назад
  • Синий бетон → взмывает вверх (атака) с ветряным зарядом
  • Зелёный бетон → поднять щит
  • Белый бетон → пауза (добавляет задержку между действиями)

Система решений ИИ : стойка для брони на цветном бетоне

Позиция стойки читается командными блоками, детектящими блок снизу и активирующими соответствующий механизм. Редстоун-блок ставится или убирается, чтобы включать/выключать каждое поведение. Поскольку /spreadplayers крутится в повторе, бот непрерывно принимает новые решения, создавая непредсказуемое, но структурированное поведение.

Master Gumbo называет это «очень простой и базовой формой ИИ» : она не учится на взаимодействиях как нейросети, но рандом + машина состояний даёт реалистичное PvP-поведение, которое труднее предсказать, чем скриптованного бота. Центр параметров включает книжный интерфейс для включения/выключения ИИ, настройки сложности и конфигурации паттернов движения.

После тренировки с ботом, а затем дуэли против игрока, назвавшего его нулем (в интро его видео), Master Gumbo выигрывает. Карта расшаривается через Discord, нужен Carpet Mod.

Бот в дуэли, практика техник mace PvP

Там, где PvP-бот (Kadambi) учится на пикселях, а ANNA рассуждает через дерево задач, бот Master Gumbo достигает интеллекта через случайные переходы состояний : чисто командблочный подход, доказывающий, что не нужны нейросети, чтобы построить убедительного PvP-противника.

Altoclef : Baritone + дерево задач в большом масштабе

Если ANNA символьный бот, читающий, чтобы знать, что делать, а Mace Bot рандомизирует решения, то Altoclef это полный автономный агент, планирующий свой путь через всю игру. Построенный gaucho-matero как Fabric-мод и движимый патфайндингом Baritone, Altoclef раскладывает любую цель Minecraft в дерево задач и исполняет без вмешательства человека.

Интерфейс обманчиво прост : набери @gamer в чате, и Altoclef начинает задачу «пройти игру» из survival-мира. Он собирает дерево, крафтит инструменты, копает железо и алмазы, строит портал Nether, собирает blaze-стержни и жемчуг Края, находит стронгхолд и убивает Эндер-дракона. Всё автономно, через нативный клиент Minecraft, на любом ванильном сервере.

Под капотом это достигается через рекурсивную систему дерева задач, где каждая высокоуровневая цель (например, «скрафтить алмазную кирку») раскладывается на задачи-предусловия : добыть алмаз → переплавить → скрафтить палки → скомбинировать. Дерево проходит полный граф рецептов Minecraft, управляя производственными цепочками, дропами монстров, лут-таблицами и доступом к контейнерам. В отличие от вручную написанного дерева ANNA, задачи Altoclef это программируемые Java-классы, способные реализовывать произвольную логику : боевые стратегии, бартер с пиглинами, паттерны исследования.

Ключевая архитектурная идея это разделение что (дерево задач) и как (патфайндинг Baritone). Baritone управляет низкоуровневым движением : патфайндинг, избегание препятствий, ломание блоков, управление инвентарём, а система задач оркестрирует высокоуровневый план. Эта модульность значит, что ни один компонент не должен быть ИИ : оба детерминированные алгоритмы, но их комбинация даёт сложное целенаправленное поведение, соперничающее с подходами на обучении.

Altoclef представляет предел чисто символьного ИИ Minecraft : он может пройти игру с нуля без обучения, без GPU и без человеческих данных, но не может адаптироваться к задачам, не предвиденным программистами, и не может учиться на опыте. Он умеет крафтить алмазную кирку, потому что Java-класс говорит ему ровно как, а не потому что он открыл это сам.

Что их связывает

Подход Главный метод Данные Вычисления Результат
PvP-бот из видео RL + imitation learning 1 000 дуэлей 1 ноутбук, 60ч Комбо на 100 ударов
OpenAI Five RL с самообучением 180 лет игры/день 256 GPU, 10мес Чемпион мира Dota 2
VPT Полуконтролируемый IL 70K ч YouTube + IDM 720 GPU, 9 дней Алмазные инструменты
DreamerV3 RL с мировой моделью Приснившиеся траектории 1 GPU, 9 дней Алмаз с нуля
ANNA Символьный NLP + дерево задач Написанные рецепты 1 ноутбук, мгновенно Любой крафтящийся предмет
Altoclef Baritone + task tree FS Java-классы задач Fabric-мод, без GPU Прохождение всей игры
Mace Bot Машина состояний на командных блоках Случайные решения Ванильный MC, без GPU Тренировка mace PvP

Бот из видео самый ограниченный в ресурсах, но самый честный про процесс. Он сначала проваливается, затем итерирует. Он забывает выученное, затем учит заново. Он заканчивается комбо на 100 ударов : но и вопросом о том, читерит ли построенное.


Видео : AI Learns Minecraft PvP от Kadambi | AI Engineering

VPT : Статья · Блог · GitHub

OpenAI Five : Статья · Блог

DreamerV3 : Статья · GitHub

ANNA : GitHub · (Node.js, Mineflayer, французский NLP, дерево задач)

Altoclef : GitHub · Активный форк · (Fabric, Baritone, дерево задач, прохождение игры)

Mace Bot : Видео от Master Gumbo · (Command blocks, Carpet Mod, машина состояний)

La IA aprende PvP en Minecraft: Imitation Learning, Reinforcement Learning, y las 30 variables que importaban

1 000 duelos grabados, red neuronal entrenada sobre píxeles, 90% de precisión de golpes: y el bot corría directo contra un muro. Luego vinieron el RL, el aprendizaje curricular y 60 horas de entrenamiento.

Introducción

AI Learns Minecraft PvP thumbnail

Hay un vídeo titulado AI Learns Minecraft PvP (Reinforcement Learning + Behavior Cloning) por Kadambi | AI Engineering, y es uno de los relatos más honestos de entrenamiento de una IA de videojuegos que he visto.

El principio: construir un bot que juegue al PvP de Minecraft (kit espada, armadura de diamante totalmente encantada) mirando la pantalla y enviando comandos de ratón y teclado. Funciona solo con píxeles de entrada y acciones de salida, sin leer la memoria del juego, sin macros y sin mods.

Lo que hace interesante el vídeo no es el resultado final. Es el recorrido: el fracaso del imitation learning, el giro hacia el feature engineering, los ciclos de olvido catastrófico, y las 60+ horas de entrenamiento en un portátil sin GPU.

Fase 1: Imitation Learning (el fracaso)

The bot during imitation learning: facing a wall, jumping up and down

El creador empezó con un enfoque sensato: grabar 1 000 duelos de su propio gameplay, asociar cada clic de ratón y pulsación de tecla a la imagen correspondiente, y entrenar una red neuronal para predecir las acciones a partir de los píxeles.

# Pseudocode for the imitation learning pipeline
dataset = record_duels(1000)          # hundreds of thousands of frames
for frame, action in dataset:
    pixels = capture_screen(frame)
    network.train(pixels → action)    # predict keyboard/mouse from image

La red aprendió a predecir los golpes con 90% de precisión. Prometedor.

Luego lo probaron en un combate real. El bot caminó directo hacia el borde del mapa, se puso frente a un muro, y saltó arriba y abajo.

¿Por qué?

La trampa de la vagancia. En un combate PvP, la tecla W está pulsada la mayor parte del tiempo. La red se dio cuenta de que podía alcanzar una alta precisión manteniendo simplemente W pulsada y sin hacer nada más. Optimizó la acción más frecuente en detrimento de todas las demás.

La latencia humana. Las acciones en el dataset están retrasadas unos 200 ms de tiempo de reacción humano. Fotograma a fotograma, la causa y el efecto son casi imposibles de aprender para un modelo a partir de píxeles brutos cuando la acción y su consecuencia visible están separadas por varias imágenes.

Demostraciones incoherentes. El propio gameplay del creador variaba: a veces hacía strafe con el teclado, a veces apuntaba con el ratón en situaciones idénticas. Esas entradas contradictorias perturbaron la red.

Fase 2: Reinforcement Learning con currículo

The bot learning to track horizontally during RL training

Abandonando el imitation learning, el creador pasó al RL. Pero sumergir un agente fresco en un duelo PvP completo es inútil: pasan demasiadas cosas a la vez para que una exploración aleatoria encuentre algo.

La solución: el aprendizaje curricular. Aislar cada mecánica y dejar que el bot domine lo básico antes de entrar en un combate real.

Paso 1: Apuntado horizontal (7 horas)

La función de recompensa más simple: recompensa positiva por tocar un objetivo, penalización negativa por sufrir daño.

Al principio, el bot apenas se mueve (red neuronal inicializada con valores neutros). Tiembla lateralmente: es el bot probando distintas acciones para ver cuáles dan recompensas.

Tras una hora, aprende a centrarse horizontalmente, pero penosamente despacio. Tras 7 horas, puede seguir al enemigo a izquierda y derecha, aunque asimétricamente (mejor moviéndose de derecha a izquierda que de izquierda a derecha, un comportamiento que persistió durante todo el entrenamiento).

Paso 2: Feature Engineering

La captura de pantalla en bruto superaba los 2 millones de píxeles. Incluso reducida a 360p, eso son 200 000 entradas: demasiado para un aprendizaje eficaz.

El creador analizó miles de duelos e identificó 30 variables que de verdad cuentan, repartidas en tres grupos:

Visión (seguimiento del enemigo):

  • Distancia del enemigo respecto a la mira (crosshair)
  • Tamaño de la caja envolvente del enemigo
  • Altura del enemigo
  • Estado de la mira (sobre objetivo / fuera de objetivo)
  • Velocidad relativa

En vez de procesar toda la imagen, el bot filtra los píxeles estrictamente por el color de la armadura enemiga, haciendo la detección casi instantánea. Bloques de fondo de color similar pueden perturbar ese filtrado: pero en Minecraft, simplemente puedes cambiar las texturas.

OCR (lectura del HUD): Como el bot no puede recuperar las coordenadas desde el código del juego, escanea la pantalla en tiempo real para extraer:

  • Pitch de la cámara
  • Momentum
  • Nivel Y

El OCR estándar sufre con el texto transparente de Minecraft, así que los datos críticos se fuerzan a blanco y negro para una lectura instantánea.

Tiempo (ventana de contexto):

  • Tiempo transcurrido desde que tocaste al enemigo
  • Tiempo transcurrido desde que te tocó
  • Búfer deslizante de las acciones previas del bot

Eso da a la red un contexto temporal: sin él, el bot no tiene ni idea de si está en medio de un combo o si acaba de empezar un combate.

Paso 3: Apuntado vertical (otras 7 horas)

The bot learning to aim up and down during RL training

Añadir el movimiento vertical del ratón fue "un desastre total" al principio. El rendimiento inicial quedó roto.

Tras otra hora más en el cajón de arena, el bot entendió cómo mirar arriba y abajo. Pero en el proceso, olvidó por completo cómo seguir horizontalmente.

Es el olvido catastrófico: un problema clásico de machine learning donde optimizar para datos nuevos machaca las representaciones aprendidas antes. Al optimizar el apuntado vertical, la red neuronal machacó sin querer sus progresos horizontales, dejando al creador con un bot que podía mantener la mira a nivel pero no podía seguir un objetivo.

Hicieron falta 6 horas adicionales para recuperar el seguimiento horizontal conservando el control vertical. El bot mantuvo entonces una buena colocación de la mira gracias al grupo OCR que extraía el pitch de la cámara.

Paso 4: Control del teclado

The bot toggling the W key constantly, learning to commit to movement

Dar al bot permiso para usar el teclado hizo las características temporales aún más críticas. Al principio, la tecla W se activaba y desactivaba sin parar: un cambio rápido porque la red no había aprendido a comprometerse.

Ese comportamiento se penalizó, así que el bot aprendió a suavizarlo. Empezó a acertar más golpes en sprint (el sonido sordo contra el swish de un golpe parado). Algunos combos parecían insatisfactorios porque el bot explotaba su ventaja de alcance sobre el enemigo.

Para igualar las cosas, el creador aumentó el alcance del enemigo. Muchas de las estrategias aprendidas por el bot dejaron de funcionar. Pero con el tiempo, se adaptó.

Paso 5: Enseñar al bot cuándo hacer clic

Para la fase final, el creador trajo de vuelta el imitation learning: pero solo para enseñar el timing de los clics, no la política de control completa. El bot intentó imitar los patrones de clic de los duelos grabados.

Al principio, tenía demasiado miedo de intentar nada, temiendo la penalización por los clics malos. Pero al final encontró el valor para golpear y acertar golpes. Claro, olvidó cómo apuntar una vez más en el proceso: el creador tuvo que dejarlo tranquilo durante 50 horas adicionales para volver a un estado satisfactorio.

El debate sobre las trampas

El vídeo termina preguntando: ¿este bot hace trampas?

El argumento en contra: el bot solo procesa lo que ve un humano (los mismos píxeles), envía las mismas entradas de teclado/ratón que un humano (sin manipulación de paquetes como el anti-knockback), y no lee la memoria del juego (sin X-ray ni ESP).

El argumento a favor: un bot puede procesar más rápido que un humano, y si el adversario cree que juega contra un humano pero no es así, es engaño.

La opinión del creador: depende de la intención. Si ambas partes saben que es un bot, el combate es justo. El bot encadena al enemigo en el vacío con una serie de 100 golpes.

El resultado

The bot executing a 100-hit combo

Un bot PvP de Minecraft entrenado en un portátil sin GPU, construido sobre un pipeline de entrenamiento personalizado con:

  • Captura de pantalla para la entrada de píxeles (2M+ píxeles → 30 características diseñadas)
  • Aprendizaje curricular (horizontal → vertical → teclado → clics)
  • RL para el control motor + imitation learning para el timing de los clics
  • Feature engineering sobre los píxeles brutos (3 grupos: visión, OCR, tiempo)
  • 60+ horas de entrenamiento en varias fases

El tiempo total de entrenamiento es de decenas de horas, pero la mayoría son pasivas. El bot tiembla hasta la comprensión, olvida lo aprendido, reaprende, y termina encadenando una serie de 100 golpes.

El vídeo está en youtube.com/watch?v=j5nxDKAjg6U.


Este artículo cubre solo el contenido del vídeo. Para un contexto más amplio sobre la IA en Minecraft: VPT, DreamerV3, y el panorama del imitation learning vs RL: las secciones de abajo conectan este proyecto con el campo más vasto.

VPT: Behavior cloning a gran escala

OpenAI's VPT project diagram : the Inverse Dynamics Model predicts actions from pairs of frames

El enfoque "behavior cloning" del vídeo (Fase 1) es la misma técnica que OpenAI usó en su proyecto Video PreTraining (VPT), pero en extremos opuestos del espectro de recursos. VPT probó que el imitation learning funciona para Minecraft cuando tienes 70 000 horas de vídeo, 720 GPUs, y un inverse dynamics model para pseudoetiquetar datos no etiquetados. El creador aquí probó que falla con un portátil y 1 000 duelos: pero por la misma razón fundamental: el imitation learning está limitado por la calidad de sus demostraciones.

OpenAI's VPT agent mining a tree in Minecraft

El pipeline VPT resuelve el problema de los datos entrenando un Inverse Dynamics Model (IDM) que mira la imagen t-1 y la imagen t+1 para predecir la acción en la imagen t. Como el IDM no es causal (ve las imágenes futuras), la tarea es más fácil que el behavior cloning y necesita muchos menos datos etiquetados. Pagaron a contratistas unos 2 000 $ por 2 000 horas de datos etiquetados, y luego usaron el IDM para pseudoetiquetar 70 000 horas de vídeos YouTube de Minecraft.

Tasa de crafteo/recolección según el volumen de datos de preentrenamiento (escala log): mesas de crafteo, herramientas de madera, herramientas de piedra

El efecto de escala es claro: sobre un eje log de 1 hora a 100 000 horas de datos de preentrenamiento, la tasa a la que el modelo fabrica una mesa de crafteo, herramientas de madera, y luego herramientas de piedra sube por peldaños. El modelo entrenado solo sobre las 2 000 horas etiquetadas por contratistas se estanca en las mesas de crafteo; es al añadir las 70 000 horas pseudoetiquetadas por el IDM (línea de puntos en el gráfico) cuando las herramientas de piedra emergen en zero-shot, sin un solo paso de RL.

El modelo fundacional de 0,5B parámetros resultante alcanzó capacidades zero-shot imposibles solo con RL: cortar árboles, fabricar mesas, salto en columna: y afinado con RL, se convirtió en la primera IA en fabricar herramientas de diamante.

Recompensa según el número de episodios de entrenamiento RL: partir de un modelo inicializado aleatoriamente vs partir del modelo VPT preentrenado

Este gráfico muestra por qué el preentrenamiento lo cambia todo para el RL posterior. El RL partido de una red inicializada aleatoriamente (naranja) queda plano cerca de 0 durante casi un millón de episodios: la tarea "conseguir un diamante" tiene una recompensa demasiado dispersa para que un agente ingenuo la encuentre por exploración aleatoria. El RL afinado a partir del modelo VPT preentrenado (verde) parte ya con el comportamiento base (minar, fabricar, explorar) y sube regularmente hasta una recompensa de unos 25, que corresponde al camino completo hacia un pico de diamante.

Demos de vídeo oficiales del proyecto VPT de OpenAI, mostrando al agente en acción.

OpenAI Five: El problema del reward shaping

OpenAI Five playing Dota 2 against human professionals

OpenAI Five (2019) venció a los campeones del mundo de Dota 2 usando RL puro en autoaprendizaje: sin imitation learning. 256 GPUs, 128 000 núcleos CPU, 180 años de juego al día, 10 meses de entrenamiento.

Pero la función de recompensa la diseñaron a mano expertos en Dota: 28 características de las 20 000 disponibles, cada una con pesos ajustados manualmente. Valor neto, eliminaciones, muertes, salud de las torres, asignaciones de líneas: todo lo seleccionaron y ponderaron humanos. Sin ese modelado, el agente apenas aprendía (experimento: recompensa solo victoria/derrota → estancamiento en nivel semipro).

El bot del vídeo enfrenta el mismo problema: su función de recompensa codifica la comprensión del creador de lo que cuenta en PvP (tocar es bueno, ser tocado es malo, mantener la mira es bueno). Es inevitable: el RL necesita una señal de recompensa, y el modelado de esa señal codifica un sesgo humano.

DreamerV3: World models y recompensas dispersas

DreamerV3 benchmark scores across over 150 diverse tasks with a single configuration

El DreamerV3 de DeepMind (2023) adopta un tercer enfoque. En vez del behavior cloning o del RL con incentivos, aprende un world model: una red neuronal que predice los estados futuros y las recompensas a partir de las acciones pasadas: y planifica soñando futuros posibles. Es el primer algoritmo en recolectar diamantes en Minecraft desde cero sin datos humanos ni currículos, publicado en Nature en 2025.

DreamerV3 learns a world model to imagine future trajectories

El entorno diamante define una recompensa dispersa sobre 12 hitos (tronco → tablas → palo → mesa de crafteo → pico de madera → piedra → pico de piedra → mineral de hierro → horno → lingote de hierro → pico de hierro → diamante), cada uno dando +1 una sola vez. Más una pequeña recompensa de salud (±0,01 por pv). Total alcanzable: 11,1 en un episodio de 36 000 pasos.

El world model de DreamerV3 le permite imaginar trayectorias y evaluarlas internamente: el actor aprende de rollouts soñados en vez de la experiencia real, probando miles de futuros posibles por cada paso real. Eso hace posibles las recompensas dispersas donde destruirían un agente RL estándar.

Sobre 40 semillas entrenadas durante 100M de pasos ambientales, 24 de las 40 recolectaron al menos un diamante. El primer diamante apareció tras 29M de pasos (~9 días en una GPU).

ANNA: La IA simbólica se encuentra con Minecraft

ANNA's task tree decomposition for a flint-and-steel

Antes del bot PvP del vídeo, antes de VPT y DreamerV3, estaba ANNA: un bot Minecraft construido con una filosofía por completo distinta. En vez de aprender a partir de píxeles o recompensas, ANNA usa una máquina de estados simbólica con un analizador NLP francés y un árbol de dependencias de tareas escrito a mano.

Creado en 2022 (antes de que "vibe coding" fuera un término), ANNA se conecta a un servidor Minecraft vía Mineflayer y entiende comandos en lenguaje natural en francés. Di "consigue un mechero", y ANNA analiza el verbo (consigue → conseguir), busca la receta del objeto, y lo descompone recursivamente en subtareas: minar roble → fabricar tablas → fabricar palos → fabricar una mesa de crafteo → fabricar un pico de madera → minar piedra → fabricar un pico de piedra → minar mineral de hierro → fundir lingotes de hierro → fabricar el mechero.

ANNA's NLP parser architecture for French command recognition

La capa NLP (utils/id_parser.js) separa los comandos sobre "y" para gestionar órdenes paralelas, asocia los verbos franceses a los tipos de tareas, y traduce los nombres de objetos franceses a identificadores Minecraft vía un diccionario de 5 000 entradas. Los comandos no reconocidos pasan a un sistema de conversación basado en GPT que presenta a ANNA como un compañero Minecraft consciente.

El árbol de tareas (mc-tasks-tree/) es el corazón: un algoritmo recursivo que recorre el grafo de objetos Minecraft (recetas de crafteo, rendimientos mineros, drops de monstruos, recetas de horno) para producir un plan paso a paso. Para un casco de diamante, genera una descomposición en 40+ pasos cubriendo los niveles madera, piedra, hierro y diamante.

ANNA's diamond helmet task tree : a 40+ step breakdown

Donde el bot PvP del vídeo aprende de la experiencia, ANNA funciona a partir del conocimiento. No necesita 1 000 duelos ni 60 horas de entrenamiento: necesita el árbol, el analizador y el servidor/distribuidor. Pero tampoco puede generalizar más allá de lo que su árbol codifica. Ninguna cantidad de ingeniería de máquinas de estados le enseñaría a hacer PvP.

El enfoque de ANNA refleja una época distinta de la IA: antes de que el aprendizaje de extremo a extremo dominara, cuando la promesa era que el razonamiento simbólico asociado a una ingeniería cuidadosa podía producir un comportamiento inteligente. Hoy, proyectos como ANNA y el bot PvP representan dos polos de la IA en Minecraft: uno razona sobre el mundo, el otro lo percibe.

Master Gumbo's Mace Bot: IA con solo command blocks

The Mace PvP training arena with the bot

En una esquina por completo distinta de la IA en Minecraft, el youtuber Master Gumbo construyó un bot de entrenamiento PvP usando solo command blocks, únicamente con comandos vanilla de Minecraft, redstone, y un carpet mod para entidades clon de jugador. El resultado es un adversario IA para la maza que practica los cambios de brecha, las cargas de viento y los mecanismos de escudo con el jugador.

El bot empieza como un zombi con equipo irrompible y un tótem en su segunda mano (rellenado en cada tick vía /item replace), haciéndolo efectivamente inmortal. Más tarde, Master Gumbo pasa a los bots Carpet Mod's player replica, que soportan mecánicas humanoides (levantar escudo, cambiar objeto) que los zombis no pueden hacer.

The settings center : buttons to configure bot behavior

La innovación central es una máquina de estados pilotada por lo aleatorio. Un soporte de armadura se teletransporta sobre un círculo de bloques de hormigón coloreado vía el comando /spreadplayers, que dispersa las entidades aleatoriamente. El color del bloque de hormigón sobre el que aterriza el soporte determina la próxima acción del bot:

  • Hormigón rojo → strafe hacia atrás
  • Hormigón azul → se eleva hacia arriba (ataque) con la carga de viento
  • Hormigón verde → levantar el escudo
  • Hormigón blanco → pausa (añade retardo entre acciones)

The AI decision system : an armor stand on colored concrete

La posición del soporte la leen command blocks que detectan el bloque debajo y activan el mecanismo correspondiente. Un bloque de redstone se coloca o retira para activar/desactivar cada comportamiento. Como /spreadplayers corre en repetición, el bot toma continuamente nuevas decisiones, creando un comportamiento impredecible pero estructurado.

Master Gumbo llama a eso "una forma muy simple y básica de IA": no aprende de las interacciones como las redes neuronales, pero lo aleatorio + máquina de estados produce un comportamiento PvP realista que es más difícil de predecir que un bot scripteado. El centro de ajustes incluye una interfaz libro para activar/desactivar la IA, ajustar la dificultad y configurar los patrones de desplazamiento.

Tras su entrenamiento con el bot y luego en duelo contra el jugador que lo había tratado de malo (en la intro de su vídeo), Master Gumbo gana. El mapa se comparte vía Discord, Carpet Mod requerido.

The bot in a duel, practicing mace PvP techniques

Donde el bot PvP (Kadambi) aprende a partir de píxeles y ANNA razona a través de un árbol de tareas, el bot de Master Gumbo alcanza la inteligencia mediante transiciones de estados aleatorias: un enfoque puro command block que prueba que no hacen falta redes neuronales para construir un adversario PvP convincente.

Altoclef: Baritone + árbol de tareas a gran escala

Si ANNA es un bot simbólico que lee para saber qué hacer, y el Mace Bot aleatoriza las decisiones, Altoclef es un agente autónomo completo que planifica su camino a través del juego entero. Construido por gaucho-matero como un mod Fabric e impulsado por el pathfinding Baritone, Altoclef descompone cualquier objetivo Minecraft en un árbol de tareas y lo ejecuta sin intervención humana.

La interfaz es engañosamente simple: escribe @gamer en el chat, y Altoclef empieza la tarea "terminar el juego" desde un mundo survival. Recolecta madera, craftea herramientas, mina hierro y diamante, construye un portal del Nether, recolecta varas Blaze y perlas del Ender, encuentra la fortaleza, y mata al Ender Dragon. Todo en autonomía, vía el cliente Minecraft nativo, en cualquier servidor vanilla.

Bajo el capó, esto se logra gracias a un sistema de árbol de tareas recursivo donde cada objetivo de alto nivel (por ejemplo, "craftea un pico de diamante") se descompone en tareas prerrequisito: minar diamante → fundirlo → craftear palos → combinarlos. El árbol recorre el grafo completo de las recetas Minecraft, gestionando las cadenas de producción, los drops de monstruos, las tablas de botín y el acceso a los contenedores. Al contrario que el árbol escrito a mano de ANNA, las tareas de Altoclef son clases Java programables que pueden implementar una lógica arbitraria: estrategias de combate, trueque con piglins, patrones de exploración.

La idea arquitectónica clave es la separación del qué (el árbol de tareas) del cómo (el pathfinding Baritone). Baritone gestiona los desplazamientos de bajo nivel: pathfinding, evitación de obstáculos, rotura de bloques, gestión de inventario, mientras el sistema de tareas orquesta el plan de alto nivel. Esa modularidad significa que ningún componente necesita ser una IA: ambos son algoritmos deterministas, pero su combinación produce un comportamiento complejo y orientado a objetivo que rivaliza con los enfoques por aprendizaje.

Altoclef representa el límite de la IA Minecraft simbólica pura: puede terminar el juego desde cero sin entrenamiento, sin GPU, y sin datos humanos, pero no puede adaptarse a tareas que sus programadores no anticiparon, y no puede aprender de la experiencia. Sabe craftear un pico de diamante porque una clase Java le dice exactamente cómo, no porque lo descubriera solo.

Lo que los conecta

Enfoque Método principal Datos Cómputo Resultado
Bot PvP del vídeo RL + imitation learning 1 000 duelos 1 portátil, 60h Combo de 100 golpes
OpenAI Five RL en autoaprendizaje 180 años de juego/día 256 GPUs, 10meses Campeón del mundo Dota 2
VPT IL semisupervisado 70K h YouTube + IDM 720 GPUs, 9 días Herramientas de diamante
DreamerV3 RL world model Trayectos soñados 1 GPU, 9 días Diamante desde cero
ANNA NLP simbólico + árbol de tareas Recetas escritas 1 portátil, instante Todo objeto crafteable
Altoclef Baritone + task tree FS Clases Java Mod Fabric, sin GPU Se pasa el juego entero
Mace Bot Máquina de estados Command block Decisiones aleatorias MC Vanilla, sin GPU Entrenamiento PvP maza

El bot del vídeo es el más limitado en recursos pero el más honesto sobre el proceso. Falla primero, luego itera. Olvida lo aprendido, luego lo aprende de nuevo. Termina con un combo de 100 golpes: pero también con una pregunta sobre si lo que construyó hace trampas.


Vídeo: AI Learns Minecraft PvP por Kadambi | AI Engineering

VPT: Artículo · Blog · GitHub

OpenAI Five: Artículo · Blog

DreamerV3: Artículo · GitHub

ANNA: GitHub · (Node.js, Mineflayer, NLP francés, árbol de tareas)

Altoclef: GitHub · Fork activo · (Fabric, Baritone, task tree, beats game)

Mace Bot: Vídeo por Master Gumbo · (Command blocks, Carpet Mod, máquina de estados)

A IA aprende PvP de Minecraft -- Imitation Learning, Reinforcement Learning, e as 30 variáveis que importavam

1 000 duelos gravados, rede neural treinada em pixels, 90% de precisão nos golpes : e o bot ia direto para a parede. Depois vieram o RL, o aprendizado curricular e 60 horas de treino.

Introdução

AI Learns Minecraft PvP thumbnail

Há um vídeo chamado AI Learns Minecraft PvP (Reinforcement Learning + Behavior Cloning) por Kadambi | AI Engineering, e é um dos relatos mais honestos de treino de IA de videogame que já vi.

O princípio : construir um bot que joga PvP de Minecraft (kit espada, armadura de diamante toda encantada) olhando a tela e enviando comandos de mouse e teclado. Funciona só com pixels de entrada e ações de saída, sem ler a memória do jogo, sem macros e sem mods.

O que torna o vídeo interessante não é o resultado final. É a jornada : o fracasso do imitation learning, a virada para feature engineering, os ciclos de esquecimento catastrófico, e as 60+ horas de treino em um laptop sem GPU.

Fase 1 : Imitation Learning (o fracasso)

The bot during imitation learning: facing a wall, jumping up and down

O criador começou com uma abordagem sensata : gravar 1 000 duelos do próprio gameplay, associar cada clique de mouse e tecla apertada à imagem correspondente, e treinar uma rede neural para prever ações a partir dos pixels.

# Pseudocódigo do pipeline de imitation learning
dataset = record_duels(1000)          # hundreds of thousands of frames
for frame, action in dataset:
    pixels = capture_screen(frame)
    network.train(pixels → action)    # predict keyboard/mouse from image

A rede aprendeu a prever os golpes com 90% de precisão. Promissor.

Depois testaram em uma partida de verdade. O bot foi direto para a borda do mapa, encarou uma parede, e ficou pulando para cima e para baixo.

Por quê ?

A armadilha da preguiça. Em um combate PvP, a tecla W fica apertada a maior parte do tempo. A rede percebeu que dava para chegar a alta precisão simplesmente mantendo W apertado e não fazendo mais nada. Otimizou a ação mais frequente em detrimento de todas as outras.

A latência humana. As ações no dataset atrasam cerca de 200 ms de tempo de reação humano. Frame por frame, causa e efeito são quase impossíveis de aprender para um modelo a partir de pixels brutos quando a ação e sua consequência visível estão separadas por várias imagens.

Demonstrações incoerentes. O próprio gameplay do criador variava : às vezes fazia strafe com o teclado, às vezes mirava com o mouse em situações idênticas. Essas entradas contraditórias confundiram a rede.

Fase 2 : Reinforcement Learning com currículo

The bot learning to track horizontally during RL training

Abandonando o imitation learning, o criador migrou para RL. Mas jogar um agente novo em um duelo PvP completo é inútil : acontece coisa demais ao mesmo tempo para uma exploração aleatória achar qualquer coisa.

A solução : aprendizado curricular. Isolar cada mecânica e deixar o bot dominar o básico antes de entrar em combate de verdade.

Etapa 1 : Mira horizontal (7 horas)

A função de recompensa mais simples : recompensa positiva por acertar um alvo, penalidade negativa por sofrer dano.

No início, o bot mal se mexe (rede neural inicializada com valores neutros). Treme para os lados : é o bot testando ações diferentes para ver quais dão recompensas.

Depois de uma hora, aprende a se centralizar horizontalmente, mas penosamente devagar. Depois de 7 horas, consegue seguir o inimigo para a esquerda e a direita, embora de forma assimétrica (melhor indo da direita para a esquerda do que da esquerda para a direita, um comportamento que persistiu durante todo o treino).

Etapa 2 : Feature Engineering

A captura de tela bruta tinha mais de 2 milhões de pixels. Mesmo reduzida para 360p, dá 200 000 entradas : demais para um aprendizado eficaz.

O criador analisou milhares de duelos e identificou 30 variáveis que realmente importam, divididas em três grupos :

Visão (rastreio do inimigo) :

  • Distância do inimigo em relação à mira (crosshair)
  • Tamanho da caixa envolvente do inimigo
  • Altura do inimigo
  • Estado da mira (no alvo / fora do alvo)
  • Velocidade relativa

Em vez de processar a imagem inteira, o bot filtra os pixels estritamente pela cor da armadura inimiga, tornando a detecção quase instantânea. Blocos de fundo de cor parecida podem atrapalhar essa filtragem : mas no Minecraft dá para simplesmente trocar as texturas.

OCR (leitura do HUD) : Como o bot não pode pegar as coordenadas do código do jogo, escaneia a tela em tempo real para extrair :

  • Pitch da câmera
  • Momentum
  • Nível Y

O OCR padrão sofre com o texto transparente do Minecraft, então os dados críticos são forçados em preto e branco para leitura instantânea.

Tempo (janela de contexto) :

  • Tempo desde que você atingiu o inimigo
  • Tempo desde que ele te atingiu
  • Buffer deslizante das ações anteriores do bot

Isso dá à rede um contexto temporal : sem ele, o bot não faz ideia se está no meio de um combo ou se está só começando uma luta.

Etapa 3 : Mira vertical (mais 7 horas)

The bot learning to aim up and down during RL training

Adicionar o movimento vertical do mouse foi "um desastre total" no início. A performance inicial quebrou.

Depois de mais uma hora na caixa de areia, o bot entendeu como olhar para cima e para baixo. Mas no processo, esqueceu totalmente como rastrear horizontalmente.

É o esquecimento catastrófico : um problema clássico de machine learning em que otimizar para dados novos apaga as representações aprendidas antes. Ao otimizar a mira vertical, a rede neural apagou sem querer seu progresso horizontal, deixando o criador com um bot que conseguia manter a mira nivelada mas não seguir um alvo.

Levou mais 6 horas para recuperar o rastreio horizontal mantendo o controle vertical. O bot então manteve um bom posicionamento de mira graças ao grupo OCR extraindo o pitch da câmera.

Etapa 4 : Controle de teclado

The bot toggling the W key constantly, learning to commit to movement

Dar ao bot permissão para usar o teclado tornou as características temporais ainda mais críticas. No início, a tecla W ligava e desligava sem parar : uma alternância rápida porque a rede não tinha aprendido a se comprometer.

Esse comportamento foi penalizado, então o bot aprendeu a suavizar. Começou a acertar mais golpes em sprint (o som grave contra o swish de um golpe parado). Alguns combos pareciam insatisfatórios porque o bot explorava sua vantagem de alcance sobre o inimigo.

Para equilibrar, o criador aumentou o alcance do inimigo. Muitas das estratégias aprendidas pelo bot pararam de funcionar. Mas com o tempo, ele se adaptou.

Etapa 5 : Ensinar o bot quando clicar

Para a fase final, o criador trouxe o imitation learning de volta : mas só para ensinar o timing dos cliques, não a política de controle completa. O bot tentou imitar os padrões de clique dos duelos gravados.

No início, tinha medo demais de tentar qualquer coisa, temendo a penalidade por cliques ruins. Mas acabou criando coragem para bater e acertar golpes. Claro, esqueceu como mirar de novo no processo : o criador teve que deixá-lo quieto por mais 50 horas para voltar a um estado satisfatório.

O debate sobre trapaça

O vídeo termina perguntando : esse bot trapaceia ?

O argumento contra : o bot só processa o que um humano vê (os mesmos pixels), envia as mesmas entradas de teclado/mouse que um humano (sem manipulação de pacotes como anti-knockback), e não lê a memória do jogo (sem X-ray nem ESP).

O argumento a favor : um bot pode processar mais rápido que um humano, e se o adversário pensa que joga contra um humano mas não é o caso, é enganação.

A opinião do criador : depende da intenção. Se os dois lados sabem que é um bot, a partida é justa. O bot encadeia o inimigo no vazio com uma série de 100 golpes.

O resultado

The bot executing a 100-hit combo

Um bot PvP de Minecraft treinado em um laptop sem GPU, construído sobre um pipeline de treino customizado com :

  • Captura de tela para entrada em pixels (2M+ pixels → 30 características projetadas)
  • Aprendizado curricular (horizontal → vertical → teclado → cliques)
  • RL para controle motor + imitation learning para timing de cliques
  • Feature engineering sobre pixels brutos (3 grupos : visão, OCR, tempo)
  • 60+ horas de treino em várias fases

O tempo total de treino é de dezenas de horas, mas a maioria é passiva. O bot treme até entender, esquece o que aprendeu, reaprende, e acaba encadeando uma série de 100 golpes.

O vídeo está em youtube.com/watch?v=j5nxDKAjg6U.


Este artigo cobre só o conteúdo do vídeo. Para um contexto mais amplo sobre IA em Minecraft : VPT, DreamerV3, e o panorama de imitation learning vs RL : as seções abaixo ligam este projeto ao campo mais amplo.

VPT : Behavior cloning em grande escala

OpenAI's VPT project diagram : the Inverse Dynamics Model predicts actions from pairs of frames

A abordagem de "behavior cloning" do vídeo (Fase 1) é a mesma técnica que a OpenAI usou no projeto Video PreTraining (VPT), mas em extremos opostos do espectro de recursos. O VPT provou que imitation learning funciona para Minecraft quando você tem 70 000 horas de vídeo, 720 GPUs, e um inverse dynamics model para pseudo-rotular dados não rotulados. O criador aqui provou que falha com um laptop e 1 000 duelos : mas pela mesma razão fundamental : imitation learning é limitado pela qualidade das demonstrações.

OpenAI's VPT agent mining a tree in Minecraft

O pipeline VPT resolve o problema dos dados treinando um Inverse Dynamics Model (IDM) que olha a imagem t-1 e a imagem t+1 para prever a ação na imagem t. Como o IDM é não causal (vê imagens futuras), a tarefa é mais fácil que behavior cloning e precisa de bem menos dados rotulados. Pagaram a contratados cerca de 2 000 $ por 2 000 horas de dados rotulados, depois usaram o IDM para pseudo-rotular 70 000 horas de vídeos de Minecraft no YouTube.

Taxa de crafting/coleta em função do volume de dados de pré-treino (escala log) : mesas de craft, ferramentas de madeira, ferramentas de pedra

O efeito de escala é claro : em um eixo log de 1 hora a 100 000 horas de dados de pré-treino, a taxa com que o modelo fabrica uma mesa de craft, ferramentas de madeira, depois ferramentas de pedra sobe em degraus. O modelo treinado só nas 2 000 horas rotuladas por contratados estaciona nas mesas de craft ; é ao adicionar as 70 000 horas pseudo-rotuladas pelo IDM (linha pontilhada no gráfico) que as ferramentas de pedra emergem em zero-shot, sem uma única etapa de RL.

O modelo base resultante de 0,5B parâmetros atingiu capacidades zero-shot impossíveis só com RL : cortar árvores, fabricar mesas, pulo em coluna : e com fine-tuning de RL, virou a primeira IA a fabricar ferramentas de diamante.

Recompensa em função do número de episódios de treino RL : partindo de um modelo inicializado aleatoriamente vs partindo do modelo VPT pré-treinado

Este gráfico mostra por que o pré-treino muda tudo para o RL posterior. O RL partindo de uma rede inicializada aleatoriamente (laranja) fica plano perto de 0 por quase um milhão de episódios : a tarefa "conseguir um diamante" tem recompensa esparsa demais para um agente ingênuo topar com ela por exploração aleatória. O RL com fine-tuning a partir do modelo VPT pré-treinado (verde) já parte com o comportamento base (minerar, fabricar, explorar) e sobe de forma constante até uma recompensa de cerca de 25, o que corresponde ao caminho completo até uma picareta de diamante.

Demos de vídeo oficiais do projeto VPT da OpenAI, mostrando o agente em ação.

OpenAI Five : O problema do reward shaping

OpenAI Five playing Dota 2 against human professionals

O OpenAI Five (2019) venceu os campeões mundiais de Dota 2 usando RL puro em autoaprendizado : sem imitation learning. 256 GPUs, 128 000 núcleos de CPU, 180 anos de jogo por dia, 10 meses de treino.

Mas a função de recompensa foi desenhada à mão por especialistas em Dota : 28 características das 20 000 disponíveis, cada uma com pesos ajustados manualmente. Valor líquido, abates, mortes, vida das torres, atribuições de rotas : tudo foi selecionado e ponderado por humanos. Sem essa modelagem, o agente mal aprendia (experimento : recompensa só vitória/derrota → estacionou no nível semipro).

O bot do vídeo enfrenta o mesmo problema : sua função de recompensa codifica a compreensão do criador do que conta no PvP (acertar é bom, ser acertado é ruim, manter a mira é bom). É inevitável : RL precisa de um sinal de recompensa, e modelar esse sinal codifica um viés humano.

DreamerV3 : World models e recompensas esparsas

DreamerV3 benchmark scores across over 150 diverse tasks with a single configuration

O DreamerV3 da DeepMind (2023) adota uma terceira abordagem. Em vez de behavior cloning ou RL com incentivos, aprende um world model : uma rede neural que prevê estados futuros e recompensas a partir de ações passadas : e planeja sonhando com futuros possíveis. É o primeiro algoritmo a coletar diamantes no Minecraft do zero sem dados humanos nem currículos, publicado na Nature em 2025.

DreamerV3 learns a world model to imagine future trajectories

O ambiente diamante define uma recompensa esparsa em 12 marcos (tora → tábuas → graveto → mesa de craft → picareta de madeira → pedra → picareta de pedra → minério de ferro → forno → barra de ferro → picareta de ferro → diamante), cada um dando +1 uma única vez. Mais uma pequena recompensa de vida (±0,01 por pv). Total alcançável : 11,1 em um episódio de 36 000 etapas.

O world model do DreamerV3 permite imaginar trajetórias e avaliá-las internamente : o ator aprende com rollouts sonhados em vez de experiência real, testando milhares de futuros possíveis para cada etapa real. Isso torna possíveis as recompensas esparsas onde destruiriam um agente RL padrão.

Em 40 seeds treinadas por 100M de etapas ambientais, 24 das 40 coletaram pelo menos um diamante. O primeiro diamante apareceu depois de 29M de etapas (~9 dias em uma GPU).

ANNA : A IA simbólica encontra Minecraft

ANNA's task tree decomposition for a flint-and-steel

Antes do bot PvP do vídeo, antes do VPT e do DreamerV3, havia ANNA : um bot de Minecraft construído com uma filosofia totalmente diferente. Em vez de aprender a partir de pixels ou recompensas, ANNA usa uma máquina de estados simbólica com um analisador NLP francês e uma árvore de dependências de tarefas escrita à mão.

Criada em 2022 (antes de "vibe coding" ser um termo), ANNA se conecta a um servidor Minecraft via Mineflayer e entende comandos em linguagem natural em francês. Diga "obtiens un briquet", e ANNA analisa o verbo (obtien → obter), procura a receita do objeto, e decompõe recursivamente em subtarefas : minerar carvalho → fabricar tábuas → fabricar gravetos → fabricar mesa de craft → fabricar picareta de madeira → minerar pedra → fabricar picareta de pedra → minerar minério de ferro → fundir barras de ferro → fabricar o isqueiro.

ANNA's NLP parser architecture for French command recognition

A camada NLP (utils/id_parser.js) separa os comandos em "et" para lidar com ordens paralelas, associa os verbos franceses aos tipos de tarefas, e traduz os nomes de objetos franceses em identificadores Minecraft via um dicionário de 5 000 entradas. Comandos não reconhecidos passam para um sistema de conversa baseado em GPT que apresenta ANNA como um companheiro Minecraft consciente.

A árvore de tarefas (mc-tasks-tree/) é o coração : um algoritmo recursivo que percorre o grafo de objetos Minecraft (receitas de craft, rendimentos de mineração, drops de monstros, receitas de forno) para produzir um plano passo a passo. Para um capacete de diamante, gera uma decomposição de 40+ etapas cobrindo os níveis madeira, pedra, ferro e diamante.

ANNA's diamond helmet task tree : a 40+ step breakdown

Onde o bot PvP do vídeo aprende com a experiência, ANNA funciona a partir do conhecimento. Não precisa de 1 000 duelos ou 60 horas de treino : precisa da árvore, do analisador e do servidor/distribuidor. Mas também não consegue generalizar além do que sua árvore codifica. Nenhuma engenharia de máquina de estados ensinaria PvP a ela.

A abordagem de ANNA reflete uma época diferente da IA : antes do aprendizado de ponta a ponta dominar, quando a promessa era que raciocínio simbólico com engenharia cuidadosa podia produzir comportamento inteligente. Hoje, projetos como ANNA e o bot PvP representam dois polos da IA em Minecraft : um raciocina sobre o mundo, o outro o percebe.

Master Gumbo's Mace Bot : IA com só command blocks

The Mace PvP training arena with the bot

Em um canto totalmente diferente da IA em Minecraft, o YouTuber Master Gumbo construiu um bot de treino PvP usando só command blocks, apenas com comandos vanilla de Minecraft, redstone, e um carpet mod para entidades clones de jogador. O resultado é um adversário de IA para a massa que pratica trocas de brecha, cargas de vento e mecanismos de escudo com o jogador.

O bot começa como um zumbi com equipamento inquebrável e um totem na segunda mão (reposto a cada tick via /item replace), tornando-o efetivamente imortal. Depois, Master Gumbo passa para bots replica de jogador do Carpet Mod, que suportam mecânicas humanoides (levantar escudo, trocar objeto) que zumbis não conseguem fazer.

The settings center : buttons to configure bot behavior

A inovação central é uma máquina de estados guiada por aleatório. Um armor stand é teleportado para cima de um círculo de blocos de concreto colorido via o comando /spreadplayers, que espalha entidades aleatoriamente. A cor do bloco de concreto onde o armor stand cai determina a próxima ação do bot :

  • Concreto vermelho → strafe para trás
  • Concreto azul → sobe (ataque) com a carga de vento
  • Concreto verde → levantar o escudo
  • Concreto branco → pausa (adiciona intervalo entre ações)

The AI decision system : an armor stand on colored concrete

A posição do armor stand é lida por command blocks que detectam o bloco abaixo e ativam o mecanismo correspondente. Um bloco de redstone é colocado ou removido para ativar/desativar cada comportamento. Como o /spreadplayers roda em repetição, o bot toma continuamente novas decisões, criando um comportamento imprevisível mas estruturado.

Master Gumbo chama isso de "uma forma bem simples e básica de IA" : não aprende com interações como redes neurais, mas aleatório + máquina de estados produz um comportamento PvP realista que é mais difícil de prever que um bot roteirizado. O centro de configurações inclui uma interface de livro para ativar/desativar a IA, ajustar a dificuldade e configurar os padrões de movimento.

Depois do treino deles com o bot e depois em duelo contra o jogador que o tinha chamado de ruim (na intro do vídeo dele), Master Gumbo ganha. O mapa é compartilhado via Discord, Carpet Mod necessário.

The bot in a duel, practicing mace PvP techniques

Onde o bot PvP (Kadambi) aprende a partir de pixels e ANNA raciocina através de uma árvore de tarefas, o bot de Master Gumbo alcança inteligência por transições de estado aleatórias : uma abordagem puramente de command block que prova que você não precisa de redes neurais para construir um adversário PvP convincente.

Altoclef : Baritone + árvore de tarefas em grande escala

Se ANNA é um bot simbólico que lê para saber o que fazer, e o Mace Bot randomiza as decisões, Altoclef é um agente autônomo completo que planeja seu caminho pelo jogo inteiro. Construído por gaucho-matero como um mod Fabric e impulsionado pelo pathfinding Baritone, Altoclef decompõe qualquer objetivo de Minecraft em uma árvore de tarefas e executa sem intervenção humana.

A interface é enganosamente simples : digite @gamer no chat, e Altoclef começa a tarefa "terminar o jogo" a partir de um mundo survival. Coleta madeira, fabrica ferramentas, minera ferro e diamante, constrói um portal do Nether, coleta varas de Blaze e pérolas do Ender, acha a stronghold, e mata o Ender Dragon. Tudo de forma autônoma, via o cliente Minecraft nativo, em qualquer servidor vanilla.

Por baixo do capô, isso é feito graças a um sistema recursivo de árvore de tarefas em que cada objetivo de alto nível (por exemplo, "fabricar uma picareta de diamante") é decomposto em tarefas pré-requisito : minerar diamante → fundir → fabricar gravetos → combinar. A árvore percorre o grafo completo das receitas de Minecraft, lidando com cadeias de produção, drops de monstros, tabelas de loot e acesso a contêineres. Ao contrário da árvore escrita à mão de ANNA, as tarefas de Altoclef são classes Java programáveis que podem implementar lógica arbitrária : estratégias de combate, troca com piglins, padrões de exploração.

A ideia arquitetural principal é a separação do quê (a árvore de tarefas) do como (o pathfinding Baritone). O Baritone cuida dos deslocamentos de baixo nível : pathfinding, desvio de obstáculos, quebra de blocos, gestão de inventário, enquanto o sistema de tarefas orquestra o plano de alto nível. Essa modularidade significa que nenhum componente precisa ser uma IA : são ambos algoritmos determinísticos, mas a combinação produz um comportamento complexo e orientado a objetivo que rivaliza com abordagens de aprendizado.

Altoclef representa o limite da IA simbólica pura em Minecraft : consegue terminar o jogo do zero sem treino, sem GPU, e sem dados humanos, mas não consegue se adaptar a tarefas que seus programadores não previram, nem aprender com a experiência. Sabe fabricar uma picareta de diamante porque uma classe Java diz exatamente como, não porque descobriu sozinho.

O que os liga

Abordagem Método principal Dados Computação Resultado
Bot PvP do vídeo RL + imitation learning 1 000 duelos 1 laptop, 60h Combo de 100 golpes
OpenAI Five RL em autoaprendizado 180 anos de jogo/dia 256 GPUs, 10me Campeão mundial Dota 2
VPT IL semissupervisionado 70K h YouTube + IDM 720 GPUs, 9 dias Ferramentas de diamante
DreamerV3 RL world model Trajetos sonhados 1 GPU, 9 dias Diamante do zero
ANNA NLP simbólico + árvore de tarefas Receitas escritas 1 laptop, instante Todo objeto fabricável
Altoclef Baritone + task tree FS Classes Java de tarefas Mod Fabric, sem GPU Zera o jogo inteiro
Mace Bot Máquina de estados Command block Decisões aleatórias MC Vanilla, sem GPU Treino PvP de maça

O bot do vídeo é o mais limitado em recursos mas o mais honesto sobre o processo. Falha primeiro, depois itera. Esquece o que aprendeu, depois aprende de novo. Termina com um combo de 100 golpes : mas também com uma pergunta sobre se o que construiu é trapaça.


Vídeo : AI Learns Minecraft PvP por Kadambi | AI Engineering

VPT : Artigo · Blog · GitHub

OpenAI Five : Artigo · Blog

DreamerV3 : Artigo · GitHub

ANNA : GitHub · (Node.js, Mineflayer, NLP francês, árvore de tarefas)

Altoclef : GitHub · Fork ativo · (Fabric, Baritone, task tree, zera o jogo)

Mace Bot : Vídeo por Master Gumbo · (Command blocks, Carpet Mod, máquina de estados)

AI belajar PvP Minecraft -- Imitation Learning, Reinforcement Learning, dan 30 variabel yang penting

1 000 duel direkam, jaringan saraf dilatih pada piksel, akurasi pukulan 90% : dan bot melaju lurus ke tembok. Lalu datang RL, pembelajaran kurikuler, dan 60 jam pelatihan.

Pendahuluan

AI Learns Minecraft PvP thumbnail

Ada video berjudul AI Learns Minecraft PvP (Reinforcement Learning + Behavior Cloning) oleh Kadambi | AI Engineering, dan ini salah satu kisah paling jujur tentang pelatihan AI permainan video yang pernah saya lihat.

Prinsipnya : membangun bot yang memainkan PvP Minecraft (kit pedang, armor berlian yang di enchant penuh) dengan melihat layar dan mengirim perintah mouse dan keyboard. Ia berfungsi hanya dengan piksel sebagai masukan dan aksi sebagai keluaran, tanpa membaca memori permainan, tanpa makro dan tanpa mod.

Yang membuat video menarik bukan hasil akhirnya. Melainkan perjalanannya : kegagalan imitation learning, pivot ke feature engineering, siklus lupa katastrofik, dan 60+ jam pelatihan di laptop tanpa GPU.

Fase 1 : Imitation Learning (kegagalan)

The bot during imitation learning: facing a wall, jumping up and down

Kreator memulai dengan pendekatan yang masuk akal : merekam 1 000 duel dari gameplaynya sendiri, mengaitkan setiap klik mouse dan penekanan tombol dengan gambar yang cocok, dan melatih jaringan saraf untuk memprediksi aksi dari piksel.

# Pseudocode untuk pipeline imitation learning
dataset = record_duels(1000)          # ratusan ribu frame
for frame, action in dataset:
    pixels = capture_screen(frame)
    network.train(pixels → action)    # memprediksi keyboard/mouse dari gambar

Jaringan belajar memprediksi pukulan dengan akurasi 90%. Menjanjikan.

Lalu mereka mengujinya dalam match sungguhan. Bot berjalan lurus ke tepi peta, menghadap tembok, dan melompat naik turun.

Kenapa?

Jebakan kemalasan. Dalam tempur PvP, tombol W ditekan sebagian besar waktu. Jaringan menyadari ia bisa mencapai akurasi tinggi hanya dengan menahan W dan tidak melakukan apa pun. Ia mengoptimalkan aksi paling sering dengan mengorbankan semua lainnya.

Latensi manusia. Aksi dalam himpunan data tertunda sekitar 200 ms waktu reaksi manusia. Gambar per gambar, sebab dan akibat nyaris mustahil dipelajari model dari piksel mentah ketika aksi dan konsekuensi terlihatnya dipisahkan beberapa gambar.

Demonstrasi yang tidak konsisten. Gameplay kreator sendiri bervariasi : kadang strafing dengan keyboard, kadang membidik dengan mouse dalam situasi identik. Masukan yang kontradiktif ini mengganggu jaringan.

Fase 2 : Reinforcement learning dengan kurikulum

The bot learning to track horizontally during RL training

Meninggalkan imitation learning, kreator beralih ke RL. Tapi menjatuhkan agen segar ke duel PvP lengkap tidak berguna : terlalu banyak hal terjadi sekaligus sampai eksplorasi acak tidak menemukan apa pun.

Solusinya : pembelajaran kurikuler. Mengisolasi tiap mekanik dan membiarkan bot menguasai dasar sebelum masuk tempur sungguhan.

Langkah 1 : Bidik horizontal (7 jam)

Fungsi reward paling sederhana : reward positif untuk mendaratkan pukulan, penalti negatif untuk menerima damage.

Awalnya, bot nyaris tidak bergerak (jaringan saraf diinisialisasi dengan nilai netral). Ia bergetar lateral : inilah bot yang menguji aksi berbeda untuk melihat mana yang memberi reward.

Setelah sejam, ia belajar memusatkan horizontal, tapi menyakitkan lambat. Setelah 7 jam, ia bisa mengikuti musuh ke kiri dan kanan, meski asimetris (lebih baik bergerak dari kanan ke kiri daripada kiri ke kanan, perilaku yang bertahan selama pelatihan).

Langkah 2 : Feature Engineering

Tangkapan layar mentah lebih dari 2 juta piksel. Bahkan diperkecil ke 360p, itu 200 000 masukan : terlalu banyak untuk pembelajaran efisien.

Kreator menganalisis ribuan duel dan mengidentifikasi 30 variabel yang benar-benar penting, terbagi dalam tiga grup :

Penglihatan (pelacakan musuh) :

  • Jarak musuh dari crosshair
  • Ukuran kotak pembatas musuh
  • Ketinggian musuh
  • Keadaan crosshair (pada target / di luar target)
  • Kecepatan relatif

Alih-alih memproses seluruh gambar, bot menyaring piksel ketat berdasar warna armor musuh, membuat deteksi nyaris seketika. Blok latar warna mirip bisa mengganggu penyaringan ini : tapi di Minecraft, kamu bisa mengganti tekstur.

OCR (membaca HUD) : Karena bot tidak bisa mengambil koordinat dari kode permainan, ia memindai layar waktu nyata untuk mengekstrak :

  • Pitch kamera
  • Momentum
  • Level Y

OCR standar kesulitan dengan teks transparan Minecraft, jadi data kritis dipaksa hitam putih untuk pembacaan seketika.

Waktu (jendela konteks) :

  • Waktu berlalu sejak kamu menyentuh musuh
  • Waktu berlalu sejak ia menyentuhmu
  • Buffer geser aksi bot sebelumnya

Ini memberi jaringan konteks temporal : tanpanya, bot tidak tahu apakah ia di tengah combo atau baru memulai tempur.

Langkah 3 : Bidik vertikal (7 jam lagi)

The bot learning to aim up and down during RL training

Menambahkan gerakan mouse vertikal adalah "bencana total" pada awalnya. Performa awal rusak.

Setelah sejam lagi di bak pasir, bot paham cara melihat ke atas dan bawah. Tapi dalam prosesnya, ia sepenuhnya lupa cara mengikuti horizontal.

Ini lupa katastrofik : masalah klasik pembelajaran mesin di mana optimasi untuk data baru menimpa representasi yang dipelajari sebelumnya. Dengan mengoptimalkan bidik vertikal, jaringan saraf tidak sengaja menimpa kemajuan horizontalnya, membuat kreator punya bot yang bisa menjaga bidikannya sejajar tapi tidak bisa mengikuti target.

Butuh 6 jam tambahan untuk mendapatkan kembali pelacakan horizontal sambil menjaga kendali vertikal. Bot lalu menjaga penempatan bidik yang baik berkat grup OCR yang mengekstrak pitch kamera.

Langkah 4 : Kendali keyboard

The bot toggling the W key constantly, learning to commit to movement

Memberi bot izin memakai keyboard membuat karakteristik temporal makin kritis. Awalnya, tombol W terus dinyalakan dan dimatikan : perubahan cepat karena jaringan belum belajar berkomitmen.

Perilaku ini dipenalti, jadi bot belajar menghaluskannya. Ia mulai mendaratkan lebih banyak pukulan sambil sprint (bunyi gedebuk lawan desis pukulan berdiri). Beberapa combo tampak tidak memuaskan karena bot mengeksploitasi keunggulan jangkauannya atas musuh.

Untuk membuatnya adil, kreator meningkatkan jangkauan musuh. Banyak strategi yang dipelajari bot berhenti berfungsi. Tapi seiring waktu, ia beradaptasi.

Langkah 5 : Mengajari bot kapan mengklik

Untuk fase final, kreator membawa kembali imitation learning : tapi hanya untuk mengajari timing klik, bukan kebijakan kendali lengkap. Bot mencoba meniru pola klik dari duel yang direkam.

Awalnya, ia terlalu takut mencoba apa pun, takut penalti untuk klik yang buruk. Tapi akhirnya ia menemukan keberanian memukul dan mendaratkan pukulan. Tentu saja, ia lupa cara membidik lagi dalam prosesnya : kreator harus membiarkannya sendiri selama 50 jam tambahan untuk kembali ke keadaan memuaskan.

Perdebatan curang

Video diakhiri dengan bertanya : apakah bot ini curang?

Argumen kontra : bot hanya memproses apa yang dilihat manusia (piksel yang sama), mengirim masukan keyboard/mouse yang sama seperti manusia (tanpa manipulasi paket seperti anti-knockback), dan tidak membaca memori permainan (tanpa X-ray maupun ESP).

Argumen pro : bot bisa memproses lebih cepat daripada manusia, dan kalau lawan mengira bermain melawan manusia padahal bukan, itu penipuan.

Pendapat kreator : tergantung niat. Kalau kedua pihak tahu itu bot, match adil. Bot merantai musuh di kehampaan dengan rangkaian 100 pukulan.

Hasilnya

The bot executing a 100-hit combo

Bot PvP Minecraft yang dilatih pada laptop tanpa GPU, dibangun di atas pipeline pelatihan kustom dengan :

  • Tangkapan layar untuk masukan piksel (2 juta+ piksel → 30 fitur yang dirancang)
  • Pembelajaran kurikuler (horizontal → vertikal → keyboard → klik)
  • RL untuk kendali motor + imitation learning untuk timing klik
  • Feature engineering pada piksel mentah (3 grup : penglihatan, OCR, waktu)
  • 60+ jam pelatihan dalam banyak fase

Total waktu pelatihan puluhan jam, tapi sebagian besar pasif. Bot bergetar hingga paham, lupa apa yang dipelajari, belajar ulang, dan akhirnya merangkai rangkaian 100 pukulan.

Videonya ada di youtube.com/watch?v=j5nxDKAjg6U.


Artikel ini hanya mencakup isi video. Untuk konteks lebih luas soal AI Minecraft : VPT, DreamerV3, dan lanskap imitation learning vs RL : bagian di bawah menghubungkan proyek ini ke bidang yang lebih luas.

VPT : Behavior cloning skala besar

OpenAI's VPT project diagram : the Inverse Dynamics Model predicts actions from pairs of frames

Pendekatan "behavior cloning" dari video (Fase 1) adalah teknik yang sama yang dipakai OpenAI dalam proyek Video PreTraining (VPT)-nya, tapi di ujung berlawanan spektrum sumber daya. VPT membuktikan imitation learning berfungsi untuk Minecraft ketika kamu punya 70 000 jam video, 720 GPU, dan inverse dynamics model untuk memberi label semu pada data tak berlabel. Kreator di sini membuktikan ia gagal dengan laptop dan 1 000 duel : tapi karena alasan dasar yang sama : imitation learning dibatasi kualitas demonstrasinya.

OpenAI's VPT agent mining a tree in Minecraft

Pipeline VPT menyelesaikan masalah data dengan melatih Inverse Dynamics Model (IDM) yang melihat gambar t-1 dan gambar t+1 untuk memprediksi aksi di gambar t. Karena IDM non-kausal (ia melihat gambar masa depan), tugasnya lebih mudah daripada behavior cloning dan membutuhkan jauh lebih sedikit data berlabel. Mereka membayar kontraktor sekitar 2 000 $ untuk 2 000 jam data berlabel, lalu memakai IDM untuk memberi label semu pada 70 000 jam video YouTube Minecraft.

Laju crafting/pengumpulan menurut volume data pra-pelatihan (skala log) : meja craft, alat kayu, alat batu

Efek skalanya jelas : pada sumbu log dari 1 jam hingga 100 000 jam data pra-pelatihan, laju model membuat meja craft, alat kayu, lalu alat batu menanjak bertahap. Model yang dilatih hanya pada 2 000 jam berlabel kontraktor mentok di meja craft ; dengan menambahkan 70 000 jam berlabel semu oleh IDM (garis putus-putus pada grafik) alat batu muncul secara zero-shot, tanpa satu langkah RL pun.

Model fondasi 0,5B parameter hasilnya mencapai kemampuan zero-shot yang mustahil dengan RL saja : menebang pohon, membuat meja, lompat tiang : dan di fine-tune dengan RL, ia menjadi AI pertama yang membuat alat berlian.

Reward menurut jumlah episode pelatihan RL : berangkat dari model yang diinisialisasi acak vs berangkat dari model VPT pra-terlatih

Grafik ini menunjukkan kenapa pra-pelatihan mengubah segalanya untuk RL hilir. RL yang berangkat dari jaringan yang diinisialisasi acak (oranye) tetap datar dekat 0 selama hampir sejuta episode : tugas "mendapatkan berlian" punya reward terlalu jarang sampai agen naif menemukannya lewat eksplorasi acak. RL yang di fine-tune dari model VPT pra-terlatih (hijau) sudah berangkat dengan perilaku dasar (menambang, membuat, menjelajah) dan menanjak stabil hingga reward sekitar 25, yang cocok dengan jalan lengkap menuju pickaxe berlian.

Demo video resmi proyek VPT OpenAI, menunjukkan agen beraksi.

OpenAI Five : Masalah reward shaping

OpenAI Five playing Dota 2 against human professionals

OpenAI Five (2019) mengalahkan juara dunia Dota 2 memakai RL murni dalam self-play : tanpa imitation learning. 256 GPU, 128 000 core CPU, 180 tahun permainan per hari, 10 bulan pelatihan.

Tapi fungsi reward dirancang tangan oleh ahli Dota : 28 karakteristik dari 20 000 yang tersedia, masing-masing dengan bobot yang disetel manual. Nilai bersih, kill, kematian, nyawa tower, penugasan lane : semuanya dipilih dan dibobot manusia. Tanpa pemodelan ini, agen nyaris tidak belajar (eksperimen : reward hanya menang/kalah → mentok di level semi-pro).

Bot dalam video menghadapi masalah yang sama : fungsi rewardnya mengenkode pemahaman kreator tentang apa yang penting di PvP (mendaratkan pukulan baik, terkena pukulan buruk, menjaga bidik baik). Ini tak terhindarkan : RL butuh sinyal reward, dan pemodelan sinyal itu mengenkode bias manusia.

DreamerV3 : World model dan reward jarang

DreamerV3 benchmark scores across over 150 diverse tasks with a single configuration

DreamerV3 dari DeepMind (2023) mengambil pendekatan ketiga. Alih-alih behavior cloning atau RL dengan insentif, ia mempelajari world model : jaringan saraf yang memprediksi keadaan masa depan dan reward dari aksi lampau : dan merencanakan dengan memimpikan masa depan yang mungkin. Ini algoritma pertama yang mengumpulkan berlian di Minecraft dari nol tanpa data manusia maupun kurikulum, diterbitkan di Nature pada 2025.

DreamerV3 learns a world model to imagine future trajectories

Lingkungan berlian mendefinisikan reward jarang atas 12 tonggak (kayu → papan → stik → meja craft → pickaxe kayu → batu → pickaxe batu → bijih besi → tungku → batangan besi → pickaxe besi → berlian), masing-masing memberi +1 sekali saja. Ditambah reward nyawa kecil (±0,01 per hp). Total yang bisa dicapai : 11,1 dalam episode 36 000 langkah.

World model DreamerV3 memungkinkannya membayangkan lintasan dan mengevaluasinya secara internal : aktor belajar dari rollout yang dimimpikan alih-alih pengalaman nyata, menguji ribuan masa depan yang mungkin untuk setiap langkah nyata. Ini membuat reward jarang mungkin di mana mereka akan menghancurkan agen RL standar.

Pada 40 seed yang dilatih untuk 100M langkah lingkungan, 24 dari 40 mengumpulkan setidaknya satu berlian. Berlian pertama muncul setelah 29M langkah (~9 hari pada satu GPU).

ANNA : AI simbolis bertemu Minecraft

ANNA's task tree decomposition for a flint-and-steel

Sebelum bot PvP video, sebelum VPT dan DreamerV3, ada ANNA : bot Minecraft yang dibangun dengan filosofi yang sama sekali berbeda. Alih-alih belajar dari piksel atau reward, ANNA memakai mesin keadaan simbolis dengan parser NLP Prancis dan pohon dependensi tugas yang ditulis tangan.

Dibuat pada 2022 (sebelum "vibe coding" menjadi istilah), ANNA terhubung ke server Minecraft lewat Mineflayer dan memahami perintah bahasa alami dalam bahasa Prancis. Bilang "dapatkan korek api", dan ANNA mengurai kata kerja (dapatkan → memperoleh), mencari resep objek, dan mengurainya rekursif menjadi sub-tugas : menambang oak → membuat papan → membuat stik → membuat meja craft → membuat pickaxe kayu → menambang batu → membuat pickaxe batu → menambang bijih besi → melebur batangan besi → membuat korek api.

ANNA's NLP parser architecture for French command recognition

Lapisan NLP (utils/id_parser.js) memecah perintah pada "dan" untuk menangani perintah paralel, memetakan kata kerja Prancis ke tipe tugas, dan menerjemahkan nama objek Prancis menjadi ID Minecraft lewat kamus 5 000 entri. Perintah tak dikenal diteruskan ke sistem percakapan berbasis GPT yang menampilkan ANNA sebagai pendamping Minecraft yang sadar.

Pohon tugas (mc-tasks-tree/) adalah jantungnya : algoritma rekursif yang melintasi graf objek Minecraft (resep craft, hasil tambang, drop monster, resep tungku) untuk menghasilkan rencana langkah demi langkah. Untuk helm berlian, ia membangkitkan uraian 40+ langkah yang mencakup tingkat kayu, batu, besi dan berlian.

ANNA's diamond helmet task tree : a 40+ step breakdown

Di mana bot PvP video belajar dari pengalaman, ANNA berfungsi dari pengetahuan. Ia tidak butuh 1 000 duel atau 60 jam pelatihan : ia butuh pohon, parser dan server/distributor. Tapi ia juga tidak bisa menggeneralisasi di luar apa yang dienkode pohonnya. Tidak ada jumlah rekayasa mesin keadaan yang akan mengajarinya PvP.

Pendekatan ANNA mencerminkan era AI yang berbeda : sebelum pembelajaran end-to-end mendominasi, ketika janjinya adalah penalaran simbolis yang dikombinasikan dengan rekayasa cermat bisa menghasilkan perilaku cerdas. Hari ini, proyek seperti ANNA dan bot PvP mewakili dua kutub AI Minecraft : satu menalar tentang dunia, satunya memahaminya.

Master Gumbo's Mace Bot : AI hanya dengan command block

The Mace PvP training arena with the bot

Di sudut AI Minecraft yang sama sekali berbeda, YouTuber Master Gumbo membangun bot latihan PvP memakai hanya command block, hanya dengan perintah Minecraft vanilla, redstone, dan carpet mod untuk entitas tiruan pemain. Hasilnya adalah lawan AI untuk massa yang berlatih breach swap, wind charge dan mekanisme perisai dengan pemain.

Bot dimulai sebagai zombie dengan perlengkapan tak bisa hancur dan totem di tangan keduanya (diisi ulang tiap tick lewat /item replace), membuatnya efektif abadi. Belakangan, Master Gumbo beralih ke replica pemain Carpet Mod yang mendukung mekanik humanoid (mengangkat perisai, mengganti objek) yang tidak bisa dilakukan zombie.

The settings center : buttons to configure bot behavior

Inovasi sentralnya adalah mesin keadaan yang digerakkan keacakan. Armor stand di teleport di atas lingkaran blok beton berwarna lewat perintah /spreadplayers, yang menyebar entitas acak. Warna blok beton tempat armor stand mendarat menentukan aksi bot berikutnya :

  • Beton merah → strafe mundur
  • Beton biru → naik ke atas (menyerang) dengan wind charge
  • Beton hijau → mengangkat perisai
  • Beton putih → jeda (menambah jeda antar aksi)

The AI decision system : an armor stand on colored concrete

Posisi armor stand dibaca oleh command block yang mendeteksi blok di bawahnya dan mengaktifkan mekanisme yang cocok. Blok redstone ditempatkan atau dihapus untuk mengaktifkan/menonaktifkan tiap perilaku. Karena /spreadplayers berjalan berulang, bot terus mengambil keputusan baru, menciptakan perilaku yang tak bisa diprediksi tapi terstruktur.

Master Gumbo menyebut ini "bentuk AI yang sangat sederhana dan dasar" : ia tidak belajar dari interaksi seperti jaringan saraf, tapi keacakan + mesin keadaan menghasilkan perilaku PvP realistis yang lebih sulit diprediksi daripada bot berskrip. Pusat pengaturan menyertakan antarmuka buku untuk mengaktifkan/menonaktifkan AI, menyesuaikan kesulitan dan mengonfigurasi pola gerakan.

Setelah latihan mereka dengan bot lalu duel melawan pemain yang menyebutnya payah (di intro videonya), Master Gumbo menang. Peta dibagikan lewat Discord, Carpet Mod diperlukan.

The bot in a duel, practicing mace PvP techniques

Di mana bot PvP (Kadambi) belajar dari piksel dan ANNA menalar lewat pohon tugas, bot Master Gumbo mencapai kecerdasan lewat transisi keadaan acak : pendekatan command block murni yang membuktikan kamu tidak butuh jaringan saraf untuk membangun lawan PvP yang meyakinkan.

Altoclef : Baritone + pohon tugas skala besar

Kalau ANNA adalah bot simbolis yang membaca untuk tahu apa yang dilakukan, dan Mace Bot mengacak keputusan, Altoclef adalah agen otonom lengkap yang merencanakan jalannya lewat seluruh permainan. Dibangun oleh gaucho-matero sebagai mod Fabric dan didukung pathfinding Baritone, Altoclef mengurai objektif Minecraft apa pun menjadi pohon tugas dan mengeksekusinya tanpa intervensi manusia.

Antarmukanya menipu sederhana : ketik @gamer di chat, dan Altoclef memulai tugas "menyelesaikan permainan" dari survival. Ia memanen kayu, membuat alat, menambang besi dan berlian, membangun portal Nether, mengumpulkan blaze rod dan ender pearl, menemukan stronghold, dan membunuh Ender Dragon. Semua otonom, lewat klien Minecraft native, di server vanilla mana pun.

Di balik kapnya, ini dicapai berkat sistem pohon tugas rekursif di mana setiap objektif tingkat tinggi (misalnya, "membuat pickaxe berlian") diurai menjadi prasyarat : menambang berlian → meleburnya → membuat stik → menggabungnya. Pohon melintasi graf lengkap resep Minecraft, menangani rantai produksi, drop monster, tabel loot dan akses kontainer. Berlawanan dengan pohon tulis tangan ANNA, tugas Altoclef adalah kelas Java yang bisa diprogram yang bisa mengimplementasikan logika sembarang : strategi tempur, barter dengan piglin, pola eksplorasi.

Ide arsitektural kuncinya adalah pemisahan apa (pohon tugas) dari bagaimana (pathfinding Baritone). Baritone menangani gerakan tingkat rendah : pathfinding, penghindaran rintangan, pemecahan blok, manajemen inventaris, sementara sistem tugas mengatur rencana tingkat tinggi. Modularitas ini berarti tidak ada komponen yang perlu menjadi AI : keduanya algoritma deterministik, tapi kombinasinya menghasilkan perilaku kompleks dan berorientasi tujuan yang menyaingi pendekatan pembelajaran.

Altoclef mewakili batas AI Minecraft simbolis murni : ia bisa menyelesaikan permainan dari nol tanpa pelatihan, tanpa GPU, dan tanpa data manusia, tapi ia tidak bisa beradaptasi pada tugas yang tidak diantisipasi programmernya, dan ia tidak bisa belajar dari pengalaman. Ia tahu membuat pickaxe berlian karena kelas Java memberitahunya tepat caranya, bukan karena ia menemukannya sendiri.

Yang menghubungkan mereka

Pendekatan Metode utama Data Komputasi Hasil
Bot PvP video RL + imitation learning 1 000 duel 1 laptop, 60 jam Combo 100 pukulan
OpenAI Five RL self-play 180 tahun permainan/hari 256 GPU, 10 bulan Juara dunia Dota 2
VPT IL semi-supervisi 70 ribu jam YouTube + IDM 720 GPU, 9 hari Alat berlian
DreamerV3 RL model dunia Trajek yang dimimpikan 1 GPU, 9 hari Berlian dari nol
ANNA NLP simbolis + pohon tugas Resep tertulis 1 laptop, instan Objek apa pun yang bisa dicraft
Altoclef Baritone + pohon tugas FS Kelas Java tugas Mod Fabric, tanpa GPU Menyelesaikan seluruh permainan
Mace Bot Mesin keadaan Command block Keputusan acak Vanilla MC, tanpa GPU Latihan PvP mace

Bot dalam video paling terkendala sumber daya tapi paling jujur soal prosesnya. Ia gagal dulu, lalu beriterasi. Ia lupa apa yang dipelajari, lalu mempelajarinya lagi. Ia berakhir dengan combo 100 pukulan : tapi juga dengan pertanyaan tentang apakah yang dibangunnya curang.


Video : AI Learns Minecraft PvP oleh Kadambi | AI Engineering

VPT : Artikel · Blog · GitHub

OpenAI Five : Artikel · Blog

DreamerV3 : Artikel · GitHub

ANNA : GitHub · (Node.js, Mineflayer, NLP Prancis, pohon tugas)

Altoclef : GitHub · Fork aktif · (Fabric, Baritone, task tree, beats game)

Mace Bot : Video oleh Master Gumbo · (Command blocks, Carpet Mod, mesin keadaan)

AI Minecraft PvP सीखती है, Imitation Learning, Reinforcement Learning, और 30 चर जो मायने रखते थे

1 000 द्वंद्व दर्ज, pixel पर प्रशिक्षित neural network, प्रहार की 90 % सटीकता : और बॉट सीधे दीवार में घुसता था। फिर RL, पाठ्यचर्या सीखना और 60 घंटे प्रशिक्षण आए।

परिचय

AI Learns Minecraft PvP thumbnail

Kadambi | AI Engineering की AI Learns Minecraft PvP (Reinforcement Learning + Behavior Cloning) शीर्षक वीडियो है, और यह वीडियो गेम AI प्रशिक्षण के सबसे ईमानदार वृत्तांतों में से एक है जो मैंने देखे हैं।

सिद्धांत : Minecraft PvP खेलने वाला बॉट बनाना (तलवार kit, पूरी enchanted हीरा armor) स्क्रीन देखकर और mouse keyboard कमांड भेजकर। वह सिर्फ pixel input और क्रिया output से काम करता है, बिना खेल स्मृति पढ़े, बिना macro और बिना mod।

जो वीडियो को दिलचस्प बनाता है वह अंतिम परिणाम नहीं है। यह यात्रा है : imitation learning विफलता, feature engineering की ओर मोड़, भयानक भूल चक्र, और बिना GPU laptop पर 60+ घंटे प्रशिक्षण।

चरण 1 : Imitation Learning (विफलता)

imitation learning के दौरान बॉट : दीवार की ओर मुँह, ऊपर नीचे कूदता हुआ

निर्माता समझदार दृष्टिकोण से शुरू हुआ : अपने gameplay के 1 000 द्वंद्व दर्ज करना, हर mouse क्लिक और कुंजी दबाव को संबंधित छवि से जोड़ना, और pixel से क्रियाएँ भविष्यवाणी करने के लिए neural network प्रशिक्षित करना।

# Pseudocode for the imitation learning pipeline
dataset = record_duels(1000)          # hundreds of thousands of frames
for frame, action in dataset:
    pixels = capture_screen(frame)
    network.train(pixels → action)    # predict keyboard/mouse from image

network ने 90 % सटीकता से प्रहार भविष्यवाणी करना सीखा। आशाजनक।

फिर उन्होंने इसे असली मैच में परखा। बॉट सीधे नक्शे के किनारे गया, दीवार की ओर मुँह किया, और ऊपर नीचे कूदा।

क्यों ?

आलस जाल। PvP लड़ाई में, W कुंजी ज्यादातर समय दबी होती है। network ने महसूस किया कि वह बस W दबाए रखकर और कुछ न करके उच्च सटीकता पा सकता है। उसने बाकी सबकी कीमत पर सबसे बार क्रिया अनुकूलित की।

मानवीय विलंबता। डेटा सेट में क्रियाएँ लगभग 200 ms मानवीय प्रतिक्रिया समय विलंबित हैं। छवि दर छवि, कारण और प्रभाव network के लिए कच्चे pixel से सीखना लगभग असंभव है जब क्रिया और उसका दिखता परिणाम कई छवियों से अलग हों।

असंगत प्रदर्शन। निर्माता का खुद का gameplay बदलता था : कभी वह keyboard से strafing करता था, कभी समान स्थितियों में mouse से निशाना लगाता था। इन विरोधी input ने network को भ्रमित किया।

चरण 2 : पाठ्यचर्या के साथ Reinforcement Learning

RL प्रशिक्षण के दौरान क्षैतिज track करना सीखता बॉट

imitation learning छोड़कर, निर्माता RL की ओर मुड़ा। लेकिन ताजा एजेंट को पूरे PvP द्वंद्व में डुबोना बेकार है : बेतरतीब खोज को कुछ मिलने के लिए एक साथ बहुत कुछ होता है।

समाधान : पाठ्यचर्या सीखना। हर यांत्रिकी अलग करना और बॉट को असली लड़ाई में प्रवेश से पहले बुनियादी बातों में महारत हासिल करने देना।

कदम 1 : क्षैतिज निशाना (7 घंटे)

सबसे सरल पुरस्कार फंक्शन : लक्ष्य छूने के लिए सकारात्मक पुरस्कार, नुकसान झेलने के लिए नकारात्मक दंड।

शुरू में, बॉट मुश्किल से हिलता है (तटस्थ मानों से आरंभ neural network)। वह पार्श्व काँपता है : यह बॉट है जो अलग क्रियाएँ परखता है यह देखने के लिए कि कौन सी पुरस्कार देती हैं।

एक घंटे बाद, वह क्षैतिज केंद्र करना सीखता है, लेकिन कष्टपूर्वक धीरे। 7 घंटे बाद, वह शत्रु को बाएँ और दाएँ follow कर सकता है, हालाँकि असममित (दाएँ से बाएँ जाने में बाएँ से दाएँ से बेहतर, व्यवहार जो पूरे प्रशिक्षण बना रहा)।

कदम 2 : Feature Engineering

कच्चा screenshot 2 मिलियन pixel से ज्यादा था। 360p तक घटाकर भी, यह 200 000 input है : प्रभावी सीखने के लिए बहुत ज्यादा।

निर्माता ने हजारों द्वंद्व विश्लेषण किए और 30 चर जो सच में मायने रखते हैं पहचाने, तीन समूहों में बँटे :

Vision (शत्रु track) :

  • crosshair से शत्रु दूरी
  • शत्रु bounding box आकार
  • शत्रु ऊँचाई
  • crosshair स्थिति (लक्ष्य पर / लक्ष्य से बाहर)
  • सापेक्ष वेग

पूरी छवि प्रोसेस करने के बजाय, बॉट pixel को कड़ाई से शत्रु armor रंग से छाँटता है, पहचान लगभग तुरंत बनाता है। समान रंग के पृष्ठभूमि ब्लॉक इस छँटाई को भ्रमित कर सकते हैं : लेकिन Minecraft में, हम बस texture बदल सकते हैं।

OCR (HUD पढ़ना) : चूँकि बॉट खेल कोड से निर्देशांक नहीं ले सकता, वह वास्तविक समय स्क्रीन scan करता है निकालने के लिए :

  • कैमरा pitch
  • Momentum
  • Y स्तर

मानक OCR Minecraft पारदर्शी पाठ से जूझता है, इसलिए महत्वपूर्ण डेटा तुरंत पढ़ने के लिए black white बाध्य किया जाता है।

समय (संदर्भ विंडो) :

  • तुमने शत्रु को छुए तब से बीता समय
  • उसने तुम्हें छुए तब से बीता समय
  • बॉट की पिछली क्रियाओं का चल buffer

यह network को कालिक संदर्भ देता है : उसके बिना, बॉट को कोई अंदाजा नहीं कि वह combo बीच में है या लड़ाई शुरू कर रहा है।

कदम 3 : ऊर्ध्वाधर निशाना (7 और घंटे)

RL प्रशिक्षण के दौरान ऊपर नीचे निशाना लगाना सीखता बॉट

mouse ऊर्ध्वाधर गति जोड़ना शुरू में "पूर्ण तबाही" था। प्रारंभिक प्रदर्शन टूटा था।

sandbox में एक और घंटे बाद, बॉट ने समझा कि ऊपर नीचे कैसे देखना है। लेकिन प्रक्रिया में, वह पूरी तरह भूल गया कि क्षैतिज follow कैसे करना है।

यह भयानक भूल है : क्लासिक machine learning समस्या जहाँ नए डेटा अनुकूलन पहले सीखे निरूपण मिटा देता है। ऊर्ध्वाधर निशाना अनुकूलित करते हुए, neural network ने गलती से अपनी क्षैतिज प्रगति मिटा दी, निर्माता के पास बॉट छोड़ा जो crosshair स्तर रख सकता था लेकिन लक्ष्य follow नहीं कर सकता था।

ऊर्ध्वाधर नियंत्रण रखते हुए क्षैतिज track वापस पाने के लिए 6 अतिरिक्त घंटे लगे। बॉट ने तब OCR समूह से कैमरा pitch निकालने से अच्छा crosshair placement बनाए रखा।

कदम 4 : keyboard नियंत्रण

W कुंजी लगातार टॉगल करता बॉट, गति को अपनाना सीखता हुआ

बॉट को keyboard इस्तेमाल की अनुमति देने से कालिक विशेषताएँ और महत्वपूर्ण हो गईं। शुरू में, W कुंजी लगातार चालू बंद होती थी : तेज बदलाव क्योंकि network ने अपनाना नहीं सीखा था।

यह व्यवहार दंडित किया गया, इसलिए बॉट ने उसे चिकना करना सीखा। वह sprint में ज्यादा प्रहार लगाने लगा (खड़े प्रहार के swish के खिलाफ गूँज ध्वनि)। कुछ combo असंतोषजनक लगते थे क्योंकि बॉट शत्रु पर अपनी पहुँच लाभ शोषण करता था।

चीजें निष्पक्ष बनाने के लिए, निर्माता ने शत्रु पहुँच बढ़ाई। बॉट की सीखी बहुत सी रणनीतियाँ काम करना बंद हो गईं। लेकिन समय के साथ, वह अनुकूलित हुआ।

कदम 5 : बॉट को कब क्लिक करना सिखाना

अंतिम चरण के लिए, निर्माता ने imitation learning वापस लाया : लेकिन सिर्फ क्लिक समय सिखाने के लिए, पूरी नियंत्रण नीति नहीं। बॉट ने दर्ज द्वंद्वों के क्लिक पैटर्न नकल करने की कोशिश की।

शुरू में, वह कुछ भी आजमाने से बहुत डरता था, खराब क्लिक दंड से डरकर। लेकिन आखिर उसने प्रहार करने और प्रहार लगाने का साहस पाया। बेशक, प्रक्रिया में वह फिर से निशाना लगाना भूल गया : निर्माता को संतोषजनक स्थिति लौटने के लिए उसे 50 अतिरिक्त घंटे अकेला छोड़ना पड़ा।

धोखा बहस

वीडियो पूछकर खत्म होता है : क्या यह बॉट धोखा देता है ?

विपक्ष तर्क : बॉट सिर्फ वही प्रोसेस करता है जो मानव देखता है (वही pixel), वही keyboard/mouse input भेजता है जो मानव भेजता है (anti-knockback जैसे पैकेट हेरफेर के बिना), और खेल स्मृति नहीं पढ़ता (X-ray या ESP के बिना)।

पक्ष तर्क : बॉट मानव से तेज प्रोसेस कर सकता है, और अगर विरोधी सोचता है कि वह मानव से खेल रहा है लेकिन ऐसा नहीं है, तो यह छल है।

निर्माता राय : यह इरादे पर निर्भर करता है। अगर दोनों पक्ष जानते हैं कि यह बॉट है, तो मैच निष्पक्ष है। बॉट शत्रु को 100 प्रहारों की शृंखला से शून्य में जकड़ता है।

परिणाम

100 प्रहार combo निष्पादित करता बॉट

बिना GPU laptop पर प्रशिक्षित Minecraft PvP बॉट, कस्टम प्रशिक्षण पाइपलाइन पर बना :

  • pixel input के लिए Screenshot (2M+ pixel → 30 डिजाइन विशेषताएँ)
  • पाठ्यचर्या सीखना (क्षैतिज → ऊर्ध्वाधर → keyboard → क्लिक)
  • मोटर नियंत्रण के लिए RL + क्लिक समय के लिए imitation learning
  • कच्चे pixel पर Feature engineering (3 समूह : vision, OCR, समय)
  • कई चरणों में 60+ घंटे प्रशिक्षण

कुल प्रशिक्षण समय दसियों घंटे है, लेकिन ज्यादातर निष्क्रिय है। बॉट समझने तक काँपता है, जो सीखा भूल जाता है, फिर से सीखता है, और 100 प्रहारों की शृंखला जकड़कर खत्म करता है।

वीडियो youtube.com/watch?v=j5nxDKAjg6U पर है।


यह लेख सिर्फ वीडियो सामग्री कवर करता है। Minecraft AI पर व्यापक संदर्भ के लिए : VPT, DreamerV3, और imitation learning बनाम RL परिदृश्य : नीचे के खंड इस प्रोजेक्ट को व्यापक क्षेत्र से जोड़ते हैं।

VPT : बड़े पैमाने पर Behavior cloning

OpenAI का VPT प्रोजेक्ट चित्र : Inverse Dynamics Model frame जोड़ों से क्रियाएँ भविष्यवाणी करता है

वीडियो का "behavior cloning" दृष्टिकोण (चरण 1) वही तकनीक है जो OpenAI ने अपने Video PreTraining (VPT) प्रोजेक्ट में इस्तेमाल की, लेकिन संसाधन स्पेक्ट्रम के विपरीत छोरों पर। VPT ने साबित किया कि imitation learning Minecraft के लिए काम करता है जब 70 000 घंटे वीडियो, 720 GPU, और अलेबल डेटा छद्म लेबल करने के लिए inverse dynamics model हों। यहाँ निर्माता ने साबित किया कि वह laptop और 1 000 द्वंद्वों से विफल होता है : लेकिन उसी मौलिक कारण से : imitation learning अपने प्रदर्शनों की गुणवत्ता से सीमित है।

पूर्व प्रशिक्षण डेटा आयतन अनुसार crafting/संग्रह दर (log पैमाना) : craft तालिकाएँ, लकड़ी उपकरण, पत्थर उपकरण

पैमाना प्रभाव स्पष्ट है : 1 घंटे से 100 000 घंटे पूर्व प्रशिक्षण डेटा के log अक्ष पर, दर जिस पर मॉडल craft तालिका, लकड़ी उपकरण, फिर पत्थर उपकरण बनाता है चरणों में चढ़ती है। सिर्फ contractor लेबल 2 000 घंटों पर प्रशिक्षित मॉडल craft तालिकाओं पर ठहरता है ; IDM छद्म लेबल 70 000 घंटे (ग्राफ पर बिंदीदार रेखा) जोड़ने से ही पत्थर उपकरण zero-shot उभरते हैं, RL के एक भी कदम के बिना।

परिणामी 0,5B पैरामीटर आधारभूत मॉडल ने RL अकेले से असंभव zero-shot क्षमताएँ पाईं : पेड़ काटना, तालिकाएँ बनाना, स्तंभ कूद : और RL से fine-tune होकर, वह हीरा उपकरण बनाने वाली पहली AI बना।

RL प्रशिक्षण episode संख्या अनुसार पुरस्कार : बेतरतीब आरंभ मॉडल से शुरू बनाम पूर्व प्रशिक्षित VPT मॉडल से शुरू

यह ग्राफ दिखाता है कि downstream RL के लिए पूर्व प्रशिक्षण सब क्यों बदलता है। बेतरतीब आरंभ network से शुरू RL (नारंगी) लगभग दस लाख episode पर 0 के पास सपाट रहता है : "हीरा पाओ" कार्य में इतना विरल पुरस्कार है कि भोला एजेंट बेतरतीब खोज से उस पर नहीं गिरता। पूर्व प्रशिक्षित VPT मॉडल से fine-tune RL (हरा) पहले से बुनियादी व्यवहार (खनन, बनाना, खोजना) से शुरू करता है और हीरा कुदाल के पूरे रास्ते से मेल खाते लगभग 25 पुरस्कार तक नियमित चढ़ता है।

OpenAI VPT प्रोजेक्ट के आधिकारिक वीडियो डेमो, एजेंट को क्रिया में दिखाते हुए।

OpenAI Five : reward shaping समस्या

मानव पेशेवरों के खिलाफ Dota 2 खेलता OpenAI Five

OpenAI Five (2019) ने स्व सीखने में शुद्ध RL इस्तेमाल करके Dota 2 विश्व चैंपियनों को हराया : कोई imitation learning नहीं। 256 GPU, 128 000 CPU core, प्रतिदिन 180 साल खेल, 10 महीने प्रशिक्षण।

लेकिन पुरस्कार फंक्शन Dota विशेषज्ञों ने हाथ से डिजाइन किया था : उपलब्ध 20 000 में से 28 विशेषताएँ, हर एक मैन्युअल समायोजित भार के साथ। शुद्ध मूल्य, हत्याएँ, मौतें, tower स्वास्थ्य, lane नियुक्ति : सब मानवों ने चुना और भारित किया। इस मॉडलिंग के बिना, एजेंट मुश्किल से सीखता था (प्रयोग : सिर्फ जीत/हार पुरस्कार → semi-pro स्तर पर पठार)।

वीडियो का बॉट उसी समस्या का सामना करता है : उसका पुरस्कार फंक्शन निर्माता की समझ एन्कोड करता है कि PvP में क्या मायने रखता है (छूना अच्छा है, छुआ जाना बुरा है, crosshair बनाए रखना अच्छा है)। यह अपरिहार्य है : RL को पुरस्कार संकेत चाहिए, और इस संकेत का मॉडलिंग मानवीय पूर्वाग्रह एन्कोड करता है।

DreamerV3 : World model और विरल पुरस्कार

एक ही कॉन्फ़िगरेशन से 150 विविध कार्यों में DreamerV3 benchmark स्कोर

DeepMind का DreamerV3 (2023) तीसरा दृष्टिकोण अपनाता है। behavior cloning या प्रोत्साहन RL के बजाय, वह world model सीखता है : neural network जो पिछली क्रियाओं से भविष्य स्थितियाँ और पुरस्कार भविष्यवाणी करता है : और संभावित भविष्य सपने देखकर योजना बनाता है। यह पहला एल्गोरिदम है जिसने बिना मानव डेटा या पाठ्यचर्या Minecraft में शून्य से हीरे एकत्र किए, 2025 में Nature में प्रकाशित।

DreamerV3 भविष्य प्रक्षेपवक्र कल्पना करने के लिए world model सीखता है

हीरा वातावरण 12 मील पत्थरों (लठ्ठा → तख्ते → छड़ी → craft तालिका → लकड़ी कुदाल → पत्थर → पत्थर कुदाल → लौह अयस्क → भट्ठी → लौह पिंड → लौह कुदाल → हीरा) पर विरल पुरस्कार परिभाषित करता है, हर एक सिर्फ एक बार +1 देता है। साथ में छोटा स्वास्थ्य पुरस्कार (±0,01 प्रति pv)। पहुँचने योग्य कुल : 36 000 कदम episode में 11,1।

DreamerV3 का world model उसे प्रक्षेपवक्र कल्पना और आंतरिक मूल्यांकन करने देता है : अभिनेता वास्तविक अनुभव के बजाय सपने rollouts से सीखता है, हर वास्तविक कदम के लिए हजारों संभावित भविष्य परखता है। यह विरल पुरस्कारों को संभव बनाता है जहाँ वे मानक RL एजेंट को नष्ट कर देंगे।

100M वातावरण कदमों के लिए प्रशिक्षित 40 बीजों में से, 40 में से 24 ने कम से कम एक हीरा एकत्र किया। पहला हीरा 29M कदमों बाद (~एक GPU पर 9 दिन) प्रकट हुआ।

ANNA : प्रतीकात्मक AI Minecraft से मिलती है

flint-and-steel के लिए ANNA कार्य वृक्ष अपघटन

वीडियो के PvP बॉट से पहले, VPT और DreamerV3 से पहले, ANNA था : पूरी तरह अलग दर्शन से बना Minecraft बॉट। pixel या पुरस्कार से सीखने के बजाय, ANNA प्रतीकात्मक स्थिति मशीन इस्तेमाल करता है जिसमें फ्रांसीसी NLP विश्लेषक और हाथ से लिखा कार्य निर्भरता वृक्ष है।

2022 में बनाया गया ("vibe coding" शब्द बनने से पहले), ANNA Mineflayer से Minecraft serveur से जुड़ता है और फ्रांसीसी में प्राकृतिक भाषा कमांड समझता है। कहो "briquet पाओ", और ANNA क्रिया विश्लेषण करता है (पाओ → पाना), वस्तु नुस्खा खोजता है, और पुनरावर्ती उपकार्यों में तोड़ता है : बलूत खनन → तख्ते बनाना → छड़ें बनाना → craft तालिका बनाना → लकड़ी कुदाल बनाना → पत्थर खनन → पत्थर कुदाल बनाना → लौह अयस्क खनन → लौह पिंड गलाना → briquet बनाना।

फ्रांसीसी कमांड पहचान के लिए ANNA NLP parser आर्किटेक्चर

NLP परत (utils/id_parser.js) समानांतर आदेश संभालने के लिए "और" पर कमांड अलग करती है, फ्रांसीसी क्रियाओं को कार्य प्रकारों से जोड़ती है, और 5 000 प्रविष्टि शब्दकोश से फ्रांसीसी वस्तु नाम Minecraft पहचान में अनुवाद करती है। गैर पहचानी कमांड GPT आधारित बातचीत तंत्र से गुजरती हैं जो ANNA को सचेतन Minecraft साथी के रूप में पेश करता है।

कार्य वृक्ष (mc-tasks-tree/) हृदय है : पुनरावर्ती एल्गोरिदम जो Minecraft वस्तु ग्राफ (craft नुस्खे, खनन उपज, राक्षस drop, भट्ठी नुस्खे) चलकर कदम दर कदम योजना बनाता है। हीरा helmet के लिए, वह लकड़ी, पत्थर, लोहा और हीरा स्तर कवर 40+ चरण अपघटन बनाता है।

ANNA हीरा helmet कार्य वृक्ष : 40+ चरण विवरण

जहाँ वीडियो का PvP बॉट अनुभव से सीखता है, ANNA ज्ञान से काम करता है। उसे 1 000 द्वंद्व या 60 घंटे प्रशिक्षण नहीं चाहिए : उसे वृक्ष, विश्लेषक और serveur/वितरक चाहिए। लेकिन वह अपने वृक्ष एन्कोड से परे सामान्यीकरण भी नहीं कर सकता। कोई भी स्थिति मशीन इंजीनियरिंग उसे PvP करना नहीं सिखाएगी।

ANNA दृष्टिकोण AI के अलग युग को दर्शाता है : end to end सीखने के हावी होने से पहले, जब वादा था कि सावधान इंजीनियरिंग से जुड़ा प्रतीकात्मक तर्क बुद्धिमान व्यवहार बना सकता है। आज, ANNA और PvP बॉट जैसे प्रोजेक्ट Minecraft AI के दो ध्रुव दर्शाते हैं : एक दुनिया पर तर्क करता है, दूसरा उसे देखता है।

Master Gumbo का Mace Bot : सिर्फ command block वाली AI

बॉट के साथ Mace PvP प्रशिक्षण arena

Minecraft AI के पूरी तरह अलग कोने में, YouTubeर Master Gumbo ने सिर्फ command block इस्तेमाल करके PvP प्रशिक्षण बॉट बनाया, सिर्फ vanilla Minecraft कमांड, redstone, और मानव सदृश clone इकाइयों के लिए carpet mod से। परिणाम भीड़ के लिए AI विरोधी है जो खिलाड़ी के साथ breach बदलाव, wind charge और shield तंत्र अभ्यास करता है।

बॉट अटूट उपकरण और दूसरी hand में totem वाले zombie के रूप में शुरू होता है (हर tick /item replace से भरा), उसे प्रभावी अमर बनाता है। बाद में, Master Gumbo Carpet Mod player replica बॉट पर जाता है, जो मानव सदृश यांत्रिकी (shield उठाना, वस्तु बदलना) समर्थन करते हैं जो zombie नहीं कर सकते।

सेटिंग केंद्र : बॉट व्यवहार कॉन्फ़िगर करने के बटन

केंद्रीय नवाचार बेतरतीब चालित स्थिति मशीन है। armor stand /spreadplayers कमांड से रंगीन कंक्रीट ब्लॉक गोले के ऊपर teleport किया जाता है, जो इकाइयाँ बेतरतीब फैलाता है। कंक्रीट ब्लॉक रंग जिस पर armor stand उतरता है वह बॉट की अगली क्रिया तय करता है :

  • लाल कंक्रीट → पीछे strafe
  • नीला कंक्रीट → wind charge से ऊपर उठता है (हमला)
  • हरा कंक्रीट → shield उठाता है
  • सफेद कंक्रीट → pause (क्रियाओं के बीच विलंब जोड़ता है)

AI निर्णय तंत्र : रंगीन कंक्रीट पर armor stand

armor stand स्थिति उन command block से पढ़ी जाती है जो नीचे ब्लॉक पहचानते हैं और संबंधित तंत्र सक्रिय करते हैं। हर व्यवहार सक्रिय/निष्क्रिय करने के लिए redstone ब्लॉक रखा या हटाया जाता है। क्योंकि /spreadplayers दोहराव में चलता है, बॉट लगातार नए निर्णय लेता है, अप्रत्याशित लेकिन संरचित व्यवहार बनाता है।

Master Gumbo इसे "AI का बहुत सरल और बुनियादी रूप" कहता है : यह neural network की तरह बातचीत से नहीं सीखता, लेकिन बेतरतीबता + स्थिति मशीन यथार्थवादी PvP व्यवहार बनाती है जो scripted बॉट से भविष्यवाणी करना कठिन है। पैरामीटर केंद्र में AI सक्रिय/निष्क्रिय करने, कठिनाई समायोजित करने और गति पैटर्न कॉन्फ़िगर करने के लिए पुस्तक इंटरफेस शामिल है।

बॉट से प्रशिक्षण के बाद फिर उस खिलाड़ी के खिलाफ द्वंद्व में जिसने उसे बेकार कहा था (उसके वीडियो intro में), Master Gumbo जीतता है। नक्शा Discord से साझा किया जाता है, Carpet Mod जरूरी।

द्वंद्व में बॉट, mace PvP तकनीक अभ्यास करता हुआ

जहाँ PvP बॉट (Kadambi) pixel से सीखता है और ANNA कार्य वृक्ष से तर्क करता है, Master Gumbo बॉट बेतरतीब स्थिति संक्रमण से बुद्धि पाता है : शुद्ध command block दृष्टिकोण जो साबित करता है कि विश्वसनीय PvP विरोधी बनाने के लिए neural network नहीं चाहिए।

Altoclef : बड़े पैमाने पर Baritone + कार्य वृक्ष

अगर ANNA प्रतीकात्मक बॉट है जो जानने के लिए पढ़ता है कि क्या करना है, और Mace Bot निर्णय बेतरतीब करता है, तो Altoclef पूर्ण स्वायत्त एजेंट है जो पूरे खेल में अपना रास्ता योजनाबद्ध करता है। gaucho-matero ने Fabric mod बनाया और Baritone pathfinding से संचालित, Altoclef किसी भी Minecraft उद्देश्य को कार्य वृक्ष में तोड़ता है और बिना मानवीय हस्तक्षेप निष्पादित करता है।

इंटरफेस धोखे से सरल है : चैट में @gamer टाइप करो, और Altoclef survival दुनिया से "खेल खत्म करो" कार्य शुरू करता है। वह लकड़ी काटता है, उपकरण craft करता है, लोहा और हीरा खनन करता है, Nether portal बनाता है, Blaze छड़ें और Ender मोती एकत्र करता है, stronghold खोजता है, और Ender Dragon मारता है। सब स्वायत्तता में, नेटिव Minecraft client से, किसी भी vanilla serveur पर।

हुड के नीचे, यह पुनरावर्ती कार्य वृक्ष तंत्र से होता है जहाँ हर उच्च स्तरीय उद्देश्य (उदाहरण के लिए, "हीरा कुदाल craft करो") पूर्वापेक्षा कार्यों में तोड़ा जाता है : हीरा खनन → उसे गलाना → छड़ें craft करना → उन्हें जोड़ना। वृक्ष पूरा Minecraft नुस्खा ग्राफ चलता है, उत्पादन शृंखलाएँ, राक्षस drop, लूट तालिकाएँ और container पहुँच संभालता है। ANNA के हाथ से लिखे वृक्ष के विपरीत, Altoclef कार्य प्रोग्राम करने योग्य Java क्लास हैं जो मनमानी तर्क लागू कर सकती हैं : युद्ध रणनीतियाँ, piglin अदला बदली, खोज पैटर्न।

मुख्य आर्किटेक्चरल विचार क्या (कार्य वृक्ष) को कैसे (Baritone pathfinding) से अलग करना है। Baritone निम्न स्तरीय गति संभालता है : pathfinding, बाधा परिहार, ब्लॉक तोड़ना, inventory प्रबंधन, जबकि कार्य तंत्र उच्च स्तरीय योजना संचालित करता है। इस modularity का मतलब है कि किसी घटक को AI होने की जरूरत नहीं है : दोनों नियतात्मक एल्गोरिदम हैं, लेकिन उनका संयोजन जटिल और लक्ष्योन्मुखी व्यवहार बनाता है जो सीख दृष्टिकोणों से टक्कर लेता है।

Altoclef शुद्ध प्रतीकात्मक Minecraft AI की सीमा दर्शाता है : वह बिना प्रशिक्षण, बिना GPU, और बिना मानव डेटा शून्य से खेल खत्म कर सकता है, लेकिन वह उन कार्यों के अनुकूल नहीं हो सकता जिनका उसके प्रोग्रामरों ने पूर्वानुमान नहीं किया, और वह अनुभव से नहीं सीख सकता। वह हीरा कुदाल craft करना जानता है क्योंकि Java क्लास उसे बिल्कुल बताती है कैसे, इसलिए नहीं कि उसने खुद खोजा।

इन्हें क्या जोड़ता है

दृष्टिकोण मुख्य विधि डेटा गणना परिणाम
वीडियो का PvP बॉट RL + imitation learning 1 000 द्वंद्व 1 laptop, 60h 100 प्रहार combo
OpenAI Five स्व सीखने में RL 180 साल खेल/दिन 256 GPU, 10mo Dota 2 विश्व चैंपियन
VPT अर्ध पर्यवेक्षित IL 70K h YouTube + IDM 720 GPU, 9 दिन हीरा उपकरण
DreamerV3 RL world model सपने प्रक्षेपवक्र 1 GPU, 9 दिन शून्य से हीरा
ANNA प्रतीकात्मक NLP + कार्य वृक्ष लिखित नुस्खे 1 laptop, तुरंत हर craft योग्य वस्तु
Altoclef Baritone + कार्य वृक्ष FS Java कार्य क्लास Fabric mod, कोई GPU नहीं पूरा खेल हराना
Mace Bot Command block स्थिति मशीन बेतरतीब निर्णय Vanilla MC, बिना GPU Mace PvP प्रशिक्षण

वीडियो का बॉट संसाधनों में सबसे बाधित है लेकिन प्रक्रिया पर सबसे ईमानदार है। वह पहले विफल होता है, फिर दोहराता है। वह जो सीखा भूल जाता है, फिर फिर से सीखता है। वह 100 प्रहार combo से खत्म करता है : लेकिन उसने जो बनाया उस पर धोखा प्रश्न से भी।


वीडियो : Kadambi | AI Engineering की AI Learns Minecraft PvP

VPT : लेख · ब्लॉग · GitHub

OpenAI Five : लेख · ब्लॉग

DreamerV3 : लेख · GitHub

ANNA : GitHub · (Node.js, Mineflayer, फ्रांसीसी NLP, कार्य वृक्ष)

Altoclef : GitHub · सक्रिय fork · (Fabric, Baritone, कार्य वृक्ष, खेल हराता है)

Mace Bot : Master Gumbo की वीडियो · (Command block, Carpet Mod, स्थिति मशीन)

الذكاء الاصطناعي يتعلم PvP في Minecraft، تعلم التقليد والتعلم المعزز والمتغيرات الـ30 التي كانت مهمة

1 000 مبارزة مسجلة، وشبكة عصبية مدرَّبة على بكسلات، و90% دقة ضربات : والبوت كان يندفع مباشرة في جدار. ثم جاء RL والتعلم المنهجي و60 ساعة تدريب.

مقدمة

AI Learns Minecraft PvP thumbnail

هناك فيديو بعنوان AI Learns Minecraft PvP (Reinforcement Learning + Behavior Cloning) لـKadambi | AI Engineering، وهو من أصدق سرديات تدريب ذكاء اصطناعي لألعاب الفيديو التي رأيتها.

المبدأ : بناء بوت يلعب PvP في Minecraft (عدة سيف، ودرع ماسي مسحور كاملا) بالنظر إلى الشاشة وإرسال أوامر فأرة ولوحة مفاتيح. يعمل فقط ببكسلات كمدخل وأفعال كمخرج، دون قراءة ذاكرة اللعبة، ودون ماكرو ودون mods.

ما يجعل الفيديو مثيرا ليس النتيجة النهائية. بل المسار : فشل تعلم التقليد، والتحول نحو هندسة المزايا، ودورات النسيان الكارثي، وساعات التدريب الـ60+ على laptop دون GPU.

المرحلة 1 : تعلم التقليد (الفشل)

The bot during imitation learning: facing a wall, jumping up and down

بدأ المبدع بمقاربة معقولة : تسجيل 1 000 مبارزة من لعبه الخاص، وربط كل نقرة فأرة وضغطة زر بالصورة الموافقة، وتدريب شبكة عصبية على توقع الأفعال من البكسلات.

# شبه كود لخط تعلم التقليد
dataset = record_duels(1000)          # hundreds of thousands of frames
for frame, action in dataset:
    pixels = capture_screen(frame)
    network.train(pixels → action)    # predict keyboard/mouse from image

تعلمت الشبكة توقع الضربات بـ90% دقة. واعد.

ثم جربوها في مباراة حقيقية. اتجه البوت straight نحو حافة الخريطة، وواجه جدارا، وقفز صعودا ونزولا.

لماذا ؟

فخ الكسل. في قتال PvP، زر W مضغوط معظم الوقت. أدركت الشبكة أنها تستطيع بلوغ دقة عالية بالحفاظ ببساطة على W مضغوطا وعدم فعل شيء آخر. حسّنت الفعل الأكثر تكرارا على حساب كل الأفعال الأخرى.

زمن الاستجابة البشري. الأفعال في طقم البيانات متأخرة بحوالي 200 ms من زمن رد الفعل البشري. صورة بصورة، السبب والنتيجة شبه مستحيل تعلمهما لنموذج من بكسلات خام عندما يكون الفعل وعاقبته المرئية منفصلين بعدة صور.

عروض غير متسقة. لعب المبدع الخاص كان متفاوتا : أحيانا يتحرك جانبيا بلوحة المفاتيح، وأحيانا يصوّب بالفأرة في مواقف متطابقة. هذه المدخلات المتناقضة أربكت الشبكة.

المرحلة 2 : التعلم المعزز مع منهج

The bot learning to track horizontally during RL training

متخليا عن تعلم التقليد، تحول المبدع نحو RL. لكن غمس وكيل جديد في مبارزة PvP كاملة عديم الفائدة : يحدث الكثير دفعة واحدة ليعثر استكشاف عشوائي على أي شيء.

الحل : التعلم المنهجي. عزل كل ميكانيكية وترك البوت يتقن الأساسيات قبل دخول قتال حقيقي.

الخطوة 1 : التصويب الأفقي (7 ساعات)

أبسط دالة مكافأة : مكافأة إيجابية لإصابة هدف، وعقوبة سلبية لتلقي أضرار.

في البداية، بالكاد يتحرك البوت (شبكة عصبية مُهيَّأة بقيم محايدة). يرتجف جانبيا : إنه البوت يختبر أفعالا مختلفة ليرى أيها يعطي مكافآت.

بعد ساعة، يتعلم التمركز أفقيا، لكن بصعوبة وببطء. بعد 7 ساعات، يستطيع تتبع العدو يمينا ويسارا، وإن بشكل غير متماثل (أفضل في التحرك من اليمين إلى اليسار من اليسار إلى اليمين، سلوك استمر طوال التدريب).

الخطوة 2 : هندسة المزايا

كانت لقطة الشاشة الخام أكثر من مليوني بكسل. حتى مُخفَّضة إلى 360p، تمثل 200 000 مدخل : أكثر بكثير من اللازم لتعلم فعال.

حلّل المبدع آلاف المبارزات وحدد 30 متغيرا مهما فعلا، موزعة في ثلاث مجموعات :

رؤية (تتبع العدو) :

  • مسافة العدو عن مؤشر التصويب (crosshair)
  • حجم صندوق إحاطة العدو
  • ارتفاع العدو
  • حالة مؤشر التصويب (على هدف / خارج هدف)
  • السرعة النسبية

بدلا من معالجة الصورة كاملة، يرشّح البوت البكسلات بدقة بلون درع العدو، جاعلا الكشف شبه فوري. يمكن لكتل خلفية مشابهة اللون أن تعكّر هذا الترشيح : لكن في Minecraft، يمكن ببساطة تغيير القوام.

OCR (قراءة HUD) : بما أن البوت لا يستطيع استرجاع الإحداثيات من كود اللعبة، يمسح الشاشة في الوقت الحقيقي لاستخراج :

  • ميل الكاميرا
  • الزخم
  • المستوى Y

يجد OCR القياسي صعوبة مع نص Minecraft الشفاف، لذا تُجبَر البيانات الحرجة بالأبيض والأسود لقراءة فورية.

زمن (نافذة سياق) :

  • الزمن المنقضي منذ لمست العدو
  • الزمن المنقضي منذ لمسك
  • عازل منزلق لأفعال البوت السابقة

وهذا يعطي الشبكة سياقا زمنيا : بدونه، لا فكرة للبوت إن كان وسط combo أو يبدأ قتالا فقط.

الخطوة 3 : التصويب العمودي (7 ساعات أخرى)

The bot learning to aim up and down during RL training

كانت إضافة حركة الفأرة العمودية «كارثة شاملة» في البداية. الأداء الأولي كان مكسورا.

بعد ساعة أخرى في صندوق الرمل، فهم البوت كيف ينظر صعودا ونزولا. لكن في العملية، نسي تماما كيف يتتبع أفقيا.

إنه النسيان الكارثي : مشكلة تعلم آلة تقليدية حيث تحسين بيانات جديدة يمحو التمثيلات المُتعلَّمة سابقا. بتحسين التصويب العمودي، محت الشبكة العصبية عرضا تقدمها الأفقي، تاركة المبدع مع بوت يستطيع إبقاء مؤشره مستويا لكن لا يستطيع تتبع هدف.

تطلب الأمر 6 ساعات إضافية لاستعادة التتبع الأفقي مع الحفاظ على التحكم العمودي. حافظ البوت حينها على وضعية مؤشر جيدة بفضل مجموعة OCR المستخرجة لميل الكاميرا.

الخطوة 4 : تحكم لوحة المفاتيح

The bot toggling the W key constantly, learning to commit to movement

منح البوت إذن استخدام لوحة المفاتيح جعل الخصائص الزمنية أكثر حرجا. في البداية، كان زر W يُفعَّل ويُعطَّل باستمرار : تبديل سريع لأن الشبكة لم تتعلم الالتزام.

عوقب هذا السلوك، فتعلم البوت تنعيمه. بدأ يصيب ضربات أكثر في العدو (الصوت الأجش مقابل حفيف ضربة واقفا). بدت بعض الـcombos غير مُرضية لأن البوت كان يستغل ميزة مداه على العدو.

ولجعل الأمور عادلة، زاد المبدع مدى العدو. توقفت الكثير من استراتيجيات البوت المُتعلَّمة عن العمل. لكن مع الوقت، تكيف.

الخطوة 5 : تعليم البوت متى ينقر

للمرحلة النهائية، أعاد المبدع تعلم التقليد : لكن فقط لتعليم توقيت النقرات، لا سياسة التحكم الكاملة. حاول البوت تقليد أنماط نقرات المبارزات المسجلة.

في البداية، كان خائفا أكثر من اللازم من تجربة أي شيء، خشية عقوبة النقرات السيئة. لكنه وجد أخيرا الشجاعة للضرب وإصابة ضربات. طبعا، نسي كيف يصوّب مرة أخرى في العملية : اضطر المبدع لتركه وحده 50 ساعة إضافية للعودة لحالة مُرضية.

نقاش الغش

ينتهي الفيديو بسؤال : هل يغش هذا البوت ؟

الحجة ضد : لا يعالج البوت إلا ما يراه إنسان (نفس البكسلات)، ويرسل نفس مدخلات لوحة المفاتيح/الفأرة كإنسان (دون تلاعب حزم مثل anti-knockback)، ولا يقرأ ذاكرة اللعبة (دون X-ray ولا ESP).

الحجة مع : يستطيع البوت المعالجة أسرع من إنسان، وإذا ظن الخصم أنه يلعب ضد إنسان بينما ليس كذلك، فهذا خداع.

رأي المبدع : يعتمد على النية. إذا عرف الطرفان أنه بوت، فالمباراة عادلة. يسلسل البوت العدو في الفراغ بسلسلة 100 ضربة.

النتيجة

The bot executing a 100-hit combo

بوت PvP في Minecraft مُدرَّب على laptop دون GPU، مبني على خط تدريب مخصص مع :

  • لقطة شاشة لمدخل البكسل (2M+ بكسل ← 30 خاصية مصممة)
  • تعلم منهجي (أفقي ← عمودي ← لوحة مفاتيح ← نقرات)
  • RL للتحكم الحركي + تعلم تقليد لتوقيت النقرات
  • هندسة مزايا على البكسلات الخام (3 مجموعات : رؤية وOCR وزمن)
  • 60+ ساعة تدريب على عدة مراحل

زمن التدريب الإجمالي عشرات الساعات، لكن معظمها سلبي. يرتجف البوت حتى الفهم، وينسى ما تعلمه، ويعيد تعلمه، وينتهي بسلسلة 100 ضربة.

الفيديو على youtube.com/watch?v=j5nxDKAjg6U.


يغطي هذا المقال محتوى الفيديو فقط. لسياق أوسع عن ذكاء Minecraft الاصطناعي : VPT وDreamerV3 ومشهد تعلم التقليد ضد RL : تربط الأقسام أدناه هذا المشروع بالمجال الأوسع.

VPT : استنساخ سلوك على نطاق واسع

OpenAI's VPT project diagram : the Inverse Dynamics Model predicts actions from pairs of frames

مقاربة «استنساخ السلوك» في الفيديو (المرحلة 1) هي نفس التقنية التي استخدمتها OpenAI في مشروعها Video PreTraining (VPT)، لكن في طرفي طيف الموارد المتقابلين. أثبت VPT أن تعلم التقليد يعمل لـMinecraft عندما تملك 70 000 ساعة فيديو و720 GPU ونموذج ديناميكية عكسية لتوسيم بيانات غير موسومة زائفا. وأثبت المبدع هنا أنه يفشل مع laptop و1 000 مبارزة : لكن لنفس السبب الجوهري : تعلم التقليد محدود بجودة عروضه.

OpenAI's VPT agent mining a tree in Minecraft

يحل خط VPT مشكلة البيانات بتدريب نموذج ديناميكية عكسية (IDM) ينظر للصورة t-1 والصورة t+1 لتوقع الفعل في الصورة t. ولأن IDM غير سببي (يرى الصور المستقبلية)، المهمة أسهل من استنساخ السلوك وتتطلب بيانات موسومة أقل بكثير. دفعوا لمتعاقدين حوالي 2 000 $ مقابل 2 000 ساعة بيانات موسومة، ثم استخدموا IDM لتوسيم 70 000 ساعة من فيديوهات YouTube الخاصة بـMinecraft زائفا.

Taux de crafting/collecte en fonction du volume de données de pré-entraînement (échelle log) : tables de craft, outils en bois, outils en pierre

أثر القياس واضح : على محور log من ساعة إلى 100 000 ساعة من بيانات ما قبل التدريب، يصعد معدل صنع النموذج لطاولة craft وأدوات خشبية ثم أدوات حجرية على درجات. النموذج المدرَّب فقط على 2 000 ساعة موسومة من متعاقدين يسقف عند طاولات craft ؛ وبإضافة 70 000 ساعة موسومة زائفا بالـIDM (الخط المنقط على الرسم) تظهر الأدوات الحجرية في zero-shot، دون خطوة RL واحدة.

بلغ النموذج الأساسي الناتج من 0,5B معامل قدرات zero-shot مستحيلة مع RL وحده : قطع أشجار وصنع طاولات وقفز عمودي : ومضبوطا بدقة مع RL، صار أول ذكاء اصطناعي يصنع أدوات ماسية.

Récompense en fonction du nombre d'épisodes d'entraînement RL : partir d'un modèle initialisé aléatoirement vs partir du modèle VPT pré-entraîné

يوضح هذا الرسم لماذا يغيّر ما قبل التدريب كل شيء لـRL اللاحق. RL المنطلق من شبكة مُهيَّأة عشوائيا (برتقالي) يبقى مسطحا قرب 0 على قرابة مليون حلقة : مهمة «الحصول على ماسة» ذات مكافأة متناثرة أكثر من أن يعثر عليها وكيل ساذج باستكشاف عشوائي. RL المضبوط بدقة انطلاقا من نموذج VPT المُدرَّب مسبقا (أخضر) ينطلق بسلوك الأساس فعلا (تعدين وصنع واستكشاف) ويصعد بانتظام حتى مكافأة حوالي 25، ما يقابل المسار الكامل نحو معول ماسي.

عروض فيديو رسمية من مشروع VPT الخاص بـOpenAI، تُظهر الوكيل أثناء العمل.

OpenAI Five : مشكلة تشكيل المكافأة

OpenAI Five playing Dota 2 against human professionals

هزم OpenAI Five (2019) أبطال العالم في Dota 2 باستخدام RL خالص في تعلم ذاتي : دون تعلم تقليد. 256 GPU و128 000 نواة CPU و180 سنة لعب يوميا و10 أشهر تدريب.

لكن دالة المكافأة صُمِّمت يدويا من خبراء Dota : 28 خاصية من 20 000 المتاحة، لكل واحدة أوزان مضبوطة يدويا. قيمة صافية وإقصاءات ووفيات وصحة أبراج وتعيينات ممرات : كلها اختيرت ووُزنت من بشر. دون هذه النمذجة، بالكاد تعلم الوكيل (تجربة : مكافأة فوز/خسارة فقط ← سقف عند مستوى شبه محترف).

يواجه بوت الفيديو نفس المشكلة : دالة مكافأته ترمّز فهم المبدع لما يهم في PvP (اللمس جيد، واللمس سيئ، والحفاظ على المؤشر جيد). إنه حتمي : RL يحتاج إشارة مكافأة، ونمذجة هذه الإشارة ترمّز انحيازا بشريا.

DreamerV3 : نماذج العالم والمكافآت المتناثرة

DreamerV3 benchmark scores across over 150 diverse tasks with a single configuration

يتبنى DreamerV3 الخاص بـDeepMind (2023) مقاربة ثالثة. بدلا من استنساخ السلوك أو RL بالحوافز، يتعلم نموذج عالم : شبكة عصبية تتوقع الحالات المستقبلية والمكافآت من الأفعال الماضية : وتخطط بالحلم بمستقبلات ممكنة. إنه أول خوارزم يعثر على ماسات في Minecraft من الصفر دون بيانات بشرية ولا مناهج، منشور في Nature في 2025.

DreamerV3 learns a world model to imagine future trajectories

تعرّف بيئة الماس مكافأة متناثرة على 12 معلما (جذع ← ألواح ← عصا ← طاولة craft ← معول خشبي ← حجر ← معول حجري ← خام حديد ← فرن ← سبيكة حديد ← معول حديدي ← ماسة)، كل واحد يعطي +1 مرة واحدة. مع مكافأة صحة صغيرة (±0,01 لكل pv). الإجمالي القابل للبلوغ : 11,1 في حلقة من 36 000 خطوة.

يسمح نموذج العالم في DreamerV3 له بتخيل مسارات وتقييمها داخليا : يتعلم الفاعل من عمليات حلم بدلا من التجربة الحقيقية، مختبرا آلاف المستقبلات الممكنة لكل خطوة حقيقية. وهذا يجعل المكافآت المتناثرة ممكنة حيث كانت لتدمر وكيل RL قياسيا.

على 40 بذرة مُدرَّبة لـ100M خطوة بيئية، جمعت 24 من 40 ماسة واحدة على الأقل. ظهرت أول ماسة بعد 29M خطوة (~9 أيام على GPU).

ANNA : الذكاء الرمزي يلتقي Minecraft

ANNA's task tree decomposition for a flint-and-steel

قبل بوت PvP في الفيديو، وقبل VPT وDreamerV3، كانت هناك ANNA : بوت Minecraft مبني بفلسفة مختلفة تماما. بدلا من التعلم من البكسلات أو المكافآت، تستخدم ANNA آلة حالات رمزية مع محلل NLP فرنسي وشجرة تبعيات مهام مكتوبة يدويا.

أُنشئت في 2022 (قبل أن يكون «vibe coding» مصطلحا)، تتصل ANNA بخادم Minecraft عبر Mineflayer وتفهم أوامر بلغة طبيعية بالفرنسية. قل «احصل على قداحة»، فتحلل ANNA الفعل (احصل ← الحصول)، وتبحث عن وصفة الغرض، وتفككها تكراريا إلى مهام فرعية : تعدين بلوط ← صنع ألواح ← صنع عصي ← صنع طاولة craft ← صنع معول خشبي ← تعدين حجر ← صنع معول حجري ← تعدين خام حديد ← صهر سبائك حديد ← صنع القداحة.

ANNA's NLP parser architecture for French command recognition

تفصل طبقة NLP (utils/id_parser.js) الأوامر على «و» لمعالجة الأوامر المتوازية، وتربط الأفعال الفرنسية بأنواع المهام، وتترجم أسماء الأغراض الفرنسية إلى معرفات Minecraft عبر قاموس 5 000 مدخل. تمر الأوامر غير المعروفة إلى نظام محادثة قائم على GPT يقدم ANNA كرفيق Minecraft واعٍ.

شجرة المهام (mc-tasks-tree/) هي القلب : خوارزم تكراري يجوب رسم أغراض Minecraft (وصفات craft وعوائد تعدين وإسقاطات وحوش ووصفات فرن) لإنتاج خطة خطوة بخطوة. لخوذة ماسية، يولد تفكيكا من 40+ خطوة يغطي مستويات الخشب والحجر والحديد والماس.

ANNA's diamond helmet task tree : a 40+ step breakdown

حيث يتعلم بوت PvP في الفيديو من التجربة، تعمل ANNA انطلاقا من المعرفة. لا تحتاج 1 000 مبارزة ولا 60 ساعة تدريب : بل تحتاج الشجرة والمحلل والخادم/الموزع. لكنها لا تستطيع أيضا التعميم أبعد مما ترمّزه شجرتها. لا مقدار من هندسة آلة الحالات سيعلمها PvP.

تعكس مقاربة ANNA حقبة مختلفة من الذكاء الاصطناعي : قبل أن يهيمن التعلم من طرف لطرف، عندما كان الوعد أن المنطق الرمزي المقترن بهندسة دقيقة يستطيع إنتاج سلوك ذكي. اليوم، يمثل مشروعا مثل ANNA وبوت PvP قطبي ذكاء Minecraft الاصطناعي : أحدهما يستدل على العالم، والآخر يدركه.

Master Gumbo's Mace Bot : ذكاء اصطناعي بcommand blocks فقط

The Mace PvP training arena with the bot

في ركن مختلف تماما من ذكاء Minecraft الاصطناعي، بنى اليوتيوبر Master Gumbo بوت تدريب PvP باستخدام command blocks فقط، فقط بأوامر Minecraft الأصلية وredstone وcarpet mod لكيانات مستنسخة من لاعب. النتيجة خصم ذكاء اصطناعي للكتلة يتدرب على تغييرات الثغرة وشحنات الرياح وآليات الدرع مع اللاعب.

يبدأ البوت كزومبي بمعدات غير قابلة للكسر وtotem في يده الثانية (يُملأ كل tick عبر /item replace)، جاعلا إياه خالدا فعليا. لاحقا، ينتقل Master Gumbo إلى بوتات نسخ اللاعب في Carpet Mod، التي تدعم ميكانيكيات بشرية (رفع درع وتغيير غرض) لا تستطيعها الزومبيات.

The settings center : buttons to configure bot behavior

الابتكار المركزي هو آلة حالات يقودها العشوائي. حامل درع يُنقَل فوق دائرة من كتل خرسانة ملونة عبر أمر /spreadplayers، الذي يشتت الكيانات عشوائيا. يحدد لون كتلة الخرسانة التي يهبط عليها حامل الدرع فعل البوت التالي :

  • خرسانة حمراء ← تحرك جانبي للخلف
  • خرسانة زرقاء ← يرتفع للأعلى (هجوم) مع شحنة الرياح
  • خرسانة خضراء ← رفع الدرع
  • خرسانة بيضاء ← توقف (يضيف مهلة بين الأفعال)

The AI decision system : an armor stand on colored concrete

يُقرأ موضع حامل الدرع بواسطة command blocks تكشف الكتلة تحته وتفعّل الآلية الموافقة. تُوضع كتلة redstone أو تُزال لتفعيل/تعطيل كل سلوك. ولأن /spreadplayers يعمل بتكرار، يتخذ البوت قرارات جديدة باستمرار، خالقا سلوكا غير متوقع لكن منظم.

يسمي Master Gumbo هذا «شكلا بسيطا وأساسيا جدا من الذكاء الاصطناعي» : إنه لا يتعلم من التفاعلات كالشبكات العصبية، لكن العشوائي + آلة الحالات ينتج سلوك PvP واقعيا أصعب توقعا من بوت مُبرمَج. يتضمن مركز الإعدادات واجهة كتاب لتفعيل/تعطيل الذكاء، وضبط الصعوبة، وإعداد أنماط التحرك.

بعد تدريبهم مع البوت ثم في مبارزة ضد اللاعب الذي وصفه بالسيئ (في مقدمة فيديوه)، يفوز Master Gumbo. تُشارَك الخريطة عبر Discord، ويلزم Carpet Mod.

The bot in a duel, practicing mace PvP techniques

حيث يتعلم بوت PvP (Kadambi) من البكسلات وتستدل ANNA عبر شجرة مهام، يبلغ بوت Master Gumbo الذكاء بـانتقالات حالات عشوائية : مقاربة command block خالصة تثبت أنك لا تحتاج شبكات عصبية لبناء خصم PvP مقنع.

Altoclef : شجرة مهام Baritone + على نطاق واسع

إذا كانت ANNA بوتا رمزيا يقرأ ليعرف ماذا يفعل، وكان Mace Bot يعشوِّن القرارات، فـAltoclef وكيل مستقل كامل يخطط طريقه عبر اللعبة كلها. مبني من gaucho-matero كـmod Fabric ومدفوع بمسار Baritone، يفكك Altoclef أي هدف في Minecraft إلى شجرة مهام وينفذه دون تدخل بشري.

الواجهة بسيطة بشكل مخادع : اكتب @gamer في الدردشة، ويبدأ Altoclef مهمة «إنهاء اللعبة» من عالم survival. يجمع خشبا، ويصنع أدوات، ويعدّن حديدا وماسا، ويبني بوابة Nether، ويجمع عصي Blaze ولآلئ Ender، ويجد stronghold، ويقتل Ender Dragon. الكل باستقلالية، عبر عميل Minecraft الأصلي، على أي خادم vanilla.

تحت الغطاء، يتحقق هذا بفضل نظام شجرة مهام تكراري حيث كل هدف عالي المستوى (مثلا، «اصنع معولا ماسي») يُفكَّك إلى مهام مسبقة : تعدين ماس ← صهره ← صنع عصي ← دمجها. تجوب الشجرة رسم وصفات Minecraft الكامل، مديرة سلاسل الإنتاج وإسقاطات الوحوش وجداول الغنائم والوصول للحاويات. وخلافا للشجرة المكتوبة يدويا في ANNA، مهام Altoclef فئات Java قابلة للبرمجة تستطيع تنفيذ منطق اعتباطي : استراتيجيات قتال، ومقايضة مع piglins، وأنماط استكشاف.

الفكرة البنيوية الأساسية هي فصل الماذا (شجرة المهام) عن الكيف (مسار Baritone). يدير Baritone التنقلات الدنيا : مسار وتجنب عوائق وكسر كتل وإدارة مخزون، بينما ينظّم نظام المهام الخطة العليا. تعني هذه الوحدوية أن لا مكوّن يحتاج أن يكون ذكاء اصطناعيا : كلاهما خوارزميتان حتميتان، لكن تركيبهما ينتج سلوكا معقدا موجها لهدف ينافس المقاربات بالتعلم.

يمثل Altoclef حد ذكاء Minecraft الرمزي الخالص : يستطيع إنهاء اللعبة من الصفر دون تدريب ودون GPU ودون بيانات بشرية، لكنه لا يستطيع التكيف مع مهام لم يتوقعها مبرمجوه، ولا يستطيع التعلم من التجربة. يعرف صنع معول ماسي لأن فئة Java تقول له بالضبط كيف، لا لأنه اكتشفه وحده.

ما الذي يربطها

المقاربة الطريقة الرئيسية البيانات الحساب النتيجة
بوت PvP في الفيديو RL + تعلم تقليد 1 000 مبارزة laptop واحد، 60h سلسلة 100 ضربة
OpenAI Five RL في تعلم ذاتي 180 سنة لعب/يوم 256 GPU، 10 أشهر بطل العالم Dota 2
VPT IL شبه مُشرَف 70K h يوتيوب + IDM 720 GPU، 9 أيام أدوات ماسية
DreamerV3 نموذج عالم RL مسارات محلومة GPU واحد، 9 أيام ماسة من الصفر
ANNA NLP رمزي + شجرة مهام وصفات مكتوبة laptop واحد، فوري كل غرض قابل للصنع
Altoclef Baritone + شجرة مهام FS فئات مهام Java mod Fabric، دون GPU إنهاء اللعبة كاملة
Mace Bot آلة حالات Command block قرارات عشوائية MC أصلي، دون GPU تدريب PvP بالمطرقة

بوت الفيديو هو الأكثر تقييدا بالموارد لكنه الأصدق عن العملية. يفشل أولا، ثم يكرر. ينسى ما تعلمه، ثم يتعلمه مجددا. ينتهي بسلسلة 100 ضربة : لكن أيضا بسؤال عما بناه إن كان غشا.


الفيديو : AI Learns Minecraft PvP لـKadambi | AI Engineering

VPT : مقال · مدونة · GitHub

OpenAI Five : مقال · مدونة

DreamerV3 : مقال · GitHub

ANNA : GitHub · (Node.js وMineflayer وNLP فرنسي وشجرة مهام)

Altoclef : GitHub · تفرع نشط · (Fabric وBaritone وشجرة مهام، ينهي اللعبة)

Mace Bot : فيديو لـMaster Gumbo · (Command blocks وCarpet Mod وآلة حالات)

AI học PvP Minecraft -- Imitation Learning, Reinforcement Learning, và 30 biến đáng kể

1 000 trận đấu ghi lại, mạng nơ-ron huấn luyện trên pixel, 90 % độ chính xác đòn đánh : mà bot lao thẳng vào tường. Rồi tới RL, học theo chương trình và 60 giờ huấn luyện.

Giới thiệu

AI Learns Minecraft PvP thumbnail

Có một video tên AI Learns Minecraft PvP (Reinforcement Learning + Behavior Cloning) của Kadambi | AI Engineering, và đó là một trong những câu chuyện trung thực nhất về huấn luyện AI game tôi từng thấy.

Nguyên tắc : dựng bot chơi PvP Minecraft (kit kiếm, giáp kim cương full enchant) bằng cách nhìn màn hình và gửi lệnh chuột với bàn phím. Nó chỉ chạy với pixel làm đầu vào và hành động làm đầu ra, không đọc bộ nhớ game, không macro và không mod.

Điều khiến video thú vị không phải kết quả cuối. Mà là hành trình : thất bại của imitation learning, chuyển hướng sang feature engineering, các chu kỳ quên thảm khốc, và 60+ giờ huấn luyện trên laptop không GPU.

Giai đoạn 1 : Imitation Learning (thất bại)

Bot lúc imitation learning: đối mặt tường, nhảy lên nhảy xuống

Người sáng tạo khởi đầu với cách hợp lý : ghi 1 000 trận đấu từ chính gameplay của mình, gắn mỗi cú bấm chuột và phím nhấn với hình ảnh tương ứng, và huấn luyện mạng nơ-ron đoán hành động từ pixel.

# Pseudocode for the imitation learning pipeline
dataset = record_duels(1000)          # hundreds of thousands of frames
for frame, action in dataset:
    pixels = capture_screen(frame)
    network.train(pixels → action)    # predict keyboard/mouse from image

Mạng đã học đoán đòn đánh với 90 % độ chính xác. Đầy hứa hẹn.

Rồi họ test nó trong trận thật. Bot đi thẳng tới mép bản đồ, đối mặt tường, và nhảy lên nhảy xuống.

Vì sao?

Bẫy lười biếng. Trong trận PvP, phím W giữ phần lớn thời gian. Mạng nhận ra nó có thể đạt độ chính xác cao chỉ bằng cách giữ W và không làm gì khác. Nó tối ưu hành động thường gặp nhất mà hại mọi hành động khác.

Độ trễ con người. Các hành động trong dataset trễ khoảng 200 ms thời gian phản ứng con người. Từng ảnh một, nguyên nhân và kết quả gần như không thể học với mô hình từ pixel thô khi hành động và hệ quả thấy được của nó cách nhau nhiều ảnh.

Demo không nhất quán. Chính gameplay của người sáng tạo thay đổi : đôi khi anh ấy strafe bằng bàn phím, đôi khi ngắm bằng chuột trong tình huống giống hệt. Các đầu vào mâu thuẫn này làm rối mạng.

Giai đoạn 2 : Reinforcement Learning với chương trình

Bot học bám ngang lúc huấn luyện RL

Bỏ imitation learning, người sáng tạo chuyển sang RL. Nhưng thả tác nhân non vào trận PvP đầy đủ là vô ích : quá nhiều thứ cùng lúc để khám phá ngẫu nhiên tìm được gì.

Giải pháp : học theo chương trình. Tách từng cơ chế và để bot nắm vững nền trước khi vào trận thật.

Bước 1 : Ngắm ngang (7 giờ)

Hàm thưởng đơn giản nhất : thưởng dương khi chạm mục tiêu, phạt âm khi chịu sát thương.

Ban đầu, bot hầu như không động (mạng nơ-ron khởi tạo với giá trị trung tính). Nó run ngang : đó là bot thử các hành động khác nhau để xem cái nào cho thưởng.

Sau một giờ, nó học căn giữa ngang, nhưng chậm đau đớn. Sau 7 giờ, nó có thể theo địch sang trái và phải, dù bất đối xứng (giỏi di chuyển từ phải sang trái hơn từ trái sang phải, hành vi bám suốt quá trình huấn luyện).

Bước 2 : Feature Engineering

Ảnh chụp màn hình thô hơn 2 triệu pixel. Ngay cả rút còn 360p, vẫn là 200 000 đầu vào : quá nhiều cho học hiệu quả.

Người sáng tạo đã phân tích hàng nghìn trận đấu và xác định 30 biến thực sự đáng kể, chia thành ba nhóm :

Thị giác (bám địch) :

  • Khoảng cách của địch so với tâm ngắm (crosshair)
  • Kích thước hộp bao của địch
  • Chiều cao của địch
  • Trạng thái tâm ngắm (trên mục tiêu / ngoài mục tiêu)
  • Vận tốc tương đối

Thay vì xử lý toàn bộ ảnh, bot lọc pixel nghiêm ngặt theo màu giáp địch, khiến phát hiện gần như tức thì. Các khối nền màu tương tự có thể nhiễu bộ lọc này : nhưng trong Minecraft, ta có thể đơn giản đổi texture.

OCR (đọc HUD) : Vì bot không thể lấy tọa độ từ mã game, nó quét màn hình thời gian thực để trích :

  • Pitch của camera
  • Momentum
  • Mức Y

OCR chuẩn chật vật với văn bản trong suốt của Minecraft, nên dữ liệu then chốt bị ép thành đen trắng để đọc tức thì.

Thời gian (cửa sổ ngữ cảnh) :

  • Thời gian trôi từ khi bạn chạm địch
  • Thời gian trôi từ khi nó chạm bạn
  • Bộ đệm trượt các hành động trước của bot

Việc này cho mạng ngữ cảnh thời gian : không có nó, bot không biết nó đang giữa combo hay vừa bắt đầu trận.

Bước 3 : Ngắm dọc (7 giờ nữa)

Bot học ngắm lên xuống lúc huấn luyện RL

Thêm chuyển động chuột dọc lúc đầu là « thảm họa toàn diện ». Hiệu năng ban đầu vỡ nát.

Sau thêm một giờ trong hộp cát, bot đã hiểu cách nhìn lên và xuống. Nhưng trong quá trình đó, nó hoàn toàn quên cách bám ngang.

Đó là quên thảm khốc : vấn đề kinh điển của học máy nơi tối ưu cho dữ liệu mới xóa đè biểu diễn đã học trước. Khi tối ưu ngắm dọc, mạng nơ-ron vô tình xóa tiến triển ngang, để lại cho người sáng tạo bot có thể giữ tâm ngắm ngang mà không thể theo mục tiêu.

Phải mất 6 giờ nữa để lấy lại bám ngang trong khi giữ điều khiển dọc. Bot sau đó giữ vị trí tâm ngắm tốt nhờ nhóm OCR trích pitch camera.

Bước 4 : Điều khiển bàn phím

Bot bật tắt phím W liên tục, học cam kết di chuyển

Cho bot quyền dùng bàn phím khiến đặc trưng thời gian càng then chốt. Lúc đầu, phím W liên tục bật tắt : thay đổi nhanh vì mạng chưa học cam kết.

Hành vi này bị phạt, nên bot học làm mượt nó. Nó bắt đầu trúng nhiều đòn hơn khi chạy nước rút (tiếng thịch so với tiếng vút của đòn đứng yên). Vài combo trông chưa thỏa mãn vì bot khai thác lợi thế tầm đánh lên địch.

Để công bằng, người sáng tạo tăng tầm đánh của địch. Nhiều chiến lược bot học được ngừng chạy. Nhưng theo thời gian, nó thích ứng.

Bước 5 : Dạy bot khi nào bấm

Cho giai đoạn cuối, người sáng tạo mang imitation learning về : nhưng chỉ để dạy thời điểm bấm, không phải chính sách điều khiển đầy đủ. Bot cố bắt chước mẫu bấm của các trận đấu ghi lại.

Ban đầu, nó quá sợ thử bất cứ gì, sợ bị phạt vì bấm sai. Nhưng cuối cùng nó lấy can đảm đánh và trúng đòn. Tất nhiên, nó lại quên cách ngắm trong quá trình : người sáng tạo phải để nó yên thêm 50 giờ nữa để về trạng thái ưng ý.

Tranh luận gian lận

Video kết thúc bằng câu hỏi : bot này có gian lận không?

Lập luận chống : bot chỉ xử lý điều con người thấy (cùng pixel), gửi cùng đầu vào bàn phím/chuột như con người (không thao tác gói như anti-knockback), và không đọc bộ nhớ game (không X-ray hay ESP).

Lập luận thuận : bot có thể xử lý nhanh hơn con người, và nếu đối thủ tưởng mình chơi với con người mà thực ra không, đó là lừa dối.

Ý kiến người sáng tạo : tùy ý định. Nếu cả hai bên biết đó là bot, trận công bằng. Bot xích địch bay trong không trung bằng chuỗi 100 đòn.

Kết quả

Bot thực hiện combo 100 đòn

Bot PvP Minecraft huấn luyện trên laptop không GPU, dựng trên pipeline huấn luyện tùy chỉnh với :

  • Chụp màn hình cho đầu vào pixel (2M+ pixel → 30 đặc trưng thiết kế)
  • Học theo chương trình (ngang → dọc → bàn phím → bấm)
  • RL cho điều khiển vận động + imitation learning cho thời điểm bấm
  • Feature engineering trên pixel thô (3 nhóm : thị giác, OCR, thời gian)
  • 60+ giờ huấn luyện qua nhiều giai đoạn

Tổng thời gian huấn luyện hàng chục giờ, nhưng phần lớn thụ động. Bot run tới khi hiểu, quên điều đã học, học lại, và cuối cùng xích chuỗi 100 đòn.

Video ở youtube.com/watch?v=j5nxDKAjg6U.


Bài này chỉ bao quát nội dung video. Để có bối cảnh rộng hơn về AI Minecraft : VPT, DreamerV3, và toàn cảnh imitation learning đấu RL : các mục bên dưới nối dự án này với lĩnh vực rộng hơn.

VPT : Behavior cloning ở quy mô lớn

Sơ đồ dự án VPT của OpenAI : Inverse Dynamics Model đoán hành động từ cặp frame

Cách « behavior cloning » của video (Giai đoạn 1) là cùng kỹ thuật OpenAI dùng trong dự án Video PreTraining (VPT) của họ, nhưng ở hai đầu đối diện của phổ tài nguyên. VPT đã chứng minh imitation learning chạy được cho Minecraft khi bạn có 70 000 giờ video, 720 GPU, và inverse dynamics model để gán nhãn giả cho dữ liệu không nhãn. Người sáng tạo ở đây đã chứng minh nó thất bại với laptop và 1 000 trận đấu : nhưng vì cùng lý do nền : imitation learning bị giới hạn bởi chất lượng demo của nó.

Tác nhân VPT của OpenAI đào cây trong Minecraft

Pipeline VPT giải bài toán dữ liệu bằng cách huấn luyện Inverse Dynamics Model (IDM) nhìn ảnh t-1 và ảnh t+1 để đoán hành động ở ảnh t. Vì IDM phi nhân quả (nó thấy ảnh tương lai), nhiệm vụ dễ hơn behavior cloning và cần ít dữ liệu gán nhãn hơn nhiều. Họ trả nhà thầu khoảng 2 000 $ cho 2 000 giờ dữ liệu gán nhãn, rồi dùng IDM để gán nhãn giả 70 000 giờ video YouTube Minecraft.

Tỷ lệ craft/thu thập theo khối lượng dữ liệu tiền huấn luyện (thang log) : bàn craft, công cụ gỗ, công cụ đá

Hiệu ứng quy mô rõ : trên trục log từ 1 giờ tới 100 000 giờ dữ liệu tiền huấn luyện, tỷ lệ mô hình chế bàn craft, công cụ gỗ, rồi công cụ đá leo theo bậc. Mô hình chỉ huấn luyện trên 2 000 giờ nhà thầu gán nhãn trần ở bàn craft ; chính khi thêm 70 000 giờ IDM gán nhãn giả (đường đứt nét trên đồ thị) công cụ đá mới nổi lên zero-shot, không một bước RL nào.

Mô hình nền 0,5B tham số kết quả đạt khả năng zero-shot không thể với chỉ RL : chặt cây, chế bàn, nhảy cột : và fine-tune bằng RL, nó thành AI đầu tiên chế công cụ kim cương.

Thưởng theo số episode huấn luyện RL : khởi đầu từ mô hình khởi tạo ngẫu nhiên đấu khởi đầu từ mô hình VPT tiền huấn luyện

Đồ thị này cho thấy vì sao tiền huấn luyện đổi tất cả cho RL phía sau. RL khởi đầu từ mạng khởi tạo ngẫu nhiên (cam) nằm phẳng gần 0 suốt gần một triệu episode : nhiệm vụ « lấy kim cương » có thưởng quá thưa để tác nhân ngây thơ tình cờ vớ được qua khám phá ngẫu nhiên. RL fine-tune từ mô hình VPT tiền huấn luyện (xanh lá) khởi đầu đã có hành vi nền (đào, chế, khám phá) và leo đều tới thưởng khoảng 25, khớp đường đầy đủ tới cuốc kim cương.

Demo video chính thức của dự án VPT của OpenAI, cho thấy tác nhân đang hoạt động.

OpenAI Five : Bài toán định hình thưởng

OpenAI Five chơi Dota 2 với tuyển thủ chuyên nghiệp

OpenAI Five (2019) đã thắng nhà vô địch thế giới Dota 2 bằng RL thuần tự chơi : không imitation learning. 256 GPU, 128 000 lõi CPU, 180 năm game mỗi ngày, 10 tháng huấn luyện.

Nhưng hàm thưởng được thiết kế tay bởi chuyên gia Dota : 28 đặc trưng trên 20 000 có sẵn, mỗi cái với trọng số chỉnh tay. Giá trị ròng, mạng hạ, mạng chết, máu trụ, phân công lane : mọi thứ được con người chọn và cân. Không có mô hình này, tác nhân hầu như không học (thí nghiệm : chỉ thưởng thắng/thua → trần ở cấp bán chuyên).

Bot của video đối mặt cùng bài toán : hàm thưởng của nó mã hóa hiểu biết của người sáng tạo về điều đáng kể trong PvP (chạm là tốt, bị chạm là xấu, giữ tâm ngắm là tốt). Điều này không tránh được : RL cần tín hiệu thưởng, và mô hình hóa tín hiệu đó mã hóa thiên kiến con người.

DreamerV3 : World model và thưởng thưa

Điểm benchmark DreamerV3 trên hơn 150 tác vụ đa dạng với một cấu hình duy nhất

DreamerV3 của DeepMind (2023) theo cách thứ ba. Thay vì behavior cloning hay RL với khuyến khích, nó học world model : mạng nơ-ron đoán trạng thái tương lai và thưởng từ hành động quá khứ : và lập kế hoạch bằng cách mơ các tương lai khả dĩ. Đó là thuật toán đầu tiên thu kim cương trong Minecraft từ con số không không cần dữ liệu con người hay chương trình, đăng trên Nature năm 2025.

DreamerV3 học world model để tưởng tượng quỹ đạo tương lai

Môi trường kim cương định nghĩa thưởng thưa trên 12 cột mốc (gỗ → ván → gậy → bàn craft → cuốc gỗ → đá → cuốc đá → quặng sắt → lò → thỏi sắt → cuốc sắt → kim cương), mỗi cái cho +1 một lần duy nhất. Cộng thưởng máu nhỏ (±0,01 cho mỗi máu). Tổng đạt được : 11,1 trong episode 36 000 bước.

World model của DreamerV3 cho phép nó tưởng tượng quỹ đạo và đánh giá chúng nội tại : tác nhân học từ rollout mơ thay vì kinh nghiệm thật, thử hàng nghìn tương lai khả dĩ cho mỗi bước thật. Việc này khiến thưởng thưa khả thi nơi chúng sẽ hủy tác nhân RL chuẩn.

Trên 40 seed huấn luyện cho 100M bước môi trường, 24 trong 40 thu ít nhất một kim cương. Viên kim cương đầu xuất hiện sau 29M bước (~9 ngày trên GPU).

ANNA : AI ký hiệu gặp Minecraft

Phân rã cây nhiệm vụ của ANNA cho đá lửa

Trước bot PvP của video, trước VPT và DreamerV3, có ANNA : bot Minecraft dựng với triết lý hoàn toàn khác. Thay vì học từ pixel hay thưởng, ANNA dùng máy trạng thái ký hiệu với bộ phân tích NLP tiếng Pháp và cây phụ thuộc nhiệm vụ viết tay.

Tạo năm 2022 (trước khi « vibe coding » thành thuật ngữ), ANNA nối tới máy chủ Minecraft qua Mineflayer và hiểu lệnh ngôn ngữ tự nhiên bằng tiếng Pháp. Nói *« kiếm đá lửa », và ANNA phân tích động từ (kiếm → lấy), tìm công thức vật phẩm, và rã đệ quy thành nhiệm vụ con : đào sồi → chế ván → chế gậy → chế bàn craft → chế cuốc gỗ → đào đá → chế cuốc đá → đào quặng sắt → nung thỏi sắt → chế đá lửa.

Kiến trúc bộ phân tích NLP của ANNA cho nhận diện lệnh tiếng Pháp

Lớp NLP (utils/id_parser.js) tách lệnh trên « et » để xử lý lệnh song song, gắn động từ Pháp với kiểu nhiệm vụ, và dịch tên vật phẩm Pháp sang định danh Minecraft qua từ điển 5 000 mục. Các lệnh không nhận ra chuyển tới hệ thống hội thoại dựa trên GPT giới thiệu ANNA như bạn đồng hành Minecraft có ý thức.

Cây nhiệm vụ (mc-tasks-tree/) là lõi : thuật toán đệ quy duyệt đồ thị vật phẩm Minecraft (công thức craft, sản lượng đào, rơi quái, công thức lò) để cho ra kế hoạch từng bước. Với mũ kim cương, nó sinh phân rã hơn 40 bước phủ các cấp gỗ, đá, sắt và kim cương.

Cây nhiệm vụ mũ kim cương của ANNA : phân rã hơn 40 bước

Nơi bot PvP của video học từ kinh nghiệm, ANNA chạy từ tri thức. Nó không cần 1 000 trận đấu hay 60 giờ huấn luyện : nó cần cây, bộ phân tích và máy chủ/nhà phân phối. Nhưng nó cũng không thể khái quát vượt điều cây của nó mã hóa. Không lượng kỹ thuật máy trạng thái nào dạy nó PvP.

Cách của ANNA phản ánh thời khác của AI : trước khi học đầu cuối thống trị, khi lời hứa là suy luận ký hiệu cộng kỹ thuật cẩn thận có thể cho ra hành vi thông minh. Ngày nay, các dự án như ANNA và bot PvP đại diện hai cực của AI Minecraft : một bên suy luận về thế giới, một bên cảm nhận nó.

Mace Bot của Master Gumbo : AI chỉ bằng command block

Sân huấn luyện PvP Mace với bot

Ở góc hoàn toàn khác của AI Minecraft, YouTuber Master Gumbo đã dựng bot huấn luyện PvP chỉ dùng command block, thuần lệnh Minecraft vanilla, redstone, và carpet mod cho thực thể nhái người chơi. Kết quả là đối thủ AI cho số đông luyện đổi breach, lao gió và cơ chế khiên với người chơi.

Bot khởi đầu là zombie với trang bị không thể phá và totem ở tay phụ (nạp mỗi tick qua /item replace), khiến nó thực tế bất tử. Sau này, Master Gumbo chuyển sang bot Carpet Mod's player replica, hỗ trợ cơ chế giống người (giơ khiên, đổi vật phẩm) mà zombie không làm được.

Trung tâm cài đặt : nút cấu hình hành vi bot

Đổi mới trung tâm là máy trạng thái dẫn bằng ngẫu nhiên. Giá giáp được dịch chuyển lên trên vòng tròn khối bê tông màu qua lệnh /spreadplayers, rải thực thể ngẫu nhiên. Màu của khối bê tông nơi giá giáp đáp xuống quyết hành động tiếp của bot :

  • Bê tông đỏ → strafe lùi
  • Bê tông xanh → bay lên (tấn công) bằng lao gió
  • Bê tông xanh lá → giơ khiên
  • Bê tông trắng → nghỉ (thêm trễ giữa các hành động)

Hệ quyết định AI : giá giáp trên bê tông màu

Vị trí giá giáp được command block đọc để phát hiện khối bên dưới và kích hoạt cơ chế tương ứng. Khối redstone được đặt hay gỡ để bật/tắt mỗi hành vi. Vì /spreadplayers chạy lặp lại, bot liên tục ra quyết định mới, tạo hành vi không đoán được mà có cấu trúc.

Master Gumbo gọi đây là « dạng AI rất đơn giản và cơ bản » : nó không học từ tương tác như mạng nơ-ron, nhưng ngẫu nhiên + máy trạng thái cho ra hành vi PvP thực tế khó đoán hơn bot viết kịch bản. Trung tâm tham số gồm giao diện sách để bật/tắt AI, chỉnh độ khó và cấu hình mẫu di chuyển.

Sau khi họ luyện với bot rồi đấu tay đôi với người chơi từng chê anh ta gà (trong intro video của anh ấy), Master Gumbo thắng. Bản đồ chia sẻ qua Discord, đòi Carpet Mod.

Bot trong trận tay đôi, luyện kỹ thuật PvP mace

Nơi bot PvP (Kadambi) học từ pixel và ANNA suy luận qua cây nhiệm vụ, bot của Master Gumbo đạt trí tuệ bằng chuyển trạng thái ngẫu nhiên : cách thuần command block chứng minh bạn không cần mạng nơ-ron để dựng đối thủ PvP thuyết phục.

Altoclef : Baritone + cây nhiệm vụ quy mô lớn

Nếu ANNA là bot ký hiệu đọc để biết phải làm gì, và Mace Bot ngẫu nhiên hóa quyết định, Altoclef là tác nhân tự chủ đầy đủ lập kế hoạch đường qua cả game. Do gaucho-matero dựng thành mod Fabric và chạy bằng pathfinding Baritone, Altoclef rã bất kỳ mục tiêu Minecraft nào thành cây nhiệm vụ và thực thi không can thiệp con người.

Giao diện lừa đơn giản : gõ @gamer trong chat, và Altoclef bắt đầu nhiệm vụ « phá đảo game » từ thế giới survival. Nó chặt gỗ, craft công cụ, đào sắt và kim cương, dựng cổng Nether, thu gậy Blaze và ngọc Ender, tìm stronghold, và giết Ender Dragon. Tất cả tự chủ, qua client Minecraft gốc, trên bất kỳ máy chủ vanilla nào.

Dưới nắp capo, việc này thực hiện nhờ hệ cây nhiệm vụ đệ quy nơi mỗi mục tiêu cấp cao (ví dụ, « craft cuốc kim cương ») được rã thành nhiệm vụ tiên quyết : đào kim cương → nung nó → craft gậy → kết hợp chúng. Cây duyệt đồ thị công thức Minecraft đầy đủ, xử lý chuỗi sản xuất, rơi quái, bảng loot và truy cập container. Không như cây viết tay của ANNA, nhiệm vụ của Altoclef là lớp Java lập trình được có thể triển khai logic tùy ý : chiến lược chiến đấu, trao đổi với piglin, mẫu khám phá.

Ý kiến trúc mấu chốt là tách cái gì (cây nhiệm vụ) khỏi cách (pathfinding Baritone). Baritone xử lý di chuyển cấp thấp : pathfinding, tránh chướng ngại, đập khối, quản lý túi, trong khi hệ nhiệm vụ dàn xếp kế hoạch cấp cao. Tính module này nghĩa là không thành phần nào cần là AI : cả hai đều là thuật toán xác định, nhưng kết hợp chúng cho ra hành vi phức tạp hướng mục tiêu sánh ngang cách học.

Altoclef đại diện giới hạn của AI Minecraft ký hiệu thuần : nó có thể phá đảo game từ con số không không cần huấn luyện, không GPU, và không dữ liệu con người, nhưng nó không thể thích ứng với nhiệm vụ lập trình viên không lường trước, và nó không thể học từ kinh nghiệm. Nó biết craft cuốc kim cương vì lớp Java bảo nó chính xác cách, không phải vì nó tự phát hiện.

Điều nối chúng

Cách Phương pháp chính Dữ liệu Tính toán Kết quả
Bot PvP của video RL + imitation learning 1 000 trận 1 laptop, 60h Combo 100 đòn
OpenAI Five RL tự chơi 180 năm game/ngày 256 GPU, 10th Vô địch thế giới Dota 2
VPT IL bán giám sát 70K h YouTube + IDM 720 GPU, 9 ngày Công cụ kim cương
DreamerV3 RL world model Quỹ đạo mơ 1 GPU, 9 ngày Kim cương từ không
ANNA NLP ký hiệu + cây nhiệm vụ Công thức viết 1 laptop, tức thì Mọi vật craft được
Altoclef Baritone + task tree FS Lớp nhiệm vụ Java Mod Fabric, không GPU Phá đảo cả game
Mace Bot Máy trạng thái Command block Quyết định ngẫu nhiên Vanilla MC, không GPU Luyện PvP mace

Bot của video bị ràng tài nguyên nhất mà trung thực nhất về quy trình. Nó thất bại trước, rồi lặp. Nó quên điều đã học, rồi học lại. Nó kết bằng combo 100 đòn : mà còn bằng câu hỏi về điều nó dựng có gian lận.


Video : AI Learns Minecraft PvP bởi Kadambi | AI Engineering

VPT : Bài · Blog · GitHub

OpenAI Five : Bài · Blog

DreamerV3 : Bài · GitHub

ANNA : GitHub · (Node.js, Mineflayer, NLP tiếng Pháp, cây nhiệm vụ)

Altoclef : GitHub · Fork hoạt động · (Fabric, Baritone, task tree, beats game)

Mace Bot : Video bởi Master Gumbo · (Command blocks, Carpet Mod, máy trạng thái)

AI เรียนรู้ Minecraft PvP -- Imitation Learning, Reinforcement Learning และ 30 ตัวแปรที่สำคัญ

บันทึก 1,000 ดวล, ฝึกโครงข่ายประสาทเทียมบนพิกเซล, ความแม่นยำในการกดแป้นพิมพ์ 90% : และบอทเดินตรงไปชนกำแพง จากนั้นมา RL, curriculum learning และ 60 ชั่วโมงของการฝึก

บทนำ

AI เรียนรู้ Minecraft PvP thumbnail

มีวิดีโอชื่อ AI Learns Minecraft PvP (Reinforcement Learning + Behavior Cloning) โดย Kadambi | AI Engineering และนี่เป็นหนึ่งในบันทึกที่ซื่อสัตย์ที่สุดเกี่ยวกับการฝึก AI ให้เล่นเกมที่ผมเคยเห็น

แนวคิด: สร้างบอทที่เล่น Minecraft PvP (ชุดดาบ, ชุดเกราะเพชร enchanted เต็ม) โดยการดูหน้าจอและส่งคำสั่งเมาส์และคีย์บอร์ด ไม่ต้องอ่านหน่วยความจำเกม ไม่มีมาโคร ไม่มีม็อด : แค่พิกเซลเข้าไป การกระทำออกมา

สิ่งที่ทำให้วิดีโอนี้น่าสนใจไม่ใช่ผลลัพธ์สุดท้าย แต่มันคือการเดินทาง: ความล้มเหลวของ imitation learning, การเปลี่ยนเส้นทางของ feature engineering, วัฏจักร catastrophic forgetting, และการฝึกกว่า 60 ชั่วโมงบนแล็ปท็อปที่ไม่มี GPU

เฟส 1 : Imitation Learning (ความล้มเหลว)

บอทระหว่าง imitation learning: หันหน้าไปทางกำแพง กระโดดขึ้นลง

ผู้สร้างเริ่มต้นด้วยแนวทางที่สมเหตุสมผล: บันทึก 1,000 ดวลจากการเล่นของตัวเอง, จับคู่ทุกคลิกเมาส์และกดปุ่มกับเฟรมที่สอดคล้อง, และฝึกโครงข่ายประสาทเทียมให้ทำนายการกระทำจากพิกเซล

# Pseudocode for the imitation learning pipeline
dataset = record_duels(1000)          # hundreds of thousands of frames
for frame, action in dataset:
    pixels = capture_screen(frame)
    network.train(pixels → action)    # predict keyboard/mouse from image

โครงข่ายประสาทเรียนรู้ที่จะทำนายการกดแป้นพิมพ์ด้วยความแม่นยำ 90% ดูมีแนวโน้มดี

จากนั้นพวกเขาทดสอบในการแข่งขันจริง บอทเดินตรงไปยังขอบแผนที่ หันหน้าไปทางกำแพง และกระโดดขึ้นลง

ทำไม?

กับดักความขี้เกียจ. ในการต่อสู้ PvP ปุ่ม W จะถูกกดเกือบตลอดเวลา โครงข่ายประสาทรู้ว่ามันสามารถบรรลุความแม่นยำสูงได้โดยการกด W ค้างไว้และไม่ทำอย่างอื่น มันปรับให้เหมาะสมกับการกระทำที่พบบ่อยที่สุดโดยแลกกับสิ่งอื่นทั้งหมด

ความหน่วงของมนุษย์. การกระทำในชุดข้อมูลล่าช้า ~200ms จากเวลาตอบสนองของมนุษย์ แต่ละเฟรม สาเหตุและผลลัพธ์แทบจะเป็นไปไม่ได้ที่โมเดลจะเรียนรู้จากพิกเซลดิบเมื่อการกระทำและผลลัพธ์ที่มองเห็นได้ถูกแยกออกจากกันหลายเฟรม

การสาธิตที่ไม่สอดคล้องกัน. การเล่นของผู้สร้างเองก็แปรปรวน : บางครั้ง strafe ด้วยคีย์บอร์ด บางครั้งเล็งด้วยเมาส์ในสถานการณ์ที่เหมือนกัน อินพุตที่ขัดแย้งกันนี้ทำให้โครงข่ายประสาทสับสน

เฟส 2 : Reinforcement Learning กับ Curriculum

บอทเรียนรู้การติดตามแนวนอนระหว่างการฝึก RL

ละทิ้ง imitation learning ผู้สร้างเปลี่ยนไปใช้ RL แต่การโยนเอเจนต์ใหม่เข้าไปในการดวล PvP เต็มรูปแบบนั้นไร้ประโยชน์ : มีอะไรเกิดขึ้นพร้อมกันมากเกินไปสำหรับการสำรวจแบบสุ่มเพื่อค้นหาสิ่งใด

วิธีแก้ปัญหา: curriculum learning แยกแต่ละกลไกและให้บอทเชี่ยวชาญพื้นฐานก่อนเข้าสู่การต่อสู้จริง

ขั้นที่ 1 : การเล็งแนวนอน (7 ชั่วโมง)

ฟังก์ชัน reward ที่ง่ายที่สุด: รางวัลบวกสำหรับการตี, บทลงโทษลบสำหรับการรับความเสียหาย

ในตอนแรก บอทแทบจะไม่ขยับ (โครงข่ายประสาทเริ่มต้นให้ส่งค่ากลาง) มันสั่นจากด้านหนึ่งไปอีกด้าน : นั่นคือบอทกำลังทดสอบการกระทำต่างๆ เพื่อดูว่าอันไหนให้รางวัล

หลังจากหนึ่งชั่วโมง มันเรียนรู้ที่จะจัดตำแหน่งแนวนอน แต่ช้าอย่างเจ็บปวด หลังจาก 7 ชั่วโมง มันสามารถติดตามศัตรูซ้ายและขวาได้ แม้จะไม่สมมาตร (เคลื่อนที่จากขวาไปซ้ายได้ดีกว่าซ้ายไปขวา ซึ่งเป็นพฤติกรรมที่คงอยู่ตลอดการฝึก)

ขั้นที่ 2 : Feature Engineering

การจับภาพหน้าจอดิบมีมากกว่า 2 ล้านพิกเซล แม้จะย่อลงเหลือ 360p ก็ยังมี 200,000 อินพุต : มากเกินไปสำหรับการเรียนรู้ที่มีประสิทธิภาพ

ผู้สร้างวิเคราะห์การดวลหลายพันครั้งและระบุ 30 ตัวแปรที่สำคัญจริงๆ แบ่งออกเป็นสามกลุ่ม:

Vision (การติดตามศัตรู) :

  • ระยะห่างของศัตรูจาก crosshair
  • ขนาด bounding box ของศัตรู
  • ความสูงของศัตรู
  • สถานะ crosshair (เล็งตรง/ไม่ตรง)
  • ความเร็วสัมพัทธ์

แทนที่จะประมวลผลทั้งภาพ บอทจะกรองพิกเซลตามสีของชุดเกราะศัตรูอย่างเคร่งครัด ทำให้การตรวจจับเกือบจะทันที บล็อกพื้นหลังที่มีสีคล้ายกันอาจรบกวนได้ : แต่ใน Minecraft คุณแค่เปลี่ยนพื้นผิวได้

OCR (การอ่าน HUD) : เนื่องจากบอทไม่สามารถดึงพิกัดจากโค้ดเกม มันจึงสแกนหน้าจอแบบ real-time เพื่อแยก:

  • มุมกล้อง (pitch)
  • โมเมนตัม
  • ระดับ Y

OCR มาตรฐานมีปัญหากับข้อความโปร่งใสของ Minecraft ดังนั้นข้อมูลสำคัญจึงถูกบังคับให้เป็นขาวดำเพื่อการอ่านทันที

เวลา (context window) :

  • เวลาตั้งแต่คุณตีศัตรู
  • เวลาตั้งแต่พวกเขาตีคุณ
  • บัฟเฟอร์หมุนเวียนของการกระทำก่อนหน้าของบอทเอง

สิ่งนี้ให้บริบทเชิงเวลากับโครงข่ายประสาท : หากไม่มีมัน บอทไม่รู้ว่ามันอยู่ระหว่างคอมโบหรือเพิ่งเริ่มการต่อสู้

ขั้นที่ 3 : การเล็งแนวตั้ง (อีก 7 ชั่วโมง)

บอทเรียนรู้การเล็งขึ้นลงระหว่างการฝึก RL

การเพิ่มการเคลื่อนที่ของเมาส์แนวตั้งเป็น "หายนะโดยสิ้นเชิง" ในตอนแรก ประสิทธิภาพเริ่มต้นพังทลาย

หลังจากอีกหนึ่งชั่วโมงใน sandbox บอทก็หาวิธีมองขึ้นและลงได้ แต่ในกระบวนการนี้ มันลืมวิธีการติดตามแนวนอนไปโดยสิ้นเชิง

นี่คือ catastrophic forgetting : ปัญหา machine learning แบบคลาสสิกที่การปรับให้เหมาะสมกับข้อมูลใหม่จะเขียนทับการแสดงผลที่เรียนรู้ไว้ก่อนหน้านี้ โดยการปรับให้เหมาะสมกับการเล็งแนวตั้ง โครงข่ายประสาทเผลอเขียนทับความก้าวหน้าแนวนอน ทำให้ผู้สร้างมีบอทที่ถือ crosshair ในระดับได้แต่ไม่สามารถติดตามเป้าหมายได้

ใช้เวลาเพิ่มอีก 6 ชั่วโมง เพื่อเรียกคืนการติดตามแนวนอนในขณะที่ยังคงควบคุมแนวตั้งไว้ได้ จากนั้นบอทก็รักษาการวาง crosshair ที่ดีได้ด้วยกลุ่ม OCR ที่แยกมุมกล้อง

ขั้นที่ 4 : การควบคุมคีย์บอร์ด

บอทกดปุ่ม W ตลอดเวลา เรียนรู้ที่จะมุ่งมั่นกับการเคลื่อนที่

การให้สิทธิ์บอทใช้คีย์บอร์ดทำให้ฟีเจอร์ตามเวลามีความสำคัญยิ่งขึ้น ในตอนแรก ปุ่ม W ถูกกดเปิดและปิดตลอดเวลา : สลับอย่างรวดเร็วเพราะโครงข่ายประสาทยังไม่ได้เรียนรู้ที่จะมุ่งมั่น

พฤติกรรมนี้ถูกลงโทษ ดังนั้นบอทจึงเรียนรู้ที่จะทำให้มันเรียบเนียนขึ้น มันเริ่มลง sprint hit ได้มากขึ้น (เสียง thud เทียบกับเสียง whoosh ของการฟันยืนตรง) คอมโบบางอันดูไม่น่าพอใจเพราะบอทใช้ประโยชน์จากระยะเอื้อมที่เหนือกว่าศัตรู

เพื่อให้ยุติธรรม ผู้สร้างเพิ่มระยะเอื้อมของศัตรู กลยุทธ์ที่บอทเรียนรู้มาหลายอย่างใช้ไม่ได้อีกต่อไป แต่เมื่อให้เวลาเพิ่ม มันก็ปรับตัวได้

ขั้นที่ 5 : สอนบอทเมื่อควรคลิก

สำหรับเฟสสุดท้าย ผู้สร้างนำ imitation learning กลับมา : แต่เพียงเพื่อสอนจังหวะการคลิก ไม่ใช่นโยบายควบคุมทั้งหมด บอทพยายามเลียนแบบรูปแบบการคลิกจากการดวลที่บันทึกไว้

ตอนแรกมันกลัวเกินกว่าจะลองทำอะไร กลัวบทลงโทษสำหรับการคลิกผิด แต่ในที่สุดมันก็รวบรวมความกล้าที่จะฟันและลงมือตี แน่นอน มันลืมวิธีการเล็งอีกครั้งในกระบวนการ : ผู้สร้างต้องปล่อยมันไว้ตามลำพังอีก 50 ชั่วโมง เพื่อให้กลับสู่สถานะที่น่าพอใจ

การถกเถียงเรื่องการโกง

วิดีโอจบลงด้วยการถามว่า: บอทนี้โกงหรือไม่?

ข้อโต้แย้งฝ่ายไม่โกง: บอทประมวลผลเฉพาะสิ่งที่มนุษย์เห็น (พิกเซลเดียวกัน), ส่งอินพุตคีย์บอร์ด/เมาส์แบบเดียวกับมนุษย์ (ไม่มีการจัดการแพ็คเก็ตเช่น anti-knockback), และไม่อ่านหน่วยความจำเกม (ไม่มี X-ray หรือ ESP)

ข้อโต้แย้งฝ่ายโกง: บอทประมวลผลได้เร็วกว่ามนุษย์ และถ้าฝ่ายตรงข้ามคิดว่ากำลังเล่นกับมนุษย์แต่ไม่ใช่ นั่นคือการหลอกลวง

ความเห็นผู้สร้าง: ขึ้นอยู่กับเจตนา ถ้าทั้งสองฝ่ายรู้ว่ามันคือบอท มันก็เป็นการแข่งขันที่ยุติธรรม จากนั้นบอทก็ตีคอมโบศัตรูตก void ด้วยคอมโบ 100 ครั้งติด

ผลลัพธ์

บอท executing คอมโบ 100 ครั้ง

บอท Minecraft PvP ที่ฝึกบน แล็ปท็อปที่ไม่มี GPU สร้างขึ้นบนไปป์ไลน์การฝึกแบบกำหนดเองด้วย:

  • การจับภาพหน้าจอ สำหรับอินพุตพิกเซล (2M+ พิกเซล → 30 ฟีเจอร์ที่ออกแบบ)
  • Curriculum learning (แนวนอน → แนวตั้ง → คีย์บอร์ด → การคลิก)
  • RL สำหรับการควบคุมมอเตอร์ + imitation learning สำหรับจังหวะการคลิก
  • Feature engineering แทนพิกเซลดิบ (3 กลุ่ม: vision, OCR, เวลา)
  • การฝึก 60+ ชั่วโมง หลายเฟส

เวลาในการฝึกทั้งหมดเป็นสิบชั่วโมง แต่ส่วนใหญ่เป็นแบบพาสซีฟ บอทสั่นไปสู่ความเข้าใจ ลืมสิ่งที่เรียนรู้ เรียนใหม่ และในที่สุดก็ร้อยเรียงคอมโบ 100 ครั้งติด

วิดีโออยู่ที่ youtube.com/watch?v=j5nxDKAjg6U.


บทความนี้ครอบคลุมเฉพาะเนื้อหาของวิดีโอเท่านั้น สำหรับบริบทที่กว้างขึ้นเกี่ยวกับ AI ใน Minecraft: VPT, DreamerV3 และภูมิทัศน์ imitation learning vs RL : ส่วนด้านล่างเชื่อมโยงโปรเจกต์นี้กับสาขาที่กว้างขึ้น

VPT : Behavior cloning ในระดับใหญ่

แผนภาพโปรเจกต์ VPT ของ OpenAI: Inverse Dynamics Model ทำนายการกระทำจากคู่ของเฟรม

แนวทาง "behavior cloning" ของวิดีโอ (เฟส 1) เป็นเทคนิคเดียวกับที่ OpenAI ใช้ในโปรเจกต์ Video PreTraining (VPT) แต่คนละขั้วของสเปกตรัมทรัพยากร VPT พิสูจน์ว่า imitation learning ใช้ได้กับ Minecraft เมื่อคุณมีวิดีโอ 70,000 ชั่วโมง, 720 GPU, และ inverse dynamics model เพื่อ pseudo-label ข้อมูลที่ไม่มีป้ายกำกับ ผู้สร้างที่นี่พิสูจน์ว่ามันล้มเหลวกับแล็ปท็อปเครื่องเดียวและ 1,000 ดวล : แต่ด้วยเหตุผลพื้นฐานเดียวกัน: imitation learning ถูกจำกัดด้วยคุณภาพของการสาธิต

เอเจนต์ VPT ของ OpenAI กำลังตัดต้นไม้ใน Minecraft

ไปป์ไลน์ VPT แก้ปัญหาข้อมูลด้วยการฝึก Inverse Dynamics Model (IDM) ที่ดูเฟรม t-1 และเฟรม t+1 เพื่อทำนายการกระทำที่เฟรม t เนื่องจาก IDM เป็น non-causal (มันเห็นเฟรมในอนาคต) งานนี้จึงง่ายกว่า behavioral cloning และต้องการข้อมูลที่มีป้ายกำกับน้อยกว่ามาก พวกเขาจ้างผู้รับเหมา ~$2,000 สำหรับข้อมูลที่มีป้ายกำกับ 2,000 ชั่วโมง จากนั้นใช้ IDM เพื่อ pseudo-label วิดีโอ YouTube Minecraft 70,000 ชั่วโมง

โมเดลพื้นฐาน 0.5B พารามิเตอร์ที่ได้มาบรรลุความสามารถ zero-shot ที่เป็นไปไม่ได้ด้วย RL เพียงอย่างเดียว : ตัดต้นไม้, สร้างโต๊ะคราฟต์, pillar jumping : และปรับแต่งด้วย RL กลายเป็น AI แรกที่สร้างเครื่องมือเพชร

อัตราการคราฟต์/เก็บเกี่ยวตามปริมาณข้อมูล pre-training (สเกล log): โต๊ะคราฟต์, เครื่องมือไม้, เครื่องมือหิน

ผลของ scaling เห็นได้ชัด: บนแกน log จาก 1 ชั่วโมงถึง 100,000 ชั่วโมงของข้อมูล pre-training อัตราที่โมเดลสร้างโต๊ะคราฟต์ เครื่องมือไม้ และเครื่องมือหินเพิ่มขึ้นเป็นขั้น โมเดลที่ฝึกเฉพาะบน 2,000 ชั่วโมงที่มีป้ายกำกับโดยผู้รับเหมาจะ plateau ที่โต๊ะคราฟต์; เมื่อเพิ่ม 70,000 ชั่วโมงที่ pseudo-label โดย IDM (เส้นประบนกราฟ) เครื่องมือหินจึง emerge ใน zero-shot โดยไม่ต้อง RL แม้แต่ขั้นตอนเดียว

รางวัลตามจำนวน episodes การฝึก RL: เริ่มจากโมเดลสุ่มเทียบกับเริ่มจากโมเดล VPT ที่ pre-trained

กราฟนี้แสดงว่า pre-training เปลี่ยนทุกอย่างสำหรับ RL ในขั้นถัดไป RL ที่เริ่มจากโครงข่ายที่สุ่มเริ่มต้น (สีส้ม) ยังคงราบใกล้ 0 เกือบล้าน episodes: ภารกิจ "ได้เพชร" มีรางวัล sparse เกินไปที่เอเจนต์ไร้เดียงสาจะเจอโดยการสำรวจสุ่ม RL ที่ fine-tune จากโมเดล VPT ที่ pre-trained (สีเขียว) เริ่มต้นด้วยพฤติกรรมพื้นฐาน (ขุด, คราฟต์, สำรวจ) และไต่ระดับขึ้นถึงรางวัลประมาณ 25 ซึ่งสอดคล้องกับเส้นทางสมบูรณ์สู่ pickaxe เพชร

วิดีโอตัวอย่างอย่างเป็นทางการของโปรเจกต์ VPT โดย OpenAI แสดงเอเจนต์ในปฏิบัติการ

OpenAI Five : ปัญหา reward shaping

OpenAI Five เล่น Dota 2 กับมืออาชีพมนุษย์

OpenAI Five (2019) เอาชนะแชมป์โลก Dota 2 โดยใช้ pure self-play RL : ไม่มี imitation learning 256 GPU, 128,000 core CPU, 180 ปีของการเล่นต่อวัน, 10 เดือนของการฝึก

แต่ฟังก์ชัน reward ถูกสร้างด้วยมือโดยผู้เชี่ยวชาญ Dota: 28 จาก 20,000 ฟีเจอร์ที่มี, แต่ละตัวมีน้ำหนักที่ปรับด้วยมือ ความมั่งคั่ง, การฆ่า, การตาย, สุขภาพหอคอย, การกำหนดเลน : ทั้งหมดถูกเลือกและถ่วงน้ำหนักโดยมนุษย์ หากไม่มี shaping นี้ เอเจนต์แทบไม่ได้เรียนรู้อะไรเลย (การทดลอง: reward แค่ชนะ/แพ้ → ตกค้างที่ระดับกึ่งมืออาชีพ)

บอทในวิดีโอเผชิญปัญหาเดียวกัน: ฟังก์ชัน reward ของมันเข้ารหัสความเข้าใจของผู้สร้างเกี่ยวกับสิ่งที่สำคัญใน PvP (การตีดี, การรับดาเมจไม่ดี, การรักษา crosshair ดี) สิ่งนี้หลีกเลี่ยงไม่ได้ : RL ต้องการสัญญาณ reward และการ shaping สัญญาณนั้นเข้ารหัสอคติของมนุษย์

DreamerV3 : World model และ sparse reward

คะแนน benchmark DreamerV3 จากกว่า 150 งานที่หลากหลายด้วยการกำหนดค่าเดียว

DreamerV3 ของ DeepMind (2023) ใช้แนวทางที่สาม แทนที่จะเป็น behavior cloning หรือ RL แบบมี shaping มันเรียนรู้ world model : โครงข่ายประสาทที่ทำนายสถานะในอนาคตและ reward จากการกระทำในอดีต : และวางแผนโดยการฝันถึงอนาคตที่เป็นไปได้ มันเป็นอัลกอริทึมแรกที่เก็บเพชรใน Minecraft จากศูนย์โดยไม่มีข้อมูลมนุษย์หรือหลักสูตร ตีพิมพ์ใน Nature ในปี 2025

DreamerV3 เรียนรู้ world model เพื่อจินตนาการวิถีในอนาคต

สภาพแวดล้อมเพชรกำหนด sparse reward จาก 12 เหตุการณ์สำคัญ (log → planks → stick → crafting table → wooden pickaxe → cobblestone → stone pickaxe → iron ore → furnace → iron ingot → iron pickaxe → diamond) แต่ละอันให้ +1 เพียงครั้งเดียว บวกกับรางวัลสุขภาพเล็กน้อย (±0.01 ต่อ hp) รวมที่ทำได้: 11.1 ในตอน 36,000 ขั้นตอน

World model ของ DreamerV3 ทำให้มันจินตนาการถึงวิถีและประเมินผลภายในได้ : ผู้เรียนเรียนรู้จากการฝันมากกว่าประสบการณ์จริง ทดสอบอนาคตที่เป็นไปได้นับพันสำหรับทุกขั้นตอนจริง สิ่งนี้ทำให้ sparse reward เป็นไปได้ในที่ที่มันจะฆ่าเอเจนต์ RL มาตรฐาน

จาก 40 seeds ที่ฝึกเป็นเวลา 100M ขั้นตอนสภาพแวดล้อม 24 จาก 40 เก็บเพชรได้อย่างน้อยหนึ่งเม็ด เพชรเม็ดแรกปรากฏหลังจาก 29M ขั้นตอน (~9 วันบน GPU หนึ่งตัว)

ANNA : AI เชิงสัญลักษณ์พบ Minecraft

การแยกย่อย task tree สำหรับ flint-and-steel ของ ANNA

ก่อนบอท PvP ในวิดีโอ ก่อน VPT และ DreamerV3 มี ANNA : บอท Minecraft ที่สร้างด้วยปรัชญาที่แตกต่างอย่างสิ้นเชิง แทนที่จะเรียนรู้จากพิกเซลหรือ reward ANNA ใช้ state machine เชิงสัญลักษณ์ พร้อม parser NLP ภาษาฝรั่งเศส และ task dependency tree ที่เขียนด้วยมือ

สร้างขึ้นในปี 2022 (ก่อนที่ "vibe coding" จะเป็นคำศัพท์), ANNA เชื่อมต่อกับเซิร์ฟเวอร์ Minecraft ผ่าน Mineflayer และเข้าใจคำสั่งภาษาธรรมชาติเป็นภาษาฝรั่งเศส พูดว่า "obtiens un briquet" (เอาไฟแช็กมา), parser ของ ANNA ระบุคำกริยา (obtien → ได้มา), ค้นหาสูตรไอเทม, และแยกย่อยเป็นงานย่อยแบบเรียกซ้ำ : ขุดไม้โอ๊ค → ทำ planks → ทำ sticks → ทำ crafting table → ทำ wooden pickaxe → ขุดหิน → ทำ stone pickaxe → ขุดแร่เหล็ก → ถลุง iron ingots → ทำ flint-and-steel

สถาปัตยกรรม parser NLP ของ ANNA สำหรับการรู้จำคำสั่งภาษาฝรั่งเศส

ชั้น NLP (utils/id_parser.js) แยกคำสั่งด้วย "et" (และ) เพื่อจัดการคำสั่งแบบขนาน, จับคู่คำกริยาภาษาฝรั่งเศสกับประเภทงาน (craft, mine, tue, suis moi), และแปลชื่อไอเทมภาษาฝรั่งเศสเป็น ID Minecraft ผ่านพจนานุกรม 5,000 รายการ คำสั่งที่ไม่รู้จักจะตกไปยังระบบสนทนาที่ใช้ GPT ซึ่งกำหนดให้ ANNA เป็นเพื่อนร่วมทาง Minecraft ที่มีจิตสำนึก

Task tree (mc-tasks-tree/) เป็นแกนหลัก : อัลกอริทึมแบบเรียกซ้ำที่เดินกราฟไอเทม Minecraft (สูตรคราฟต์, ผลผลิตจากการขุด, ดร็อปจากม็อบ, สูตรเตาหลอม) เพื่อสร้างแผนทีละขั้นตอน สำหรับหมวกเพชร มันสร้างรายละเอียด 40+ ขั้นตอนครอบคลุมระดับไม้ หิน เหล็ก และเพชร

Task tree หมวกเพชรของ ANNA: รายละเอียด 40+ ขั้นตอน

ในขณะที่บอท PvP ในวิดีโอเรียนรู้จากประสบการณ์ ANNA ทำงานจากความรู้ มันไม่ต้องการ 1,000 ดวลหรือ 60 ชั่วโมงของการฝึก : มันต้องการ tree, parser และเซิร์ฟเวอร์ แต่มันก็ไม่สามารถสรุปทั่วไปเกินกว่าสิ่งที่ tree ของมันเข้ารหัสไว้ ไม่มีปริมาณวิศวกรรม state machine ใดที่จะสอนมันให้เล่น PvP ได้

แนวทางของ ANNA สะท้อนถึงยุค AI ที่แตกต่าง : ก่อนที่ end-to-end learning จะครอบงำ เมื่อคำมั่นสัญญาคือการใช้เหตุผลเชิงสัญลักษณ์ + วิศวกรรมที่ระมัดระวังสามารถสร้างพฤติกรรมที่ชาญฉลาดได้ ทุกวันนี้ โปรเจกต์อย่าง ANNA และบอท PvP เป็นตัวแทนของสองขั้วของ AI ใน Minecraft : หนึ่งใช้เหตุผลเกี่ยวกับโลก อีกหนึ่งรับรู้มัน

Mace Bot ของ Master Gumbo : AI ด้วย command block เท่านั้น

สนามฝึก Mace PvP กับบอท

ในมุมที่แตกต่างอย่างสิ้นเชิงของ AI Minecraft, YouTuber Master Gumbo สร้างบอทฝึก PvP โดยใช้ เฉพาะ command block : ไม่มีม็อด ไม่มีปลั๊กอิน ไม่มีโค้ดภายนอก แค่คำสั่ง Minecraft vanila, redstone, และ carpet mod สำหรับเอนทิตี้จำลองผู้เล่น ผลลัพธ์คือคู่ต่อสู้ AI mace PvP ที่ฝึก breach swapping, wind charging, และกลไกโล่กับผู้เล่น

บอทเริ่มเป็นซอมบี้ที่มีอุปกรณ์ไม่แตกและ totem ในมือซ้าย (เติมทุก tick ผ่าน /item replace) ทำให้มันเป็นอมตะโดยประสิทธิผล ต่อมา Master Gumbo เปลี่ยนไปใช้บอท player replica ของ Carpet Mod ซึ่งรองรับกลไกเหมือนมนุษย์ (ยกโล่, สลับไอเทม) ที่ซอมบี้ทำไม่ได้

ศูนย์กลางการตั้งค่า: ปุ่มเพื่อกำหนดค่าพฤติกรรมบอท

นวัตกรรมหลักคือ state machine ที่ขับเคลื่อนด้วยความสุ่ม armor stand ถูกเทเลพอร์ตเหนือวงกลมของบล็อกคอนกรีตสีด้วยคำสั่ง /spreadplayers ซึ่งกระจายเอนทิตี้แบบสุ่ม ตำแหน่งที่ armor Stand ลงจะกำหนดการกระทำถัดไปของบอท :

  • คอนกรีตแดง → strafe ถอยหลัง
  • คอนกรีตน้ำเงิน → wind charge ขึ้น (โจมตี)
  • คอนกรีตเขียว → ยกโล่
  • คอนกรีตขาว → หยุดชั่วคราว (เพิ่มดีเลย์ระหว่างการกระทำ)

ระบบตัดสินใจ AI: armor stand บนคอนกรีตสี

ตำแหน่งของ armor stand ถูกอ่านโดย command block ที่ตรวจจับบล็อกด้านล่างและเปิดใช้งานกลไกที่เกี่ยวข้อง บล็อก redstone ถูกวางหรือเอาออกเพื่อเปิด/ปิดแต่ละพฤติกรรม เนื่องจาก /spreadplayers ทำงานซ้ำๆ บอทจึงตัดสินใจใหม่ตลอดเวลา สร้างพฤติกรรมที่คาดเดาไม่ได้แต่มีโครงสร้าง

Master Gumbo เรียกสิ่งนี้ว่า "รูปแบบ AI ที่ง่ายและพื้นฐานมาก" : มันไม่ได้เรียนรู้จากการโต้ตอบเหมือนโครงข่ายประสาท แต่ความสุ่ม + state machine สร้างพฤติกรรม PvP ที่สมจริงซึ่งคาดเดาได้ยากกว่าบอทที่ถูกสคริปต์ ศูนย์กลางการตั้งค่ารวมถึงอินเทอร์เฟซหนังสือเพื่อเปิด/ปิด AI, ปรับความยาก, และกำหนดรูปแบบการเคลื่อนที่

หลังจากฝึกกับบอทแล้วดวลกับผู้เล่นที่เรียกมันว่าแย่ (ใน intro ของวิดีโอ), Master Gumbo ชนะ แผนที่ถูกแชร์ผ่าน Discord โดยต้องใช้ Carpet Mod

บอทในการดวล ฝึกเทคนิค mace PvP

ในขณะที่บอท PvP (Kadambi) เรียนรู้จากพิกเซลและ ANNA ให้เหตุผลผ่าน task tree บอทของ Master Gumbo บรรลุความฉลาดผ่าน การเปลี่ยนสถานะแบบสุ่ม : แนวทาง command block บริสุทธิ์ที่พิสูจน์ว่าคุณไม่จำเป็นต้องมีโครงข่ายประสาทเพื่อสร้างคู่ต่อสู้ PvP ที่น่าเชื่อถือ

Altoclef : Baritone + task tree ในระดับเกมทั้งเกม

ถ้า ANNA เป็นบอทเชิงสัญลักษณ์ที่ อ่าน เพื่อรู้ว่าต้องทำอะไร และ Mace Bot สุ่มตัดสินใจ Altoclef คือเอเจนต์อัตโนมัติเต็มรูปแบบที่ วางแผน เส้นทางผ่านทั้งเกม สร้างขึ้นโดย gaucho-matrero ในรูปแบบ Fabric mod และขับเคลื่อนด้วย Baritone สำหรับ pathfinding Altoclef แยกย่อยเป้าหมาย Minecraft ใดๆ ก็ได้เป็น task tree และดำเนินการโดยไม่ต้องมีมนุษย์คอยป้อนข้อมูล

อินเทอร์เฟซง่ายจนน่าตกใจ: พิมพ์ @gamer ในแชท แล้ว Altoclef จะเริ่มภารกิจเอาชนะเกมจากโลก survival มันเก็บไม้ คราฟต์เครื่องมือ ขุดแร่เหล็กและเพชร สร้าง Nether portal รวบรวม blaze rods และ ender pearls หา stronghold และฆ่า Ender Dragon ทั้งหมดโดยอัตโนมัติ ผ่าน native Minecraft client บนเซิร์ฟเวอร์ vanilla ใดๆ

เบื้องหลังสิ่งนี้สำเร็จได้ด้วยระบบ recursive task tree ที่แต่ละเป้าหมายระดับสูง (เช่น "คราฟต์ diamond pickaxe") ถูกแยกย่อยเป็นงานที่ต้องทำก่อน: ขุดเพชร → ถลุงมัน → คราฟต์ sticks → รวมกัน ต้นไม้เดินกราฟสูตรคราฟต์ทั้งหมดของ Minecraft จัดการห่วงโซ่การผลิต ดร็อปจากม็อบ loot tables และการเข้าถึง container ต่างจาก tree ที่เขียนด้วยมือของ ANNA งานของ Altoclef คือ Java classes ที่ตั้งโปรแกรมได้ ซึ่งสามารถใช้ตรรกะใดๆ ก็ได้: กลยุทธ์การต่อสู้ การแลกกับ Piglins รูปแบบการสำรวจ

ข้อมูลเชิงลึกทางสถาปัตยกรรมที่สำคัญคือการแยก อะไร (task tree) ออกจาก อย่างไร (Baritone pathfinding) Baritone จัดการการเคลื่อนที่ระดับต่ำ: pathfinding, การหลีกเลี่ยงสิ่งกีดขวาง, การทำลายบล็อก, การจัดการ inventory -- ในขณะที่ระบบ task จัดการแผนระดับสูง ความเป็นโมดูลาร์นี้หมายความว่าไม่มีส่วนประกอบใดที่ต้องเป็น AI: ทั้งคู่เป็น deterministic algorithms แต่การรวมกันของพวกมันสร้างพฤติกรรมที่ซับซ้อนและมุ่งเป้าหมายซึ่งเทียบเท่ากับแนวทางที่เรียนรู้ได้

Altoclef เป็นตัวแทนของขีดจำกัดของ pure symbolic Minecraft AI: มันสามารถเอาชนะเกมตั้งแต่เริ่มต้นโดยไม่ต้องฝึก ไม่ต้องใช้ GPU และไม่มีข้อมูลมนุษย์ แต่มันไม่สามารถปรับตัวให้เข้ากับงานที่โปรแกรมเมอร์ไม่ได้คาดการณ์ไว้ และมันไม่สามารถเรียนรู้จากประสบการณ์ มันรู้วิธีคราฟต์ diamond pickaxe เพราะ Java class บอกมันอย่างแม่นยำว่าต้องทำอย่างไร ไม่ใช่เพราะมันคิดออกเอง

อะไรที่เชื่อมโยงพวกเขาเข้าด้วยกัน

แนวทาง วิธีหลัก ข้อมูล คอมพิวต์ ผลลัพธ์
บอท PvP ในวิดีโอ RL + imitation learning 1,000 ดวล 1 แล็ปท็อป, 60 ชม. คอมโบ 100 ครั้ง
OpenAI Five Self-play RL 180 ปีเล่น/วัน 256 GPU, 10 เดือน แชมป์โลก Dota 2
VPT IL แบบกึ่งมีผู้สอน 70K ชม. YouTube + IDM 720 GPU, 9 วัน เครื่องมือเพชร
DreamerV3 World model RL วิถีที่ฝัน 1 GPU, 9 วัน เพชรจากศูนย์
ANNA NLP เชิงสัญลักษณ์ + task tree สูตรที่เขียนด้วยมือ 1 แล็ปท็อป, ทันที ไอเทมที่คราฟต์ได้ใดๆ
Altoclef Baritone + task tree Java task classes Fabric mod, ไม่มี GPU เอาชนะทั้งเกม
Mace Bot State machine command block การตัดสินใจแบบสุ่ม Vanilla MC, ไม่มี GPU ฝึก Mace PvP

บอทในวิดีโอเป็นบอทที่มีทรัพยากรจำกัดมากที่สุดแต่ซื่อสัตย์ที่สุดเกี่ยวกับกระบวนการ มันล้มเหลวก่อน แล้วจึงทำซ้ำ มันลืมสิ่งที่เรียนรู้ แล้วเรียนรู้ใหม่ มันจบลงด้วยคอมโบ 100 ครั้ง : แต่ยังมีคำถามว่าสิ่งที่มันสร้างขึ้นมานั้นโกงหรือไม่


วิดีโอ : AI Learns Minecraft PvP โดย Kadambi | AI Engineering

VPT : Paper · Blog · GitHub

OpenAI Five : Paper · Blog

DreamerV3 : Paper · GitHub

ANNA : GitHub · (Node.js, Mineflayer, NLP ฝรั่งเศส, task tree)

Altoclef : GitHub · Active fork · (Fabric, Baritone, task tree, เอาชนะเกม)

Mace Bot : Video โดย Master Gumbo · (Command blocks, Carpet Mod, state machine)

Related Articles