

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.

# Batch-Transformation für Inferenz mit Amazon AI SageMaker
<a name="batch-transform"></a>

Verwenden Sie die Stapeltransformation, wenn Sie folgende Aufgaben ausführen möchten: 
+ Vorverarbeitung von Datensätzen, um Rauschen oder Bias, das das Training oder Inferenz beeinträchtigt, aus Ihrem Datensatz 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 [Zuordnen von Voraussageergebnissen zu Eingabedatensätzen](batch-transform-data-processing.md). Sie können beispielsweise Eingabedaten filtern, um Kontext für das Erstellen und Interpretieren von Berichten zu den Ausgabedaten bereitzustellen.

**Topics**
+ [

## Verwenden der Batch-Transformation zum Abrufen von Inferenzen aus großen Datensätzen
](#batch-transform-large-datasets)
+ [

## Beschleunigen eines Stapeltransformationsauftrags
](#batch-transform-reduce-time)
+ [

## Verwenden der Stapeltransformation zum Testen von Produktionsvarianten
](#batch-transform-test-variants)
+ [

## Beispiel-Notebooks für Stapeltransformationen
](#batch-transform-notebooks)
+ [

# Zuordnen von Voraussageergebnissen zu Eingabedatensätzen
](batch-transform-data-processing.md)
+ [

# Speichern in Stapeltransformation
](batch-transform-storage.md)
+ [

# Fehlerbehebung
](batch-transform-errors.md)

## Verwenden der Batch-Transformation zum Abrufen von Inferenzen aus großen Datensätzen
<a name="batch-transform-large-datasets"></a>

Die Stapeltransformation verwaltet automatisch die Verarbeitung von großen Datensätzen innerhalb der angegebenen Parameter. Nehmen wir beispielsweise an, Sie haben eine Datensatz-Datei `input1.csv`, die in einem S3-Bucket gespeichert ist. Der Inhalt der Eingabedatei könnte wie das nachfolgende 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 Batch-Transformationsjob gestartet wird, startet SageMaker KI Recheninstanzen und verteilt die Inferenz- oder Vorverarbeitungs-Workload zwischen ihnen. Die Stapeltransformation partitioniert Amazon S3-Objekte in der Eingabe nach Schlüssel und ordnet Amazon S3-Objekte den 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 über eine Eingabedatei verfügen, aber mehrere Rechen-Instances initialisieren, verarbeitet nur eine Instance die Eingabedatei. Die übrigen Instances befinden sich im Leerlauf.

Sie können Eingabedateien auch in Mini-Batches 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 AI verarbeitet jede Eingabedatei separat. Ministapel aus verschiedenen Eingabedateien werden nicht kombiniert, um das [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#SageMaker-CreateTransformJob-request-MaxPayloadInMB               ](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#SageMaker-CreateTransformJob-request-MaxPayloadInMB               )-Limit einzuhalten.

Um Eingabedateien bei der Erstellung eines Batch-Transformationsauftrags in Mini-Batches aufzuteilen, setzen Sie den [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformInput.html#SageMaker-Type-TransformInput-SplitType             ](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformInput.html#SageMaker-Type-TransformInput-SplitType             )Parameterwert auf. `Line` SageMaker AI verwendet die gesamte Eingabedatei in einer einzigen Anforderung, wenn:
+ `SplitType` auf `None` gesetzt wird.
+ Eine Eingabedatei kann nicht in Mini-Batches aufgeteilt werden.

Beachten Sie, dass Stapeltransformation keine CSV-formatierte Eingabe unterstützt, die eingebettete Zeilenumbruchzeichen enthält. Sie können die Größe der Mini-Batches mithilfe der Parameter `[BatchStrategy](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#sagemaker-CreateTransformJob-request-BatchStrategy)` und `[MaxPayloadInMB](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#sagemaker-CreateTransformJob-request-MaxPayloadInMB)` steuern. `MaxPayloadInMB` darf nicht größer als 100 MB sein. Wenn Sie den optionalen `[MaxConcurrentTransforms](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#sagemaker-CreateTransformJob-request-MaxConcurrentTransforms)` Parameter angeben, darf der Wert von `(MaxConcurrentTransforms * MaxPayloadInMB)` ebenfalls 100 MB nicht überschreiten.

Wenn der Stapeltransformationsauftrag alle Datensätze in einer Eingabedatei erfolgreich verarbeitet, wird eine Ausgabedatei erstellt. Die Ausgabedatei hat denselben Namen und die Dateierweiterung `.out`. 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 `s3://amzn-s3-demo-bucket/output/`. 

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
```

Wenn Sie [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformInput.html#SageMaker-Type-TransformInput-SplitType             ](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformInput.html#SageMaker-Type-TransformInput-SplitType             ) auf `Line` festlegen, können Sie den Parameter [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformOutput.html#SageMaker-Type-TransformOutput-AssembleWith             ](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformOutput.html#SageMaker-Type-TransformOutput-AssembleWith             ) auf `Line` setzen, um die Ausgabedatensätze mit einem Zeilentrennzeichen zu verketten. Dies ändert nichts an der Anzahl der Ausgabedateien. Die Anzahl der Ausgabedateien entspricht der Anzahl der Eingabedateien, und bei der Verwendung von `AssembleWith` werden keine Dateien zusammengeführt. Wenn Sie den Parameter `AssembleWith` nicht angeben, werden die Ausgabedatensätze standardmäßig in einem Binärformat verkettet.

Wenn die Eingabedaten sehr groß sind und mit HTTP-Abschnittscodierung übertragen werden, um die Daten an den Algorithmus zu streamen, legen Sie [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#SageMaker-CreateTransformJob-request-MaxPayloadInMB](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#SageMaker-CreateTransformJob-request-MaxPayloadInMB) auf `0` fest. Die integrierten Algorithmen von Amazon SageMaker AI unterstützen diese Funktion nicht.

Weitere Informationen über das Erstellen eines Stapeltransformationsauftrags mithilfe der API finden Sie unter [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html)-API. Weitere Informationen zur Beziehung zwischen Eingabe- und Ausgabeobjekten bei der Stapeltransformation erhalten Sie unter [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_OutputDataConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_OutputDataConfig.html). Ein Beispiel zur Verwendung der Stapeltransformation finden Sie unter [(Optional) Vorhersagen mit Batch-Transformation treffen](ex1-model-deployment.md#ex1-batch-transform).

## Beschleunigen eines Stapeltransformationsauftrags
<a name="batch-transform-reduce-time"></a>

Wenn Sie die [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html)-API verwenden, können Sie die Stapeltransformationsaufträge schneller abschließen, indem Sie optimale Werte für Parameter verwenden. Dazu gehören Parameter wie [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#SageMaker-CreateTransformJob-request-MaxPayloadInMB](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#SageMaker-CreateTransformJob-request-MaxPayloadInMB), [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#SageMaker-CreateTransformJob-request-MaxConcurrentTransforms](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#SageMaker-CreateTransformJob-request-MaxConcurrentTransforms) oder [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#SageMaker-CreateTransformJob-request-BatchStrategy](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#SageMaker-CreateTransformJob-request-BatchStrategy). Der ideale Wert für `MaxConcurrentTransforms` entspricht der Anzahl der Compute Worker im Stapeltransformationsauftrag. 

Wenn Sie die SageMaker AI-Konsole verwenden, geben Sie diese optimalen Parameterwerte im Abschnitt **Zusätzliche Konfiguration der Konfigurationsseite** **für Batch-Transformationsjobs** an. SageMaker KI findet automatisch die optimalen Parametereinstellungen für integrierte Algorithmen. Für benutzerdefinierte Algorithmen müssen Sie diese Werte über einen [execution-parameters](https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-batch-code.html#your-algorithms-batch-code-how-containe-serves-requests)-Endpunkt angeben.

## Verwenden der Stapeltransformation zum Testen von Produktionsvarianten
<a name="batch-transform-test-variants"></a>

Zum Testen verschiedener Modelle oder Hyperparametereinstellungen erstellen Sie eine separate Transformationsaufgabe für jede neue Modellvariante und verwenden einen Validierungsdatensatz. 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 [Protokolle und Metriken der Inferenz-Pipeline](inference-pipeline-logs-metrics.md).

## Beispiel-Notebooks für Stapeltransformationen
<a name="batch-transform-notebooks"></a>

Ein Beispiel-Notebook, das die Batch-Transformation verwendet, finden Sie unter [Batch-Transformation mit PCA- und DBSCAN-Movie-Clustern](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker_batch_transform/introduction_to_batch_transform/batch_transform_pca_dbscan_movie_clusters.html). In diesem Notebook wird eine Batch-Transformation mit einem Modell der Hauptkomponentenanalyse (PCA, Principal Component Analysis) verwendet, um die Daten in einer Bewertungsmatrix für Benutzerelemente zu reduzieren. Anschließend wird die Anwendung eines Algorithmus zum dichtebasierten räumlichen Clustering von Anwendungen mit Rauschen (DBSCAN) zum Clustering von Filmen gezeigt.

 Anweisungen zum Erstellen und Zugreifen auf Jupyter-Notebook-Instanzen, mit denen Sie das Beispiel in SageMaker KI ausführen können, finden Sie unter. [SageMaker Amazon-Notebook-Instanzen](nbi.md) Nachdem Sie eine Notebook-Instanz erstellt und geöffnet haben, wählen Sie den Tab **SageMakerBeispiele**, um eine Liste aller KI-Beispiele zu sehen. SageMaker Die Beispiel-Notebooks zum Thema Modellierung, die die NTM-Algorithmen verwenden, befinden sich im Abschnitt **Erweiterte Funktionen**. Zum Öffnen eines Notebooks wählen Sie die Registerkarte **Use (Verwenden)** und dann **Create copy (Kopie erstellen)**.

# Zuordnen von Voraussageergebnissen zu Eingabedatensätzen
<a name="batch-transform-data-processing"></a>

Wenn Sie Voraussagen für einen großen Datensatz erstellen, können Sie nicht für die Prognose benötigte Attribute ausschließen. Nachdem die Prognosen vorgenommen wurden, können Sie einige der ausgeschlossenen Attribute diesen Prognosen oder anderen Eingabedaten in Ihrem Bericht zuordnen. Wenn diese Datenverarbeitungsschritte mithilfe der Stapeltransformation ausgeführt werden, entfällt häufig eine zusätzliche Vor- oder Nachverarbeitung. Sie können Eingabedateien nur im JSON- und CSV-Format verwenden. 

**Topics**
+ [

## Workflow für die Zuordnung von Inferenzen zu Eingabedatensätzen
](#batch-transform-data-processing-workflow)
+ [

## Verwenden der Datenverarbeitung in Stapelumwandlungsaufträgen
](#batch-transform-data-processing-steps)
+ [

## Unterstützte Operatoren JSONPath
](#data-processing-operators)
+ [

## Beispiele für die Stapeltransformation
](#batch-transform-data-processing-examples)

## Workflow für die Zuordnung von Inferenzen zu Eingabedatensätzen
<a name="batch-transform-data-processing-workflow"></a>

Das folgende Diagramm zeigt den Workflow für die Zuordnung von Inferenzen zu Eingabedatensätzen.

![\[Workflow für die Zuordnung von Inferenzen zu Eingabedatensätzen\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/batch-transform-data-processing.png)


Inferenzen werden in drei Hauptschritten mit Eingabedaten verknüpft:

1. Filtern Sie die Eingabedaten, die für die Inferenz nicht erforderlich sind, bevor sie an den Stapeltransformationsauftrag übergeben werden. Verwenden Sie den Parameter [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#SageMaker-Type-DataProcessing-InputFilter                             ](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#SageMaker-Type-DataProcessing-InputFilter                             ), um zu bestimmen, welche Attribute als Eingabe für das Modell verwendet werden.

1. Ordnen Sie die Eingabedaten den Inferenzergebnissen zu. Verwenden Sie den Parameter [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#SageMaker-Type-DataProcessing-JoinSource                         ](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#SageMaker-Type-DataProcessing-JoinSource                         ), um die Eingabedaten mit der Inferenz zu kombinieren.

1. Filtern Sie die verknüpften Daten, um die Eingaben beizubehalten, die erforderlich sind, um Kontext für die Interpretation der Prognosen in den Berichten bereitzustellen. Verwenden Sie [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#SageMaker-Type-DataProcessing-OutputFilter                             ](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#SageMaker-Type-DataProcessing-OutputFilter                             ) zum Speichern des angegebenen Teils des verknüpften Datensatzes in der Ausgabedatei.

## Verwenden der Datenverarbeitung in Stapelumwandlungsaufträgen
<a name="batch-transform-data-processing-steps"></a>

Beim Erstellen eines Stapeltransformationsauftrags mit [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html) zum Verarbeiten von Daten:

1. Geben Sie den Teil der Eingabe an, die dem Modell mit dem `InputFilter`-Parameter in der `DataProcessing`-Datenstruktur übergeben werden soll. 

1. Verknüpfen Sie die unformatierten Eingabedaten mithilfe des `JoinSource`-Parameters mit den transformierten Daten.

1. Geben Sie mit dem `OutputFilter`-Parameter an, welcher Teil der verknüpften Eingabedaten und transformierten Daten aus dem Stapeltransformationauftrag in die Ausgabedatei eingeschlossen werden soll.

1.  Wählen Sie entweder JSON- oder CSV-formatierte Dateien für die Eingabe aus: 
   + Bei Eingabedateien im JSON- oder JSON Lines-Format fügt SageMaker AI entweder das `SageMakerOutput` Attribut zur Eingabedatei hinzu oder erstellt eine neue JSON-Ausgabedatei mit den `SageMakerInput` Attributen und. `SageMakerOutput` Weitere Informationen finden Sie unter [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DataProcessing.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DataProcessing.html). 
   + Für CSV-formatierte Eingabedateien folgen den verknüpften Eingabedaten die transformierten Daten und die Ausgabe ist eine CSV-Datei.

Wenn Sie einen Algorithmus mit der `DataProcessing`-Struktur verwenden, muss diese das ausgewählte Format sowohl für Eingabe- *als auch* Ausgabedateien unterstützen. Mit dem Feld [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformOutput.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformOutput.html) der `CreateTransformJob`-API müssen Sie z. B. die Parameter [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Channel.html#SageMaker-Type-Channel-ContentType](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Channel.html#SageMaker-Type-Channel-ContentType) und [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformOutput.html#SageMaker-Type-TransformOutput-Accept](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformOutput.html#SageMaker-Type-TransformOutput-Accept) auf einen der folgenden Werte festlegen: `text/csv`, `application/json` oder `application/jsonlines`. Die Syntax für die Angabe von Spalten in einer CSV-Datei und von Attributen in einer JSON-Datei ist unterschiedlich. Durch Verwenden der falschen Syntax wird ein Fehler verursacht. Weitere Informationen finden Sie unter [Beispiele für die Stapeltransformation](#batch-transform-data-processing-examples). Weitere Informationen zu Eingabe- und Ausgabedateiformaten für integrierte Algorithmen finden Sie unter [Integrierte Algorithmen und vortrainierte Modelle in Amazon SageMaker](algos.md).

Die Datensatztrennzeichen für die Ein- und Ausgabe müssen außerdem mit der von Ihnen ausgewählten Dateieingabe konsistent sein. Der Parameter [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformInput.html#SageMaker-Type-TransformInput-SplitType](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformInput.html#SageMaker-Type-TransformInput-SplitType) gibt an, wie die Datensätze im Eingabedatensatz aufgeteilt werden sollen. Der Parameter [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformOutput.html#SageMaker-Type-TransformOutput-AssembleWith                     ](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformOutput.html#SageMaker-Type-TransformOutput-AssembleWith                     ) gibt an, wie die Wiederherstellung der Datensätze für die Ausgabe erfolgen soll. Wenn Sie Ein- und Ausgabeformate auf `text/csv` festlegen, müssen Sie auch die Parameter `SplitType` und `AssembleWith` auf `line` einstellen. Wenn Sie die Ein- und Ausgabeformate auf `application/jsonlines` festlegen, können Sie die sowohl `SplitType` als auch `AssembleWith` auf `line` einstellen.

Für CSV-Dateien können Sie keine eingebetteten Zeilenumbruchzeichen verwenden. Für JSON-Dateien ist der Attributname `SageMakerOutput` für die Ausgabe reserviert. Die JSON-Eingabedatei darf kein Attribut mit diesem Namen enthalten. Wenn dies der Fall ist, werden die Daten in der Eingabedatei möglicherweise überschrieben. 

## Unterstützte Operatoren JSONPath
<a name="data-processing-operators"></a>

Verwenden Sie einen JSONPath Unterausdruck, um die Eingabedaten und die Inferenz zu filtern und zu verknüpfen. SageMaker AI unterstützt nur eine Teilmenge der definierten Operatoren. JSONPath In der folgenden Tabelle sind die unterstützten JSONPath Operatoren aufgeführt. Bei CSV-Daten wird jede Zeile als JSON-Array verwendet, sodass nur indexbasierte Daten angewendet werden JSONPaths können`$[0]`, `$[1:]` z. B. CSV-Daten sollten auch dem [RFC-Format](https://tools.ietf.org/html/rfc4180)folgen.


| JSONPath Operator | Beschreibung | Beispiel | 
| --- | --- | --- | 
| \$1 |  Das Root-Element für eine Abfrage. Dieser Operator ist am Anfang alle Pfadausdrücke erforderlich.  | \$1 | 
| .<name> |  Ein untergeordnetes Element in Punkt-Notation.  |  `$.id`  | 
| \$1 |  Platzhalter Verwenden Sie diesen anstelle eines Attributnamens oder numerischen Werts.  |  `$.id.*`  | 
| ['<name>' (,'<name>')] |  Ein Element oder mehrere untergeordnete Elemente in Klammer-Notation.  |  `$['id','SageMakerOutput']`  | 
| [<number> (,<number>)] |  Ein Index oder Array von Indizes. Negative Indexwerte werden ebenfalls unterstützt. Der Index `-1` bezieht sich auf das letzte Element in einem Array.  |  `$[1]` , `$[1,3,5]`  | 
| [<start>:<end>] |  Ein Array-Slice-Operator. Die Array-Slice()-Methode extrahiert einen Abschnitt eines Arrays und gibt ein neues Array zurück. Wenn Sie es weglassen*<start>*, verwendet SageMaker AI das erste Element des Arrays. Wenn Sie es weglassen*<end>*, verwendet SageMaker AI das letzte Element des Arrays.  |  `$[2:5]`, `$[:5]`, `$[2:]`  | 

Wenn Sie die Klammern verwenden, um mehrere untergeordnete Elemente eines bestimmten Felds anzugeben, wird eine zusätzliche Verschachtelung von untergeordneten Elementen in Klammern nicht unterstützt. Beispielsweise `$.field1.['child1','child2']` wird unterstützt, während `$.field1.['child1','child2.grandchild']` es nicht ist. 

Weitere Informationen zu JSONPath Operatoren finden Sie [JsonPath](https://github.com/json-path/JsonPath)unter GitHub

## Beispiele für die Stapeltransformation
<a name="batch-transform-data-processing-examples"></a>

Die folgenden Beispiele zeigen einige gängige Möglichkeiten zur Verknüpfung von Eingabedaten mit Prognoseergebnissen.

**Topics**
+ [

### Beispiel: Ausgeben nur von Inferenzen
](#batch-transform-data-processing-example-default)
+ [

### Beispiel: Ausgabe von Inferenzen in Verbindung mit Eingabedaten
](#batch-transform-data-processing-example-all)
+ [

### Beispiel: Mit Eingabedaten verknüpfte Inferenzen ausgeben und die ID-Spalte von der Eingabe ausschließen (CSV)
](#batch-transform-data-processing-example-select-csv)
+ [

### Beispiel: Ausgabe von Inferenzen in Verbindung mit einer ID-Spalte und Ausschließen der ID-Spalte aus der Eingabe (CSV)
](#batch-transform-data-processing-example-select-json)

### Beispiel: Ausgeben nur von Inferenzen
<a name="batch-transform-data-processing-example-default"></a>

Standardmäßig verbindet der Parameter [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#SageMaker-CreateTransformJob-request-DataProcessing](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#SageMaker-CreateTransformJob-request-DataProcessing) keine Inferenzergebnisse mit der Eingabe. Sie gibt nur die Inferenzergebnisse aus.

Wenn Sie explizit angeben möchten, dass Ergebnisse nicht mit Eingaben verknüpft werden sollen, verwenden Sie das [Amazon SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable) und geben Sie die folgenden Einstellungen in einem Transformer-Aufruf an.

```
sm_transformer = sagemaker.transformer.Transformer(…)
sm_transformer.transform(…, input_filter="$", join_source= "None", output_filter="$")
```

Um Inferenzen mit dem AWS SDK für Python auszugeben, fügen Sie Ihrer CreateTransformJob Anfrage den folgenden Code hinzu. Mit dem folgenden Code wird das Standardverhalten nachgeahmt.

```
{
    "DataProcessing": {
        "InputFilter": "$",
        "JoinSource": "None",
        "OutputFilter": "$"
    }
}
```

### Beispiel: Ausgabe von Inferenzen in Verbindung mit Eingabedaten
<a name="batch-transform-data-processing-example-all"></a>

Wenn Sie das [Amazon SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable) verwenden, um die Eingabedaten mit den Inferenzen in der Ausgabedatei zu kombinieren, geben Sie die `accept` Parameter `assemble_with` und an, wenn Sie das Transformer-Objekt initialisieren. Wenn Sie den Transform-Aufruf verwenden, geben Sie `Input` für den Parameter `join_source` an und geben Sie auch die Parameter `split_type` und `content_type` an. Der Parameter `split_type` muss denselben Wert wie `assemble_with` haben, und der Parameter `content_type` muss denselben Wert wie haben `accept`. Weitere Informationen zu den Parametern und ihren akzeptierten Werten finden Sie auf der [Transformer-Seite](https://sagemaker.readthedocs.io/en/stable/api/inference/transformer.html#sagemaker.transformer.Transformer) im *Amazon SageMaker AI Python SDK*.

```
sm_transformer = sagemaker.transformer.Transformer(…, assemble_with="Line", accept="text/csv")
sm_transformer.transform(…, join_source="Input", split_type="Line", content_type="text/csv")
```

Wenn Sie das AWS SDK für Python (Boto 3) verwenden, verknüpfen Sie alle Eingabedaten mit der Inferenz, indem Sie Ihrer [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html)Anfrage den folgenden Code hinzufügen. Die Werte für `Accept` und `ContentType` müssen übereinstimmen, und die Werte für `AssembleWith` und `SplitType` müssen ebenfalls übereinstimmen.

```
{
    "DataProcessing": {
        "JoinSource": "Input"
    },
    "TransformOutput": {
        "Accept": "text/csv",
        "AssembleWith": "Line"
    },
    "TransformInput": {
        "ContentType": "text/csv",
        "SplitType": "Line"
    }
}
```

Für JSON- oder JSON Lines-Eingabedateien sind die Ergebnisse im `SageMakerOutput`-Schlüssel in der JSON-Eingabedatei enthalten. Beispiel: Wenn die Eingabe eine JSON-Datei mit dem Schlüssel-Wert-Paar `{"key":1}` ist, lautet das Ergebnis der Datentransformation z. B. `{"label":1}`.

SageMaker AI speichert beide in der Eingabedatei im `SageMakerInput` Schlüssel.

```
{
    "key":1,
    "SageMakerOutput":{"label":1}
}
```

**Anmerkung**  
Das verknüpfte Ergebnis für JSON muss ein Schlüssel-Wert-Paar-Objekt sein. Wenn es sich bei der Eingabe nicht um ein Schlüssel-Wert-Paar-Objekt handelt, erstellt SageMaker AI eine neue JSON-Datei. In der neuen JSON-Datei werden die Eingabedaten im `SageMakerInput`-Schlüssel und die Ergebnisse als `SageMakerOutput`-Wert gespeichert.

Wenn der Datensatz für eine CSV-Datei z. B. `[1,2,3]` lautet und das Beschriftungsergebnis `[1]` ist, dann würde die Ausgabedatei `[1,2,3,1]` enthalten.

### Beispiel: Mit Eingabedaten verknüpfte Inferenzen ausgeben und die ID-Spalte von der Eingabe ausschließen (CSV)
<a name="batch-transform-data-processing-example-select-csv"></a>

Wenn Sie das [Amazon SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable) verwenden, um Ihre Eingabedaten mit der Inferenzausgabe zu verknüpfen und dabei eine ID-Spalte von der Transformer-Eingabe auszuschließen, geben Sie dieselben Parameter aus dem vorherigen Beispiel sowie einen JSONPath Unterausdruck für `input_filter` in Ihrem Transformer-Aufruf an. Beispiel: Wenn Ihre Eingabedaten fünf Spalten umfassen, wobei die erste die ID-Spalte ist, verwenden Sie die folgende Transformer-Anforderung, um alle Spalten außer der ID-Spalte als Merkmale zu verwenden. Der Transformator gibt weiterhin alle Eingabespalten aus, die mit den Inferenzen verknüpft sind. Weitere Informationen zu den Parametern und ihren akzeptierten Werten finden Sie auf der [Transformer-Seite](https://sagemaker.readthedocs.io/en/stable/api/inference/transformer.html#sagemaker.transformer.Transformer) im *Amazon SageMaker AI Python SDK*.

```
sm_transformer = sagemaker.transformer.Transformer(…, assemble_with="Line", accept="text/csv")
sm_transformer.transform(…, split_type="Line", content_type="text/csv", input_filter="$[1:]", join_source="Input")
```

Wenn Sie das AWS SDK für Python (Boto 3) verwenden, fügen Sie Ihrer `[ CreateTransformJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html)` Anfrage den folgenden Code hinzu.

```
{
    "DataProcessing": {
        "InputFilter": "$[1:]",
        "JoinSource": "Input"
    },
    "TransformOutput": {
        "Accept": "text/csv",
        "AssembleWith": "Line"
    },
    "TransformInput": {
        "ContentType": "text/csv",
        "SplitType": "Line"
    }
}
```

Verwenden Sie den Index der Array-Elemente, um Spalten in SageMaker AI anzugeben. Die erste Spalte ist Index 0, die zweite Spalte ist Index 1 und die sechste Spalte ist Index 5.

Um die erste Spalte aus der Eingabe auszuschließen, legen Sie `[InputFilter](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#SageMaker-Type-DataProcessing-InputFilter )` auf `"$[1:]"` fest. Der Doppelpunkt (`:`) weist SageMaker AI an, alle Elemente zwischen zwei Werten (einschließlich) einzubeziehen. `$[1:4]` gibt beispielsweise die zweite bis fünfte Spalte an.

Wenn Sie die Zahl nach dem Doppelpunkt weglassen, z. B. `[5:]`, enthält die Teilmenge alle Spalten von der 6. bis zur letzten Spalte. Wenn Sie die Zahl vor dem Doppelpunkt weglassen, z. B. `[:5]`, enthält die Teilmenge alle Spalten von der ersten Spalte (Index 0) bis zur sechsten Spalte.

### Beispiel: Ausgabe von Inferenzen in Verbindung mit einer ID-Spalte und Ausschließen der ID-Spalte aus der Eingabe (CSV)
<a name="batch-transform-data-processing-example-select-json"></a>

Wenn Sie das [Amazon SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable) verwenden, können Sie die Ausgabe so angeben, dass nur bestimmte Eingabespalten (z. B. die ID-Spalte) mit den Inferenzen verknüpft werden, indem Sie die `output_filter` im Transformer-Aufruf angeben. Der `output_filter` verwendet einen JSONPath Unterausdruck, um anzugeben, welche Spalten als Ausgabe zurückgegeben werden sollen, nachdem die Eingabedaten mit den Inferenzergebnissen verknüpft wurden. Die folgende Anforderung zeigt, wie Sie Vorhersagen treffen können, während Sie eine ID-Spalte ausschließen und dann die ID-Spalte mit den Inferenzen verknüpfen können. Beachten Sie, dass im folgenden Beispiel die letzte Spalte (`-1`) der Ausgabe die Inferenzen enthält. Wenn Sie JSON-Dateien verwenden, speichert SageMaker AI die Inferenzergebnisse im Attribut. `SageMakerOutput` Weitere Informationen zu den Parametern und ihren akzeptierten Werten finden Sie auf der [Transformer-Seite](https://sagemaker.readthedocs.io/en/stable/api/inference/transformer.html#sagemaker.transformer.Transformer) im *Amazon SageMaker AI Python SDK*.

```
sm_transformer = sagemaker.transformer.Transformer(…, assemble_with="Line", accept="text/csv")
sm_transformer.transform(…, split_type="Line", content_type="text/csv", input_filter="$[1:]", join_source="Input", output_filter="$[0,-1]")
```

Wenn Sie das AWS SDK für Python (Boto 3) verwenden, verknüpfen Sie nur die ID-Spalte mit den Inferenzen, indem Sie Ihrer [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html)Anfrage den folgenden Code hinzufügen.

```
{
    "DataProcessing": {
        "InputFilter": "$[1:]",
        "JoinSource": "Input",
        "OutputFilter": "$[0,-1]"
    },
    "TransformOutput": {
        "Accept": "text/csv",
        "AssembleWith": "Line"
    },
    "TransformInput": {
        "ContentType": "text/csv",
        "SplitType": "Line"
    }
}
```

**Warnung**  
Wenn Sie eine JSON-formatierte Eingabedatei verwenden, darf die Datei den Attributnamen `SageMakerOutput` nicht enthalten. Dieser Attributname ist für die Inferenzen in der Ausgabedatei reserviert. Wenn Ihre JSON-formatierte Eingabedatei ein Attribut mit diesem Namen enthält, können Werte in der Eingabedatei durch die Inferenz überschrieben werden.

# Speichern in Stapeltransformation
<a name="batch-transform-storage"></a>

Wenn Sie einen Batch-Transformationsauftrag ausführen, hängt Amazon SageMaker AI ein Amazon Elastic Block Store-Speichervolume an Amazon EC2 EC2-Instances an, die Ihren Job verarbeiten. Das Volume speichert Ihr Modell, und die Größe des Speichervolumens ist auf 30 GB festgelegt. Sie haben die Möglichkeit, Ihr Modell im Ruhezustand auf dem Speichervolumen zu verschlüsseln.

**Anmerkung**  
Wenn Sie ein großes Modell haben, stoßen Sie möglicherweise auf einen `InternalServerError`.

Weitere Informationen zu Amazon-EBS-Speicher und Funktionen finden Sie auf den folgenden Seiten:
+ [Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html) im Amazon-EC2-Benutzerhandbuch
+ [Amazon-EBS-Volumes](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volumes.html) im Amazon-EC2-Benutzerhandbuch

**Anmerkung**  
G4dn-Instances verfügen über ihren eigenen lokalen SSD-Speicher. Weitere Informationen zu G4dn-Instances finden Sie auf der Seite [Amazon-EC2-G4-Instances](https://aws.amazon.com/ec2/instance-types/g4/).

# Fehlerbehebung
<a name="batch-transform-errors"></a>

Wenn Sie Fehler in Amazon SageMaker AI Batch Transform haben, lesen Sie die folgenden Tipps zur Fehlerbehebung.

## Fehler bei der maximalen Zeitüberschreitung
<a name="batch-transform-errors-max-timeout"></a>

Wenn Sie bei der Ausführung von Stapeltransformationsaufträgen Fehler mit der maximalen Zeitüberschreitung erhalten, versuchen Sie Folgendes:
+ Beginnen Sie mit dem Einzeldatensatz-`[BatchStrategy](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#sagemaker-CreateTransformJob-request-BatchStrategy)`, einer Stapelgröße der Standardgröße (6 MB) oder kleiner, die Sie im Parameter `[MaxPayloadInMB](https://docs.aws.amazon.com//sagemaker/latest/APIReference/API_CreateTransformJob.html#sagemaker-CreateTransformJob-request-MaxPayloadInMB)` angeben, und einem kleinen Beispieldatensatz. Passen Sie den Parameter für die maximale Zeitüberschreitung `[InvocationsTimeoutInSeconds](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ModelClientConfig.html#sagemaker-Type-ModelClientConfig-InvocationsTimeoutInSeconds)` (der maximal 1 Stunde beträgt) so lange an, bis Sie eine erfolgreiche Aufrufantwort erhalten.
+ Nachdem Sie eine erfolgreiche Aufrufantwort erhalten haben, erhöhen Sie den Wert `MaxPayloadInMB` (mit einem Maximum von 100 MB) und die Parameter `InvocationsTimeoutInSeconds` zusammen, um die maximale Stapelgröße zu ermitteln, die Ihr gewünschtes Zeitüberschreitung des Modells unterstützen kann. In diesem Schritt können Sie entweder den Einzeldatensatz oder mehrere Datensätze `BatchStrategy` verwenden.
**Anmerkung**  
Das Überschreiten des `MaxPayloadInMB`-Limits führt zu einem Fehler. Dies kann der Fall sein, wenn ein großer Datensatz nicht aufgeteilt werden kann und der Parameter `SplitType` auf „Keine“ festgelegt ist oder wenn einzelne Datensätze innerhalb des Datensatzes das Limit überschreiten.
+ (Optional) Passen Sie den Parameter `[MaxConcurrentTransforms](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#sagemaker-CreateTransformJob-request-MaxConcurrentTransforms)` an, der die maximale Anzahl paralleler Anforderungen angibt, die in einem Stapeltransformationsauftrag an jede Instance gesendet werden können. Der Wert von `MaxConcurrentTransforms * MaxPayloadInMB` darf jedoch 100 MB nicht überschreiten.

## Unvollständige Ausgabe
<a name="batch-transform-errors-incomplete"></a>

SageMaker KI verwendet die Amazon S3 [Multipart Upload API](https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html), um Ergebnisse aus einem Batch-Transformationsauftrag in 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. Ein unvollständiger Upload kann auch auftreten, wenn Sie mehrere Eingabedateien haben, aber einige der Dateien nicht von SageMaker AI Batch Transform verarbeitet werden können. Die Eingabedateien, die nicht verarbeitet werden konnten, haben in Amazon S3 keine entsprechenden Ausgabedateien.

Zur Vermeidung von Gebühren für Speicherplatz empfehlen wir, den S3-Bucket-Lebenszyklusregeln die [S3-Bucket-Richtlinie](https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config) 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](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html).

## Auftrag wird als `failed` angezeigt.
<a name="batch-transform-errors-failed"></a>

Wenn ein Batch-Transformationsauftrag eine Eingabedatei aufgrund eines Problems mit dem Datensatz nicht verarbeiten kann, markiert SageMaker AI den Job als`failed`. 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 Datensatz wird die Verarbeitung der Eingabedateien fortgesetzt, auch wenn der Transformationsauftrag eine Datei nicht verarbeiten kann. Die verarbeiteten Dateien erzeugen dessen ungeachtet verwertbare Ergebnisse.

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 Datensatz ungültig ist, platziert der Algorithmus anstelle dieses Datensatzes den Platzhaltertext in der Ausgabedatei.