Wie Amazon Search mit Amazon SageMaker PlatoBlockchain Data Intelligence groß angelegte, ausfallsichere Machine-Learning-Projekte durchführt. Vertikale Suche. Ai.

Wie Amazon Search mit Amazon SageMaker große, ausfallsichere Machine-Learning-Projekte durchführt

Wenn Sie auf amazon.com nach einem Artikel gesucht haben, den Sie kaufen möchten, haben Sie die Amazon-Suchdienste verwendet. Bei Amazon Search sind wir für das Such- und Entdeckungserlebnis unserer Kunden weltweit verantwortlich. Im Hintergrund indizieren wir unseren weltweiten Produktkatalog, setzen hochgradig skalierbare AWS-Flotten ein und verwenden fortschrittliches maschinelles Lernen (ML), um relevante und interessante Produkte mit jeder Kundenanfrage abzugleichen.

Unsere Wissenschaftler trainieren regelmäßig Tausende von ML-Modellen, um die Qualität der Suchergebnisse zu verbessern. Die Unterstützung groß angelegter Experimente stellt eigene Herausforderungen dar, insbesondere wenn es darum geht, die Produktivität der Wissenschaftler zu verbessern, die diese ML-Modelle trainieren.

In diesem Beitrag teilen wir mit, wie wir ein Managementsystem aufgebaut haben Amazon Sage Maker Schulungsjobs, die es unseren Wissenschaftlern ermöglichen, Tausende von Experimenten zu löschen und zu vergessen und bei Bedarf benachrichtigt zu werden. Sie können sich jetzt auf hochwertige Aufgaben konzentrieren und algorithmische Fehler beheben, was 60 % ihrer Zeit spart.

Die Herausforderung

Bei Amazon Search lösen unsere Wissenschaftler Probleme beim Abrufen von Informationen, indem sie zahlreiche ML-Modell-Trainingsjobs auf SageMaker experimentieren und ausführen. Um mit der Innovation unseres Teams Schritt zu halten, haben die Komplexität unserer Modelle und die Anzahl der Schulungsaufträge im Laufe der Zeit zugenommen. Mit SageMaker-Schulungsjobs können wir den Zeit- und Kostenaufwand für das Training und Tuning dieser Modelle im großen Maßstab reduzieren, ohne die Infrastruktur verwalten zu müssen.

Wie alles in solchen großen ML-Projekten können Trainingsjobs aufgrund einer Vielzahl von Faktoren scheitern. Dieser Beitrag konzentriert sich auf Kapazitätsengpässe und Ausfälle aufgrund von Algorithmusfehlern.

Wir haben eine Architektur mit einem Job-Management-System entworfen, um die Wahrscheinlichkeit zu tolerieren und zu reduzieren, dass ein Job aufgrund von Kapazitätsmangel oder Algorithmusfehlern fehlschlägt. Es ermöglicht Wissenschaftlern, Tausende von Trainingsjobs zu löschen und zu vergessen, sie bei vorübergehenden Fehlern automatisch erneut zu versuchen und bei Bedarf über Erfolg oder Misserfolg benachrichtigt zu werden.

Lösungsüberblick

Im folgenden Lösungsdiagramm verwenden wir SageMaker-Trainingsjobs als Grundeinheit unserer Lösung. Das heißt, ein Job repräsentiert das End-to-End-Training eines ML-Modells.

Der High-Level-Workflow dieser Lösung sieht wie folgt aus:

  1. Wissenschaftler rufen eine API auf, um einen neuen Job an das System zu senden.
  2. Die Stelle ist bei der gemeldet New Status in einem Metadatenspeicher.
  3. Ein Job-Scheduler ruft asynchron ab New Jobs aus dem Metadatenspeicher, parst ihre Eingabe und versucht, SageMaker-Trainingsjobs für jeden einzelnen zu starten. Ihr Status ändert sich zu Launched or Failed je nach erfolg.
  4. Ein Monitor überprüft in regelmäßigen Abständen den Fortschritt der Jobs und meldet deren Verlauf Completed, Failed, oder InProgress Status im Metadatenspeicher.
  5. Ein Melder wird zum Melden veranlasst Completed und Failed Arbeitsplätze für die Wissenschaftler.

