Idee:
- Voyager ist ein lebenslanger Lernagent, der selbstständig in Minecraft erkundet, Fähigkeiten erwirbt und Entdeckungen macht
- Agent ohne Finetuning (keine Anpassung der internen Parameter ist notwendig), es nutzt GPT 4 als Black Box und interagiert durch Prompting und In-Context-Learning
- Uses Code as Action Space for Temporally Extended Actions
- der Agent generiert Programme um mit der Umgebung (Minecraft) zu interagieren, das können Aktionssequenzen oder komplexe Verhaltensweisen sein (im Unterschied zu bspw. primitive Aktionen, wie im Reinforcement Learning verwendet wird)
- Bspw. Herstellen einer Spitzhacke (was viele weitere Schritte beinhaltet)
- der Agent generiert Programme um mit der Umgebung (Minecraft) zu interagieren, das können Aktionssequenzen oder komplexe Verhaltensweisen sein (im Unterschied zu bspw. primitive Aktionen, wie im Reinforcement Learning verwendet wird)
Ergebnisse:
- Übertrifft bisherige State of the art Methoden deutlich:
- erzielt 3,3x mehr einzigartige Gegenstände
- legt 2,3x längere Strecken zurück
- erschliesst Technologiebaum bis zu 15,3x schneller
- Fähigkeitenbibliothek ermöglicht Generalisierung auf neue Aufgaben
Architektur: (ist in 3 Hauptkomponenten aufgeteilt)
- Automatic Curriculum
- wie ein intelligenter Aufgabenplaner, der dem Agent immer neue Aufgaben vorschlägt
- wird durch GPT-4 generiert, Ziel ist so viele Dinge wie möglich zu entdecken (bottom up Ansatz -> beginnt mit einfachen Aufgaben zu komplexeren)
- es werden Sachen wie das aktuelle Inventar, die Umgebung und bisher abgeschlossene/fehlgeschlagene Aufgaben berücksichtigt
- Ziel ist es Voyager neugierig zu machen um somit den Fortschritt zu treiben
- Fähigkeitenbibliothek (Skill Library):
- ist wie ein Gedächtnis für Voyager, speichert ausführbaren Code, der gelernt wurde
- jede Fähigkeit wird als Programm gespeichert (enthält Reihe von Aktionen)
- Wenn Agent neue Aufgabe erhält, durchsucht er die Bibliothek
- Aus einfachen Fähigkeiten, können neue komplexe geschaffen werden
- unverzichtbar für das ‘lebenslange’ lernen, weil es das Vergessen verhindert
- Iterativer Prompting-Mechanismus:
- ermöglicht dem Agent die Coding-Skills iterativ zu verbessern, GPT-4 generiert Code um die Ausgabe aus dem Curriculum zu lösen
- Code wird in Minecraft ausgeführt und das Feedback (was passiert in Minecraft) an den Agenten zurückgegeben
- Umgebungsfeedback: Zwischenfortschritt der Programmausführung (bspw. ” kann keine Eisenrüstung herstellen, weil 7 Eisenbarren fehlen”), Agent verwendet die Chat-Funktion des Bots, um dieses Feedback zu erstellen und wird angewiesen diese Funktion auch bei der Codegenerierung zukünftig zu verwenden
- Ausführungsfehler: gefundene Fehler, vom Code-Interpreter (fehlerhafte Operationen, Syntaxfehler)
- Selbstverifizierung: weiterer GPT-4-Agent prüft ob Aufgabe erfolgreich erledigt wurde (bei Fehler wird Kritik generiert, die erklärt, was schiefgelaufen ist und wie die Aufgabe korrekt ausgeführt werden kann)
- GPT-4 generiert Code und Curriculum.
- GPT-3.5 für Text-Embedding und Zusatzkontext.
Relevanz:
- Ansatz für lebenslanges Lernen in offenen Umgebungen
- Überwindet Einschränkungen von RL und imitation learning
- Demonstriert die Fähigkeit von LLMs für verkörperte Aufgaben
- Ermöglicht kontinuierliches und selbstständiges Lernen
- Plug-and-Play-Asset zur Leistungssteigerung anderer Methoden.
Verwandte Arbeiten:
- Baut auf LLM-basierten Agenten für Spiele und Robotik auf
Offene Fragen:
- Kostenreduzierung der GPT-4 API
- Vermeidung von Ungenauigkeiten und Halluzinationen
- Wie lässt sich visuelle Wahrnehmung und multimodales Feedback einbinden?
- Kann VOYAGER in physischen Robotern angewendet werden?
- Wie kann die Selbstverifikation bei komplexeren Aufgaben verbessert werden?
Weitere Notizen:
- Novelty Search: Algorithmus, der verwendet wird, um Exploration/ Innovation zu fördern. Im Gegensatz zu traditionellen Methoden, die auf die Maximierung einer Belohnung/ auf ein Ziel ausgerichtet sind, ist der Fokus das Auffinden und Erforschen von Neuem
- Skill Library als Vektor-Datenbank: Jede Fähigkeit wird in Form von ausführbaren Code zusammen mit einer Beschreibung von diesem embedded (GPT-3.5) und gespeichert
Source: