Verwenden der Stapeltransformation - Amazon SageMaker

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwenden der Stapeltransformation

Verwenden Sie die Stapeltransformation, wenn Sie folgende Aufgaben ausführen möchten:

  • Vorverarbeitung von Datasets, um Rauschen oder Bias, das die Schulung oder Inferenz beeinträchtigt, aus Ihrem Dataset zu entfernen.

  • Abrufen von Inferenzen aus großen Datensätzen.

  • Ausführen der Inferenz, wenn Sie keinen persistenten Endpunkt benötigen.

  • Verknüpfen von Eingabedatensätzen mit Inferenzen, um die Interpretation der Ergebnisse zu unterstützen.

Informationen zum Filtern von Eingabedaten vor dem Ausführen von Inferenzen oder zum Zuweisen von Eingabedatensätzen zu Inferenzen über diese Datensätze finden Sie unter AssoziierenVoraussageergebnissemit Eingabedatensätzen. Sie können beispielsweise Eingabedaten filtern, um Kontext für das Erstellen und Interpretieren von Berichten zu den Ausgabedaten bereitzustellen.

Weitere Informationen zu Stapeltransformationen finden Sie unter Abrufen von Inferenzen für ein ganzes Dataset mit der Stapeltransformation.

Verwenden der Stapeltransformation zum Abrufen von Inferenzen aus großen Datensätzen

Die Stapeltransformation verwaltet automatisch die Verarbeitung von großen Datasetsinnerhalb der Grenzen spezifizierter Parameteraus. Angenommen, Sie haben eine Dataset-Dateiinput1.csv,in einem S3-Bucket gespeichertaus. Der Inhalt der Eingabedatei könnte wie folgt aussehen:

Record1-Attribute1, Record1-Attribute2, Record1-Attribute3, ..., Record1-AttributeM Record2-Attribute1, Record2-Attribute2, Record2-Attribute3, ..., Record2-AttributeM Record3-Attribute1, Record3-Attribute2, Record3-Attribute3, ..., Record3-AttributeM ... RecordN-Attribute1, RecordN-Attribute2, RecordN-Attribute3, ..., RecordN-AttributeM

Wenn ein Stapeltransformationsauftrag gestartet wird, initialisiert SageMaker Datenverarbeitungs-Instances und verteilt die Inferenz- oder Vorverarbeitungsarbeitslast zwischen ihnen. Die Stapeltransformation partitioniert die Amazon S3 S3-Objekte in der Eingabe nach Schlüssel und ordnet Amazon S3 S3-Objekte Instances zu. Wenn Sie mehrere Dateien haben, verarbeitet eine Instance z. B. input1.csv und eine andere Instance möglicherweise die Datei mit dem Namen input2.csv.

So halten Sie große Nutzlasten unterdieMaxPayloadInMB Begrenzungkönnen Sie eine Eingabedatei in mehrere Ministapel aufteilen. Sie können z. B. einen Ministapel aus input1.csv erstellen, indem Sie nur zwei der Dateien einschließen.

Record3-Attribute1, Record3-Attribute2, Record3-Attribute3, ..., Record3-AttributeM Record4-Attribute1, Record4-Attribute2, Record4-Attribute3, ..., Record4-AttributeM
Anmerkung

SageMaker verarbeitet jede Eingabedatei getrennt. Ministapel aus verschiedenen Eingabedateien werden nicht kombiniert, um das MaxPayloadInMB -Limit einzuhalten.

Zum Aufteilen von Eingabedateien in Ministapel legen Sie beim Erstellen eines Stapeltransformationsauftrags denSplitTypeParameterwert zuLineaus. WennSplitTypewird auf gesetztNoneoder wenn eine Eingabedatei nicht in Ministapel aufgeteilt werden kann, verwendet SageMaker die gesamte Eingabedatei in einer einzigen Anforderung. Beachten Sie, dass Batch Transform keine CSV-formatierten Eingaben unterstützt, die eingebettete Zeilenumbrüche enthalten.

Wenn der Stapeltransformationsauftrag alle Datensätze in einer Eingabedatei erfolgreich verarbeitet, wird eine Ausgabedatei mit demselben Namen und der Datenerweiterung .out erstellt. Bei mehreren Eingabedateien, wie z. B. input1.csv und input2.csv, erhalten die Ausgabedateien die Namen input1.csv.out und input2.csv.out. Der Stapeltransformationsauftrag speichert die Ausgabedateien am angegebenen Speicherort in Amazon S3, z. B. unter anderems3://awsexamplebucket/output/aus.

Die Prognosen in einer Ausgabedatei werden in der gleichen Reihenfolge aufgelistet wie die entsprechenden Datensätze in der Eingabedatei. Die Ausgabedatei input1.csv.out würde basierend auf der zuvor gezeigten Eingabedatei wie folgt aussehen.

Inference1-Attribute1, Inference1-Attribute2, Inference1-Attribute3, ..., Inference1-AttributeM Inference2-Attribute1, Inference2-Attribute2, Inference2-Attribute3, ..., Inference2-AttributeM Inference3-Attribute1, Inference3-Attribute2, Inference3-Attribute3, ..., Inference3-AttributeM ... InferenceN-Attribute1, InferenceN-Attribute2, InferenceN-Attribute3, ..., InferenceN-AttributeM

Um die Ergebnisse mehrerer Ausgabedateien in einer einzigen Ausgabedatei zusammenzufassen,Stellen Sie das festAssembleWithParameterwert zuLineaus.