Durch die Beibehaltung des Auftragsverlaufs im Metadatenspeicher kann unser Team auch Trendanalysen durchführen und den Projektfortschritt überwachen.

Diese Job-Scheduling-Lösung verwendet lose gekoppelte serverlose Komponenten auf Basis von AWS Lambda, Amazon DynamoDB, Amazon Simple Notification Service (Amazon SNS) und Amazon EventBridge. Dies gewährleistet eine horizontale Skalierbarkeit, die es unseren Wissenschaftlern ermöglicht, Tausende von Jobs mit minimalem Betriebsaufwand zu starten. Das folgende Diagramm veranschaulicht die serverlose Architektur.

Architekturübersicht unserer Lösung

In den folgenden Abschnitten gehen wir detaillierter auf jeden Dienst und seine Komponenten ein.

DynamoDB als Metadatenspeicher für Jobausführungen

Die Benutzerfreundlichkeit und Skalierbarkeit von DynamoDB machten es zu einer natürlichen Wahl, die Job-Metadaten in einer DynamoDB-Tabelle beizubehalten. Diese Lösung speichert mehrere Attribute von Jobs, die von Wissenschaftlern eingereicht wurden, und hilft so bei der Fortschrittsverfolgung und Workflow-Orchestrierung. Die wichtigsten Attribute sind wie folgt:

  • Job-ID – Eine eindeutige Job-ID. Diese kann automatisch generiert oder vom Wissenschaftler bereitgestellt werden.
  • Beruflicher Status – Der Status des Jobs.
  • JobArgs – Andere Argumente, die zum Erstellen eines Trainingsjobs erforderlich sind, wie z. B. der Eingabepfad in Amazon S3, der Trainingsbild-URI und mehr. Eine vollständige Liste der Parameter, die zum Erstellen eines Trainingsjobs erforderlich sind, finden Sie unter ErstellenTrainingJob.

Lambda für die Kernlogik

Wir verwenden drei containerbasiert Lambda-Funktionen zur Orchestrierung des Job-Workflows:

  • Auftrag senden – Diese Funktion wird von Wissenschaftlern aufgerufen, wenn sie neue Jobs starten müssen. Es fungiert der Einfachheit halber als API. Sie können es auch mit frontieren Amazon API-Gateway, wenn benötigt. Diese Funktion registriert die Jobs in der DynamoDB-Tabelle.
  • Jobs starten – Diese Funktion ruft regelmäßig ab New Jobs aus der DynamoDB-Tabelle und startet sie mit SageMaker ErstellenTrainingJob Befehl. Bei vorübergehenden Fehlern, wie z ResourceLimitExceeded und CapacityError, um Resilienz im System zu instrumentieren. Es aktualisiert dann den Auftragsstatus als Launched or Failed je nach erfolg.
  • Jobs überwachen – Diese Funktion verfolgt regelmäßig den Auftragsfortschritt mithilfe von Ausbildungsberuf beschreiben Befehl und aktualisiert die DynamoDB-Tabelle entsprechend. Es fragt ab Failed Jobs aus den Metadaten und bewertet, ob sie erneut übermittelt oder als endgültig fehlgeschlagen markiert werden sollten. Es veröffentlicht auch Benachrichtigungen an die Wissenschaftler, wenn ihre Jobs einen Endzustand erreichen.

EventBridge für die Planung

Wir verwenden EventBridge, um die Lambda-Funktionen „Jobs starten“ und „Jobs überwachen“ nach einem Zeitplan auszuführen. Weitere Informationen finden Sie unter Tutorial: Planen von AWS Lambda-Funktionen mit EventBridge.

Alternativ können Sie auch verwenden Amazon DynamoDB-Streams für die Trigger. Weitere Informationen finden Sie unter DynamoDB-Streams und AWS Lambda-Trigger.

Benachrichtigungen mit Amazon SNS

Unsere Wissenschaftler sind per E-Mail über Amazon SNS benachrichtigt wenn ihre Jobs einen Endzustand erreichen (Failed nach einer maximalen Anzahl von Wiederholungen), Completed, oder Stopped.

Zusammenfassung

In diesem Beitrag haben wir mitgeteilt, wie Amazon Search die Trainingslasten von ML-Modellen widerstandsfähiger macht, indem es sie plant und bei Kapazitätsengpässen oder Algorithmusfehlern wiederholt. Wir haben Lambda-Funktionen in Verbindung mit einer DynamoDB-Tabelle als zentralen Metadatenspeicher verwendet, um den gesamten Workflow zu orchestrieren.

