Un procesador es un paquete que contiene la lógica de predicción en línea. Elastic Algorithm Service (EAS) proporciona procesadores integrados para desplegar modelos estándar, lo que elimina la necesidad de desarrollar esta lógica por su cuenta.
A continuación se listan los nombres y códigos de los procesadores disponibles en EAS. Proporcione el código del procesador al desplegar un servicio con EASCMD.
|
Nombre del procesador |
Código del procesador (solo EASCMD) |
Referencia |
|
|
Edición CPU |
Edición GPU |
||
|
EasyRec |
easyrec-2.4 |
easyrec-2.4 |
|
|
TorchEasyRec |
easyrec-torch-1.0 |
easyrec-torch-1.0 |
|
|
PMML |
pmml |
Ninguna |
|
|
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 |
TensorFlow 1.15 processor (includes the PAI-Blade agility edition optimization engine) |
|
TensorFlow 2.3 |
tensorflow_cpu_2.3 |
Ninguna |
|
|
PyTorch 1.6 |
pytorch_cpu_1.6 |
pytorch_gpu_1.6 |
PyTorch 1.6 processor (includes the PAI-Blade agility edition optimization engine) |
|
Caffe |
caffe_cpu |
caffe_gpu |
|
|
Parameter Server |
parameter_server |
Ninguna |
|
|
Alink |
alink_pai_processor |
Ninguna |
Ninguna |
|
xNN |
xnn_cpu |
Ninguna |
Ninguna |
|
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 |
Ninguna |
|
MediaFlow |
Ninguna |
mediaflow |
|
|
Triton |
Ninguna |
triton |
|
Procesador PMML
El procesador PMML en EAS:
Carga un archivo de modelo PMML como servicio.
Procesa las solicitudes dirigidas al servicio del modelo.
Calcula los resultados de la predicción y los devuelve al cliente.
El procesador PMML ofrece una estrategia predeterminada para gestionar valores faltantes. Si no se especifica una política isMissing para las columnas de características en el archivo del modelo PMML, el sistema les asigna los siguientes valores predeterminados.
|
Tipo |
Valor predeterminado |
|
BOOLEAN |
false |
|
DOUBLE |
0.0 |
|
FLOAT |
0.0 |
|
INT |
0 |
|
STRING |
"" |
Despliegue un modelo PMML mediante cualquiera de los siguientes métodos:
-
Consola
Establezca el parámetro Processor Type en PMML. Para obtener más información, consulte Deploy a model service by using the console.
-
Cliente EASCMD
En el archivo de configuración service.json, establezca processor en pmml. Ejemplo:
{ "processor": "pmml", "generate_token": "true", "model_path": "http://xxxxx/lr.pmml", "name": "eas_lr_example", "metadata": { "instance": 1, "cpu": 1 # EAS allocates 4 GB of memory per CPU core (1 Quota). } } -
Data Science Workshop (DSW)
El procedimiento es similar al uso del cliente EASCMD. Cree un archivo de configuración service.json. Para obtener más información, consulte Deploy a model service by using EASCMD.
Procesador TensorFlow 1.12
El procesador TensorFlow 1.12 de EAS carga modelos de TensorFlow en formato SavedModel (recomendado) o SessionBundle. Convierta los modelos Keras y Checkpoint al formato SavedModel antes del despliegue. Para obtener más información, consulte TensorFlow FAQ.
Este procesador no admite operaciones personalizadas de TensorFlow.
Despliegue un modelo de TensorFlow mediante uno de los siguientes métodos:
-
Consola
Establezca Processor Type en TensorFlow1.12. Para obtener más información, consulte Deploy a custom inference service.
-
Cliente EASCMD
En el archivo de configuración service.json, establezca processor en tensorflow_cpu_1.12 o tensorflow_gpu_1.12. Seleccione el código según los recursos de despliegue. Una discrepancia entre processor y el tipo de recurso provoca un error en el despliegue. Ejemplo:
{ "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
El procedimiento es similar al uso del cliente EASCMD. Cree un archivo de configuración service.json. Para obtener más información, consulte Deploy model services by using EASCMD.
Procesador TensorFlow 1.14
El procesador TensorFlow 1.14 de EAS carga modelos de TensorFlow en formato SavedModel (recomendado) o SessionBundle. Convierta los modelos Keras y Checkpoint al formato SavedModel antes del despliegue. Para obtener más información, consulte TensorFlow FAQ.
Este procesador no admite operaciones personalizadas de TensorFlow.
Despliegue un modelo de TensorFlow mediante uno de los siguientes métodos:
-
Consola
Establezca Processor Type en TensorFlow1.14. Para obtener más información, consulte Deploy a custom inference service.
-
Cliente EASCMD
En el archivo de configuración service.json, establezca processor en tensorflow_cpu_1.14 o tensorflow_gpu_1.14. Seleccione el código que coincida con sus recursos de despliegue. Una discrepancia entre processor y el tipo de recurso provoca un error en el despliegue. Ejemplo:
{ "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
El procedimiento es similar al uso del cliente EASCMD. Cree un archivo de configuración service.json. Para obtener más información, consulte Deploy model services by using EASCMD.
Procesador TensorFlow 1.15 (PAI-Blade Agility Edition)
El procesador TensorFlow 1.15 de EAS carga modelos de TensorFlow en formato SavedModel (recomendado) o SessionBundle. Convierta los modelos Keras y Checkpoint al formato SavedModel antes del despliegue. Para obtener más información, consulte TensorFlow FAQ.
Este procesador no admite operaciones personalizadas de TensorFlow.
Este procesador incluye el motor de optimización PAI-Blade Agility Edition para desplegar modelos de TensorFlow optimizados con PAI-Blade.
Despliegue un modelo de TensorFlow mediante uno de los siguientes métodos:
-
Consola
Establezca Processor Type en TensorFlow1.15. Para obtener más información, consulte Deploy a custom inference service.
-
EASCMD
En el archivo de configuración service.json, establezca processor en tensorflow_cpu_1.15 o tensorflow_gpu_1.15. Seleccione el código que coincida con sus recursos de despliegue. Una discrepancia entre processor y el tipo de recurso provoca un error en el despliegue. Ejemplo:
{ "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
El procedimiento es similar al uso de EASCMD. Cree un archivo de configuración service.json. Para obtener más información, consulte Deploy model services by using EASCMD. Para ver la descripción de los parámetros, consulte Create a service.
Procesador TensorFlow 2.3
El procesador TensorFlow 2.3 de EAS carga modelos de TensorFlow en formato SavedModel (recomendado) o SessionBundle. Convierta los modelos Keras y Checkpoint al formato SavedModel antes del despliegue. Para obtener más información, consulte TensorFlow FAQ.
Este procesador no admite operaciones personalizadas de TensorFlow.
Despliegue un modelo de TensorFlow mediante uno de los siguientes métodos:
-
Consola
Establezca Processor Type en TensorFlow2.3. Para obtener más información, consulte Deploy a service by using the console.
-
EASCMD
En el archivo de configuración service.json, establezca processor en tensorflow_cpu_2.3 Ejemplo:
{ "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
El procedimiento es similar al uso de EASCMD. Cree un archivo de configuración service.json. Para obtener más información, consulte Deploy model services by using EASCMD.
Procesador PyTorch 1.6 (PAI-Blade Agility Edition)
El procesador PyTorch 1.6 de EAS carga modelos en formato TorchScript. Para obtener más información, consulte la documentación oficial de TorchScript.
Este procesador no admite extensiones de PyTorch ni entradas y salidas de modelo que no sean tensores.
Este procesador incluye el motor de optimización PAI-Blade (Agility Edition) para desplegar modelos optimizados de PyTorch.
Despliegue un modelo TorchScript mediante uno de los siguientes métodos:
-
Consola
Establezca Processor Type en PyTorch 1.6. Para obtener más información, consulte Deploy a custom inference service.
-
Cliente EASCMD
En el archivo de configuración service.json, establezca processor en pytorch_cpu_1.6 o pytorch_gpu_1.6. Seleccione un valor según los recursos de despliegue. Una discrepancia entre processor y el tipo de recurso provoca un error en el despliegue. Ejemplo:
{ "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
El procedimiento es similar al uso del cliente EASCMD. Cree un archivo de configuración service.json. Para obtener más información, consulte Deploy model services by using EASCMD. Para ver la descripción de los parámetros, consulte Create a service.
Procesador Caffe
El procesador Caffe de EAS carga modelos de aprendizaje profundo entrenados con Caffe. Especifique los nombres del modelo y del archivo de pesos en el paquete del modelo.
Este procesador no admite capas de datos personalizadas.
Despliegue un modelo de Caffe mediante los siguientes métodos:
-
Consola
Establezca Processor Type en Caffe. Para obtener más información, consulte Deploy a custom inference service.
-
Cliente EASCMD
En el archivo de configuración service.json, establezca processor en caffe_cpu o caffe_gpu según el tipo de recurso. Una discrepancia entre processor y el tipo de recurso provoca un error en el despliegue. Ejemplo:
{ "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
El procedimiento es similar al uso del cliente EASCMD. Cree un archivo de configuración service.json. Para obtener más información, consulte Deploy model services by using EASCMD.
Procesador PS
El procesador PS de EAS carga modelos en formato PS.
Despliegue un modelo PS y envíe solicitudes al servicio.
-
Despliegue un modelo PS mediante uno de los siguientes métodos:
-
Consola
Establezca Processor Type en PS Algorithm. Para obtener más información, consulte Custom deployment.
-
Cliente EASCMD
En el archivo de configuración service.json, establezca processor en 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
El procedimiento es similar al uso del cliente EASCMD. Cree un archivo de configuración service.json. Para obtener más información, consulte Deploy model services using the EASCMD client.
-
-
Formato de solicitud
El procesador admite predicciones individuales y por lotes. El formato de la solicitud es el mismo: un arreglo JSON de objetos de características.
-
Ejemplo de solicitud individual
curl "http://eas.location/api/predict/ps_smart" -d "[ { "f0": 1, "f1": 0.2, "f3": 0.5 } ]" -
Ejemplo de solicitud por lotes
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 } ]" -
Respuesta
El formato de respuesta es el mismo para solicitudes individuales y por lotes: un arreglo de objetos de respuesta. Cada objeto de respuesta corresponde al objeto de solicitud en la misma posición.
[ { "label":"xxxx", "score" : 0.2, "details" : [{"k1":0.3}, {"k2":0.5}] }, { "label":"xxxx", "score" : 0.2, "details" : [{"k1":0.3}, {"k2":0.5}] } ]
-
Procesador EasyTransfer
El procesador EasyTransfer de EAS carga modelos de NLP basados en TensorFlow y entrenados con EasyTransfer.
Despliegue un modelo de EasyTransfer mediante los siguientes métodos:
-
Consola
Seleccione EasyTransfer para el parámetro Processor Type. Para obtener más información, consulte Deploy a custom inference service.
-
Cliente EASCMD
En el archivo de configuración service.json, establezca processor en easytransfer_cpu o easytransfer_gpu según los recursos de despliegue. Una discrepancia entre processor y los recursos provoca un error en el despliegue. En model_config, establezca type en el tipo de modelo utilizado durante el entrenamiento. El siguiente ejemplo utiliza un modelo de clasificación de texto. Para otros parámetros, consulte Create a service.
-
Configuración para despliegue en GPU (se usa un resource group público como ejemplo)
{ "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" } } -
Configuración para despliegue en 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 } }
Tipos de tareas admitidos:
Tipo de tarea
Tipo
Coincidencia de texto
text_match_bert
Clasificación de texto
text_classify_bert
Etiquetado de secuencias
sequence_labeling_bert
Vectorización de texto
vectorization_bert
-
Procesador EasyNLP
El procesador EasyNLP de EAS carga modelos de NLP basados en PyTorch y entrenados con EasyNLP.
Despliegue un modelo de EasyNLP mediante uno de los siguientes métodos:
-
Consola
Establezca Processor Type en EasyNLP. Para obtener más información, consulte Deploy a custom inference service.
-
Cliente EASCMD
En el archivo de configuración service.json, establezca processor en easynlp. En model_config, establezca type en el tipo de tarea de entrenamiento. El siguiente ejemplo utiliza un modelo de clasificación de texto con etiqueta única. Para otros parámetros, consulte Create a service.
{ "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" }Tipos de tareas admitidos:
Tipo de tarea
Valor
Clasificación de texto con etiqueta única
text_classify
Clasificación de texto con múltiples etiquetas
text_classify_multi
Coincidencia de texto
text_match
Etiquetado de secuencias
sequence_labeling
Vectorización de texto
vectorization
Resumen de texto en chino (GPU)
sequence_generation_zh
Resumen de texto en inglés (GPU)
sequence_generation_en
Comprensión lectora automática (chino)
machine_reading_comprehension_zh
Comprensión lectora automática (inglés)
machine_reading_comprehension_en
WUKONG_CLIP (GPU)
wukong_clip
CLIP (GPU)
clip
Después del despliegue, en la página Elastic Algorithm Service (EAS), haga clic en Invocation Information en la columna Service Type del servicio objetivo para consultar el endpoint y el token. Llame al servicio mediante el siguiente ejemplo en Python.
import requests
# Replace with your service endpoint.
url = '<eas-service-url>'
# Replace with your token.
token = '<eas-service-token>'
# Prepare the request data. The following example is for text classification.
request_body = {
"first_sequence": "hello"
}
headers = {"Authorization": token}
resp = requests.post(url=url, headers=headers, json=request_body)
print(resp.content.decode())
Procesador EasyCV
El procesador EasyCV de EAS carga modelos de deep learning entrenados con EasyCV.
Despliegue un modelo de EasyCV mediante uno de los siguientes métodos:
-
Consola
Establezca Processor Type en EasyCV. Para obtener más información, consulte Deploy a custom inference service.
-
Cliente EASCMD
En el archivo de configuración service.json, establezca processor como easycv. En model_config, configure type con el tipo de modelo utilizado durante el entrenamiento. El siguiente ejemplo utiliza un modelo de clasificación de imágenes. Para otros parámetros, consulte Create a service.
{ "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" } } }Tipos de trabajo compatibles:
Tipo de trabajo
model_config
Clasificación de imágenes
{"type":"TorchClassifier"}
Detección de objetos
{"type":"DetectionPredictor"}
Segmentación semántica
{"type":"SegmentationPredictor"}
YOLOX
{"type":"YoloXPredictor"}
Clasificación de video
{"type":"VideoClassificationPredictor"}
Una vez completado el despliegue, vaya a la página de Elastic Algorithm Service (EAS). Localice el servicio y, en la columna Service Type, haga clic en Invocation Information para consultar el endpoint y el token. El siguiente ejemplo en Python muestra cómo invocar el servicio.
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)
})
# Replace with your authentication token.
head = {
"Authorization": "NTFmNDJlM2E4OTRjMzc3OWY0NzI3MTg5MzZmNGQ5Yj***"
}
for x in range(0,10):
# Replace with your service endpoint.
resp = requests.post("http://150231884461***.cn-hangzhou.pai-eas.aliyuncs.com/api/predict/easycv_classification_example", data=datas, headers=head)
print(resp.text)
Codifique los datos de imagen o video en Base64 para su transmisión. Utilice la clave image para datos de imagen y la clave video para datos de video.
Procesador EasyVision
El procesador EasyVision de EAS carga modelos de deep learning entrenados con EasyVision.
Despliegue un modelo de EasyVision mediante uno de los siguientes métodos:
-
Consola
Establezca Processor Type en EasyVision. Para obtener más información, consulte Deploy a custom inference service.
-
Cliente EASCMD
En el archivo de configuración service.json, establezca processor como easy_vision_cpu_tf1.12_torch151 o easy_vision_gpu_tf1.12_torch151. Seleccione el código que corresponda a sus recursos de despliegue. Una discrepancia entre processor y el tipo de recurso provocará un error en el despliegue. En model_config, configure type con el tipo de modelo usado para el entrenamiento. Ejemplos: Para otros parámetros, consulte Create a service:
-
Configuración para despliegue en 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 } } -
Configuración para despliegue en 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 } }
-
Procesador MediaFlow
El procesador MediaFlow de EAS es un motor de orquestación diseñado para analizar y procesar video, audio e imágenes.
Despliegue un modelo de MediaFlow mediante uno de los siguientes métodos:
-
Consola
Establezca Processor Type en MediaFlow. Para obtener más información, consulte Deploy a custom inference service.
-
Cliente EASCMD
En el archivo de configuración service.json, establezca processor como mediaflow. Este procesador requiere campos de configuración adicionales. Para otros campos, consulte Create a service:
graph_pool_size: Número de graph pools.
worker_threads: Número de hilos de trabajo.
Ejemplos:
-
Configuración para desplegar un modelo de clasificación de 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 } } -
Configuración para desplegar un modelo de reconocimiento automático de voz (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 } }
Las configuraciones para ASR y clasificación de video difieren principalmente en model_entry, name y model_path. Modifique estos campos según su modelo.
Procesador Triton
Triton Inference Server es un framework de servicio en línea de NVIDIA. Proporciona una interfaz para desplegar y gestionar modelos en GPU, y es compatible con el estándar de API de KFServing. Características principales:
Despliega modelos de diversos frameworks, como TensorFlow, PyTorch, ONNX Runtime, TensorRT y backends personalizados.
Ejecuta varios modelos simultáneamente en una GPU para mejorar la utilización.
Admite protocolos HTTP/gRPC y extensión de formato binario para reducir el tamaño de las solicitudes.
Admite Dynamic Batching para aumentar el rendimiento del servicio.
Triton Inference Server está disponible en EAS como un procesador Triton integrado.
Disponible solo en versión preliminar pública en la región China (Shanghai).
Todos los modelos deben almacenarse en OSS. Active OSS y cargue primero los archivos de su modelo en un bucket de OSS. Para obtener más información, consulte Simple Upload.
Despliegue e invoque un servicio de procesador Triton.
-
Despliegue con el procesador Triton
Despliegue servicios de modelos Triton únicamente mediante EASCMD. Para obtener más información, consulte Create a service. En el archivo de configuración service.json, establezca processor como triton. Dado que Triton recupera los modelos desde OSS, configure los parámetros de OSS necesarios. Ejemplo de 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>" } }Los parámetros específicos de Triton se enumeran a continuación. Para otros parámetros, consulte Parameters in service.json.
Parámetro
Descripción
processor_params
Parámetros传递ados a Triton Server durante el inicio. Los parámetros no admitidos se filtran automáticamente. Los parámetros compatibles se listan en la siguiente set of parameters that can be passed to the Triton server. model-repository es obligatorio. Para parámetros opcionales, consulte main.cc.
oss_endpoint
Endpoint de OSS. Si no se especifica, el sistema utiliza OSS en la misma región que el servicio de EAS. Especifique este valor para OSS entre regiones. Para conocer los valores, consulte Regions and Endpoints.
metadata
resource
ID del resource group exclusivo de EAS para desplegar el servicio de modelos. El procesador Triton requiere un resource group exclusivo de EAS. Para obtener más información, consulte Use EAS exclusive resource groups.
Tabla 1. Parámetros compatibles para el servidor Triton
Parámetro
Obligatorio
Descripción
model-repository
Sí
La ruta debe especificarse como una ruta de OSS. El sistema no admite el uso directo del directorio raíz del Bucket como model-repository. Debe especificar un subdirectorio dentro del Bucket.
Por ejemplo,
oss://triton-model-repo/models, donde triton-model-repo es el nombre del Bucket y models es un subdirectorio dentro del Bucket.log-verbose
No
Para obtener más información, consulte 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
-
Invoque el servicio con el cliente nativo de Triton
Instale el cliente oficial de Triton de NVIDIA:
pip3 install nvidia-pyindex pip3 install tritonclient[all]Descargue una imagen de prueba:
wget http://pai-blade.oss-cn-zhangjiakou.aliyuncs.com/doc-assets/cat.pngEnvíe una solicitud en formato binario al servicio de procesador Triton mediante el cliente de Python:
import numpy as np import time from PIL import Image import tritonclient.http as httpclient from tritonclient.utils import InferenceServerException URL = "<service url>" # Replace <service url> with your service endpoint. HEADERS = {"Authorization": "<service token>"} # Replace <service token> with your service access token. 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()