Delen via


VECTOR_NORMALIZE (Transact-SQL) (preview)

van toepassing op:Azure SQL Database-

Notitie

Dit gegevenstype is in preview en kan worden gewijzigd. Lees de preview-gebruiksvoorwaarden in het SLA (Service Level Agreements) voor Online Services document.

VECTOR_NORMALIZE neemt een vector als invoer en retourneert de genormaliseerde vector, een vector die is geschaald om een lengte van 1 te hebben in een gegeven normtype.

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 verwerking van natuurlijke taaltaken, 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 het werken met 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 biedt.

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_column, 'norm2' )
FROM ...

Syntaxis

Transact-SQL syntaxisconventies

VECTOR_NORMALIZE ( vector_column, norm_type )

Argumenten

vector_column

Een expressie die resulteert in een vector. Deze kolom moet van de vector gegevenstype zijn.

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-norm, de som van de absolute waarden van de vectoronderdelen.
  • norm2 - De 2-norm, ook wel bekend als de Euclidische 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 NULLis, wordt het geretourneerde resultaat ook NULL.

Er wordt een fout geretourneerd als norm_type geen geldig normtype is en als de vector_column niet van de vector gegevenstype is.

Voorbeelden

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 VECTOR(3) = '[1, 2, 3]';

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