Zephyrnet-logo

Hoe Booking.com zijn raamwerk voor ML-experimenten moderniseerde met Amazon SageMaker | Amazon-webservices

Datum:

Dit bericht is geschreven in samenwerking met Kostia Kofman en Jenny Tokar van Booking.com.

Als wereldleider in de online reisindustrie, Booking.com is altijd op zoek naar innovatieve manieren om zijn diensten te verbeteren en klanten op maat gemaakte en naadloze ervaringen te bieden. Het Ranking-team van Booking.com speelt een cruciale rol om ervoor te zorgen dat de zoek- en aanbevelingsalgoritmen worden geoptimaliseerd om de beste resultaten voor hun gebruikers te leveren.

Door interne bronnen te delen met andere interne teams, ondervonden de wetenschappers van het Ranking-team machine learning (ML) vaak lange wachttijden om toegang te krijgen tot bronnen voor modeltraining en experimenten, waardoor hun vermogen om snel te experimenteren en te innoveren op de proef werd gesteld. Het Ranking-team erkende de behoefte aan een gemoderniseerde ML-infrastructuur en begon aan een reis om de kracht van Amazon Sage Maker om ML-modellen op schaal te bouwen, trainen en implementeren.

Booking.com heeft samengewerkt met AWS professionele services een oplossing bouwen om de time-to-market voor verbeterde ML-modellen te versnellen door de volgende verbeteringen:

  • Kortere wachttijden voor middelen voor training en experimenten
  • Integratie van essentiรซle ML-mogelijkheden zoals afstemming van hyperparameters
  • Een kortere ontwikkelingscyclus voor ML-modellen

Kortere wachttijden zouden betekenen dat het team snel modellen kan herhalen en ermee kan experimenteren, waardoor veel sneller inzichten kunnen worden verkregen. Door gebruik te maken van de on-demand beschikbare instances van SageMaker kon de wachttijd worden vertienvoudigd. Essentiรซle ML-mogelijkheden, zoals het afstemmen van hyperparameters en de uitlegbaarheid van modellen, ontbraken op locatie. Tijdens het moderniseringstraject van het team werden deze functies geรฏntroduceerd Amazon SageMaker automatische modelafstemming en Amazon SageMaker verduidelijken. Ten slotte was het de ambitie van het team om onmiddellijke feedback te ontvangen over elke wijziging die in de code werd aangebracht, waardoor de feedbacklus van minuten tot een ogenblik werd teruggebracht en daarmee de ontwikkelingscyclus voor ML-modellen werd verkort.

In dit artikel gaan we dieper in op de reis die het Ranking-team van Booking.com heeft afgelegd toen ze de mogelijkheden van SageMaker benutten om hun ML-experimenteringsframework te moderniseren. Door dit te doen, overwonnen ze niet alleen hun bestaande uitdagingen, maar verbeterden ze ook hun zoekervaring, waar uiteindelijk miljoenen reizigers wereldwijd van profiteerden.

Aanpak van modernisering

Het Ranking-team bestaat uit verschillende ML-wetenschappers die elk hun eigen model offline moeten ontwikkelen en testen. Wanneer een model volgens de offline evaluatie als succesvol wordt beschouwd, kan het worden verplaatst naar productie-A/B-testen. Als het online verbetering laat zien, kan het voor alle gebruikers worden ingezet.

Het doel van dit project was om een โ€‹โ€‹gebruiksvriendelijke omgeving te creรซren waarin ML-wetenschappers deze eenvoudig aanpasbaar kunnen maken Amazon SageMaker Modelbouwpijpleidingen om hun hypothesen te testen zonder de noodzaak om lange en ingewikkelde modules te coderen.

