Rückblick: Amazon SageMaker spielt Aufholjagd

Als ich 2018 Amazon SageMaker überprüfte, stellte ich fest, dass es sich um einen hoch skalierbaren Dienst für maschinelles Lernen und tiefes Lernen handelt, der 11 eigene Algorithmen sowie alle anderen von Ihnen bereitgestellten unterstützt. Die Hyperparameteroptimierung befand sich noch in der Vorschau, und Sie mussten Ihre eigene ETL- und Feature-Entwicklung durchführen. 

Seitdem hat sich der Umfang von SageMaker erweitert, indem die Kernnotizbücher um IDEs (SageMaker Studio) und automatisiertes maschinelles Lernen (SageMaker Autopilot) erweitert und dem gesamten Ökosystem eine Reihe wichtiger Dienste hinzugefügt wurden, wie in der folgenden Abbildung dargestellt. Dieses Ökosystem unterstützt maschinelles Lernen von der Vorbereitung über die Modellbildung, Schulung und Optimierung bis hin zur Bereitstellung und Verwaltung - mit anderen Worten, von Ende zu Ende.

Was ist neu in SageMaker?

Was gibt's Neues? Angesichts der Tatsache, dass ich SageMaker zuletzt direkt nach seiner Veröffentlichung angesehen habe, ist die Liste ziemlich lang, aber beginnen wir mit den sichtbarsten Diensten.

  • SageMaker Studio, eine IDE, die auf JupyterLab basiert
  • SageMaker Autopilot, der automatisch bis zu 50 funktionsfähige Modelle erstellt und trainiert, die in SageMaker Studio untersucht werden können
  • SageMaker Ground Truth, mit dessen Hilfe Trainingsdatensätze erstellt und verwaltet werden können
  • SageMaker-Notebooks bieten jetzt elastisches Rechnen und Single-Click-Sharing
  • SageMaker Experiments, mit dem Entwickler Modelliterationen, Trainingsparameter und Ergebnisse des maschinellen Lernmodells visualisieren und vergleichen können
  • SageMaker Debugger, der eine Echtzeitüberwachung für Modelle des maschinellen Lernens bietet, um die Vorhersagegenauigkeit zu verbessern, die Trainingszeiten zu verkürzen und eine bessere Erklärbarkeit zu ermöglichen
  • SageMaker Model Monitor, der Konzeptdrift erkennt, um festzustellen, wann die Leistung eines in der Produktion laufenden Modells vom ursprünglich trainierten Modell abweicht

Weitere bemerkenswerte Verbesserungen sind die optionale Verwendung von Spot-Instanzen für Notebooks, um die Kosten zu senken. ein neuer P3dn.24xl-Instanztyp, der acht V100-GPUs enthält; ein AWS-optimiertes TensorFlow-Framework, das beim Training mehrerer Arten neuronaler Netze eine nahezu lineare Skalierbarkeit erreicht; Amazon Elastic Inference, wodurch die Inferenzkosten drastisch gesenkt werden können; AWS Inferentia, ein leistungsstarker Inferenzchip für maschinelles Lernen; und neue Algorithmen, die sowohl in SageMaker integriert als auch auf dem AWS Marketplace verfügbar sind. Darüber hinaus kompiliert SageMaker Neo Deep-Learning-Modelle für Edge-Computing-Geräte, und SageMaker RL (im Diagramm nicht dargestellt) bietet einen verwalteten Lerndienst für die Verstärkung.

SageMaker Studio

JupyterLab ist die webbasierte Benutzeroberfläche der nächsten Generation für Project Jupyter. SageMaker Studio verwendet JupyterLab als Grundlage für eine IDE, die eine einheitliche Online-Workstation für maschinelles Lernen und tiefes Lernen mit Funktionen für die Zusammenarbeit, Experimentverwaltung, Git-Integration und automatischer Modellgenerierung darstellt.

