Dota 2-bots van OpenAI verliezen ook tweede wedstrijd tegen professionals

Het team van vijf OpenAI-bots die zijn getraind voor het spelen van de game Dota 2, hebben ook hun tweede wedstrijd tegen professionele spelers verloren. Er volgt nog een derde wedstrijd waarin de kunstmatige intelligentie de kans krijgt om revanche te nemen.

De bots van OpenAI Five moesten het in een wedstrijd van 45 minuten afleggen tegen een aantal voormalige Chinese professionele Dota 2-spelers. De kunstmatige intelligentie kwam goed uit de startblokken: ze kwamen wat het aantal kills betreft op een ruime voorsprong van 9-4 en hadden op dat moment meer torens neergehaald.

De Chinese tegenstanders wisten echter meer goud te verzamelen en haalden een paar torens neer toen de bots bezig waren het monster Roshan neer te halen. Na 23 minuten was de stand gelijk op het vlak van het aantal kills en het aantal kapotgemaakte torens. De voorsprong in goud bleek beslissend; het team van professionals wist de wedstrijd daardoor naar zich toe te trekken.

Net zoals in de verloren wedstrijd tegen paiN Gaming was er een duidelijk patroon. De bots bleken weer zeer accuraat in de gevechten, erg goed in het snel reageren op gebeurtenissen die zich voordoen en konden heel goed situaties herkennen waarin ze sterker waren. Maar ze bleken wederom minder goed in staat om situaties te creëren waarin ze de overhand hebben; op tactisch en strategisch vlak leggen ze het nog af tegen professionele spelers.

De programmeurs van OpenAI Five hebben na de verloren wedstrijd tegen paiN Gaming geprobeerd om het beloningssysteem van de bots aan te passen, zo meldt een programmeur tegen The Register. De bots zijn gebouwd om beloningen na te jagen en de grootste beloning is het winnen van de game. Er zijn ook kleinere, tussentijdse beloningen zoals het vellen van een tegenstander of het verkrijgen van goudstukken. De OpenAI-programmeurs hadden de waarde van de kleinere beloningen ietwat teruggeschroefd in de hoop dat de bots zich meer zouden richten op het winnen van de wedstrijd, maar dat bleek nog onvoldoende het geval.

Bij deze twee wedstrijden tegen professionals is een belangrijke beperking verwijderd. Bij eerdere testwedstrijden had elke bot een eigen onkwetsbare koerier voor het brengen van items, maar dat leidde tot een ietwat onrealistische speelstijl waarbij de bots constant veel druk konden zetten, aangezien ze via de koerier steeds regenererende items kregen. Bij normale wedstrijden is er per team slechts een enkele kwetsbare koerier beschikbaar. Dat is nu ook toegepast bij de twee wedstrijden tegen de professionals. De programmeurs denken niet dat deze wijziging heeft bijgedragen aan de nederlagen; ze stellen dat er nog meer training en bugfixes nodig zijn en dat de laatste delen van de gescripte logica uit het model moeten. Er volgt nog een derde wedstrijd tegen professionals.

Door Joris Jansen

Redacteur

24-08-2018 • 10:11

35

Reacties (35)

35
32
15
6
0
15
Wijzig sortering
Net zoals onder meerdere posts lees ik dat veel Tweakers niet helemaal begrijpen wat er hier gebeurt. Daarom een korte toelichting

De bots maken gebruik van een vector die de zichtbare wereld van Dota beschrijft met een aantal parameters. Onderdeel hiervan zijn bijvoorbeeld cooldown timers van skills (ook van ploegmaten) en health bars. Hierdoor hebben de bots in zekere zin dezelfde informatie over de spelwereld beschikbaar als de mens, al is het wel op een andere manier gepresenteerd, omdat een mens wel wat meer moeite moet doen om tegelijkertijd al de relevante informatie tot zich te nemen. Verder zullen natuurlijk altijd verschillen zijn tussen hoe een mens een wereld ervaart en hoe een machine dat doet.

Wat ik vooral het interessant vind aan de resultaten zijn de lange termijn strategien ontwikkeld door de bots. Er werd lang gedacht dat er nog fundamentele doorbraken in de ontwikkelingen voor reinforcement learning algoritmes nodig waren voordat de bots strategien over een langere time horizon zouden kunnen ontwikkelen. Nu blijkt dat met de aanpak die OpenAI heeft gebruikt de bots wel degelijk een strategie voor de looptijd van het spel kunnen ontwikkelen. Echter is het wel interessant om te zien dat de bots op dit vlak nog steeds het onderspit delven tegen de professionele spelers, terwijl de bots op de korte mijn wel beter zijn.

