Analysieren Sie die Ausgaben von Amazon SageMaker und ermitteln Sie Möglichkeiten zur Kostenoptimierung basierend auf der Nutzung, Teil 3: Verarbeitung und Data Wrangler-Jobs | Amazon Web Services

Analysieren Sie die Ausgaben von Amazon SageMaker und ermitteln Sie Möglichkeiten zur Kostenoptimierung basierend auf der Nutzung, Teil 3: Verarbeitung und Data Wrangler-Jobs | Amazon Web Services

Im Jahr 2021 haben wir gestartet Proaktive AWS-Support-Services als Teil der AWS Enterprise-Support planen. Seit der Einführung haben wir Hunderten von Kunden dabei geholfen, ihre Arbeitslasten zu optimieren, Leitplanken festzulegen und die Transparenz der Kosten und Nutzung ihrer Arbeitslasten für maschinelles Lernen (ML) zu verbessern.

In dieser Beitragsreihe teilen wir unsere Erkenntnisse zur Kostenoptimierung Amazon Sage Maker. In diesem Beitrag konzentrieren wir uns auf die Datenvorverarbeitung mithilfe von Amazon SageMaker-Verarbeitung und Amazon SageMaker Data Wrangler Arbeitsplätze.

Die Datenvorverarbeitung spielt eine zentrale Rolle in einem datenzentrierten KI-Ansatz. Allerdings ist die Vorbereitung von Rohdaten für das ML-Training und die Evaluierung oft eine mühsame und anspruchsvolle Aufgabe im Hinblick auf Rechenressourcen, Zeit und menschlichen Aufwand. Die Datenaufbereitung muss im Allgemeinen aus verschiedenen Quellen integriert werden und mit fehlenden oder verrauschten Werten, Ausreißern usw. umgehen.

Darüber hinaus benötigen ML-Teams zusätzlich zu den üblichen ETL-Aufgaben (Extrahieren, Transformieren und Laden) gelegentlich erweiterte Funktionen wie die Erstellung schneller Modelle zur Auswertung von Daten und zur Erstellung von Feature-Wichtigkeitswerten oder die Bewertung von Modellen nach dem Training als Teil einer MLOps-Pipeline.

SageMaker bietet zwei Funktionen, die speziell zur Lösung dieser Probleme entwickelt wurden: SageMaker Processing und Data Wrangler. Mit SageMaker Processing können Sie Vorverarbeitung, Nachverarbeitung und Modellevaluierung problemlos auf einer vollständig verwalteten Infrastruktur ausführen. Data Wrangler reduziert den Zeitaufwand für die Aggregation und Vorbereitung von Daten, indem es den Prozess der Datenquellenintegration und des Feature-Engineerings mithilfe einer einzigen visuellen Schnittstelle und einer vollständig verteilten Datenverarbeitungsumgebung vereinfacht.

Beide SageMaker-Funktionen bieten große Flexibilität mit mehreren Optionen für E/A, Speicherung und Berechnung. Eine falsche Einstellung dieser Optionen kann jedoch zu unnötigen Kosten führen, insbesondere beim Umgang mit großen Datensätzen.

In diesem Beitrag analysieren wir die Preisfaktoren und geben Hinweise zur Kostenoptimierung für SageMaker Processing- und Data Wrangler-Jobs.

SageMaker-Verarbeitung

SageMaker Processing ist eine verwaltete Lösung zur Ausführung von Datenverarbeitungs- und Modellbewertungs-Workloads. Sie können es in Datenverarbeitungsschritten wie Feature Engineering, Datenvalidierung, Modellbewertung und Modellinterpretation in ML-Workflows verwenden. Mit SageMaker Processing können Sie Ihre eigenen benutzerdefinierten Verarbeitungsskripts mitbringen und wählen, ob Sie einen benutzerdefinierten Container erstellen oder einen von SageMaker verwalteten Container mit gängigen Frameworks wie scikit-learn, Lime, Spark und mehr verwenden möchten.

