Hur Amazon Search driver storskaliga, motståndskraftiga maskininlärningsprojekt med Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Hur Amazon Search kör storskaliga, motståndskraftiga maskininlärningsprojekt med Amazon SageMaker

Om du har sökt efter en vara att köpa på amazon.com har du använt Amazons söktjänster. På Amazon Search är vi ansvariga för sök- och upptäcktsupplevelsen för våra kunder över hela världen. I bakgrunden indexerar vi vår världsomspännande produktkatalog, distribuerar mycket skalbara AWS-flottor och använder avancerad maskininlärning (ML) för att matcha relevanta och intressanta produkter till varje kunds förfrågan.

Våra forskare tränar regelbundet tusentals ML-modeller för att förbättra kvaliteten på sökresultaten. Att stödja storskaliga experiment innebär sina egna utmaningar, särskilt när det gäller att förbättra produktiviteten hos forskarna som tränar dessa ML-modeller.

I det här inlägget delar vi hur vi byggde upp ett ledningssystem kring Amazon SageMaker utbildningsjobb, vilket gör att våra forskare kan elda och glömma tusentals experiment och bli meddelade när det behövs. De kan nu fokusera på värdefulla uppgifter och lösa algoritmiska fel, vilket sparar 60 % av sin tid.

Utmaningen

På Amazon Search löser våra forskare problem med informationshämtning genom att experimentera och köra många ML-modellutbildningsjobb på SageMaker. För att hålla jämna steg med vårt teams innovation har våra modellers komplexitet och antalet utbildningsjobb ökat över tiden. SageMaker utbildningsjobb tillåter oss att minska tiden och kostnaderna för att träna och trimma dessa modeller i stor skala, utan att behöva hantera infrastruktur.

Som allt annat i sådana här storskaliga ML-projekt kan utbildningsjobb misslyckas på grund av en mängd olika faktorer. Det här inlägget fokuserar på kapacitetsbrist och fel på grund av algoritmfel.

Vi designade en arkitektur med ett jobbhanteringssystem för att tolerera och minska sannolikheten för att ett jobb misslyckas på grund av otillgänglighet eller algoritmfel. Det gör det möjligt för forskare att avfyra och glömma tusentals utbildningsjobb, automatiskt prova dem igen vid tillfälliga misslyckanden och få besked om framgång eller misslyckande om det behövs.

Lösningsöversikt

I följande lösningsdiagram använder vi SageMaker utbildningsjobb som grundenheten i vår lösning. Det vill säga, ett jobb representerar end-to-end-utbildningen av en ML-modell.

Arbetsflödet på hög nivå för denna lösning är som följer:

  1. Forskare anropar ett API för att skicka in ett nytt jobb till systemet.
  2. Jobbet är registrerat hos New status i ett metadatalager.
  3. En jobbschemaläggare hämtar asynkront New jobb från metadataarkivet, analyserar deras input och försöker starta SageMaker-utbildningsjobb för var och en. Deras status ändras till Launched or Failed beroende på framgång.
  4. En monitor kontrollerar jobbens framsteg med jämna mellanrum och rapporterar deras Completed, Failed, eller InProgress tillstånd i metadatalagret.
  5. En anmälare utlöses att rapportera Completed och Failed jobb till forskarna.

Genom att bevara jobbhistoriken i metadataarkivet kan vårt team också genomföra trendanalyser och övervaka projektframsteg.

Denna jobbschemaläggningslösning använder löst kopplade serverlösa komponenter baserade på AWS Lambda, Amazon DynamoDB, Amazon enkel meddelandetjänst (Amazon SNS), och Amazon EventBridge. Detta säkerställer horisontell skalbarhet, vilket gör det möjligt för våra forskare att lansera tusentals jobb med minimal driftinsats. Följande diagram illustrerar den serverlösa arkitekturen.

Arkitekturöversikt över vår lösning

I de följande avsnitten går vi in ​​mer i detalj om varje tjänst och dess komponenter.

DynamoDB som metadatalager för jobbkörningar

Användarvänligheten och skalbarheten hos DynamoDB gjorde det till ett naturligt val att bevara jobbens metadata i en DynamoDB-tabell. Den här lösningen lagrar flera attribut för jobb som lämnats in av forskare, och hjälper därigenom med framstegsspårning och orkestrering av arbetsflöden. De viktigaste egenskaperna är följande:

  • Jobb id – Ett unikt jobb-ID. Detta kan genereras automatiskt eller tillhandahållas av vetenskapsmannen.
  • Jobbstatus – Status på jobbet.
  • JobArgs – Andra argument som krävs för att skapa ett träningsjobb, som inmatningsvägen i Amazon S3, träningsbildens URI och mer. För en fullständig lista över parametrar som krävs för att skapa ett utbildningsjobb, se Skapa utbildningsjobb.

Lambda för kärnlogiken

