このトピックでは、AI_EMBED を使用して大規模 AI モデルでベクターを生成する方法について説明します。
制限事項
この機能には、Ververica Runtime (VVR) 11.4 以降が必要です。
AI_EMBED 文の Flink オペレーターのスループットは、モデルプラットフォームのトラフィックの速度制限によって制限されます。アクセスするトラフィックがプラットフォームの上限に達すると、Flink ジョブでバックプレッシャーが発生し、オペレーターがボトルネックになります。深刻な速度制限は、オペレーターのタイムアウトやジョブの再起動を引き起こす可能性があります。
構文
AI_EMBED(
MODEL => MODEL <MODEL NAME>,
INPUT => <INPUT COLUMN NAME>
)入力パラメーター
パラメーター | データ型 | 説明 |
MODEL <MODEL NAME> | MODEL | 登録済みのモデルサービスの名前。モデルサービスを登録する方法については、「モデル設定」をご参照ください。 注:モデルの出力タイプは |
<INPUT COLUMN NAME> | STRING | モデルが分析するソーステキスト。 |
出力
パラメーター | データ型 | 説明 |
embedding | ARRAY<FLOAT> | 生成された 1024 次元のベクター。 |
例
テストデータ
id | content |
1 | Flink |
テスト文
この SQL の例では、text-embedding-v3 モデルを作成し、AI_EMBED を使用してベクターを生成します。
CREATE TEMPORARY MODEL embedding_model
INPUT (`input` STRING)
OUTPUT (`embedding` ARRAY<FLOAT>)
WITH (
'provider' = 'openai-compat',
'endpoint'='<YOUR ENDPOINT>',
'apiKey' = '<YOUR KEY>',
'model' = 'text-embedding-v3',
'dimension' = '1024'
);
CREATE TEMPORARY VIEW infos(id, content)
AS VALUES (1, 'Flink');
-- 位置引数を使用して AI_EMBED を呼び出します
SELECT id, embedding
FROM infos,
LATERAL TABLE(
AI_EMBED(
MODEL embedding_model,
content
));
-- 名前付き引数を使用して AI_EMBED を呼び出します
SELECT id, embedding
FROM infos,
LATERAL TABLE(
AI_EMBED(
MODEL => MODEL embedding_model,
INPUT => content
)); 出力
id | embedding |
1 | [-0.13219477, 0.054332353, -0.033010617, -0.0039787884, ...] |