SageMaker Processing stellt Ihnen den von Ihnen gewählten Instanztyp in Rechnung, basierend auf der Nutzungsdauer und dem bereitgestellten Speicher, der dieser Instanz zugeordnet ist. In Teil 1 haben wir gezeigt, wie Sie mit der Verwendung beginnen AWS-Kosten-Explorer um Kostenoptimierungsmöglichkeiten in SageMaker zu identifizieren.

Sie können die Bearbeitungskosten filtern, indem Sie einen Filter auf die Nutzungsart anwenden. Die Namen dieser Nutzungsarten lauten wie folgt:

  • REGION-Processing:instanceType (zum Beispiel, USE1-Processing:ml.m5.large)
  • REGION-Processing:VolumeUsage.gp2 (zum Beispiel, USE1-Processing:VolumeUsage.gp2)

Um Ihre SageMaker-Verarbeitungskosten im Cost Explorer zu überprüfen, beginnen Sie mit der Filterung mit SageMaker nach ServiceUnd für Nutzungsart, können Sie alle Verarbeitungsinstanzen auswählen, die in Stunden ausgeführt werden, indem Sie Folgendes eingeben processing:ml Präfix eingeben und die Liste im Menü auswählen.

Analysieren Sie die Ausgaben von Amazon SageMaker und ermitteln Sie Möglichkeiten zur Kostenoptimierung basierend auf der Nutzung, Teil 3: Verarbeitung und Data Wrangler-Jobs | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Vermeiden Sie Kosten bei der Verarbeitung und Pipeline-Entwicklung

Bevor wir die Ausführungsdauer eines SageMaker Processing-Auftrags richtig dimensionieren und optimieren, prüfen wir, ob allgemeine Kennzahlen zu historischen Auftragsausführungen vorliegen. Hierzu können Sie zwischen zwei Methoden wählen.

Zunächst können Sie auf die zugreifen In Bearbeitung Seite auf der SageMaker-Konsole.

Analysieren Sie die Ausgaben von Amazon SageMaker und ermitteln Sie Möglichkeiten zur Kostenoptimierung basierend auf der Nutzung, Teil 3: Verarbeitung und Data Wrangler-Jobs | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Alternativ können Sie die list_processing_jobs-API.

Analysieren Sie die Ausgaben von Amazon SageMaker und ermitteln Sie Möglichkeiten zur Kostenoptimierung basierend auf der Nutzung, Teil 3: Verarbeitung und Data Wrangler-Jobs | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Ein Auftragsstatus wird bearbeitet InProgress, Completed, Failed, Stopping, oder Stopped.

Bei der Entwicklung neuer MLOps-Pipelines kommt es häufig zu einer hohen Anzahl fehlgeschlagener Jobs. Allerdings sollten Sie Jobs immer testen und alle Anstrengungen unternehmen, um sie zu validieren, bevor Sie sie auf SageMaker starten, da Gebühren für die verwendeten Ressourcen anfallen. Zu diesem Zweck können Sie SageMaker Processing verwenden Lokalbetrieb. Der lokale Modus ist eine SageMaker SDK-Funktion, mit der Sie Schätzer, Prozessoren und Pipelines erstellen und diese in Ihrer lokalen Entwicklungsumgebung bereitstellen können. Dies ist eine großartige Möglichkeit, Ihre Skripte zu testen, bevor Sie sie in einer von SageMaker verwalteten Umgebung ausführen. Der lokale Modus wird von von SageMaker verwalteten Containern und von Ihnen selbst bereitgestellten unterstützt. Erfahren Sie mehr über die Verwendung des lokalen Modus mit Amazon SageMaker-Pipelines, beziehen auf Lokalbetrieb.

Optimieren Sie die I/O-bezogenen Kosten

SageMaker-Verarbeitungsjobs bieten im Rahmen der Verwaltung Zugriff auf drei Datenquellen Eingabe verarbeiten: Amazon Simple Storage-Service (Amazon S3), Amazonas Athena und Amazon RedShift. Weitere Informationen finden Sie unter VerarbeitungS3Input, AthenaDatasetDefinition und RedshiftDatasetDefinition, Bzw.

