Partilhar via


VETOR_NORMALIZE (Transact-SQL)

Aplica-se a: SQL Server 2025 (17.x) Azure SQL Database AzureSQL Managed InstanceSQL database in Microsoft Fabric

Use VECTOR_NORMALIZE para tomar um vetor como entrada e retornar o vetor normalizado, que é um vetor dimensionado para ter um comprimento de 1 em um determinado tipo de norma.

Essa padronização é crucial em várias aplicações de inteligência artificial, onde os vetores representam diferentes formas de dados, como conteúdo visual, informações textuais ou sinais de áudio. Ao normalizar vetores, garantimos a uniformidade em sua escala, o que é particularmente útil para operações que dependem da medição de distâncias vetoriais ou para agrupar e distinguir pontos de dados.

Embora os modelos do Azure OpenAI forneçam vetores normalizados, existem outros modelos e estruturas em que os vetores não são normalizados automaticamente. Por exemplo, na biblioteca Gensim, que é comumente usada para tarefas de processamento de linguagem natural, os vetores nem sempre são normalizados por padrão.

Os usuários muitas vezes precisam normalizar os vetores manualmente ou usar funções específicas fornecidas pela biblioteca para garantir que os vetores sejam de comprimento unitário.

Em geral, com modelos de aprendizado de máquina ou incorporações vetoriais, é importante verificar a documentação ou a saída do modelo para determinar se os vetores estão normalizados. Se a normalização for necessária para seu aplicativo, talvez seja necessário implementá-la como uma etapa separada se o modelo não fornecer vetores normalizados por padrão.

Por exemplo, se você quiser um vetor normalizado usando a norma euclidiana (que é o tipo de norma mais comum), você pode usar:

SELECT VECTOR_NORMALIZE ( vector, 'norm2' )
FROM ...

Note

VECTOR_NORMALIZEestá disponível na Instância Gerenciada SQL do Azure com a política de atualizaçãoSQL Server 2025 ou Always-up-to-date.

Syntax

Transact-SQL convenções de sintaxe

VECTOR_NORMALIZE ( vector , norm_type )

Arguments

vetor

Uma expressão que é avaliada como tipo de dados vetoriais .

norm_type

Uma cadeia de caracteres com o nome do tipo de norma a ser usado para calcular a norma do vetor dado. Os seguintes tipos de normas são suportados:

  • norm1 - O 1-norm, que é a soma dos valores absolutos dos componentes vetoriais.
  • norm2 - A 2-norm, também conhecida como Norma Euclidiana, que é a raiz quadrada da soma dos quadrados dos componentes vetoriais.
  • norminf - A norma do infinito, que é o máximo dos valores absolutos dos componentes vetoriais.

Valor de retorno

O resultado é um vetor com a mesma direção do vetor de entrada, mas com um comprimento de 1 de acordo com a norma dada.

Se a entrada for NULL, o resultado retornado também NULLé .

Um erro será retornado se norm_type não for um tipo de norma válido e se o vetor não for do tipo de dados vetoriais .

Examples

Exemplo 1

Normalizar um vetor:

CREATE TABLE dbo.vectors
(
    ID INT PRIMARY KEY,
    v VECTOR(3) NOT NULL
);

INSERT INTO dbo.vectors (ID, v)
VALUES (1, '[0.1, -2, 42]'),
(2, '[2, 0.1, -42]');

SELECT ID, VECTOR_NORMALIZE(v, 'norm2') AS nv
FROM dbo.vectors;

Exemplo 2

DECLARE @v AS VECTOR(3) = '[1, 2, 3]';
SELECT VECTOR_NORMALIZE(@v, 'norm1'),
       VECTOR_NORMALIZE(@v, 'norminf');