Tanulj meg Minecraftot játszani a Video PreTraining (VPT) PlatoBlockchain adatintelligenciával. Függőleges keresés. Ai.

Minecraft játék megtanulása Video Pretraining (VPT) segítségével

Minecraft játék megtanulása Video Pretraining (VPT) segítségével

A Video PreTraining (VPT) segítségével megtanítottunk egy neurális hálózatot a Minecraft lejátszására az emberi Minecraft játék hatalmas, címkézetlen videoadatkészletén, miközben csak kis mennyiségű címkézett vállalkozói adatot használtunk. A finomhangolással modellünk megtanulhatja a gyémántszerszámok készítését, amely feladat általában több mint 20 percet vesz igénybe a gyakorlott embereknél (24,000 XNUMX művelet). Modellünk a gombnyomások és egérmozgások natív emberi interfészét használja, ami meglehetősen általánossá teszi, és egy lépést jelent az általános számítógép-használati ágensek felé.

Olvassa el a Papírt


Tekintse meg a kód- és modellsúlyokat


MineRL verseny

Az internet hatalmas mennyiségű nyilvánosan elérhető videót tartalmaz, amelyekből tanulhatunk. Megnézheti, ahogy egy személy gyönyörű prezentációt készít, egy digitális művész gyönyörű naplementét rajzol, a Minecraft játékos pedig egy bonyolult házat épít. Ezek a videók azonban csak rögzítést adnak mit megtörtént, de nem pontosan hogyan sikerült elérni, vagyis nem fogja tudni az egérmozgások és a lenyomott billentyűk pontos sorrendjét. Ha nagyszabású építkezést szeretnénk alapozó modellek ezeken a területeken, ahogy azt a nyelvben tettük GPT, a cselekvési címkék hiánya olyan új kihívást jelent, amely nincs jelen a nyelvi területen, ahol a „cselekvési címkék” egyszerűen a következő szavak a mondatban.

Az interneten fellelhető címkézetlen videó adatok gazdagságának hasznosítása érdekében bevezetünk egy újszerű, mégis egyszerű, félig felügyelt imitációs tanulási módszert: a Video PreTraining-et (VPT). Kezdjük azzal, hogy összegyűjtünk egy kis adatkészletet a vállalkozóktól, ahol nemcsak a videójukat rögzítjük, hanem az általuk végzett műveleteket is, amelyek esetünkben a billentyűlenyomások és az egérmozgatások. Ezekkel az adatokkal egy inverz dinamikai modellt (IDM) képezünk, amely megjósolja a videó egyes lépéseinél végrehajtott műveleteket. Fontos, hogy az IDM használhatja a múltat és a jövő információkat, hogy kitalálhassa a műveletet az egyes lépésekben. Ez a feladat sokkal könnyebb, és így sokkal kevesebb adatot igényel, mint az adott cselekvések előrejelzésének viselkedési klónozási feladata csak a korábbi videókockák, amihez ki kell következtetni, hogy a személy mit akar csinálni, és hogyan kell azt elérni. Ezután a betanított IDM segítségével megcímkézhetjük az online videók sokkal nagyobb adatkészletét, és megtanulhatunk viselkedési klónozással cselekedni.

Minecraft játék megtanulása Video Pretraining (VPT) segítségével
Minecraft játék megtanulása Video Pretraining (VPT) segítségével
VPT módszer áttekintése

VPT Zero-Shot eredmények

Azért választottuk a módszerünket a Minecraftban, mert ez (1) a világ egyik legaktívabban játszott videojátéka, és így rengeteg szabadon elérhető videoadattal rendelkezik, és (2) nyitott végű sokféle dologgal. csinálni, hasonlóan a valós alkalmazásokhoz, például a számítógéphasználathoz. nem úgy mint előzetes művek a Minecraftban, amelyek egyszerűsített cselekvési tereket használnak a felfedezés megkönnyítése érdekében, AI-nk a sokkal általánosabban alkalmazható, bár sokkal nehezebb natív emberi interfészt használja: 20 Hz-es képkockafrekvenciát az egérrel és a billentyűzettel.

