全部產品
Search
文件中心

Realtime Compute for Apache Flink:Triton推理服務調用

更新時間:May 21, 2026

本文為您介紹如何在Flink作業中註冊NVIDIA Triton Inference Server上部署的模型。

背景說明

Realtime Compute Flink 版從 VVR 引擎 11.7 起支援通過 CREATE MODEL 註冊 NVIDIA Triton Inference Server 上部署的模型,並在 SQL 作業中通過 ML_PREDICT 對即時資料流進行模型推理。

Triton Inference Server 是 NVIDIA 開源的高效能推理服務,支援 TensorFlow、PyTorch、ONNX、TensorRT 等多種模型架構。您可以使用自建 Triton 服務,也可以通過人工智慧平台 PAI 的模型線上服務 EAS 部署 Triton 服務。PAI-EAS 上的 Triton 部署方法請參見 Triton Inference Server鏡像部署

使用須知

  • 僅Realtime Compute引擎 VVR 11.7 及以上版本支援。

  • 調用外部部署的 NVIDIA Triton Inference Server 時,請求通過公網傳輸,需提前開通公網訪問

  • 若 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' = '<接入地址>',
  'auth-token' = '<鑒權token>'
  'model-name' = '<模型名稱>',
  'model-version' = '<模型版本>'
);

WITH 參數

通用參數

參數

說明

資料類型

是否必填

預設值

備忘

provider

模型服務類型。

String

使用 Triton 時固定為 triton。

endpoint

Triton Inference Server 的 HTTP 接入地址。

String

您應確保Realtime Compute Flink 版工作空間與 Triton 服務網路互連,詳情請參見網路連接選型。如果您通過 PAI-EAS 部署 Triton 服務,可在 PAI 控制台的模型線上服務頁面查看服務調用資訊,擷取接入地址。

model-name

Triton 上要調用的模型名稱。

String

需與 Triton 模型倉庫中的模型名稱一致。

model-version

Triton 模型版本。

String

latest

可填寫具體版本號碼,例如 1。

timeout

單次 HTTP 要求逾時時間。

Duration

30s

同時作用於串連、讀和寫逾時。可填寫 10s、30000ms 等 Duration 格式。

flatten-batch-dim

是否展平數組輸入的 batch 維度。

Boolean

false

預設數組輸入 shape 為 [1, N];設為 true 後為 [N]。當 Triton 模型期望一維輸入時使用。

priority

請求優先順序。

Integer

取值範圍為 0 到 255。值越大表示優先順序越高,透傳到 Triton 請求參數。

compression

請求體壓縮演算法。

String

當前支援 gzip。

auth-token

Triton 模型鑒權 Token。

String

配置後請求會增加 Authorization: Bearer <auth-token> 要求標頭。如果您通過 PAI-EAS 部署 Triton 服務,可在 PAI 控制台的模型線上服務頁面查看服務調用資訊,擷取 Token。

custom-headers

自訂 HTTP 要求頭。

Map

格式樣本:'X-Trace-Id:abc,Authorization:token'。

Stateful 模型參數

以下參數適用於 RNN/LSTM 等需要在多次請求之間維持狀態的 Triton Stateful Models。

參數

說明

資料類型

是否必填

預設值

備忘

sequence-id

序列 ID。

String

同一序列的請求會被 Triton 路由到同一模型執行個體。

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 對應

僅支援一維數組,T 必須為上述標量類型之一。

Shape 規則:

  • 標量輸入的 shape 為 [1]。

  • ARRAY<T> 輸入的預設 shape 為 [1, N],其中 N 為數組長度;如果 Triton 模型期望 [N],可設定 'flatten-batch-dim' = 'true'。

常見問題

我的 Triton 服務部署在人工智慧平台 PAI,如何擷取接入地址和 token?

  1. 登入人工智慧平台PAI控制台

  2. 在左側導覽列選擇模型線上服務(EAS) > 推理服務,單擊目標服務名稱進入概覽頁面。

  3. 基本資料地區,單擊查看調用資訊

  4. 調用資訊面板,複製調用地址和Token。

報 shape mismatch 應如何處理?

請檢查 Flink 輸入列類型與 Triton config.pbtxt 中的 dims 是否匹配。對於 ARRAY<T> 輸入,Flink 預設發送 shape [1, N]。如果模型配置中期望 [N],請設定:

'flatten-batch-dim' = 'true'

當前不支援嵌套 ARRAY。如果模型期望高維張量,建議將張量展平成一維 ARRAY<T>,並在模型側還原 shape。

是否支援多輸入或多輸出模型?

模型僅支援一個輸入列和一個輸出資料行。對於多輸入模型,可將多個數值特徵打包為一個 ARRAY<T>,或將複雜結構序列化為 JSON STRING 後在 Triton 模型側解析。對於多輸出模型,建議在模型側合并為一個輸出張量或一個 JSON 字串。