NormalizeEmbedding

Normaliza um vetor de incorporação. Se especificado, o parâmetro de dimensão reduz o número de dimensões vetoriais a serem usadas antes da normalização.

Formato

NormalizeEmbedding ( data { ; dimension } )

Parâmetros

dados - qualquer expressão de texto, campo de texto ou campo de container que contenha um vetor de incorporação.

dimensão - o número de dimensões vetoriais a serem usadas para normalização. Se omitido, ou se o valor for maior que o tamanho real da dimensão do vetor ou menor ou igual a 0, todo o tamanho da dimensão do vetor será usado no cálculo.

Os parâmetros entre chaves { } são opcionais.

Tipo de dados retornado

texto, container

Originada na versão

22.0

Descrição

Essa função retorna uma versão normalizada do vetor de incorporação de entrada. Normalizar um vetor significa dimensionar seus valores para que seu comprimento (magnitude) se torne 1. Essa é muitas vezes uma etapa necessária antes de realizar cálculos como similaridade por cosseno, porque garante que a medida de similaridade seja baseada apenas na direção dos vetores, não em sua magnitude.

Se o parâmetro dados for texto, ele deve estar na forma de uma matriz JSON contendo números de ponto flutuante — por exemplo, [-0,1, 0,5, ...]. Normalmente, o uso de vetores de incorporação como dados de container binário melhora o desempenho.

O parâmetro dimensão permite normalizar o vetor com base apenas em um número especificado de suas dimensões iniciais. Se dimensão for especificado, a função calculará a magnitude usando apenas os primeiros elementos de "dimensão" e, em seguida, dimensionará o todo o vetor original com base nessa magnitude. O vetor retornado tem o mesmo número de dimensões que o vetor de entrada, a menos que o parâmetro dimensão seja usado para truncar o vetor antes da normalização.

Notas

  • A maioria dos modelos de incorporação gera vetores de incorporação que já estão normalizados (comprimento unitário). Nesses casos, não é necessário chamar NormalizeEmbedding para esses vetores; basta retornar o vetor original. Normalmente, você precisa usar essa função apenas se estiver trabalhando com vetores de incorporação gerados por um modelo que não produz vetores normalizados, ou se precisar normalizar especificamente com base em um subconjunto das dimensões do vetor.

  • Usar o parâmetro opcional dimensão pode ser útil se você quiser trabalhar com uma representação menor e de tamanho fixo de um vetor maior, mantendo a comparabilidade com base nas dimensões iniciais.

Exemplo 1

NormalizeEmbedding ( "[3, 4]" ) retorna [0,5999999999999999778, 0,80000000000000004441] que, para fins ilustrativos, é aproximadamente [0,6, 0,8]. O vetor original [3, 4] tem um comprimento de Sqrt(3^2 + 4^2) = 5. O vetor normalizado [0,6, 0,8] tem um comprimento de Sqrt(0,6^2 + 0,8^2) = 1.

Exemplo 2

NormalizeEmbedding ( Table::EmbeddingData; 256 ) retorna um novo vetor contendo apenas as primeiras 256 dimensões do vetor original, normalizado para que seu comprimento seja 1. O vetor de incorporação é armazenado em um campo de container chamado Table::EmbeddingData. Isso é útil se o seu modelo de incorporação produzir vetores grandes, mas você só deseja usar um número menor e fixo de dimensões para seus cálculos de similaridade por cosseno e precisar que essas dimensões sejam normalizadas.