Dela via


VECTOR_NORMALIZE (Transact-SQL)

Gäller för: SQL Server 2025 (17.x) Förhandsversion Azure SQL DatabaseAzure SQL Managed InstanceFörhandsversion av SQL-databas för Microsoft Fabric

Använd VECTOR_NORMALIZE för att ta en vektor som indata och returnera den normaliserade vektorn, som är en vektor skalad för att ha en längd på 1 i en viss normtyp.

Den här standardiseringen är avgörande i olika program för artificiell intelligens där vektorer representerar olika former av data, till exempel visuellt innehåll, textinformation eller ljudsignaler. Genom att normalisera vektorer säkerställer vi enhetlighet i deras skala, vilket är särskilt användbart för åtgärder som är beroende av att mäta vektoravstånd eller för att gruppera och särskilja datapunkter.

Även om Azure OpenAI:s modeller tillhandahåller normaliserade vektorer finns det andra modeller och ramverk där vektorer inte normaliseras automatiskt. I Gensim-biblioteket, som ofta används för bearbetning av uppgifter med naturligt språk, normaliseras till exempel inte alltid vektorer som standard.

Användare behöver ofta normalisera vektorerna manuellt eller använda specifika funktioner som tillhandahålls av biblioteket för att säkerställa att vektorerna är av enhetslängd.

I allmänhet med maskininlärningsmodeller eller vektorinbäddningar är det viktigt att kontrollera dokumentationen eller utdata från modellen för att avgöra om vektorerna normaliseras. Om normalisering krävs för ditt program kan du behöva implementera det som ett separat steg om modellen inte tillhandahåller normaliserade vektorer som standard.

Om du till exempel vill ha en normaliserad vektor med euklidisk norm (som är den vanligaste normtypen) kan du använda:

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

Note

VECTOR_NORMALIZEär tillgängligt i Azure SQL Managed Instance med sql Server 2025- eller always-up-to-date update-principen.

Syntax

Transact-SQL syntaxkonventioner

VECTOR_NORMALIZE ( vector , norm_type )

Arguments

vector

Ett uttryck som utvärderas till vektordatatyp .

norm_type

En sträng med namnet på den normtyp som ska användas för att beräkna normen för den angivna vektorn. Följande normtyper stöds:

  • norm1 - , 1-normsom är summan av de absoluta värdena för vektorkomponenterna.
  • norm2 - , 2-normäven känd som Euclidean Norm, som är kvadratroten av summan av kvadraterna i vektorkomponenterna.
  • norminf – Oändlighetsnormen, som är maxvärdet för vektorkomponenternas absoluta värden.

Returvärde

Resultatet är en vektor med samma riktning som indatavektorn men med en längd på 1 enligt den givna normen.

Om indata är NULLär det returnerade resultatet också NULL.

Ett fel returneras om norm_type inte är en giltig normtyp och om vektorn inte är av vektordatatypen .

Examples

Exempel 1

Normalisera en vektor:

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;

Exempel 2

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