Der folgende Screenshot zeigt, wie die SageMaker-Beispiele mithilfe einer Terminalregisterkarte und der Git-Befehlszeile in einer SageMaker Studio-Instanz installiert werden. Die Anweisungen dazu finden Sie in der README-Datei für dieses Beispiel, bei dem es sich um eine Art Catch-22 handelt. Sie können sie lesen, indem Sie zum Beispiel Erste Schritte auf GitHub navigieren oder das Repository auf Ihren eigenen Computer klonen und dort lesen.

Das Beispiel für die ersten Schritte von Amazon enthält ein Notizbuch mit dem Namen xgboost_customer_churn_studio.ipynb, das aus einem Blogbeitrag über die Vorhersage der Kundenabwanderung übernommen wurde. Wie Jupyter-Notizbücher zeigen, gibt es viele Erklärungen, wie Sie in den folgenden Screenshots sehen können.

In diesem Beispiel wird ein zusätzliches Training mit einem externen XGBoost-Algorithmus ausgeführt, der so modifiziert wurde, dass Debugging-Informationen in Amazon S3 gespeichert und drei Debugging-Regeln aufgerufen werden. Dies ist im sogenannten Framework- Modus, was bedeutet, dass es sich nicht um einen integrierten Algorithmus handelt.

Wenn alle Schulungen abgeschlossen sind, können Sie die Ergebnisse auf der Registerkarte Experimente vergleichen.

Das Beispiel hostet das Modell dann mithilfe seiner deployMethode und testet den bereitgestellten Endpunkt mithilfe seiner predictMethode. Schließlich wird ein Baselining-Job mit dem Trainingsdatensatz und einem geplanten Überwachungsjob erstellt, der alle Verstöße gegen Einschränkungen meldet.

XGBoost ist übrigens nur einer der vielen in SageMaker integrierten Algorithmen. Eine vollständige Liste finden Sie in der folgenden Tabelle - und Sie können jederzeit Ihr eigenes Modell erstellen.

SageMaker Autopilot

Angenommen, Sie wissen nicht, wie man Feature-Engineering durchführt, und Sie kennen die verschiedenen Algorithmen, die für die verschiedenen maschinellen Lernaufgaben verfügbar sind, nicht sehr gut. Sie können SageMaker weiterhin verwenden - lassen Sie es einfach auf dem Autopiloten laufen. SageMaker Autopilot kann Datensätze mit bis zu 5 GB verarbeiten.

Im folgenden Screenshot führen wir das Beispiel Direktmarketing mit Amazon SageMaker Autopilot aus. Zunächst werden die Daten heruntergeladen, entpackt, in einen S3-Bucket hochgeladen und ein Autopilot-Job durch Aufrufen der API create_auto_ml_job gestartet. Anschließend verfolgen wir den Fortschritt des Auftrags, während er die Daten analysiert, das Feature-Engineering durchführt und die Modelloptimierung durchführt, wie unten gezeigt.

Das Beispiel wählt dann das beste Modell aus, verwendet es zum Erstellen und Hosten eines Endpunkts und führt einen Transformationsjob aus, um die Modellvorhersagen zu einer Kopie der Testdaten hinzuzufügen. Schließlich werden die beiden vom Autopilot-Job erstellten Notizbücher gefunden.

Es gibt eine Benutzeroberfläche für die Autopilot-Ergebnisse, obwohl dies nicht offensichtlich ist. Wenn Sie mit der rechten Maustaste auf das automatische Experiment klicken, werden alle Versuche mit ihren Zielwerten angezeigt (siehe unten).

SageMaker Ground Truth

Wenn Sie Glück haben, werden alle Ihre Daten beschriftet oder anderweitig mit Anmerkungen versehen und können als Trainingsdatensatz verwendet werden. Wenn nicht, können Sie die Daten manuell mit Anmerkungen versehen (der Standardwitz ist, dass Sie die Aufgabe Ihren Studenten geben), oder Sie können einen halbüberwachten Lernprozess verwenden, der menschliche Anmerkungen mit automatischen Anmerkungen kombiniert. SageMaker Ground Truth ist ein solcher Kennzeichnungsprozess.

Wie Sie in der folgenden Abbildung sehen können, kann Ground Truth auf eine Reihe verschiedener Aufgaben angewendet werden. Mit Ground Truth können Sie Mitarbeiter von Amazon Mechanical Turk oder einem von Ihnen ausgewählten Anbieterunternehmen oder eine interne, private Belegschaft zusammen mit maschinellem Lernen verwenden, um ein beschriftetes Dataset zu erstellen.

