Kuidas saada Blizzardi ja Google Deepmindi PySc2 Colabsis tasuta töötama

TL; DR: Kui soovite alustada TASUTA StarCraft II masinõppe keskkonnaga, mis on koos GPU riistvaraga, saate tutvuda Google Colabi alustava märkmikuga siin:
https://colab.research.google.com/drive/1AzCKV98UaQQz2aJIeGWlExcxBrpgKsIV

Või optimeeritud DQN-i versioon siin:

https://colab.research.google.com/drive/18asH_hmCjgUUCb-_-SPgPWkK0MYLPAmk

Ai on õppinud malet ja isegi hiljuti hullumeelselt keerulist mängu Go.

Kuid väljaspool klassikalisi lauamänge on reaalajas mängudes palju valdkondi, kus praegused masinõppe (ML) tehnikad ebaõnnestuvad.

Näited hõlmavad mängu osade peitmist või üldtuntud sõjasummumist, kui nuppe või toiminguid, mida masinõppe algoritm peab juhtima, on palju, kui mängus on rohkem kui üks vastane & pikaajaline planeerimine, kui nimetada vaid mõnda!

Eelmise aasta augusti (2017) paiku tegi Google Deepmind koostööd Blizzard Entertainmentiga, et vabastada see, mis on Ai uuringute jaoks sisuliselt „järgmine suur väljakutse“.

Starcraft 2 kasutuselevõtt.

StarCraft II on ulmepõhine reaalajas strateegiamäng, mis ilmus 2010. aastal

Enne kui alustame, peate:

  • Arvuti, mis suudab kasutada Google Chrome'i ajakohastatud versiooni,
  • Stabiilne Interneti-ühendus,
  • Colabs'i jaoks optimeeritud masinõppe mudel (saame teada, kuidas saate seda natuke teha, aga kui te ei hooli sellest, kuidas meil see õnnestus, lugege julgelt järgmist osa 2. osas “Kuidas Colabi jaoks masinõppe mudeli optimeerimiseks ”selle lingi kaudu)

Miks kasutada Colabs?

Masinõppeagendi kirjutamine on keeruline.

Kui teil on juurdepääs ainult CPU-le, võib masinõppe mudeli väljaõpetamine ühe tulemuse saamiseks kulutada teie arvutitsüklite mitu päeva.

Inimesena kaotame kiiresti huvi projektide vastu, millega me ei saa igapäevaselt suhelda. Nii et ühe tulemuse saamine iga paari päeva või isegi nädala (!) Järel on lihtsalt ebapraktiline viis uuringute tegemiseks.

Lisaks on isiklikul teadmisel veelgi raskem, kui teil on aastast 2011 MacBook Air ja teil puuduvad sellised väljamõeldud asjad nagu tonn RAM ja tänapäeva GPU !!!

Sisenege koostöölaborisse

Eelmise aasta lõpus avaldas Google'i uuring lühidalt oma masinõppe tööriista Colaboratory või Colabs.

Google'i koostöölabor.

Esimene väljalase oli päris lahe. See andis teile juurdepääsu Jupyteri sülearvuti stiilis esiotsale, mis ühendas teid Google'i pilves asuva virtuaalse masinaga (VM) - kõik tasuta.

Mis aga tõstis meie huvi jaanuari lõpus (2018) kõige kõrgemale kohale, oli Google'i värskendatud Colabs, et anda teile GPU-le tasuta juurdepääs !!!

tasuta,

juurdepääs,

kuhu,

a,

GPU,

Kas me mainisime, et see oli tasuta? Püha makrelli pallid.

