Delen via


VECTOR_NORMALIZE (Transact-SQL)

Van toepassing op: SQL Server 2025 (17.x) Preview Azure SQL DatabaseAzure SQL Managed InstanceSQL-database in Microsoft Fabric Preview

Gebruik VECTOR_NORMALIZE dit om een vector als invoer te gebruiken en de genormaliseerde vector te retourneren. Dit is een vector die is geschaald om een lengte van 1 in een bepaald normtype te hebben.

Deze standaardisatie is van cruciaal belang in verschillende toepassingen voor kunstmatige intelligentie, waarbij vectoren verschillende vormen van gegevens vertegenwoordigen, zoals visuele inhoud, tekstinformatie of audiosignalen. Door vectoren te normaliseren, zorgen we voor uniformiteit in hun schaal, wat met name nuttig is voor bewerkingen die afhankelijk zijn van meetvectorafstanden of voor groepering en het onderscheiden van gegevenspunten.

Hoewel de modellen van Azure OpenAI genormaliseerde vectoren bieden, zijn er andere modellen en frameworks waarbij vectoren niet automatisch worden genormaliseerd. In de Gensim-bibliotheek, die vaak wordt gebruikt voor taken voor verwerking van natuurlijke taal, worden vectoren bijvoorbeeld niet altijd standaard genormaliseerd.

Gebruikers moeten de vectoren vaak handmatig normaliseren of specifieke functies van de bibliotheek gebruiken om ervoor te zorgen dat de vectoren een eenheidslengte hebben.

Over het algemeen is het belangrijk om bij machine learning-modellen of vector-insluitingen de documentatie of de uitvoer van het model te controleren om te bepalen of de vectoren zijn genormaliseerd. Als normalisatie vereist is voor uw toepassing, moet u deze mogelijk als een afzonderlijke stap implementeren als het model geen genormaliseerde vectoren standaard levert.

Als u bijvoorbeeld een genormaliseerde vector wilt gebruiken met behulp van de Euclidean-norm (dit is het meest voorkomende normtype), kunt u het volgende gebruiken:

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

Note

VECTOR_NORMALIZEis beschikbaar in Azure SQL Managed Instance met het updatebeleid voor SQL Server 2025 of Always-up-to-date update.

Syntax

Transact-SQL syntaxisconventies

VECTOR_NORMALIZE ( vector , norm_type )

Arguments

vector

Een expressie die het gegevenstype vector evalueert.

norm_type

Een tekenreeks met de naam van het normtype dat moet worden gebruikt om de norm van de opgegeven vector te berekenen. De volgende normtypen worden ondersteund:

  • norm1 - De 1-normsom van de absolute waarden van de vectoronderdelen.
  • norm2 - De 2-norm, ook wel bekend als de Euclidean Norm, die de vierkantswortel is van de som van de kwadraten van de vectorcomponenten.
  • norminf - De oneindigheidsnorm, het maximum van de absolute waarden van de vectoronderdelen.

Retourwaarde

Het resultaat is een vector met dezelfde richting als de invoervector, maar met een lengte van 1 volgens de opgegeven norm.

Als de invoer is NULL, is het geretourneerde resultaat ook NULL.

Er wordt een fout geretourneerd als norm_type geen geldig normtype is en of de vector niet van het vectorgegevenstype is.

Examples

Voorbeeld 1

Een vector normaliseren:

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;

Voorbeeld 2

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