Hoe Amazon Search grootschalige, veerkrachtige machine learning-projecten uitvoert met Amazon SageMaker PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Hoe Amazon Search grootschalige, veerkrachtige machine learning-projecten uitvoert met Amazon SageMaker

Als je op amazon.com hebt gezocht naar een artikel om te kopen, heb je Amazon Search-services gebruikt. Bij Amazon Search zijn we verantwoordelijk voor de zoek- en ontdekkingservaring voor onze klanten over de hele wereld. Op de achtergrond indexeren we onze wereldwijde productcatalogus, implementeren we zeer schaalbare AWS-vloten en gebruiken we geavanceerde machine learning (ML) om relevante en interessante producten af โ€‹โ€‹te stemmen op de vraag van elke klant.

Onze wetenschappers trainen regelmatig duizenden ML-modellen om de kwaliteit van zoekresultaten te verbeteren. Het ondersteunen van grootschalige experimenten brengt zijn eigen uitdagingen met zich mee, vooral als het gaat om het verbeteren van de productiviteit van de wetenschappers die deze ML-modellen trainen.

In dit bericht delen we hoe we een managementsysteem hebben opgebouwd rond Amazon Sage Maker opleidingsbanen, waardoor onze wetenschappers duizenden experimenten kunnen afvuren en vergeten en indien nodig op de hoogte worden gebracht. Ze kunnen zich nu concentreren op hoogwaardige taken en het oplossen van algoritmische fouten, waardoor ze 60% van hun tijd besparen.

De uitdaging

Bij Amazon Search lossen onze wetenschappers problemen met het ophalen van informatie op door te experimenteren en talloze ML-modeltrainingstaken uit te voeren op SageMaker. Om gelijke tred te houden met de innovatie van ons team, zijn de complexiteit van onze modellen en het aantal trainingsbanen in de loop van de tijd toegenomen. Met SageMaker-trainingstaken kunnen we de tijd en kosten verminderen om die modellen op schaal te trainen en af โ€‹โ€‹te stemmen, zonder dat we de infrastructuur hoeven te beheren.

Zoals alles in dergelijke grootschalige ML-projecten, kunnen trainingstaken mislukken door verschillende factoren. Deze post richt zich op capaciteitstekorten en storingen door algoritmefouten.

We hebben een architectuur ontworpen met een taakbeheersysteem om de kans op het mislukken van een taak als gevolg van onbeschikbare capaciteit of algoritmefouten te tolereren en te verminderen. Het stelt wetenschappers in staat om duizenden trainingstaken te ontslaan en te vergeten, ze automatisch opnieuw te proberen bij tijdelijke mislukkingen en indien nodig op de hoogte te worden gesteld van succes of mislukking.

Overzicht oplossingen

In het volgende oplossingsdiagram gebruiken we SageMaker-trainingstaken als de basiseenheid van onze oplossing. Dat wil zeggen, een baan vertegenwoordigt de end-to-end training van een ML-model.

De workflow op hoog niveau van deze oplossing is als volgt:

  1. Wetenschappers roepen een API op om een โ€‹โ€‹nieuwe taak in het systeem in te dienen.
  2. De baan is geregistreerd bij de New status in een metagegevensarchief.
  3. Een taakplanner haalt asynchroon op New jobs uit het metadata-archief, parseert hun invoer en probeert SageMaker-trainingsjobs voor elke job te starten. Hun status verandert in Launched or Failed afhankelijk van succes.
  4. Een monitor controleert regelmatig de voortgang van de werkzaamheden en rapporteert hun Completed, Failedof InProgress staat in het metagegevensarchief.
  5. Een melder wordt getriggerd om te rapporteren Completed en Failed banen voor de wetenschappers.

Door de vacaturegeschiedenis in de metagegevensopslag te behouden, kan ons team ook trendanalyses uitvoeren en de projectvoortgang volgen.

Deze oplossing voor taakplanning maakt gebruik van los gekoppelde serverloze componenten op basis van: AWS Lambda, Amazon DynamoDB, Amazon eenvoudige meldingsservice (Amazon SNS), en Amazon EventBridge. Dit zorgt voor horizontale schaalbaarheid, waardoor onze wetenschappers duizenden banen kunnen lanceren met minimale operationele inspanning. Het volgende diagram illustreert de serverloze architectuur.

Architectuuroverzicht van onze oplossing

In de volgende secties gaan we dieper in op elke service en zijn componenten.

DynamoDB als het metagegevensarchief voor taakuitvoeringen

Het gebruiksgemak en de schaalbaarheid van DynamoDB maakten het een natuurlijke keuze om de metadata van de jobs in een DynamoDB-tabel te bewaren. Deze oplossing slaat verschillende kenmerken van opdrachten op die door wetenschappers zijn ingediend, wat helpt bij het volgen van de voortgang en het orkestreren van de workflow. De belangrijkste kenmerken zijn als volgt:

  • TaakID โ€“ Een unieke job-ID. Dit kan automatisch worden gegenereerd of door de wetenschapper worden verstrekt.
  • Werkstatus โ€“ De status van de taak.
  • JobArgs โ€“ Andere argumenten die nodig zijn voor het maken van een trainingstaak, zoals het invoerpad in Amazon S3, de trainingsimage-URI en meer. Voor een volledige lijst met parameters die nodig zijn om een โ€‹โ€‹trainingstaak aan te maken, zie: CreรซrenTrainingJob.

Lambda voor de kernlogica