A 70,000 50 órányi IDM-címkével ellátott online videón kiképzett viselkedési klónozási modellünk (a „VPT-alapmodell”) olyan feladatokat valósít meg a Minecraftban, amelyeket a semmiből való megerősített tanulással szinte lehetetlen megvalósítani. Megtanulja kivágni a fákat, hogy rönköket gyűjtsön, a rönköket deszkává alakítsa, majd a deszkákat kézműves asztallá alakítsa; ez a sorozat egy Minecraftban jártas embernek körülbelül 1,000 másodpercet vagy XNUMX egymást követő játékműveletet vesz igénybe.

Minecraft játék megtanulása Video Pretraining (VPT) segítségével
Minecraft játék megtanulása Video Pretraining (VPT) segítségével
A kézműves asztal elkészítéséhez szükséges elemek sorozata, amelyen meg van jelölve, hogy a hozzáértő embernek mennyi idő alatt kell eljutnia az egyes lépésekhez
Kézműves asztal "nullalövés" elkészítése (azaz csak előképzés után további finomhangolás nélkül)

Ezenkívül a modell más összetett készségeket is végrehajt, amelyeket az emberek gyakran végeznek a játékban, például úszik, állatokra vadászik, és elfogyasztja ezt az ételt. Megtanulta az „oszlopugrás” készségét is, ami egy gyakori viselkedés a Minecraftban, amikor ismételten ugrálva emeljük fel magunkat, és egy blokkot helyezünk magunk alá.

Úszás (nullalövés)

Vadász állatok (nullalövés)

Étel evés (nulla-lövés)

Oszlopugrás (nullalövés)

Finomhangolás viselkedési klónozással

Az alapozási modelleket úgy tervezték, hogy széles viselkedési profillal rendelkezzenek, és általában sokféle feladat elvégzésére alkalmasak legyenek. Az új ismeretek beépítése vagy a szűkebb feladatelosztásra való szakosodás érdekében általános gyakorlat, hogy ezeket a modelleket kisebb, specifikusabb adatkészletekre finomítják. Esettanulmányként arra vonatkozóan, hogy a VPT alapozási modell mennyire finomhangolható a downstream adatkészletekhez, megkértük vállalkozóinkat, hogy játsszanak 10 percet vadonatúj Minecraft világokban, és építsenek házat alapvető Minecraft anyagokból. Reméltük, hogy ez felerősíti az alapozó modell azon képességét, hogy megbízhatóan végezze el a „korai játék” készségeket, például az asztalok készítését. Az adatkészlet finomhangolása során nemcsak az alapmodellben már meglévő korai játékkészségek megbízható teljesítményének jelentős javulását látjuk, hanem a finomhangolt modell azt is megtanulja, hogy még mélyebbre nyúljon a technológiai fában, mivel mindkettőt fából készíti. és kőszerszámok. Néha még valami kezdetleges menedéképítést is látunk, és az ügynököt falvakon átkutatni, beleértve a portyázó ládákat is.

Minecraft játék megtanulása Video Pretraining (VPT) segítségével
Minecraft játék megtanulása Video Pretraining (VPT) segítségével
A kőcsákány megalkotásához szükséges elemek sorozata, amelyen meg van jelölve, hogy a jártas embernek mennyi időbe telik az egyes lépések eléréséhez
Javított korai játékviselkedés a BC finomhangolásával

Kőcsákány készítése

Kezdetleges fa menedékház építése

Egy falun keresztül kutatni

Adatskálázás

Munkánk talán legfontosabb hipotézise az, hogy sokkal hatékonyabb a címkézett vállalkozói adatok használata egy IDM betanításához (a VPT-folyamat részeként), mint a BC-alapmodell közvetlen betanítása ugyanabból a kis vállalkozói adatkészletből. Ennek a hipotézisnek az igazolására alapmodelleket képezünk 1-ről 70,000 2,000 órára növekvő adatmennyiségre. A 2,000 óránál kevesebb adatra kiképzettek a kivitelezői adatokra, az eredetileg az IDM betanításához gyűjtött alap-igazság címkékkel, a XNUMX óránál több mint a mi IDM-ünkkel ellátott internetes adatokra pedig a képzésben részesülnek. Ezután minden alapozási modellt felveszünk, és finomhangoljuk az előző részben leírt házépítési adatkészletre.

Az alapozó modell képzési adatainak hatása a finomhangolásra

Az alapmodell-adatok gyarapodásával általában a ravaszkodóképesség növekedését tapasztaljuk, és csak a legnagyobb adatskálán látjuk a kőszerszám-készítés megjelenését.

