Hvordan Amazon Search kører store, robuste maskinlæringsprojekter med Amazon SageMaker PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Hvordan Amazon Search kører store, robuste maskinlæringsprojekter med Amazon SageMaker

Hvis du har søgt efter en vare at købe på amazon.com, har du brugt Amazon Search-tjenester. Hos Amazon Search er vi ansvarlige for søge- og opdagelsesoplevelsen for vores kunder over hele verden. I baggrunden indekserer vi vores verdensomspændende produktkatalog, implementerer meget skalerbare AWS-flåder og bruger avanceret maskinlæring (ML) til at matche relevante og interessante produkter til enhver kundes forespørgsel.

Vores videnskabsmænd træner regelmæssigt tusindvis af ML-modeller for at forbedre kvaliteten af ​​søgeresultaterne. Støtte til eksperimenter i stor skala giver sine egne udfordringer, især når det kommer til at forbedre produktiviteten af ​​de videnskabsmænd, der træner disse ML-modeller.

I dette indlæg deler vi, hvordan vi byggede et ledelsessystem op omkring Amazon SageMaker træningsjob, der giver vores videnskabsfolk mulighed for at fyre og glemme tusindvis af eksperimenter og blive underrettet, når det er nødvendigt. De kan nu fokusere på opgaver af høj værdi og løsning af algoritmiske fejl, hvilket sparer 60 % af deres tid.

Udfordringen

Hos Amazon Search løser vores forskere problemer med informationssøgning ved at eksperimentere og køre adskillige ML model træningsjob på SageMaker. For at følge med vores teams innovation er vores modellers kompleksitet og antallet af træningsjob steget over tid. SageMaker træningsjob giver os mulighed for at reducere tiden og omkostningerne til at træne og tune disse modeller i stor skala uden behov for at administrere infrastruktur.

Som alt andet i sådanne store ML-projekter kan træningsjob mislykkes på grund af en række forskellige faktorer. Dette indlæg fokuserer på kapacitetsmangel og fejl på grund af algoritmefejl.

Vi har designet en arkitektur med et jobadministrationssystem for at tolerere og reducere sandsynligheden for, at et job mislykkes på grund af manglende kapacitet eller algoritmefejl. Det giver videnskabsfolk mulighed for at fyre og glemme tusindvis af træningsjob, automatisk prøve dem igen ved forbigående fejl og få besked om succes eller fiasko, hvis det er nødvendigt.

Løsningsoversigt

I det følgende løsningsdiagram bruger vi SageMaker træningsjob som den grundlæggende enhed i vores løsning. Det vil sige, at et job repræsenterer end-to-end-uddannelsen af ​​en ML-model.

Arbejdsgangen på højt niveau for denne løsning er som følger:

  1. Forskere påberåber sig en API for at indsende et nyt job til systemet.
  2. Jobbet er tilmeldt New status i et metadatalager.
  3. En jobplanlægger henter asynkront New jobs fra metadatalageret, analyserer deres input og forsøger at starte SageMaker træningsjob for hver enkelt. Deres status ændres til Launched or Failed afhængig af succes.
  4. En monitor kontrollerer arbejdets fremskridt med jævne mellemrum og rapporterer deres Completed, Failed eller InProgress tilstand i metadatalageret.
  5. En anmelder udløses til at rapportere Completed , Failed job til forskerne.

Ved at bevare jobhistorikken i metadatalageret kan vores team også udføre trendanalyse og overvåge projektfremskridt.

Denne jobplanlægningsløsning bruger løst koblede serverløse komponenter baseret på AWS Lambda, Amazon DynamoDB, Amazon Simple Notification Service (Amazon SNS), og Amazon Eventbridge. Dette sikrer horisontal skalerbarhed, hvilket giver vores forskere mulighed for at iværksætte tusindvis af jobs med minimal driftsindsats. Følgende diagram illustrerer den serverløse arkitektur.

Arkitektur oversigt over vores løsning

I de følgende afsnit går vi nærmere ind på hver tjeneste og dens komponenter.

DynamoDB som metadatalager for jobkørsler

Brugervenligheden og skalerbarheden af ​​DynamoDB gjorde det til et naturligt valg at bevare jobmetadataene i en DynamoDB-tabel. Denne løsning gemmer adskillige attributter for job indsendt af videnskabsmænd og hjælper derved med fremskridtssporing og workflow-orkestrering. De vigtigste egenskaber er som følger:

  • JobId – Et unikt job-id. Dette kan være automatisk genereret eller leveret af videnskabsmanden.
  • Jobstatus – Jobbets status.
  • JobArgs – Andre argumenter, der kræves for at skabe et træningsjob, såsom inputstien i Amazon S3, træningsbilledet URI og mere. Se en komplet liste over parametre, der kræves for at oprette et træningsjob Skab Træningsjob.

Lambda for kernelogikken

