Lær at spille Minecraft med Video PreTraining (VPT) PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Lær at spille Minecraft med Video PreTraining (VPT)

Lær at spille Minecraft med Video PreTraining (VPT)

Vi trænede et neuralt netværk til at spille Minecraft af Video PreTraining (VPT) på et massivt umærket videodatasæt af menneskeligt Minecraft-spil, mens vi kun brugte en lille mængde mærkede entreprenørdata. Med finjustering kan vores model lære at lave diamantværktøjer, en opgave der normalt tager dygtige mennesker over 20 minutter (24,000 handlinger). Vores model bruger den indfødte menneskelige grænseflade med tastetryk og musebevægelser, hvilket gør den ret generel og repræsenterer et skridt hen imod generelle computerbrugende agenter.

Læs papir


Se kode og modelvægte


MineRL Konkurrence

Internettet indeholder en enorm mængde offentligt tilgængelige videoer, som vi kan lære af. Du kan se en person lave en smuk præsentation, en digital kunstner tegne en smuk solnedgang, og en Minecraft-spiller bygge et indviklet hus. Disse videoer giver dog kun en registrering af det skete, men ikke præcist hvordan det blev opnået, dvs. du vil ikke kende den nøjagtige rækkefølge af musebevægelser og trykket på tasterne. Hvis vi gerne vil bygge i stor skala fundament modeller i disse domæner, som vi har gjort i sprog med GPT, denne mangel på handlingsetiketter udgør en ny udfordring, der ikke er til stede i sprogdomænet, hvor "handlingsetiketter" blot er de næste ord i en sætning.

For at udnytte det væld af umærkede videodata, der er tilgængelige på internettet, introducerer vi en ny, men alligevel enkel, semi-overvåget imitationsindlæringsmetode: Video PreTraining (VPT). Vi starter med at samle et lille datasæt fra entreprenører, hvor vi optager ikke kun deres video, men også de handlinger, de foretog, som i vores tilfælde er tastetryk og musebevægelser. Med disse data træner vi en invers dynamikmodel (IDM), som forudsiger den handling, der udføres ved hvert trin i videoen. Vigtigt er det, at IDM kan bruge tidligere og fremtid oplysninger til at gætte handlingen ved hvert trin. Denne opgave er meget lettere og kræver derfor langt mindre data end den adfærdsmæssige kloningsopgave med at forudsige handlinger kun tidligere videorammer, hvilket kræver, at man udleder, hvad personen ønsker at gøre, og hvordan man opnår det. Vi kan derefter bruge den trænede IDM til at mærke et meget større datasæt af onlinevideoer og lære at handle via adfærdskloning.

Lær at spille Minecraft med Video PreTraining (VPT)
Lær at spille Minecraft med Video PreTraining (VPT)
VPT metode oversigt

VPT Zero-Shot-resultater

Vi valgte at validere vores metode i Minecraft, fordi det (1) er et af de mest aktivt spillede videospil i verden og dermed har et væld af frit tilgængelige videodata og (2) er åbent med en lang række ting at gør, i lighed med applikationer i den virkelige verden, såsom computerbrug. I modsætning til forudgående virker i Minecraft, der bruger forenklede handlingsrum med det formål at lette udforskningen, bruger vores AI den meget mere generelt anvendelige, men også meget vanskeligere, indbyggede menneskelige grænseflade: 20Hz framerate med mus og tastatur.

Uddannet på 70,000 timers IDM-mærket onlinevideo, udfører vores adfærdskloningsmodel ("VPT-grundmodellen") opgaver i Minecraft, som er næsten umulige at opnå med forstærkningslæring fra bunden. Den lærer at fælde træer for at samle træstammer, lave disse træstammer til planker og derefter lave disse planker til et håndværksbord; denne sekvens tager et menneske, der er dygtig til Minecraft, cirka 50 sekunder eller 1,000 på hinanden følgende spilhandlinger.

Lær at spille Minecraft med Video PreTraining (VPT)
Lær at spille Minecraft med Video PreTraining (VPT)
Sekvens af genstande, der kræves for at lave et håndværksbord, mærket med den mediantid, det tager dygtige mennesker at nå hvert trin
Fremstilling af et håndværksbord "zero shot" (dvs. kun efter fortræning uden yderligere finjustering)

Derudover udfører modellen andre komplekse færdigheder, som mennesker ofte gør i spillet, såsom svømning, jagt dyr for at få mad og spise den mad. Den lærte også evnen til at "søjlespring", en almindelig adfærd i Minecraft med at hæve dig selv ved gentagne gange at hoppe og placere en blok under dig selv.

Svømning (nulskud)

Jagt på dyr (nulskud)

Spise mad (nulskud)

Søjlespring (nulskud)

Finjustering med Behavioural Cloning

Fundamentmodeller er designet til at have en bred adfærdsprofil og er generelt i stand til på tværs af en bred vifte af opgaver. For at inkorporere ny viden eller give dem mulighed for at specialisere sig i en snævrere opgavefordeling, er det almindelig praksis at finjustere disse modeller til mindre, mere specifikke datasæt. Som et casestudie af, hvor godt VPT-fundamentmodellen kan finjusteres til downstream-datasæt, bad vi vores entreprenører om at lege i 10 minutter i helt nye Minecraft-verdener og bygge et hus af grundlæggende Minecraft-materialer. Vi håbede, at dette ville forstærke fundamentmodellens evne til pålideligt at udføre "early game"-færdigheder, såsom at bygge håndværksborde. Når vi finjusterer til dette datasæt, ser vi ikke kun en massiv forbedring af pålideligt at udføre de tidlige spilfærdigheder, der allerede er til stede i fundamentmodellen, men den finjusterede model lærer også at gå endnu dybere ind i teknologitræet ved at lave både træ og stenredskaber. Nogle gange ser vi endda nogle rudimentære huslykonstruktioner, og agenten søger gennem landsbyer, herunder plyndrer kister.

