Prosesor adalah paket logika prediksi online. Elastic Algorithm Service (EAS) dari Platform for AI (PAI) menyediakan prosesor bawaan yang biasa digunakan untuk menerapkan model. Prosesor ini membantu mengurangi biaya pengembangan logika prediksi online model.
Tabel berikut menjelaskan nama dan kode prosesor yang disediakan oleh EAS. Jika Anda menggunakan klien EASCMD untuk menerapkan model, kode prosesor diperlukan.
Nama Prosesor | Kode Prosesor (diperlukan jika menggunakan EASCMD) | Referensi | |
Edisi CPU | Edisi GPU | ||
EasyRec | easyrec-2.4 | easyrec-2.4 | |
TorchEasyRec | easyrec-torch-1.0 | easyrec-torch-1.0 | |
PMML | pmml | Tidak Ada | |
TensorFlow1.12 | tensorflow_cpu_1.12 | tensorflow_gpu_1.12 | |
TensorFlow1.14 | tensorflow_cpu_1.14 | tensorflow_gpu_1.14 | |
TensorFlow1.15 | tensorflow_cpu_1.15 | tensorflow_gpu_1.15 | Prosesor TensorFlow1.15 dengan mesin optimasi bawaan berbasis PAI-Blade edisi agilitas |
TensorFlow2.3 | tensorflow_cpu_2.3 | Tidak Ada | |
PyTorch1.6 | pytorch_cpu_1.6 | pytorch_gpu_1.6 | Prosesor PyTorch1.6 dengan mesin optimasi bawaan berbasis PAI-Blade edisi agilitas |
Caffe | caffe_cpu | caffe_gpu | |
Algoritma server parameter | parameter_sever | Tidak Ada | |
Alink | alink_pai_processor | Tidak Ada | Tidak Ada |
xNN | xnn_cpu | Tidak Ada | Tidak Ada |
EasyVision | easy_vision_cpu_tf1.12_torch151 | easy_vision_gpu_tf1.12_torch151 | |
EasyTransfer | easytransfer_cpu | easytransfer_gpu | |
EasyNLP | easynlp | easynlp | |
EasyCV | easycv | easycv | |
Blade | blade_cpu | blade_cuda10.0_beta | Tidak Ada |
MediaFlow | Tidak Ada | mediaflow | |
Triton | Tidak Ada | triton | |
Prosesor PMML
Prosesor Predictive Model Markup Language (PMML) bawaan di EAS melakukan operasi berikut:
Memuat layanan model dari file PMML.
Memproses permintaan yang dikirim untuk memanggil layanan model.
Menggunakan model untuk menghitung hasil permintaan dan mengembalikan hasil ke klien.
Prosesor PMML menyediakan kebijakan default untuk mengisi nilai yang hilang. Jika kebijakan isMissing tidak ditentukan untuk kolom fitur dalam file PMML, nilai dalam tabel berikut akan digunakan secara otomatis.
Tipe Data | Nilai Input Default |
BOOLEAN | false |
DOUBLE | 0.0 |
FLOAT | 0.0 |
INT | 0 |
STRING | "" |
Anda dapat menerapkan model dari file PMML dengan salah satu metode berikut:
Unggah file model di konsol.
Atur parameter Processor Type menjadi PMML. Untuk informasi lebih lanjut, lihat Parameter untuk penyebaran kustom di konsol.
Gunakan klien EASCMD untuk menerapkan model.
Dalam file konfigurasi layanan service.json, atur parameter processor menjadi pmml. Contoh kode:
{ "processor": "pmml", "generate_token": "true", "model_path": "http://xxxxx/lr.pmml", "name": "eas_lr_example", "metadata": { "instance": 1, "cpu": 1 # Alokasikan 4 GB memori untuk setiap CPU. Satu CPU dan 4 GB memori dianggap satu kuota. } }Gunakan Data Science Workshop (DSW) untuk menerapkan model.
Ubah file konfigurasi layanan service.json. Metode ini mirip dengan metode penyebaran model menggunakan klien EASCMD. Untuk informasi lebih lanjut, lihat Penyebaran layanan model menggunakan EASCMD.
Prosesor TensorFlow1.12
Prosesor TensorFlow1.12 dari EAS dapat memuat model TensorFlow dalam format SavedModel atau SessionBundle. Format SavedModel direkomendasikan. Sebelum menerapkan model, Anda harus mengonversi model Keras atau Checkpoint menjadi model SavedModel. Untuk informasi lebih lanjut, lihat FAQ tentang TensorFlow.
Prosesor serbaguna tidak mendukung operasi TensorFlow kustom.
Anda dapat menerapkan model TensorFlow menggunakan salah satu metode berikut:
Unggah file model di konsol.
Atur parameter Processor Type menjadi TensorFlow1.12. Untuk informasi lebih lanjut, lihat Parameter untuk penyebaran kustom di konsol.
Gunakan klien EASCMD untuk menerapkan model.
Dalam file konfigurasi layanan service.json, atur parameter processor menjadi tensorflow_cpu_1.12 atau tensorflow_gpu_1.12 berdasarkan sumber daya model. Jika nilai parameter processor tidak sesuai dengan jenis sumber daya, terjadi kesalahan penyebaran. Contoh kode:
{ "name": "tf_serving_test", "generate_token": "true", "model_path": "http://xxxxx/savedmodel_example.zip", "processor": "tensorflow_cpu_1.12", "metadata": { "instance": 1, "cpu": 1, "gpu": 0, "memory": 2000 } }Gunakan DSW untuk menerapkan model.
Ubah file konfigurasi layanan service.json. Metode ini mirip dengan metode penyebaran model menggunakan klien EASCMD. Untuk informasi lebih lanjut, lihat Penyebaran layanan model menggunakan EASCMD.
Prosesor TensorFlow1.14
Prosesor TensorFlow1.14 dari EAS dapat memuat model TensorFlow dalam format SavedModel atau SessionBundle. Format SavedModel direkomendasikan. Sebelum menerapkan model, Anda harus mengonversi model Keras atau Checkpoint menjadi model SavedModel. Untuk informasi lebih lanjut, lihat FAQ tentang TensorFlow.
Prosesor serbaguna tidak mendukung operasi TensorFlow kustom.
Anda dapat menerapkan model TensorFlow menggunakan salah satu metode berikut:
Unggah file model di konsol.
Atur parameter Processor Type menjadi TensorFlow1.14. Untuk informasi lebih lanjut, lihat Parameter untuk penyebaran kustom di konsol.
Gunakan klien EASCMD untuk menerapkan model.
Dalam file konfigurasi layanan service.json, atur parameter processor menjadi tensorflow_cpu_1.14 atau tensorflow_gpu_1.14 berdasarkan sumber daya model. Jika nilai parameter processor tidak sesuai dengan jenis sumber daya, terjadi kesalahan penyebaran. Contoh kode:
{ "name": "tf_serving_test", "generate_token": "true", "model_path": "http://xxxxx/savedmodel_example.zip", "processor": "tensorflow_cpu_1.14", "metadata": { "instance": 1, "cpu": 1, "gpu": 0, "memory": 2000 } }Gunakan DSW untuk menerapkan model.
Ubah file konfigurasi layanan service.json. Metode ini mirip dengan metode penyebaran model menggunakan klien EASCMD. Untuk informasi lebih lanjut, lihat Penyebaran layanan model menggunakan EASCMD.
Prosesor TensorFlow1.15 dengan mesin optimasi bawaan berbasis PAI-Blade edisi agilitas
Prosesor TensorFlow1.15 dari EAS dapat memuat model TensorFlow dalam format SavedModel atau SessionBundle. Format SavedModel direkomendasikan. Sebelum menerapkan model, Anda harus mengonversi model Keras atau Checkpoint menjadi model SavedModel. Untuk informasi lebih lanjut, lihat FAQ tentang TensorFlow.
Prosesor serbaguna tidak mendukung operasi TensorFlow kustom.
Prosesor TensorFlow1.15 menyediakan mesin optimasi bawaan berbasis PAI-Blade edisi agilitas. Anda dapat menggunakan prosesor ini untuk menerapkan model TensorFlow yang dioptimalkan oleh PAI-Blade edisi agilitas.
Anda dapat menerapkan model TensorFlow menggunakan salah satu metode berikut:
Unggah file model ke konsol.
Atur parameter Processor Type menjadi TensorFlow1.15. Untuk informasi lebih lanjut, lihat Parameter untuk penyebaran kustom di konsol.
Gunakan klien EASCMD untuk menerapkan model.
Dalam file konfigurasi layanan service.json, atur parameter processor menjadi tensorflow_cpu_1.15 atau tensorflow_gpu_1.15 berdasarkan sumber daya model. Jika nilai parameter processor tidak sesuai dengan jenis sumber daya, terjadi kesalahan penyebaran. Contoh kode:
{ "name": "tf_serving_test", "generate_token": "true", "model_path": "http://xxxxx/savedmodel_example.zip", "processor": "tensorflow_cpu_1.15", "metadata": { "instance": 1, "cpu": 1, "gpu": 0, "memory": 2000 } }Gunakan DSW untuk menerapkan model.
Ubah file konfigurasi layanan service.json. Metode ini mirip dengan metode penyebaran model menggunakan klien EASCMD. Untuk informasi lebih lanjut, lihat Penyebaran layanan model menggunakan EASCMD. Untuk informasi lebih lanjut tentang parameter dalam file konfigurasi layanan, lihat Buat layanan.
Prosesor TensorFlow2.3
Prosesor TensorFlow2.3 dari EAS dapat memuat model TensorFlow dalam format SavedModel atau SessionBundle. Format SavedModel direkomendasikan. Sebelum menerapkan model, Anda harus mengonversi model Keras atau Checkpoint menjadi model SavedModel. Untuk informasi lebih lanjut, lihat FAQ tentang TensorFlow.
Prosesor serbaguna tidak mendukung operasi TensorFlow kustom.
Anda dapat menerapkan model TensorFlow menggunakan salah satu metode berikut:
Unggah file model di konsol.
Atur parameter Processor Type menjadi TensorFlow2.3. Untuk informasi lebih lanjut, lihat Parameter untuk penyebaran kustom di konsol.
Gunakan klien EASCMD untuk menerapkan model.
Dalam file konfigurasi layanan service.json, atur parameter processor ke tensorflow_cpu_2.3. Contoh kode:
{ "name": "tf_serving_test", "generate_token": "true", "model_path": "http://xxxxx/savedmodel_example.zip", "processor": "tensorflow_cpu_2.3", "metadata": { "instance": 1, "cpu": 1, "gpu": 0, "memory": 2000 } }Gunakan DSW untuk menerapkan model.
Ubah file konfigurasi layanan service.json. Metode ini mirip dengan metode penyebaran model menggunakan klien EASCMD. Untuk informasi lebih lanjut, lihat Penyebaran layanan model menggunakan EASCMD.
Prosesor PyTorch1.6 dengan mesin optimasi bawaan berbasis PAI-Blade edisi agilitas
Prosesor PyTorch1.6 dari EAS dapat memuat model dalam format TorchScript. Untuk informasi lebih lanjut, lihat TorchScript.
Prosesor serbaguna tidak mendukung ekstensi PyTorch. Anda tidak dapat menggunakan prosesor ini untuk mengimpor atau mengekspor model selain model TensorFlow.
Prosesor PyTorch1.6 menyediakan mesin optimasi bawaan berbasis PAI-Blade edisi agilitas. Anda dapat menggunakan prosesor ini untuk menerapkan model PyTorch yang dioptimalkan oleh PAI-Blade edisi agilitas.
Anda dapat menerapkan model TorchScript menggunakan salah satu metode berikut:
Unggah file model di konsol.
Atur parameter Processor Type menjadi PyTorch1.6. Untuk informasi lebih lanjut, lihat Parameter untuk penyebaran kustom di konsol.
Gunakan klien EASCMD untuk menerapkan model.
Dalam file konfigurasi layanan service.json, atur parameter processor menjadi pytorch_cpu_1.6 atau pytorch_gpu_1.6 berdasarkan sumber daya model. Jika nilai parameter processor tidak sesuai dengan jenis sumber daya, terjadi kesalahan penyebaran. Contoh kode:
{ "name": "pytorch_serving_test", "generate_token": "true", "model_path": "http://xxxxx/torchscript_model.pt", "processor": "pytorch_gpu_1.6", "metadata": { "instance": 1, "cpu": 1, "gpu": 1, "cuda": "10.0", "memory": 2000 } }Gunakan DSW untuk menerapkan model.
Ubah file konfigurasi layanan service.json. Metode ini mirip dengan metode penyebaran model menggunakan klien EASCMD. Untuk informasi lebih lanjut, lihat Penyebaran layanan model menggunakan EASCMD. Untuk informasi lebih lanjut tentang parameter dalam file konfigurasi layanan, lihat Buat layanan.
Prosesor Caffe
Prosesor Caffe dari EAS dapat memuat model pembelajaran mendalam yang dilatih berdasarkan kerangka kerja Caffe. Kerangka kerja Caffe memiliki kemampuan fleksibel. Saat menerapkan model Caffe, Anda harus menentukan nama file model dan file bobot dalam paket model.
Prosesor serbaguna tidak mendukung lapisan data kustom.
Anda dapat menerapkan model Caffe menggunakan salah satu metode berikut:
Unggah file model di konsol.
Atur parameter Processor Type menjadi Caffe. Untuk informasi lebih lanjut, lihat Parameter untuk penyebaran kustom di konsol.
Gunakan klien EASCMD untuk menerapkan model.
Dalam file konfigurasi layanan service.json, atur parameter processor menjadi caffe_cpu atau caffe_gpu berdasarkan sumber daya model. Jika nilai parameter processor tidak sesuai dengan jenis sumber daya, terjadi kesalahan penyebaran. Contoh kode:
{ "name": "caffe_serving_test", "generate_token": "true", "model_path": "http://xxxxx/caffe_model.zip", "processor": "caffe_cpu", "model_config": { "model": "deploy.prototxt", "weight": "bvlc_reference_caffenet.caffemodel" }, "metadata": { "instance": 1, "cpu": 1, "gpu": 0, "memory": 2000 } }Gunakan DSW untuk menerapkan model.
Ubah file konfigurasi layanan service.json. Metode ini mirip dengan metode penyebaran model menggunakan klien EASCMD. Untuk informasi lebih lanjut, lihat Penyebaran layanan model menggunakan EASCMD.
Prosesor PS
Prosesor PS dari EAS dikembangkan berdasarkan algoritma PS. Prosesor ini dapat memuat model dalam format PS.
Berikut ini menjelaskan cara menerapkan model PS sebagai layanan dan mengirim permintaan menggunakan layanan model PS.
Anda dapat menerapkan model PS menggunakan salah satu metode berikut:
Unggah file model di konsol.
Atur parameter Processor Type menjadi PS Algorithm. Untuk informasi lebih lanjut, lihat Unggah dan terapkan model di konsol.
Gunakan klien EASCMD untuk menerapkan model.
Dalam file konfigurasi layanan service.json, atur parameter processor menjadi parameter_sever. Contoh kode:
{ "name":"ps_smart", "model_path": "oss://examplebucket/xlab_m_pai_ps_smart_b_1058272_v0.tar.gz", "processor": "parameter_sever", "metadata": { "region": "beijing", "cpu": 1, "instance": 1, "memory": 2048 } }Gunakan DSW untuk menerapkan model.
Ubah file konfigurasi layanan service.json. Metode ini mirip dengan metode penyebaran model menggunakan klien EASCMD. Untuk informasi lebih lanjut, lihat Penyebaran layanan model menggunakan EASCMD.
Deskripsi Permintaan
Anda dapat menggunakan layanan model PS untuk mengirim satu permintaan atau beberapa permintaan sekaligus. Kedua metode tersebut memiliki sintaksis permintaan yang sama. Objek fitur yang terkandung dalam array JSON juga sama.
Contoh sintaksis untuk mengirim satu permintaan.
curl "http://eas.location/api/predict/ps_smart" -d "[ { "f0": 1, "f1": 0.2, "f3": 0.5 } ]"Contoh sintaksis untuk mengirim beberapa permintaan sekaligus.
curl "http://eas.location/api/predict/ps_smart" -d "[ { "f0": 1, "f1": 0.2, "f3": 0.5 }, { "f0": 1, "f1": 0.2, "f3": 0.5 } ]"Tanggapan
Kedua metode tersebut juga memiliki sintaksis tanggapan yang sama. Objek yang dikembalikan dalam array JSON sama dan mengikuti urutan yang sama seperti sintaksis permintaan.
[ { "label":"xxxx", "score" : 0.2, "details" : [{"k1":0.3}, {"k2":0.5}] }, { "label":"xxxx", "score" : 0.2, "details" : [{"k1":0.3}, {"k2":0.5}] } ]
Prosesor EasyTransfer
Prosesor EasyTransfer dari EAS dapat memuat model pemrosesan bahasa alami (NLP) pembelajaran mendalam berbasis TensorFlow yang dilatih menggunakan kerangka kerja EasyTransfer.
Anda dapat menerapkan model EasyTransfer menggunakan salah satu metode berikut:
Unggah file model di konsol.
Atur parameter Processor Type menjadi EasyTransfer. Untuk informasi lebih lanjut, lihat Parameter untuk penyebaran kustom di konsol.
Gunakan klien EASCMD untuk menerapkan model.
Dalam file konfigurasi layanan service.json, atur parameter processor menjadi easytransfer_cpu atau easytransfer_gpu berdasarkan sumber daya model. Jika nilai parameter processor tidak sesuai dengan jenis sumber daya, terjadi kesalahan penyebaran. Atur bidang type dari parameter model_config menjadi tipe model yang ingin Anda gunakan. Dalam contoh berikut, model klasifikasi teks digunakan. Untuk informasi lebih lanjut tentang parameter lainnya, lihat Buat layanan.
Terapkan model pada node GPU (kelompok sumber daya publik digunakan dalam contoh ini).
{ "name": "et_app_demo", "metadata": { "instance": 1 }, "cloud": { "computing": { "instance_type": "ecs.gn6i-c4g1.xlarge" } }, "model_path": "http://xxxxx/your_model.zip", "processor": "easytransfer_gpu", "model_config": { "type": "text_classify_bert" } }Terapkan model pada node CPU.
{ "name": "et_app_demo", "model_path": "http://xxxxx/your_model.zip", "processor": "easytransfer_cpu", "model_config": { "type":"text_classify_bert" }, "metadata": { "instance": 1, "cpu": 1, "memory": 4000 } }
Tabel berikut mencantumkan tipe model yang didukung.
Jenis Pekerjaan
Tipe Model
Pencocokan Teks
text_match_bert
Klasifikasi Teks
text_classify_bert
Labeling Urutan
sequence_labeling_bert
Vektorisasi Teks
vectorization_bert
Prosesor EasyNLP
Prosesor EasyNLP dari EAS dapat memuat model NLP pembelajaran mendalam berbasis PyTorch yang dilatih menggunakan kerangka kerja EasyNLP.
Anda dapat menerapkan model EasyNLP menggunakan salah satu metode berikut:
Unggah file model di konsol.
Atur parameter Processor Type menjadi EasyNLP. Untuk informasi lebih lanjut, lihat Parameter untuk penyebaran kustom di konsol.
Gunakan klien EASCMD untuk menerapkan model.
Dalam file konfigurasi layanan service.json, atur parameter processor menjadi easynlp. Atur bidang type dari parameter model_config menjadi tipe model yang ingin Anda gunakan. Dalam contoh berikut, model klasifikasi teks dengan label tunggal digunakan. Untuk informasi lebih lanjut tentang parameter lainnya, lihat Buat layanan.
{ "name": "easynlp_app_demo", "metadata": { "instance": 1 }, "cloud": { "computing": { "instance_type": "ecs.gn6i-c4g1.xlarge" } }, "model_config": { "app_name": "text_classify", "type": "text_classify" }, "model_path": "http://xxxxx/your_model.tar.gz", "processor": "easynlp" }Tabel berikut mencantumkan tipe model yang didukung.
Jenis Pekerjaan
Tipe Model
Klasifikasi teks dengan label tunggal
text_classify
Klasifikasi teks dengan label ganda
text_classify_multi
Pencocokan teks
text_match
Labeling urutan
sequence_labeling
Vektorisasi teks
vectorization
Generasi ringkasan untuk teks Cina (GPU)
sequence_generation_zh
Generasi ringkasan untuk teks Inggris (GPU)
sequence_generation_en
Pemahaman membaca mesin untuk teks Cina
machine_reading_comprehension_zh
Pemahaman membaca mesin untuk teks Inggris
machine_reading_comprehension_en
WUKONG_CLIP (GPU)
wukong_clip
CLIP (GPU)
clip
Setelah layanan model diterapkan ke EAS, buka halaman Elastic Algorithm Service (EAS), temukan layanan, dan klik Invocation Method di kolom Service Type untuk mendapatkan titik akhir layanan dan token. Contoh kode Python berikut memberikan contoh permintaan Python yang digunakan untuk memanggil layanan:
import requests
# Ganti nilai dengan titik akhir layanan.
url = '<eas-service-url>'
# Ganti nilai dengan token yang Anda peroleh.
token = '<eas-service-token>'
# Hasilkan data prediksi. Dalam contoh berikut, klasifikasi teks digunakan.
request_body = {
"first_sequence": "hello"
}
headers = {"Authorization": token}
resp = requests.post(url=url, headers=headers, json=request_body)
print(resp.content.decode())Prosesor EasyCV
Prosesor EasyCV dari EAS dapat memuat model pembelajaran mendalam yang dilatih menggunakan kerangka kerja EasyCV.
Anda dapat menerapkan model EasyCV menggunakan salah satu metode berikut:
Unggah file model di konsol.
Atur parameter Processor Type menjadi EasyCV. Untuk informasi lebih lanjut, lihat Parameter untuk penyebaran kustom di konsol.
Gunakan klien EASCMD untuk menerapkan model.
Dalam file konfigurasi layanan service.json, atur parameter processor menjadi easycv. Atur bidang type dari parameter model_config menjadi tipe model yang ingin Anda gunakan. Dalam contoh berikut, model klasifikasi gambar digunakan. Untuk informasi lebih lanjut tentang parameter lainnya, lihat Buat layanan.
{ "name": "easycv_classification_example", "processor": "easycv", "model_path": "oss://examplebucket/epoch_10_export.pt", "model_config": {"type":"TorchClassifier"}, "metadata": { "instance": 1 }, "cloud": { "computing": { "instance_type": "ecs.gn5i-c4g1.xlarge" } } }Tabel berikut mencantumkan tipe model yang didukung.
Jenis Pekerjaan
model_config
Klasifikasi Gambar
{"type":"TorchClassifier"}
Pendeteksian Objek
{"type":"DetectionPredictor"}
Segmentasi Semantik
{"type":"SegmentationPredictor"}
YOLOX
{"type":"YoloXPredictor"}
Klasifikasi Video
{"type":"VideoClassificationPredictor"}
Setelah layanan model diterapkan ke EAS, buka halaman Elastic Algorithm Service (EAS), temukan layanan, dan klik Invocation Method di kolom Service Type untuk mendapatkan titik akhir layanan dan token. Contoh kode Python berikut memberikan contoh permintaan Python yang digunakan untuk memanggil layanan:
import requests
import base64
import json
resp = requests.get('http://exmaplebucket.oss-cn-zhangjiakou.aliyuncs.com/images/000000123213.jpg')
ENCODING = 'utf-8'
datas = json.dumps( {
"image": base64.b64encode(resp.content).decode(ENCODING)
})
# Ganti nilai dengan token yang Anda peroleh.
head = {
"Authorization": "NTFmNDJlM2E4OTRjMzc3OWY0NzI3MTg5MzZmNGQ5Yj***"
}
for x in range(0,10):
# Ganti nilai dengan titik akhir layanan.
resp = requests.post("http://150231884461***.cn-hangzhou.pai-eas.aliyuncs.com/api/predict/test_easycv_classification_example", data=datas, headers=head)
print(resp.text)
Anda harus mengonversi gambar dan file video ke format Base64 untuk transmisi. Gunakan image untuk menentukan data gambar dan video untuk menentukan data video.
Prosesor EasyVision
Prosesor EasyVision dari EAS dapat memuat model pembelajaran mendalam yang dilatih menggunakan kerangka kerja EasyVision.
Anda dapat menerapkan model EasyVision menggunakan salah satu metode berikut:
Unggah file model di konsol.
Atur parameter Processor Type menjadi EasyVision. Untuk informasi lebih lanjut, lihat Parameter untuk penyebaran kustom di konsol.
Gunakan klien EASCMD untuk menerapkan model.
Dalam file konfigurasi layanan service.json, atur parameter processor menjadi easy_vision_cpu_tf1.12_torch151 atau easy_vision_gpu_tf1.12_torch151 berdasarkan sumber daya model. Jika nilai parameter processor tidak sesuai dengan jenis sumber daya, terjadi kesalahan penyebaran. Atur parameter type dalam bagian model_config menjadi tipe model yang dilatih. Blok kode berikut menunjukkan sebuah contoh. Untuk informasi lebih lanjut tentang parameter lainnya, lihat Buat layanan.
Terapkan model pada node GPU.
{ "name": "ev_app_demo", "processor": "easy_vision_gpu_tf1.12_torch151", "model_path": "oss://path/to/your/model", "model_config": "{\"type\":\"classifier\"}", "metadata": { "resource": "your_resource_name", "cuda": "9.0", "instance": 1, "memory": 4000, "gpu": 1, "cpu": 4, "rpc.worker_threads" : 5 } }Terapkan model pada node CPU.
{ "name": "ev_app_cpu_demo", "processor": "easy_vision_cpu_tf1.12_torch151", "model_path": "oss://path/to/your/model", "model_config": "{\"type\":\"classifier\"}", "metadata": { "resource": "your_resource_name", "instance": 1, "memory": 4000, "gpu": 0, "cpu": 4, "rpc.worker_threads" : 5 } }
Prosesor MediaFlow
Prosesor MediaFlow dari EAS adalah mesin orkestrasi serbaguna yang dapat menganalisis dan memproses video, audio, dan gambar.
Anda dapat menerapkan model MediaFlow menggunakan salah satu metode berikut:
Unggah file model di konsol.
Atur parameter Processor Type menjadi MediaFlow. Untuk informasi lebih lanjut, lihat Parameter untuk penyebaran kustom di konsol.
Gunakan klien EASCMD untuk menerapkan model.
Dalam file konfigurasi layanan service.json, atur parameter processor menjadi mediaflow. Jika Anda menggunakan prosesor MediaFlow untuk menerapkan model, Anda harus mengonfigurasi parameter berikut. Untuk informasi lebih lanjut tentang parameter lainnya, lihat Buat layanan.
graph_pool_size: jumlah kolam grafik.
worker_threads: jumlah thread pekerja.
Contoh kode:
Terapkan model untuk klasifikasi video.
{ "model_entry": "video_classification/video_classification_ext.js", "name": "video_classification", "model_path": "oss://path/to/your/model", "generate_token": "true", "processor": "mediaflow", "model_config" : { "graph_pool_size":8, "worker_threads":16 }, "metadata": { "eas.handlers.disable_failure_handler" :true, "resource": "your_resource_name", "rpc.worker_threads": 30, "rpc.enable_jemalloc": true, "rpc.keepalive": 500000, "cpu": 4, "instance": 1, "cuda": "9.0", "rpc.max_batch_size": 64, "memory": 10000, "gpu": 1 } }Terapkan model untuk pengenalan suara otomatis (ASR).
{ "model_entry": "asr/video_asr_ext.js", "name": "video_asr", "model_path": "oss://path/to/your/model", "generate_token": "true", "processor": "mediaflow", "model_config" : { "graph_pool_size":8, "worker_threads":16 }, "metadata": { "eas.handlers.disable_failure_handler" :true, "resource": "your_resource_name", "rpc.worker_threads": 30, "rpc.enable_jemalloc": true, "rpc.keepalive": 500000, "cpu": 4, "instance": 1, "cuda": "9.0", "rpc.max_batch_size": 64, "memory": 10000, "gpu": 1 } }
Dalam file konfigurasi layanan service.json, nilai parameter model_entry, name, dan model_path untuk klasifikasi video dan ASR bervariasi. Anda harus mengonfigurasi parameter berdasarkan tujuan model.
Prosesor Triton
Triton Inference Server adalah kerangka kerja layanan online generasi baru yang dirilis oleh NVIDIA. Triton Inference Server menyederhanakan penyebaran dan manajemen model yang dipercepat GPU dan sesuai dengan standar API KFServing. Fitur-fitur utama Triton Inference Server meliputi:
Mendukung beberapa kerangka kerja sumber terbuka seperti TensorFlow, PyTorch, ONNX Runtime, TensorRT, dan backend kerangka kerja kustom.
Menjalankan beberapa model secara bersamaan pada satu GPU untuk memaksimalkan pemanfaatan GPU.
Mendukung protokol HTTP dan gRPC serta memungkinkan Anda mengirim permintaan dalam format biner untuk mengurangi ukuran permintaan.
Mendukung fitur pengelompokan dinamis untuk meningkatkan throughput layanan.
EAS menyediakan prosesor Triton bawaan.
Prosesor Triton hanya tersedia sebagai pratinjau publik di wilayah Tiongkok (Shanghai).
Model yang diterapkan menggunakan prosesor Triton harus disimpan di Object Storage Service (OSS). Oleh karena itu, Anda harus mengaktifkan OSS dan mengunggah file model ke OSS sebelum dapat menggunakan prosesor Triton untuk menerapkan model. Untuk informasi tentang cara mengunggah objek ke OSS, lihat Unggah sederhana.
Berikut ini menjelaskan cara menggunakan prosesor Triton untuk menerapkan model sebagai layanan dan memanggil layanan tersebut:
Gunakan prosesor Triton untuk menerapkan model.
Anda hanya dapat menggunakan prosesor Triton untuk menerapkan model pada klien EASCMD. Untuk informasi tentang cara menggunakan klien EASCMD untuk menerapkan model, lihat Buat layanan. Dalam file konfigurasi layanan service.json, atur parameter processor menjadi triton. Untuk memastikan bahwa prosesor Triton dapat memperoleh file model dari OSS, Anda harus mengatur parameter terkait OSS. Blok kode berikut memberikan contoh cara memodifikasi file konfigurasi layanan service.json:
{ "name": "triton_test", "processor": "triton", "processor_params": [ "--model-repository=oss://triton-model-repo/models", "--allow-http=true", ], "metadata": { "instance": 1, "cpu": 4, "gpu": 1, "memory": 10000, "resource":"<your resource id>" } }Tabel berikut menjelaskan parameter yang diperlukan jika Anda menggunakan prosesor Triton untuk menerapkan model. Untuk informasi lebih lanjut tentang parameter lainnya, lihat Jalankan perintah untuk menggunakan klien EASCMD.
Parameter
Deskripsi
processor_params
Parameter yang ingin Anda lewatkan ke Triton Inference Server saat penyebaran dimulai. Parameter yang tidak didukung secara otomatis difilter oleh Triton Inference Server. Tabel Parameter yang dapat dilewatkan ke Triton Inference Server menjelaskan parameter yang dapat dilewatkan ke Triton Inference Server. Parameter model-repository diperlukan. Untuk informasi lebih lanjut tentang parameter opsional, lihat main.cc.
oss_endpoint
Titik akhir OSS. Jika Anda tidak menentukan titik akhir, sistem secara otomatis menggunakan layanan OSS di wilayah tempat layanan EAS diterapkan. Jika Anda ingin menggunakan layanan OSS yang diaktifkan di wilayah lain, Anda harus mengonfigurasi parameter ini. Untuk informasi tentang nilai valid dari parameter ini, lihat Wilayah dan titik akhir.
metadata
resource
ID kelompok sumber daya eksklusif yang digunakan untuk menerapkan model di EAS. Jika Anda ingin menerapkan model menggunakan prosesor Triton, sumber daya yang digunakan harus termasuk dalam kelompok sumber daya eksklusif di EAS. Untuk informasi tentang cara membuat kelompok sumber daya khusus di EAS, lihat Bekerja dengan kelompok sumber daya EAS.
Tabel 1. Parameter yang dapat dilewatkan ke Triton Inference Server
Parameter
Diperlukan
Deskripsi
model-repository
Ya
Jalur OSS model. Anda harus mengatur parameter model-repository ke subdirektori Bucket OSS alih-alih direktori root Bucket OSS.
Sebagai contoh, Anda dapat mengatur parameter menjadi
oss://triton-model-repo/models. triton-model-repo adalah nama Bucket OSS, dan models adalah subdirektori Bucket OSS.log-verbose
Tidak
Untuk informasi lebih lanjut, lihat main.cc.
log-info
Tidak
log-warning
Tidak
log-error
Tidak
exit-on-error
Tidak
strict-model-config
Tidak
strict-readiness
Tidak
allow-http
Tidak
http-thread-count
Tidak
pinned-memory-pool-byte-size
Tidak
cuda-memory-pool-byte-size
Tidak
min-supported-compute-capability
Tidak
buffer-manager-thread-count
Tidak
backend-config
Tidak
Gunakan klien Triton resmi untuk memanggil layanan yang diterapkan menggunakan prosesor Triton.
Sebelum menggunakan klien Triton untuk Python untuk memanggil layanan yang diterapkan, jalankan perintah berikut untuk menginstal klien Triton resmi:
pip3 install nvidia-pyindex pip3 install tritonclient[all]Jalankan perintah berikut untuk mengunduh gambar uji ke direktori saat ini:
wget http://pai-blade.oss-cn-zhangjiakou.aliyuncs.com/doc-assets/cat.pngBlok kode berikut menunjukkan bagaimana klien Triton untuk Python mengirim permintaan dalam format biner ke layanan yang diterapkan menggunakan prosesor Triton:
import numpy as np import time from PIL import Image import tritonclient.http as httpclient from tritonclient.utils import InferenceServerException URL = "<service url>" # Ganti <service url> dengan titik akhir layanan yang diterapkan. HEADERS = {"Authorization": "<service token>"} # Ganti <service token> dengan token yang digunakan untuk mengakses layanan. input_img = httpclient.InferInput("input", [1, 299, 299, 3], "FP32") img = Image.open('./cat.png').resize((299, 299)) img = np.asarray(img).astype('float32') / 255.0 input_img.set_data_from_numpy(img.reshape([1, 299, 299, 3]), binary_data=True) output = httpclient.InferRequestedOutput( "InceptionV3/Predictions/Softmax", binary_data=True ) triton_client = httpclient.InferenceServerClient(url=URL, verbose=False) start = time.time() for i in range(10): results = triton_client.infer( "inception_graphdef", inputs=[input_img], outputs=[output], headers=HEADERS ) res_body = results.get_response() elapsed_ms = (time.time() - start) * 1000 if i == 0: print("model name: ", res_body["model_name"]) print("model version: ", res_body["model_version"]) print("output name: ", res_body["outputs"][0]["name"]) print("output shape: ", res_body["outputs"][0]["shape"]) print("[{}] Avg rt(ms): {:.2f}".format(i, elapsed_ms)) start = time.time()