Vi använder tre containerbaserad Lambda-funktioner för att orkestrera arbetsflödet:

  • Skicka jobb – Den här funktionen åberopas av forskare när de behöver lansera nya jobb. Det fungerar som ett API för enkelhetens skull. Du kan också fronta den med Amazon API Gateway, om det behövs. Den här funktionen registrerar jobben i DynamoDB-tabellen.
  • Starta jobb – Den här funktionen hämtas med jämna mellanrum New jobb från DynamoDB-tabellen och lanserar dem med SageMaker Skapa utbildningsjobb kommando. Den försöker igen på övergående fel, som t.ex ResourceLimitExceeded och CapacityError, för att instrumentera elasticitet i systemet. Den uppdaterar sedan jobbstatusen som Launched or Failed beroende på framgång.
  • Övervaka jobb – Den här funktionen håller regelbundet reda på jobbframsteg med hjälp av BeskrivTräningsJobb kommandot och uppdaterar DynamoDB-tabellen därefter. Den omröstningar Failed jobb från metadata och bedömer om de ska skickas in igen eller markeras som slutgiltigt underkända. Den publicerar också meddelanden till forskarna när deras jobb når ett terminaltillstånd.

EventBridge för schemaläggning

Vi använder EventBridge för att köra Launch Jobs och Monitor Jobs Lambda-funktionerna enligt ett schema. För mer information, se Handledning: Schemalägg AWS Lambda-funktioner med EventBridge.

Alternativt kan du använda Amazon DynamoDB-strömmar för triggers. För mer information, se DynamoDB-strömmar och AWS Lambda utlöser.

Aviseringar med Amazon SNS

Våra forskare är meddelas via e-post med Amazon SNS när deras jobb når ett terminaltillstånd (Failed efter ett maximalt antal försök), Completed, eller Stopped.

Slutsats

I det här inlägget delade vi hur Amazon Search ger motståndskraft till arbetsbelastningar för ML-modellträning genom att schemalägga dem och försöka igen om kapacitetsbrist eller algoritmfel. Vi använde Lambda-funktioner i samband med en DynamoDB-tabell som ett centralt metadatalager för att orkestrera hela arbetsflödet.

Ett sådant schemaläggningssystem tillåter forskare att lämna in sina jobb och glömma dem. Detta sparar tid och gör att de kan fokusera på att skriva bättre modeller.

För att gå vidare i dina lärdomar kan du besöka Fantastisk SageMaker och hitta på ett enda ställe alla relevanta och uppdaterade resurser som behövs för att arbeta med SageMaker.


Om författarna

Hur Amazon Search driver storskaliga, motståndskraftiga maskininlärningsprojekt med Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Luochao Wang är mjukvaruingenjör på Amazon Search. Han fokuserar på skalbara distribuerade system och automationsverktyg i molnet för att accelerera takten för vetenskaplig innovation för Machine Learning-applikationer.

Hur Amazon Search driver storskaliga, motståndskraftiga maskininlärningsprojekt med Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Ishan Bhatt är en mjukvaruingenjör i Amazon Prime Video-teamet. Han arbetar främst inom MLOps-området och har erfarenhet av att bygga MLOps-produkter under de senaste fyra åren med Amazon SageMaker.

Hur Amazon Search driver storskaliga, motståndskraftiga maskininlärningsprojekt med Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Abhinandan Patni är senior mjukvaruingenjör på Amazon Search. Han fokuserar på att bygga system och verktyg för skalbar distribuerad djupinlärningsträning och realtidsinferens.

Hur Amazon Search driver storskaliga, motståndskraftiga maskininlärningsprojekt med Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Eiman Elnahrawy är en huvudprogramvaruingenjör på Amazon Search som leder arbetet med acceleration, skalning och automatisering av maskininlärning. Hennes expertis spänner över flera områden, inklusive maskininlärning, distribuerade system och personalisering.

Hur Amazon Search driver storskaliga, motståndskraftiga maskininlärningsprojekt med Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Sofian Hamiti är en AI / ML-specialist Solutions Solutions på AWS. Han hjälper kunder i olika branscher att påskynda sin AI / ML-resa genom att hjälpa dem att bygga och operationella helhetslösningar för maskininlärning.

Romi DattaDr Romi Datta  är en Senior Manager of Product Management i Amazon SageMaker-teamet ansvarig för utbildning, bearbetning och funktionsbutik. Han har varit i AWS i över 4 år och innehaft flera ledarskapsroller för produktledning inom SageMaker, S3 och IoT. Före AWS arbetade han i olika produktlednings-, ingenjörs- och operativa ledarroller på IBM, Texas Instruments och Nvidia. Han har en MS och Ph.D. i elektro- och datorteknik från University of Texas i Austin, och en MBA från University of Chicago Booth School of Business.

Hur Amazon Search driver storskaliga, motståndskraftiga maskininlärningsprojekt med Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.RJ är en ingenjör i Search M5-teamet som leder ansträngningarna för att bygga storskaliga system för djupinlärning för träning och slutledning. Utanför jobbet utforskar han olika maträtter och spelar racketsporter.

Tidsstämpel:

Mer från AWS maskininlärning