Best Practices für Amazon SageMaker Training Managed Warm Pools

Amazon SageMaker Training Managed Warm Pools gibt Ihnen die Flexibilität, sich für die Wiederverwendung zu entscheiden und die zugrunde liegende Infrastruktur für einen benutzerdefinierten Zeitraum zu behalten. Dies geschieht unter Beibehaltung des Vorteils, das undifferenzierte schwere Heben der Verwaltung von Compute-Instanzen an zu übergeben Amazon SageMaker-Modellschulung. In diesem Beitrag skizzieren wir die wichtigsten Vorteile und Schwachstellen, die von SageMaker Training Managed Warm Pools angesprochen werden, sowie Benchmarks und Best Practices.

Überblick über SageMaker Training Managed Warm Pools

SageMaker Model Training ist eine vollständig verwaltete Funktion, die Instanzen für jeden Job hochfährt, ein Modell trainiert, ausführt und Instanzen nach dem Job herunterfährt. Ihnen wird nur die Dauer des Auftrags sekundengenau in Rechnung gestellt. Diese vollständig verwaltete Funktion gibt Ihnen die Freiheit, sich auf Ihren Algorithmus für maschinelles Lernen (ML) zu konzentrieren und sich beim Trainieren Ihrer Modelle nicht um undifferenzierte Schwerstarbeit wie das Infrastrukturmanagement zu kümmern.

Dieser Mechanismus erfordert eine endliche Startzeit für einen Trainingsjob. Obwohl diese Startzeit, auch bekannt als Kaltstart Startzeit, ziemlich niedrig ist, erfordern einige unserer anspruchsvollsten Kundenanwendungsfälle noch kürzere Startzeiten, z. B. unter 20 Sekunden. Es gibt zwei prominente Anwendungsfälle, die diese Anforderungen haben:

  • Das erste sind aktive ML-Experimente von Data Scientists mit dem Amazon Sage Maker Trainingsplattform, insbesondere beim Training großer Modelle wie GPT3, die mehrere Iterationen erfordern, um einen produktionsbereiten Zustand zu erreichen.
  • Die zweite ist der programmatische Start einer großen Anzahl (in der Größenordnung von mehreren Hundert oder Tausend) aufeinanderfolgender Jobs auf derselben Art von Instanzen in einem geplanten Rhythmus. Beispielsweise Parametersuche oder inkrementelles Training.

Für solche Anwendungsfälle wirkt sich jede Sekunde, die für Overhead aufgewendet wird, wie die Startzeit für einen Schulungsjob, kumulativ auf alle diese Jobs aus.

Mit SageMaker Training Managed Warm Pools haben Data Scientists und ML-Ingenieure die Möglichkeit, SageMaker-Trainingsinstanzen oder Cluster mit mehreren Instanzen für eine vorab festgelegte und rekonfigurierbare Zeit warm zu halten (keep_alive_period_in_seconds) nach Abschluss jedes Trainingsjobs. Auch wenn für den ersten Trainingsjob, der auf einer Instance oder einem Cluster ausgeführt wird, eine Kaltstartstrafe anfällt, sind die Instances für alle nachfolgenden Trainingsjobs bereits betriebsbereit. Infolgedessen werden diese nachfolgenden Trainingsjobs, die auf einer Instanz vor dem beginnen keep_alive_period_in_seconds abläuft, entsteht kein Mehraufwand für die Startzeit des Kaltstarts. Dadurch kann die Startzeit des Trainingsjobs auf etwa weniger als 20 Sekunden reduziert werden (P90).

Datenwissenschaftler und ML-Ingenieure können SageMaker Training Managed Warm Pools verwenden, um einzelne oder mehrere Instanzen zwischen Trainingsläufen für Experimente warm zu halten oder mehrere Jobs nacheinander auf demselben Einzel- oder Multi-Instanz-Cluster auszuführen. Sie zahlen nur für die Dauer der Trainingsjobs und die Rekonfigurierbarkeit keep_alive_period_in_seconds wie überall sonst geben Sie für jede einzelne Instanz an.