Nu moet er natuurlijk wel een kanttekening geplaatst worden over de efficiëntie van de toegepaste methodes. OpenAI gebruikt namelijk een geparallelliseerde training implementatie over 256 GPUs and 128,000 CPU cores! Hierdoor zit er heel erg weinig noise op de leersignaal voor de bots, omdat er gemiddeld kan worden over veel parallelle speelsessies.

De hele architectuur en methodes gebruikt staan uitgebreid beschreven op de blog van OpenAI.
https://blog.openai.com/openai-five/
Wat ik vooral het interessant vind aan de resultaten zijn de lange termijn strategien ontwikkeld door de bots.
Je herhaalt heel mooi wat ze schrijven op die link, maar het hele nieuws artikel schrijft er nou net over dat die lange termijn strategieën juist net niet ontwikkelt en ontdekt zijn. Tactisch1 spelen deze bots prima (zelfs goed), maar strategisch1 zijn ze veel veel veel zwakker dan de menselijke tegenstanders. Uiteindelijke is het misschien mogelijk om zo veel beter tactisch te zijn dat je zelfs met slechte strategie kunt winnen, maar het hele punt is dat je fundamentele andere aanpakken nodig hebt om het strategische deel te winnen

Andere aanpakken zoals bijvoorbeeld door een two layered AI systeem te maken, waar je 1 (x5) systeem trained voor het lokale tactische systeem, en 1 systeem trained voor het strategische spel (die dus geen verstand heeft van het lokale tactische systeem), wie weet hebben we dan volgend jaar OpenAI#6. Maar goed, dat is puur een random idee, mijn ervaring met deep learning is extreem beperkt (1 niet al te groot project waar ik voorspellingen deed hoe bepaalde data zich zou gedragen in de toekomst op basis van honderden andere variabele 😅😅 ), dus er zullen vast veel betere manieren zijn om dit op te lossen :+ .

1 The terms tactic and strategy are often confused: tactics are the actual means used to gain an objective, while strategy is the overall campaign plan, which may involve complex operational patterns, activity, and decision-making that govern tactical execution.

[Reactie gewijzigd door David Mulder op 29 juli 2024 03:13]

Je maakt hier wel een interessant punt, de bots leren van ongelooflijk veel games. Het zou pas echt een doorbraak zijn als ze per spel meer leren dan een mens. Technisch gezien is het wel duidelijk wat het probleem is: ze hebben geen intuitie over welke parameterwaarden (die hun gedrag bepalen) zinnig kunnen zijn. Er zijn dan twee oplossingen: dit hard in de architectuur verwerken, of kijken of ze we ze iets generiekers kunnen laten leren over games zoals Dota.
Vindt het ergens wel typisch, deep learning experts waren al tijden van mening dat we dingen fundamenteel anders zullen moeten doen om een dergelijk strategisch probleem goed door self-learned AI te laten oplossen. Zelfs als je op de OpenAI blog kijkt schrijven ze
RL researchers (including ourselves) have generally believed that long time horizons would require fundamentally new advances, such as hierarchical reinforcement learning. Our results suggest that we haven’t been giving today’s algorithms enough credit — at least when they’re run at sufficient scale and with a reasonable way of exploring.
Maar lijkt er dus op dat ze tegen exact de limieten aan lopen die verwacht waren. Niet dat de geboekte resultaten niet indrukwekkend zijn voor een self learned systeem. Het is verder allemaal goed gedaan, maar ergens heb ik zo iets van "nothing new here". Dit krijgt een stuk meer aandacht, maar genoeg research papers doen meer nieuw dan dit project. Ik bedoel, AlphaGo was tot in zekere mate vergelijkbaar (het gebruikte traditionele technieken om iets te doen wat gedacht was dat het onmogelijk was), maar anders dan bij Dota 2 was Go een bekend probleem, een milestone die al voor 15 jaar bestond. Als je Dota 2 AI's wilt maken, probeer dat dan op z'n minst te doen op een manier die vooruitgang boekt en nieuwe technieken pioniert. Traditionele oplossingen zie ik al genoeg in de industrie.
Over het algemeen wordt het als een belangrijk verschil ervaren dat Go een spel is met discrete actie- en staatruimtes en wordt gespeeld in zetten (ook discreet). Voor Dota geldt dit niet. Het probleem is daarmee veel moeilijker, je zou dit dus als een fundamenteel nieuwe probleemcategorie waar deze 'Reinforcement Learning' AI succesvol is kunnen zien.

