Cum Amazon Search rulează proiecte de învățare automată la scară largă și rezistente cu Amazon SageMaker PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Cum Amazon Search rulează proiecte de învățare automată la scară largă și rezistente cu Amazon SageMaker

Dacă ați căutat un articol de cumpărat pe amazon.com, ați folosit serviciile Amazon Search. La Amazon Search, suntem responsabili pentru experiența de căutare și descoperire pentru clienții noștri din întreaga lume. În fundal, indexăm catalogul nostru mondial de produse, implementăm flote AWS extrem de scalabile și folosim învățarea automată avansată (ML) pentru a potrivi produse relevante și interesante la interogarea fiecărui client.

Oamenii noștri de știință antrenează în mod regulat mii de modele ML pentru a îmbunătăți calitatea rezultatelor căutării. Sprijinirea experimentelor la scară largă prezintă propriile provocări, mai ales când vine vorba de îmbunătățirea productivității oamenilor de știință care pregătesc aceste modele ML.

În această postare, vă împărtășim cum am construit un sistem de management Amazon SageMaker locuri de muncă de formare, permițându-le oamenilor de știință să lanseze și să uite mii de experimente și să fie anunțați atunci când este necesar. Acum se pot concentra pe sarcini de mare valoare și pe rezolvarea erorilor algoritmice, economisind 60% din timp.

Provocarea

La Amazon Search, oamenii de știință rezolvă problemele de regăsire a informațiilor experimentând și rulând numeroase joburi de formare a modelelor ML pe SageMaker. Pentru a ține pasul cu inovația echipei noastre, complexitatea modelelor noastre și numărul de locuri de muncă de formare au crescut de-a lungul timpului. Joburile de instruire SageMaker ne permit să reducem timpul și costurile de instruire și reglare a acelor modele la scară, fără a fi nevoie să gestionăm infrastructura.

La fel ca tot în astfel de proiecte ML la scară largă, locurile de muncă de formare pot eșua din cauza unei varietăți de factori. Această postare se concentrează pe deficitele de capacitate și eșecurile din cauza erorilor de algoritm.

Am proiectat o arhitectură cu un sistem de management al joburilor pentru a tolera și a reduce probabilitatea eșecului unui job din cauza indisponibilității capacității sau a erorilor de algoritm. Le permite oamenilor de știință să declanșeze și să uite mii de joburi de formare, să le reîncerce automat în caz de eșec tranzitoriu și să fie anunțați despre succes sau eșec, dacă este necesar.

Prezentare generală a soluțiilor

În următoarea diagramă a soluției, folosim joburile de formare SageMaker ca unitate de bază a soluției noastre. Adică, un job reprezintă antrenamentul end-to-end a unui model ML.

Fluxul de lucru la nivel înalt al acestei soluții este următorul:

  1. Oamenii de știință invocă un API pentru a trimite un nou loc de muncă la sistem.
  2. Postul este înregistrat la New starea într-un depozit de metadate.
  3. Un planificator de joburi preia asincron New joburi din depozitul de metadate, le analizează intrarea și încearcă să lanseze joburi de instruire SageMaker pentru fiecare. Statutul lor se schimbă în Launched or Failed in functie de succes.
  4. Un monitor verifică progresul lucrărilor la intervale regulate și le raportează Completed, Failed, Sau InProgress stare în depozitul de metadate.
  5. Un notificator este declanșat să raporteze Completed și Failed locuri de muncă pentru oamenii de știință.

Persistența istoricului locurilor de muncă din magazinul de metadate permite, de asemenea, echipei noastre să efectueze analize de tendințe și să monitorizeze progresul proiectului.

Această soluție de programare a lucrărilor folosește componente fără server cuplate slab pe baza AWS Lambdas, Amazon DynamoDB, Serviciul de notificare simplă Amazon (Amazon SNS) și Amazon EventBridge. Acest lucru asigură scalabilitate orizontală, permițând oamenilor de știință să lanseze mii de locuri de muncă cu un efort operațional minim. Următoarea diagramă ilustrează arhitectura fără server.

Prezentare generală a arhitecturii soluției noastre

În secțiunile următoare, intrăm în mai multe detalii despre fiecare serviciu și componentele acestuia.

DynamoDB ca depozit de metadate pentru rulările de job

Ușurința de utilizare și scalabilitatea DynamoDB au făcut ca o alegere naturală să persiste metadatele joburilor într-un tabel DynamoDB. Această soluție stochează mai multe atribute ale joburilor trimise de oamenii de știință, ajutând astfel la urmărirea progresului și la orchestrarea fluxului de lucru. Cele mai importante atribute sunt următoarele:

  • JobId – Un ID unic al postului. Acesta poate fi generat automat sau furnizat de un om de știință.
  • JobStatus – Starea postului.
  • JobArgs – Alte argumente necesare pentru crearea unui job de antrenament, cum ar fi calea de intrare în Amazon S3, URI-ul imaginii de antrenament și multe altele. Pentru o listă completă a parametrilor necesari pentru a crea un job de formare, consultați CreateTrainingJob.

Lambda pentru logica de bază

