Apprendre à jouer à Minecraft avec Video PreTraining (VPT) PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Apprendre à jouer à Minecraft avec la préformation vidéo (VPT)

Apprendre à jouer à Minecraft avec la préformation vidéo (VPT)

Nous avons formé un réseau de neurones pour jouer à Minecraft par Video PreTraining (VPT) sur un énorme ensemble de données vidéo non étiquetées de jeu Minecraft humain, tout en n'utilisant qu'une petite quantité de données d'entrepreneur étiquetées. Avec un réglage fin, notre modèle peut apprendre à fabriquer des outils en diamant, une tâche qui prend généralement plus de 20 minutes (24,000 XNUMX actions) à des humains compétents. Notre modèle utilise l'interface humaine native des pressions sur les touches et des mouvements de la souris, ce qui le rend assez général et représente une étape vers des agents utilisant des ordinateurs généraux.

Lire le papier


Afficher les poids du code et du modèle


Concours MineRL

Internet contient une énorme quantité de vidéos accessibles au public dont nous pouvons tirer des enseignements. Vous pouvez regarder une personne faire une présentation magnifique, un artiste numérique dessiner un magnifique coucher de soleil et un joueur de Minecraft construire une maison complexe. Cependant, ces vidéos ne fournissent qu'un enregistrement de est ce que nous faisons arrivé mais pas précisément how il a été atteint, c'est-à-dire que vous ne connaîtrez pas la séquence exacte des mouvements de la souris et des touches enfoncées. Si nous voulons construire à grande échelle modèles de fondation dans ces domaines comme nous l'avons fait dans le langage avec GPT, ce manque d'étiquettes d'action pose un nouveau défi qui n'existe pas dans le domaine du langage, où les « étiquettes d'action » sont simplement les mots suivants dans une phrase.

Afin d'utiliser la richesse des données vidéo non étiquetées disponibles sur Internet, nous introduisons une nouvelle méthode d'apprentissage par imitation semi-supervisée, mais simple : le Video PreTraining (VPT). Nous commençons par collecter un petit ensemble de données auprès des sous-traitants où nous enregistrons non seulement leur vidéo, mais également les actions qu'ils ont entreprises, qui dans notre cas sont les pressions sur les touches et les mouvements de la souris. Avec ces données, nous formons un modèle de dynamique inverse (IDM), qui prédit l'action entreprise à chaque étape de la vidéo. Il est important de noter que l'IDM peut utiliser le passé et future informations pour deviner l'action à chaque étape. Cette tâche est beaucoup plus facile et nécessite donc beaucoup moins de données que la tâche de clonage comportemental consistant à prédire les actions données images vidéo passées uniquement, ce qui nécessite de déduire ce que la personne veut faire et comment y parvenir. Nous pouvons ensuite utiliser l'IDM formé pour étiqueter un ensemble de données beaucoup plus important de vidéos en ligne et apprendre à agir via le clonage comportemental.

Apprendre à jouer à Minecraft avec la préformation vidéo (VPT)
Apprendre à jouer à Minecraft avec la préformation vidéo (VPT)
Présentation de la méthode VPT

Résultats VPT Zero-Shot

Nous avons choisi de valider notre méthode dans Minecraft car il (1) est l'un des jeux vidéo les plus joués au monde et dispose donc d'une multitude de données vidéo librement disponibles et (2) est ouvert avec une grande variété de choses à faire, similaire aux applications du monde réel telles que l'utilisation de l'ordinateur. Contrairement à avant vos contrats dans Minecraft qui utilise des espaces d'action simplifiés visant à faciliter l'exploration, notre IA utilise l'interface humaine native beaucoup plus généralement applicable, mais aussi beaucoup plus difficile : fréquence d'images de 20 Hz avec la souris et le clavier.