Im Wesentlichen erhalten Sie mit SageMaker Training Managed Warm Pools eine Kombination aus SageMaker-verwalteter Instanznutzung mit der Möglichkeit, sich für kurze Zeitintervalle anzumelden und Kapazität bereitzustellen und die Nutzung selbst zu verwalten. Diese Intervalle sind vor einem Job konfigurierbar, aber wenn während des keep_alive_period_in_seconds Intervall, Sie müssen es reduzieren oder erhöhen, das können Sie tun. Steigt auf keep_alive_period_in_seconds kann in Intervallen von bis zu 60 Minuten erfolgen, wobei der maximale Zeitraum für eine Instanz oder einen Cluster 7 Tage beträgt.

Beginnen Sie zuerst mit warmen Pools Fordern Sie eine Erhöhung des Warm-Pool-Kontingentlimits anGeben Sie dann die an keep_alive_period_in_seconds Parameter bei Aufnahme einer Ausbildungsstelle.

Benchmarks

Wir haben Benchmarking-Tests durchgeführt, um die Latenz beim Jobstart mit einem 1.34 GB großen TensorFlow-Image, 2 GB Daten und verschiedenen Eingabemodi für Trainingsdaten (Amazon FSx, Fast File Mode, File Mode) zu messen. Die Tests wurden auf einer Vielzahl von Instance-Typen der m4-, c4-, m5- und c5-Familien in der Region us-east-2 durchgeführt. Die Startlatenz wurde als Zeit von der Joberstellung bis zum Start des eigentlichen Trainingsjobs auf den Instanzen gemessen. Die ersten Jobs, die den Cluster gestartet und den warmen Pool erstellt haben, hatten eine Startlatenz von 2–3 Minuten. Diese höhere Latenz ist auf die Zeit zurückzuführen, die zum Bereitstellen der Infrastruktur, zum Herunterladen des Bildes und zum Herunterladen der Daten benötigt wird. Die nachfolgenden Jobs, die den Warm-Pool-Cluster nutzten, hatten eine Startlatenz von etwa 20 Sekunden für Fast File Mode (FFM) oder Amazon FSx und 70 Sekunden für File Mode (FM). Dieses Delta ergibt sich daraus, dass FM erfordert, dass der gesamte Datensatz vor Beginn des Auftrags von Amazon S3 heruntergeladen wird.

Ihre Wahl des Trainingsdaten-Eingabemodus wirkt sich auf die Startzeit aus, auch bei Warm Pools. Eine Anleitung zur Auswahl des Eingabemodus finden Sie im Abschnitt „Best Practices“ weiter unten in diesem Beitrag.

Die folgende Tabelle fasst die Job-Start-Latenz P90 für verschiedene Trainingsdaten-Eingabemodi zusammen.

Dateneingabemodus Startlatenz P90 (Sekunden)
Erster Job Warm Pool Jobs (ab Zweitjob)
FSx 136 19
Schneller Dateimodus 143 21
Dateimodus 176 70

Best Practices für die Verwendung von warmen Pools

Im folgenden Abschnitt teilen wir einige Best Practices für die Verwendung von warmen Pools.

Wann sollten Sie warme Pools nutzen?

Warme Pools werden in den folgenden Szenarien empfohlen:

  • Sie experimentieren interaktiv und optimieren Ihr Skript über eine Reihe von kurzen Jobs.
  • Sie führen Ihre eigene maßgeschneiderte, groß angelegte Hyperparameter-Optimierung durch (z. B. Syne-Melodie).
  • Sie haben einen Batch-Prozess, der eine große Anzahl (in der Größenordnung von mehreren Hundert oder Tausend) aufeinanderfolgender Jobs auf derselben Art von Instanzen in einem täglichen oder wöchentlichen Rhythmus ausführt. Beispiel: Trainieren Sie ein ML-Modell pro Stadt.

