Todos os produtos
Search
Central de documentação

Platform For AI:Processadores integrados

Última atualização: Aug 28, 2026

Um processador é um pacote de lógica de previsão online. O Elastic Algorithm Service (EAS) fornece processadores integrados para implantar modelos padrão, eliminando a necessidade de desenvolver essa lógica manualmente.

A tabela a seguir lista os nomes e códigos dos processadores no EAS. Forneça o código do processador ao implantar um service com o EASCMD.

Nome do processador

Código do processador (apenas EASCMD)

Referência

Edição CPU

Edição GPU

EasyRec

easyrec-2,4

easyrec-2,4

EasyRec processor

TorchEasyRec

easyrec-torch-1,0

easyrec-torch-1,0

TorchEasyRec processor

PMML

pmml

None

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

None

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

None

Parameter Server processor

Alink

alink_pai_processor

None

None

xNN

xnn_cpu

None

None

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

None

MediaFlow

None

mediaflow

MediaFlow processor

Triton

None

triton

Triton processor

Processador PMML

O processador PMML no EAS:

  • Carrega um arquivo de modelo PMML como service.

  • Processa solicitações para o service de modelo.

  • Calcula e retorna resultados de previsão ao cliente.

O processador PMML oferece uma estratégia padrão para lidar com valores ausentes. Se nenhuma política isMissing for especificada para as colunas de recursos no arquivo de modelo PMML, o sistema os preencherá com os seguintes padrões.

Tipo

Padrão

BOOLEAN

false

DOUBLE

0,0

FLOAT

0,0

INT

0

STRING

""