Lær at spille Minecraft med Video PreTraining (VPT)
Lær at spille Minecraft med Video PreTraining (VPT)
Rækkefølge af genstande, der kræves for at fremstille en stenhakke, mærket med den mediane tid, det tager dygtige mennesker at nå hvert trin
Forbedret tidlig spiladfærd fra BC finjustering

At lave en stenhakke

Konstruktion af et rudimentært træhus

Søger gennem en landsby

Dataskalering

Den måske vigtigste hypotese i vores arbejde er, at det er langt mere effektivt at bruge mærkede entreprenørdata til at træne en IDM (som en del af VPT-pipelinen), end det er direkte at træne en BC-fundamentmodel fra det samme lille entreprenørdatasæt. For at validere denne hypotese træner vi grundmodeller på stigende mængder af data fra 1 til 70,000 timer. De, der trænes på under 2,000 timers data, trænes på entreprenørens data med jordsandhedsetiketter, der oprindeligt blev indsamlet for at træne IDM'en, og dem, der trænes på over 2,000 timer, trænes på internetdata mærket med vores IDM. Vi tager derefter hver fundamentmodel og finjusterer den til husbygningsdatasættet beskrevet i det foregående afsnit.

Effekt af træningsdata for fundamentmodeller på finjustering

Efterhånden som fundamentsmodeldata stiger, ser vi generelt en stigning i håndværksevnen, og kun på den største dataskala ser vi fremkomsten af ​​stenværktøjshåndværk.

Finjustering med forstærkningslæring

Når det er muligt at specificere en belønningsfunktion, kan forstærkningslæring (RL) være en kraftfuld metode til at fremkalde høj, potentielt endda overmenneskelig, præstation. Mange opgaver kræver dog at overvinde hårde udforskningsudfordringer, og de fleste RL-metoder tackler disse med tilfældig udforskningsforud, f.eks. motiveres modeller ofte til at handle tilfældigt via entropibonusser. VPT-modellen burde være en meget bedre forudsætning for RL, fordi efterligning af menneskelig adfærd sandsynligvis er meget mere nyttigt end at tage tilfældige handlinger. Vi satte vores model til den udfordrende opgave at samle en diamanthakke, en hidtil uset evne i Minecraft, der gjorde det endnu sværere, når man bruger den oprindelige menneskelige grænseflade.

At lave en diamanthakke kræver en lang og kompliceret række af underopgaver. For at gøre denne opgave håndterbar belønner vi agenter for hver genstand i rækkefølgen.

Lær at spille Minecraft med Video PreTraining (VPT)
Lær at spille Minecraft med Video PreTraining (VPT)
RL finjusteret VPT-model, der laver en diamanthakke

Vi fandt ud af, at en RL-politik trænet fra en tilfældig initialisering (standard RL-metoden) næsten ikke opnår nogen belønning, lærer aldrig at samle logs og samler kun sjældent pinde. I skarp kontrast lærer finjustering fra en VPT-model ikke kun at lave diamanthakker (hvilket den gør i 2.5 % af 10-minutters Minecraft-episoder), men den har endda en succesrate på menneskeligt niveau ved at indsamle alle genstande, der fører op til diamanthakken. Dette er første gang nogen har vist en computeragent, der er i stand til at lave diamantværktøjer i Minecraft, hvilket tager mennesker over 20 minutter (24,000 handlinger) i gennemsnit.

Belønning over episoder

Konklusion

VPT baner vejen mod at tillade agenter at lære at handle ved at se det store antal videoer på internettet. Sammenlignet med generativ videomodellering eller kontrastive metoder, der kun ville give repræsentativt tidligere, tilbyder VPT den spændende mulighed for direkte at lære i stor skala adfærdsmæssige forudsætninger på flere domæner end blot sprog. Selvom vi kun eksperimenterer i Minecraft, er spillet meget åbent, og den indbyggede menneskelige grænseflade (mus og tastatur) er meget generisk, så vi mener, at vores resultater lover godt for andre lignende domæner, f.eks. computerbrug.

For mere information, se vores papir. Vi åbner også for vores entreprenørdata, Minecraft-miljø, modelkode og modelvægte, som vi håber vil hjælpe med fremtidig forskning i VPT. Desuden har vi indgået partnerskab med MineRL NeurIPS-konkurrencen i år. Deltagere kan bruge og finjustere vores modeller for at prøve at løse mange vanskelige opgaver i Minecraft. Interesserede kan se konkurrence hjemmeside og konkurrere om en blå himmel præmie på $100,000 ud over en almindelig præmiepulje på $20,000. Tilskud er tilgængelige til selvidentificerede underrepræsenterede grupper og enkeltpersoner.


Tak
Dette var en stor indsats af et dedikeret team. Hver forfatter ydede enorme bidrag på mange fronter over lange perioder. Alle medlemmer var på fuld tid på projektet i over seks måneder. BB, IA, PZ og JC var med i det oprindelige VPT-projekthold og var således involveret i endnu længere tid (over et år). Bortset fra de originale teammedlemmer er forfatterrækkefølgen tilfældig. Det blev også randomiseret mellem IA og 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(); });

Tidsstempel:

Mere fra OpenAI