Een van de verschillende uitdagingen was het aanpassen van de bestaande on-premise pijplijnoplossing voor gebruik op AWS. De oplossing omvatte twee belangrijke componenten:

  • Bestaande code aanpassen en uitbreiden โ€“ Het eerste deel van onze oplossing omvatte de wijziging en uitbreiding van onze bestaande code om deze compatibel te maken met de AWS-infrastructuur. Dit was van cruciaal belang voor een soepele overgang van verwerking op locatie naar verwerking in de cloud.
  • Ontwikkeling van klantpakketten โ€“ Er is een clientpakket ontwikkeld dat fungeert als omhulsel rond SageMaker APIโ€™s en de eerder bestaande code. Dit pakket combineert de twee, waardoor ML-wetenschappers eenvoudig ML-pijplijnen kunnen configureren en implementeren zonder codering.

SageMaker-pijplijnconfiguratie

Aanpasbaarheid is de sleutel tot de modelbouwpijplijn, en dit werd bereikt door config.ini, een uitgebreid configuratiebestand. Dit bestand dient als controlecentrum voor alle invoer en gedrag van de pijplijn.

Beschikbare configuraties binnenin config.ini omvatten:

  • Pijpleidingdetails โ€“ De beoefenaar kan de naam van de pijplijn definiรซren, specificeren welke stappen moeten worden uitgevoerd en bepalen waar de output moet worden opgeslagen Amazon eenvoudige opslagservice (Amazon S3) en selecteer welke datasets u wilt gebruiken
  • AWS-accountgegevens โ€“ U kunt beslissen in welke regio de pijplijn moet draaien en welke rol moet worden gebruikt
  • Stapspecifieke configuratie โ€“ Voor elke stap in de pijplijn kunt u details opgeven, zoals het aantal en het type instanties dat u wilt gebruiken, samen met relevante parameters

De volgende code toont een voorbeeld van een configuratiebestand:

[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 is een versiebeheerd bestand dat wordt beheerd door Git en dat de minimale configuratie vertegenwoordigt die vereist is voor een succesvolle uitvoering van de trainingspijplijn. Tijdens de ontwikkeling kunnen lokale configuratiebestanden worden gebruikt die niet versiebeheerd zijn. Deze lokale configuratiebestanden hoeven alleen instellingen te bevatten die relevant zijn voor een specifieke run, waardoor flexibiliteit zonder complexiteit wordt geรฏntroduceerd. De client voor het maken van pijplijnen is ontworpen om meerdere configuratiebestanden te verwerken, waarbij de nieuwste voorrang heeft op eerdere instellingen.

SageMaker-pijplijnstappen

De pijplijn is verdeeld in de volgende stappen:

  • Gegevensvoorbereiding trainen en testen โ€“ Terabytes aan onbewerkte gegevens worden gekopieerd naar een S3-bucket, verwerkt met behulp van AWS lijm banen voor Spark-verwerking, wat resulteert in gegevens die zijn gestructureerd en geformatteerd voor compatibiliteit.
  • Trainen โ€“ De trainingsstap maakt gebruik van de TensorFlow-schatter voor SageMaker-trainingstaken. Training vindt op een gedistribueerde manier plaats met behulp van Horovod, en het resulterende modelartefact wordt opgeslagen in Amazon S3. Voor afstemming van hyperparameters kan een taak voor hyperparameteroptimalisatie (HPO) worden gestart, waarbij het beste model wordt geselecteerd op basis van de objectieve metriek.
  • Voorspellen โ€“ In deze stap gebruikt een SageMaker Processing-taak het opgeslagen modelartefact om voorspellingen te doen. Dit proces loopt parallel op beschikbare machines en de voorspellingsresultaten worden opgeslagen in Amazon S3.
  • Schatten โ€“ Een PySpark-verwerkingstaak evalueert het model met behulp van een aangepast Spark-script. Het evaluatierapport wordt vervolgens opgeslagen in Amazon S3.
  • Conditie โ€“ Na evaluatie wordt een besluit genomen over de kwaliteit van het model. Deze beslissing is gebaseerd op een voorwaardemetriek die is gedefinieerd in het configuratiebestand. Indien de evaluatie positief is, wordt het model als goedgekeurd geregistreerd; anders wordt het geregistreerd als afgewezen. In beide gevallen wordt het evaluatie- en uitlegbaarheidsrapport, indien gegenereerd, vastgelegd in het modellenregister.
  • Pakketmodel voor gevolgtrekking โ€“ Als de evaluatieresultaten positief zijn, wordt het model met behulp van een verwerkingstaak verpakt, opgeslagen in Amazon S3 en klaargemaakt voor upload naar het interne ML-portaal.
  • Verklaren โ€“ SageMaker Clarify genereert een uitlegbaarheidsrapport.

Er worden twee verschillende opslagplaatsen gebruikt. De eerste opslagplaats bevat de definitie en buildcode voor de ML-pijplijn, en de tweede opslagplaats bevat de code die in elke stap wordt uitgevoerd, zoals verwerking, training, voorspelling en evaluatie. Deze dual-repository-aanpak maakt een grotere modulariteit mogelijk en stelt wetenschappelijke en technische teams in staat onafhankelijk te itereren op ML-code en ML-pijplijncomponenten.

Het volgende diagram illustreert de workflow van de oplossing.

Automatische modelafstemming

Het trainen van ML-modellen vereist een iteratieve aanpak van meerdere trainingsexperimenten om een โ€‹โ€‹robuust en performant eindmodel voor zakelijk gebruik te bouwen. De ML-wetenschappers moeten het juiste modeltype selecteren, de juiste invoerdatasets bouwen en de set hyperparameters aanpassen die het modelleerproces tijdens de training besturen.

De selectie van geschikte waarden voor hyperparameters voor het modeltrainingsproces kan de uiteindelijke prestaties van het model aanzienlijk beรฏnvloeden. Er is echter geen unieke of gedefinieerde manier om te bepalen welke waarden geschikt zijn voor een specifiek gebruiksscenario. Meestal zullen ML-wetenschappers meerdere trainingstaken moeten uitvoeren met enigszins verschillende sets hyperparameters, de trainingsstatistieken van het model moeten observeren en vervolgens moeten proberen veelbelovende waarden te selecteren voor de volgende iteratie. Dit proces van het afstemmen van de modelprestaties staat ook bekend als hyperparameteroptimalisatie (HPO) en kan soms honderden experimenten vereisen.

Het Ranking-team voerde HPO vroeger handmatig uit in hun lokale omgeving, omdat ze slechts een zeer beperkt aantal trainingsopdrachten parallel konden lanceren. Daarom moesten ze HPO opeenvolgend uitvoeren, verschillende combinaties van hyperparameterwaarden handmatig testen en selecteren, en regelmatig de voortgang monitoren. Dit verlengde het modelontwikkelings- en afstemmingsproces en beperkte het totale aantal HPO-experimenten dat binnen een haalbare hoeveelheid tijd kon worden uitgevoerd.

Met de overstap naar AWS kon het Ranking-team de automatische modeltuning-functie (AMT) van SageMaker gebruiken. AMT stelt Ranking ML-wetenschappers in staat om automatisch honderden trainingstaken te lanceren binnen interessante hyperparameterbereiken om de best presterende versie van het uiteindelijke model te vinden op basis van de gekozen metriek. Het Ranking-team kan nu kiezen tussen vier verschillende automatische afstemmingsstrategieรซn voor hun hyperparameterselectie:

  • Raster zoeken โ€“ AMT verwacht dat alle hyperparameters categorische waarden zijn, en zal trainingstaken lanceren voor elke afzonderlijke categorische combinatie, waarbij de volledige hyperparameterruimte wordt onderzocht.
  • Willekeurig zoeken โ€“ AMT selecteert willekeurig combinaties van hyperparameterwaarden binnen het opgegeven bereik. Omdat er geen afhankelijkheid bestaat tussen verschillende trainingstaken en parameterwaardeselectie, kunnen met deze methode meerdere parallelle trainingstaken worden gestart, waardoor het optimale parameterselectieproces wordt versneld.
  • Bayesiaanse optimalisatie โ€“ AMT gebruikt Bayesiaanse optimalisatie-implementatie om de beste set hyperparameterwaarden te raden en behandelt dit als een regressieprobleem. Het zal rekening houden met eerder geteste hyperparametercombinaties en de impact ervan op de modeltrainingstaken met de nieuwe parameterselectie, waardoor wordt geoptimaliseerd voor slimmere parameterselectie met minder experimenten, maar het zal ook trainingstaken alleen opeenvolgend lanceren om altijd van eerdere trainingen te kunnen leren.
  • Hyperband โ€“ AMT zal tussentijdse en eindresultaten van de trainingstaken die het uitvoert gebruiken om middelen dynamisch opnieuw toe te wijzen aan trainingstaken met hyperparameterconfiguraties die veelbelovendere resultaten laten zien, terwijl automatisch de slecht presterende taken worden stopgezet.

AMT op SageMaker stelde het Ranking-team in staat de tijd die werd besteed aan het hyperparameter-afstemmingsproces voor hun modelontwikkeling te verminderen door hen voor het eerst in staat te stellen meerdere parallelle experimenten uit te voeren, automatische afstemmingsstrategieรซn te gebruiken en binnen enkele dagen dubbelcijferige trainingsopdrachten uit te voeren. iets dat ter plekke niet haalbaar was.

Verklaarbaarheid van modellen met SageMaker Clarify

De verklaarbaarheid van modellen stelt ML-beoefenaars in staat de aard en het gedrag van hun ML-modellen te begrijpen door waardevolle inzichten te verschaffen voor feature-engineering en selectiebeslissingen, wat op zijn beurt de kwaliteit van de modelvoorspellingen verbetert. Het Ranking-team wilde hun inzichten op het gebied van verklaarbaarheid op twee manieren evalueren: inzicht krijgen in de manier waarop feature-inputs de model-outputs in de gehele dataset beรฏnvloeden (algemene interpreteerbaarheid), en ook in staat zijn om de invloed van input-features te ontdekken voor een specifieke modelvoorspelling op een datapunt van belang ( lokale interpreteerbaarheid). Met deze gegevens kunnen Ranking ML-wetenschappers weloverwogen beslissingen nemen over hoe ze de prestaties van hun model verder kunnen verbeteren en rekening kunnen houden met de uitdagende voorspellingsresultaten die het model af en toe zou opleveren.

Met SageMaker Clarify kunt u rapporten over de uitlegbaarheid van modellen genereren met behulp van Uitleg van Shapley-additief (SHAP) bij het trainen van uw modellen op SageMaker, ter ondersteuning van zowel de globale als lokale interpreteerbaarheid van modellen. Naast rapporten over de uitlegbaarheid van modellen ondersteunt SageMaker Clarify lopende analyses voor statistieken over bias vรณรณr de training, statistieken over bias na de training en grafieken van gedeeltelijke afhankelijkheid. De taak wordt uitgevoerd als een SageMaker Processing-taak binnen het AWS-account en kan rechtstreeks worden geรฏntegreerd met de SageMaker-pijplijnen.

Het globale interpreteerbaarheidsrapport wordt automatisch gegenereerd in de taakuitvoer en weergegeven in de Amazon SageMaker Studio omgeving als onderdeel van het trainingsexperiment. Als dit model vervolgens wordt geregistreerd in het SageMaker-modelregister, wordt het rapport bovendien aan het modelartefact gekoppeld. Door beide opties te gebruiken, kon het Ranking-team gemakkelijk verschillende modelversies en hun gedragsveranderingen volgen.

Om de impact van de invoerfunctie op een enkele voorspelling (lokale interpreteerbaarheidswaarden) te onderzoeken, heeft het Ranking-team de parameter ingeschakeld save_local_shap_values in de SageMaker Clarify-taken en kon ze vanuit de S3-bucket laden voor verdere analyses in de Jupyter-notebooks in SageMaker Studio.

De voorgaande afbeeldingen laten een voorbeeld zien van hoe de verklaarbaarheid van een model eruit zou zien voor een willekeurig ML-model.

Optimalisatie van training

De opkomst van deep learning (DL) heeft ertoe geleid dat ML steeds afhankelijker is geworden van rekenkracht en enorme hoeveelheden gegevens. ML-beoefenaars worden vaak geconfronteerd met de hindernis van het efficiรซnt gebruik van middelen bij het trainen van deze complexe modellen. Wanneer u training uitvoert op grote rekenclusters, ontstaan โ€‹โ€‹er verschillende uitdagingen bij het optimaliseren van het gebruik van bronnen, waaronder problemen als I/O-knelpunten, vertragingen bij het starten van de kernel, geheugenbeperkingen en onderbenutte bronnen. Als de configuratie van de trainingstaak niet is afgestemd op efficiรซntie, kunnen deze obstakels resulteren in suboptimaal hardwaregebruik, langere trainingsduur of zelfs onvolledige trainingsruns. Deze factoren verhogen de projectkosten en vertragen de tijdlijnen.

Door het CPU- en GPU-gebruik te profileren, krijgt u inzicht in deze inefficiรซnties, kunt u het verbruik van hardwarebronnen (tijd en geheugen) van de verschillende TensorFlow-bewerkingen in uw model bepalen, prestatieknelpunten oplossen en uiteindelijk het model sneller laten werken.

Het rankingteam gebruikte de raamwerkprofileringsfunctie van Amazon SageMaker-foutopsporing (nu verouderd ten gunste van Amazon SageMaker-profiler) om deze opleidingsbanen te optimaliseren. Hiermee kunt u alle activiteiten op CPU's en GPU's volgen, zoals CPU- en GPU-gebruik, kernel-runs op GPU's, kernel-lanceringen op CPU's, synchronisatiebewerkingen, geheugenbewerkingen tussen GPU's, latenties tussen kernel-lanceringen en overeenkomstige runs, en gegevensoverdracht tussen CPU's en GPU's.

Het rankingteam gebruikte ook de TensorFlow-profiler kenmerk van TensorBoard, wat verder hielp bij het profileren van de TensorFlow-modeltraining. SageMaker is nu verder geรฏntegreerd met TensorBoard en brengt de visualisatietools van TensorBoard naar SageMaker, geรฏntegreerd met SageMaker-training en -domeinen. Met TensorBoard kunt u foutopsporingstaken voor modellen uitvoeren met behulp van de TensorBoard-visualisatieplug-ins.

Met behulp van deze twee tools heeft het Ranking-team hun TensorFlow-model geoptimaliseerd en knelpunten kunnen identificeren en de gemiddelde trainingstaptijd kunnen terugbrengen van 350 milliseconden naar 140 milliseconden op CPU en van 170 milliseconden naar 70 milliseconden op GPU, versnellingen van 60% en 59% respectievelijk.

Bedrijfsresultaten

De migratie-inspanningen concentreerden zich rond het verbeteren van de beschikbaarheid, schaalbaarheid en elasticiteit, waardoor de ML-omgeving gezamenlijk naar een nieuw niveau van operationele uitmuntendheid werd gebracht, geรฏllustreerd door de hogere modeltrainingsfrequentie en minder fouten, geoptimaliseerde trainingtijden en geavanceerde ML-mogelijkheden.

Modelleer trainingsfrequentie en mislukkingen

Het aantal maandelijkse modeltrainingstaken vervijfvoudigde, wat leidde tot aanzienlijk frequentere modeloptimalisaties. Bovendien leidde de nieuwe ML-omgeving tot een vermindering van het faalpercentage van pijpleidingen, van ongeveer 50% naar 20%. De verwerkingstijd voor mislukte opdrachten daalde drastisch, van gemiddeld ruim een โ€‹โ€‹uur naar een verwaarloosbare vijf seconden. Dit heeft de operationele efficiรซntie sterk vergroot en de verspilling van hulpbronnen verminderd.

Geoptimaliseerde trainingstijd

De migratie die daarmee gepaard gaat, neemt de efficiรซntie toe dankzij op SageMaker gebaseerde GPU-training. Deze verschuiving verminderde de modeltrainingstijd tot een vijfde van de vorige duur. Voorheen namen de trainingsprocessen voor deep learning-modellen ongeveer 60 uur in beslag op de CPU; dit werd gestroomlijnd tot ongeveer 12 uur op GPU. Deze verbetering bespaart niet alleen tijd, maar versnelt ook de ontwikkelingscyclus, waardoor snellere iteraties en modelverbeteringen mogelijk zijn.

Geavanceerde ML-mogelijkheden

Centraal in het succes van de migratie staat het gebruik van de functieset van SageMaker, die het afstemmen van hyperparameters en de uitlegbaarheid van het model omvat. Bovendien maakte de migratie een naadloze tracking van experimenten mogelijk met behulp van Amazon SageMaker-experimenten, waardoor meer inzichtelijke en productieve experimenten mogelijk zijn.

Het allerbelangrijkste was dat de nieuwe ML-experimentomgeving de succesvolle ontwikkeling van een nieuw model ondersteunde dat nu in productie is. Dit model is gebaseerd op deep learning en niet op bomen, en heeft merkbare verbeteringen in de prestaties van online modellen geรฏntroduceerd.

Conclusie

Dit bericht gaf een overzicht van de samenwerking tussen AWS Professional Services en Booking.com die resulteerde in de implementatie van een schaalbaar ML-framework en met succes de time-to-market van ML-modellen van hun Ranking-team verkortte.

Het Ranking-team van Booking.com ontdekte dat de migratie naar de cloud en SageMaker nuttig is gebleken, en dat het aanpassen van Machine Learning Operations (MLOps)-praktijken hun ML-ingenieurs en wetenschappers in staat stelt zich op hun vak te concentreren en de ontwikkelingssnelheid te verhogen. Het team deelt de lessen en het werk dat is gedaan met de hele ML-gemeenschap van Booking.com, door middel van gesprekken en speciale sessies met ML-professionals waar zij de code en mogelijkheden delen. We hopen dat dit bericht kan dienen als een andere manier om de kennis te delen.

AWS Professional Services staat klaar om uw team te helpen bij het ontwikkelen van schaalbare en productieklare ML in AWS. Voor meer informatie, zie AWS professionele services of neem contact op via uw accountmanager om contact met ons op te nemen.


Over de auteurs

Laurens van der Maas is een Machine Learning Engineer bij AWS Professional Services. Hij werkt nauw samen met klanten die hun machine learning-oplossingen op AWS bouwen, is gespecialiseerd in gedistribueerde training, experimenten en verantwoorde AI, en is gepassioneerd over hoe machine learning de wereld zoals wij die kennen verandert.

Daniรซl Zagyva is een datawetenschapper bij AWS Professional Services. Hij is gespecialiseerd in het ontwikkelen van schaalbare machine learning-oplossingen van productiekwaliteit voor AWS-klanten. Zijn ervaring strekt zich uit over verschillende gebieden, waaronder natuurlijke taalverwerking, generatieve AI en machine learning-operaties.

Kostia Kofman is Senior Machine Learning Manager bij Booking.com en geeft leiding aan het Search Ranking ML-team, dat toezicht houdt op het meest uitgebreide ML-systeem van Booking.com. Met zijn expertise op het gebied van personalisatie en ranking gedijt hij bij het inzetten van de allernieuwste technologie om de klantervaring te verbeteren.

Jenny Tokar is Senior Machine Learning Engineer bij het Search Ranking-team van Booking.com. Ze is gespecialiseerd in het ontwikkelen van end-to-end ML-pijplijnen die worden gekenmerkt door efficiรซntie, betrouwbaarheid, schaalbaarheid en innovatie. De expertise van Jenny stelt haar team in staat geavanceerde rankingmodellen te creรซren die elke dag miljoenen gebruikers bedienen.

Alexander Dokic is een Senior Data Scientist bij AWS Professional Services. Ze vindt het leuk om klanten te ondersteunen bij het bouwen van innovatieve AI/ML-oplossingen op AWS en ze is enthousiast over bedrijfstransformaties door de kracht van data.

Luba Protsiva is een Engagement Manager bij AWS Professional Services. Ze is gespecialiseerd in het leveren van Data- en GenAI/ML-oplossingen waarmee AWS-klanten hun bedrijfswaarde kunnen maximaliseren en de snelheid van innovatie kunnen versnellen.

spot_img

Laatste intelligentie

spot_img