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 AssociateErgebnisprognosemit Eingabedatensätzen. Sie können beispielsweise Eingabedaten filtern, um Kontext für das Erstellen und Interpretieren von Berichten zu den Ausgabedaten bereitzustellen.
Themen
- Verwenden der Stapeltransformation zum Abrufen von Inferenzen aus großen Datensätzen
- Beschleunigen eines Stapeltransformationsauftrags
- Verwenden der Stapeltransformation zum Testen von Produktionsvarianten
- Fehler bei der Stapeltransformation
- Beispiel-Notebooks für Stapeltransformationen
- AssociateErgebnisprognosemit Eingabedatensätzen
- Lagerung in 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-Datei,input1.csv
,in einem S3-Bucket gespeichertaus. Der Inhalt der Eingabedatei könnte wie das folgende Beispiel 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
. Wenn Sie eine Eingabedatei haben, aber mehrere Compute-Instanzen initialisieren, verarbeitet nur eine Instanz die Eingabedatei und der Rest der Instanzen ist im Leerlauf.
Sie können Eingabedateien auch in 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
SageMaker verarbeitet jede Eingabedatei getrennt. Ministapel aus verschiedenen Eingabedateien werden nicht kombiniert, um denMaxPayloadInMB
Limit.
Zum Aufteilen von Eingabedateien in Ministapel beim Erstellen eines Stapeltransformationsauftrags legen Sie denSplitType
Parameterwert zuLine
aus. WennSplitType
wird auf gesetztNone
oder 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. Sie können die Größe der Mini-Batches steuern, indem Sie dieBatchStrategy
undMaxPayloadInMB
-Parameter.MaxPayloadInMB
darf nicht größer als 100 MB sein. Wenn Sie das optionale angebenMaxConcurrentTransforms
-Parameter, dann der Wert von(MaxConcurrentTransforms * MaxPayloadInMB)
darf auch 100 MB nicht überschreiten.
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.s3://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 denAssembleWith
Parameterwert zuLine
aus.
Wenn die Eingabedaten sehr groß sind und mit HTTP Chunked-Codierung übertragen werden, setzen Sie fest, um die Daten an den Algorithmus zu streamenMaxPayloadInMB
zu0
aus. Diese Funktion wird von den integrierten Amazon SageMaker SageMaker-Algorithmen nicht unterstützt.
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 unterOutputDataConfig
aus. Ein Beispiel zur Verwendung der Stapeltransformation finden Sie unter (Optional) Vorhersage mit Batch-Transformation machen.
Beschleunigen eines Stapeltransformationsauftrags
Bei Verwendung desCreateTransformJob
API können Sie die Stapeltransformationsaufträge schnell abschließen, indem Sie optimale Werte für Parameter verwendenwieMaxPayloadInMB
,MaxConcurrentTransforms
, oderBatchStrategy
aus. Der ideale Wert fürMaxConcurrentTransforms
entspricht der Anzahl der Rechenarbeiter im Batch-Transformationsauftrag. 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 müssen 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 mehrteiligen 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 alsfailed
aus. 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.
Überschreiten desMaxPayloadInMB
limit verursacht einen Fehler. Dies kann der Fall sein, wenn ein großes Dataset nicht aufgeteilt werden kann,SplitType
-Parameter ist auf gesetztnone
oder 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