Implante um modelo PMML de uma das seguintes maneiras:

  • Console

    Defina o parâmetro Processor Type como PMML. Para mais informações, consulte Deploy a model service by using the console.

  • Cliente EASCMD

    No arquivo de configuração service.json, defina processor como pmml. Exemplo:

    {
      "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)

    Semelhante ao uso do cliente EASCMD. Crie um arquivo de configuração service.json. Para mais informações, consulte Deploy a model service by using EASCMD.

Processador TensorFlow 1.12

O processador TensorFlow 1.12 do EAS carrega modelos TensorFlow nos formatos SavedModel (recomendado) ou SessionBundle. Converta modelos Keras e Checkpoint para o formato SavedModel antes da implantação. Para mais informações, consulte TensorFlow FAQ.

Nota

Este processador não suporta operações personalizadas do TensorFlow.

Implante um modelo TensorFlow de uma das seguintes maneiras:

  • Console

    Defina Processor Type como TensorFlow1.12. Para mais informações, consulte Deploy a custom inference service.

  • Cliente EASCMD

    No arquivo de configuração service.json, defina processor como tensorflow_cpu_1.12 ou tensorflow_gpu_1.12. Selecione o código com base nos recursos de implantação. Uma incompatibilidade entre processor e o tipo de recurso causa falha na implantação. Exemplo:

    {
      "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

    Semelhante ao uso do cliente EASCMD. Crie um arquivo de configuração service.json. Para mais informações, consulte Deploy model services by using EASCMD.

Processador TensorFlow 1.14

O processador TensorFlow 1.14 do EAS carrega modelos TensorFlow nos formatos SavedModel (recomendado) ou SessionBundle. Converta modelos Keras e Checkpoint para o formato SavedModel antes da implantação. Para mais informações, consulte TensorFlow FAQ.

Nota

Este processador não suporta operações personalizadas do TensorFlow.

Implante um modelo TensorFlow de uma das seguintes maneiras:

  • Console

    Defina Processor Type como TensorFlow1.14. Para mais informações, consulte Deploy a custom inference service.

  • Cliente EASCMD

    No arquivo de configuração service.json, defina processor como tensorflow_cpu_1.14 ou tensorflow_gpu_1.14. Selecione o código correspondente aos seus recursos de implantação. Uma incompatibilidade entre processor e o tipo de recurso causa falha na implantação. Exemplo:

    {
      "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

    Semelhante ao uso do cliente EASCMD. Crie um arquivo de configuração service.json. Para mais informações, consulte Deploy model services by using EASCMD.

Processador TensorFlow 1.15 (PAI-Blade Agility Edition)

O processador TensorFlow 1.15 do EAS carrega modelos TensorFlow nos formatos SavedModel (recomendado) ou SessionBundle. Converta modelos Keras e Checkpoint para o formato SavedModel antes da implantação. Para mais informações, consulte TensorFlow FAQ.

Nota
  • Este processador não suporta operações personalizadas do TensorFlow.

  • Inclui o mecanismo de otimização PAI-Blade Agility Edition para implantar modelos TensorFlow otimizados pelo PAI-Blade.

Implante um modelo TensorFlow de uma das seguintes maneiras:

  • Console

    Defina Processor Type como TensorFlow1.15. Para mais informações, consulte Deploy a custom inference service.

  • EASCMD

    No arquivo de configuração service.json, defina processor como tensorflow_cpu_1.15 ou tensorflow_gpu_1.15. Selecione o código correspondente aos seus recursos de implantação. Uma incompatibilidade entre processor e o tipo de recurso causa falha na implantação. Exemplo:

    {
      "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

    Semelhante ao uso do EASCMD. Crie um arquivo de configuração service.json. Para mais informações, consulte Deploy model services by using EASCMD. Para descrições de parâmetros, consulte Create a service.

Processador TensorFlow 2.3

O processador TensorFlow 2.3 do EAS carrega modelos TensorFlow nos formatos SavedModel (recomendado) ou SessionBundle. Converta modelos Keras e Checkpoint para o formato SavedModel antes da implantação. Para mais informações, consulte TensorFlow FAQ.

Nota

Este processador não suporta operações personalizadas do TensorFlow.

Implante um modelo TensorFlow de uma das seguintes maneiras:

  • Console

    Defina Processor Type como TensorFlow2.3. Para mais informações, consulte Deploy a service by using the console.

  • EASCMD

    No arquivo de configuração service.json, defina processor como tensorflow_cpu_2.3 Exemplo:

    {
      "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

    Semelhante ao uso do EASCMD. Crie um arquivo de configuração service.json. Para mais informações, consulte Deploy model services by using EASCMD.

Processador PyTorch 1.6 (PAI-Blade Agility Edition)

O processador PyTorch 1.6 do EAS carrega modelos no formato TorchScript. Para mais informações, consulte a documentação oficial do TorchScript.

Nota
  • Este processador não suporta extensões do PyTorch ou entradas e saídas de modelo que não sejam tensores.

  • Inclui o mecanismo de otimização PAI-Blade (Agility Edition) para implantar modelos PyTorch otimizados.

Implante um modelo TorchScript de uma das seguintes maneiras:

  • Console

    Defina Processor Type como PyTorch 1.6. Para mais informações, consulte Deploy a custom inference service.

  • Cliente EASCMD

    No arquivo de configuração service.json, defina processor como pytorch_cpu_1.6 ou pytorch_gpu_1.6. Selecione um valor com base nos recursos de implantação. Uma incompatibilidade entre processor e o tipo de recurso causa falha na implantação. Exemplo:

    {
      "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

    Semelhante ao uso do cliente EASCMD. Crie um arquivo de configuração service.json. Para mais informações, consulte Deploy model services by using EASCMD. Para descrições de parâmetros, consulte Create a service.

Processador Caffe

O processador Caffe do EAS carrega modelos de deep learning treinados com Caffe. Especifique os nomes do modelo e do arquivo de pesos no pacote do modelo.

Nota

Este processador não suporta camadas de dados personalizadas.

Implante um modelo Caffe das seguintes maneiras:

  • Console

    Defina Processor Type como Caffe. Para mais informações, consulte Deploy a custom inference service.

  • Cliente EASCMD

    No arquivo de configuração service.json, defina processor como caffe_cpu ou caffe_gpu com base no tipo de recurso. Uma incompatibilidade entre processor e o tipo de recurso causa falha na implantação. Exemplo:

    {
      "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

    Semelhante ao uso do cliente EASCMD. Crie um arquivo de configuração service.json. Para mais informações, consulte Deploy model services by using EASCMD.

Processador PS

O processador PS do EAS carrega modelos no formato PS.

Implante um modelo PS e envie solicitações para o service.

  • Implante um modelo PS de uma das seguintes maneiras:

    • Console

      Defina Processor Type como PS Algorithm. Para mais informações, consulte Custom deployment.

    • Cliente EASCMD

      No arquivo de configuração service.json, defina processor como 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

      Semelhante ao uso do cliente EASCMD. Crie um arquivo de configuração service.json. Para mais informações, consulte Deploy model services using the EASCMD client.

  • Formato de solicitação

    O processador suporta previsões únicas e em lote. O formato da solicitação é o mesmo: um array JSON de objetos de recursos.

    • Exemplo de solicitação única

      curl "http://eas.location/api/predict/ps_smart" -d "[
                  {
                      "f0": 1,
                      "f1": 0.2,
                      "f3": 0.5
                  }
      ]"
    • Exemplo de solicitação em lote

      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
              }
      ]"
    • Resposta

      O formato de resposta é o mesmo para solicitações únicas e em lote: um array de objetos de resposta. Cada objeto de resposta corresponde ao objeto de solicitação na mesma posição.

      [
        {
          "label":"xxxx",
          "score" : 0.2,
          "details" : [{"k1":0.3}, {"k2":0.5}]
        },
        {
          "label":"xxxx",
          "score" : 0.2,
          "details" : [{"k1":0.3}, {"k2":0.5}]
        }
      ]

Processador EasyTransfer

O processador EasyTransfer do EAS carrega modelos de NLP baseados em TensorFlow treinados com EasyTransfer.

Implante um modelo EasyTransfer das seguintes maneiras:

  • Console

    Selecione EasyTransfer para o parâmetro Processor Type. Para mais informações, consulte Deploy a custom inference service.

  • Cliente EASCMD

    No arquivo de configuração service.json, defina processor como easytransfer_cpu ou easytransfer_gpu com base nos recursos de implantação. Uma incompatibilidade entre processor e os recursos causa falha na implantação. Em model_config, defina type como o tipo de modelo usado durante o treinamento. O exemplo a seguir usa um modelo de classificação de texto. Para outros parâmetros, consulte Create a service.

    • Configuração para implantação em GPU (usando um grupo de recursos público como exemplo)

      {
        "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"
        }
      }
    • Configuração para implantação em 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 tarefa suportados:

    Tipo de tarefa

    Type

    Correspondência de texto

    text_match_bert

    Classificação de texto

    text_classify_bert

    Rotulagem de sequência

    sequence_labeling_bert

    Vetorização de texto

    vectorization_bert

Processador EasyNLP

O processador EasyNLP do EAS carrega modelos de NLP baseados em PyTorch treinados com EasyNLP.

Implante um modelo EasyNLP de uma das seguintes maneiras:

  • Console

    Defina Processor Type como EasyNLP. Para mais informações, consulte Deploy a custom inference service.

  • Cliente EASCMD

    No arquivo de configuração service.json, defina processor como easynlp. Em model_config, defina type como o tipo de tarefa de treinamento. O exemplo a seguir usa um modelo de classificação de texto com rótulo único. Para outros 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 tarefa suportados:

    Tipo de tarefa

    Valor

    Classificação de texto com rótulo único

    text_classify

    Classificação de texto com múltiplos rótulos

    text_classify_multi

    Correspondência de texto

    text_match

    Rotulagem de sequência

    sequence_labeling

    Vetorização de texto

    vectorization

    Resumo de texto em chinês (GPU)

    sequence_generation_zh

    Resumo de texto em inglês (GPU)

    sequence_generation_en

    Compreensão de leitura por máquina (chinês)

    machine_reading_comprehension_zh

    Compreensão de leitura por máquina (inglês)

    machine_reading_comprehension_en

    WUKONG_CLIP (GPU)

    wukong_clip

    CLIP (GPU)

    clip

Após a implantação, na página Elastic Algorithm Service (EAS), clique em Invocation Information na coluna Service Type do service alvo para visualizar o endpoint e o token. Chame o service usando o seguinte exemplo em 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())

Processador EasyCV

O processador EasyCV do EAS carrega modelos de deep learning treinados com EasyCV.

Implante um modelo EasyCV de uma das seguintes maneiras:

  • Console

    Defina Processor Type como EasyCV. Para mais informações, consulte Deploy a custom inference service.

  • Cliente EASCMD

    No arquivo de configuração service.json, defina processor como easycv. Em model_config, defina type como o tipo de modelo usado durante o treinamento. O exemplo a seguir usa um modelo de classificação de imagem. Para outros 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 trabalho suportados:

    Tipo de trabalho

    model_config

    Classificação de imagem

    {"type":"TorchClassifier"}

    Detecção de objetos

    {"type":"DetectionPredictor"}

    Segmentação semântica

    {"type":"SegmentationPredictor"}

    YOLOX

    {"type":"YoloXPredictor"}

    Classificação de vídeo

    {"type":"VideoClassificationPredictor"}

Após a implantação, acesse a página Elastic Algorithm Service (EAS). Localize o service e, na coluna Service Type, clique em Invocation Information para visualizar o endpoint e o token. O exemplo Python a seguir mostra como chamar o service.

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 os dados de imagem ou vídeo em Base64 para transmissão. Use a chave image para dados de imagem e a chave video para dados de vídeo.

Processador EasyVision

O processador EasyVision do EAS carrega modelos de deep learning treinados com EasyVision.

Implante um modelo EasyVision de uma das seguintes maneiras:

  • Console

    Defina Processor Type como EasyVision. Para mais informações, consulte Deploy a custom inference service.

  • Cliente EASCMD

    No arquivo de configuração service.json, defina processor como easy_vision_cpu_tf1.12_torch151 ou easy_vision_gpu_tf1.12_torch151. Selecione o código correspondente aos seus recursos de implantação. Uma incompatibilidade entre processor e o tipo de recurso causa falha na implantação. Em model_config, defina type como o tipo de modelo usado para treinamento. Exemplos. Para outros parâmetros, consulte Create a service:

    • Configuração para implantação em 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
        }
      }
    • Configuração para implantação em 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
        }
      }