Wenn die Eingabedaten sehr groß sind und mit HTTP Chunked-Codierung übertragen werden, setzen Sie zum Streamen der Daten an den AlgorithmusMaxPayloadInMBzu0aus. Die integrierten Amazon SageMaker SageMaker-Algorithmen unterstützen diese Funktion nicht.

Weitere Informationen über das Erstellen eines Stapeltransformationsauftrags mithilfe der API finden Sie unter CreateTransformJob-API. Weitere Informationen zur Korrelation zwischen Eingabe- und Ausgabeobjekten bei der Stapeltransformation erhalten Sie unter OutputDataConfig. Ein Beispiel zur Verwendung der Stapeltransformation finden Sie unter (Optional) Vorhersage mit Batch-Transformation machen.

Beschleunigen eines Stapeltransformationsauftrags

Wenn Sie das verwendenCreateTransformJobMit API können Sie die Stapeltransformationsaufträge schnell abschließen, indem Sie optimale Werte für Parameter verwendenwieMaxPayloadInMB,MaxConcurrentTransforms, oderBatchStrategyaus. Wenn Sie die SageMaker-Konsole verwenden, können Sie diese optimalen Parameterwerte imZusätzliche Konfiguration-Abschnitt imKonfiguration der Batch-Transformationangezeigten. SageMaker findet automatisch die optimalen Parametereinstellungen für integrierte Algorithmen. Für benutzerdefinierte Algorithmen können Sie diese Werte über einenAusführungsparameter-Endpunkt.

Verwenden der Stapeltransformation zum Testen von Produktionsvarianten

Zum Testen verschiedener Modelle oder verschiedener Hyperparametereinstellungen erstellen Sie eine separate Transformationsaufgabe für jede neue Modellvariante und verwenden ein Validierungsdataset. Geben Sie für jeden Transformationsauftrag einen eindeutigen Namen und einen Speicherort in Amazon S3 für die Ausgabedatei an. Beachten Sie bei der Analyse der Ergebnisse das Thema Inferenz-Pipeline-Protokolle und -Metriken.

Fehler bei der Stapeltransformation

SageMaker verwendet den Amazon S3API für mehrteilige Uploadum Ergebnisse aus einem Stapeltransformationsauftrag auf Amazon S3 hochzuladen. Wenn ein Fehler auftritt, werden die hochgeladenen Ergebnisse aus Amazon S3 entfernt. In einigen Fällen, z. B. bei einem Netzwerkausfall, verbleibt möglicherweise ein unvollständiger mehrteiliger Upload in Amazon S3. Zur Vermeidung von Gebühren für Speicherplatz empfehlen wir, den S3-Bucket-Lebenszyklusregeln die S3-Bucket-Richtlinie hinzuzufügen. Diese Richtlinie löscht unvollständige mehrteilige Uploads, die möglicherweise im S3-Bucket gespeichert sind. Weitere Informationen hierzu finden Sie im Abschnitt Objektlebenszyklusverwaltung.

Wenn ein Stapeltransformationsauftrag eine Eingabedatei nicht verarbeiten kann, weil es ein Problem mit dem Dataset gibt, kennzeichnet SageMaker den Auftrag alsfailedaus. Wenn eine Eingabedatei einen ungültigen Datensatz enthält, generiert der Transformationsauftrag für diese Eingabedatei keine Ausgabedatei, da für die transformierten Daten nicht dieselbe Reihenfolge wie in der Eingabedatei beibehalten werden kann. Bei mehrere Eingabedateien in einem Dataset wird die Verarbeitung der Eingabedateien fortgesetzt, auch wenn der Transformationsauftrag eine Datei nicht verarbeiten kann. Die verarbeiteten Dateien erzeugen dessen ungeachtet verwertbare Ergebnisse.

Überschreitung desMaxPayloadInMBLimit verursacht einen Fehler. Dies kann der Fall sein, wenn ein großes Dataset nicht aufgeteilt werden kannSplitType-Parameter ist auf gesetztnoneoder einzelne Datensätze innerhalb des Datensatzes überschreiten das Limit.

Wenn Sie eigene Algorithmen verwenden, können Sie Platzhaltertext wie beispielsweise ERROR verwenden, wenn der Algorithmus einen fehlerhaften Datensatz in einer Eingabedatei findet. Beispiel: Wenn der letzte Datensatz in einem Dataset ungültig ist, platziert der Algorithmus anstelle dieses Datensatzes den Platzhaltertext in der Ausgabedatei.

Beispiel-Notebooks für Stapeltransformationen

Ein Beispiel-Notebook, das Stapeltransformation mit einem PCA-Modell (Prinzipal Component Analysis) verwendet, um Daten in einer Benutzer-Element-Überprüfungsmatrix zu reduzieren, gefolgt von der Anwendung eines DBSCAN-Algorithmus (Dichtebasiertes räumliches Clustering von Anwendungen mit Rauschen) auf Cluster-Filme finden Sie unter Batch Transform with PCA and DBSCAN Movie Clusters. Anweisungen zum Erstellen und Zugreifen auf Jupyter-Notebook-Instances, die Sie verwenden können, um das Beispiel in SageMaker auszuführen, finden Sie unterVerwenden von Amazon SageMaker Notebook-aus. Nach dem Erstellen und Öffnen einer Notebook-Instance wählen SieSageMaker-Beispiele-Registerkarte, um eine Liste aller SageMaker-Beispiele anzuzeigen. Das Thema Modellierung von Beispiel-Notebooks, die dasNTM-Algorithmenbefinden sich imErweiterte FunktionalitätAbschnitts erstellt. Zum Öffnen eines Notebooks wählen Sie die Registerkarte Use (Verwenden) und dann Create copy (Kopie erstellen).