Bevor wir uns mit der Optimierung befassen, ist es wichtig zu beachten, dass SageMaker-Verarbeitungsjobs diese Datenquellen zwar unterstützen, sie jedoch nicht obligatorisch sind. In Ihrem Verarbeitungscode können Sie jede Methode zum Herunterladen der zugreifenden Daten aus einer beliebigen Quelle implementieren (vorausgesetzt, die Verarbeitungsinstanz kann darauf zugreifen).

Um bessere Einblicke in die Verarbeitungsleistung zu erhalten und Optimierungsmöglichkeiten zu erkennen, empfehlen wir Folgendes Best Practices für die Protokollierung in Ihrem Verarbeitungsskript. SageMaker veröffentlicht Ihre Verarbeitungsprotokolle unter Amazon CloudWatch.

Im folgenden Beispiel-Jobprotokoll sehen wir, dass die Skriptverarbeitung 15 Minuten gedauert hat (zwischen Start custom script und End custom script).

Analysieren Sie die Ausgaben von Amazon SageMaker und ermitteln Sie Möglichkeiten zur Kostenoptimierung basierend auf der Nutzung, Teil 3: Verarbeitung und Data Wrangler-Jobs | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Auf der SageMaker-Konsole sehen wir jedoch, dass der Job weitere 4 Minuten gedauert hat (fast 25 % der gesamten Laufzeit des Jobs).

Analysieren Sie die Ausgaben von Amazon SageMaker und ermitteln Sie Möglichkeiten zur Kostenoptimierung basierend auf der Nutzung, Teil 3: Verarbeitung und Data Wrangler-Jobs | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Dies liegt daran, dass neben der Zeit, die unser Verarbeitungsskript in Anspruch nahm, auch das von SageMaker verwaltete Herunterladen und Hochladen von Daten Zeit in Anspruch nahm (4 Minuten). Wenn sich herausstellt, dass dies einen großen Teil der Kosten ausmacht, ziehen Sie alternative Möglichkeiten zur Beschleunigung der Downloadzeit in Betracht, z. B. die Verwendung der Boto3-API mit Multiprocessing zum gleichzeitigen Herunterladen von Dateien oder die Verwendung von Bibliotheken von Drittanbietern wie WebDataset oder s5cmd für einen schnelleren Download von Amazon S3 . Weitere Informationen finden Sie unter Parallelisieren von S3-Workloads mit s5cmd. Beachten Sie, dass bei solchen Methoden in Amazon S3 Gebühren anfallen können Datenübertragung.

Verarbeitungsaufträge werden ebenfalls unterstützt Rohrmodus. Mit dieser Methode streamt SageMaker Eingabedaten von der Quelle direkt in benannte Pipes in Ihren Verarbeitungscontainer, ohne das ML-Speichervolumen zu verwenden, wodurch die Datendownloadzeit entfällt und ein kleineres Festplattenvolumen entsteht. Dies erfordert jedoch ein komplizierteres Programmiermodell als das einfache Lesen von Dateien auf einer Festplatte.

Wie bereits erwähnt, unterstützt SageMaker Processing auch Athena und Amazon Redshift als Datenquellen. Beim Einrichten eines Verarbeitungsauftrags mit diesen Quellen kopiert SageMaker die Daten automatisch nach Amazon S3 und die Verarbeitungsinstanz ruft die Daten vom Amazon S3-Speicherort ab. Wenn der Auftrag jedoch abgeschlossen ist, gibt es keinen verwalteten Bereinigungsprozess und die kopierten Daten verbleiben weiterhin in Amazon S3 und es können unerwünschte Speichergebühren anfallen. Stellen Sie daher bei der Verwendung von Athena- und Amazon Redshift-Datenquellen sicher, dass ein Bereinigungsverfahren implementiert wird, beispielsweise eine Lambda-Funktion läuft nach einem Zeitplan oder in einem Lambda-Schritt als Teil einer SageMaker-Pipeline.

