Ceci est un article de blog invité co-écrit avec Hussain Jagirdar de Games24x7.
Jeux24x7 est l'une des plates-formes multi-jeux les plus précieuses de l'Inde et divertit plus de 100 millions de joueurs à travers divers jeux d'adresse. Avec la « science du jeu » comme philosophie de base, ils ont permis une vision de l'informatique de bout en bout autour de la dynamique du jeu, des plates-formes de jeu et des joueurs en consolidant les directions de recherche orthogonales de l'IA du jeu, de la science des données du jeu et de la recherche sur les utilisateurs du jeu. L'équipe d'intelligence artificielle et de science des données plonge dans une pléthore de données multidimensionnelles et exécute une variété de cas d'utilisation tels que l'optimisation du parcours du joueur, la détection d'action de jeu, l'hyper-personnalisation, le client 360, et plus encore sur AWS.
Games24x7 utilise un cadre automatisé, basé sur les données et alimenté par l'IA pour l'évaluation du comportement de chaque joueur par le biais d'interactions sur la plate-forme et signale les utilisateurs ayant un comportement anormal. Ils ont construit un modèle d'apprentissage en profondeur ScarceGAN, qui se concentre sur l'identification d'échantillons extrêmement rares ou rares à partir de données de télémétrie longitudinales multidimensionnelles avec des étiquettes petites et faibles. Ce travail a été publié dans CIKM'21 Les modèles sont aussi open source pour l'identification de classe rare pour toutes les données de télémétrie longitudinale. Le besoin de production et d'adoption du modèle était primordial pour créer une colonne vertébrale permettant un jeu responsable sur leur plate-forme, où les utilisateurs signalés peuvent être guidés à travers un parcours différent de modération et de contrôle.
Dans cet article, nous partageons comment Games24x7 a amélioré ses pipelines de formation pour sa plateforme de jeu responsable en utilisant Amazon Sage Maker.
Défis clients
L'équipe DS/AI de Games24x7 a utilisé plusieurs services fournis par AWS, notamment les blocs-notes SageMaker, Fonctions d'étape AWS, AWS Lambdaet une Amazon DME, pour la construction de pipelines pour divers cas d'utilisation. Pour gérer la dérive de la distribution des données, et donc pour recycler leur modèle ScarceGAN, ils ont découvert que le système existant avait besoin d'une meilleure solution MLOps.
Dans le pipeline précédent via Step Functions, une seule base de code monolithique exécutait le prétraitement, le recyclage et l'évaluation des données. Cela est devenu un goulot d'étranglement dans le dépannage, l'ajout ou la suppression d'une étape, ou même dans la réalisation de quelques modifications mineures dans l'infrastructure globale. Cette fonction étape a instancié un cluster d'instances pour extraire et traiter les données de S3 et les étapes supplémentaires de prétraitement, de formation et d'évaluation s'exécuteraient sur une seule grande instance EC2. Dans les scénarios où le pipeline échouait à n'importe quelle étape, l'ensemble du flux de travail devait être redémarré depuis le début, ce qui entraînait des exécutions répétées et une augmentation des coûts. Toutes les mesures de formation et d'évaluation ont été inspectées manuellement à partir d'Amazon Simple Storage Service (Amazon S3). Il n'y avait aucun mécanisme pour transmettre et stocker les métadonnées des multiples expériences effectuées sur le modèle. En raison de la surveillance décentralisée du modèle, une enquête approfondie et la sélection du meilleur modèle ont nécessité des heures de la part de l'équipe de science des données. L'accumulation de tous ces efforts avait entraîné une baisse de la productivité de l'équipe et une augmentation des frais généraux. De plus, avec une équipe en croissance rapide, il était très difficile de partager ces connaissances au sein de l'équipe.
Étant donné que les concepts MLOps sont très étendus et que la mise en œuvre de toutes les étapes prendrait du temps, nous avons décidé que dans la première étape, nous aborderions les problèmes fondamentaux suivants :
- Un environnement sécurisé, contrôlé et modélisé pour recycler notre modèle d'apprentissage en profondeur interne en utilisant les meilleures pratiques de l'industrie
- Un environnement de formation paramétré pour envoyer un ensemble de paramètres différent pour chaque tâche de recyclage et auditer les dernières exécutions
- La possibilité de suivre visuellement les métriques de formation et les métriques d'évaluation, et de disposer de métadonnées pour suivre et comparer les expériences
- La possibilité de mettre à l'échelle chaque étape individuellement et de réutiliser les étapes précédentes en cas d'échec d'étape
- Un seul environnement dédié pour enregistrer des modèles, stocker des fonctionnalités et invoquer des pipelines d'inférence
- Un ensemble d'outils modernes qui pourraient minimiser les exigences de calcul, réduire les coûts et favoriser le développement et les opérations ML durables en incorporant la flexibilité d'utiliser différentes instances pour différentes étapes
- Créer un modèle de référence de pipeline MLOps à la pointe de la technologie pouvant être utilisé par diverses équipes de science des données
Games24x7 a commencé à évaluer d'autres solutions, notamment Pipelines d'Amazon SageMaker Studio. La solution déjà existante via Step Functions avait des limites. Les pipelines Studio avaient la possibilité d'ajouter ou de supprimer une étape à tout moment. En outre, l'architecture globale et leurs dépendances de données entre chaque étape peuvent être visualisées via des DAG. L'évaluation et l'ajustement des étapes de recyclage sont devenus assez efficaces après l'adoption de différentes fonctionnalités d'Amazon SageMaker telles que Amazon SageMaker Studio, les pipelines, le traitement, la formation, le registre de modèles et les expériences et essais. L'équipe AWS Solution Architecture a fait preuve d'une grande profondeur et a vraiment joué un rôle déterminant dans la conception et la mise en œuvre de cette solution.
Vue d'ensemble de la solution
Le diagramme suivant illustre l'architecture de la solution.
La solution utilise un Studio SageMaker environnement pour exécuter les expériences de recyclage. Le code pour invoquer le script de pipeline est disponible dans les notebooks Studio, et nous pouvons modifier les hyperparamètres et l'entrée/sortie lors de l'appel du pipeline. Ceci est assez différent de notre méthode précédente où nous avions tous les paramètres codés en dur dans les scripts et tous les processus étaient inextricablement liés. Cela a nécessité la modularisation du code monolithique en différentes étapes.
Le schéma suivant illustre notre procédé monolithique original.
La modularisation
Afin de mettre à l'échelle, de suivre et d'exécuter chaque étape individuellement, le code monolithique devait être modularisé. Les paramètres, les données et les dépendances de code entre chaque étape ont été supprimés et des modules partagés pour les composants partagés à travers les étapes ont été créés. Une illustration de la modularisation est présentée ci-dessous : -
Pour chaque module, les tests ont été effectués localement à l'aide du SDK SageMaker Mode script pour la formation, le traitement et l'évaluation qui modifications mineures requises dans le code à exécuter avec SageMaker. Le test en mode local pour les scripts d'apprentissage en profondeur peuvent être effectués soit sur des blocs-notes SageMaker s'ils sont déjà utilisés, soit en utilisant Mode local à l'aide des pipelines SageMaker en cas de démarrage direct avec Pipelines. Cela aide à valider si nos scripts personnalisés s'exécuteront sur les instances SageMaker.
Chaque module a ensuite été testé de manière isolée à l'aide des SDK de formation/traitement SageMaker à l'aide de Mode script et les a exécutés manuellement dans une séquence en utilisant les instances SageMaker pour chaque étape comme ci-dessous l'étape de formation :
Amazon S3 a été utilisé pour traiter les données source, puis stocker les données intermédiaires, les trames de données et les résultats NumPy dans Amazon S3 pour l'étape suivante. Une fois les tests d'intégration entre les modules individuels pour le prétraitement, la formation et l'évaluation terminés, le SDK SageMaker Pipeline qui est intégré aux SDK SageMaker Python que nous avons déjà utilisés dans les étapes ci-dessus, nous a permis d'enchaîner tous ces modules par programmation en transmettant les paramètres d'entrée, les données, les métadonnées et la sortie de chaque étape comme entrée aux étapes suivantes.
Nous pourrions réutiliser le code Sagemaker Python SDK précédent pour exécuter les modules individuellement dans des exécutions basées sur Sagemaker Pipeline SDK. Les relations entre chaque étape du pipeline sont déterminées par les dépendances de données entre les étapes.
Les dernières étapes du pipeline sont les suivantes :
- Pré-traitement des données
- Reconversion
- Evaluation
- Enregistrement du modèle
Dans les sections suivantes, nous abordons chacune des étapes plus en détail lorsqu'elles sont exécutées avec les SDK SageMaker Pipeline.
Pré-traitement des données
Cette étape transforme les données d'entrée brutes et les prétraite et les divise en ensembles d'entraînement, de validation et de test. Pour cette étape de traitement, nous avons instancié une tâche de traitement SageMaker avec Processeur d'infrastructure TensorFlow, qui prend notre script, copie les données d'Amazon S3, puis extrait une image Docker fournie et gérée par SageMaker. Ce conteneur Docker nous a permis de transmettre nos dépendances de bibliothèque dans le fichier requirements.txt tout en ayant toutes les bibliothèques TensorFlow déjà incluses, et de transmettre le chemin de source_dir pour le script. Les données d'apprentissage et de validation sont transmises à l'étape d'apprentissage et les données de test sont transmises à l'étape d'évaluation. La meilleure partie de l'utilisation de ce conteneur était qu'il nous permettait de transmettre une variété d'entrées et de sorties en tant que différents emplacements S3, qui pourraient ensuite être transmises en tant que dépendance d'étape aux étapes suivantes du pipeline SageMaker.
Reconversion
Nous avons terminé le module de formation par le Pipelines SageMaker API TrainingStep et utilisé des images de conteneur d'apprentissage en profondeur déjà disponibles via l'estimateur TensorFlow Framework (également connu sous le nom de mode Script) pour Formation SageMaker. Le mode script nous a permis d'avoir des changements minimes dans notre code de formation, et le conteneur Docker pré-construit SageMaker gère les versions Python, Framework, etc. Les sorties de traitement du Data_Preprocessing
étape ont été transmises en tant que TrainingInput de cette étape.
Tous les hyperparamètres ont été transmis à l'estimateur via un fichier JSON. Pour chaque époque de notre formation, nous envoyions déjà nos métriques de formation via stdOut dans le script. Parce que nous voulions suivre les métriques d'un travail de formation en cours et les comparer avec les travaux de formation précédents, nous n'avions qu'à analyser ce StdOut en définissant les définitions de métriques via regex pour récupérer les métriques de StdOut pour chaque époque.
Il était intéressant de comprendre que SageMaker Pipelines automatiquement s'intègre à l'API SageMaker Experiments, qui crée par défaut une expérience, un essai et un composant d'essai pour chaque exécution. Cela nous permet de comparer les métriques d'entraînement telles que l'exactitude et la précision sur plusieurs exécutions, comme indiqué ci-dessous.
Pour chaque exécution de tâche de formation, nous générons quatre modèles différents pour Amazon S3 en fonction de notre définition d'entreprise personnalisée.
Evaluation
Cette étape charge les modèles formés à partir d'Amazon S3 et les évalue sur nos métriques personnalisées. Cette étape de traitement prend le modèle et les données de test en entrée et vide les rapports des performances du modèle sur Amazon S3.
Nous utilisons des métriques personnalisées, donc pour enregistrer ces métriques personnalisées dans le registre de modèles, nous devions convertir le schéma des métriques d'évaluation stockées dans Amazon S3 en tant que CSV vers le Qualité du modèle SageMaker Sortie JSON. Ensuite, nous pouvons enregistrer l'emplacement de cette métrique JSON d'évaluation dans le registre de modèles.
Les captures d'écran suivantes montrent un exemple de la façon dont nous avons converti un CSV au format JSON de qualité Sagemaker Model.
Enregistrement du modèle
Comme mentionné précédemment, nous créions plusieurs modèles en une seule étape de formation, nous avons donc dû utiliser une intégration SageMaker Pipelines Lambda pour enregistrer les quatre modèles dans un registre de modèles. Pour un enregistrement de modèle unique, nous pouvons utiliser le ModèleÉtape API pour créer un modèle SageMaker dans le registre. Pour chaque modèle, la fonction Lambda récupère l'artefact de modèle et la métrique d'évaluation d'Amazon S3 et crée un package de modèle pour un ARN spécifique, afin que les quatre modèles puissent être enregistrés dans un seul registre de modèles. Les API Python de SageMaker nous a également permis d'envoyer des métadonnées personnalisées que nous voulions transmettre pour sélectionner les meilleurs modèles. Cela s'est avéré être une étape majeure pour la productivité car tous les modèles peuvent désormais être comparés et audités à partir d'un guichet unique. Nous avons fourni des métadonnées pour distinguer de manière unique les modèles les uns des autres. Cela a également aidé à approuver un modèle unique à l'aide d'examens par les pairs et d'examens de gestion basés sur les métriques du modèle.
Le bloc de code ci-dessus montre un exemple de la façon dont nous avons ajouté des métadonnées via l'entrée de package de modèle au registre de modèle avec les métriques de modèle.
La capture d'écran ci-dessous montre avec quelle facilité nous pouvons comparer les métriques de différentes versions de modèles une fois qu'elles sont enregistrées.
Appel de pipeline
Le pipeline peut être appelé via Pont d'événement , Sagemaker Studio ou le SDK lui-même. L'appel exécute les travaux en fonction des dépendances de données entre les étapes.
Conclusion
Dans cet article, nous avons démontré comment Games24x7 a transformé ses actifs MLOps via les pipelines SageMaker. La possibilité de suivre visuellement les métriques de formation et les métriques d'évaluation, avec un environnement paramétré, la mise à l'échelle des étapes individuellement avec la bonne plate-forme de traitement et un registre de modèles central s'est avérée être une étape majeure dans la normalisation et la progression vers un flux de travail vérifiable, réutilisable, efficace et explicable. . Ce projet est un plan directeur pour différentes équipes de science des données et a augmenté la productivité globale en permettant aux membres d'exploiter, de gérer et de collaborer avec les meilleures pratiques.
Si vous avez un cas d'utilisation similaire et que vous souhaitez commencer, nous vous recommandons de passer par SageMaker Mode script et par Exemples de bout en bout SageMaker à l'aide de Sagemaker Studio. Ces exemples ont les détails techniques qui ont été couverts dans ce blog.
Une stratégie de données moderne vous offre un plan complet pour gérer, accéder, analyser et agir sur les données. AWS fournit l'ensemble de services le plus complet pour l'ensemble du parcours de données de bout en bout pour toutes les charges de travail, tous les types de données et tous les résultats commerciaux souhaités. À son tour, cela fait d'AWS le meilleur endroit pour débloquer la valeur de vos données et la transformer en informations.
À propos des auteurs
Hussein Jagirdar est scientifique principal - Recherche appliquée chez Games24x7. Il est actuellement impliqué dans des efforts de recherche dans le domaine de l'IA explicable et de l'apprentissage en profondeur. Ses travaux récents ont impliqué la modélisation générative profonde, la modélisation de séries chronologiques et les sous-domaines connexes de l'apprentissage automatique et de l'IA. Il est également passionné par les MLOps et la standardisation des projets qui exigent des contraintes telles que l'évolutivité, la fiabilité et la sensibilité.
Sumir Kumar est un architecte de solutions chez AWS et a plus de 13 ans d'expérience dans l'industrie technologique. Chez AWS, il travaille en étroite collaboration avec les principaux clients d'AWS pour concevoir et mettre en œuvre des solutions basées sur le cloud qui résolvent des problèmes commerciaux complexes. Il est très passionné par l'analyse de données et l'apprentissage automatique et a fait ses preuves en aidant les organisations à libérer le plein potentiel de leurs données à l'aide d'AWS Cloud.
- Contenu propulsé par le référencement et distribution de relations publiques. Soyez amplifié aujourd'hui.
- Platoblockchain. Intelligence métaverse Web3. Connaissance Amplifiée. Accéder ici.
- Frapper l'avenir avec Adryenn Ashley. Accéder ici.
- La source: https://aws.amazon.com/blogs/machine-learning/how-games24x7-transformed-their-retraining-mlops-pipelines-with-amazon-sagemaker/
- :est
- 1
- 10
- 100
- 11
- 7
- a
- capacité
- A Propos
- au dessus de
- accès
- accumulation
- précision
- ACM
- à travers
- Agis
- Action
- ajoutée
- Supplémentaire
- En outre
- propos
- adopté
- Adoption
- Après
- AI
- Tous
- Permettre
- permet
- déjà
- Amazon
- Amazon Sage Maker
- Amazon SageMakerStudio
- analytique
- il analyse
- ainsi que le
- api
- appliqué
- architecture
- SONT
- Réservé
- autour
- AS
- Évaluation de risque climatique
- Outils
- At
- audit
- vérifiable
- vérifié
- Automatisation
- automatiquement
- disponibles
- AWS
- RETOUR
- Colonne vertébrale
- basé
- BE
- car
- Début
- derrière
- va
- ci-dessous
- référence
- LES MEILLEURS
- les meilleures pratiques
- Améliorée
- jusqu'à XNUMX fois
- Block
- Blog
- Développement
- construit
- la performance des entreprises
- by
- CAN
- maisons
- cas
- central
- chaîne
- difficile
- Change
- Modifications
- classe
- étroitement
- le cloud
- Grappe
- code
- Base de code
- collaborons
- comparer
- par rapport
- complet
- complexe
- composant
- composants électriques
- complet
- calcul
- concepts
- la consolidation
- contraintes
- Contenant
- Conteneurs
- des bactéries
- contrôlée
- convertir
- converti
- Core
- Prix
- Costs
- pourriez
- couvert
- engendrent
- créée
- crée des
- La création
- Lecture
- Customiser
- des clients
- Clients
- données
- Analyse de Donnée
- science des données
- stratégie de données
- data-driven
- Décentralisé
- décidé
- dévoué
- profond
- plongée profonde
- l'apprentissage en profondeur
- Réglage par défaut
- définir
- Demande
- démontré
- Dépendance
- Conception
- voulu
- détail
- détails
- Détection
- déterminé
- Développement
- différent
- directement
- découvert
- discuter
- distinguer
- distribution
- Docker
- down
- motivation
- dynamique
- chacun
- Plus tôt
- même
- efficace
- efforts
- non plus
- emploie
- activé
- permettant
- end-to-end
- Tout
- Environment
- époque
- évaluer
- évaluation
- Pourtant, la
- Chaque
- exemple
- exemples
- exécution
- existant
- système existant
- d'experience
- expérience
- les
- extrait
- extrêmement
- Échoué
- Fonctionnalités:
- Déposez votre dernière attestation
- finale
- Prénom
- marqué
- drapeaux
- Flexibilité
- se concentre
- Abonnement
- suit
- Pour
- le format
- Framework
- De
- plein
- fonction
- fonctionnalités
- fonctions
- plus
- jeu
- Gamers
- Games
- jeux
- Plateforme de jeu
- générer
- génératif
- obtenez
- donne
- Go
- Goes
- l'
- GUEST
- manipuler
- Poignées
- Dur
- Vous avez
- ayant
- vous aider
- a aidé
- aider
- aide
- HEURES
- Comment
- HTML
- HTTPS
- Identification
- image
- satellite
- Mettre en oeuvre
- la mise en oeuvre
- la mise en œuvre
- importer
- amélioré
- in
- inclus
- Y compris
- incorporation
- increased
- individuel
- Individuellement
- industrie
- Infrastructure
- contribution
- perspicacité
- instance
- instrumental
- des services
- l'intégration
- interactions
- intéressant
- enquête
- impliqué
- seul
- vous aider à faire face aux problèmes qui vous perturbent
- IT
- itération
- SES
- lui-même
- Emploi
- Emplois
- chemin
- jpg
- json
- ACTIVITES
- spécialisées
- connu
- Etiquettes
- gros
- apprentissage
- bibliothèques
- Bibliothèque
- comme
- limites
- lié
- charges
- localement
- emplacement
- emplacements
- click
- machine learning
- majeur
- FAIT DU
- Fabrication
- gérer
- gestion
- manuellement
- mécanisme
- Membres
- mentionné
- Métadonnées
- méthode
- métrique
- Métrique
- étape importante
- million
- minimal
- mineur
- ML
- MLOps
- Mode
- modèle
- numériques jumeaux (digital twin models)
- modération
- Villas Modernes
- Module
- Modules
- Stack monitoring
- Monolithique
- PLUS
- (en fait, presque toutes)
- plusieurs
- prénom
- Besoin
- next
- cahier
- numpy
- of
- on
- ONE
- en cours
- ouvert
- fonctionner
- Opérations
- à mettre en œuvre pour gérer une entreprise rentable. Ce guide est basé sur trois décennies d'expérience
- de commander
- organisations
- original
- Autre
- sortie
- global
- paquet
- paramètres
- PARAMOUNT
- partie
- pass
- passé
- passes
- En passant
- passionné
- chemin
- performant
- philosophie
- pipeline
- Place
- plan
- plateforme
- Plateformes
- Platon
- Intelligence des données Platon
- PlatonDonnées
- Jouez
- joueur
- joueurs
- pléthore
- Point
- Post
- défaillances
- alimenté
- pratiques
- La précision
- précédent
- d'ouvrabilité
- processus
- les process
- traitement
- productivité
- Projet
- projets
- propriétés
- prouvé
- proven
- à condition de
- fournit
- publié
- RÉSERVES
- Python
- qualité
- RARE
- raw
- récent
- recommander
- record
- regex
- vous inscrire
- inscrit
- Inscription
- enregistrement
- en relation
- Les relations
- fiabilité
- Supprimé
- enlever
- répété
- Rapports
- conditions
- Exigences
- un article
- responsables
- jeu responsable
- redémarré
- Résultats
- retourner
- réutilisable
- réutiliser
- Avis
- Rôle
- Courir
- pour le running
- sagemaker
- Pipelines SageMaker
- Évolutivité
- Escaliers intérieurs
- mise à l'échelle
- Rare
- scénarios
- Sciences
- Scientifique
- screenshots
- scripts
- Sdk
- les sections
- sécurisé
- envoi
- supérieur
- Sensibilité
- Séquence
- service
- Services
- set
- Sets
- Partager
- commun
- montrer
- montré
- Spectacles
- similaires
- étapes
- unique
- compétence
- petit
- So
- sur mesure
- Solutions
- RÉSOUDRE
- quelques
- Identifier
- groupe de neurones
- splits
- Étape
- standardisation
- j'ai commencé
- Commencez
- state-of-the-art
- statistiques
- étapes
- Étapes
- storage
- Boutique
- stockée
- de Marketing
- studio
- tel
- durable
- combustion propre
- prend
- équipe
- équipes
- Technique
- Technologie
- modèle
- tensorflow
- tester
- Essais
- qui
- La
- La Région
- La Source
- leur
- Les
- donc
- Ces
- Avec
- fiable
- à
- suivre
- Train
- qualifié
- Formation
- transformé
- procès
- essais cliniques
- TOUR
- types
- comprendre
- uniquement
- ouvrir
- us
- utilisé
- cas d'utilisation
- Utilisateur
- utilisateurs
- validation
- Précieux
- Plus-value
- variété
- divers
- vision
- voulu
- qui
- tout en
- la totalité
- sera
- comprenant
- dans les
- activités principales
- vos contrats
- pourra
- Enveloppé
- années
- Vous n'avez
- Votre
- zéphyrnet