AI_SIMILARITY é uma função de IA do MaxCompute que chama um modelo para medir a similaridade semântica entre dois textos. A função retorna um número de ponto flutuante entre 0 e 1. Quanto maior o valor, maior a similaridade semântica.
Sintaxe
FLOAT AI_SIMILARITY(
STRING <model_name>,
STRING <version_name>,
STRING <input1>,
STRING <input2>
[, STRING <model_parameters>]
);
Parâmetros
model_name: Obrigatório. STRING. Nome do modelo a ser usado. Para mais informações, consulte SQL AI functions.
version_name: Obrigatório. STRING. Nome da versão do modelo a ser usada. Para chamar a versão padrão, especifique
DEFAULT_VERSION.input1: Obrigatório. STRING. Primeiro texto para comparação de similaridade semântica.
input2: Obrigatório. STRING. Segundo texto para comparação de similaridade semântica.
-
model_parameters: Opcional. STRING. Especifique parâmetros do modelo como
max_tokens,temperatureetop_p. O formato é uma string JSON:'{"max_tokens": 500, "temperature": 0.6, "top_p": 0.95}'.max_tokens: Número máximo de tokens gerados em uma única chamada ao modelo. Para modelos públicos do MaxCompute, o valor padrão é 4.096.
temperature: Valor entre 0 e 1 que controla a aleatoriedade da saída. Valores mais altos geram resultados mais criativos e variados; valores menores produzem saídas mais determinísticas e conservadoras.
top_p: Valor entre 0 e 1 que limita o intervalo de rótulos candidatos disponíveis para o modelo. Valores mais altos ampliam a diversidade das opções; valores menores restringem o escopo e geram resultados mais focados.
Valor retornado
Retorna um valor FLOAT entre 0 e 1 que representa a pontuação de similaridade dos dois textos de entrada. Os valores de retorno são descritos da seguinte forma:
Uma pontuação de 1,0 indica que os dois textos são idênticos. Uma pontuação de 0,0 indica que não há relação entre eles.
Se input1 ou input2 for NULL, a função retorna NULL.
Se input1 ou input2 não for STRING, a função retorna um erro.
Exemplos
Exemplo 1: Comparar a similaridade de dois textos
Chame o modelo público qwen3.7-max fornecido pelo MaxCompute para calcular a similaridade semântica entre dois trechos sobre o MaxCompute.
SET odps.namespace.schema=true;
SELECT AI_SIMILARITY(
bigdata_public_modelset.default.`qwen3.7-max`,
DEFAULT_VERSION,
'MaxCompute is a big data computing platform.',
'MaxCompute provides large-scale data processing capabilities.'
) AS similarity_score;
-- Result
+------------------+
| similarity_score |
+------------------+
| 0.75 |
+------------------+
Exemplo 2: Comparar e classificar vários pares de textos por similaridade
Chame o modelo público deepseek-v4-pro fornecido pelo MaxCompute para comparar vários pares de textos e classificá-los em ordem decrescente de similaridade. Este método é adequado para identificar os pares de textos com maior relevância semântica em um conjunto de dados.
-- Sample data
CREATE TABLE text_pairs (
text1 STRING,
text2 STRING
);
INSERT INTO text_pairs VALUES
('Cloud computing supports scalable infrastructure.', 'Enterprises can flexibly scale IT resources using cloud services.'),
('The weather is sunny today.', 'Machine learning algorithms require large datasets.'),
('A data warehouse stores historical data for analysis.', 'A data warehouse provides analytical processing capabilities for large-scale data.'),
('I like to read books.', 'Reading is my favorite hobby.');
-- Compare the semantic similarity of multiple text pairs
SET odps.namespace.schema=true;
SELECT
text1,
text2,
AI_SIMILARITY(
bigdata_public_modelset.default.`deepseek-v4-pro`,
DEFAULT_VERSION,
text1,
text2
) AS similarity_score
FROM text_pairs
ORDER BY similarity_score DESC;
-- Result:
+----------------------------------------------------+--------------------------------------------------------------------------+------------------+
| text1 | text2 | similarity_score |
+----------------------------------------------------+--------------------------------------------------------------------------+------------------+
| A data warehouse stores historical data for analysis. | A data warehouse provides analytical processing capabilities for large-scale data. | 0.92 |
| I like to read books. | Reading is my favorite hobby. | 0.88 |
| Cloud computing supports scalable infrastructure. | Enterprises can flexibly scale IT resources using cloud services. | 0.82 |
| The weather is sunny today. | Machine learning algorithms require large datasets. | 0.05 |
+----------------------------------------------------+--------------------------------------------------------------------------+------------------+
Perguntas frequentes
Resolver problemas comuns com modelos públicos
Sintoma: Ao chamar um modelo público compatível com o service de computação de modelos, você recebe a seguinte mensagem de erro.
FAILED: ODPS-0130071:[1,8] Semantic analysis exception - inference quota status check failed, error message: region cn-shanghai not found in inference quota
Causa: O service de computação de modelos não está ativado na região onde o projeto atual está localizado, como cn-shanghai. Por isso, não é possível chamar recursos de inferência de IA.
Solução: Acesse o Alibaba Cloud Management Console e ative o service de computação de modelos na região onde seu projeto está localizado. Para mais informações, consulte Purchase and use the MaxCompute model computing service.