Remarque
L’accès à cette page requiert une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page requiert une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à : Base de données SQL Server 2025 (17.x)
Azure SQL Database
Azure SQL Managed Instance
SQL dans Microsoft Fabric
Permet VECTOR_NORMALIZE de prendre un vecteur comme entrée et de retourner le vecteur normalisé, qui est un vecteur mis à l’échelle pour avoir une longueur de 1 dans un type de norme donné.
Cette normalisation est essentielle dans diverses applications d’intelligence artificielle où les vecteurs représentent différentes formes de données, telles que du contenu visuel, des informations textuelles ou des signaux audio. En normalisant les vecteurs, nous assurons l’uniformité dans leur échelle, ce qui est particulièrement utile pour les opérations qui s’appuient sur la mesure des distances vectorielles ou pour le regroupement et la distinction des points de données.
Bien que les modèles d’Azure OpenAI fournissent des vecteurs normalisés, il existe d’autres modèles et infrastructures où les vecteurs ne sont pas normalisés automatiquement. Par exemple, dans la bibliothèque Gensim, qui est couramment utilisée pour les tâches de traitement du langage naturel, les vecteurs ne sont pas toujours normalisés par défaut.
Les utilisateurs doivent souvent normaliser les vecteurs manuellement ou utiliser des fonctions spécifiques fournies par la bibliothèque pour s’assurer que les vecteurs sont de longueur unitaire.
En général, avec des modèles Machine Learning ou des incorporations de vecteurs, il est important de vérifier la documentation ou la sortie du modèle pour déterminer si les vecteurs sont normalisés. Si la normalisation est requise pour votre application, vous devrez peut-être l’implémenter en tant qu’étape distincte si le modèle ne fournit pas de vecteurs normalisés par défaut.
Par exemple, si vous souhaitez un vecteur normalisé à l’aide de la norme Euclide (qui est le type de norme le plus courant), vous pouvez utiliser :
SELECT VECTOR_NORMALIZE ( vector, 'norm2' )
FROM ...
Note
VECTOR_NORMALIZEest disponible dans Azure SQL Managed Instance avec la stratégie de mise à jourSQL Server 2025 ou Always-up-to-date.
Syntax
Conventions de la syntaxe Transact-SQL
VECTOR_NORMALIZE ( vector , norm_type )
Arguments
vector
Expression qui prend la valeur du type de données vectorielle .
norm_type
Chaîne portant le nom du type de norme à utiliser pour calculer la norme du vecteur donné. Les types de norme suivants sont pris en charge :
-
norm1- Qui1-normest la somme des valeurs absolues des composants vectoriels. -
norm2- La2-normnorme euclide, également connue sous le nom de norme euclide, qui est la racine carrée de la somme des carrés des composants vectoriels. -
norminf- Norme d’infini, qui est la valeur maximale des valeurs absolues des composants vectoriels.
Valeur retournée
Le résultat est un vecteur ayant la même direction que le vecteur d’entrée, mais avec une longueur de 1 en fonction de la norme donnée.
Si l’entrée est NULL, le résultat retourné est également NULL.
Une erreur est retournée si norm_type n’est pas un type de norme valide et si le vecteur n’est pas du type de données vectorielle .
Examples
Exemple 1
Normaliser un vecteur :
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;
Exemple 2
DECLARE @v AS VECTOR(3) = '[1, 2, 3]';
SELECT VECTOR_NORMALIZE(@v, 'norm1'),
VECTOR_NORMALIZE(@v, 'norminf');