

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.

# DeepAR-Inferenzformate
<a name="deepar-in-formats"></a>

Auf der folgenden Seite werden die Anforderungs- und Antwortformate für Inferenzen mit dem Amazon SageMaker AI DeepAR-Modell beschrieben.

## JSON-Anfrageformate für DeepAR
<a name="deepar-json-request"></a>

Führen Sie die Abfrage eines trainierten Modells über dessen Endpunkt aus. Der Endpunkt akzeptiert die Anfrage in folgendem JSON-Format: 

In der Anforderung entspricht das Feld `instances` der Zeitreihe, für die das Modell eine Prognose generieren soll. 

Wurde das Modell mit Kategorien trainiert, müssen Sie für jede Instance eine `cat` angeben. Falls das Modell ohne das Feld `cat` trainiert wurde, sollte es weggelassen werden.

Wenn das Modell mit einer benutzerdefinierten Funktionszeitreihe (`dynamic_feat`) trainiert wurde, müssen Sie für jede Instance die gleiche Anzahl der `dynamic_feat`-Werte angeben. Jede sollte eine durch `length(target) + prediction_length` angegebene Länge besitzen, wobei die letzten `prediction_length`-Werte den Zeitpunkten in der Zukunft entsprechen, die vorausgesagt werden. Wenn das Modell ohne benutzerdefinierte Funktionszeitreihen trainiert wurde, sollte das Feld nicht in der Anforderung enthalten sein.

```
{
    "instances": [
        {
            "start": "2009-11-01 00:00:00",
            "target": [4.0, 10.0, "NaN", 100.0, 113.0],
            "cat": [0, 1],
            "dynamic_feat": [[1.0, 1.1, 2.1, 0.5, 3.1, 4.1, 1.2, 5.0, ...]]
        },
        {
            "start": "2012-01-30",
            "target": [1.0],
            "cat": [2, 1],
            "dynamic_feat": [[2.0, 3.1, 4.5, 1.5, 1.8, 3.2, 0.1, 3.0, ...]]
        },
        {
            "start": "1999-01-30",
            "target": [2.0, 1.0],
            "cat": [1, 3],
            "dynamic_feat": [[1.0, 0.1, -2.5, 0.3, 2.0, -1.2, -0.1, -3.0, ...]]
        }
    ],
    "configuration": {
         "num_samples": 50,
         "output_types": ["mean", "quantiles", "samples"],
         "quantiles": ["0.5", "0.9"]
    }
}
```

Das `configuration`-Feld ist optional. `configuration.num_samples` legt die Anzahl der Stichprobenpfade fest, die das Modell zur Schätzung des Mittelwerts und der Quantile generiert. `configuration.output_types` beschreibt die Informationen, die in der Anforderung zurückgegeben werden. Gültige Werte sind `"mean"``"quantiles"` und `"samples"`. Wenn Sie `"quantiles"` spezifizieren, wird jeder Quantilwert in `configuration.quantiles` als Zeitreihe zurückgegeben. Bei Angabe von `"samples"` gibt das Modell auch die Raw-Stichproben zurück, mit denen die anderen Ergebnisse berechnet wurden.

## JSON-Antwortformate für DeepAR
<a name="deepar-json-response"></a>

Nachfolgend finden Sie das Format einer Antwort, wobei `[...]` Arrays von Zahlen angibt:

```
{
    "predictions": [
        {
            "quantiles": {
                "0.9": [...],
                "0.5": [...]
            },
            "samples": [...],
            "mean": [...]
        },
        {
            "quantiles": {
                "0.9": [...],
                "0.5": [...]
            },
            "samples": [...],
            "mean": [...]
        },
        {
            "quantiles": {
                "0.9": [...],
                "0.5": [...]
            },
            "samples": [...],
            "mean": [...]
        }
    ]
}
```

DeepAR verfügt über ein Antwort-Timeout von 60 Sekunden. Bei der Übergabe mehrerer Zeitreihen in einer einzigen Anforderung werden die Prognosen sequenziell generiert. Da die Prognose für jede Zeitreihe je nach Modellgröße in der Regel etwa 300 bis 1 000 Millisekunden oder länger dauert, können Timeouts auftreten, wenn zu viele Zeitreihen in einer einzigen Anforderung übergeben werden. Es ist besser, weniger Zeitreihen pro Anforderung und dafür mehr Anforderungen zu senden. Da der DeepAR-Algorithmus mehrere Workern pro Instance verwendet, können Sie einen wesentlich höheren Durchsatz erreichen, indem Sie mehrere Anforderungen parallel senden.

