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 |
|
|
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 |
TensorFlow 1.15 processor (includes the PAI-Blade agility edition optimization engine) |
|
TensorFlow 2.3 |
tensorflow_cpu_2.3 |
None |
|
|
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 |
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 |
|
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.
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.
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.
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.
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.
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.
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.
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.pngEnvie 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()