すべてのプロダクト
Search
ドキュメントセンター

Realtime Compute for Apache Flink:Triton 推論サービスの呼び出し

最終更新日:May 21, 2026

このトピックでは、NVIDIA Triton Inference Server にデプロイされたモデルを Flink ジョブで登録する方法について説明します。

背景情報

Realtime Compute for Apache Flink は、VVR エンジンバージョン 11.7 以降、CREATE MODEL ステートメントを使用してNVIDIA Triton Inference Server にデプロイされたモデルの登録をサポートします。その後、SQL ジョブで ML_PREDICT を使用して、リアルタイムデータストリームでモデル推論を実行できます。

NVIDIA Triton Inference Server は、NVIDIA が提供する高性能なオープンソースの推論サービスで、TensorFlow、PyTorch、ONNX、TensorRT などの複数のモデルフレームワークをサポートします。セルフマネージドの Triton サービスを使用するか、Platform for AI (PAI) の Elastic Algorithm Service (EAS) を使用してデプロイできます。PAI-EAS に Triton サービスをデプロイする方法の詳細については、「Triton Inference Server イメージを使用したサービスのデプロイ」をご参照ください。

注意事項

  • この機能は、VVR エンジンバージョン 11.7 以降でのみサポートされます。

  • 外部にデプロイされた NVIDIA Triton Inference Server へのリクエストは、パブリックインターネット経由で送信されるため、パブリックネットワークアクセスが必要です。

  • NVIDIA Triton Inference Server が PAI プラットフォームにデプロイされている場合、リクエストはプライベートネットワーク経由で送信されるため、パブリックネットワークアクセスは不要です。エンドポイントの取得方法の詳細については、「よくある質問」セクションをご参照ください。

  • Triton サーバーのリソース、ネットワーク状態、モデルのパフォーマンスは、モデル推論のスループットに影響します。Triton サービスが過負荷になったり、レート制限の対象になったりすると、Flink ジョブでバックプレッシャーが発生し、推論オペレーターがボトルネックになる可能性があります。深刻なレート制限は、オペレーターのタイムアウトやジョブの再起動を引き起こす可能性があります。

構文

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

WITH パラメーター

一般的なパラメーター

パラメーター

説明

タイプ

必須

デフォルト

注意

provider

モデルサービスのタイプ。

String

はい

なし

値は triton である必要があります。

endpoint

Triton サーバーの HTTP エンドポイント。

String

はい

なし

Realtime Compute for Apache Flink のワークスペースと Triton サービス間のネットワーク接続を確保する必要があります。詳細については、「ネットワーク接続オプション」をご参照ください。PAI-EAS を使用して Triton サービスをデプロイする場合、PAI コンソールのモデル推論サービスページのサービス呼び出し情報からエンドポイントを取得できます。

model-name

Triton サーバー上のモデルの名前。

String

はい

なし

この名前は、Triton モデルリポジトリ内のモデル名と一致する必要があります。

model-version

Triton モデルのバージョン。

String

いいえ

latest

1 のようにバージョンを指定できます。

timeout

HTTP リクエストのタイムアウト。

Duration

いいえ

30s

このタイムアウトは、接続、読み取り、書き込み操作に適用されます。値は 10s30000ms のような期間形式で指定できます。

flatten-batch-dim

配列入力のバッチ次元をフラット化するかどうか。

Boolean

いいえ

false

デフォルトでは、配列入力のシェイプは [1, N] です。このパラメーターを true に設定すると、シェイプは [N] になります。Triton モデルが 1 次元の入力を想定している場合に使用します。

priority

リクエストの優先度。

Integer

いいえ

なし

値の有効範囲は 0 から 255 です。値が大きいほど優先度が高くなります。この値は Triton のリクエストパラメーターに渡されます。

compression

リクエストボディの圧縮アルゴリズム。

String

いいえ

なし

現在、gzip のみがサポートされます。

auth-token