Ein solches Planungssystem ermöglicht es Wissenschaftlern, ihre Jobs einzureichen und sie zu vergessen. Das spart Zeit und ermöglicht es ihnen, sich auf das Schreiben besserer Modelle zu konzentrieren.

Um weiter zu lernen, können Sie besuchen Genialer SageMaker und finden Sie an einem einzigen Ort alle relevanten und aktuellen Ressourcen, die für die Arbeit mit SageMaker benötigt werden.


Über die Autoren

Wie Amazon Search mit Amazon SageMaker PlatoBlockchain Data Intelligence groß angelegte, ausfallsichere Machine-Learning-Projekte durchführt. Vertikale Suche. Ai.Luochao Wang ist Software Engineer bei Amazon Search. Er konzentriert sich auf skalierbare verteilte Systeme und Automatisierungstools in der Cloud, um das Tempo der wissenschaftlichen Innovation für Anwendungen des maschinellen Lernens zu beschleunigen.

Wie Amazon Search mit Amazon SageMaker PlatoBlockchain Data Intelligence groß angelegte, ausfallsichere Machine-Learning-Projekte durchführt. Vertikale Suche. Ai.Ishan Bhatt ist Software Engineer im Amazon Prime Video-Team. Er arbeitet hauptsächlich im MLOps-Bereich und hat in den letzten 4 Jahren Erfahrung in der Entwicklung von MLOps-Produkten mit Amazon SageMaker.

Wie Amazon Search mit Amazon SageMaker PlatoBlockchain Data Intelligence groß angelegte, ausfallsichere Machine-Learning-Projekte durchführt. Vertikale Suche. Ai.Abhinandan Patni ist Senior Software Engineer bei Amazon Search. Er konzentriert sich auf den Aufbau von Systemen und Werkzeugen für skalierbares verteiltes Deep-Learning-Training und Echtzeit-Inferenz.

Wie Amazon Search mit Amazon SageMaker PlatoBlockchain Data Intelligence groß angelegte, ausfallsichere Machine-Learning-Projekte durchführt. Vertikale Suche. Ai.Eiman Elnahrawy ist Principal Software Engineer bei Amazon Search und leitet die Bemühungen zur Beschleunigung, Skalierung und Automatisierung des maschinellen Lernens. Ihre Expertise umfasst mehrere Bereiche, darunter maschinelles Lernen, verteilte Systeme und Personalisierung.

Wie Amazon Search mit Amazon SageMaker PlatoBlockchain Data Intelligence groß angelegte, ausfallsichere Machine-Learning-Projekte durchführt. Vertikale Suche. Ai.Sofian Hamiti ist ein AI / ML-spezialisierter Lösungsarchitekt bei AWS. Er hilft Kunden in verschiedenen Branchen, ihre AI / ML-Reise zu beschleunigen, indem er ihnen hilft, durchgängige Lösungen für maschinelles Lernen zu entwickeln und zu operationalisieren.

Romi DattaDr. Romi Datta  ist Senior Manager of Product Management im Amazon SageMaker-Team und verantwortlich für Training, Processing und Feature Store. Er ist seit über 4 Jahren bei AWS und hatte mehrere Führungspositionen im Produktmanagement in SageMaker, S3 und IoT inne. Vor AWS arbeitete er in verschiedenen Produktmanagement-, Engineering- und operativen Führungspositionen bei IBM, Texas Instruments und Nvidia. Er hat einen MS und Ph.D. in Elektro- und Computertechnik von der University of Texas at Austin und einen MBA von der Booth School of Business der University of Chicago.

Wie Amazon Search mit Amazon SageMaker PlatoBlockchain Data Intelligence groß angelegte, ausfallsichere Machine-Learning-Projekte durchführt. Vertikale Suche. Ai.RJ ist ein Ingenieur im Search M5-Team, das die Bemühungen zum Aufbau groß angelegter Deep-Learning-Systeme für Training und Inferenz leitet. Außerhalb der Arbeit erkundet er verschiedene Küchen und spielt Schlägersport.

Zeitstempel:

Mehr von AWS Maschinelles Lernen