Este tópico descreve como usar AI_EMBED para gerar representações vetoriais de textos.
Limitações
Este recurso exige o Ververica Runtime (VVR) 11.4 ou posterior.
Para utilizar o Flink AI service (modelos integrados), é necessário ter o VVR 11.7 ou posterior e ativar o Flink AI service. Para mais detalhes, consulte Flink AI service (built-in models).
O throughput dos operadores
AI_EMBEDestá sujeito aos rate limits do Alibaba Cloud Model Studio. Ao atingir os limites de taxa de um modelo, o job do Flink sofrerá backpressure, tendo os operadoresAI_EMBEDcomo gargalo. Em alguns casos, isso pode causar erros de timeout e reinicialização do job.
Sintaxe
AI_EMBED(
MODEL => MODEL <MODEL NAME>,
INPUT => <INPUT COLUMN NAME>
)
Entrada
|
Parâmetro |
Tipo de dados |
Descrição |
|
MODEL <MODEL NAME> |
MODEL |
Nome do registered model. Observação: O tipo de saída do modelo deve ser |
|
<INPUT COLUMN NAME> |
STRING |
Texto de source que o modelo analisará. |
|
<DIMENSION VALUE> |
INTEGER |
Opcional. Defina a dimensão do vetor de saída, com valor padrão de 1024. Caso seu modelo não suporte 1024 dimensões, especifique um valor compatível. O valor DIMENSION em AI_EMBED substitui aquele definido na instrução CREATE MODEL. A função AI_EMBED sempre transmite o parâmetro DIMENSION. Se o modelo não aceitar esse parâmetro, utilize ML_PREDICT. |
Resultado
|
Parâmetro |
Tipo de dados |
Descrição |
|
embedding |
ARRAY<FLOAT> |
Vetor gerado cuja dimensão segue o parâmetro DIMENSION. Assume 1024 quando o parâmetro é omitido. |
Exemplo
Dados de teste
|
id |
content |
|
1 |
Flink |
Instrução de teste
Este exemplo SQL referencia um modelo de embedding integrado do Flink e emprega AI_EMBED para gerar vetores.
CREATE TEMPORARY MODEL embedding_model
INPUT (`input` STRING)
OUTPUT (`embedding` ARRAY<FLOAT>)
WITH (
'provider' = 'openai-compat',
'task' = 'embeddings',
'model' = 'text-embedding-v4',
'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
));
Saídas
|
id |
embedding |
|
1 |
[-0.13219477, 0.054332353, -0.033010617, -0.0039787884, ...] |