Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a: SQL Server 2025 (17.x)
Base de datos SQL de Azure SQL Database
deAzure SQL Managed Instance
en Microsoft Fabric
Use VECTOR_NORMALIZE para tomar un vector como entrada y devolver el vector normalizado, que es un vector escalado para tener una longitud de 1 en un tipo de norma determinado.
Esta normalización es fundamental en varias aplicaciones de inteligencia artificial en las que los vectores representan diferentes formas de datos, como contenido visual, información textual o señales de audio. Al normalizar vectores, garantizamos la uniformidad en su escala, lo que resulta especialmente útil para las operaciones que dependen de medir distancias vectoriales o para agrupar y distinguir puntos de datos.
Aunque los modelos de Azure OpenAI proporcionan vectores normalizados, hay otros modelos y marcos en los que los vectores no se normalizan automáticamente. Por ejemplo, en la biblioteca gensim, que se usa normalmente para las tareas de procesamiento de lenguaje natural, los vectores no siempre se normalizan de forma predeterminada.
A menudo, los usuarios necesitan normalizar los vectores manualmente o usar funciones específicas proporcionadas por la biblioteca para asegurarse de que los vectores tienen una longitud de unidad.
En general, con modelos de aprendizaje automático o incrustaciones de vectores, es importante comprobar la documentación o la salida del modelo para determinar si los vectores están normalizados. Si la normalización es necesaria para la aplicación, es posible que tenga que implementarla como un paso independiente si el modelo no proporciona vectores normalizados de forma predeterminada.
Por ejemplo, si desea un vector normalizado mediante la norma euclidiana (que es el tipo de norma más común), puede usar:
SELECT VECTOR_NORMALIZE ( vector, 'norm2' )
FROM ...
Note
VECTOR_NORMALIZEestá disponible en Instancia administrada de Azure SQL con la directiva de actualización de sql Server 2025 o Always-up-to-date.
Syntax
Convenciones de sintaxis de Transact-SQL
VECTOR_NORMALIZE ( vector , norm_type )
Arguments
vector
Expresión que se evalúa como el tipo de datos vectorial .
norm_type
Cadena con el nombre del tipo de norma que se va a usar para calcular la norma del vector especificado. Se admiten los siguientes tipos de normas:
-
norm11-norm: , que es la suma de los valores absolutos de los componentes vectoriales. -
norm2- ,2-normtambién conocido como la norma euclidiana, que es la raíz cuadrada de la suma de los cuadrados de los componentes vectoriales. -
norminf- La norma infinity, que es el máximo de los valores absolutos de los componentes vectoriales.
Valor devuelto
El resultado es un vector con la misma dirección que el vector de entrada, pero con una longitud de 1 según la norma especificada.
Si la entrada es NULL, el resultado devuelto también NULLes .
Se devuelve un error si norm_type no es un tipo de norma válido y si el vector no es del tipo de datos vectorial .
Examples
Ejemplo 1
Normalizar un vector:
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;
Ejemplo 2
DECLARE @v AS VECTOR(3) = '[1, 2, 3]';
SELECT VECTOR_NORMALIZE(@v, 'norm1'),
VECTOR_NORMALIZE(@v, 'norminf');