Ebenso wie das Herunterladen kann auch das Hochladen von Verarbeitungsartefakten eine Optimierungsmöglichkeit darstellen. Wenn die Ausgabe eines Verarbeitungsauftrags mithilfe von konfiguriert wird ProcessingS3Output Parameter, Sie können angeben, welcher S3UploadMode benutzen. Der S3UploadMode Der Standardwert des Parameters ist EndOfJob, wodurch SageMaker die Ergebnisse nach Abschluss des Auftrags hochlädt. Wenn Ihr Verarbeitungsauftrag jedoch mehrere Dateien erzeugt, können Sie dies festlegen S3UploadMode zu Continuous, wodurch das Hochladen von Artefakten gleichzeitig mit der laufenden Verarbeitung ermöglicht und die Joblaufzeit verkürzt wird.

Verarbeitungsauftragsinstanzen in der richtigen Größe

Die Wahl des richtigen Instanztyps und der richtigen Instanzgröße ist ein wichtiger Faktor bei der Optimierung der Kosten von SageMaker-Verarbeitungsaufträgen. Sie können die Größe einer Instanz anpassen, indem Sie auf eine andere Version innerhalb derselben Instanzfamilie oder auf eine andere Instanzfamilie migrieren. Bei der Migration innerhalb derselben Instanzfamilie müssen Sie nur CPU/GPU und Arbeitsspeicher berücksichtigen. Weitere Informationen und allgemeine Hinweise zur Auswahl der richtigen Verarbeitungsressourcen finden Sie unter Sorgen Sie für effiziente Rechenressourcen auf Amazon SageMaker.

Um die Instanzauswahl zu optimieren, analysieren wir zunächst die Verarbeitungsauftragsmetriken in CloudWatch. Weitere Informationen finden Sie unter Überwachen Sie Amazon SageMaker mit Amazon CloudWatch.

CloudWatch sammelt Rohdaten von SageMaker und verarbeitet sie zu lesbaren Metriken nahezu in Echtzeit. Obwohl diese Statistiken 15 Monate lang aufbewahrt werden, beschränkt die CloudWatch-Konsole die Suche auf Metriken, die in den letzten 2 Wochen aktualisiert wurden (dadurch wird sichergestellt, dass nur aktuelle Jobs angezeigt werden). Metriken für Verarbeitungsjobs finden Sie im Namespace /aws/sagemaker/ProcessingJobs und die gesammelten Metriken sind CPUUtilization, MemoryUtilization, GPUUtilization, GPUMemoryUtilization und DiskUtilization.

Der folgende Screenshot zeigt ein Beispiel in CloudWatch für den Verarbeitungsauftrag, den wir zuvor gesehen haben.

Analysieren Sie die Ausgaben von Amazon SageMaker und ermitteln Sie Möglichkeiten zur Kostenoptimierung basierend auf der Nutzung, Teil 3: Verarbeitung und Data Wrangler-Jobs | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

In diesem Beispiel sehen wir die durchschnittlichen CPU- und Speicherwerte (was in CloudWatch die Standardeinstellung ist): Die durchschnittliche CPU-Auslastung beträgt 0.04 %, der Speicher 1.84 % und die Festplattenauslastung 13.7 %. Berücksichtigen Sie bei der richtigen Größe immer die maximale CPU- und Speicherauslastung (in diesem Beispiel betrug die maximale CPU-Auslastung in den ersten drei Minuten 98 %). Als allgemeine Regel gilt: Wenn Ihre maximale CPU- und Speicherauslastung konstant weniger als 3 % beträgt, können Sie die Maschine getrost halbieren. Wenn Sie beispielsweise eine ml.c40xlarge-Instanz verwenden, könnten Sie zu einer ml.c5.4xlarge wechseln, was Ihre Kosten um 5.2 % senken könnte.

Jobs für Data Wrangler

Data Wrangler ist eine Funktion von Amazon SageMaker-Studio Dies bietet eine wiederholbare und skalierbare Lösung für die Datenexploration und -verarbeitung. Sie verwenden die Data Wrangler-Schnittstelle, um Ihre Daten interaktiv zu importieren, zu analysieren, zu transformieren und mit Funktionen auszustatten. Diese Schritte werden in einem Rezept (einer .flow-Datei) erfasst, das Sie dann in einem Data Wrangler-Job verwenden können. Dies hilft Ihnen, dieselben Datentransformationen erneut auf Ihre Daten anzuwenden und sie auch auf einen verteilten Batch-Datenverarbeitungsauftrag zu skalieren, entweder als Teil einer ML-Pipeline oder unabhängig.