Folosim trei pe bază de containere Funcții Lambda pentru a orchestra fluxul de lucru:

  • Trimiteți job – Această funcție este invocată de oamenii de știință atunci când trebuie să lanseze noi locuri de muncă. Acționează ca un API pentru simplitate. Puteți, de asemenea, să-l în față Gateway API Amazon, daca este nevoie. Această funcție înregistrează joburile în tabelul DynamoDB.
  • Lansați Jobs – Această funcție recuperează periodic New joburi din tabelul DynamoDB și le lansează folosind SageMaker CreateTrainingJob comanda. Reîncearcă în cazul eșecurilor tranzitorii, cum ar fi ResourceLimitExceeded și CapacityError, pentru a instrumenta reziliența în sistem. Apoi actualizează starea jobului ca Launched or Failed in functie de succes.
  • Monitorizarea locurilor de muncă – Această funcție ține evidența periodică a progresului lucrării folosind funcția DescrieTrainingJob comandă și actualizează tabelul DynamoDB în consecință. Sondaj Failed joburi din metadate și evaluează dacă ar trebui retrimise sau marcate ca eșuate definitiv. De asemenea, publică mesaje de notificare pentru oamenii de știință atunci când locurile lor de muncă ajung într-o stare terminală.

EventBridge pentru programare

Folosim EventBridge pentru a rula funcțiile Lambda Jobs și Monitor Jobs într-un program. Pentru mai multe informații, consultați Tutorial: Programați funcții AWS Lambda folosind EventBridge.

Alternativ, puteți utiliza Fluxuri Amazon DynamoDB pentru declanșatoare. Pentru mai multe informații, vezi Fluxuri DynamoDB și declanșatoare AWS Lambda.

Notificări cu Amazon SNS

Oamenii noștri de știință sunt notificat prin e-mail folosind Amazon SNS când locurile lor de muncă ajung într-o stare terminală (Failed după un număr maxim de încercări), Completed, Sau Stopped.

Concluzie

În această postare, am împărtășit modul în care Amazon Search adaugă rezistență la sarcinile de lucru de formare a modelului ML, programându-le și reîncercându-le în caz de deficit de capacitate sau erori de algoritm. Am folosit funcțiile Lambda împreună cu un tabel DynamoDB ca magazin central de metadate pentru a orchestra întregul flux de lucru.

Un astfel de sistem de programare le permite oamenilor de știință să își prezinte locurile de muncă și să uite de ele. Acest lucru economisește timp și le permite să se concentreze pe scrierea unor modele mai bune.

Pentru a merge mai departe în învățările tale, poți vizita Minunat SageMaker și găsiți într-un singur loc, toate resursele relevante și actualizate necesare pentru a lucra cu SageMaker.


Despre Autori

Cum Amazon Search rulează proiecte de învățare automată la scară largă și rezistente cu Amazon SageMaker PlatoBlockchain Data Intelligence. Căutare verticală. Ai.Luochao Wang este inginer software la Amazon Search. El se concentrează pe sisteme distribuite scalabile și instrumente de automatizare în cloud pentru a accelera ritmul inovației științifice pentru aplicațiile de învățare automată.

Cum Amazon Search rulează proiecte de învățare automată la scară largă și rezistente cu Amazon SageMaker PlatoBlockchain Data Intelligence. Căutare verticală. Ai.Ishan Bhatt este inginer software în echipa Amazon Prime Video. Lucrează în principal în spațiul MLOps și are experiență în construirea de produse MLOps în ultimii 4 ani folosind Amazon SageMaker.

Cum Amazon Search rulează proiecte de învățare automată la scară largă și rezistente cu Amazon SageMaker PlatoBlockchain Data Intelligence. Căutare verticală. Ai.Abhinandan Patni este inginer software senior la Amazon Search. El se concentrează pe construirea de sisteme și instrumente pentru instruire de deep learning distribuită scalabil și inferență în timp real.

Cum Amazon Search rulează proiecte de învățare automată la scară largă și rezistente cu Amazon SageMaker PlatoBlockchain Data Intelligence. Căutare verticală. Ai.Eiman Elnahrawy este inginer software principal la Amazon Search, care conduce eforturile de accelerare, scalare și automatizare a învățării automate. Expertiza ei se întinde pe mai multe domenii, inclusiv învățarea automată, sistemele distribuite și personalizarea.

Cum Amazon Search rulează proiecte de învățare automată la scară largă și rezistente cu Amazon SageMaker PlatoBlockchain Data Intelligence. Căutare verticală. Ai.Sofian Hamiti este un specialist în AI / ML soluție arhitect la AWS. El îi ajută pe clienții din toate industriile să-și accelereze călătoria AI / ML, ajutându-i să construiască și să pună în funcțiune soluții de învățare automată end-to-end.

Romi DattaDr. Romi Datta  este Senior Manager de Product Management în echipa Amazon SageMaker responsabilă de instruire, procesare și magazin de funcții. El este în AWS de peste 4 ani, deținând mai multe roluri de conducere în managementul produselor în SageMaker, S3 și IoT. Înainte de AWS, a lucrat în diverse funcții de management de produs, inginerie și conducere operațională la IBM, Texas Instruments și Nvidia. Are un MS și un doctorat. în Inginerie Electrică și Calculatoare de la Universitatea Texas din Austin și un MBA de la Universitatea din Chicago Booth School of Business.

Cum Amazon Search rulează proiecte de învățare automată la scară largă și rezistente cu Amazon SageMaker PlatoBlockchain Data Intelligence. Căutare verticală. Ai.RJ este un inginer în echipa Search M5, care conduce eforturile pentru construirea de sisteme de învățare profundă la scară largă pentru instruire și inferență. În afara serviciului, el explorează diferite bucătării și joacă sporturi cu rachetă.

Timestamp-ul:

Mai mult de la Învățare automată AWS