Lär dig spela Minecraft med Video PreTraining (VPT) PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Lär dig spela Minecraft med Video PreTraining (VPT)

Lär dig spela Minecraft med Video PreTraining (VPT)

Vi tränade ett neuralt nätverk för att spela Minecraft genom Video PreTraining (VPT) på en enorm omärkt videodataset av mänsklig Minecraft-spelning, samtidigt som vi bara använde en liten mängd märkt entreprenörsdata. Med finjustering kan vår modell lära sig att tillverka diamantverktyg, en uppgift som vanligtvis tar skickliga människor över 20 minuter (24,000 XNUMX åtgärder). Vår modell använder det inhemska mänskliga gränssnittet med knapptryckningar och musrörelser, vilket gör det ganska allmänt, och representerar ett steg mot allmänna datoranvändande agenter.

Läs papper


Se kod och modellvikter


MineRL-tävling

Internet innehåller en enorm mängd allmänt tillgängliga videor som vi kan lära oss av. Du kan se en person göra en underbar presentation, en digital konstnär rita en vacker solnedgång och en Minecraft-spelare bygga ett invecklat hus. Dessa videor ger dock bara en registrering av vad hände men inte exakt hur det uppnåddes, dvs. du kommer inte att veta den exakta sekvensen av musrörelser och nedtryckta tangenter. Om vi ​​skulle vilja bygga storskaligt grundmodeller i dessa domäner som vi har gjort i språk med GPT, denna brist på handlingsetiketter utgör en ny utmaning som inte finns i språkdomänen, där "actionetiketter" helt enkelt är nästa ord i en mening.

För att kunna utnyttja rikedomen av omärkt videodata som finns tillgänglig på internet introducerar vi en ny, men ändå enkel, semi-övervakad imitationsinlärningsmetod: Video PreTraining (VPT). Vi börjar med att samla ett litet dataset från entreprenörer där vi spelar in inte bara deras video, utan även de åtgärder de vidtagit, vilket i vårt fall är knapptryckningar och musrörelser. Med dessa data tränar vi en invers dynamikmodell (IDM), som förutsäger åtgärden vid varje steg i videon. Viktigt är att IDM kan använda tidigare och framtid information för att gissa åtgärden vid varje steg. Denna uppgift är mycket enklare och kräver därför mycket mindre data än beteendekloningsuppgiften att förutsäga givna åtgärder endast tidigare videoramar, vilket kräver att man kan sluta sig till vad personen vill göra och hur man uppnår det. Vi kan sedan använda den tränade IDM:n för att märka en mycket större datauppsättning av onlinevideor och lära oss att agera via beteendekloning.

Lär dig spela Minecraft med Video PreTraining (VPT)
Lär dig spela Minecraft med Video PreTraining (VPT)
VPT metodöversikt

VPT Zero-Shot-resultat

Vi valde att validera vår metod i Minecraft eftersom den (1) är ett av de mest aktivt spelade videospelen i världen och därför har en mängd fritt tillgänglig videodata och (2) är öppen med en mängd olika saker att gör, liknande verkliga applikationer som datoranvändning. Till skillnad från innan fungerar i Minecraft som använder förenklade actionutrymmen som syftar till att underlätta utforskningen, använder vår AI det mycket mer allmänt tillämpliga, men också mycket svårare, infödda mänskliga gränssnittet: 20Hz framerate med mus och tangentbord.

Utbildad på 70,000 50 timmars IDM-märkt onlinevideo, vår beteendekloningsmodell (”VPT-grundmodellen”) utför uppgifter i Minecraft som är nästan omöjliga att uppnå med förstärkningsinlärning från grunden. Den lär sig att hugga ner träd för att samla stockar, tillverka de där stockarna till plankor och sedan tillverka dessa plankor till ett hantverksbord; denna sekvens tar en människa som är skicklig i Minecraft ungefär 1,000 sekunder eller XNUMX XNUMX på varandra följande spelåtgärder.

Lär dig spela Minecraft med Video PreTraining (VPT)
Lär dig spela Minecraft med Video PreTraining (VPT)
Sekvens av föremål som krävs för att skapa ett hantverksbord, märkt med mediantiden det tar skickliga människor att nå varje steg
Att skapa ett hantverksbord "zero shot" (dvs. efter förträning endast utan ytterligare finjustering)

Dessutom utför modellen andra komplexa färdigheter som människor ofta gör i spelet, som att simma, jaga djur för mat och äta den maten. Den lärde sig också färdigheten "pelarhoppning", ett vanligt beteende i Minecraft att höja dig själv genom att upprepade gånger hoppa och placera ett block under dig själv.

Simning (nollskott)

Jakt på djur (nollskott)

Äta mat (zero-shot)

Pelarhoppning (nollskott)

Finjustera med beteendekloning

Grundmodeller är utformade för att ha en bred beteendeprofil och är generellt kapabla för en mängd olika uppgifter. För att införliva ny kunskap eller låta dem specialisera sig på en smalare uppgiftsfördelning är det vanligt att finjustera dessa modeller till mindre, mer specifika datamängder. Som en fallstudie av hur väl VPT-grundmodellen kan finjusteras till nedströmsdatauppsättningar, bad vi våra entreprenörer att spela i 10 minuter i helt nya Minecraft-världar och bygga ett hus av grundläggande Minecraft-material. Vi hoppades att detta skulle förstärka grundmodellens förmåga att på ett tillförlitligt sätt utföra "early game"-färdigheter som att bygga hantverksbord. När vi finjusterar till denna datauppsättning ser vi inte bara en enorm förbättring av att tillförlitligt utföra de tidiga spelfärdigheterna som redan finns i grundmodellen, utan den finjusterade modellen lär sig också att gå ännu djupare in i teknikträdet genom att tillverka både trä och stenredskap. Ibland ser vi till och med en del rudimentära skyddsrumskonstruktioner och agenten som söker genom byar, inklusive plundrar i kistor.