Processador MediaFlow

O processador MediaFlow do EAS é um mecanismo de orquestração para análise e processamento de vídeo, áudio e imagens.

Implante um modelo MediaFlow de uma das seguintes maneiras:

  • Console

    Defina Processor Type como MediaFlow. Para mais informações, consulte Deploy a custom inference service.

  • Cliente EASCMD

    No arquivo de configuração service.json, defina processor como mediaflow. Este processador requer campos de configuração adicionais. Para outros campos, consulte Create a service:

    • graph_pool_size: Número de pools de grafos.

    • worker_threads: Número de threads de trabalho.

    Exemplos:

    • Configuração para implantar um modelo de classificação de vídeo.

      {
        "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 
        }
      }
    • Configuração para implantar um modelo de reconhecimento automático de fala (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 
        }
      }

    As configurações para ASR e classificação de vídeo diferem principalmente em model_entry, name e model_path. Modifique esses campos conforme o seu modelo.

Processador Triton

O Triton Inference Server é um framework de service online da NVIDIA. Ele fornece uma interface para implantar e gerenciar modelos em GPUs e é compatível com o padrão de API KFServing. Principais recursos:

  • Implanta modelos de vários frameworks, como TensorFlow, PyTorch, ONNX Runtime, TensorRT e backends personalizados.

  • Executa vários modelos simultaneamente em uma GPU para melhorar a utilização.

  • Suporta protocolos HTTP/gRPC e extensão de formato binário para reduzir o tamanho da solicitação.

  • Suporta Dynamic Batching para melhorar o throughput do service.