Standardmäßig verwendet DeepAR einen Worker pro CPU zur Inferenz, wenn pro CPU ausreichend Arbeitsspeicher zur Verfügung steht. Wenn das Modell groß ist und nicht genügend Arbeitsspeicher zum Ausführen eines Modells auf jeder CPU zur Verfügung steht, wird die Anzahl der Worker reduziert. Die Anzahl der für die Inferenz verwendeten Worker kann beim Aufrufen der KI-API mithilfe der Umgebungsvariablen (`MODEL_SERVER_WORKERS`z. B. durch Einstellung`MODEL_SERVER_WORKERS=1`) überschrieben werden. SageMaker [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModel.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModel.html)

## Stapeltransformation mit dem DeepAR-Algorithmus
<a name="deepar-batch"></a>

DeepAR-Prognosen unterstützen das Abrufen von Inferenzen mittels Stapelumwandlung aus Daten im JSON Lines-Format. In diesem Format wird jeder Datensatz in einer einzigen Zeile als JSON-Objekt dargestellt und Zeilen werden durch Zeilenumbruchzeichen getrennt. Das Format ist mit dem JSON Lines-Format, das für die Modelltraining verwendet wird, identisch. Weitere Informationen finden Sie unter [Eingabe/Ausgabe-Schnittstelle für den DeepAR-Algorithmus](deepar.md#deepar-inputoutput). Beispiel:

```
{"start": "2009-11-01 00:00:00", "target": [4.3, "NaN", 5.1, ...], "cat": [0, 1], "dynamic_feat": [[1.1, 1.2, 0.5, ..]]}
{"start": "2012-01-30 00:00:00", "target": [1.0, -5.0, ...], "cat": [2, 3], "dynamic_feat": [[1.1, 2.05, ...]]}
{"start": "1999-01-30 00:00:00", "target": [2.0, 1.0], "cat": [1, 4], "dynamic_feat": [[1.3, 0.4]]}
```

**Anmerkung**  
Wenn Sie die Umwandlungsaufgabe mithilfe von [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html) erstellen, müssen Sie den `BatchStrategy`-Wert auf `SingleRecord` und den `SplitType`-Wert in der [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformInput.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformInput.html)-Konfiguration auf `Line` festlegen, da die Standardwerte derzeit Laufzeitfehler auslösen.

Ähnlich wie das Inferenzanforderungsformat des gehosteten Endpunkts sind die Felder `cat` und `dynamic_feat` für jede Instance erforderlich, wenn die beiden folgenden Bedingungen erfüllt sind:
+ Das Modell wird mit einem Datensatz trainiert, der die beiden Felder `cat` und `dynamic_feat` enthielt.
+ Die entsprechenden Werte `cardinality` und `num_dynamic_feat`, die im Trainingsauftrag verwendet werden, werden nicht auf `"".` festgelegt

Im Gegensatz zur Inferenz des gehosteten Endpunkts wird das Konfigurationsfeld für den gesamten Stapelinferenzauftrag mithilfe einer Umgebungsvariable mit der Bezeichnung `DEEPAR_INFERENCE_CONFIG` einmalig festgelegt. Der Wert von `DEEPAR_INFERENCE_CONFIG` kann durch Aufrufen der [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html) API übergeben werden, wenn das Modell erstellt wird. Wenn `DEEPAR_INFERENCE_CONFIG` in der Containerumgebung fehlt, verwendet der Inferenzcontainer die folgenden Standardeinstellung:

```
{
    "num_samples": 100,
    "output_types": ["mean", "quantiles"],
    "quantiles": ["0.1", "0.2", "0.3", "0.4", "0.5", "0.6", "0.7", "0.8", "0.9"]
}
```

Die Ausgabe erfolgt auch im JSON Lines-Format, mit einer Zeile pro Voraussage, in einer Reihenfolge, die mit der Instance-Reihenfolge der entsprechenden Eingabedatei identisch ist. Voraussagen werden als Objekte codiert und sind identisch mit denen, die von Antworten im Online-Inferenzmodus zurückgegeben werden. Beispiel:

```
{ "quantiles": { "0.1": [...], "0.2": [...] }, "samples": [...], "mean": [...] }
```

Beachten Sie, dass Clients in der [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformInput.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformInput.html)Konfiguration der SageMaker [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html)AI-Anforderung den `AssembleWith` Wert explizit auf setzen müssen`Line`, da der Standardwert alle JSON-Objekte in derselben Zeile `None` verkettet.

Hier ist zum Beispiel eine SageMaker [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html)KI-Anfrage für einen DeepAR-Job mit einem benutzerdefinierten`DEEPAR_INFERENCE_CONFIG`:

```
{
   "BatchStrategy": "SingleRecord",
   "Environment": { 
      "DEEPAR_INFERENCE_CONFIG" : "{ \"num_samples\": 200, \"output_types\": [\"mean\"] }",
      ...
   },
   "TransformInput": {
      "SplitType": "Line",
      ...
   },
   "TransformOutput": { 
      "AssembleWith": "Line",
      ...
   },
   ...
}
```