このドキュメントでは、Flink SQL で AI モデルを登録、クエリ、変更、削除するためのデータ定義言語 (DDL) ステートメントについて説明します。
使用上の注意
VVR 11.7 以降でのみサポートされています。Flink AI Service (組み込みモデル) を有効化する必要があります。
モデルの登録
マスターアカウントでターゲットリージョンで Flink AI Service を有効化すると、組み込みモデルモードでモデルを作成できます。
CREATE TEMPORARY MODEL my_llm
INPUT (prompt String COMMENT '入力プロンプト')
OUTPUT (response String COMMENT 'モデルの出力')
WITH (
'provider' = 'dashscope',
'task' = 'chat/completions',
'model' = 'qwen3.5-flash'
);
-
endpointパラメーターは不要です。システムが自動的に適切なサービスエンドポイントを選択します。 api-keyパラメーターは不要です。認証は Flink マネージド API キーを使用して行われます。-
taskパラメーターは、モデルのタスクタイプを宣言するのに必須です。
WITH パラメーター
全般
|
パラメーター |
説明 |
データ型 |
必須 |
デフォルト値 |
備考 |
|
provider |
モデルサービスのタイプです。 |
文字列 |
はい |
なし |
有効な値:
|
|
task |
モデルのタスクタイプです。 |
文字列 |
はい |
なし |
有効な値: |
|
model |
呼び出す特定のモデルです。 |
文字列 |
はい |
なし |
タスクタイプに基づいてモデルを選択します。詳細については、「組み込みモデルリスト」をご参照ください。 |
|
max-context-size |
単一リクエストの最大コンテキストサイズです。 |
int |
いいえ |
なし |
コンテキストが最大容量を超えると、 |
|
context-overflow-action |
リクエストのコンテキストが最大容量を超えた場合に実行するアクションです。 |
文字列 |
いいえ |
|
有効な値:
|
|
error-handling-strategy |
モデルリクエストのエラーを処理するためのストラテジーです。 |
文字列 |
いいえ |
retry |
有効な値:
|
|
retry-num |
リトライ回数です。 |
int |
いいえ |
100 |
|
|
retry-fallback-strategy |
最大リトライ回数に達した後に使用するフォールバックストラテジーです。 |
文字列 |
いいえ |
failover |
有効な値:
|
|
retry-backoff-strategy |
リトライバックオフストラテジーです。リトライ間のインターバルを計算する方法を定義します。 |
文字列 |
いいえ |
fixed |
有効な値:
|
|
retry-backoff-base-interval |
リトライバックオフのベースタイムインターバルです。 |
Duration |
いいえ |
1 s |
- |
|
content-type |
入力データのコンテンツタイプです。Chat/Completions および Multimodal-Embedding タスクに適用されます。 |
文字列 |
いいえ |
text |
|
|
content-types |
マルチモーダルモデルの入力列のコンテンツタイプです。Chat/Completions および Multimodal-Embedding タスクに適用されます。 |
文字列 |
いいえ |
なし |
説明
VVR 11.8 以降でのみサポートしています。詳細については、「一般的な呼び出し」をご参照ください。 |
chat/completions
テキスト生成タスクでは chat/completions を使用します。次のパラメーターがサポートされています:
|
パラメーター |
説明 |
データ型 |
必須 |
デフォルト値 |
備考 |
|
system-prompt |
リクエストのシステムプロンプトです。 |
文字列 |
いいえ |
"You are a helpful assistant." |
空の文字列がサポートされています。 |
|
temperature |
各候補トークンの確率分布の滑らかさを制御します。 |
浮動小数点数 |
いいえ |
なし |
有効範囲: [0, 2)。値 0 は推奨されず、実用的な意味はありません。 temperature が高いほど確率分布が平坦になり、確率の低いトークンが選択されやすくなるため、出力がより多様になります。temperature が低いほど分布が急になり、確率の高いトークンが選択されやすくなるため、出力がより決定的になります。 |
|
top-p |
ニュークリアスサンプリングの確率のしきい値です。 |
浮動小数点数 |
いいえ |
なし |
値が高いほどランダム性が高まり、低いほど決定性が高まります。 |
|
stop |
停止シーケンスです。 |
文字列 |
いいえ |
なし |
指定された文字列が生成される直前に、モデルはコンテンツの生成を停止します。 |
|
max-tokens |
モデルが生成できるトークンの最大数です。 |
整数 |
いいえ |
なし |
モデルの仕様によって制限されます。 |
|
presence-penalty |
トークンの繰り返しを制御します。 |
浮動小数点数 |
いいえ |
なし |
有効範囲: -2.0 から 2.0。正の値は、テキスト内に既出のトークンにペナルティを課し、モデルが新しいトピックについて話す可能性を高めます。 |
|
n |
各入力に対して生成する出力の数です。 |
整数 |
いいえ |
なし |
- |
|
seed |
モデルの応答生成用の乱数シードです。 |
整数 |
いいえ |
なし |
指定された場合、モデルプラットフォームは決定的サンプリングを試みます。そのため、同じシードとパラメーターでリクエストを繰り返した場合、可能な限り同じ結果が返されます。 |
|
response-format |
戻り値のフォーマットです。 |
文字列 |
いいえ |
text |
有効な値:
|
|
extra-body |
リクエストの追加の HTTP ボディです。 |
文字列 |
いいえ |
なし |
JSON 形式の文字列である必要があります。詳細については、「extra-body の説明」をご参照ください。 |
|
user-prompt |
リクエストのユーザープロンプトです。 |
文字列 |
いいえ |
なし |
system-prompt に似ていますが、ユーザーロールとして送信されます。 |
埋め込み
テキスト埋め込みタスクは、次のパラメーターをサポートしています:
|
パラメーター |
説明 |
データ型 |
必須 |
デフォルト値 |
備考 |
|
dimension |
出力ベクトルのディメンションです。 |
整数 |
いいえ |
なし |
サポートされているディメンションは、特定のモデルに依存します。一般的な値は 1024、768、512 です。 |
multimodal-embedding
マルチモーダル埋め込みタスクでは、multimodal-embedding を使用して、テキスト、画像、またはテキストと画像が混在する入力をベクトルに変換します。次のパラメーターをサポートしています。
|
パラメーター |
説明 |
データ型 |
必須 |
デフォルト値 |
備考 |
|
|
出力ベクトルのディメンション。 |
文字列 |
いいえ |
なし |
サポートされるディメンションは、モデルによって異なります。一般的な値は 1024、768、512 です。 |
例 1:画像のみ
CREATE TEMPORARY MODEL multimodal_embedding_model
INPUT (`input` STRING)
OUTPUT (`content` ARRAY<FLOAT>)
WITH (
'provider' = 'dashscope',
'task' = 'multimodal-embedding',
'model' = 'qwen3-vl-embedding',
'dimension' = '512',
'content-type' = 'image_url'
);
例 2:テキストと画像
テキストと画像の融合は、「マルチモーダル融合ベクトル」で説明されているとおり、enable_fusion によって融合機能が有効になっているモデルにのみ適用されます。 Flink は、モデルの入力列数に基づいて融合を有効にするかどうかを判断します。追加のパラメーターは不要です。
CREATE TEMPORARY MODEL fusion_embedding_model
INPUT (text_input STRING, image_input STRING)
OUTPUT (embedding ARRAY<FLOAT>)
WITH (
'provider' = 'dashscope',
'task' = 'multimodal-embedding',
'model' = 'qwen3-vl-embedding',
'dimension' = '512',
'content-types' = 'text;image_url'
);
extra-body の説明
extra-body の値は、モデルのリクエストボディに追加パラメーターを指定するための JSON 形式の文字列です。利用可能なパラメーターは、モデルサービスプロバイダーによって異なります。以下は、Alibaba Cloud Model Studio でサポートされている一般的なパラメーターです (これらに限定されません):
|
パラメーター |
型 |
説明 |
|
|
整数 |
サンプリング候補セットのサイズです。値が大きいほど、ランダム性が高まります。詳細については、「リクエストボディ」をご参照ください。 |
|
|
ブール値 |
ディープシンキングモードを有効にするかどうかを指定します (思考をサポートする Qwen3 などのモデルに適用されます)。詳細については、「ディープシンキング」をご参照ください。 |
|
|
整数 |
思考プロセスの最大トークン長です。 |
|
|
オブジェクト |
翻訳モデルのパラメーターです。詳細については、「翻訳機能」をご参照ください。 |
|
|
ブール値 |
インターネット検索の結果を回答生成に利用するかどうかを指定します。デフォルトは |
|
|
オブジェクト |
Web 検索戦略の設定です。 |
例
CREATE MODEL my_model
USING openai_compatible
WITH (
'provider' = 'openai-compat',
'model' = 'qwen3.5-flash',
'task' = 'chat/completions',
'extra-body' = '{"enable_thinking": true, "thinking_budget": 4096}'
);
モデルのクエリ
データクエリ エディターで、次のいずれかのコマンドを実行します。
-
登録済みモデルの名前を一覧表示:
SHOW MODELS [ ( FROM | IN ) [catalog_name.]database_name ]; -
モデルの作成に使用したステートメントを表示:
SHOW CREATE MODEL [catalog_name.][db_name.]model_name; -
モデルの入力および出力スキーマを表示:
DESCRIBE MODEL [catalog_name.][db_name.]model_name;
例
SHOW MODELS;
-- 結果
--+------------+
--| model name |
--+------------+
--| m |
--+------------+
DESCRIBE MODEL m;
-- 結果
-- +---------+--------+------+----------+
-- | name | type | null | is input |
-- +---------+--------+------+----------+
-- | content | String | TRUE | TRUE |
-- | label | BIGINT | TRUE | FALSE |
-- +---------+--------+------+----------+
モデルの変更
データクエリエディターで、次のコマンドを実行します。
ALTER MODEL [IF EXISTS] [catalog_name.][db_name.]model_name {
RENAME TO new_model_name
SET (key1=val1, ...)
RESET (key1, ...)
}
例
-
登録済みモデルの名前を変更:
ALTER MODEL m RENAME TO m1; -- モデルの名前を m1 に変更します。 -
モデルパラメーターを変更:
ALTER MODEL m SET ('endpoint' = '<Your_Endpoint>'); -- エンドポイントパスを調整します。 -
モデルパラメーターをデフォルト値にリセット:
ALTER MODEL m RESET ('endpoint'); -- エンドポイントパスをリセットします。
モデルの削除
データクエリエディターで、次のコマンドを実行します。
DROP [TEMPORARY] MODEL [IF EXISTS] [catalog_name.][db_name.]model_name
例
DROP MODEL m;