Logo Zéphyrnet

Comment Booking.com a modernisé son cadre d'expérimentation ML avec Amazon SageMaker | Services Web Amazon

Date :

Cet article est co-écrit avec Kostia Kofman et Jenny Tokar de Booking.com.

En tant que leader mondial de l'industrie du voyage en ligne, Booking.com est toujours à la recherche de moyens innovants pour améliorer ses services et offrir à ses clients des expériences personnalisées et transparentes. L'équipe de classement de Booking.com joue un rôle central en garantissant que les algorithmes de recherche et de recommandation sont optimisés pour fournir les meilleurs résultats à leurs utilisateurs.

Partageant des ressources internes avec d'autres équipes internes, les scientifiques en apprentissage automatique (ML) de l'équipe Ranking ont souvent été confrontés à de longs délais d'attente pour accéder aux ressources de formation et d'expérimentation des modèles, mettant ainsi à l'épreuve leur capacité à expérimenter et à innover rapidement. Consciente de la nécessité d'une infrastructure ML modernisée, l'équipe Ranking s'est lancée dans un voyage pour utiliser la puissance de Amazon Sage Maker pour créer, former et déployer des modèles ML à grande échelle.

Booking.com a collaboré avec Services professionnels AWS pour créer une solution permettant d'accélérer la mise sur le marché des modèles de ML améliorés grâce aux améliorations suivantes :

  • Réduction des temps d'attente pour les ressources de formation et d'expérimentation
  • Intégration de fonctionnalités essentielles de ML telles que le réglage des hyperparamètres
  • Un cycle de développement réduit pour les modèles ML

Des temps d’attente réduits signifieraient que l’équipe pourrait rapidement itérer et expérimenter les modèles, obtenant ainsi des informations à un rythme beaucoup plus rapide. L’utilisation des instances disponibles à la demande de SageMaker a permis de diviser par dix le temps d’attente. Les fonctionnalités essentielles de ML telles que le réglage des hyperparamètres et l’explicabilité du modèle faisaient défaut sur site. Le parcours de modernisation de l'équipe a introduit ces fonctionnalités à travers Réglage automatique du modèle Amazon SageMaker ainsi que Amazon SageMaker Clarifier. Enfin, l'aspiration de l'équipe était de recevoir un retour immédiat sur chaque modification apportée au code, réduisant ainsi la boucle de retour de quelques minutes à un instant, et réduisant ainsi le cycle de développement des modèles ML.

Dans cet article, nous approfondissons le parcours entrepris par l'équipe Ranking de Booking.com alors qu'elle exploitait les capacités de SageMaker pour moderniser son cadre d'expérimentation ML. Ce faisant, ils ont non seulement surmonté leurs défis existants, mais ont également amélioré leur expérience de recherche, bénéficiant ainsi à des millions de voyageurs dans le monde.

Approche de la modernisation

L'équipe Ranking est composée de plusieurs scientifiques ML qui doivent chacun développer et tester leur propre modèle hors ligne. Lorsqu'un modèle est jugé réussi selon l'évaluation hors ligne, il peut être déplacé vers les tests A/B en production. S'il montre une amélioration en ligne, il peut être déployé auprès de tous les utilisateurs.

L'objectif de ce projet était de créer un environnement convivial permettant aux scientifiques du ML d'exécuter facilement des tâches personnalisables. Pipelines de création de modèles Amazon SageMaker pour tester leurs hypothèses sans avoir besoin de coder des modules longs et compliqués.

L'un des nombreux défis rencontrés consistait à adapter la solution de pipeline sur site existante pour une utilisation sur AWS. La solution impliquait deux éléments clés :

  • Modification et extension du code existant – La première partie de notre solution impliquait la modification et l’extension de notre code existant pour le rendre compatible avec l’infrastructure AWS. Cela était crucial pour assurer une transition en douceur du traitement sur site vers le traitement basé sur le cloud.
  • Développement de packages clients – Un package client a été développé qui agit comme un wrapper autour des API SageMaker et du code existant précédemment. Ce package combine les deux, permettant aux scientifiques ML de configurer et de déployer facilement des pipelines ML sans codage.