Finomhangolás megerősítő tanulással

Ha lehetséges jutalmazási funkciót megadni, a megerősítési tanulás (RL) hatékony módszer lehet a magas, potenciálisan emberfeletti teljesítmény kiváltására. Számos feladat azonban megköveteli a nehéz felfedezési kihívások leküzdését, és a legtöbb RL módszer megbirkózik velük véletlen feltárási priorok, pl. a modelleket gyakran véletlenszerű cselekvésre ösztönzik az entrópia bónuszokkal. A VPT-modellnek sokkal jobbnak kell lennie az RL számára, mert az emberi viselkedés emulálása valószínűleg sokkal hasznosabb, mint a véletlenszerű cselekvések végrehajtása. Modellünket a kihívást jelentő feladat elé állítottuk, hogy összegyűjtsünk egy gyémánt csákányt, ami a Minecraft példátlan képessége, amely még megnehezíti a natív emberi interfész használatát.

A gyémánt csákány elkészítése hosszú és bonyolult részfeladatokat igényel. Annak érdekében, hogy ez a feladat kezelhető legyen, jutalmazzuk az ügynököket a sorozat minden eleméért.

Minecraft játék megtanulása Video Pretraining (VPT) segítségével
Minecraft játék megtanulása Video Pretraining (VPT) segítségével
RL finomhangolt VPT modell gyémánt csákány készítésével

Azt találtuk, hogy a véletlenszerű inicializálásból kiképzett RL-irányelv (a standard RL-módszer) alig ér el jutalmat, soha nem tanul meg naplókat gyűjteni, és csak ritkán gyűjt botokat. Ezzel éles ellentétben a VPT-modell finomhangolása nemcsak gyémánt csákányok készítését tanulja meg (amit a 2.5 perces Minecraft-epizódok 10%-ában tesz), de még emberi szintű sikerarányt is mutat az összes tárgy összegyűjtésében a gyémánt csákány. Ez az első alkalom, hogy valaki olyan számítógépes ügynököt mutatott be, amely képes gyémántszerszámok készítésére a Minecraftban, ami átlagosan több mint 20 percet (24,000 XNUMX műveletet) vesz igénybe.

Jutalom az epizódok után

Következtetés

A VPT megnyitja az utat az ügynökök számára tanulj meg cselekedni az interneten található rengeteg videó megtekintésével. Összehasonlítva a generatív videó modellezéssel vagy a kontrasztív módszerekkel, amelyek csak hoznak reprezentációs A VPT izgalmas lehetőséget kínál a nagyszabású közvetlen tanulásra viselkedési priorsok a nyelven kívül több területen is. Miközben csak Minecraftban kísérletezünk, a játék nagyon nyílt végű, és a natív emberi felület (egér és billentyűzet) nagyon általános, ezért úgy gondoljuk, hogy eredményeink jót ígérnek más hasonló területeken, például számítógép-használatban.

További információért kérjük, olvassa el papírunk. Nyílt forrásból szerezzük be vállalkozói adatainkat, a Minecraft-környezetet, a modellkódot és a modellsúlyokat, amelyek reményeink szerint elősegítik a VPT-vel kapcsolatos jövőbeli kutatásokat. Ezenkívül ebben az évben partnerek vagyunk a MineRL NeurIPS-versennyel. A versenyzők használhatják és finomhangolhatják modelljeinket, hogy megpróbáljanak sok nehéz feladatot megoldani a Minecraftban. Az érdeklődők megtekinthetik a verseny weboldala és versenyezzenek a kék ég díjért $100,000 a szokásos nyereményalap mellett $20,000. A támogatásokat önazonos alulreprezentált csoportok és egyének vehetik igénybe.


Köszönetnyilvánítás
Ez egy elkötelezett csapat nagy erőfeszítése volt. Mindegyik szerző hosszú időn keresztül hatalmas hozzájárulást nyújtott számos területen. Minden tag teljes munkaidőben dolgozott a projekten több mint hat hónapig. BB, IA, PZ és JC az eredeti VPT projektcsapatban voltak, így még hosszabb ideig (több mint egy évig) vettek részt benne. Az eredeti csapattagokon kívül a szerzők sorrendje véletlenszerű. Szintén véletlenszerűen került sor az IA és a PZ között.

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(); });

Időbélyeg:

Még több OpenAI