Het zal je verbazen hoe vaak je 'nothing new here' kan zeggen als je dit soort ontwikkelingen van dichtbij bekijkt. Zo werd het oplossen van Go dmv Reinforcement Learning icm Monte Carlo Tree search al ruim 4 jaar voor AlphaGo v.s. Lee Seedol voorspeld [0]. In zekere zin zou je hier van dus ook kunnen zeggen dat er niets nieuws onder de zon was.

[0] Wiering, Marco, and Martijn Van Otterlo. "Reinforcement learning." Adaptation, learning, and optimization 12 (2012): 51, pag. 623-624
Concreet is dat ook in de potten te zien. De ai gebruikt regelmatig hun ultimate ability om wat creeps te clearen, terwijl je die altijd wil bewaren voor grote teamfights.

Ook zie je dat de ai bij het doden van Roshan (een van de teamleden mag dan een item oppakken waardoor je een extra leven krijgt) het extra leven geeft aan het teamlid met de minste HP terwijl je juist wil dat je Carry blijft leven bij een komend gevecht.

Andersom zie je dat de nota wel erg slim zijn in de eerste 10 a 15 minuten en sterke lanes hebben en die ook soepel roteren als dat handig uitkomt.
Maar is dat niet gewoon een kwestie van het beloningssysteem tweaken? Gold moet een iets hogere beloning krijgen, en de beloning van een kill moet gewogen worden tegen de kosten. Dwz het gebruik van een ultimate ability is een malus en zo zullen er nog andere kosten zijn waar je rekening mee moet houden.

Ik heb 0 verstand van Dota. Ik redeneer op basis van wat ik in dit artikel lees dus misschien (waarschijnlijk) sla ik de plank volledig mis.
Het probleem is dat de ai op dat moment de kosten\baten van die ability nu gebruiken moet afwegen tegen later gebruiken. Maar die afweging wordt nu juist niet gemaakt.
ben benieuwd of de bots ook met een muis of cursor en een toetsenbord moesten spelen, dat levert natuurlijk fysieke beperkingen op. Ook is het een verschil of je de spelwereld ziet via een scherm of dat je door een api o.i.d. 'alleswetend' bent van wat er op het speelveld gebeurt.

edit: ingevoerde commando's gaan blijkbaar via de command line en niet met een muis, wel met een 200ms vertraging.. Een muis bewegen lijkt mij meer dan 200ms vertraging op te leveren, dat zal wel een ingebouwde 'menselijke' reactietijd zijn. Toch wel een groot voordeel voor de bots dus.

[Reactie gewijzigd door daan! op 29 juli 2024 03:13]

Alleswetend zullen ze zeker niet zijn, das gewoon "vals" spelen,want dan weten ze veel meer dan de menselijke tegenstander. Muis en toetsenbord ligt natuurlijk wel een stuk gecompleceerder. Ik speel zelf geen DOTA maar wel starcraft 2 en daarbij is een goede effectieve hoge APM (actions per minute) wel nuttig. Je kunt als het ware meer doen in een bepaalde tijd en dat helpt om te winnen. Pro's zie je zo rond de 300 uitkomen (geen onderscheid tussen spammen en nuttige click's), met spikes naar boven. De vraag is of de bots een limiet hebben op de APM, ergens zou dit "eerlijker" zijn, hoewel je dit ook ter discussie kunt stellen, want de bots werken volgens een bepaald script en ik schat in dat het menselijke brein van de ex pro's toch geavanceerder is, dus ergens is dit dan ook oneerlijk.

Bottom line: Het blijft appels met peren vergelijken, maar het is natuurlijk een mooie drijfveer voor diverse AI gerelateerde "onderzoeken" om op deze manier onder de aandacht te krijgen en een mooie uitdaging om het onderzoek te versnellen.
En welke muis gebruiken de bots, misschien zit daar het verlies in.
Natuurlijk heb ik niet echt het vermoeden dat ze met een muis moeten spelen en op een beeldscherm kijken, wat ik aandraag is dat het spelen van het spel op die manier beperkingen geeft die de bots niet hebben. Ongeacht of je een 200ms vertraging als reactietijd inbouwt geeft dit de bots alsnog een groot voordeel.
Volgens mij is het wel de bedoeling dat ze dezelfde visuele informatie als mensen krijgen. Ze moeten dus letterlijk het spel spelen en ze zijn niet onderdeel van de code van het spel zoals dat bij bots die bij het spel horen wel zo is. Doe kunnen inderdaad oneerlijk voordeel krijgen als hun informatie rechtstreeks uit de engine komt. Dan kun je ze dusdanig programmeren dat ze constant weten waar alles en iedereen is.