Amazon bietet sieben exemplarische Vorgehensweisen, die verschiedene Verwendungsmöglichkeiten von SageMaker Ground Truth demonstrieren.

SageMaker Neo

Bis vor kurzem war die Bereitstellung geschulter Modelle auf Edge-Geräten - beispielsweise Smartphones und IoT-Geräten - schwierig. Es gab spezielle Lösungen wie TensorFlow Lite für TensorFlow-Modelle und TensorRT für Nvidia-Geräte, aber SageMaker Neo kompiliert und optimiert automatisch TensorFlow-, Apache MXNet-, PyTorch-, ONNX- und XGBoost-Modelle für die Bereitstellung auf ARM-, Intel- und Nvidia-Prozessoren als Qualcomm-, Cadence- und Xilinx-Geräte.

Laut AWS kann Neo die Leistung von Modellen verdoppeln und so weit verkleinern, dass sie auf Edge-Geräten mit begrenztem Speicher ausgeführt werden können.

SageMaker-Inferenzbereitstellungsoptionen

In Bezug auf Berechnung, Speicherung, Netzwerkübertragung usw. macht die Bereitstellung von Modellen für Produktionsinferenzen häufig 90 Prozent der Kosten für Deep Learning aus, während die Schulung nur 10 Prozent der Kosten ausmacht. AWS bietet viele Möglichkeiten, um die Inferenzkosten zu senken.

Eine davon ist Elastic Inference. Laut AWS kann Elastic Inference den Durchsatz beschleunigen und die Latenz verringern, um Echtzeit-Inferenzen von Ihren Deep-Learning-Modellen zu erhalten, die als von Amazon SageMaker gehostete Modelle bereitgestellt werden, jedoch zu einem Bruchteil der Kosten für die Verwendung einer GPU-Instanz für Ihren Endpunkt. Elastic Inference beschleunigt die Inferenz, indem Sie es ermöglichen, Teil-GPUs an jede Amazon SageMaker-Instanz anzuhängen.

Elastic Inference wird in Elastic Inference-fähigen Versionen von TensorFlow, Apache MXNet und PyTorch unterstützt. Um ein anderes Deep-Learning-Framework zu verwenden, exportieren Sie Ihr Modell mithilfe von ONNX und importieren Sie es anschließend in MXNet.

Wenn Sie mehr als 32 TFLOPS pro Beschleuniger benötigen, die Sie von Elastic Inference erhalten können, können Sie EC2 G4-Instanzen mit Nvidia T4-GPUs oder EC2 Inf1-Instanzen mit benutzerdefinierten AWS Inferentia-Beschleunigerchips verwenden. Wenn Sie die Geschwindigkeit von Inferentia-Chips benötigen, können Sie das Deep Learning-Modell mit dem AWS Neuron SDK in ein Neuron Executable File Format (NEFF) kompilieren, das wiederum vom Neuron-Laufzeit-Treiber geladen wird, um Inferenz-Eingabeanforderungen auf dem Inferentia auszuführen Chips.

Zu diesem Zeitpunkt ist die Vorschau von Amazon SageMaker Studio gut genug, um durchgängiges maschinelles Lernen und tiefes Lernen zu ermöglichen: Datenvorbereitung, Modelltraining, Modellbereitstellung und Modellüberwachung. Während die Benutzererfahrung noch einige Wünsche offen lässt, z. B. eine bessere Entdeckung der Funktionalität, ist Amazon SageMaker jetzt mit den in anderen Clouds verfügbaren Umgebungen für maschinelles Lernen konkurrenzfähig.

- -

Kosten: 0,0464 bis 34,272 USD pro Instanzstunde für die Berechnung, abhängig von der Anzahl der CPUs und GPUs; SSD-Speicher: 0,14 USD pro GB-Monat; Datenübertragung: 0,016 USD pro GB ein- oder ausgehen. 

Plattform: Wird auf Amazon Web Services gehostet.