Voyager - Minecraft Bot

So spielt ein selbstlernender Bot mit ChatGPT fast wie ein Mensch Minecraft

Die Fähigkeit zum lebenslangen Lernen ist eine ganz herausragende menschliche Eigenschaft. Forscher:innen von NVIDIA und der Caltech University haben einen Minecraft-Bot entwickelt, der die Prinzipien des lebenslangen Lernens beherrscht. Dieser Artikel beschreibt den von den Forscher:innen gewählten Prozess.

Der Voyager Minecraft Bot kann mit Hilfe von GPT-4 selbstständig Minecraft spielen. Und das besser als manche Menschen. Er erkundet kontinuierlich seine Umgebung, entwickelt dabei immer ausgefeiltere Fähigkeiten und kann neue Entdeckungen machen, ohne dass ihm ein Mensch hilft.

Er basiert auf drei Grundfunktionen

  • einem automatischen Lernplan

  • einer Bibliothek mit bereits gelernten Skills

  • der Fähigkeit neue Skills zu entwickeln

Automatischer Planer

Der automatische Planer erstellt einen Lehr- und Handlungsplan auf Basis von Beobachtungen. Seine Hauptaufgabe lautet: "Entdecke so viele Dinge wie möglich." Dadurch entsteht eine von Neugier getriebene intrinsische Motivation zum Erkunden und Lernen.

So beginnt der GPT-4 Prompt des Bots:

You are a helpful assistant that tells me the next immediate task to do in Minecraft. My ultimate goal is to discover as many diverse things as possible , accomplish as many diverse tasks as possible and become the best Minecraft player in the world .

Der Bot erkundet die Minecraft-Welt und teilt seine Beobachtungen:

In der Gegend habe ich ein Gewässer gefunden. In mein meinem Inventar sind gerade 3x Zuckerrohr, 3x Papier, 1x Fischernetz und eine Holzaxt

Ein GPT-4 Prompt überlegt sich dann die nächste sinnvolle Handlung Und zwar genau so, wie ein Mensch es beim Spielen tun würde:

Da ich ein Fischernetz habe und nahe am Wasser bin, wäre es gerade eine gute Möglichkeit Fische zu fangen.

Dann erstellt der Prompt die daraus resultierende Aufgabe:

Fange einen Fisch

Der Bot modifiziert den Plan kontinuierlich und erstellt zu erledigende Aufgaben. Die Aufgaben werden regelmäßig neu priorisiert.

Kurz gesagt, der automatische Lehrplan ist ein adaptives System, das ständig neue Aufgaben generiert, um das Lernen des Bots zu fördern. Er passt sich an die Fähigkeiten des Bots an und fördert seine Neugier und Motivation, sich kontinuierlich zu verbessern und sich an die Minecraft-Welt anzupassen.

Skill-Bibliothek

Wenn der Bot seine Aufgabenliste erstellt und priorisiert hat, muss er die Aufgaben lösen. Hierzu kann er auf eine Datenbank mit gespeicherten Lösungsstrategien zugreifen.

Die Skill-Bibliothek speichert Fähigkeiten, die der Bot im Laufe seiner Erkundungen und Aufgabenlösungen erlernt hat, damit sie bei zukünftigen Aufgaben wieder verwendet werden können.

Speicherung von Skills

Jeder Skill besteht aus einfachem Programmcode, der in der Sprache JavaScript geschrieben ist.

Wenn der Bot einen neuen Skill erlernt und verifiziert hat, dass er funktioniert, wird diese Fähigkeit zur Skill-Bibliothek hinzugefügt. Dazu erstellt er eine passende Skillbeschreibung zum Programmcode.

Diese Skillbeschreibung wird zusammen mit dem Programmcode in einer speziellen, AI-lesbaren Datenbank gespeichert, die man Vektordatenbank nennt.

Abruf gespeicherter Skills

Gespeicherte Skills können aus der Skill-Bibliothek abgerufen werden. Hierzu wird die Aufgabenbeschreibung aus dem automatischen Plan mit den Skillbeschreibungen in der Datenbank verglichen.