Configuration du pipeline SageMaker

La personnalisation est la clé du pipeline de création de modèles, et elle a été réalisée grâce à config.ini, un fichier de configuration complet. Ce fichier sert de centre de contrôle pour toutes les entrées et comportements du pipeline.

Configurations disponibles à l'intérieur config.ini consistent à

  • Détails du pipeline – Le praticien peut définir le nom du pipeline, spécifier les étapes à exécuter, déterminer l'emplacement où les résultats doivent être stockés. Service de stockage simple Amazon (Amazon S3) et sélectionnez les ensembles de données à utiliser
  • Détails du compte AWS – Vous pouvez décider dans quelle région le pipeline doit s'exécuter et quel rôle doit être utilisé
  • Configuration spécifique à une étape – Pour chaque étape du pipeline, vous pouvez spécifier des détails tels que le nombre et le type d'instances à utiliser, ainsi que les paramètres pertinents

Le code suivant montre un exemple de fichier de configuration :

[BUILD]
pipeline_name = ranking-pipeline
steps = DATA_TRANFORM, TRAIN, PREDICT, EVALUATE, EXPLAIN, REGISTER, UPLOAD
train_data_s3_path = s3://...
...
[AWS_ACCOUNT]
region = eu-central-1
...
[DATA_TRANSFORM_PARAMS]
input_data_s3_path = s3://...
compression_type = GZIP
....
[TRAIN_PARAMS]
instance_count = 3
instance_type = ml.g5.4xlarge
epochs = 1
enable_sagemaker_debugger = True
...
[PREDICT_PARAMS]
instance_count = 3
instance_type = ml.g5.4xlarge
...
[EVALUATE_PARAMS]
instance_type = ml.m5.8xlarge
batch_size = 2048
...
[EXPLAIN_PARAMS]
check_job_instance_type = ml.c5.xlarge
generate_baseline_with_clarify = False
....

config.ini est un fichier à version contrôlée géré par Git, représentant la configuration minimale requise pour une exécution réussie du pipeline de formation. Pendant le développement, des fichiers de configuration locaux dont la version n'est pas contrôlée peuvent être utilisés. Ces fichiers de configuration locaux doivent uniquement contenir des paramètres pertinents pour une exécution spécifique, introduisant ainsi une flexibilité sans complexité. Le client de création de pipeline est conçu pour gérer plusieurs fichiers de configuration, le dernier étant prioritaire sur les paramètres précédents.

Étapes du pipeline SageMaker

Le pipeline est divisé en les étapes suivantes :

  • Former et tester la préparation des données – Des téraoctets de données brutes sont copiés dans un compartiment S3, traités à l'aide Colle AWS tâches pour le traitement Spark, ce qui donne lieu à des données structurées et formatées pour des raisons de compatibilité.
  • Train – L'étape de formation utilise l'estimateur TensorFlow pour les tâches de formation SageMaker. La formation s'effectue de manière distribuée à l'aide d'Hovod et l'artefact de modèle résultant est stocké dans Amazon S3. Pour le réglage des hyperparamètres, une tâche d'optimisation des hyperparamètres (HPO) peut être lancée, en sélectionnant le meilleur modèle en fonction de la métrique objective.
  • Prédire – Dans cette étape, une tâche SageMaker Processing utilise l'artefact de modèle stocké pour effectuer des prédictions. Ce processus s'exécute en parallèle sur les machines disponibles et les résultats de prédiction sont stockés dans Amazon S3.
  • Évaluer – Une tâche de traitement PySpark évalue le modèle à l'aide d'un script Spark personnalisé. Le rapport d'évaluation est ensuite stocké dans Amazon S3.
  • État – Après évaluation, une décision est prise concernant la qualité du modèle. Cette décision est basée sur une métrique de condition définie dans le fichier de configuration. Si l'évaluation est positive, le modèle est enregistré comme approuvé ; sinon, il est enregistré comme rejeté. Dans les deux cas, le rapport d'évaluation et d'explicabilité, s'il est généré, est enregistré dans le registre des modèles.
  • Modèle de package pour l'inférence – À l'aide d'une tâche de traitement, si les résultats de l'évaluation sont positifs, le modèle est empaqueté, stocké dans Amazon S3 et prêt à être téléchargé sur le portail ML interne.
  • Expliquer – SageMaker Clarify génère un rapport d'explicabilité.

