kunstig intelligens

Fra Space Invaders til autoskalering: Adobe vil styre sky-ressurser med forsterket læring

Atari-spill og racerdroner har vært med på å få Adobe til å undersøke mulighetene innen forsterket læring til autoskalering.

Space Invaders.
Space Invaders.

Hver dag tar Adobes Cloud Services imot omkring tre milliarder forespørsler fra bedriftens interne kunder. Bedriften bruker AWS og Azure til å la de interne kundene lagre filer og metadata, og foretar asynkron databehandling.

Og dette koster, forteller datalogen Michael Friedrich ved Adobes Cloud Services på O'Reillys AI-konferanse, som ble arrangert i London i oktober.

«Vi er virkelig avhengige av å kunne allokere ressurser etter behovene. Vi må ha den riktige mengden dataressurser til køen, og aldri la køen bli for lang. Det er en utfordring».

De eksisterende algoritmene for automatisk skalering fungerer, forklarer Michael Friedrich. Men de krever omfattende finjustering for hver enkelt av de 60 tjenestene som Adobe benytter. Og når de ikke virker, utløser det en alarmtelefon – dag og natt.

«Jeg vil ikke ringes opp om natta om jobb, så det er en god motivasjon for å gjøre dette riktig», kommenterte Michael Friedrich.

Situasjonen inspirerte Michael Friedrich og kollegaen Stefanie Grunwald – som er dataingeniør – til å lete etter mer intelligente måter å styre autoskalering på.

Space Invaders

Svaret kom i form av en tilsynelatende irrelevant artikkel fra en gruppe forskere fra DeepMind som kalles «Human-level control through deep reinforcement learning».

«Det de gjorde var å kombinere dype nevrale nettverk (deep neural networks) med forsterket læring (reinforcement learning)», forklarte Stefanie Grunwald på konferansen.

«Faktisk til en grad hvor de med den samme arkitekturen og de samme hyperparameterne var i stand til å slå alle de eksisterende algoritmene som kunne spille Atari-spill – det finnes 49 av dem. Den eneste inputen var piksler og scoren på skjermen».

Og hva har evnen til å spille Space Invaders å gjøre med autoskalering? En hel del, mener Stefanie Grunwald.

«I Space Invaders må du optimere etter målet om å skyte romvesener, og unngå å dø. I skalering er det på sett og vis det samme. Vi vil gjerne optimere kundeopplevelsen ved å holde køen kort. Men samtidig vil vi ikke «drepe» bedriften med ekstremt høye sky-regninger», forklarer hun:

«I begge tilfellene må du håndtere forsinket feedback. Hvis du skyter, vil det gå litt tid før du rent faktisk treffer et romvesen. Du kan estimere om det blir truffet, men du vet det først med sikkerhet når det har skjedd. Det samme ser vi innenfor skalering».

Når algoritmene oppskalerer ressurser i skyen, vil det være en forsinkelse før de nye hendelsene begynner å behandle anmodninger – det kan ta mellom ti sekunder og ti minutter avhengig av tjenesten. Og når du skalerer ned, går det også tid før prisen går ned, fordi du betaler på timebasis, forklarer Grunwald.

«Den viktigste innsikten vi hadde, var at begge delene er et kontroll-problem. Det er oppgaver hvor du ikke kan trene en modell til å løse det, uansett hvor store mengder historiske data du fôrer den med. Du er nødt til å håndtere uforutsette situasjoner. Vi må kunne håndtere ting som vi ikke har sett før».

Behovsutsettelse

Dette er nettopp noe av det som forsterket læring kan gjøre. I motsetning til overvåket og uovervåket læring, benytter ikke forsterket læring et datasett til trening.

I stedet har du en agent som har en rekke mulige handlinger. I Space Invaders er mulighetene å bevege seg og å skyte. I autoskalering er mulighetene begrenset til å øke og redusere sky-ressursene.

Agenten oppdras med belønninger som både er negative og positive. I tillegg holder agenten øye med miljøet – som for eksempel spillet – for å avgjøre hva den neste handlingen skal være. En viktig mulighet er at algoritmen kan skreddersys til å bekymre seg mindre om den umiddelbare belønningen og mer om den kumulative belønningen, sier Stefanie Grunwald.

«Det gjør deg i stand til å akseptere en kortsiktig negativ belønning, fordi det vil gi en større belønning på langt sikt».

To års skuffelse

Adobe satte seg fore å prøve ut DeepMinds modell til Atari-spill – Deep Q-Learning – til autoskalering. Første skritt var å bygge en simulering.

