Todos os produtos
Search
Central de documentação

Realtime Compute for Apache Flink:Invocar um serviço de inferência Triton

Última atualização: Jun 27, 2026

Registre um modelo implantado no NVIDIA Triton Inference Server e invoque-o para inferência em tempo real em jobs do Flink SQL.

Contexto

O Realtime Compute for Apache Flink (VVR 11.7+) permite registrar modelos no NVIDIA Triton Inference Server por meio da instrução CREATE MODEL. Utilize ML_PREDICT em jobs SQL para executar inferências em fluxos de dados em tempo real.

O NVIDIA Triton Inference Server é um serviço de inferência open source de alto desempenho da NVIDIA, compatível com TensorFlow, PyTorch, ONNX, TensorRT e outros frameworks. É possível utilizar um serviço Triton autogerenciado ou implantar um no PAI-EAS. Implantar um serviço usando uma imagem do Triton Inference Server.

Observações de uso

  • Este recurso está disponível apenas na versão 11.7 ou superior do mecanismo VVR.

  • As solicitações a um servidor Triton externo trafegam pela internet pública e exigem acesso à rede pública.

  • Quando o servidor Triton estiver implantado no PAI, as requisições utilizarão uma rede privada. Para obter o endpoint, consulte a seção de Perguntas frequentes.

  • Recursos do servidor Triton, condições de rede e desempenho do modelo impactam diretamente o throughput de inferência. Serviços Triton sobrecarregados ou com limitação de taxa podem gerar back pressure nos jobs do Flink. Limitações severas de taxa podem provocar timeouts de operadores e reinicializações de jobs.

Sintaxe

CREATE MODEL [catalog_name.][db_name.]model_name
INPUT (
  input_column input_type
)
OUTPUT (
  output_column output_type
)
WITH (
  'provider' = 'triton',
  'endpoint' = '<endpoint>',
  'auth-token' = '<authentication_token>'
  'model-name' = '<model_name>',
  'model-version' = '<model_version>'
);

Parâmetros WITH

Parâmetros gerais

Parâmetro

Descrição

Tipo

Obrigatório

Padrão

Observações

provider

Tipo do serviço de modelo.

String

Sim

Nenhum

O valor deve ser triton.

endpoint

Endpoint HTTP do Triton Inference Server.

String

Sim

Nenhum

Garanta a conectividade de rede entre o workspace do Flink e o serviço Triton. Opções de conexão de rede. Em implantações no PAI-EAS, obtenha o endpoint nas informações de invocação do serviço, na página de serviço de inferência de modelos no PAI console.

model-name

Nome do modelo no servidor Triton.

String

Sim

Nenhum

Este nome deve corresponder exatamente ao nome do modelo no repositório de modelos do Triton.

model-version

Versão do modelo Triton.

String

Não

latest

Especifique uma versão, como 1, se necessário.

timeout

Tempo limite para uma requisição HTTP.

Duration

Não

30s

Aplica-se a operações de conexão, leitura e escrita. Defina no formato de duração, como 10s ou 30000ms.

flatten-batch-dim

Indica se a dimensão de lote de uma entrada de array deve ser achatada.

Boolean

Não

false

O formato padrão da entrada de array é [1, N]. Defina como true para achatar para [N] quando o modelo esperar uma entrada unidimensional.

priority

Prioridade da requisição.

Integer

Não

Nenhum

Intervalo: 0 a 255. Valores maiores indicam maior prioridade. Transmitido aos parâmetros de requisição do Triton.

compression

Algoritmo de compressão para o corpo da requisição.

String

Não

Nenhum

Atualmente, apenas gzip é suportado.

auth-token

Token de autenticação para o modelo Triton.

String

Não

Nenhum

Adiciona o cabeçalho Authorization: Bearer <auth-token> às requisições. Para implantações no PAI-EAS, obtenha o token nas informações de invocação do serviço, na página de serviço de inferência de modelos no PAI console.

custom-headers

Cabeçalhos personalizados de requisição HTTP.

Map

Não

Nenhum

Exemplo: 'X-Trace-Id:abc,Authorization:token'.

Parâmetros de modelos com estado

Estes parâmetros aplicam-se a modelos Triton com estado (RNN, LSTM) que mantêm estado entre requisições.

Parâmetro

Descrição

Tipo

Obrigatório

Padrão

Observações

sequence-id

ID da sequência.

String

Não

Nenhum

O Triton encaminha requisições com o mesmo ID de sequência para a mesma instância do modelo.

sequence-start

Marca a requisição como início de uma sequência.

Boolean

Não

false

Se definido como true, o Triton inicializa o estado do modelo antes de processar esta requisição.

sequence-end

Marca a requisição como fim de uma sequência.

Boolean

Não

false

Se definido como true, o Triton libera o estado do modelo após processar esta requisição.

Mapeamento de tipos

Os tipos de coluna do Flink devem corresponder ao data_type no arquivo config.pbtxt do modelo no servidor Triton.

Tipo Flink

dtype Triton

Descrição

BOOLEAN

BOOL

Tipo booleano.

TINYINT

INT8

Inteiro assinado de 8 bits.

SMALLINT

INT16

Inteiro assinado de 16 bits.

INT

INT32

Inteiro assinado de 32 bits.

BIGINT

INT64

Inteiro assinado de 64 bits.

FLOAT

FP32

Número de ponto flutuante de 32 bits.

DOUBLE

FP64

Número de ponto flutuante de 64 bits.

STRING / VARCHAR

BYTES

Tipo texto.

ARRAY<T>

Corresponde ao tipo de elemento T.

Apenas arrays unidimensionais são suportados. T deve ser um dos tipos escalares listados acima.

Regras de formato:

  • O formato de uma entrada escalar é [1].

  • O formato padrão de uma entrada ARRAY<T> é [1, N], onde N representa o comprimento do array. Caso o modelo Triton espere o formato [N], defina 'flatten-batch-dim' = 'true'.

Perguntas frequentes

Como obter o endpoint e o token de um serviço Triton implantado no Platform for AI (PAI)?

  1. Faça login no console do Platform for AI (PAI).

  2. No painel de navegação à esquerda, escolha Elastic Algorithm Service (EAS) > Inference Service e clique em no nome do serviço desejado para abrir a página Overview.

  3. Na seção Basic Information, clique em View Invocation Information.

  4. No painel Invocation Information, copie o endpoint e o token.

Como resolver um erro de incompatibilidade de formato?

Verifique se o tipo da coluna de entrada do Flink corresponde ao campo dims no arquivo config.pbtxt do modelo no servidor Triton. Para entradas ARRAY<T>, o Flink envia o formato [1, N] por padrão. Se o modelo esperar [N], defina:

'flatten-batch-dim' = 'true'

Arrays aninhados não são suportados. Para tensores de alta dimensionalidade, achate-os para um ARRAY<T> unidimensional e restaure o formato original no lado do modelo.

Modelos com múltiplas entradas ou saídas são suportados?

Apenas colunas únicas de entrada e saída são suportadas. Para múltiplas entradas, agrupe recursos numéricos em um único ARRAY<T> ou serialize estruturas complexas como uma string JSON e faça o parsing no lado do modelo. Para múltiplas saídas, consolide-as em um único tensor de saída ou string JSON no lado do modelo.