Anleitungen zur Optimierung Ihrer Data Wrangler-App in Studio finden Sie in Teil 2 dieser Serie.

In diesem Abschnitt konzentrieren wir uns auf die Optimierung von Data Wrangler-Jobs.

Daten, die Wrangler verwendet SageMaker Spark-Verarbeitungsaufträge mit einem von Data Wrangler verwalteten Container. Dieser Container führt die Anweisungen aus der .flow-Datei im Job aus. Wie bei allen Verarbeitungsaufträgen berechnet Ihnen Data Wrangler die von Ihnen ausgewählten Instanzen basierend auf der Nutzungsdauer und dem bereitgestellten Speicher, der dieser Instanz zugeordnet ist.

Im Cost Explorer können Sie die Kosten für Data Wrangler-Jobs filtern, indem Sie einen Filter auf den Nutzungstyp anwenden. Die Namen dieser Nutzungsarten lauten:

  • REGION-processing_DW:instanceType (zum Beispiel, USE1-processing_DW:ml.m5.large)
  • REGION-processing_DW:VolumeUsage.gp2 (zum Beispiel, USE1-processing_DW:VolumeUsage.gp2)

Um Ihre Data Wrangler-Kosten im Cost Explorer anzuzeigen, filtern Sie den Dienst nach Verwendung von SageMaker und nach Nutzungsart, wählen Sie das processing_DW Präfix und wählen Sie die Liste im Menü aus. Dadurch werden Ihnen sowohl die Kosten für die Instanznutzung (Stunden) als auch das Speichervolumen (GB) angezeigt. (Wenn Sie die Kosten von Studio Data Wrangler sehen möchten, können Sie den Nutzungstyp nach filtern Studio_DW Präfix.)

Analysieren Sie die Ausgaben von Amazon SageMaker und ermitteln Sie Möglichkeiten zur Kostenoptimierung basierend auf der Nutzung, Teil 3: Verarbeitung und Data Wrangler-Jobs | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Passen Sie die Größe und Planung von Data Wrangler-Jobinstanzen an

Derzeit unterstützt Data Wrangler nur m5-Instanzen mit den folgenden Instanzgrößen: ml.m5.4xlarge, ml.m5.12xlarge und ml.m5.24xlarge. Mit der Funktion „Verteilte Aufträge“ können Sie Ihre Auftragskosten optimieren. Angenommen, Sie müssen einen Datensatz verarbeiten, der 350 GiB RAM benötigt. Die Instanzen 4xlarge (128 GiB) und 12xlarge (256 GiB) können möglicherweise nicht verarbeitet werden und führen dazu, dass Sie die Instanz m5.24xlarge (768 GiB) verwenden. Sie könnten jedoch zwei m5.12xlarge-Instanzen (2 * 256 GiB = 512 GiB) verwenden und die Kosten um 40 % reduzieren, oder drei m5.4xlarge-Instanzen (3 * 128 GiB = 384 GiB) und 50 % der m5.24xlarge-Instanzen sparen Instanzkosten. Beachten Sie, dass es sich hierbei um Schätzungen handelt und dass die verteilte Verarbeitung zu einem gewissen Overhead führen kann, der sich auf die Gesamtlaufzeit auswirkt.

Stellen Sie beim Ändern des Instanztyps sicher, dass Sie die aktualisieren Spark-Konfiguration entsprechend. Wenn Sie beispielsweise einen anfänglichen ml.m5.4xlarge-Instanzjob mit Eigenschaften konfiguriert haben spark.driver.memory auf 2048 eingestellt und spark.executor.memory Auf 55742 eingestellt und später auf ml.m5.12xlarge skaliert, müssen diese Konfigurationswerte erhöht werden, da sie sonst zum Engpass bei der Verarbeitungsaufgabe werden. Sie können diese Variablen in der Data Wrangler-GUI oder in einer Konfigurationsdatei aktualisieren, die an den Konfigurationspfad angehängt wird (siehe die folgenden Beispiele).

