Tous les produits
Search
Centre de documentation

Realtime Compute for Apache Flink:Appeler un service d'inférence Triton

Dernière mise à jour :Aug 09, 2026

Enregistrez un modèle déployé sur NVIDIA Triton Inference Server et appelez-le pour effectuer une inférence en temps réel dans les jobs Flink SQL.

Contexte

Realtime Compute for Apache Flink (VVR 11.7+) prend en charge l'enregistrement des modèles hébergés sur NVIDIA Triton Inference Server à l'aide de l'instruction CREATE MODEL. Utilisez la fonction ML_PREDICT dans vos jobs SQL pour exécuter l'inférence sur des flux de données en temps réel.

NVIDIA Triton Inference Server est un service d'inférence open source haute performance développé par NVIDIA. Il est compatible avec TensorFlow, PyTorch, ONNX, TensorRT et d'autres frameworks. Vous pouvez utiliser une instance Triton autogérée ou en déployer une sur PAI-EAS. Déployez un service à l'aide d'une image Triton Inference Server.

Notes d'utilisation

  • Cette fonctionnalité n'est prise en charge qu'à partir de la version 11.7 du moteur VVR.

  • Les requêtes adressées à un serveur Triton externe transitent par Internet public et nécessitent un accès au réseau public.

  • Si le serveur Triton est déployé sur PAI, les requêtes empruntent un réseau privé. Pour obtenir l'endpoint, consultez la section FAQ.

  • Les ressources du serveur Triton, les conditions réseau et les performances du modèle influent sur le débit d'inférence. Un service Triton surchargé ou soumis à une limitation de débit peut engendrer une contre-pression dans les jobs Flink. Une limitation sévère peut provoquer des délais d'expiration des opérateurs et le redémarrage des jobs.

Syntaxe

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>'
);

Paramètres WITH

Paramètres généraux

Parameter

Description

Type

Required

Default

Notes

provider

Type de service de modèle.

String

Yes

None

La valeur doit être triton.

endpoint

Endpoint HTTP du serveur Triton Inference Server.

String

Yes

None

Vérifiez la connectivité réseau entre l'espace de travail Flink et le service Triton. Options de connexion réseau. Pour les déploiements PAI-EAS, récupérez l'endpoint depuis les informations d'appel du service sur la page du service d'inférence de modèle dans la console PAI.

model-name

Nom du modèle sur le serveur Triton.

String

Yes

None

Ce nom doit correspondre exactement au nom du modèle présent dans le référentiel de modèles Triton.

model-version

Version du modèle Triton.

String

No

latest

Spécifiez une version, par exemple 1.

timeout

Délai d'expiration pour une requête HTTP.

Duration

No

30s

S'applique aux opérations de connexion, de lecture et d'écriture. Indiquez la durée au format approprié, tel que 10s ou 30000ms.

flatten-batch-dim

Indique s'il faut aplatir la dimension de lot d'une entrée de type tableau.

Boolean

No

false

Par défaut, la forme d'une entrée de type tableau est [1, N]. Définissez cette option sur true pour l'aplatir en [N] lorsque le modèle attend une entrée unidimensionnelle.

priority

Priorité de la requête.

Integer

No

None

Plage : 0 à 255. Les valeurs les plus élevées indiquent une priorité plus grande. Ce paramètre est transmis directement aux paramètres de requête Triton.

compression

Algorithme de compression appliqué au corps de la requête.

String

No

None

Seul gzip est pris en charge actuellement.

auth-token

Jeton d'authentification pour le modèle Triton.

String

No

None

Ajoute l'en-tête Authorization: Bearer <auth-token> aux requêtes. Pour les déploiements PAI-EAS, récupérez le jeton depuis les informations d'appel du service sur la page du service d'inférence de modèle dans la console PAI.

custom-headers

En-têtes HTTP personnalisés pour la requête.

Map

No

None

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

Paramètres des modèles avec état

Ces paramètres s'appliquent aux modèles Triton avec état (RNN, LSTM) qui conservent leur état entre les requêtes.

Parameter

Description

Type

Required

Default

Notes

sequence-id

ID de séquence.

String

No

None

Triton achemine les requêtes portant le même ID de séquence vers la même instance de modèle.

sequence-start

Marque la requête comme le début d'une séquence.

Boolean

No

false

Si la valeur est définie sur true, Triton initialise l'état du modèle avant de traiter cette requête.

sequence-end

Marque la requête comme la fin d'une séquence.

Boolean

No

false

Si la valeur est définie sur true, Triton libère l'état du modèle après avoir traité cette requête.

Correspondance des types

Les types de colonnes Flink doivent correspondre au champ data_type défini dans le fichier config.pbtxt du modèle sur le serveur Triton.

Flink type

Triton dtype

Description

BOOLEAN

BOOL

Type booléen.

TINYINT

INT8

Entier signé 8 bits.

SMALLINT

INT16

Entier signé 16 bits.

INT

INT32

Entier signé 32 bits.

BIGINT

INT64

Entier signé 64 bits.

FLOAT

FP32

Nombre à virgule flottante 32 bits.

DOUBLE

FP64

Nombre à virgule flottante 64 bits.

STRING / VARCHAR

BYTES

Type texte.

ARRAY<T>

Correspond au type d'élément T.

Seuls les tableaux unidimensionnels sont pris en charge. Le type T doit être l'un des types scalaires répertoriés ci-dessus.

Règles relatives aux formes :

  • La forme d'une entrée scalaire est [1].

  • La forme par défaut d'une entrée ARRAY<T> est [1, N], où N représente la longueur du tableau. Si le modèle Triton attend une forme [N], définissez 'flatten-batch-dim' = 'true'.

FAQ

Comment obtenir l'endpoint et le jeton pour un service Triton déployé sur Platform for AI (PAI) ?

  1. Connectez-vous à la console Platform for AI (PAI).

  2. Dans le volet de navigation de gauche, choisissez Elastic Algorithm Service (EAS) > Inference Service, puis cliquez sur le nom du service cible pour ouvrir la page Overview.

  3. Dans la section Basic Information, cliquez sur View Invocation Information.

  4. Dans le panneau Invocation Information, copiez l'endpoint et le jeton.

Comment résoudre une erreur d'incompatibilité de forme ?

Vérifiez que le type de colonne d'entrée Flink correspond au champ dims défini dans le fichier config.pbtxt du modèle sur le serveur Triton. Pour les entrées de type ARRAY<T>, Flink envoie par défaut la forme [1, N]. Si le modèle attend [N], configurez :

'flatten-batch-dim' = 'true'

Les tableaux imbriqués ne sont pas pris en charge. Pour les tenseurs de haute dimension, aplatissez-les en un ARRAY<T> unidimensionnel et restaurez la forme côté modèle.

Les modèles à entrées ou sorties multiples sont-ils pris en charge ?

Seules les colonnes d'entrée unique et de sortie unique sont prises en charge. Pour gérer plusieurs entrées, regroupez les caractéristiques numériques dans un seul ARRAY<T> ou sérialisez les structures complexes sous forme de string JSON et analysez-les côté modèle. Pour les sorties multiples, fusionnez-les en un seul tenseur de sortie ou en une chaîne JSON côté modèle.