0Pricing
Learn AI with Python · Aula

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.pt

config.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: 32

Tensores 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_FP32 número de ponto flutuante de 32 bits (comum em imagens)
  • TYPE_FP16 precisão reduzida (mais rápida em GPUs)
  • TYPE_INT64 identificadores de tokens para PLN
  • TYPE_INT8 modelos 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 95

Lendo 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 ms

Verificaçã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.pbtxt declara 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

  1. Containerizando modelos de aprendizado de máquina com Docker
  2. Implantação na nuvem: AWS SageMaker
  3. Disponibilização de alto desempenho com o Triton Inference Server
  4. Escalonamento e escalonamento automático de endpoints de modelos
← Voltar para Learn AI with Python