Formé sur 70,000 50 heures de vidéo en ligne labellisée IDM, notre modèle de clonage comportemental (le «modèle de base VPT») accomplit des tâches dans Minecraft qui sont presque impossibles à réaliser avec un apprentissage par renforcement à partir de zéro. Il apprend à abattre des arbres pour ramasser des bûches, à transformer ces bûches en planches, puis à transformer ces planches en une table d'artisanat; cette séquence prend environ 1,000 secondes ou XNUMX XNUMX actions de jeu consécutives à un humain maîtrisant Minecraft.

Apprendre à jouer à Minecraft avec la préformation vidéo (VPT)
Apprendre à jouer à Minecraft avec la préformation vidéo (VPT)
Séquence d'éléments nécessaires pour fabriquer une table d'artisanat, étiquetés avec le temps médian qu'il faut à des humains compétents pour atteindre chaque étape
Fabrication d'une table de craft "zéro shot" (c'est à dire après pré-entraînement uniquement sans mise au point supplémentaire)

De plus, le modèle exécute d'autres compétences complexes que les humains font souvent dans le jeu, comme nager, chasser des animaux pour se nourrir et manger cette nourriture. Il a également appris la compétence du "saut de pilier", un comportement courant dans Minecraft consistant à s'élever en sautant à plusieurs reprises et en plaçant un bloc sous vous-même.

Natation (coup zéro)

Animaux de chasse (zéro-shot)

Manger de la nourriture (zéro-shot)

Saut de pilier (zéro-shot)

Réglage fin avec le clonage comportemental

Les modèles de base sont conçus pour avoir un large profil de comportement et être généralement capables d'effectuer une grande variété de tâches. Pour intégrer de nouvelles connaissances ou leur permettre de se spécialiser sur une distribution de tâches plus étroite, il est courant d'affiner ces modèles à des ensembles de données plus petits et plus spécifiques. Comme étude de cas sur la façon dont le modèle de fondation VPT peut être ajusté aux ensembles de données en aval, nous avons demandé à nos sous-traitants de jouer pendant 10 minutes dans de nouveaux mondes Minecraft et de construire une maison à partir de matériaux Minecraft de base. Nous espérions que cela amplifierait la capacité du modèle de base à exécuter de manière fiable des compétences de "début de partie" telles que la construction de tables d'artisanat. Lors du réglage fin de cet ensemble de données, non seulement nous constatons une amélioration massive de l'exécution fiable des compétences de début de jeu déjà présentes dans le modèle de base, mais le modèle affiné apprend également à aller encore plus loin dans l'arbre technologique en fabriquant à la fois en bois et des outils en pierre. Parfois, nous voyons même des constructions d'abris rudimentaires et l'agent fouillant dans les villages, notamment en pillant des coffres.

Apprendre à jouer à Minecraft avec la préformation vidéo (VPT)
Apprendre à jouer à Minecraft avec la préformation vidéo (VPT)
Séquence d'éléments nécessaires pour fabriquer une pioche en pierre, étiquetés avec le temps médian qu'il faut à des humains compétents pour atteindre chaque étape
Amélioration du comportement en début de partie grâce au réglage fin de la Colombie-Britannique

Fabriquer une pioche en pierre

Construire un abri en bois rudimentaire

Recherche dans un village

Mise à l'échelle des données

L'hypothèse la plus importante de notre travail est peut-être qu'il est beaucoup plus efficace d'utiliser des données d'entrepreneur étiquetées pour former un IDM (dans le cadre du pipeline VPT) que de former directement un modèle de fondation BC à partir de ce même ensemble de données de petit entrepreneur. Pour valider cette hypothèse, nous entraînons des modèles de base sur des quantités croissantes de données de 1 à 70,000 2,000 heures. Les personnes formées sur moins de 2,000 XNUMX heures de données sont formées sur les données de l'entrepreneur avec des étiquettes de vérité sur le terrain qui ont été initialement collectées pour former l'IDM, et celles formées sur plus de XNUMX XNUMX heures sont formées sur des données Internet étiquetées avec notre IDM. Nous prenons ensuite chaque modèle de fondation et l'ajustons au jeu de données de construction de maisons décrit dans la section précédente.