Sollte in der Datenbank ein passender Skill gefunden werden, nutzt der Bot seinen Programmcode, um die Aufgabe auszuführen.

Skills können auch kombiniert werden, um komplexere Fähigkeiten zu erstellen.

Die Skill-Bibliothek ist ein Speicherort für erlernte Skills, die in Form von ausführbarem Programmcode und einer Beschreibung repräsentiert werden. Sie ermöglicht es dem Bot, jederzeit auf bereits gelernte Skills zurückzugreifen und diese für komplexe Aufgaben miteinander zu kombinieren

Entwicklung neuer Skills

Wenn der Minecraft-Bot beim Erkunden der Welt auf neue Herausforderungen trifft, für die keine Lösung in der Skill-Bibliothek zu finden ist, kann er selbstständig neue Skills programmieren.

Um einen neuen Skill zu erstellen, beschreibt der Bot sein neues Ziel und den Kontext. Mit diesen Informationen sucht der Bot nach einer Lösung für das Problem. Dies geschieht in einem mehrstufigen Prozess, in dem eine Kette von Gedanken erstellt wird.

Mit dieser Beschreibung erstellt der Bot eine erste Version des Programmcodes.

Self Improvement

In der Regel funktioniert die erste Version des Programmcodes nicht einwandfrei. Deshalb reagiert der Bot auf Fehlermeldungen der Spielumgebung und erstellt eine neue Version, mit der er versucht, den Fehler zu beheben.

Das passiert so lange, bis diese Fehler nicht mehr auftreten.

Dann kontrolliert der Bot die Qualität der Ausführung der vom automatischen Plan definierten Aufgabe.

Auch hier werden, falls die Ausführung nicht den Erwartungen entspricht, immer wieder neue Versionen erstellt.

Sobald der Code die Verifikation erfolgreich besteht, wird er angewendet und in der Skill-Datenbank für die zukünftige Nutzung hinterlegt.

Derselbe Prozess wird auch verwendet, um bestehende Skills zu verbessern.

Die iterative Programmierung ermöglicht dem Bot, neue Fähigkeiten zu entwickeln und bestehende zu verfeinern. Sie kombiniert Zielsetzung, Zustandsbewertung und Aufgabenanalyse mit kontinuierlicher Verbesserung, um dem Bot zu helfen, seine Fähigkeiten stetig zu erweitern und sich an neue Herausforderungen in der Minecraft-Welt anzupassen.

Ausblick

Der Voyager Minecraft Bot ist ein spannendes Beispiel dafür, wie Künstliche Intelligenz (KI) lernen und sich anpassen kann, ähnlich wie Menschen es tun.

Er hat noch einige Herausforderungen zu meistern, wie zum Beispiel die Kosten für seine Nutzung und gelegentliche Fehler.

In der Zukunft könnte der Bot noch besser darin werden, neue Fähigkeiten zu erlernen und sich an neue Situationen anzupassen. Dies ist ein wichtiger Schritt auf dem Weg zu KIs, die lebenslang lernen können, genau wie wir Menschen.

Es ist aufregend zu sehen, was die Zukunft in diesem Bereich bringen wird.

Quelle

Dieser Artikel beschreibt das Research Paper "VOYAGER: An Open-Ended Embodied Agent with Large Language Models" von Guanzhi Wang, Yuqi Xie, Yunfan Jiang, Ajay Mandlekar, Chaowei Xiao, Yuke Zhu, Linxi Fan und Anima Anandkumar.

Die Illustrationen stammen aus dem originalen Paper.

Die Zusammenfassung wurde von Alex Jacobi mit Hilfe von ChatGPT mit der AskPDF Erweiterung erstellt. Den Chatverlauf könnte ihr hier sehen:

https://chat.openai.com/share/e0653bdd-c617-4bba-b401-d88a4ab384f8

https://chat.openai.com/share/d8811588-c067-465a-961c-df3dbbcb7e87