We gebruiken drie op containers gebaseerd Lambda-functies om de taakworkflow te orkestreren:

  • Job indienen โ€“ Deze functie wordt ingeroepen door wetenschappers wanneer ze nieuwe banen moeten lanceren. Het fungeert als een API voor eenvoud. Je kunt er ook voor zorgen met Amazon API-gateway, indien nodig. Deze functie registreert de jobs in de DynamoDB-tabel.
  • Taken starten โ€“ Deze functie haalt periodiek New taken uit de DynamoDB-tabel en start ze met behulp van de SageMaker CreรซrenTrainingJob opdracht. Het probeert opnieuw op tijdelijke storingen, zoals: ResourceLimitExceeded en CapacityError, om veerkracht in het systeem te brengen. Vervolgens wordt de taakstatus bijgewerkt als: Launched or Failed afhankelijk van succes.
  • Taken controleren โ€“ Deze functie houdt periodiek de voortgang van de taak bij met behulp van de BeschrijvenTrainingJob commando en werkt de DynamoDB-tabel dienovereenkomstig bij. Het peilt Failed jobs uit de metadata en beoordeelt of ze opnieuw moeten worden ingediend of gemarkeerd als terminaal mislukt. Het publiceert ook meldingsberichten aan de wetenschappers wanneer hun baan een eindstatus bereikt.

EventBridge voor planning

We gebruiken EventBridge om de functies Launch Jobs en Monitor Jobs Lambda volgens een schema uit te voeren. Voor meer informatie, zie: Zelfstudie: AWS Lambda-functies plannen met EventBridge.

Als alternatief kunt u gebruiken Amazon DynamoDB-streams voor de triggers. Voor meer informatie, zie DynamoDB Streams en AWS Lambda-triggers.

Meldingen met Amazon SNS

Onze wetenschappers zijn per e-mail op de hoogte gebracht via Amazon SNS wanneer hun baan een terminale staat bereikt (Failed na een maximaal aantal nieuwe pogingen), Completedof Stopped.

Conclusie

In dit bericht hebben we gedeeld hoe Amazon Search veerkracht toevoegt aan workloads voor ML-modeltraining door ze te plannen en ze opnieuw te proberen bij capaciteitstekorten of algoritmefouten. We gebruikten Lambda-functies in combinatie met een DynamoDB-tabel als een centrale metagegevensopslag om de hele workflow te orkestreren.

Zo'n planningssysteem stelt wetenschappers in staat om hun banen in te dienen en ze te vergeten. Dit bespaart tijd en stelt hen in staat zich te concentreren op het schrijven van betere modellen.

Om verder te gaan in uw lessen, kunt u terecht op Geweldige SageMaker en vind op รฉรฉn plek alle relevante en actuele bronnen die nodig zijn om met SageMaker te werken.


Over de auteurs

Hoe Amazon Search grootschalige, veerkrachtige machine learning-projecten uitvoert met Amazon SageMaker PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.Luochao Wang is een Software Engineer bij Amazon Search. Hij richt zich op schaalbare gedistribueerde systemen en automatiseringstooling in de cloud om het tempo van wetenschappelijke innovatie voor Machine Learning-toepassingen te versnellen.

Hoe Amazon Search grootschalige, veerkrachtige machine learning-projecten uitvoert met Amazon SageMaker PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.Ishan Bhatt is een Software Engineer in het Amazon Prime Video-team. Hij werkt voornamelijk in de MLOps-ruimte en heeft de afgelopen 4 jaar ervaring met het bouwen van MLOps-producten met Amazon SageMaker.

Hoe Amazon Search grootschalige, veerkrachtige machine learning-projecten uitvoert met Amazon SageMaker PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.Abhinanda Patni is Senior Software Engineer bij Amazon Search. Hij richt zich op het bouwen van systemen en tooling voor schaalbare gedistribueerde deep learning-training en realtime inferentie.

Hoe Amazon Search grootschalige, veerkrachtige machine learning-projecten uitvoert met Amazon SageMaker PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.Eiman Elnahrawy is een Principal Software Engineer bij Amazon Search en leidt de inspanningen op het gebied van versnelling, schaling en automatisering van Machine Learning. Haar expertise omvat meerdere gebieden, waaronder machine learning, gedistribueerde systemen en personalisatie.

Hoe Amazon Search grootschalige, veerkrachtige machine learning-projecten uitvoert met Amazon SageMaker PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.Sofia Hamiti is een AI / ML-specialist Solutions Architect bij AWS. Hij helpt klanten in verschillende bedrijfstakken hun AI / ML-traject te versnellen door hen te helpen bij het bouwen en operationaliseren van end-to-end machine learning-oplossingen.

Romi DattaDr Romi Datta  is een Senior Manager Product Management in het Amazon SageMaker-team dat verantwoordelijk is voor training, verwerking en feature store. Hij werkt al meer dan 4 jaar bij AWS en bekleedde verschillende leidinggevende functies op het gebied van productbeheer in SageMaker, S3 en IoT. Voorafgaand aan AWS werkte hij in verschillende productmanagement-, engineering- en operationele leiderschapsrollen bij IBM, Texas Instruments en Nvidia. Hij heeft een MS en Ph.D. in Electrical and Computer Engineering van de University of Texas in Austin, en een MBA van de University of Chicago Booth School of Business.

Hoe Amazon Search grootschalige, veerkrachtige machine learning-projecten uitvoert met Amazon SageMaker PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.RJ is een ingenieur in het Search M5-team dat de inspanningen leidt voor het bouwen van grootschalige deep learning-systemen voor training en inferentie. Buiten zijn werk verkent hij verschillende keukens en speelt hij racketsporten.

Tijdstempel:

Meer van AWS-machine learning