Effet des données de formation du modèle de base sur le réglage fin

À mesure que les données du modèle de fondation augmentent, nous constatons généralement une augmentation de la capacité de fabrication, et ce n'est qu'à la plus grande échelle de données que nous voyons l'émergence de la fabrication d'outils en pierre.

Réglage fin avec l'apprentissage par renforcement

Lorsqu'il est possible de spécifier une fonction de récompense, l'apprentissage par renforcement (RL) peut être une méthode puissante pour obtenir des performances élevées, voire surhumaines. Cependant, de nombreuses tâches nécessitent de surmonter des défis d'exploration difficiles, et la plupart des méthodes RL les abordent avec aléatoire a priori d'exploration, par exemple les modèles sont souvent incités à agir au hasard via des bonus d'entropie. Le modèle VPT devrait être un bien meilleur a priori pour RL car émuler le comportement humain est probablement beaucoup plus utile que de prendre des actions aléatoires. Nous avons confié à notre modèle la tâche difficile de collecter une pioche en diamant, une capacité sans précédent dans Minecraft rendue d'autant plus difficile lors de l'utilisation de l'interface humaine native.

Fabriquer une pioche en diamant nécessite une séquence longue et compliquée de sous-tâches. Pour rendre cette tâche gérable, nous récompensons les agents pour chaque élément de la séquence.

Apprendre à jouer à Minecraft avec la préformation vidéo (VPT)
Apprendre à jouer à Minecraft avec la préformation vidéo (VPT)
Modèle VPT affiné RL fabriquant une pioche en diamant

