このトピックでは、`AI_EMBED` 関数を使用して大規模 AI モデルからベクターを生成する方法について説明します。
制限事項
この機能には、Ververica Runtime (VVR) 11.4 以降が必要です。
`AI_EMBED` 文の Flink 演算子のスループットは、Alibaba Cloud Model Studio のレート制限の影響を受けます。これらの制限を超えると、Flink ジョブでバックプレッシャーが発生し、演算子がボトルネックになる可能性があります。深刻な場合、演算子のタイムアウトやジョブの再起動につながる可能性があります。
構文
AI_EMBED(
MODEL => MODEL <MODEL NAME>,
INPUT => <INPUT COLUMN NAME>
[, DIMENSION => <DIMENSION VALUE>]
)パラメーター
パラメーター | タイプ | 説明 |
MODEL <MODEL NAME> | MODEL | 登録済みのモデルサービスの名前。詳細については、「モデル設定」をご参照ください。 注意: 現在、このモデルの出力型は |
<INPUT COLUMN NAME> | STRING | モデルが分析するソーステキスト。 |
<DIMENSION VALUE> | INTEGER | 任意。出力ベクターのディメンション。デフォルトは 1024 です。ご利用のモデルが 1024 ディメンションをサポートしていない場合は、サポートされている値を代わりに指定してください。`AI_EMBED` の `DIMENSION` 値は、`CREATE MODEL` 文で設定された値をオーバーライドします。 `AI_EMBED` 関数は常に `DIMENSION` パラメーターを渡します。ご利用のモデルがこのパラメーターをサポートしていない場合は、代わりに `ML_PREDICT` 関数を使用してください。 |
出力
パラメーター | タイプ | 説明 |
embedding | ARRAY<FLOAT> | 生成されたベクター。そのディメンションは `DIMENSION` パラメーターによって決定され、パラメーターが省略された場合はデフォルトで 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, ...] |