(sidenote: Google annab teile tasuta juurdepääsu VM-le, millel on 11 GB RAM-i ja NVIDIA K80 GPU-d !!

NVIDIA Tesla K80 GPU

Mis võib siis olla hämmastavam kui oma masinõppemudeli pilves täiesti tasuta treenimine, mudeli õppetöö allalaadimine ja tulemuste nägemine oma arvutis 12 tunni jooksul, mitte päevade või nädalate jooksul.

Kuidas me seda tegime.

Lihtne osa

Läksime kohe tööle, proovides, kas eelmisel aastal välja antud peata Starcraft 2 versiooni (aka miinus väljamõeldud Starcrafti graafikat) saaks Colabsile alla laadida.

Meie üllatuseks see töötas.

! vidin http://blzdistsc2-a.akamaihd.net/Linux/SC2.4.0.2.zip
--2018-04-10 03: 11: 41-- http://blzdistsc2-a.akamaihd.net/Linux/SC2.4.0.2.zip
Blzdistsc2-a.akamaihd.net (blzdistsc2-a.akamaihd.net) lahendamine ... 72.246.56.35, 72.246.56.72
Ühendamine blzdistsc2-a.akamaihd.net (blzdistsc2-a.akamaihd.net) | 72.246.56.35 |: 80 ... ühendatud.
HTTP-päring saadetud, ootan vastust ... 200 OK
Pikkus: 3457493499 (3,2 G) [rakendus / tõmblukk]
Salvestamine kausta: 'SC2.4.0.2.zip'

SC2.4.0.2.zip 37% [======>] 1,20 G 28,2 MB / s eta 84s
SC2.4.0.2.zip 100% [===================>] 3,22 G 30,2 MB / s 2m 10s

2018-04-10 03:13:53 (25,3 MB / s) - 'SC2.4.0.2.zip' salvestatud [3457493499/3457493499]

Päevakorral oli peata kliendi pakkimise lahti pakkimine,

See töötas ka.

! unzip -P iagreetotheeula SC2.4.0.2.zip
Arhiiv: SC2.4.0.2.zip loomine: StarCraftII / loomine: StarCraftII / Kordus / loomine: StarCraftII / Battle.net / loomine: StarCraftII / Battle.net / Vahemälu / loomine: StarCraftII / Battle.net / Vahemälu / 02 / loomine : StarCraftII / Battle.net / Vahemälu / 02 / 4e / täispuhumine: StarCraftII / Battle.net / Vahemälu / 02 / 4e / 024eaf5791a26ab0ab99e5c3ef5c2b96ebbdb176dd8862bfee38a9c3242e4115.s2ma

Muidugi on teil vaja Deepmindi PySc2, et saaksite oma Pythoni koodi Starcraft 2-ga rääkima.

Niisiis, lihtsa installikäsklusega ... vioola! PySc2 on nüüd installitud rakendusse Colaboratory.

! pip install pysc2
Pysc2 kogumine PySC2-1.2-py3-none-any.whl (112 kB) 100% allalaadimine | ██████████████████████████████ ██ | 112 kB, 2,1 MB / s

Raske osa

Seejärel õnnestus meil vabastada peata kliendi eksemplar, kuid kui PySc2 üritas luua ühendust veebipõhiste tehnoloogiate kaudu, tekkis meil ühenduse ajalõpu tõrge.

Noh, see oli ajaraiskamine.

Mitte päris.

Pärast äärmiselt rasket tööd suutis Frank He meie StarAi meeskonnast Colabsit (ilma silurita…) vea algpõhjusel siluda. Suurepärase selgituse saamiseks, kuidas ta sellega hakkama sai, pöörduge julgelt siin asuva keskmise postituse poole.

Selgus, et mälujaoturi tõrge põhjustas SC2 peata kliendi krahhi Colaboratory'is.

Nüüd on meil Colabsil peata kliendi TÖÖversioon, mis räägib PySC2-ga

Mäng edasi!

Masinõppeagendi koolitamine

Kas DQN koolitatakse Google Colabsis.

Ühes hiljutises edus suutis üks meie meeskonna liikmetest William Xu hankida PyQ2 algsest väljaandest versiooni masinõppe algoritmist, mida tuntakse DQN-na ja mis töötab probleemiga „liikuda majakale“.

Otsustasime proovida Willi esindajat Colabsil ja meie lõpmatu üllatusena hakkas see treenima !!!

! PÜTHONPATH =. python ~ / pytorch / sc2_agents / BaseTrainer.py --map = MoveToBeacon --train = True
Koormusmängu faasi sisenemine.
Järgmise mängu käivitamine.
Järgmine käivitusfaas algas:

Kuidas oma esindajat koolitada.

Kõige olulisem on see, et vajate stabiilset Interneti-ühendust. Põhjus on see, et kui mudeli treenimise ajal Colabsist lahti ühendate, läheb kogu teie raske töö ära.

Ideaalis on kõige parem jätta mudelikoolitus üleöö, et saaksite järgmisel hommikul ärgata värskete masinõppe tulemuste saamiseks. Kui olete midagi sellist nagu meie ja teie korterikaaslastele meeldib Netflixi vaadata, proovige ehk leida parem Interneti-ühendus, kus teie mudel saaks ohutult treenida!

Samuti veenduge, et teie arvuti ei aeguks selle lukustuskuvale. Oleme leidnud, et see näib katkestavat ka Interneti.

Peate optimeerima ka Colabsi masinõppe mudeli, see samm on lihtne ja oleme kirjutanud järelartikli ning 2. osas näitame teile, kuidas oma mudelit Colabi jaoks optimeerida

Ja see selleks!

Alustage kohe >>

Allpool on link meie Colabsi märkmiku juurde, mida saate Google Chrome'i kasutamisel kohe oma brauseris laadida ja sellega mängida!

Baasagent

https://colab.research.google.com/drive/1AzCKV98UaQQz2aJIeGWlExcxBrpgKsIV

DQN agent

https://drive.google.com/file/d/18asH_hmCjgUUCb-_-SPgPWkK0MYLPAmk/view?usp=sharing

2. osa: kuidas optimeerida oma Starcrafti masinõppe mudelit Google'i koostööprojekti jaoks.

Täname Blizzardit, Deepmindit ja Google'i nende suurepäraste tööriistade masinõppe kogukonnale välja andmise eest ja loodame, et see töö inspireerib teisi Starcraft 2 keskkonda kasutades masinõppe piire üles tõukama.
Oleme selle kõla lihtsaks teinud, kuid tõtt-öelda oli see palju rasket tööd. Samuti sooviksin isiklikult tänada Frank Heit selle aja eest, mis ta pani mälujaoturi probleemi silumiseks, ja William Xu DQN-i algoritmi vinge juhendamise eest.
StarAi on väike arendajate, masinõppijate ja teadlaste meeskond, mis asub Sydneys, Austraalias