Warme Pools werden nicht empfohlen, wenn es unwahrscheinlich ist, dass jemand den warmen Pool wiederverwendet, bevor er abläuft. Beispielsweise ein einzelner langwieriger Job, der über eine automatisierte ML-Pipeline ausgeführt wird.

Minimieren Sie die Startlatenz des Warm-Pool-Trainingsjobs

Trainingsjobs, die einen warmen Pool wiederverwenden, starten schneller als der erste Job, der den warmen Pool erstellt hat. Dies liegt daran, dass die ML-Instanzen zwischen Jobs mit einem zwischengespeicherten Docker-Bild des Trainingscontainers ausgeführt werden, um das Abrufen des Containers zu überspringen Amazon Elastic Container-Registrierung (Amazon ECR). Aber selbst wenn ein warmer Pool wiederverwendet wird, finden bestimmte Initialisierungsschritte für alle Jobs statt. Die Optimierung dieser Schritte kann die Startzeit Ihres Jobs verkürzen (sowohl beim ersten als auch bei den nachfolgenden Jobs). Folgendes berücksichtigen:

  • Der Trainingsdaten-Eingabemodus kann die Startzeit beeinflussen – Verwaltete Eingabekanäle für Trainingsdaten werden für jeden Trainingsjob neu erstellt, was zur Latenz beim Jobstart beiträgt. Wenn Sie also erste Experimente mit einem kleineren Dataset durchführen, wird die Startzeit (und die Trainingszeit) verkürzt. Für spätere Experimentierphasen, wenn ein großes Dataset benötigt wird, sollten Sie die Verwendung eines Eingabemodustyps mit minimaler oder fester Initialisierungszeit in Betracht ziehen. Beispielsweise kopiert der Eingabemodus DATEI den gesamten Datensatz aus Amazon Simple Storage-Service (Amazon S3) in die Trainingsinstanz, was bei großen Datensätzen (auch bei warmen Pools) zeitaufwändig ist. Der schnelle Dateimodus eignet sich besser für eine geringere Startlatenz, da nur S3-Objektmetadaten aus Amazon S3 gelesen werden müssen, bevor die Arbeitslast gestartet werden kann. Das Amazon FSx für Lustre, oder Amazon Elastic File System (Amazon EFS)-Dateisystem-Eingabemodus hat unabhängig von der Anzahl der Dateien im Dateisystem eine feste Initialisierungszeit, was bei der Arbeit mit einem großen Datensatz von Vorteil ist.
    Weitere Informationen zur Auswahl eines Eingangskanals finden Sie unter Wählen Sie die beste Datenquelle für Ihren Amazon SageMaker-Schulungsauftrag.
  • Laufzeitinstallation von Paketen reduzieren – Jede Softwareinstallation, die während des Containerstarts stattfindet, z. B. Pythons Pip oder das Betriebssystem apt-get, erhöht die Latenz von Trainingsjobs. Die Minimierung dieser Startlatenz erfordert einen Kompromiss zwischen der Flexibilität und Einfachheit von Laufzeitinstallationen und der Installation zur Container-Build-Zeit. Wenn Sie Ihren eigenen Docker-Container mit SageMaker verwenden, finden Sie weitere Informationen unter Anpassung Ihres eigenen Docker-Containers an die Arbeit mit SageMaker. Wenn Sie sich darauf verlassen vorgefertigte SageMaker-Container-Imagesmüssen Sie Erweitern Sie einen vorgefertigten Container und diese Container explizit verwalten. Berücksichtigen Sie dies, wenn Ihre Laufzeitinstallationen die Startlatenz erheblich erhöhen.
  • Vermeiden Sie es, Ihr Docker-Image häufig zu aktualisieren – Wenn Sie Ihren eigenen Docker-Container mit SageMaker verwenden, versuchen Sie, ihn nicht bei jeder Jobausführung zu aktualisieren. Wenn sich das Docker-Image zwischen den Auftragsübermittlungen ändert, wird der warme Pool wiederverwendet, aber der Startprozess muss das Container-Image erneut aus Amazon ECR abrufen, anstatt ein zwischengespeichertes Container-Image wiederzuverwenden. Wenn das Docker-Image aktualisiert werden muss, beschränken Sie die Aktualisierungen auf den letzten Docker-Layer, um das Docker-Layer-Caching zu nutzen. Idealerweise sollten Sie den Dockerfile-Inhalt entfernen, der sich wahrscheinlich über Iterationen ändert, wie Hyperparameter, Dataset-Definitionen und den ML-Code selbst. Um ML-Code zu iterieren, ohne Docker-Images bei jeder Änderung neu erstellen zu müssen, können Sie das im SageMaker Training Toolkit befürwortete Framework-Container-Paradigma übernehmen. Wenn Sie einen Framework-Container mit Ihrem eigenen Code entwickeln möchten, lesen Sie dies Amazon SageMaker-Tutorial.

