Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Format Inferensi DeepAR
Halaman berikut menjelaskan format permintaan dan respons untuk inferensi dengan model Amazon SageMaker DeepAR.
Format Permintaan DeepAR JSON
Kueri model terlatih dengan menggunakan titik akhir model. Titik akhir mengambil format JSON permintaan 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 olehlength(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 tidak boleh dimasukkan 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"] } }
configuration
Bidang ini opsional. configuration.num_samples
menetapkan jumlah jalur sampel yang dihasilkan model untuk memperkirakan mean dan kuantil. configuration.output_types
menjelaskan informasi yang akan dikembalikan dalam permintaan. Nilai yang valid adalah "mean"
"quantiles"
dan"samples"
. Jika Anda menentukan"quantiles"
, masing-masing nilai kuantil di configuration.quantiles
dikembalikan sebagai deret waktu. Jika Anda menentukan"samples"
, model juga mengembalikan sampel mentah yang digunakan untuk menghitung output lainnya.
Format Respons DeepAR JSON
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 batas waktu 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, tergantung pada ukuran model, melewatkan terlalu banyak deret waktu dalam satu permintaan dapat menyebabkan waktu habis. 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 mengirimkan 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 masing-masing modelCPU, jumlah pekerja berkurang. Jumlah pekerja yang digunakan untuk inferensi dapat ditimpa menggunakan variabel lingkungan MODEL_SERVER_WORKERS
Misalnya, dengan menyetelMODEL_SERVER_WORKERS=1
) saat memanggil. SageMaker CreateModel
API
Transformasi Batch dengan Algoritma DeepAR
Peramalan DeepAR mendukung mendapatkan kesimpulan dengan menggunakan transformasi batch dari data menggunakan format Lines. JSON Dalam format ini, setiap rekaman direpresentasikan pada satu baris sebagai JSON objek, dan garis dipisahkan oleh karakter baris baru. Formatnya identik dengan format JSON Garis yang digunakan untuk pelatihan model. Untuk informasi, lihat Antarmuka Input/Output untuk Algoritma DeepAR. Sebagai 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
, setel BatchStrategy
nilainya ke SingleRecord
dan setel SplitType
nilai dalam TransformInput
konfigurasiLine
, karena nilai default saat ini menyebabkan kegagalan runtime.
Mirip dengan format permintaan inferensi titik akhir yang dihosting, cat
dan dynamic_feat
bidang untuk setiap instance diperlukan jika kedua hal berikut ini benar:
-
Model dilatih pada kumpulan data yang berisi bidang
cat
dandynamic_feat
bidang. -
num_dynamic_feat
Nilai yang sesuaicardinality
dan yang digunakan dalam pekerjaan pelatihan tidak diatur ke"".
Tidak seperti inferensi titik akhir yang dihosting, bidang konfigurasi disetel sekali untuk seluruh pekerjaan inferensi batch menggunakan variabel lingkungan bernama. DEEPAR_INFERENCE_CONFIG
Nilai DEEPAR_INFERENCE_CONFIG
dapat diteruskan ketika model dibuat dengan memanggil CreateTransformJob
API. Jika DEEPAR_INFERENCE_CONFIG
tidak ada di lingkungan penampung, 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 JSON Garis, 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. Sebagai contoh:
{ "quantiles": { "0.1": [...], "0.2": [...] }, "samples": [...], "mean": [...] }
Perhatikan bahwa dalam TransformInput
konfigurasi SageMaker CreateTransformJob
permintaan, klien harus secara eksplisit menetapkan nilainyaLine
, karena AssembleWith
nilai default None
menggabungkan semua JSON objek pada baris yang sama.
Misalnya, berikut adalah SageMaker CreateTransformJob
permintaan 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", ... }, ... }