Bij AI bots buiten een spel is het doorgaans de bedoeling dat ze het spel spelen door de visuele informatie te interpreteren en inderdaad keyboard en mouse input aanleveren.

Dan nog hebben ze natuurlijk voordeel door dat ze inderdaad niet zo veel lag hebben doordat ze geen physieke input moeten leveren maar dan zou het ook meer een robot zijn.
In de eerste versie van je reactie leek het dus wel alsof je dat jezelf afvroeg ;)

Zou opzich wel maf zijn, allemaal robots achter schermpjes die met muis en toetsenbord spelen. Zou behoorlijk wat muizen en toetsenborden kosten ben ik bang :Y)
Maar dáár zou ik wel naar willen kijken! :D
Weet iemand of het wellicht mogelijk is om ook zelf tegen deze bots te spelen? De standaard AI van de standaard bots is echt te triest voor woorden. Zelfs op hard makkelijk te winnen.
Ga er maar niet vanuit, dat zou namelijk een godsvermogen gaan kosten - https://blog.openai.com/openai-five/
Het trainen kost veel geld, het draaien van de uiteindelijke code is relatief simpel en goedkoop en zou me extreem verbazen als je dat niet op een normaal systeem zou kunnen draaien.
Uiteraard, maar dat is een uiteindelijk kant en klaar product/ uitgeleerde AI. Vervolgens ga je ook te maken hebben met meta's die shiften dus moet de AI weer gaan leren e.d.

Kan het uiteraard verkeerd hebben hoor :)
Als het compleet waar is dat OpenAI puur tegen zichzelf is getrained dan heeft die sowieso geen enkel idee over de huidige meta (let wel, vorig jaar beweerde ze ook dat het puur zelf getrained was en later bleek dat ze bepaalde technieken (bijv. creep block) hadden gehardcode. Een menselijke speler weet bijv. dat vanwege de huidige meta de meeste spelers irrationeel X en niet Y doen, een dergelijk tegen zichzelf getrained systeem zal er van uit gaan dat de meeste spelers doen wat de AI denkt dat het beste is. Pas als ze online het mogelijk maken om tegen deze AI's te spelen zal het mogelijk worden om de huidige meta aan deze AI's te leren.

[Reactie gewijzigd door David Mulder op 29 juli 2024 03:13]

Je kan via de workshop andere AI downloaden (of zelf maken :Y) ). Ik heb het zelf nooit uitgeprobeerd, maar ik gok dat je daar wellicht betere kan vinden.

[Reactie gewijzigd door Shawty op 29 juli 2024 03:13]

Het is uiteindelijk toch allemaal onzin, men bouwt een vertraging in om zo net zo snel handeling uit te kunnen voeren als mensen. Maar wat is dan überhaupt het nut van AI als je een handicap inbouwt.

Ik ben niet zo thuis in AI en dat soort zaken, maar op dit moment lijkt het dat de programmeurs alle variabelen controleren, er wordt dus geen gebruik gemaakt van deep learning of iets dergelijks of leren de bots (AI) ook van de games die ze spelen of ooit gespeeld zijn? Anders is het toch alleen een kwestie van tijd voordat ze makkelijk winnen van menselijke tegenstanders.

[Reactie gewijzigd door Andyk125 op 29 juli 2024 03:13]

Het is uiteindelijk toch allemaal onzin, men bouwt een vertraging in om zo net zo snel handeling uit te kunnen voeren als mensen. Maar wat is dan überhaupt het nut van AI als je een handicap inbouwt.
Het staat al vast dat computers mensen digitaal kunnen verslaan op reactievermogen. Daar valt geen winst meer te behalen. Daarom zijn vergelijkingen op intelligentieniveau spannender. Bij bijvoorbeeld schaken is dit minder een probleem, want het is turn-based (ook al kan er een tijdslimiet zijn waar professionele schakers niet hard tegenaan lopen).
Wat het ding met schaken is, is dat de AI niet moe wordt en de persoon wel na uren lang diep geconcentreerd in zijn stoel te zitten. Uiteindelijk is het een oneerlijke strijd.
In het vorige artikel stond dat ze aardig wat uur (dagen) tegen zichzelf hadden gespeeld om zo het neurale netwerk op te bouwen. Het is dus niet gescript of door de programmeurs vast gezet.

