

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

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

Halaman berikut menjelaskan format permintaan dan respons untuk inferensi dengan model Amazon SageMaker AI DeepAR.

## Format Permintaan JSON DeepAR
<a name="deepar-json-request"></a>

Kueri model terlatih dengan menggunakan titik akhir model. Titik akhir mengambil format permintaan JSON berikut. 

Dalam permintaan, `instances` bidang sesuai dengan deret waktu yang harus diramalkan oleh model. 

Jika model dilatih dengan kategori, Anda harus memberikan a `cat` untuk setiap contoh. Jika model dilatih tanpa `cat` lapangan, itu harus dihilangkan.

Jika model dilatih dengan fitur kustom time series (`dynamic_feat`), Anda harus memberikan jumlah `dynamic_feat` nilai yang sama untuk setiap instance. Masing-masing harus memiliki panjang yang diberikan oleh`length(target) + prediction_length`, di mana `prediction_length` nilai terakhir sesuai dengan titik waktu di masa depan yang akan diprediksi. Jika model dilatih tanpa deret waktu fitur khusus, bidang tersebut tidak boleh disertakan dalam permintaan.

```
{
    "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"]
    }
}
```

Bid `configuration` ang ini opsional. `configuration.num_samples`menetapkan jumlah jalur sampel yang dihasilkan model untuk memperkirakan rata-rata dan kuantil. `configuration.output_types`menjelaskan informasi yang akan dikembalikan dalam permintaan. Nilai yang valid adalah `"mean"` `"quantiles"` dan`"samples"`. Jika Anda menentukan`"quantiles"`, setiap nilai kuantil `configuration.quantiles` dikembalikan sebagai deret waktu. Jika Anda menentukan`"samples"`, model juga mengembalikan sampel mentah yang digunakan untuk menghitung output lainnya.

## Format Respon DeepAR JSON
<a name="deepar-json-response"></a>

Berikut ini adalah format respons, di `[...]` mana array angka:

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

DeepAR memiliki waktu tunggu respons 60 detik. Saat melewati beberapa deret waktu dalam satu permintaan, perkiraan dihasilkan secara berurutan. Karena perkiraan untuk setiap deret waktu biasanya memakan waktu sekitar 300 hingga 1000 milidetik atau lebih lama, tergantung pada ukuran model, melewati terlalu banyak deret waktu dalam satu permintaan dapat menyebabkan batas waktu. Lebih baik mengirim lebih sedikit deret waktu per permintaan dan mengirim lebih banyak permintaan. Karena algoritma DeepAR menggunakan beberapa pekerja per instance, Anda dapat mencapai throughput yang jauh lebih tinggi dengan mengirim beberapa permintaan secara paralel.

Secara default, DeepAR menggunakan satu pekerja per CPU untuk inferensi, jika ada cukup memori per CPU. Jika modelnya besar dan tidak ada cukup memori untuk menjalankan model pada setiap CPU, jumlah pekerja berkurang. Jumlah pekerja yang digunakan untuk inferensi dapat diganti menggunakan variabel lingkungan `MODEL_SERVER_WORKERS` Misalnya, dengan menyetel`MODEL_SERVER_WORKERS=1`) saat memanggil API SageMaker AI [`CreateModel`](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModel.html).

## Transformasi Batch dengan Algoritma DeepAR
<a name="deepar-batch"></a>

Peramalan DeepAR mendukung mendapatkan kesimpulan dengan menggunakan transformasi batch dari data menggunakan format Garis JSON. Dalam format ini, setiap catatan direpresentasikan pada satu baris sebagai objek JSON, dan baris dipisahkan oleh karakter baris baru. Formatnya identik dengan format Garis JSON yang digunakan untuk pelatihan model. Untuk informasi, lihat [Input/Output Antarmuka untuk Algoritma DeepAR](deepar.md#deepar-inputoutput). Contoh:

```
{"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]]}
```

**catatan**  
Saat membuat pekerjaan transformasi dengan [`CreateTransformJob`](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html), atur `BatchStrategy` nilai ke `SingleRecord` dan atur `SplitType` nilai dalam [`TransformInput`](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformInput.html) konfigurasi ke`Line`, karena nilai default saat ini menyebabkan kegagalan runtime.

Mirip dengan format permintaan inferensi titik akhir yang dihosting, `dynamic_feat` bidang `cat` dan bidang untuk setiap instance diperlukan jika kedua hal berikut ini benar:
+ Model dilatih pada dataset yang berisi kedua `dynamic_feat` bidang `cat` dan bidangnya.
+ Nilai yang sesuai `cardinality` dan `num_dynamic_feat` yang digunakan dalam pekerjaan pelatihan tidak diatur ke `"".`

Tidak seperti inferensi titik akhir yang dihosting, bidang konfigurasi disetel satu kali untuk seluruh pekerjaan inferensi batch menggunakan variabel lingkungan bernama. `DEEPAR_INFERENCE_CONFIG` Nilai `DEEPAR_INFERENCE_CONFIG` dapat diteruskan saat model dibuat dengan memanggil [`CreateTransformJob`](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html) API. Jika `DEEPAR_INFERENCE_CONFIG` hilang di lingkungan kontainer, wadah inferensi menggunakan default berikut:

```
{
    "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"]
}
```

Outputnya juga dalam format Garis JSON, dengan satu baris per prediksi, dalam urutan yang identik dengan urutan instance dalam file input yang sesuai. Prediksi dikodekan sebagai objek yang identik dengan yang dikembalikan oleh respons dalam mode inferensi online. Contoh:

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

Perhatikan bahwa dalam [`TransformInput`](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformInput.html) konfigurasi [`CreateTransformJob`](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html) permintaan SageMaker AI klien harus secara eksplisit mengatur `AssembleWith` nilai ke`Line`, karena nilai default menggabungkan `None` semua objek JSON pada baris yang sama.

Misalnya, berikut adalah [`CreateTransformJob`](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html) permintaan SageMaker AI untuk pekerjaan DeepAR dengan kustom: `DEEPAR_INFERENCE_CONFIG`

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