Triton モデルの認証トークン。

String

いいえ

なし

このパラメーターを設定すると、リクエストに Authorization: Bearer <auth-token> ヘッダーが追加されます。PAI-EAS を使用して Triton サービスをデプロイする場合、PAI コンソールのモデル推論サービスページのサービス呼び出し情報からトークンを取得できます。

custom-headers

カスタム HTTP リクエストヘッダー。

Map

いいえ

なし

例:'X-Trace-Id:abc,Authorization:token'。

ステートフルモデルのパラメーター

以下のパラメーターは、RNN や LSTM など、複数のリクエストにまたがって状態を維持する必要がある Triton のステートフルモデルに適用されます。

パラメーター

説明

タイプ

必須

デフォルト

注意

sequence-id

シーケンス ID。

String

いいえ

なし

Triton は、同じシーケンス ID を持つリクエストを同じモデルインスタンスにルーティングします。

sequence-start

現在のリクエストをシーケンスの開始としてマークするかどうかを指定します。

Boolean

いいえ

false

true に設定すると、Triton はこのリクエストを処理する前にモデルの状態を初期化します。

sequence-end

現在のリクエストをシーケンスの終了としてマークするかどうかを指定します。

Boolean

いいえ

false

true に設定すると、Triton はこのリクエストの処理後にモデルの状態を解放します。

型マッピング

Flink の入力および出力列のデータ型は、Triton サーバー上のモデルの config.pbtxt ファイルで宣言されている data_type と一致する必要があります。

Flink の型

Triton の dtype

説明

BOOLEAN

BOOL

ブール型。

TINYINT

INT8

8 ビット符号付き整数。

SMALLINT

INT16

16 ビット符号付き整数。

INT

INT32

32 ビット符号付き整数。

BIGINT

INT64

64 ビット符号付き整数。

FLOAT

FP32

32 ビット浮動小数点数。

DOUBLE

FP64

64 ビット浮動小数点数。

STRING / VARCHAR

BYTES

テキスト型。

ARRAY<T>

要素の型 T に対応します。

1 次元配列のみサポートされます。T は、上記のいずれかのスカラー型である必要があります。

シェイプルール:

  • スカラー入力のシェイプは [1] です。

  • ARRAY<T> 入力のデフォルトのシェイプは [1, N] です。ここで、N は配列の長さです。Triton モデルが [N] のシェイプを想定している場合は、'flatten-batch-dim' = 'true' を設定してください。

よくある質問

PAI-EAS のエンドポイントとトークンの検索

  1. Platform for AI (PAI) コンソールにログインします。

  2. ナビゲーションペインで、[Elastic Algorithm Service (EAS)] > [Inference Service] を選択し、対象のサービス名をクリックして [Overview] ページを開きます。

  3. [Basic Information] セクションで、[View Invocation Information] をクリックします。

  4. [Invocation Information] パネルで、エンドポイントとトークンをコピーします。

シェイプの不一致エラーの解決

Flink の入力列の型が、Triton サーバー上のモデルの config.pbtxt ファイルで指定されている dims と一致していることを確認してください。ARRAY<T> 入力の場合、Flink はデフォルトで [1, N] のシェイプを送信します。モデル設定が [N] のシェイプを想定している場合は、次のパラメーターを設定してください:

'flatten-batch-dim' = 'true'

入れ子配列はサポートされません。モデルが高次元のテンソルを想定している場合は、テンソルを 1 次元の ARRAY<T> にフラット化し、モデル側でそのシェイプを復元することを推奨します。

複数入力または複数出力のサポート

この機能は、単一の入力列と単一の出力列のみをサポートします。複数の入力を持つモデルの場合は、複数の数値特徴量を単一の ARRAY<T> にパックするか、複雑な構造を JSON 文字列にシリアル化し、モデル側で解析することができます。複数の出力を持つモデルの場合は、それらを単一の出力テンソルまたは JSON 文字列にモデル側でマージしてください。