Disponibilização de alto desempenho com o Triton Inference Server
Repositório de modelos, configuração de modelo config.pbtxt, instâncias de modelos simultâneas e criação dinâmica de lotes.
Disponibilização de alto desempenho com o Triton Inference Server é uma aula grátis de Learn AI with Python no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Learn AI with Python, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Learn AI with Python inclui 4 aulas no total.
O que é o Triton
O Servidor de inferência Triton da NVIDIA é um sistema de disponibilização em produção que hospeda vários modelos simultaneamente em CPU e GPU. Ele oferece suporte a vários back-ends (TensorRT, ONNX, PyTorch, TensorFlow, Python) por meio de uma única API HTTP/gRPC, com agrupamento em lotes e simultaneidade integrados.
O repositório de modelos
O Triton carrega modelos de um repositório de modelos: um diretório no qual cada modelo tem sua própria pasta, uma subpasta de versão numérica e um config.pbtxt.
model_repository/
resnet50/
config.pbtxt
1/
model.onnx
bert/
config.pbtxt
1/
model.ptconfig.pbtxt: back-end
O arquivo config.pbtxt descreve como o Triton deve executar um modelo. O back-end (ou a plataforma) informa ao Triton qual ambiente de execução usar.
name: "resnet50"
backend: "onnxruntime"
max_batch_size: 32Tensores de entrada e saída
Você declara cada entrada e saída: seu nome, tipo de dados e dimensões do tensor. As formas devem corresponder ao que o modelo espera. Uma dimensão de lote inicial é implícita por max_batch_size.
input [
{
name: "input"
data_type: TYPE_FP32
dims: [ 3, 224, 224 ]
}
]
output [
{
name: "output"
data_type: TYPE_FP32
dims: [ 1000 ]
}
]Tipos de dados
O Triton usa tipos de dados explícitos para tensores, para que os clientes e o modelo concordem sobre o leiaute em bytes:
TYPE_FP32número de ponto flutuante de 32 bits (comum em imagens)TYPE_FP16precisão reduzida (mais rápida em GPUs)TYPE_INT64identificadores de tokens para PLNTYPE_INT8modelos quantizados
Agrupamento dinâmico em lotes: a ideia
O agrupamento dinâmico em lotes permite que o Triton combine várias solicitações recebidas em um lote maior antes de executar o modelo. As GPUs são muito mais eficientes com lotes grandes, então isso aumenta drasticamente a vazão sem alterar o código do cliente.
Configurando o agrupamento dinâmico em lotes
Você o habilita na configuração e define por quanto tempo o Triton espera para reunir solicitações. Um pequeno max_queue_delay_microseconds troca um pouco de latência por uma vazão muito maior.
dynamic_batching {
preferred_batch_size: [ 8, 16 ]
max_queue_delay_microseconds: 1000
}Instâncias de modelo simultâneas
Por padrão, o Triton executa uma cópia (instância) do modelo. Com instance_group, você pode executar várias instâncias em paralelo em uma ou mais GPUs, processando solicitações independentes simultaneamente e melhorando a utilização.
instance_group [
{
count: 2
kind: KIND_GPU
gpus: [ 0 ]
}
]Agrupamento em lotes versus simultaneidade
Esses mecanismos resolvem problemas diferentes:
- Agrupamento dinâmico em lotes combina solicitações em uma única chamada ao modelo (vazão por chamada)
- Instâncias simultâneas executam várias chamadas ao modelo ao mesmo tempo (paralelismo)
Eles são complementares; as configurações de produção costumam usar ambos.
perf_analyzer
O perf_analyzer é uma ferramenta do Triton que sobrecarrega o servidor com solicitações sintéticas e informa a vazão (inferências por segundo) e os percentis de latência. Use-a para encontrar as configurações de lote e simultaneidade que maximizam a vazão dentro do seu orçamento de latência.
perf_analyzer -m resnet50 \
--concurrency-range 1:8 \
--percentile 95Lendo a saída de perf_analyzer
A ferramenta percorre níveis de simultaneidade e exibe a vazão e a latência para cada um deles. Você procura o joelho da curva: o ponto em que aumentar a simultaneidade deixa de melhorar a vazão ou faz a latência P95 ultrapassar seu limite.
# Concurrency: 4, throughput: 1820 infer/sec, p95 latency: 9.1 ms
# Concurrency: 8, throughput: 1905 infer/sec, p95 latency: 17.4 msVerificação rápida
Teste seus conhecimentos sobre o Triton.
Recapitulação
Você aprendeu a disponibilizar modelos em alto desempenho com o Triton:
- Repositório de modelos: pastas por modelo com subdiretórios de versão e
config.pbtxt config.pbtxtdeclara o back-end, as formas dos tensores de entrada e saída e os tipos de dados- O agrupamento dinâmico em lotes aumenta a vazão; as instâncias simultâneas acrescentam paralelismo
- O perf_analyzer compara vazão e latência para ajustar as configurações
Perguntas Frequentes
A aula “Disponibilização de alto desempenho com o Triton Inference Server” é grátis?
Sim — o texto completo de “Disponibilização de alto desempenho com o Triton Inference Server” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Learn AI with Python, atualize para CoddyKit PRO. O curso de Learn AI with Python inclui 4 aulas no total.
O que vou aprender em “Disponibilização de alto desempenho com o Triton Inference Server”?
Repositório de modelos, configuração de modelo config.pbtxt, instâncias de modelos simultâneas e criação dinâmica de lotes. Você pratica Learn AI with Python com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Learn AI with Python?
Nenhuma experiência prévia é necessária. Learn AI with Python no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.
Quanto tempo leva a aula “Disponibilização de alto desempenho com o Triton Inference Server”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Learn AI with Python?
Sim. Cada aula de Learn AI with Python inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Containerizando modelos de aprendizado de máquina com Docker
- Implantação na nuvem: AWS SageMaker
- Disponibilização de alto desempenho com o Triton Inference Server
- Escalonamento e escalonamento automático de endpoints de modelos