本文為您介紹如何使用AI_EMBED通過AI大模型進行向量產生。
使用限制
-
僅Realtime Compute引擎VVR 11.4及以上版本支援。
-
AI_EMBED語句相關的Flink運算元的輸送量受到模型平台限流的限制。當觸及平台允許的訪問資料傳輸量上限時,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中設定的值為準。 AI_EMBED調用時預設傳遞DIMENSION參數,若模型不支援該參數,請使用ML_PREDICT函數替代。 |
輸出
|
參數 |
資料類型 |
說明 |
|
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',
'task' = 'embeddings',
'model' = 'text-embedding-v3',
'dimension' = '1024'
);
CREATE TEMPORARY VIEW infos(id, content)
AS VALUES (1, 'Flink');
-- Use positional argument to call AI_EMBED
SELECT id, embedding
FROM infos,
LATERAL TABLE(
AI_EMBED(
MODEL embedding_model,
content
));
-- Use named argument to call 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, ...] |