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 AI DeepAR.
Format Permintaan JSON DeepAR
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 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 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_samplesmenetapkan jumlah jalur sampel yang dihasilkan model untuk memperkirakan rata-rata dan kuantil. configuration.output_typesmenjelaskan 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
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 menyetelMODEL_SERVER_WORKERS=1) saat memanggil API SageMaker AI CreateModel.
Transformasi Batch dengan Algoritma DeepAR
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. 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, atur BatchStrategy nilai ke SingleRecord dan atur SplitType nilai dalam TransformInput konfigurasi keLine, 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_featbidangcatdan bidangnya. -
Nilai yang sesuai
cardinalitydannum_dynamic_featyang 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 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 konfigurasi CreateTransformJob permintaan SageMaker AI klien harus secara eksplisit mengatur AssembleWith nilai keLine, karena nilai default menggabungkan None semua objek JSON pada baris yang sama.
Misalnya, berikut adalah CreateTransformJob 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", ... }, ... }