Analysieren Sie die Ausgaben von Amazon SageMaker und ermitteln Sie Möglichkeiten zur Kostenoptimierung basierend auf der Nutzung, Teil 3: Verarbeitung und Data Wrangler-Jobs | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Analysieren Sie die Ausgaben von Amazon SageMaker und ermitteln Sie Möglichkeiten zur Kostenoptimierung basierend auf der Nutzung, Teil 3: Verarbeitung und Data Wrangler-Jobs | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Eine weitere überzeugende Funktion von Data Wrangler ist die Möglichkeit dazu Legen Sie einen geplanten Job fest. Wenn Sie Daten regelmäßig verarbeiten, können Sie einen Zeitplan erstellen, um den Verarbeitungsauftrag automatisch auszuführen. Sie können beispielsweise einen Zeitplan erstellen, der automatisch einen Verarbeitungsjob ausführt, wenn Sie neue Daten erhalten (Beispiele finden Sie unter Exportieren Sie nach Amazon S3 or Export in den Amazon SageMaker Feature Store). Beachten Sie jedoch, dass Data Wrangler beim Erstellen eines Zeitplans einen erstellt eventRule in EventBridge. Dies bedeutet, dass Ihnen auch die von Ihnen erstellten Ereignisregeln (sowie die Instanzen, die zum Ausführen des Verarbeitungsauftrags verwendet werden) in Rechnung gestellt werden. Weitere Informationen finden Sie unter Amazon EventBridge-Preise.

Zusammenfassung

In diesem Beitrag haben wir Hinweise zur Kostenanalyse und zu Best Practices bei der Vorverarbeitung gegeben

Daten mithilfe von SageMaker Processing- und Data Wrangler-Jobs. Ähnlich wie bei der Vorverarbeitung gibt es beim Erstellen, Trainieren und Ausführen von ML-Modellen viele Optionen und Konfigurationseinstellungen, die zu unnötigen Kosten führen können. Da sich maschinelles Lernen branchenübergreifend als leistungsstarkes Werkzeug etabliert, müssen ML-Workloads weiterhin kosteneffizient bleiben.

SageMaker bietet einen breiten und umfassenden Funktionsumfang zur Erleichterung jedes Schritts in der ML-Pipeline.

Diese Robustheit bietet auch kontinuierliche Möglichkeiten zur Kostenoptimierung, ohne Kompromisse bei Leistung oder Agilität einzugehen.


Über die Autoren

Analysieren Sie die Ausgaben von Amazon SageMaker und ermitteln Sie Möglichkeiten zur Kostenoptimierung basierend auf der Nutzung, Teil 3: Verarbeitung und Data Wrangler-Jobs | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Deepali Rajale ist Senior AI/ML-Spezialist bei AWS. Sie arbeitet mit Unternehmenskunden zusammen und bietet technische Beratung mit Best Practices für die Bereitstellung und Wartung von KI/ML-Lösungen im AWS-Ökosystem. Sie hat mit einer Vielzahl von Organisationen an verschiedenen Deep-Learning-Anwendungsfällen mit NLP und Computer Vision gearbeitet. Ihre Leidenschaft liegt darin, Unternehmen dabei zu unterstützen, generative KI zu nutzen, um ihr Nutzungserlebnis zu verbessern. In ihrer Freizeit genießt sie Filme, Musik und Literatur.

Analysieren Sie die Ausgaben von Amazon SageMaker und ermitteln Sie Möglichkeiten zur Kostenoptimierung basierend auf der Nutzung, Teil 3: Verarbeitung und Data Wrangler-Jobs | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Uri Rosenberg ist der AI & ML Specialist Technical Manager für Europa, den Nahen Osten und Afrika. Uri hat seinen Sitz in Israel und arbeitet daran, Unternehmenskunden in allen ML-Themen dabei zu unterstützen, in großem Maßstab zu entwerfen, zu bauen und zu betreiben. In seiner Freizeit fährt er gerne Rad, wandert und beobachtet Sonnenuntergänge (mindestens einmal am Tag).

Zeitstempel:

Mehr von AWS Maschinelles Lernen