Deux référentiels distincts sont utilisés. Le premier référentiel contient la définition et le code de génération du pipeline ML, et le deuxième référentiel contient le code qui s'exécute à chaque étape, comme le traitement, la formation, la prédiction et l'évaluation. Cette approche à double référentiel permet une plus grande modularité et permet aux équipes scientifiques et techniques d'itérer indépendamment sur le code ML et les composants du pipeline ML.

Le diagramme suivant illustre le flux de travail de la solution.

Réglage automatique du modèle

La formation des modèles ML nécessite une approche itérative de plusieurs expériences de formation pour créer un modèle final robuste et performant pour une utilisation commerciale. Les scientifiques du ML doivent sélectionner le type de modèle approprié, créer les ensembles de données d'entrée corrects et ajuster l'ensemble d'hyperparamètres qui contrôlent le processus d'apprentissage du modèle pendant la formation.

La sélection de valeurs appropriées pour les hyperparamètres pour le processus de formation du modèle peut influencer de manière significative les performances finales du modèle. Cependant, il n’existe aucun moyen unique ou défini de déterminer quelles valeurs sont appropriées pour un cas d’utilisation spécifique. La plupart du temps, les scientifiques du ML devront exécuter plusieurs tâches de formation avec des ensembles d'hyperparamètres légèrement différents, observer les métriques de formation du modèle, puis essayer de sélectionner des valeurs plus prometteuses pour la prochaine itération. Ce processus d'optimisation des performances du modèle est également connu sous le nom d'optimisation des hyperparamètres (HPO) et peut parfois nécessiter des centaines d'expériences.

L'équipe Ranking effectuait des HPO manuellement dans son environnement sur site, car elle ne pouvait lancer qu'un nombre très limité de tâches de formation en parallèle. Par conséquent, ils ont dû exécuter HPO de manière séquentielle, tester et sélectionner manuellement différentes combinaisons de valeurs d’hyperparamètres et surveiller régulièrement les progrès. Cela a prolongé le processus de développement et de réglage du modèle et limité le nombre total d’expériences HPO pouvant être exécutées dans un laps de temps raisonnable.

Avec le passage à AWS, l'équipe Ranking a pu utiliser la fonctionnalité de réglage automatique du modèle (AMT) de SageMaker. AMT permet aux scientifiques de Ranking ML de lancer automatiquement des centaines de tâches de formation dans des plages d'hyperparamètres d'intérêt pour trouver la version la plus performante du modèle final en fonction de la métrique choisie. L'équipe Ranking peut désormais choisir entre quatre stratégies de réglage automatique différentes pour sa sélection d'hyperparamètres :

  • Grille de recherche – AMT s’attendra à ce que tous les hyperparamètres soient des valeurs catégorielles et lancera des tâches de formation pour chaque combinaison catégorielle distincte, explorant tout l’espace des hyperparamètres.
  • Recherche aléatoire – AMT sélectionnera au hasard des combinaisons de valeurs d’hyperparamètres dans les plages fournies. Puisqu'il n'y a aucune dépendance entre les différentes tâches de formation et la sélection des valeurs des paramètres, plusieurs tâches de formation parallèles peuvent être lancées avec cette méthode, accélérant ainsi le processus de sélection des paramètres optimaux.
  • Optimisation bayésienne – AMT utilise la mise en œuvre de l'optimisation bayésienne pour deviner le meilleur ensemble de valeurs d'hyperparamètres, en le traitant comme un problème de régression. Il prendra en compte les combinaisons d'hyperparamètres précédemment testées et leur impact sur les tâches de formation du modèle avec la nouvelle sélection de paramètres, en optimisant une sélection de paramètres plus intelligente avec moins d'expériences, mais il lancera également les tâches de formation uniquement de manière séquentielle pour toujours pouvoir apprendre des formations précédentes.
  • Hyperbande – AMT utilisera les résultats intermédiaires et finaux des tâches de formation qu'il exécute pour réaffecter dynamiquement les ressources vers les tâches de formation avec des configurations d'hyperparamètres qui affichent des résultats plus prometteurs tout en arrêtant automatiquement celles qui sous-performent.