Nous avons constaté qu'une politique RL entraînée à partir d'une initialisation aléatoire (la méthode RL standard) n'obtient pratiquement aucune récompense, n'apprenant jamais à collecter des journaux et ne collectant que rarement des bâtons. À l'opposé, le réglage fin d'un modèle VPT apprend non seulement à fabriquer des pioches en diamant (ce qu'il fait dans 2.5% des épisodes Minecraft de 10 minutes), mais il a même un taux de réussite au niveau humain pour collecter tous les éléments menant à la pioche en diamant. C'est la première fois que quelqu'un montre un agent informatique capable de fabriquer des outils en diamant dans Minecraft, ce qui prend en moyenne plus de 20 minutes (24,000 XNUMX actions) aux humains.

Récompense au fil des épisodes

Conclusion

VPT ouvre la voie pour permettre aux agents de apprendre à agir en regardant le grand nombre de vidéos sur Internet. Par rapport à la modélisation vidéo générative ou aux méthodes contrastives qui ne donneraient que représentation priors, VPT offre la possibilité passionnante d'apprendre directement à grande échelle a priori comportementaux dans bien plus de domaines que le simple langage. Bien que nous expérimentions uniquement dans Minecraft, le jeu est très ouvert et l'interface humaine native (souris et clavier) est très générique. Nous pensons donc que nos résultats sont de bon augure pour d'autres domaines similaires, par exemple l'utilisation d'un ordinateur.

Pour plus d'informations, s'il vous plaît voir notre papier. Nous utilisons également en open source les données de nos sous-traitants, l'environnement Minecraft, le code du modèle et les pondérations du modèle, ce qui, nous l'espérons, facilitera les recherches futures sur le VPT. De plus, nous nous sommes associés cette année au concours MineRL NeurIPS. Les participants peuvent utiliser et affiner nos modèles pour essayer de résoudre de nombreuses tâches difficiles dans Minecraft. Les personnes intéressées peuvent consulter le page web du concours et concourir pour un prix ciel bleu de $100,000 en plus d'une cagnotte régulière de $20,000. Les subventions sont disponibles pour les groupes et les individus sous-représentés auto-identifiés.


Remerciements
Il s’agit d’un effort considérable de la part d’une équipe dévouée. Chaque auteur a apporté d’énormes contributions sur de nombreux fronts sur de longues périodes. Tous les membres ont travaillé à temps plein sur le projet pendant plus de six mois. BB, IA, PZ et JC faisaient partie de l'équipe du projet VPT d'origine et ont donc été impliqués pendant encore plus longtemps (plus d'un an). Mis à part ces membres de l’équipe d’origine, l’ordre des auteurs est aléatoire. Il a également été randomisé entre IA et PZ.

import {Runtime, Inspector, Library} from “https://unpkg.com/@observablehq/runtime@4.12.0/dist/runtime.js”; import notebookEarlyGameBehavior from “https://api.observablehq.com/d/7f62ee5a1b0ddebd.js?v=3”; import notebookRewardOverEpisodes from “https://api.observablehq.com/d/4d319198b6ab74d5.js?v=3”; import notebookBCFineTuning from “https://api.observablehq.com/d/119b327a0da6dc38.js?v=3” const customWidth = function (selector) { return (new Library).Generators.observe(function(change) { var width = change(document.querySelector(selector).clientWidth); function resized() { var w = document.querySelector(selector).clientWidth; if (w !== width) change(width = w); } window.addEventListener(“resize”, resized); return function() { window.removeEventListener(“resize”, resized); }; }); }; const earlyGameBehaviorSelector = “#chart-early-game-behavior”; const earlyGameBehaviorRenders = { “chart”: earlyGameBehaviorSelector, }; new Runtime(Object.assign(new Library, {width: customWidth(earlyGameBehaviorSelector)})).module(notebookEarlyGameBehavior, name => { const selector = earlyGameBehaviorRenders[name]; if (selector) { // key exists return new Inspector(document.querySelector(selector)); } else { return true; } }); const rewardOverEpisodesSelector = “#chart-reward-over-episodes”; const rewardOverEpisodesRenders = { “chart”: rewardOverEpisodesSelector, }; new Runtime(Object.assign(new Library, {width: customWidth(rewardOverEpisodesSelector)})).module(notebookRewardOverEpisodes, name => { const selector = rewardOverEpisodesRenders[name]; if (selector) { // key exists return new Inspector(document.querySelector(selector)); } else { return true; } }); const rewardBCFineTuningSelector = “#chart-bc-fine-tuning”; const rewardBCFineTuningRenders = { “chart”: rewardBCFineTuningSelector, }; new Runtime(Object.assign(new Library, {width: customWidth(rewardBCFineTuningSelector)})).module(notebookBCFineTuning, name => { const selector = rewardBCFineTuningRenders[name]; if (selector) { // key exists return new Inspector(document.querySelector(selector)); } else { return true; } }); var playerObjects = {}; var initVimeo = function () { var videoEls = document.querySelectorAll(‘iframe[data-vimeo]’); videoEls.forEach(function (v) { var id = v.getAttribute(‘data-id’); var player = new Vimeo.Player(v); playerObjects[id] = player; // keep track of players by id }); var triggers = document.querySelectorAll(‘.js-video-trigger’); triggers.forEach(function (t) { t.addEventListener(‘click’, function (e) { var id = this.getAttribute(‘data-video’); if (!id) return; e.preventDefault(); playerObjects[id].play(); }); }); }; function initCanvas() { let needsRecalc = true; const DESIRED_SIZE = window.innerWidth { function step() { if (needsRecalc) { needsRecalc = false; numColumns = Math.floor(window.innerWidth / DESIRED_SIZE); tileWidth = window.innerWidth / numColumns; tileHeight = ((SOURCE_HEIGHT / SOURCE_WIDTH) * tileWidth); canvas.setAttribute(‘width’, window.innerWidth); canvas.setAttribute(‘height’, tileHeight); canvas.parentNode.style.aspectRatio = `${window.innerWidth} / ${tileHeight}`; } let column = 0; for (let i = 0; i < numColumns; i++) { ctx.drawImage(video, tileWidth * i, 0, tileWidth, tileHeight); column++; } requestAnimationFrame(step) } requestAnimationFrame(step); }) } document.addEventListener('DOMContentLoaded', function() { initVimeo(); initCanvas(); });

Horodatage:

Plus de OpenAI