Todos los productos
Search
Centro de documentos

Platform For AI:Procesadores integrados

Última actualización: Sep 04, 2026

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

EasyRec processor

TorchEasyRec

easyrec-torch-1.0

easyrec-torch-1.0

TorchEasyRec processor

PMML

pmml

Ninguna

PMML processor

TensorFlow 1.12

tensorflow_cpu_1.12

tensorflow_gpu_1.12

TensorFlow 1.12 processor

TensorFlow 1.14

tensorflow_cpu_1.14

tensorflow_gpu_1.14

TensorFlow 1.14 processor

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

TensorFlow 2.3 processor

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

Caffe processor

Parameter Server

parameter_server

Ninguna

Parameter Server processor

Alink

alink_pai_processor

Ninguna

Ninguna

xNN

xnn_cpu

Ninguna

Ninguna

EasyVision

easy_vision_cpu_tf1.12_torch151

easy_vision_gpu_tf1.12_torch151

EasyVision processor

EasyTransfer

easytransfer_cpu

easytransfer_gpu

EasyTransfer processor

EasyNLP

easynlp

easynlp

EasyNLP processor

EasyCV

easycv

easycv

EasyCV processor

Blade

blade_cpu

blade_cuda10.0_beta

Ninguna

MediaFlow

Ninguna

mediaflow

MediaFlow processor

Triton

Ninguna

triton

Triton processor

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.

Nota

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.

Nota

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.

Nota
  • 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.

Nota

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.

Nota
  • 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.

Nota

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.

Nota
  • 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.png

    Enví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()