Teilen Sie warme Pools zwischen mehreren Benutzern

Wenn Sie mit einem großen Team von Data Scientists zusammenarbeiten, können Sie warme Pools mit anderen teilen Jobkriterien entsprechen, wie das gleiche AWS Identity and Access Management and (IAM)-Rolle oder Container-Image.

Sehen wir uns eine beispielhafte Zeitleiste an. Benutzer-1 startet einen Trainingsjob, der abgeschlossen wird und dazu führt, dass ein neuer warmer Pool erstellt wird. Wenn Benutzer-2 einen Trainingsjob startet, verwendet der Job den vorhandenen warmen Pool wieder, was zu einem schnellen Start des Jobs führt. Während der Job von Benutzer-2 mit dem verwendeten warmen Pool ausgeführt wird, wird ein zweiter warmer Pool erstellt, wenn ein anderer Benutzer einen Trainingsjob startet.

Dieses Wiederverwendungsverhalten hilft, Kosten zu senken, indem warme Pools zwischen Benutzern geteilt werden, die ähnliche Jobs starten. Wenn Sie vermeiden möchten, warme Pools zwischen Benutzern zu teilen, dürfen die Jobs der Benutzer dies nicht haben Jobkriterien entsprechen (z. B. müssen sie eine andere IAM-Rolle verwenden).

Benutzer nach Auftragsabschluss benachrichtigen

Wenn Sie warme Pools zum Experimentieren verwenden, empfehlen wir, die Benutzer zu benachrichtigen, wenn ihre Arbeit abgeschlossen ist. Auf diese Weise können Benutzer das Experimentieren fortsetzen, bevor der warme Pool abläuft oder halt den warmen Pool, wenn er nicht mehr benötigt wird. Du kannst auch automatisch Benachrichtigungen auslösen bis Amazon EventBridge.

Weitere Tools für schnelles Experimentieren und Troubleshooting von Trainingsjobs

Mit warmen Pools können Sie einen Job in weniger als 20 Sekunden beginnen. Einige Szenarien erfordern praktisches interaktives Experimentieren und Fehlerbehebung in Echtzeit. Die Open-Source SageMaker SSH-Hilfsbibliothek ermöglicht es Ihnen, sich in einen SageMaker-Schulungscontainer einzufügen und Remote-Entwicklung und -Debugging durchzuführen.

Zusammenfassung

Mit SageMaker Training Managed Warm Pools können Sie Ihre Hardwareinstanzen für das Modelltraining nach jedem Job für einen bestimmten Zeitraum warm halten. Dadurch kann die Startlatenz für einen Modelltrainingsjob um das bis zu Achtfache reduziert werden. SageMaker Training Managed Warm Pools sind in allen öffentlichen AWS-Regionen verfügbar, in denen SageMaker Model Training verfügbar ist.

Um zu beginnen, siehe Trainieren Sie mit SageMaker Managed Warm Pools.


Über die Autoren

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.