Lär dig spela Minecraft med Video PreTraining (VPT)
Lär dig spela Minecraft med Video PreTraining (VPT)
Sekvens av föremål som krävs för att tillverka en stenhacka, märkt med mediantiden det tar skickliga människor att nå varje steg
Förbättrat tidigt spelbeteende från BC-finjustering

Att skapa en stenhacka

Att bygga ett rudimentärt träskydd

Söker genom en by

Dataskalning

Den kanske viktigaste hypotesen i vårt arbete är att det är mycket effektivare att använda märkta entreprenörsdata för att träna en IDM (som en del av VPT-pipelinen) än att direkt träna en BC-grundmodell från samma lilla entreprenörsdatauppsättning. För att validera denna hypotes tränar vi grundmodeller på ökande mängder data från 1 till 70,000 2,000 timmar. De som utbildats på mindre än 2,000 XNUMX timmars data utbildas på entreprenörsdata med marksanningsetiketter som ursprungligen samlades in för att träna IDM, och de som tränades på över XNUMX XNUMX timmar utbildas på internetdata märkta med vår IDM. Vi tar sedan varje grundmodell och finjusterar den till husbyggnadsdatasetet som beskrivs i föregående avsnitt.

Effekt av träningsdata för grundmodeller på finjustering

När grundmodelldata ökar ser vi generellt en ökning av hantverksförmågan, och endast i den största dataskalan ser vi framväxten av stenverktygshantverk.

Finjustering med förstärkningsinlärning

När det är möjligt att specificera en belöningsfunktion kan förstärkningsinlärning (RL) vara en kraftfull metod för att framkalla höga, potentiellt till och med övermänskliga, prestationer. Men många uppgifter kräver att övervinna svåra prospekteringsutmaningar, och de flesta RL-metoder hanterar dessa med slumpmässig utforskning tidigare, t.ex. modeller är ofta incitament att agera slumpmässigt via entropi bonusar. VPT-modellen borde vara mycket bättre för RL eftersom att emulera mänskligt beteende sannolikt är mycket mer användbart än att vidta slumpmässiga åtgärder. Vi satte vår modell till den utmanande uppgiften att samla en diamanthacka, en oöverträffad förmåga i Minecraft som gjorde det ännu svårare när man använder det inhemska mänskliga gränssnittet.

Att skapa en diamanthacka kräver en lång och komplicerad sekvens av deluppgifter. För att göra denna uppgift genomförbar belönar vi agenter för varje föremål i sekvensen.

Lär dig spela Minecraft med Video PreTraining (VPT)
Lär dig spela Minecraft med Video PreTraining (VPT)
RL finjusterad VPT-modell som tillverkar en diamanthacka

Vi fann att en RL-policy tränad från en slumpmässig initiering (standard RL-metoden) knappt uppnår någon belöning, lär sig aldrig att samla stockar och samlar bara sällan pinnar. I skarp kontrast lär sig finjustering från en VPT-modell inte bara att skapa diamantplockor (vilket den gör i 2.5 % av 10-minuters Minecraft-avsnitt), utan den har till och med en framgångsgrad på mänsklig nivå när det gäller att samla in alla föremål som leder fram till diamanthacken. Detta är första gången någon har visat en datoragent som kan tillverka diamantverktyg i Minecraft, vilket tar människor över 20 minuter (24,000 XNUMX åtgärder) i genomsnitt.

Belöning över avsnitt

Slutsats

VPT banar vägen mot att tillåta agenter att lära sig agera genom att titta på det stora antalet videor på internet. Jämfört med generativ videomodellering eller kontrastiva metoder som bara skulle ge föreställande Tidigare erbjuder VPT den spännande möjligheten att direkt lära sig i stor skala beteendemässiga föregångare inom fler domäner än bara språk. Även om vi bara experimenterar i Minecraft är spelet väldigt öppet och det inbyggda mänskliga gränssnittet (mus och tangentbord) är väldigt generiskt, så vi tror att våra resultat bådar gott för andra liknande domäner, t.ex. datoranvändning.

För mer information, se våra papper. Vi öppnar också för våra entreprenörsdata, Minecraft-miljö, modellkod och modellvikter, vilket vi hoppas kommer att hjälpa framtida forskning om VPT. Dessutom har vi samarbetat med MineRL NeurIPS-tävlingen i år. Tävlande kan använda och finjustera våra modeller för att försöka lösa många svåra uppgifter i Minecraft. Den som är intresserad kan kolla in tävlingens webbsida och tävla om ett blå himmelspris på $100,000 utöver en vanlig prispott på $20,000. Bidrag är tillgängliga för självidentifierade underrepresenterade grupper och individer.


Erkännanden
Detta var en stor insats av ett dedikerat team. Varje författare gjorde enorma bidrag på många fronter under långa tidsperioder. Alla medlemmar var heltid i projektet i över sex månader. BB, IA, PZ och JC var med i det ursprungliga VPT-projektet och var därmed involverade ännu längre (över ett år). Bortsett från de ursprungliga teammedlemmarna är författarordningen slumpmässig. Det randomiserades också mellan IA och 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(); });

Tidsstämpel:

Mer från OpenAI