Det här är ett gästblogginlägg som skrivits tillsammans med Hussain Jagirdar från Games24x7.
Spel 24x7 är en av Indiens mest värdefulla flerspelsplattformar och underhåller över 100 miljoner spelare i olika skicklighetsspel. Med "Science of Gaming" som sin kärnfilosofi, har de möjliggjort en vision av end-to-end-informatik kring speldynamik, spelplattformar och spelare genom att konsolidera ortogonala forskningsriktningar för spel AI, speldatavetenskap och spelanvändarforskning. AI- och datavetenskapsteamet dyker ner i en uppsjö av multidimensionell data och kör en mängd olika användningsfall som optimering av spelarresa, upptäckt av spelåtgärder, hyperpersonalisering, kund 360 och mer på AWS.
Games24x7 använder ett automatiserat, datadrivet, AI-drivet ramverk för bedömning av varje spelares beteende genom interaktioner på plattformen och flaggar användare med avvikande beteende. De har byggt en djupinlärningsmodell ScarceGAN, som fokuserar på identifiering av extremt sällsynta eller knappa prover från flerdimensionell longitudinell telemetridata med små och svaga etiketter. Detta arbete har publicerats i CIKM'21 och är öppen källkod för sällsynt klassidentifiering för eventuella longitudinella telemetridata. Behovet av produktion och adoption av modellen var avgörande för att skapa en ryggrad bakom att möjliggöra ansvarsfullt spelande på deras plattform, där de flaggade användarna kan tas genom en annan resa av moderering och kontroll.
I det här inlägget delar vi hur Games24x7 förbättrade sina träningspipelines för deras ansvarsfulla spelplattform med hjälp av Amazon SageMaker.
Kundens utmaningar
DS/AI-teamet på Games24x7 använde flera tjänster från AWS, inklusive SageMaker-datorer, AWS stegfunktioner, AWS Lambdaoch Amazon EMR, för att bygga rörledningar för olika användningsfall. För att hantera driften i datadistribution, och därför för att träna om sin ScarceGAN-modell, upptäckte de att det befintliga systemet behövde en bättre MLOps-lösning.
I den föregående pipelinen genom Step Functions körde en enda monolitkodbas dataförbearbetning, omskolning och utvärdering. Detta blev en flaskhals vid felsökning, tillägg eller borttagning av ett steg, eller till och med i att göra några små förändringar i den övergripande infrastrukturen. Denna stegfunktion instansierade ett kluster av instanser för att extrahera och bearbeta data från S3 och de ytterligare stegen med förbearbetning, utbildning och utvärdering skulle köras på en enda stor EC2-instans. I scenarier där pipelinen misslyckades i något steg behövde hela arbetsflödet startas om från början, vilket resulterade i upprepade körningar och ökade kostnader. Alla utbildnings- och utvärderingsmått inspekterades manuellt från Amazon Simple Storage Service (Amazon S3). Det fanns ingen mekanism för att skicka och lagra metadata från de multipla experiment som gjordes på modellen. På grund av den decentraliserade modellövervakningen krävde grundlig undersökning och val av den bästa modellen timmar från datavetenskapsteamet. Ackumulering av alla dessa ansträngningar hade resulterat i lägre teamproduktivitet och ökade omkostnader. Dessutom, med ett snabbt växande team, var det mycket utmanande att dela denna kunskap i hela teamet.
Eftersom MLOps-koncept är mycket omfattande och att implementera alla steg skulle ta tid, bestämde vi oss för att i det första skedet skulle vi ta itu med följande kärnfrågor:
- En säker, kontrollerad och mallbaserad miljö för att omskola vår interna modell för djupinlärning med hjälp av branschpraxis
- En parametriserad träningsmiljö för att skicka en annan uppsättning parametrar för varje omskolningsjobb och granska de senaste körningarna
- Möjligheten att visuellt spåra träningsmått och utvärderingsmått och ha metadata för att spåra och jämföra experiment
- Möjligheten att skala varje steg individuellt och återanvända de tidigare stegen i fall av stegfel
- En enda dedikerad miljö för att registrera modeller, lagra funktioner och anropa slutledningspipelines
- En modern verktygsuppsättning som kan minimera beräkningskraven, sänka kostnaderna och driva hållbar ML-utveckling och drift genom att införliva flexibiliteten att använda olika instanser för olika steg
- Skapa en benchmarkmall av toppmodern MLOps-pipeline som kan användas i olika datavetenskapsteam
Games24x7 började utvärdera andra lösningar, inklusive Amazon SageMaker Studio Pipelines. Den redan befintliga lösningen genom Step Functions hade begränsningar. Studiopipelines hade flexibiliteten att lägga till eller ta bort ett steg när som helst. Dessutom kan den övergripande arkitekturen och deras databeroende mellan varje steg visualiseras genom DAG. Utvärderingen och finjusteringen av omskolningsstegen blev ganska effektiv efter att vi anammat olika Amazon SageMaker-funktioner som Amazon SageMaker Studio, Pipelines, Processing, Training, modellregister och experiment och försök. AWS Solution Architecture-teamet visade en stor djupdykning och var verkligen avgörande i designen och implementeringen av denna lösning.
Lösningsöversikt
Följande diagram illustrerar lösningsarkitekturen.
Lösningen använder en SageMaker Studio miljö för att genomföra omskolningsexperimenten. Koden för att anropa pipeline-skriptet är tillgänglig i Studio-anteckningsböckerna, och vi kan ändra hyperparametrarna och input/output när vi anropar pipeline. Detta skiljer sig ganska mycket från vår tidigare metod där vi hade alla parametrar hårdkodade i skripten och alla processer var oupplösligt kopplade. Detta krävde modularisering av den monolitiska koden i olika steg.
Följande diagram illustrerar vår ursprungliga monolitiska process.
Modularisering
För att skala, spåra och köra varje steg individuellt behövde den monolitiska koden modulariseras. Parametrar, data och kodberoende mellan varje steg togs bort, och delade moduler för de delade komponenterna över stegen skapades. En illustration av modulariseringen visas nedan:-
För varje enskild modul gjordes testning lokalt med SageMaker SDK:s Skriptläge för utbildning, bearbetning och utvärdering som krävde mindre ändringar i koden för att köras med SageMaker. De lokalt lägestestning för djupinlärning kan skript göras antingen på SageMaker-anteckningsböcker om de redan används eller genom att använda Lokalt läge med SageMaker Pipelines vid direktstart med Pipelines. Detta hjälper till att validera om våra anpassade skript kommer att köras på SageMaker-instanser.
Varje modul testades sedan isolerat med SageMaker Training/processing SDK:s Skriptläge och körde dem i en sekvens manuellt med SageMaker-instanserna för varje steg som nedanstående träningssteg:
Amazon S3 användes för att få källdata att bearbeta och sedan lagra mellanliggande data, dataramar och NumPy-resultat tillbaka till Amazon S3 för nästa steg. Efter att integrationstestningen mellan individuella moduler för förbearbetning, utbildning, utvärdering var klar, den SageMaker Pipeline SDK:er som är integrerad med SageMaker Python SDK:s som vi redan använde i stegen ovan, gjorde det möjligt för oss att koppla ihop alla dessa moduler programmatiskt genom att skicka ingångsparametrarna, data, metadata och utdata från varje steg som en ingång till nästa steg.
Vi kunde återanvända den tidigare Sagemaker Python SDK-koden för att köra modulerna individuellt i Sagemaker Pipeline SDK-baserade körningar. Relationerna mellan varje steg i pipelinen bestäms av databeroendet mellan stegen.
De sista stegen i pipelinen är följande:
- Förbehandling av data
- Omskolning
- Utvärdering
- Modellregistrering
I följande avsnitt diskuterar vi vart och ett av stegen mer i detalj när de körs med SageMaker Pipeline SDK:er.
Förbehandling av data
Detta steg omvandlar rå indata och förprocesser och delas upp i tåg-, validerings- och testuppsättningar. För detta bearbetningssteg instansierade vi ett SageMaker-bearbetningsjobb med TensorFlow Framework Processor, som tar vårt skript, kopierar data från Amazon S3 och drar sedan en Docker-bild som tillhandahålls och underhålls av SageMaker. Den här Docker-behållaren tillät oss att skicka våra biblioteksberoenden i filen requirement.txt samtidigt som alla TensorFlow-biblioteken redan var inkluderade, och skicka sökvägen till source_dir för skriptet. Tåg- och valideringsdata går till träningssteget och testdata vidarebefordras till utvärderingssteget. Det bästa med att använda den här behållaren var att den tillät oss att skicka en mängd olika ingångar och utgångar som olika S3-platser, som sedan kunde skickas som ett steg beroende till nästa steg i SageMaker-pipelinen.
Omskolning
Vi lade utbildningsmodulen igenom SageMaker-rörledningar TrainingStep API och använde redan tillgängliga behållarebilder för djupinlärning genom TensorFlow Framework-estimatorn (även känd som skriptläge) för SageMaker-utbildning. Skriptläget tillät oss att ha minimala ändringar i vår träningskod, och SageMaker förbyggda Docker-behållaren hanterar Python, Framework-versionerna och så vidare. ProcessingOutputs från Data_Preprocessing
steg vidarebefordrades som TrainingInput för detta steg.
Alla hyperparametrar skickades genom estimatorn genom en JSON-fil. För varje epok i vår träning skickade vi redan våra träningsmått genom stdOut i manuset. Eftersom vi ville spåra måtten för ett pågående träningsjobb och jämföra dem med tidigare träningsjobb, var vi bara tvungna att analysera denna StdOut genom att definiera måttenhetsdefinitionerna genom regex för att hämta måtten från StdOut för varje epok.
Det var intressant att förstå att SageMaker Pipelines automatiskt integreras med SageMaker Experiments API, som som standard skapar en experiment-, test- och testkomponent för varje körning. Detta gör det möjligt för oss att jämföra träningsmått som noggrannhet och precision över flera körningar som visas nedan.
För varje utbildningsjobb som körs genererar vi fyra olika modeller till Amazon S3 baserat på vår anpassade affärsdefinition.
Utvärdering
Det här steget laddar de tränade modellerna från Amazon S3 och utvärderar på våra anpassade mätvärden. Detta ProcessingStep tar modellen och testdatan som indata och dumpar rapporterna om modellens prestanda på Amazon S3.
Vi använder anpassade mätvärden, så för att kunna registrera dessa anpassade mätvärden till modellregistret behövde vi konvertera schemat för utvärderingsmåtten lagrade i Amazon S3 som CSV till SageMaker modellkvalitet JSON-utgång. Sedan kan vi registrera platsen för denna utvärderings JSON-mått till modellregistret.
Följande skärmdumpar visar ett exempel på hur vi konverterade en CSV till Sagemaker Model Quality JSON-format.
Modellregistrering
Som nämnts tidigare skapade vi flera modeller i ett enda träningssteg, så vi var tvungna att använda en SageMaker Pipelines Lambda-integration för att registrera alla fyra modellerna i ett modellregister. För en enda modellregistrering kan vi använda ModelStep API för att skapa en SageMaker-modell i registret. För varje modell hämtar Lambda-funktionen modellartefakt och utvärderingsmått från Amazon S3 och skapar ett modellpaket till ett specifikt ARN, så att alla fyra modellerna kan registreras i ett enda modellregister. SageMaker Python API:er tillät oss också att skicka anpassade metadata som vi ville skicka för att välja de bästa modellerna. Detta visade sig vara en viktig milstolpe för produktiviteten eftersom alla modeller nu kan jämföras och granskas från ett enda fönster. Vi tillhandahöll metadata för att unikt skilja modellen från varandra. Detta hjälpte också till att godkänna en enda modell med hjälp av peer-reviews och ledningsgranskningar baserade på modellmått.
Ovanstående kodblock visar ett exempel på hur vi lade till metadata genom modellpaketinmatning till modellregistret tillsammans med modellmåtten.
Skärmdumpen nedan visar hur enkelt vi kan jämföra mätvärden för olika modellversioner när de väl är registrerade.
Pipeline Invocation
Pipelinjen kan anropas genom EventBridge , Sagemaker Studio eller SDK sig. Anropet kör jobben baserat på databeroendena mellan stegen.
Slutsats
I det här inlägget demonstrerade vi hur Games24x7 förvandlade sina MLOps-tillgångar genom SageMaker-pipelines. Möjligheten att visuellt spåra träningsmått och utvärderingsmått, med parametriserad miljö, skala stegen individuellt med rätt bearbetningsplattform och ett centralt modellregister visade sig vara en viktig milstolpe i standardisering och avancemang till ett revisionsbart, återanvändbart, effektivt och förklarande arbetsflöde . Detta projekt är en plan för olika datavetenskapsteam och har ökat den totala produktiviteten genom att låta medlemmarna driva, hantera och samarbeta med bästa praxis.
Om du har ett liknande användningsfall och vill komma igång rekommenderar vi att du går igenom SageMaker Skriptläge och SageMaker slut till slut exempel med Sagemaker Studio. Dessa exempel har de tekniska detaljerna som har behandlats i den här bloggen.
En modern datastrategi ger dig en omfattande plan för att hantera, komma åt, analysera och agera utifrån data. AWS tillhandahåller den mest kompletta uppsättningen tjänster för hela end-to-end-dataresan för alla arbetsbelastningar, alla typer av data och alla önskade affärsresultat. Detta gör i sin tur AWS till det bästa stället att låsa upp värde från din data och omvandla den till insikt.
Om författarna
Hussain Jagirdar är senior vetenskapsman – tillämpad forskning på Games24x7. Han är för närvarande involverad i forskningsinsatser inom området förklarlig AI och djupinlärning. Hans senaste arbete har involverat djupgående generativ modellering, tidsseriemodellering och relaterade delområden av maskininlärning och AI. Han brinner också för MLOps och standardisering av projekt som kräver begränsningar som skalbarhet, tillförlitlighet och känslighet.
Sumir Kumar är Solutions Architect på AWS och har över 13 års erfarenhet inom teknikindustrin. På AWS arbetar han nära AWS nyckelkunder för att designa och implementera molnbaserade lösningar som löser komplexa affärsproblem. Han brinner mycket för dataanalys och maskininlärning och har en bevisad meritlista i att hjälpa organisationer att låsa upp den fulla potentialen hos deras data med hjälp av AWS Cloud.
- SEO-drivet innehåll och PR-distribution. Bli förstärkt idag.
- Platoblockchain. Web3 Metaverse Intelligence. Kunskap förstärkt. Tillgång här.
- Minting the Future med Adryenn Ashley. Tillgång här.
- Källa: https://aws.amazon.com/blogs/machine-learning/how-games24x7-transformed-their-retraining-mlops-pipelines-with-amazon-sagemaker/
- :är
- 1
- 10
- 100
- 11
- 7
- a
- förmåga
- Om Oss
- ovan
- tillgång
- ackumulering
- noggrannhet
- ACM
- tvärs
- Agera
- Handling
- lagt till
- Annat
- Dessutom
- adress
- antagen
- Antagande
- Efter
- AI
- Alla
- tillåta
- tillåter
- redan
- amason
- Amazon SageMaker
- Amazon SageMaker Studio
- analytics
- analysera
- och
- api
- tillämpas
- arkitektur
- ÄR
- OMRÅDE
- runt
- AS
- bedömning
- Tillgångar
- At
- revision
- granskbar
- granskas
- Automatiserad
- automatiskt
- tillgänglig
- AWS
- tillbaka
- Backbone
- baserat
- BE
- därför att
- Börjar
- bakom
- Där vi får lov att vara utan att konstant prestera,
- nedan
- riktmärke
- BÄST
- bästa praxis
- Bättre
- mellan
- Blockera
- Blogg
- Byggnad
- byggt
- företag
- by
- KAN
- Vid
- fall
- centrala
- kedja
- utmanande
- byta
- Förändringar
- klass
- nära
- cloud
- kluster
- koda
- Kodbas
- samarbeta
- jämföra
- jämfört
- fullborda
- komplex
- komponent
- komponenter
- omfattande
- Compute
- Begreppen
- konsolidera
- begränsningar
- Behållare
- Behållare
- kontroll
- kontrolleras
- konvertera
- konverterad
- Kärna
- Pris
- Kostar
- kunde
- omfattas
- skapa
- skapas
- skapar
- Skapa
- För närvarande
- beställnings
- kund
- Kunder
- datum
- Data Analytics
- datavetenskap
- datstrategi
- data driven
- decentraliserad
- beslutade
- dedicerad
- djup
- djupdykning
- djupt lärande
- Standard
- definierande
- Efterfrågan
- demonstreras
- Dependency
- Designa
- önskas
- detalj
- detaljer
- Detektering
- bestämd
- Utveckling
- olika
- direkt
- upptäckt
- diskutera
- skilja på
- fördelning
- Hamnarbetare
- ner
- driv
- Dynamiken
- varje
- Tidigare
- lätt
- effektiv
- ansträngningar
- antingen
- sysselsätter
- aktiverad
- möjliggör
- början till slut
- Hela
- Miljö
- epok
- utvärdering
- utvärdering
- Även
- Varje
- exempel
- exempel
- utförande
- befintliga
- befintligt system
- erfarenhet
- experimentera
- omfattande
- extrahera
- extremt
- Misslyckades
- Funktioner
- Fil
- slutlig
- Förnamn
- flaggad
- flaggorna
- Flexibilitet
- fokuserar
- efter
- följer
- För
- format
- Ramverk
- från
- full
- fungera
- funktionaliteter
- funktioner
- ytterligare
- lek
- Spelare
- Games
- Gaming
- spelplattform
- generera
- generativ
- skaffa sig
- ger
- Go
- Går
- stor
- Gäst
- hantera
- Handtag
- Hård
- Har
- har
- hjälpa
- hjälpte
- hjälpa
- hjälper
- ÖPPETTIDER
- Hur ser din drömresa ut
- html
- HTTPS
- Identifiering
- bild
- bilder
- genomföra
- genomförande
- genomföra
- importera
- förbättras
- in
- ingår
- Inklusive
- införlivande
- ökat
- individuellt
- Individuellt
- industrin
- Infrastruktur
- ingång
- insikt
- exempel
- instrumental
- integrerade
- integrering
- interaktioner
- intressant
- Undersökningen
- involverade
- isolering
- problem
- IT
- iteration
- DESS
- sig
- Jobb
- Lediga jobb
- resa
- jpg
- json
- Nyckel
- kunskap
- känd
- Etiketter
- Large
- inlärning
- bibliotek
- Bibliotek
- tycka om
- begränsningar
- kopplade
- laster
- lokalt
- läge
- platser
- Maskinen
- maskininlärning
- större
- GÖR
- Framställning
- hantera
- ledning
- manuellt
- mekanism
- Medlemmar
- nämnts
- metadata
- metod
- metriska
- Metrics
- milstolpe
- miljon
- minimum
- mindre
- ML
- MLOps
- Mode
- modell
- modeller
- måttfullhet
- Modern Konst
- Modulerna
- Moduler
- övervakning
- Monolitisk
- mer
- mest
- multipel
- namn
- Behöver
- Nästa
- anteckningsbok
- numpy
- of
- on
- ONE
- pågående
- öppet
- driva
- Verksamhet
- optimering
- beställa
- organisationer
- ursprungliga
- Övriga
- produktion
- övergripande
- paket
- parametrar
- Yttersta
- del
- passera
- Godkänd
- passerar
- Förbi
- brinner
- bana
- prestanda
- Filosofin
- rörledning
- Plats
- Planen
- plattform
- Plattformar
- plato
- Platon Data Intelligence
- PlatonData
- Spela
- Spelaren
- spelare
- uppsjö
- Punkt
- Inlägg
- potentiell
- drivs
- praxis
- Precision
- föregående
- problem
- process
- processer
- bearbetning
- produktivitet
- projektet
- projekt
- egenskaper
- visat
- beprövade
- förutsatt
- ger
- publicerade
- Drar
- Python
- kvalitet
- SÄLLSYNT
- Raw
- senaste
- rekommenderar
- post
- regex
- registrera
- registrerat
- Registrering
- register
- relaterad
- Förhållanden
- tillförlitlighet
- avlägsnas
- bort
- upprepade
- Rapport
- Obligatorisk
- Krav
- forskning
- ansvarig
- Ansvarsfullt spelande
- startas
- Resultat
- avkastning
- återanvändbar
- återanvända
- Omdömen
- Roll
- Körning
- rinnande
- sagemaker
- SageMaker-rörledningar
- skalbarhet
- Skala
- skalning
- Knappa
- scenarier
- Vetenskap
- Forskare
- skärmdumpar
- skript
- sDK
- sektioner
- säkra
- skicka
- senior
- Känslighet
- Sekvens
- service
- Tjänster
- in
- uppsättningar
- Dela
- delas
- show
- visas
- Visar
- liknande
- Enkelt
- enda
- skicklighet
- Small
- So
- lösning
- Lösningar
- LÖSA
- några
- Källa
- specifik
- Delar upp
- Etapp
- standardisera
- igång
- Starta
- state-of-the-art
- statistik
- Steg
- Steg
- förvaring
- lagra
- lagras
- Strategi
- studio
- sådana
- hållbart
- system
- tar
- grupp
- lag
- Teknisk
- Teknologi
- mall
- tensorflow
- testa
- Testning
- den där
- Smakämnen
- Området
- källan
- deras
- Dem
- därför
- Dessa
- Genom
- tid
- till
- spår
- Tåg
- tränad
- Utbildning
- transformerad
- rättegång
- försök
- SVÄNG
- typer
- förstå
- unikt
- låsa
- us
- användning
- användningsfall
- Användare
- användare
- godkännande
- Värdefulla
- värde
- mängd
- olika
- syn
- ville
- som
- medan
- Hela
- kommer
- med
- inom
- Arbete
- fungerar
- skulle
- Wrapped
- år
- Om er
- Din
- zephyrnet