«Vi simulerte sky-leverandøren, og simulerte belastningsbehovet som en sinuskurve – en veldig forenklet modell av det som vi ser i produksjonen. Vi modellerte i tillegg køen og den forsinkede responsen», forteller Michael Friedrich.

Agenten fikk tre handlinger: å skalere opp, å skalere ned og å gjøre ingenting. Det som agenten skulle observere ble belastning, størrelsen på køen og nåværende sky-kapasitet.

«Vi valgte å gi en positiv belønning for å holde en belastning mellom 40 og 60 prosent, noe som tillater en form for buffer. Vi ga også negativ belønning etter køstørrelse og det samme for et høyt antall hendelser hos sky-leverandøren, fordi dette representerer hvor mye det koster».

Resultatet var ikke i tråd med forventningene. Agenten oppførte seg uhensiktsmessig ved blant annet å skalere opp når belastningen var på vei ned, og skalere ned selv om kurven var på vei opp.

«Vi prøvde å gi den en belønning for ikke å skalere, og det fungerte litt, men ikke mye», sier Michael Friedrich.

Etter de innledende forsøkene fulgte to års skuffelse, der Michael Friedrich flere ganger tenkte på hvor kult det hadde vært hvis det hadde fungert.

«Jeg elsker Space Invaders, og jeg elsker autoskalering, men det virket ikke», konstaterer han.

Racerdroner til unnsetning

Den neste dosen med inspirasjon kom deretter fra en uventet kant, forteller Michael Friedrich.

«Hobbyen min er å fly racerdroner. Det viste seg at dette er et område som har det samme «forsinket svar»-problemet som man har i autoskalering. Når jeg styrer dronen framover, tar det tid før motoren får opp farten. Og kontrolleren på dronen har mekanismer som minner om algoritmer for autoskalering», forklarer han.

Friedrich begynte å bruke fritiden sin på å finjustere kontrolleren i dronen, noe som førte til en artikkel som testet forsterket læring til nettopp racerdroner.

«De trente en flight-kontroller som automatisk lærer å styre dronen på den mest optimale måten. Og det viste seg at de gjorde det bedre enn oss», sier Michael Friedrich.

«En ting som vi lærte, var at jeg trodde at en sinuskurve som input var enkelt. Men det var ikke enkelt nok for forsterket læring-algoritmen. Vi må gi agenten mer tid til å lære å reagere på et bestemt input-signal. En annen ting som vi fant fram til, var at vi hadde et større nevralt nettverk enn de som trente flight-kontrolleren hadde brukt. Vi hadde to skjulte lag, og de brukte bare ett. Og det fungerte mye bedre. Dette var overraskende for oss».

Den tredje tingen var å jobbe med belønninger. Her måtte Friedrich og Grunwald faktisk øke kompleksiteten.

«Å ha en negativ belønning for brukte dataressurser forvirret agenten til å tro at mange hendelser alltid er negativt. Dermed vektet vi den negative belønningen med den aktuelle belastningen i systemet. Så hvis det er lav belastning i systemet, gir det en større negativ belønning å ha mange hendelser», forklarer Michael Friedrich:

«Vi hadde også gitt køstørrelsen som en negativ belønning, men fordi det kan være millioner av beskjeder i køen, begynte den å dominere signalet. Så vi normaliserte signalet til en verdi på mellom 0 og 1».

Åpen kildekode

Med alle disse endringene begynte RL-agenten å kunne generalisere læringen sin – ikke bare over på den mer kompliserte sinuskurven, men også over til de langt mer kompliserte produksjonsdataene. Men det gjenstår fremdeles mye arbeid før systemet kan settes i produksjon, forteller Michael Friedrich.

Agenten har for eksempel bare mulighet for å skalere opp og ned med én sky-hendelse om gangen.

«I realiteten må man kunne foreta større sprang, og det er fremdeles en utfordring».

En annen mulighet er å se på PPO, som er et mer moderne RL-framework enn Deep Q.

Inntil det skjer har Friedrich og Grunwald valgt å la hele oppgaven være åpen kildekode i form av et miljø i OpenAI Gym, som er et treningsmiljø for forsterket læring. Nå håper de at bidrag utenfra kan være med på å bringe modellen hele veien til produksjon hos Adobe.

Saken ble først publisert på danske Datatech, og gjøres tilgjengelig på norsk for abonnenter av Digi Ekstra gjennom vår samarbeidsavtale med Teknologiens mediehus/Ingeniøren.

Powered by Labrador CMS