Best Practices für Amazon SageMaker Training Managed Warm Pools PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Arun Nagarajan ist Principal Engineer im Amazon SageMaker-Team und konzentriert sich auf die Bereiche Training und MLOps. Er war seit dem Einführungsjahr im SageMaker-Team und hat es genossen, zu verschiedenen Bereichen von SageMaker beizutragen, einschließlich der Echtzeit-Inferenz- und Model-Monitor-Produkte. Er erkundet gerne die Natur im pazifischen Nordwesten und besteigt Berge.

Best Practices für Amazon SageMaker Training Managed Warm Pools PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Amy Du ist Software Development Manager bei AWS SageMaker. Sie konzentriert sich darauf, ein Team von Softwareingenieuren zusammenzubringen, um neue Funktionen der SageMaker-Schulungsplattform aufzubauen, zu warten und zu entwickeln, die Kunden hilft, ihre ML-Modelle effizienter und einfacher zu trainieren. Sie hat eine Leidenschaft für ML- und KI-Technologie, insbesondere in Bezug auf Bild und Vision aus ihrem Studium. In ihrer Freizeit arbeitet sie gerne mit ihrer Familie an Musik und Kunst.

Best Practices für Amazon SageMaker Training Managed Warm Pools PlatoBlockchain Data Intelligence. Vertikale Suche. Ai. Sife Li ist Software Engineer bei Amazon AI, wo sie am Aufbau von Amazon Machine Learning-Plattformen arbeitet und Teil des Launch-Teams für Amazon SageMaker war. In ihrer Freizeit macht sie gerne Musik und liest.

Best Practices für Amazon SageMaker Training Managed Warm Pools PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Jenna Zhao ist Softwareentwicklungsingenieur bei AWS SageMaker. Sie interessiert sich leidenschaftlich für ML/AI-Technologie und konzentriert sich auf den Aufbau der SageMaker-Schulungsplattform, die es Kunden ermöglicht, Modelle für maschinelles Lernen schnell und einfach zu trainieren. Außerhalb der Arbeit reist sie gerne und verbringt viel Zeit mit ihrer Familie.

Best Practices für Amazon SageMaker Training Managed Warm Pools PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Paras Mehra ist Senior Product Manager bei AWS. Er konzentriert sich darauf, beim Aufbau von Amazon SageMaker Training and Processing zu helfen. In seiner Freizeit verbringt Paras gerne Zeit mit seiner Familie und fährt mit dem Rennrad durch die Bay Area. Sie finden ihn auf  LinkedIn.

Best Practices für Amazon SageMaker Training Managed Warm Pools PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Gili Nachum ist ein Senior AI/ML Specialist Solutions Architect, der als Teil des EMEA Amazon Machine Learning-Teams arbeitet. Gili interessiert sich leidenschaftlich für die Herausforderungen beim Training von Deep-Learning-Modellen und dafür, wie maschinelles Lernen die Welt, wie wir sie kennen, verändert. In seiner Freizeit spielt Gili gerne Tischtennis.

Best Practices für Amazon SageMaker Training Managed Warm Pools PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Olivier Cruchant ist Machine Learning Specialist Solutions Architect bei AWS mit Sitz in Frankreich. Olivier hilft AWS-Kunden – von kleinen Startups bis hin zu großen Unternehmen – bei der Entwicklung und Bereitstellung von Anwendungen für maschinelles Lernen auf Produktionsniveau. In seiner Freizeit liest er gerne Forschungsarbeiten und erkundet mit Freunden und Familie die Wildnis.

Best Practices für Amazon SageMaker Training Managed Warm Pools PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Emily Weber trat AWS kurz nach dem Start von SageMaker bei und versucht seitdem, der Welt davon zu erzählen! Abgesehen davon, dass sie neue ML-Erfahrungen für Kunden entwickelt, meditiert Emily gerne und studiert den tibetischen Buddhismus.

Zeitstempel:

Mehr von AWS Maschinelles Lernen