De vertraging is omdat ze willen weten of het denkvermogen van de AI toerijkend genoeg is om mensen te kunnen verslaan. Zonder die 200ms zouden de bots winnen puur op het feit dat ze alle gevechten domineren. Dan hoeft er verder niet zoveel nagedacht te worden.
Ze maken wel gebruik van deep learning. Maar deep learning is niet zo simpel als het soms wordt voorgesteld: Geef genoeg input en na loop van tijd doet hij het wel vanzelf. Strategische beslissingen zijn moeilijk te nemen, en dat is het interessante eraan. Nu weet ik niet precies hoe het bij DOTA zit, maar genoeg spellen is het niet heel uitdagend om een AI te maken die alles wint. Als je een gemiddelde shooter als voorbeeld neemt: Je kan het strategisch vermogen van een borrelnootje hebben, maar als je 100% perfect schiet win je nog steeds. Daar zit dus ook niet de uitdaging.
vanop de website van openai :
]OpenAI Five plays 180 years worth of games against itself every day, learning via self-play. It trains using a scaled-up version of Proximal Policy Optimization running on 256 GPUs and 128,000 CPU cores
bron : https://blog.openai.com/openai-five/
Ik vraag mij heel erg af of ze de mens hier in kunnen verslaan. MOBA games hebben een meta die vaak verschuift en het spelverloop wat enorm explosief kan zijn. Daarnaast ook nog een gezonde dosis aan geluk dat je af en toe hebt. Waarbij de AI het moet hebben van de wedstrijden die eerder zijn gespeelt, heb je in een keer zo'n mens die een beslissing maakt die niet te begrijpen valt.

Het is daarentegen wel zeer interessant om dit proces te volgen en te zien waar het schip strandt.

[Reactie gewijzigd door 62696e617279 op 29 juli 2024 03:13]

Zijn historische data van toernooien etc. ook beschikbaar in een formaat zodat OpenAI-Five dit als trainingsdata kan gebruiken? Volgens mij is dit nu erg moeilijk omdat de inputs van de bots anders is dan wat mensen zien, maar zou wel te maken moeten zijn (in plaats van voeren aan spelende bots opslaan op disk).
"De programmeurs van OpenAI Five hebben na de verloren wedstrijd tegen paiN Gaming geprobeerd om het , zo meldt een programmeur tegen The Register. De bots zijn gebouwd om beloningen na te jagen en de grootste beloning is het winnen van de game. Er zijn ook kleinere, tussentijdse beloningen zoals het vellen van een tegenstander of het verkrijgen van goudstukken. De OpenAI-programmeurs hadden de waarde van de kleinere beloningen ietwat teruggeschroefd in de hoop dat de bots zich meer zouden richten op het winnen van de wedstrijd, maar dat bleek nog onvoldoende het geval."
Kan iemand uitleggen waarom dit nodig is? Ik dacht altijd dat het idee van AI was dat je het één doel geeft (winnen van de wedstrijd) en dat het dan door tegen zichzelf te spelen er achter komt hoeveel waarde het moet geven aan tussendoelen in bepaalde situaties. In schaaktermen, als je het programma vaak laat spelen gaat het zelf inzien dat er meer kans op winnen is in bijna alle situaties met een Dame dan met een Loper en gaat dus daarna (bijna) geen Dames meer offeren voor Lopers. Nu lijkt het of programmeurs dat eerst moeten vertellen.
Even heel plat gezegd, de bots kunnen niet met elkaar communiceren?

Het lijkt alsof de bots sneller/accurater zijn, nuja, een (geprogrammeerde) aimbot immers beter dan een menselijke speler (AI in theorie ook, al is het moeilijker hard te maken).

En overzicht houden is voor een bot gemakkelijker omdat het veel inputs tegelijkertijd kan verwerken. De bot zal niet zo snel "over het hoofd zien" dat er nog een tweede speler zich bij het 1 op 1 gevecht voegt en kan binnen dezelfde 100ms de speler zien en weg "flashen" (korte teleport).

Het als een team bewegen/objectives pakken is niet echt iets wat de bots doen als ze allemaal individueel AI uitvoeren?

Daarnaast, als de AI's leermethode/score is om te "winnen" krijg je juist dat ze greedy gaan spelen.
Als je bijvoorbeeld punten toekent voor het vernietigen van een toren, dan gaan de bots alle torens uit alle lanes proberen te vernielen, terwijl ze anders ook gewoon een lane hadden kunnen doorpushen?

Op dit item kan niet meer gereageerd worden.