Vi bruger tre containerbaseret Lambda-funktioner til at orkestrere job-workflowet:

  • Send job – Denne funktion påberåbes af videnskabsmænd, når de skal lancere nye job. Det fungerer som en API for enkelhedens skyld. Du kan også fronte den med Amazon API Gateway, hvis det er nødvendigt. Denne funktion registrerer job i DynamoDB-tabellen.
  • Start Jobs – Denne funktion henter periodisk New job fra DynamoDB-tabellen og lancerer dem ved hjælp af SageMaker Skab Træningsjob kommando. Den prøver igen på forbigående fejl, som f.eks ResourceLimitExceeded , CapacityError, for at instrumentere elasticitet i systemet. Den opdaterer derefter jobstatus som Launched or Failed afhængig af succes.
  • Overvåg job – Denne funktion holder periodisk styr på jobfremskridt ved hjælp af Beskriv Træningsjob kommando og opdaterer DynamoDB-tabellen i overensstemmelse hermed. Det afstemninger Failed job fra metadataene og vurderer, om de skal genindsendes eller markeres som terminalt mislykkede. Den udgiver også meddelelser til forskerne, når deres job når en terminal tilstand.

EventBridge til planlægning

Vi bruger EventBridge til at køre Launch Jobs og Monitor Jobs Lambda-funktionerne efter en tidsplan. For mere information, se Selvstudium: Planlæg AWS Lambda-funktioner ved hjælp af EventBridge.

Alternativt kan du bruge Amazon DynamoDB-streams for udløserne. For mere information, se DynamoDB Streams og AWS Lambda-udløsere.

Meddelelser med Amazon SNS

Vores videnskabsmænd er underrettet via e-mail ved hjælp af Amazon SNS når deres job når en terminal tilstand (Failed efter et maksimalt antal genforsøg), Completed eller Stopped.

Konklusion

I dette indlæg delte vi, hvordan Amazon Search tilføjer modstandsdygtighed til ML-modellens træningsarbejdsbelastninger ved at planlægge dem og prøve dem igen ved kapacitetsmangel eller algoritmefejl. Vi brugte Lambda-funktioner i forbindelse med en DynamoDB-tabel som et centralt metadatalager til at orkestrere hele arbejdsgangen.

Et sådant planlægningssystem giver videnskabsfolk mulighed for at indsende deres job og glemme dem. Dette sparer tid og giver dem mulighed for at fokusere på at skrive bedre modeller.

For at gå videre i din læring, kan du besøge Fantastisk SageMaker og find på et enkelt sted alle de relevante og opdaterede ressourcer, der er nødvendige for at arbejde med SageMaker.


Om forfatterne

Hvordan Amazon Search kører store, robuste maskinlæringsprojekter med Amazon SageMaker PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Luochao Wang er softwareingeniør hos Amazon Search. Han fokuserer på skalerbare distribuerede systemer og automatiseringsværktøjer i skyen for at accelerere tempoet for videnskabelig innovation til Machine Learning-applikationer.

Hvordan Amazon Search kører store, robuste maskinlæringsprojekter med Amazon SageMaker PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Ishan Bhatt er softwareingeniør i Amazon Prime Video-teamet. Han arbejder primært i MLOps-området og har erfaring med at bygge MLOps-produkter i de sidste 4 år ved hjælp af Amazon SageMaker.

Hvordan Amazon Search kører store, robuste maskinlæringsprojekter med Amazon SageMaker PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Abhinandan Patni er senior softwareingeniør hos Amazon Search. Han fokuserer på at bygge systemer og værktøjer til skalerbar distribueret deep learning-træning og realtidsslutning.

Hvordan Amazon Search kører store, robuste maskinlæringsprojekter med Amazon SageMaker PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Eiman Elnahrawy er en hovedsoftwareingeniør hos Amazon Search, der leder indsatsen for acceleration, skalering og automatisering af maskinlæring. Hendes ekspertise spænder over flere områder, herunder Machine Learning, Distributed Systems og Personalization.

Hvordan Amazon Search kører store, robuste maskinlæringsprojekter med Amazon SageMaker PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Sofian Hamiti er AI/ML specialist Solutions Architect hos AWS. Han hjælper kunder på tværs af brancher med at accelerere deres AI/ML-rejse ved at hjælpe dem med at bygge og operationalisere end-to-end maskinlæringsløsninger.

Romi DattaDr. Romi Datta  er en Senior Manager for Product Management i Amazon SageMaker-teamet med ansvar for træning, behandling og featurebutik. Han har været i AWS i over 4 år, og han har haft flere lederroller inden for produktledelse i SageMaker, S3 og IoT. Før AWS arbejdede han i forskellige produktledelses-, ingeniør- og operationelle lederroller hos IBM, Texas Instruments og Nvidia. Han har en MS og Ph.D. i Electrical and Computer Engineering fra University of Texas i Austin og en MBA fra University of Chicago Booth School of Business.

Hvordan Amazon Search kører store, robuste maskinlæringsprojekter med Amazon SageMaker PlatoBlockchain Data Intelligence. Lodret søgning. Ai.RJ er en ingeniør i Search M5-teamet, der leder bestræbelserne på at bygge storskala deep learning-systemer til træning og inferens. Uden for arbejdet udforsker han forskellige madkøkkener og dyrker ketsjersport.

Tidsstempel:

Mere fra AWS maskinindlæring