Freigeben über


VECTOR_NORMALIZE (Transact-SQL) (Vorschau)

Gilt für: Azure SQL-Datenbank

Hinweis

Dieser Datentyp befindet sich in der Vorschau und kann geändert werden. Lesen Sie die Nutzungsbedingungen für die Vorschau im Dokument Vereinbarungen zum Servicelevel (Service Level Agreements, SLAs) für Onlinedienste.

VECTOR_NORMALIZE verwendet einen Vektor als Eingabe und gibt den normalisierten Vektor zurück, bei dem es sich um einen Vektor handelt, der eine Länge von 1 in einem bestimmten Normtyp hat.

Diese Standardisierung ist in verschiedenen Anwendungen der künstlichen Intelligenz von entscheidender Bedeutung, bei denen Vektoren unterschiedliche Formen von Daten darstellen, z. B. visuelle Inhalte, Textinformationen oder Audiosignale. Durch die Normalisierung von Vektoren stellen wir die Einheitlichkeit in ihrer Skalierung sicher, was besonders für Vorgänge nützlich ist, die auf Vektorabstände oder zum Gruppieren und Unterscheiden von Datenpunkten basieren.

Während die Modelle von Azure OpenAI normalisierte Vektoren bereitstellen, gibt es andere Modelle und Frameworks, bei denen Vektoren nicht automatisch normalisiert werden. Beispielsweise werden Vektoren in der Gensim-Bibliothek, die häufig für Verarbeitungsaufgaben in natürlicher Sprache verwendet wird, nicht immer normalisiert.

Benutzer müssen die Vektoren häufig manuell normalisieren oder bestimmte Funktionen verwenden, die von der Bibliothek bereitgestellt werden, um sicherzustellen, dass die Vektoren die Länge der Einheit aufweisen.

Im Allgemeinen ist es wichtig, bei der Arbeit mit Machine Learning-Modellen oder Vektoreinbettungen die Dokumentation oder die Ausgabe des Modells zu überprüfen, um zu bestimmen, ob die Vektoren normalisiert sind. Wenn die Normalisierung für Ihre Anwendung erforderlich ist, müssen Sie sie möglicherweise als separaten Schritt implementieren, wenn das Modell standardmäßig keine normalisierten Vektoren bereitstellt.

Wenn Sie z. B. einen normalisierten Vektor mit der Euklidischen Norm (der am häufigsten verwendeten Normtyp) verwenden möchten, können Sie Folgendes verwenden:

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

Syntax

Transact-SQL-Syntaxkonventionen

VECTOR_NORMALIZE ( vector_column, norm_type )

Argumente

vector_column

Ein Ausdruck, der zu einem Vektor ausgewertet wird. Diese Spalte muss vom Vektordatentyp sein.

norm_type

Eine Zeichenfolge mit dem Namen des Normtyps zum Berechnen der Norm des angegebenen Vektors. Die folgenden Normtypen werden unterstützt:

  • norm1 - Die 1-Norm, die die Summe der absoluten Werte der Vektorkomponenten ist.
  • norm2 - Die 2-Norm, auch bekannt als euklidische Norm, die die Quadratwurzel der Summe der Quadrate der Vektorkomponenten ist.
  • norminf - Die Unendlichkeitsnorm, die das Maximum der absoluten Werte der Vektorkomponenten ist.

Rückgabewert

Das Ergebnis ist ein Vektor mit der gleichen Richtung wie der Eingabevektor, aber mit einer Länge von 1 gemäß der angegebenen Norm.

Wenn die Eingabe lautet NULL, lautet das zurückgegebene Ergebnis auch NULL.

Wenn norm_type kein gültiger Normtyp ist und die vector_column nicht vom Vektordatentyp ist, wird ein Fehler zurückgegeben.

Beispiele

Beispiel 1

Normalisieren eines Vektors:

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; 

Beispiel 2

DECLARE @v VECTOR(3) = '[1, 2, 3]';

SELECT VECTOR_NORMALIZE(@v, 'norm1'), VECTOR_NORMALIZE(@v, 'norminf');