O Triton Inference Server está disponível no EAS como um processador Triton integrado.

Nota
  • Disponível apenas em visualização pública na região China (Shanghai).

  • Todos os modelos devem ser armazenados no OSS. Ative o OSS e carregue seus arquivos de modelo em um bucket do OSS primeiro. Para mais informações, consulte Simple Upload.

Implante e chame um service de processador Triton.

  • Implantar com o processador Triton

    Implante services de modelo Triton apenas usando o EASCMD. Para mais informações, consulte Create a service. No arquivo de configuração service.json, defina processor como triton. Como o Triton recupera modelos do OSS, configure os parâmetros necessários do OSS. Exemplo 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>"
      }
    }

    Os parâmetros específicos do Triton estão listados abaixo. Para outros parâmetros, consulte Parameters in service.json.

    Parâmetro

    Descrição

    processor_params

    Parâmetros passados para o Triton Server na inicialização. Parâmetros não suportados são filtrados automaticamente. Os parâmetros suportados estão listados no seguinte conjunto de parâmetros que podem ser passados para o servidor Triton. model-repository é obrigatório. Para parâmetros opcionais, consulte main.cc.

    oss_endpoint

    Endpoint do OSS. Se não especificado, o sistema usa o OSS na mesma região do service EAS. Especifique isso para OSS entre regiões. Para valores, consulte Regions and Endpoints.

    metadata

    resource

    ID do grupo de recursos exclusivos do EAS para implantar o service de modelo. O processador Triton requer um grupo de recursos exclusivos do EAS. Para mais informações, consulte Use EAS exclusive resource groups.

    Tabela 1. Parâmetros suportados para o servidor Triton

    Parâmetro

    Obrigatório

    Descrição

    model-repository

    Sim

    O caminho deve ser especificado como um caminho OSS. O sistema não suporta o uso direto do diretório raiz do Bucket como model-repository. Você deve especificar um subdiretório dentro do Bucket.

    Por exemplo, oss://triton-model-repo/models, onde triton-model-repo é o nome do Bucket e models é um subdiretório dentro do Bucket.

    log-verbose

    Não

    Para mais informações, consulte main.cc.

    log-info

    Não

    log-warning

    Não

    log-error

    Não

    exit-on-error

    Não

    strict-model-config

    Não

    strict-readiness

    Não

    allow-http

    Não

    http-thread-count

    Não

    pinned-memory-pool-byte-size

    Não

    cuda-memory-pool-byte-size

    Não

    min-supported-compute-capability

    Não

    buffer-manager-thread-count

    Não

    backend-config

    Não

  • Chamar o service com o cliente nativo do Triton

    Instale o cliente oficial Triton da NVIDIA:

    pip3 install nvidia-pyindex
    pip3 install tritonclient[all]

    Baixe uma imagem de teste:

    wget http://pai-blade.oss-cn-zhangjiakou.aliyuncs.com/doc-assets/cat.png

    Envie uma solicitação em formato binário para o service de processador Triton usando o cliente 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()