AMT sur SageMaker a permis à l'équipe Ranking de réduire le temps consacré au processus de réglage des hyperparamètres pour le développement de leur modèle en leur permettant pour la première fois d'exécuter plusieurs expériences parallèles, d'utiliser des stratégies de réglage automatique et d'effectuer des tâches de formation à deux chiffres en quelques jours, quelque chose qui n'était pas réalisable sur place.

Explicabilité du modèle avec SageMaker Clarify

L'explicabilité des modèles permet aux praticiens du ML de comprendre la nature et le comportement de leurs modèles de ML en fournissant des informations précieuses pour les décisions d'ingénierie et de sélection des fonctionnalités, ce qui améliore à son tour la qualité des prédictions du modèle. L'équipe Ranking souhaitait évaluer ses informations sur l'explicabilité de deux manières : comprendre comment les entrées de fonctionnalités affectent les sorties du modèle sur l'ensemble de leur ensemble de données (interprétabilité globale), et également être capable de découvrir l'influence des fonctionnalités d'entrée pour une prédiction de modèle spécifique sur un point d'intérêt de données ( interprétabilité locale). Grâce à ces données, les scientifiques de Ranking ML peuvent prendre des décisions éclairées sur la manière d'améliorer davantage les performances de leur modèle et de prendre en compte les résultats de prédiction difficiles que le modèle fournirait occasionnellement.

SageMaker Clarify vous permet de générer des rapports d'explicabilité de modèle à l'aide Explications de l'additif Shapley (SHAP) lors de la formation de vos modèles sur SageMaker, prenant en charge l'interprétabilité des modèles mondiaux et locaux. En plus des rapports d'explicabilité des modèles, SageMaker Clarify prend en charge l'exécution d'analyses pour les métriques de biais pré-entraînement, les métriques de biais post-formation et les diagrammes de dépendance partielle. La tâche sera exécutée en tant que tâche de traitement SageMaker au sein du compte AWS et s'intègre directement aux pipelines SageMaker.

Le rapport d'interprétabilité global sera automatiquement généré dans la sortie du travail et affiché dans le Amazon SageMakerStudio environnement dans le cadre de l’expérimentation de formation. Si ce modèle est ensuite enregistré dans le registre de modèles SageMaker, le rapport sera en outre lié à l'artefact de modèle. Grâce à ces deux options, l’équipe Ranking a pu facilement retracer les différentes versions de modèles et leurs changements de comportement.

