PMML processor terintegrasi digunakan untuk men-deploy model dalam format PMML sebagai layanan online dan menyediakan inferensi real-time.
Informasi latar belakang
Anda dapat menggunakan PMML processor untuk men-deploy model PMML yang diekspor dari berbagai sumber. Anda juga dapat mengonversi model yang dilatih dengan framework open source seperti Sklearn atau Xgboost ke format PMML, lalu men-deploy-nya ke Elastic Algorithm Service (EAS). Untuk informasi selengkapnya, lihat Export a general-purpose model.
Untuk informasi lebih lanjut mengenai model PMML, lihat Introduction to PMML models.
Strategi imputasi nilai yang hilang
PMML processor menyediakan strategi imputasi default untuk nilai yang hilang. Jika bidang fitur dalam file model PMML tidak menentukan kebijakan isMissing, sistem akan menggunakan nilai default berikut.
Data type | Default value |
BOOLEAN | false |
DOUBLE | 0.0 |
FLOAT | 0.0 |
INT | 0 |
STRING | "" |
Langkah 1: Deploy layanan
Saat men-deploy layanan model PMML menggunakan client eascmd, atur tipe processor menjadi pmml. Contoh berikut menunjukkan file konfigurasi layanan.
{
"name": "eas_lr_example",
"processor": "pmml",
"model_path": "http://examplebucket.oss-cn-shanghai.aliyuncs.com/models/lr.pmml",
"metadata": {
"instance": 1,
"cpu": 1
}
}Untuk informasi selengkapnya tentang cara men-deploy layanan menggunakan client eascmd, lihat Deploy a service using EASCMD or DSW.
Anda juga dapat men-deploy layanan model PMML melalui Konsol. Untuk informasi selengkapnya, lihat Deploy a service from the console.
Langkah 2: Panggil layanan
Lakukan langkah-langkah berikut untuk memanggil layanan.
Setelah layanan PMML di-deploy, buka halaman Elastic Algorithm Service (EAS). Temukan layanan yang ingin Anda panggil, lalu klik Invocation Information pada kolom Service Type untuk melihat titik akhir yang digunakan untuk mengakses layanan dan token yang digunakan untuk otentikasi layanan.
Buat permintaan layanan.
Layanan PMML menggunakan file JSON biasa untuk input dan output. Satu permintaan mendukung beberapa sampel, dan setiap sampel berupa data fitur dalam format pasangan kunci-nilai. Contoh berikut menunjukkan badan permintaan.
[ { "address": 12, "age": 22, "ed": 4, "marital": 3.0, "region": 2.0, "tenure": 4.0 }, { "address": 2, "age": 34, "ed": 6, "marital": 1.3, "region": 2.1, "tenure": 4.2 } ]CatatanSaat mengirim permintaan layanan, Anda dapat menghapus jeda baris dan spasi dari file JSON untuk mengurangi lalu lintas jaringan dan meningkatkan performa layanan.
Kirim permintaan layanan.
Dua metode berikut didukung:
PentingJika Anda meneruskan token langsung di Header HTTP, token tersebut dikirim melalui jaringan dalam bentuk teks biasa. SDK yang disediakan oleh Alibaba Cloud melakukan penandatanganan permintaan dengan token sebelum mengirimnya, sehingga lebih aman.
Gunakan perintah curl untuk menjalankan pengujian permintaan cepat terhadap layanan.
Layanan ini menyediakan titik akhir HTTP. Saat mengirim permintaan, Anda dapat meneruskan token otentikasi langsung di Header HTTP, seperti pada contoh berikut.
// Kirim permintaan. curl -v 18284888792***.cn-shanghai.pai-eas.aliyuncs.com/api/predict/pmml_test \ -H 'Authorization: YmE3NDkyMzdiMzNmMGM3ZmE4ZmNjZDk0M2NiMDA***' \ -d '[{"region": 2.0, "marital":3.0,"tenure":4.0, "age":22,"address":12,"ed":4},{"region": 2.1, "marital":1.3,"tenure":4.2, "age":34,"address":2,"ed":6}]'Pada perintah di atas:
18284888792***.cn-shanghai.pai-eas.aliyuncs.com/api/predict/pmml_test: Ganti dengan titik akhir yang Anda peroleh pada Langkah 1.
Contoh berikut menunjukkan hasil yang dikembalikan.
[{"p_0":0.2856724025030001,"p_1":0.7143275974969999},{"p_0":0.18324957921381624,"p_1":0.8167504207861838}]Gunakan Python SDK untuk mengirim permintaan. Untuk informasi selengkapnya, lihat Python SDK usage guide.
Kode contoh berikut disediakan.
#!/usr/bin/env python from eas_prediction import PredictClient from eas_prediction import StringRequest if __name__ == '__main__': # Ganti dengan titik akhir dan nama layanan yang Anda peroleh pada Langkah 1. client = PredictClient('1828488879222***.cn-shanghai.pai-eas.aliyuncs.com', 'pmml_test') # Ganti dengan token otentikasi yang Anda peroleh pada Langkah 1. client.set_token('YmE3NDkyMzdiMzNmMGM3ZmE4ZmNjZDk0M2NiMDA***') client.init() req = StringRequest('[{"region": 2.0, "marital":3.0,"tenure":4.0, "age":22,"address":12,"ed":4},{"region": 2.1, "marital":1.3,"tenure":4.2, "age":34,"address":2,"ed":6}]') for x in range(100): resp = client.predict(req) print(resp)
Untuk informasi selengkapnya mengenai SDK client dalam bahasa pemrograman lain, lihat Service invocation SDKs.
Referensi
Anda juga dapat menggunakan processor pre-built lain untuk men-deploy layanan online EAS. Untuk informasi selengkapnya, lihat Deploy a service using a pre-built processor.
Anda juga dapat mengembangkan custom processor dan menggunakannya untuk men-deploy layanan online EAS. Untuk informasi selengkapnya, lihat Deploy a service using a custom processor.