Prosesor adalah paket logika untuk prediksi online. Elastic Algorithm Service (EAS) menyediakan prosesor bawaan guna menerapkan model standar sehingga Anda tidak perlu mengembangkan logika tersebut sendiri.
Tabel berikut mencantumkan nama dan kode prosesor di EAS. Gunakan kode prosesor saat menerapkan layanan dengan EASCMD.
|
Nama prosesor |
Kode prosesor (hanya untuk EASCMD) |
Referensi |
|
|
Edisi CPU |
Edisi GPU |
||
|
EasyRec |
easyrec-2.4 |
easyrec-2.4 |
|
|
TorchEasyRec |
easyrec-torch-1.0 |
easyrec-torch-1.0 |
|
|
PMML |
pmml |
None |
|
|
TensorFlow 1.12 |
tensorflow_cpu_1.12 |
tensorflow_gpu_1.12 |
|
|
TensorFlow 1.14 |
tensorflow_cpu_1.14 |
tensorflow_gpu_1.14 |
|
|
TensorFlow 1.15 |
tensorflow_cpu_1.15 |
tensorflow_gpu_1.15 |
Prosesor TensorFlow 1.15 (termasuk mesin optimasi edisi agility PAI-Blade) |
|
TensorFlow 2.3 |
tensorflow_cpu_2.3 |
None |
|
|
PyTorch 1.6 |
pytorch_cpu_1.6 |
pytorch_gpu_1.6 |
Prosesor PyTorch 1.6 (termasuk mesin optimasi edisi agility PAI-Blade) |
|
Caffe |
caffe_cpu |
caffe_gpu |
|
|
Parameter Server |
parameter_server |
None |
|
|
Alink |
alink_pai_processor |
None |
None |
|
xNN |
xnn_cpu |
None |
None |
|
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 |
None |
|
MediaFlow |
None |
mediaflow |
|
|
Triton |
None |
triton |
|
Prosesor PMML
Prosesor PMML di EAS:
-
Memuat file model PMML sebagai layanan.
-
Memproses permintaan ke layanan model.
-
Menghitung dan mengembalikan hasil prediksi ke klien.
Prosesor PMML menyediakan strategi default untuk menangani nilai yang hilang. Jika tidak ada kebijakan isMissing yang ditentukan untuk kolom fitur dalam file model PMML, sistem akan mengisi nilai-nilai tersebut dengan nilai default berikut.
|
Tipe |
Default |
|
BOOLEAN |
false |
|
DOUBLE |
0.0 |
|
FLOAT |
0.0 |
|
INT |
0 |
|
STRING |
"" |
Terapkan model PMML dengan salah satu cara berikut:
-
Konsol
Atur parameter Processor Type ke PMML. Untuk informasi selengkapnya, lihat Menerapkan layanan model menggunakan konsol.
-
Klien EASCMD
Dalam file konfigurasi service.json, atur processor ke pmml. Contoh:
{ "processor": "pmml", "generate_token": "true", "model_path": "http://xxxxx/lr.pmml", "name": "eas_lr_example", "metadata": { "instance": 1, "cpu": 1 # EAS mengalokasikan memori 4 GB per core CPU (1 Quota). } } -
Data Science Workshop (DSW)
Sama seperti menggunakan klien EASCMD. Buat file konfigurasi service.json. Untuk informasi selengkapnya, lihat Menerapkan layanan model menggunakan EASCMD.
Prosesor TensorFlow 1.12
Prosesor TensorFlow 1.12 EAS memuat model TensorFlow dalam format SavedModel (disarankan) atau SessionBundle. Konversikan model Keras dan Checkpoint ke format SavedModel sebelum penerapan. Untuk informasi selengkapnya, lihat FAQ TensorFlow.
Prosesor ini tidak mendukung operasi TensorFlow kustom.
Terapkan model TensorFlow dengan salah satu cara berikut:
-
Konsol
Atur Processor Type ke TensorFlow1.12. Untuk informasi selengkapnya, lihat Menerapkan layanan inferensi kustom.
-
Klien EASCMD
Dalam file konfigurasi service.json, atur processor ke tensorflow_cpu_1.12 atau tensorflow_gpu_1.12. Pilih kode sesuai sumber daya penerapan. Ketidaksesuaian antara processor dan tipe sumber daya menyebabkan kegagalan penerapan. Contoh:
{ "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 } } -
DSW
Sama seperti menggunakan klien EASCMD. Buat file konfigurasi service.json. Untuk informasi selengkapnya, lihat Menerapkan layanan model menggunakan EASCMD.
Prosesor TensorFlow 1.14
Prosesor TensorFlow 1.14 EAS memuat model TensorFlow dalam format SavedModel (disarankan) atau SessionBundle. Konversikan model Keras dan Checkpoint ke format SavedModel sebelum penerapan. Untuk informasi selengkapnya, lihat FAQ TensorFlow.
Prosesor ini tidak mendukung operasi TensorFlow kustom.
Terapkan model TensorFlow dengan salah satu cara berikut:
-
Konsol
Atur Processor Type ke TensorFlow1.14. Untuk informasi selengkapnya, lihat Menerapkan layanan inferensi kustom.
-
Klien EASCMD
Dalam file konfigurasi service.json, atur processor ke tensorflow_cpu_1.14 atau tensorflow_gpu_1.14. Pilih kode sesuai sumber daya penerapan Anda. Ketidaksesuaian antara processor dan tipe sumber daya menyebabkan kegagalan penerapan. Contoh:
{ "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 } } -
DSW
Sama seperti menggunakan klien EASCMD. Buat file konfigurasi service.json. Untuk informasi selengkapnya, lihat Menerapkan layanan model menggunakan EASCMD.
Prosesor TensorFlow 1.15 (Edisi Agility PAI-Blade)
Prosesor TensorFlow 1.15 EAS memuat model TensorFlow dalam format SavedModel (disarankan) atau SessionBundle. Konversikan model Keras dan Checkpoint ke format SavedModel sebelum penerapan. Untuk informasi selengkapnya, lihat FAQ TensorFlow.
-
Prosesor ini tidak mendukung operasi TensorFlow kustom.
-
Prosesor ini mencakup mesin optimasi Edisi Agility PAI-Blade untuk menerapkan model TensorFlow yang telah dioptimalkan oleh PAI-Blade.
Terapkan model TensorFlow dengan salah satu cara berikut:
-
Konsol
Atur Processor Type ke TensorFlow1.15. Untuk informasi selengkapnya, lihat Menerapkan layanan inferensi kustom.
-
EASCMD
Dalam file konfigurasi service.json, atur processor ke tensorflow_cpu_1.15 atau tensorflow_gpu_1.15. Pilih kode sesuai sumber daya penerapan Anda. Ketidaksesuaian antara processor dan tipe sumber daya menyebabkan kegagalan penerapan. Contoh:
{ "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 } } -
DSW
Sama seperti menggunakan EASCMD. Buat file konfigurasi service.json. Untuk informasi selengkapnya, lihat Menerapkan layanan model menggunakan EASCMD. Untuk deskripsi parameter, lihat Membuat layanan.
Prosesor TensorFlow 2.3
Prosesor TensorFlow 2.3 EAS memuat model TensorFlow dalam format SavedModel (disarankan) atau SessionBundle. Konversikan model Keras dan Checkpoint ke format SavedModel sebelum penerapan. Untuk informasi selengkapnya, lihat FAQ TensorFlow.
Prosesor ini tidak mendukung operasi TensorFlow kustom.
Terapkan model TensorFlow dengan salah satu cara berikut:
-
Konsol
Atur Processor Type ke TensorFlow2.3. Untuk informasi selengkapnya, lihat Menerapkan layanan menggunakan konsol.
-
EASCMD
Dalam file konfigurasi service.json, atur processor ke tensorflow_cpu_2.3 Contoh:
{ "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 } } -
DSW
Sama seperti menggunakan EASCMD. Buat file konfigurasi service.json. Untuk informasi selengkapnya, lihat Menerapkan layanan model menggunakan EASCMD.
Prosesor PyTorch 1.6 (Edisi Agility PAI-Blade)
Prosesor PyTorch 1.6 EAS memuat model dalam format TorchScript. Untuk informasi selengkapnya, lihat dokumentasi resmi TorchScript.
-
Prosesor ini tidak mendukung ekstensi PyTorch atau input dan output model non-tensor.
-
Prosesor ini mencakup mesin optimasi PAI-Blade (Edisi Agility) untuk menerapkan model PyTorch yang telah dioptimalkan.
Terapkan model TorchScript dengan salah satu cara berikut:
-
Konsol
Atur Processor Type ke PyTorch 1.6. Untuk informasi selengkapnya, lihat Menerapkan layanan inferensi kustom.
-
Klien EASCMD
Dalam file konfigurasi service.json, atur processor ke pytorch_cpu_1.6 atau pytorch_gpu_1.6. Pilih nilai berdasarkan sumber daya penerapan. Ketidaksesuaian antara processor dan tipe sumber daya menyebabkan kegagalan penerapan. Contoh:
{ "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 } } -
DSW
Sama seperti menggunakan klien EASCMD. Buat file konfigurasi service.json. Untuk informasi selengkapnya, lihat Menerapkan layanan model menggunakan EASCMD. Untuk deskripsi parameter, lihat Membuat layanan.
Prosesor Caffe
Prosesor Caffe EAS memuat model pembelajaran mendalam yang dilatih dengan Caffe. Tentukan nama file model dan bobot dalam paket model.
Prosesor ini tidak mendukung lapisan data kustom.
Terapkan model Caffe dengan cara berikut:
-
Konsol
Atur Processor Type ke Caffe. Untuk informasi selengkapnya, lihat Menerapkan layanan inferensi kustom.
-
Klien EASCMD
Dalam file konfigurasi service.json, atur processor ke caffe_cpu atau caffe_gpu berdasarkan tipe sumber daya. Ketidaksesuaian antara processor dan tipe sumber daya menyebabkan kegagalan penerapan. Contoh:
{ "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 } } -
DSW
Sama seperti menggunakan klien EASCMD. Buat file konfigurasi service.json. Untuk informasi selengkapnya, lihat Menerapkan layanan model menggunakan EASCMD.
Prosesor PS
Prosesor PS EAS memuat model dalam format PS.
Terapkan model PS dan kirim permintaan ke layanan.
-
Terapkan model PS dengan salah satu cara berikut:
-
Konsol
Atur Processor Type ke PS Algorithm. Untuk informasi selengkapnya, lihat Penerapan kustom.
-
Klien EASCMD
Dalam file konfigurasi service.json, atur processor ke parameter_sever.
{ "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 } } -
DSW
Sama seperti menggunakan klien EASCMD. Buat file konfigurasi service.json. Untuk informasi selengkapnya, lihat Menerapkan layanan model menggunakan klien EASCMD.
-
-
Format permintaan
Prosesor mendukung prediksi tunggal maupun batch. Format permintaannya sama: array JSON objek fitur.
-
Contoh permintaan tunggal
curl "http://eas.location/api/predict/ps_smart" -d "[ { "f0": 1, "f1": 0.2, "f3": 0.5 } ]" -
Contoh permintaan batch
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
Format tanggapan sama untuk permintaan tunggal maupun batch: array objek tanggapan. Setiap objek tanggapan berkorespondensi dengan objek permintaan pada posisi yang sama.
[ { "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 EAS memuat model NLP berbasis TensorFlow yang dilatih dengan EasyTransfer.
Terapkan model EasyTransfer dengan cara berikut:
-
Konsol
Pilih EasyTransfer untuk parameter Processor Type. Untuk informasi selengkapnya, lihat Menerapkan layanan inferensi kustom.
-
Klien EASCMD
Dalam file konfigurasi service.json, atur processor ke easytransfer_cpu atau easytransfer_gpu berdasarkan sumber daya penerapan. Ketidaksesuaian antara processor dan sumber daya menyebabkan kegagalan penerapan. Di model_config, atur type ke tipe model yang digunakan saat pelatihan. Contoh berikut menggunakan model klasifikasi teks. Untuk parameter lainnya, lihat Membuat layanan.
-
Konfigurasi untuk penerapan GPU (menggunakan kelompok sumber daya publik sebagai contoh)
{ "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" } } -
Konfigurasi untuk penerapan 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 } }
Tipe tugas yang didukung:
Tipe tugas
Tipe
Pencocokan teks
text_match_bert
Klasifikasi teks
text_classify_bert
Pelabelan sekuens
sequence_labeling_bert
Vektorisasi teks
vectorization_bert
-
Prosesor EasyNLP
Prosesor EasyNLP EAS memuat model NLP berbasis PyTorch yang dilatih dengan EasyNLP.
Terapkan model EasyNLP dengan salah satu cara berikut:
-
Konsol
Atur Processor Type ke EasyNLP. Untuk informasi selengkapnya, lihat Menerapkan layanan inferensi kustom.
-
Klien EASCMD
Dalam file konfigurasi service.json, atur processor ke easynlp. Di model_config, atur type ke tipe tugas pelatihan. Contoh berikut menggunakan model klasifikasi teks label tunggal. Untuk parameter lainnya, lihat Membuat 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" }Tipe tugas yang didukung:
Tipe tugas
Nilai
Klasifikasi teks label tunggal
text_classify
Klasifikasi teks multi-label
text_classify_multi
Pencocokan teks
text_match
Pelabelan sekuens
sequence_labeling
Vektorisasi teks
vectorization
Ringkasan teks bahasa Tiongkok (GPU)
sequence_generation_zh
Ringkasan teks bahasa Inggris (GPU)
sequence_generation_en
Pemahaman membaca mesin (bahasa Tiongkok)
machine_reading_comprehension_zh
Pemahaman membaca mesin (bahasa Inggris)
machine_reading_comprehension_en
WUKONG_CLIP (GPU)
wukong_clip
CLIP (GPU)
clip
Setelah penerapan, pada halaman Elastic Algorithm Service (EAS), klik Invocation Information di kolom Service Type layanan target untuk melihat titik akhir dan token. Panggil layanan menggunakan contoh Python berikut.
import requests
# Ganti dengan titik akhir layanan Anda.
url = '<eas-service-url>'
# Ganti dengan token Anda.
token = '<eas-service-token>'
# Siapkan data permintaan. Contoh berikut untuk klasifikasi teks.
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 EAS memuat model pembelajaran mendalam yang dilatih dengan EasyCV.
Terapkan model EasyCV dengan salah satu cara berikut:
-
Konsol
Atur Processor Type ke EasyCV. Untuk informasi selengkapnya, lihat Menerapkan layanan inferensi kustom.
-
Klien EASCMD
Dalam file konfigurasi service.json, atur processor ke easycv. Di model_config, atur type ke tipe model yang digunakan saat pelatihan. Contoh berikut menggunakan model klasifikasi gambar. Untuk parameter lainnya, lihat Membuat 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" } } }Tipe pekerjaan yang didukung:
Tipe pekerjaan
model_config
Klasifikasi gambar
{"type":"TorchClassifier"}
Deteksi objek
{"type":"DetectionPredictor"}
Segmentasi semantik
{"type":"SegmentationPredictor"}
YOLOX
{"type":"YoloXPredictor"}
Klasifikasi video
{"type":"VideoClassificationPredictor"}
Setelah penerapan, buka halaman Elastic Algorithm Service (EAS). Temukan layanan tersebut, lalu di kolom Service Type, klik Invocation Information untuk melihat titik akhir dan token. Contoh Python berikut menunjukkan cara memanggil layanan.
import requests
import base64
import json
resp = requests.get('http://examplebucket.oss-cn-zhangjiakou.aliyuncs.com/images/000000123213.jpg')
ENCODING = 'utf-8'
datas = json.dumps( {
"image": base64.b64encode(resp.content).decode(ENCODING)
})
# Ganti dengan token autentikasi Anda.
head = {
"Authorization": "NTFmNDJlM2E4OTRjMzc3OWY0NzI3MTg5MzZmNGQ5Yj***"
}
for x in range(0,10):
# Ganti dengan titik akhir layanan Anda.
resp = requests.post("http://150231884461***.cn-hangzhou.pai-eas.aliyuncs.com/api/predict/easycv_classification_example", data=datas, headers=head)
print(resp.text)
Encode data gambar atau video dalam Base64 untuk transmisi. Gunakan kunci image untuk data gambar dan kunci video untuk data video.
Prosesor EasyVision
Prosesor EasyVision EAS memuat model pembelajaran mendalam yang dilatih dengan EasyVision.
Terapkan model EasyVision dengan salah satu cara berikut:
-
Konsol
Atur Processor Type ke EasyVision. Untuk informasi selengkapnya, lihat Menerapkan layanan inferensi kustom.
-
Klien EASCMD
Dalam file konfigurasi service.json, atur processor ke easy_vision_cpu_tf1.12_torch151 atau easy_vision_gpu_tf1.12_torch151. Pilih kode sesuai sumber daya penerapan Anda. Ketidaksesuaian antara processor dan tipe sumber daya menyebabkan kegagalan penerapan. Di model_config, atur type ke tipe model yang digunakan untuk pelatihan. Contoh. Untuk parameter lainnya, lihat Membuat layanan:
-
Konfigurasi untuk penerapan 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 } } -
Konfigurasi untuk penerapan 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 EAS adalah mesin orkestrasi untuk menganalisis dan memproses video, audio, dan gambar.
Terapkan model MediaFlow dengan salah satu cara berikut:
-
Konsol
Atur Processor Type ke MediaFlow. Untuk informasi selengkapnya, lihat Menerapkan layanan inferensi kustom.
-
Klien EASCMD
Dalam file konfigurasi service.json, atur processor ke mediaflow. Prosesor ini memerlukan bidang konfigurasi tambahan. Untuk bidang lainnya, lihat Membuat layanan:
-
graph_pool_size: Jumlah pool graf.
-
worker_threads: Jumlah thread pekerja.
Contoh:
-
Konfigurasi untuk menerapkan model 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 } } -
Konfigurasi untuk menerapkan model pengenalan ucapan 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 } }
Konfigurasi untuk ASR dan klasifikasi video berbeda terutama pada model_entry, name, dan model_path. Ubah bidang-bidang ini sesuai dengan model Anda.
-
Prosesor Triton
Triton Inference Server adalah framework penyajian online NVIDIA. Triton menyediakan antarmuka untuk menerapkan dan mengelola model pada GPU serta kompatibel dengan standar API KFServing. Fitur utama:
-
Menyebarkan model dari berbagai framework, seperti TensorFlow, PyTorch, ONNX Runtime, TensorRT, dan backend kustom.
-
Menjalankan beberapa model secara bersamaan pada satu GPU untuk meningkatkan pemanfaatan.
-
Mendukung protokol HTTP/gRPC dan ekstensi format biner untuk mengurangi ukuran permintaan.
-
Mendukung Dynamic Batching untuk meningkatkan throughput layanan.
Triton Inference Server tersedia di EAS sebagai prosesor Triton bawaan.
-
Hanya tersedia dalam pratinjau publik di wilayah Tiongkok (Shanghai).
-
Semua model harus disimpan di OSS. Aktifkan OSS dan unggah file model Anda ke bucket OSS terlebih dahulu. Untuk informasi selengkapnya, lihat Simple Upload.
Terapkan dan panggil layanan prosesor Triton.
-
Terapkan dengan prosesor Triton
Terapkan layanan model Triton hanya dengan menggunakan EASCMD. Untuk informasi selengkapnya, lihat Membuat layanan. Dalam file konfigurasi service.json, atur processor ke triton. Karena Triton mengambil model dari OSS, konfigurasikan parameter OSS yang diperlukan. Contoh 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>" } }Parameter khusus Triton tercantum di bawah ini. Untuk parameter lainnya, lihat Parameter dalam service.json.
Parameter
Deskripsi
processor_params
Parameter yang diteruskan ke Triton Server saat startup. Parameter yang tidak didukung akan difilter secara otomatis. Parameter yang didukung tercantum dalam set parameter berikut yang dapat diteruskan ke server Triton. model-repository wajib diisi. Untuk parameter opsional, lihat main.cc.
oss_endpoint
Titik akhir OSS. Jika tidak ditentukan, sistem menggunakan OSS di wilayah yang sama dengan layanan EAS. Tentukan parameter ini untuk OSS cross-region. Untuk nilai-nilainya, lihat Regions and Endpoints.
metadata
resource
ID kelompok sumber daya eksklusif EAS untuk menerapkan layanan model. Prosesor Triton memerlukan kelompok sumber daya eksklusif EAS. Untuk informasi selengkapnya, lihat Menggunakan kelompok sumber daya eksklusif EAS.
Tabel 1. Parameter yang didukung untuk server Triton
Parameter
Wajib
Deskripsi
model-repository
是
Jalur harus ditentukan sebagai jalur OSS. Sistem tidak mendukung penggunaan langsung direktori root Bucket sebagai model-repository. Anda harus menentukan subdirektori di dalam Bucket.
Contohnya,
oss://triton-model-repo/models, di mana triton-model-repo adalah nama Bucket, dan models adalah subdirektori di dalam Bucket tersebut.log-verbose
No
Untuk informasi selengkapnya, lihat main.cc.
log-info
No
log-warning
No
log-error
No
exit-on-error
No
strict-model-config
No
strict-readiness
No
allow-http
No
http-thread-count
No
pinned-memory-pool-byte-size
No
cuda-memory-pool-byte-size
No
min-supported-compute-capability
No
buffer-manager-thread-count
No
backend-config
No
-
Panggil layanan dengan klien Triton asli
Instal klien Triton resmi NVIDIA:
pip3 install nvidia-pyindex pip3 install tritonclient[all]Unduh gambar uji:
wget http://pai-blade.oss-cn-zhangjiakou.aliyuncs.com/doc-assets/cat.pngKirim permintaan format biner ke layanan prosesor Triton menggunakan klien Python:
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 Anda. HEADERS = {"Authorization": "<service token>"} # Ganti <service token> dengan token akses layanan Anda. 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()