Dette er et gæsteblogindlæg skrevet sammen med Hussain Jagirdar fra Games24x7.
Spil 24x7 er en af Indiens mest værdifulde multi-spil platforme og underholder over 100 millioner spillere på tværs af forskellige færdighedsspil. Med "Science of Gaming" som deres kernefilosofi har de muliggjort en vision om end-to-end informatik omkring spildynamik, spilplatforme og spillere ved at konsolidere ortogonale forskningsretninger for spil AI, spildatavidenskab og spilbrugerforskning. AI- og datavidenskabsteamet dykker ned i en overflod af multidimensionelle data og kører en række forskellige use cases som optimering af spillerrejser, registrering af spilhandlinger, hyperpersonalisering, kunde 360 og mere på AWS.
Games24x7 anvender en automatiseret, datadrevet, AI-drevet ramme til vurdering af hver spillers adfærd gennem interaktioner på platformen og markerer brugere med unormal adfærd. De har bygget en deep-learning model ScarceGAN, som fokuserer på identifikation af ekstremt sjældne eller knappe prøver fra multidimensionelle longitudinelle telemetridata med små og svage etiketter. Dette værk er udgivet i CIKM'21 og open source til sjælden klasseidentifikation for eventuelle longitudinelle telemetridata. Behovet for produktion og adoption af modellen var altafgørende for at skabe en rygrad bag at muliggøre ansvarligt spil på deres platform, hvor de flagede brugere kan tages gennem en anderledes rejse med mådehold og kontrol.
I dette indlæg deler vi, hvordan Games24x7 forbedrede deres træningspipelines til deres ansvarlige spilplatform ved hjælp af Amazon SageMaker.
Kundens udfordringer
DS/AI-teamet hos Games24x7 brugte flere tjenester leveret af AWS, inklusive SageMaker-notebooks, AWS-trinfunktioner, AWS Lambdaog Amazon EMR, til bygning af rørledninger til forskellige anvendelsessager. For at håndtere driften i datadistribution og derfor genoptræne deres ScarceGAN-model, opdagede de, at det eksisterende system havde brug for en bedre MLOps-løsning.
I den tidligere pipeline gennem Step Functions kørte en enkelt monolit-kodebase dataforbehandling, genoptræning og evaluering. Dette blev en flaskehals i fejlfinding, tilføjelse eller fjernelse af et trin, eller endda i at lave nogle små ændringer i den overordnede infrastruktur. Denne trinfunktion instansierede en klynge af instanser til at udtrække og behandle data fra S3, og de yderligere trin med forbehandling, træning og evaluering ville køre på en enkelt stor EC2-instans. I scenarier, hvor pipelinen fejlede på et hvilket som helst trin, skulle hele workflowet genstartes fra begyndelsen, hvilket resulterede i gentagne kørsler og øgede omkostninger. Alle trænings- og evalueringsmetrikker blev inspiceret manuelt fra Amazon Simple Storage Service (Amazon S3). Der var ingen mekanisme til at videregive og gemme metadataene fra de mange eksperimenter udført på modellen. På grund af den decentraliserede modelovervågning krævede grundig undersøgelse og udvælgelse af den bedste model timer fra datavidenskabsteamet. Akkumulering af alle disse anstrengelser havde resulteret i lavere teamproduktivitet og øget overhead. Derudover var det med et hurtigt voksende team meget udfordrende at dele denne viden på tværs af teamet.
Fordi MLOps-koncepter er meget omfattende, og implementering af alle trinene ville kræve tid, besluttede vi, at vi i første fase ville tage fat på følgende kernespørgsmål:
- Et sikkert, kontrolleret og skabelonbaseret miljø til at genoptræne vores interne dybe læringsmodel ved hjælp af industriens bedste praksis
- Et parametriseret træningsmiljø til at sende et andet sæt parametre for hvert genoptræningsjob og revidere de sidste kørsler
- Evnen til visuelt at spore træningsmålinger og evalueringsmålinger og have metadata til at spore og sammenligne eksperimenter
- Evnen til at skalere hvert trin individuelt og genbruge de foregående trin i tilfælde af trinfejl
- Et enkelt dedikeret miljø til at registrere modeller, lagre funktioner og påberåbe sig inferencing pipelines
- Et moderne værktøjssæt, der kunne minimere beregningskrav, reducere omkostningerne og drive bæredygtig ML-udvikling og -drift ved at inkorporere fleksibiliteten ved at bruge forskellige instanser til forskellige trin
- Oprettelse af en benchmark-skabelon af state-of-the-art MLOps-pipeline, der kan bruges på tværs af forskellige datavidenskabsteams
Games24x7 begyndte at evaluere andre løsninger, bl.a Amazon SageMaker Studio Pipelines. Den allerede eksisterende løsning gennem Step Functions havde begrænsninger. Studio-pipelines havde fleksibiliteten til at tilføje eller fjerne et trin på et hvilket som helst tidspunkt. Også den overordnede arkitektur og deres dataafhængigheder mellem hvert trin kan visualiseres gennem DAG'er. Evalueringen og finjusteringen af genoptræningstrinene blev ret effektiv, efter at vi har adopteret forskellige Amazon SageMaker-funktioner såsom Amazon SageMaker Studio, Pipelines, Processing, Training, modelregistrering og eksperimenter og forsøg. AWS Solution Architecture-teamet viste et stort dybt dyk og var virkelig medvirkende til designet og implementeringen af denne løsning.
Løsningsoversigt
Følgende diagram illustrerer løsningsarkitekturen.
Løsningen bruger en SageMaker Studio miljø til at afvikle genoptræningseksperimenterne. Koden til at fremkalde pipeline-scriptet er tilgængelig i Studio-notesbøgerne, og vi kan ændre hyperparametrene og input/output, når vi kalder pipelinen. Dette er helt anderledes end vores tidligere metode, hvor vi havde alle parametrene hårdkodet i scripts, og alle processer var uløseligt forbundet. Dette krævede modularisering af den monolitiske kode i forskellige trin.
Følgende diagram illustrerer vores oprindelige monolitiske proces.
Modularisering
For at skalere, spore og køre hvert trin individuelt, skulle den monolitiske kode modulariseres. Parametre, data og kodeafhængigheder mellem hvert trin blev fjernet, og delte moduler for de delte komponenter på tværs af trinene blev oprettet. En illustration af modulariseringen er vist nedenfor:-
For hvert enkelt modul blev test udført lokalt ved hjælp af SageMaker SDK'er Script-tilstand til træning, bearbejdning og evaluering, som krævede mindre ændringer i koden til at køre med SageMaker. Det lokal tilstandstest til dyb læring kan scripts udføres enten på SageMaker-notebooks, hvis de allerede er i brug, eller ved at bruge Lokal tilstand ved hjælp af SageMaker Pipelines i tilfælde af direkte start med Pipelines. Dette hjælper med at validere, om vores tilpassede scripts vil køre på SageMaker-instanser.
Hvert modul blev derefter testet isoleret ved hjælp af SageMaker Training/processing SDK'er Script-tilstand og kørte dem i en sekvens manuelt ved hjælp af SageMaker-forekomsterne for hvert trin som nedenfor træningstrin:
Amazon S3 blev brugt til at få kildedataene til at behandle og derefter gemme de mellemliggende data, datarammer og NumPy-resultater tilbage til Amazon S3 til næste trin. Efter integrationstestningen mellem individuelle moduler til forbehandling, træning, evaluering var afsluttet SageMaker Pipeline SDK'er som er integreret med SageMaker Python SDK'erne, som vi allerede brugte i ovenstående trin, gjorde det muligt for os at kæde alle disse moduler programmatisk ved at overføre inputparametrene, data, metadata og output fra hvert trin som input til de næste trin.
Vi kunne genbruge den tidligere Sagemaker Python SDK-kode til at køre modulerne individuelt ind i Sagemaker Pipeline SDK-baserede kørsler. Relationerne mellem hvert trin i pipelinen bestemmes af dataafhængighederne mellem trinene.
De sidste trin i rørledningen er som følger:
- Dataforarbejdning
- Omskoling
- Evaluering
- Modelregistrering
I de følgende afsnit diskuterer vi hvert af trinene mere detaljeret, når de køres med SageMaker Pipeline SDK'er.
Dataforarbejdning
Dette trin transformerer de rå inputdata og forprocesser og opdeles i tog-, validerings- og testsæt. Til dette bearbejdningstrin instantierede vi et SageMaker-behandlingsjob med TensorFlow Framework Processor, som tager vores script, kopierer dataene fra Amazon S3 og trækker derefter et Docker-billede leveret og vedligeholdt af SageMaker. Denne Docker-container tillod os at videregive vores biblioteksafhængigheder i requirements.txt-filen, mens alle TensorFlow-bibliotekerne allerede var inkluderet, og videregive stien til source_dir til scriptet. Tog- og valideringsdataene går til træningstrinnet, og testdataene videresendes til evalueringstrinnet. Den bedste del ved at bruge denne beholder var, at den gav os mulighed for at videregive en række input og output som forskellige S3-lokationer, som derefter kunne overføres som en trinafhængighed til de næste trin i SageMaker-pipelinen.
Omskoling
Vi pakkede træningsmodulet igennem SageMaker Pipelines TrainingStep API og brugte allerede tilgængelige deep learning containerbilleder gennem TensorFlow Framework estimator (også kendt som Script-tilstand) til SageMaker uddannelse. Script-tilstand tillod os at have minimale ændringer i vores træningskode, og den forudbyggede SageMaker Docker-container håndterer Python-, Framework-versionerne og så videre. Behandlingsoutput fra Data_Preprocessing
trin blev videresendt som TrainingInput for dette trin.
Alle hyperparametrene blev sendt gennem estimatoren gennem en JSON-fil. For hver epoke i vores træning sendte vi allerede vores træningsmålinger gennem stdOut i scriptet. Fordi vi ønskede at spore metrikken for et igangværende træningsjob og sammenligne dem med tidligere træningsjob, var vi bare nødt til at parse denne StdOut ved at definere metriske definitioner gennem regex for at hente metrikken fra StdOut for hver epoke.
Det var interessant at forstå, at SageMaker Pipelines automatisk integreres med SageMaker Experiments API, som som standard opretter en eksperiment-, prøve- og prøvekomponent for hver kørsel. Dette giver os mulighed for at sammenligne træningsmålinger som nøjagtighed og præcision på tværs af flere løb som vist nedenfor.
For hvert træningsjob genererer vi fire forskellige modeller til Amazon S3 baseret på vores tilpassede forretningsdefinition.
Evaluering
Dette trin indlæser de trænede modeller fra Amazon S3 og evaluerer på vores tilpassede metrics. Dette ProcessingStep tager modellen og testdataene som input og dumper rapporterne om modellens ydeevne på Amazon S3.
Vi bruger brugerdefinerede metrics, så for at kunne registrere disse brugerdefinerede metrics til modelregistret, var vi nødt til at konvertere skemaet for de evalueringsmetrikker, der er gemt i Amazon S3 som CSV til SageMaker Model kvalitet JSON output. Så kan vi registrere placeringen af denne evaluering JSON-metrics til modelregistret.
Følgende skærmbilleder viser et eksempel på, hvordan vi konverterede et CSV-format til Sagemaker Model-kvalitet JSON-format.
Modelregistrering
Som tidligere nævnt oprettede vi flere modeller i et enkelt træningstrin, så vi var nødt til at bruge en SageMaker Pipelines Lambda-integration til at registrere alle fire modeller i et modelregister. Til en enkelt modelregistrering kan vi bruge ModelStep API til at skabe en SageMaker-model i registreringsdatabasen. For hver model henter Lambda-funktionen modelartefaktet og evalueringsmetrikken fra Amazon S3 og opretter en modelpakke til et specifikt ARN, så alle fire modeller kan registreres i et enkelt modelregister. SageMaker Python API'erne gav os også mulighed for at sende brugerdefinerede metadata, som vi ønskede at videregive for at vælge de bedste modeller. Dette viste sig at være en vigtig milepæl for produktiviteten, fordi alle modellerne nu kan sammenlignes og revideres fra et enkelt vindue. Vi leverede metadata til unikt at skelne modellen fra hinanden. Dette hjalp også med at godkende en enkelt model ved hjælp af peer-reviews og ledelsesanmeldelser baseret på modelmetrics.
Ovenstående kodeblok viser et eksempel på, hvordan vi tilføjede metadata gennem modelpakkeinput til modelregistret sammen med modelmetrikkene.
Skærmbilledet nedenfor viser, hvor nemt vi kan sammenligne metrics for forskellige modelversioner, når de er registreret.
Pipeline invocation
Rørledningen kan påkaldes igennem EventBridge , Sagemaker Studio eller SDK sig selv. Invokationen kører jobs baseret på dataafhængighederne mellem trinene.
Konklusion
I dette indlæg demonstrerede vi, hvordan Games24x7 transformerede deres MLOps-aktiver gennem SageMaker-pipelines. Evnen til visuelt at spore træningsmetrikker og evalueringsmetrikker med parameteriseret miljø, skalering af trinene individuelt med den rigtige behandlingsplatform og et centralt modelregister viste sig at være en vigtig milepæl i standardisering og fremskridt til en auditerbar, genanvendelig, effektiv og forklarelig arbejdsgang . Dette projekt er en plan på tværs af forskellige datavidenskabsteams og har øget den samlede produktivitet ved at give medlemmerne mulighed for at drive, administrere og samarbejde med bedste praksis.
Hvis du har en lignende use case og ønsker at komme i gang, så vil vi anbefale at gå igennem SageMaker Script-tilstand og SageMaker ende til ende eksempler ved hjælp af Sagemaker Studio. Disse eksempler har de tekniske detaljer, som er blevet dækket i denne blog.
En moderne datastrategi giver dig en omfattende plan for at administrere, få adgang til, analysere og handle på data. AWS leverer det mest komplette sæt af tjenester til hele end-to-end datarejsen for alle arbejdsbelastninger, alle typer data og alle ønskede forretningsresultater. Til gengæld gør dette AWS til det bedste sted at låse op for værdi fra dine data og omdanne dem til indsigt.
Om forfatterne
Hussain Jagirdar er seniorforsker – anvendt forskning hos Games24x7. Han er i øjeblikket involveret i forskningsindsats inden for området forklarlig AI og deep learning. Hans seneste arbejde har involveret dyb generativ modellering, tidsseriemodellering og relaterede underområder inden for maskinlæring og kunstig intelligens. Han brænder også for MLOps og standardisering af projekter, der kræver begrænsninger som skalerbarhed, pålidelighed og følsomhed.
Sumir Kumar er Solutions Architect hos AWS og har over 13 års erfaring i teknologiindustrien. Hos AWS arbejder han tæt sammen med vigtige AWS-kunder for at designe og implementere cloudbaserede løsninger, der løser komplekse forretningsproblemer. Han er meget passioneret omkring dataanalyse og maskinlæring og har en dokumenteret track record i at hjælpe organisationer med at låse op for deres datas fulde potentiale ved hjælp af AWS Cloud.
- SEO Powered Content & PR Distribution. Bliv forstærket i dag.
- Platoblokkæde. Web3 Metaverse Intelligence. Viden forstærket. Adgang her.
- Udmøntning af fremtiden med Adryenn Ashley. Adgang her.
- Kilde: https://aws.amazon.com/blogs/machine-learning/how-games24x7-transformed-their-retraining-mlops-pipelines-with-amazon-sagemaker/
- :er
- 1
- 10
- 100
- 11
- 7
- a
- evne
- Om
- over
- adgang
- akkumulering
- nøjagtighed
- ACM
- tværs
- Lov
- Handling
- tilføjet
- Yderligere
- Derudover
- adresse
- vedtaget
- Vedtagelse
- Efter
- AI
- Alle
- tillade
- tillader
- allerede
- Amazon
- Amazon SageMaker
- Amazon SageMaker Studio
- analytics
- analysere
- ,
- api
- anvendt
- arkitektur
- ER
- OMRÅDE
- omkring
- AS
- vurdering
- Aktiver
- At
- revision
- kan revideres
- revideres
- Automatiseret
- automatisk
- til rådighed
- AWS
- tilbage
- Backbone
- baseret
- BE
- fordi
- Begyndelse
- bag
- være
- jf. nedenstående
- benchmark
- BEDSTE
- bedste praksis
- Bedre
- mellem
- Bloker
- Blog
- Bygning
- bygget
- virksomhed
- by
- CAN
- tilfælde
- tilfælde
- central
- kæde
- udfordrende
- lave om
- Ændringer
- klasse
- nøje
- Cloud
- Cluster
- kode
- codebase
- samarbejde
- sammenligne
- sammenlignet
- fuldføre
- komplekse
- komponent
- komponenter
- omfattende
- Compute
- begreber
- konsolidere
- begrænsninger
- Container
- Beholdere
- kontrol
- kontrolleret
- konvertere
- konverteret
- Core
- Koste
- Omkostninger
- kunne
- dækket
- skabe
- oprettet
- skaber
- Oprettelse af
- For øjeblikket
- skik
- kunde
- Kunder
- data
- Dataanalyse
- datalogi
- datastrategi
- datastyret
- decentral
- besluttede
- dedikeret
- dyb
- dyb dykke
- dyb læring
- Standard
- definere
- Efterspørgsel
- demonstreret
- Afhængighed
- Design
- ønskes
- detail
- detaljer
- Detektion
- bestemmes
- Udvikling
- forskellige
- direkte
- opdaget
- diskutere
- skelne
- fordeling
- Docker
- ned
- køre
- dynamik
- hver
- tidligere
- nemt
- effektiv
- indsats
- enten
- beskæftiger
- aktiveret
- muliggør
- ende til ende
- Hele
- Miljø
- epoke
- evaluere
- evaluering
- Endog
- Hver
- eksempel
- eksempler
- udførelse
- eksisterende
- eksisterende system
- erfaring
- eksperiment
- omfattende
- ekstrakt
- ekstremt
- mislykkedes
- Funktionalitet
- File (Felt)
- endelige
- Fornavn
- Markeret
- flag
- Fleksibilitet
- fokuserer
- efter
- følger
- Til
- format
- Framework
- fra
- fuld
- funktion
- funktionaliteter
- funktioner
- yderligere
- spil
- Gamers
- Spil
- spil
- spilplatform
- generere
- generative
- få
- giver
- Go
- Goes
- stor
- Gæst
- håndtere
- Håndterer
- Hård Ost
- Have
- have
- hjælpe
- hjulpet
- hjælpe
- hjælper
- HOURS
- Hvordan
- HTML
- HTTPS
- Identifikation
- billede
- billeder
- gennemføre
- implementering
- gennemføre
- importere
- forbedret
- in
- medtaget
- Herunder
- inkorporering
- øget
- individuel
- Individuelt
- industrien
- Infrastruktur
- indgang
- indsigt
- instans
- medvirkende
- integreret
- integration
- interaktioner
- interessant
- undersøgelse
- involverede
- isolation
- spørgsmål
- IT
- iteration
- ITS
- selv
- Job
- Karriere
- rejse
- jpg
- json
- Nøgle
- viden
- kendt
- Etiketter
- stor
- læring
- biblioteker
- Bibliotek
- ligesom
- begrænsninger
- forbundet
- belastninger
- lokalt
- placering
- placeringer
- maskine
- machine learning
- større
- maerker
- Making
- administrere
- ledelse
- manuelt
- mekanisme
- Medlemmer
- nævnte
- Metadata
- metode
- metrisk
- Metrics
- milepæl
- million
- mindste
- mindre
- ML
- MLOps
- tilstand
- model
- modeller
- mådehold
- Moderne
- Moduler
- Moduler
- overvågning
- Monolithic
- mere
- mest
- flere
- navn
- Behov
- næste
- notesbog
- bedøvet
- of
- on
- ONE
- igangværende
- åbent
- betjene
- Produktion
- optimering
- ordrer
- organisationer
- original
- Andet
- output
- samlet
- pakke
- parametre
- Paramount
- del
- passerer
- Bestået
- gennemløb
- Passing
- lidenskabelige
- sti
- ydeevne
- filosofi
- pipeline
- Place
- fly
- perron
- Platforme
- plato
- Platon Data Intelligence
- PlatoData
- Leg
- spiller
- spillere
- overflod
- Punkt
- Indlæg
- potentiale
- strøm
- praksis
- Precision
- tidligere
- problemer
- behandle
- Processer
- forarbejdning
- produktivitet
- projekt
- projekter
- egenskaber
- bevist
- gennemprøvet
- forudsat
- giver
- offentliggjort
- Sweatre & trøjer
- Python
- kvalitet
- SJÆLDEN
- Raw
- nylige
- anbefaler
- optage
- regulært udtryk
- register
- registreret
- Registrering
- register
- relaterede
- Relationer
- pålidelighed
- fjernet
- fjernelse
- gentaget
- Rapporter
- påkrævet
- Krav
- forskning
- ansvarlige
- Ansvarligt spil
- genstartes
- Resultater
- afkast
- genanvendelige
- genbruge
- Anmeldelser
- roller
- Kør
- kører
- sagemaker
- SageMaker Pipelines
- Skalerbarhed
- Scale
- skalering
- Knappe
- scenarier
- Videnskab
- Videnskabsmand
- screenshots
- scripts
- SDK
- sektioner
- sikker
- afsendelse
- senior
- Følsomhed
- Sequence
- tjeneste
- Tjenester
- sæt
- sæt
- Del
- delt
- Vis
- vist
- Shows
- lignende
- Simpelt
- enkelt
- dygtighed
- lille
- So
- løsninger
- Løsninger
- SOLVE
- nogle
- Kilde
- specifikke
- splits
- Stage
- standardisering
- påbegyndt
- Starter
- state-of-the-art
- statistik
- Trin
- Steps
- opbevaring
- butik
- opbevaret
- Strategi
- Studio
- sådan
- bæredygtig
- systemet
- tager
- hold
- hold
- Teknisk
- Teknologier
- skabelon
- tensorflow
- prøve
- Test
- at
- Området
- The Source
- deres
- Them
- derfor
- Disse
- Gennem
- tid
- til
- spor
- Tog
- uddannet
- Kurser
- omdannet
- retssag
- forsøg
- TUR
- typer
- forstå
- entydigt
- låse
- us
- brug
- brug tilfælde
- Bruger
- brugere
- validering
- Værdifuld
- værdi
- række
- forskellige
- vision
- ønskede
- som
- mens
- Hele
- vilje
- med
- inden for
- Arbejde
- virker
- ville
- Indpakket
- år
- Du
- Din
- zephyrnet