Pour explorer l'impact des fonctionnalités d'entrée sur une seule prédiction (valeurs d'interprétabilité locales), l'équipe de classement a activé le paramètre save_local_shap_values dans les tâches SageMaker Clarify et a pu les charger à partir du compartiment S3 pour des analyses plus approfondies dans les notebooks Jupyter de SageMaker Studio.

Les images précédentes montrent un exemple de ce à quoi ressemblerait l’explicabilité d’un modèle pour un modèle ML arbitraire.

Optimisation de la formation

L’essor de l’apprentissage profond (DL) a conduit le ML à devenir de plus en plus dépendant de la puissance de calcul et de grandes quantités de données. Les praticiens du ML sont généralement confrontés à l’obstacle de l’utilisation efficace des ressources lors de la formation de ces modèles complexes. Lorsque vous exécutez une formation sur de grands clusters de calcul, divers défis surviennent lors de l'optimisation de l'utilisation des ressources, notamment des problèmes tels que les goulots d'étranglement d'E/S, les retards de lancement du noyau, les contraintes de mémoire et les ressources sous-utilisées. Si la configuration de la tâche de formation n'est pas optimisée pour plus d'efficacité, ces obstacles peuvent entraîner une utilisation sous-optimale du matériel, des durées de formation prolongées ou même des sessions de formation incomplètes. Ces facteurs augmentent les coûts du projet et retardent les délais.

Le profilage de l'utilisation du CPU et du GPU permet de comprendre ces inefficacités, de déterminer la consommation de ressources matérielles (temps et mémoire) des différentes opérations TensorFlow de votre modèle, de résoudre les goulots d'étranglement des performances et, en fin de compte, d'accélérer l'exécution du modèle.

L'équipe de classement a utilisé la fonctionnalité de profilage du cadre de Débogueur Amazon SageMaker (maintenant obsolète au profit de Profileur Amazon SageMaker) pour optimiser ces emplois de formation. Cela vous permet de suivre toutes les activités sur les processeurs et les GPU, telles que les utilisations des processeurs et des GPU, les exécutions du noyau sur les GPU, les lancements du noyau sur les processeurs, les opérations de synchronisation, les opérations de mémoire sur les GPU, les latences entre les lancements du noyau et les exécutions correspondantes, et le transfert de données entre les processeurs. et les GPU.

L'équipe de classement a également utilisé le Profileur TensorFlow caractéristique de Tableau Tenseur, ce qui a permis de mieux profiler la formation du modèle TensorFlow. SageMaker est maintenant davantage intégré à TensorBoard et apporte les outils de visualisation de TensorBoard à SageMaker, intégrés à la formation et aux domaines SageMaker. TensorBoard vous permet d'effectuer des tâches de débogage de modèle à l'aide des plugins de visualisation TensorBoard.

Avec l'aide de ces deux outils, l'équipe Ranking a optimisé son modèle TensorFlow et a pu identifier les goulots d'étranglement et réduire le temps moyen des étapes de formation de 350 millisecondes à 140 millisecondes sur le CPU et de 170 millisecondes à 70 millisecondes sur le GPU, soit des accélérations de 60 %. et 59%, respectivement.

Résultats commerciaux

Les efforts de migration se sont concentrés sur l'amélioration de la disponibilité, de l'évolutivité et de l'élasticité, ce qui a collectivement amené l'environnement ML vers un nouveau niveau d'excellence opérationnelle, illustré par l'augmentation de la fréquence de formation des modèles et la diminution des échecs, l'optimisation des temps de formation et les capacités avancées de ML.

Modéliser la fréquence et les échecs de la formation

Le nombre de tâches mensuelles de formation de modèles a quintuplé, ce qui a conduit à des optimisations de modèles beaucoup plus fréquentes. De plus, le nouvel environnement ML a entraîné une réduction du taux de défaillance des pipelines, passant d'environ 50 % à 20 %. Le temps de traitement des tâches ayant échoué a considérablement diminué, passant de plus d'une heure en moyenne à 5 secondes négligeables. Cela a considérablement augmenté l’efficacité opérationnelle et réduit le gaspillage des ressources.

Temps de formation optimisé

La migration a entraîné une augmentation de l'efficacité grâce à la formation GPU basée sur SageMaker. Ce changement a réduit le temps de formation du modèle à un cinquième de sa durée précédente. Auparavant, les processus de formation pour les modèles d'apprentissage profond consommaient environ 60 heures de CPU ; cela a été réduit à environ 12 heures sur GPU. Cette amélioration permet non seulement de gagner du temps, mais accélère également le cycle de développement, permettant des itérations et des améliorations de modèles plus rapides.

Capacités avancées de ML

L'utilisation de l'ensemble de fonctionnalités de SageMaker, englobant le réglage des hyperparamètres et l'explicabilité du modèle, est au cœur du succès de la migration. De plus, la migration a permis un suivi transparent des expériences à l'aide de Expériences Amazon SageMaker, permettant une expérimentation plus perspicace et plus productive.

Plus important encore, le nouvel environnement d’expérimentation ML a soutenu le développement réussi d’un nouveau modèle qui est désormais en production. Ce modèle est un apprentissage en profondeur plutôt que basé sur une arborescence et a introduit des améliorations notables dans les performances du modèle en ligne.

Conclusion

Cet article a fourni un aperçu de la collaboration entre AWS Professional Services et Booking.com qui a abouti à la mise en œuvre d'un cadre de ML évolutif et a réussi à réduire le délai de mise sur le marché des modèles de ML de leur équipe de classement.

L'équipe Ranking de Booking.com a appris que la migration vers le cloud et SageMaker s'est avérée bénéfique et que l'adaptation des pratiques d'opérations d'apprentissage automatique (MLOps) permet à leurs ingénieurs et scientifiques en ML de se concentrer sur leur métier et d'augmenter la vitesse de développement. L'équipe partage les apprentissages et le travail effectué avec l'ensemble de la communauté ML de Booking.com, à travers des discussions et des sessions dédiées avec des praticiens du ML où ils partagent le code et les capacités. Nous espérons que cet article pourra servir d’autre moyen de partager les connaissances.

AWS Professional Services est prêt à aider votre équipe à développer un ML évolutif et prêt pour la production dans AWS. Pour plus d'informations, voir Services professionnels AWS ou contactez votre responsable de compte pour nous contacter.


À propos des auteurs

Laurens van der Maas est ingénieur en apprentissage automatique chez AWS Professional Services. Il travaille en étroite collaboration avec les clients qui créent leurs solutions d'apprentissage automatique sur AWS, se spécialise dans la formation distribuée, l'expérimentation et l'IA responsable, et est passionné par la façon dont l'apprentissage automatique change le monde tel que nous le connaissons.

Daniel Zagyva est Data Scientist chez AWS Professional Services. Il se spécialise dans le développement de solutions d'apprentissage automatique évolutives et de qualité production pour les clients AWS. Son expérience s'étend à différents domaines, notamment le traitement du langage naturel, l'IA générative et les opérations d'apprentissage automatique.

Kostia Kofman est responsable principal de l'apprentissage automatique chez Booking.com, dirigeant l'équipe Search Ranking ML et supervisant le système ML le plus complet de Booking.com. Doté d'une expertise en personnalisation et en classement, il s'épanouit en tirant parti des technologies de pointe pour améliorer l'expérience client.

Jenny Tokar est ingénieur senior en apprentissage automatique au sein de l'équipe Search Ranking de Booking.com. Elle se spécialise dans le développement de pipelines ML de bout en bout caractérisés par l'efficacité, la fiabilité, l'évolutivité et l'innovation. L'expertise de Jenny permet à son équipe de créer des modèles de classement de pointe qui servent chaque jour des millions d'utilisateurs.

Alexandre Dokic est un scientifique des données senior chez AWS Professional Services. Elle aime aider les clients à créer des solutions innovantes d'IA/ML sur AWS et elle est enthousiasmée par les transformations commerciales grâce à la puissance des données.

Louba Protsiva est responsable de l'engagement chez AWS Professional Services. Elle se spécialise dans la fourniture de solutions de données et GenAI/ML qui permettent aux clients AWS de maximiser leur valeur commerciale et d'accélérer la vitesse de l'innovation.

spot_img

Dernières informations

spot_img