Sdílet prostřednictvím


VECTOR_NORMALIZE (Transact-SQL)

Platí pro: SQL Server 2025 (17.x) Azure SQL Database Azure SQLManaged InstanceSQL Database v Microsoft Fabric

Slouží VECTOR_NORMALIZE k převzetí vektoru jako vstupu a vrácení normalizovaného vektoru, což je vektor škálovaný tak, aby měl v daném typu normu délku 1.

Tato standardizace je zásadní v různých aplikacích umělé inteligence, kde vektory představují různé formy dat, jako je vizuální obsah, textové informace nebo zvukové signály. Normalizací vektorů zajišťujeme jednotnost v jejich měřítku, což je zvláště užitečné pro operace, které se spoléhají na měření vektorových vzdáleností nebo pro seskupování a rozlišování datových bodů.

I když modely Azure OpenAI poskytují normalizované vektory, existují i jiné modely a architektury, ve kterých nejsou vektory automaticky normalizovány. Například v knihovně Gensim, která se běžně používá pro úlohy zpracování přirozeného jazyka, vektory nejsou ve výchozím nastavení normalizovány.

Uživatelé často potřebují vektory normalizovat ručně nebo použít konkrétní funkce poskytované knihovnou, aby se zajistilo, že vektory mají délku jednotky.

Obecně platí, že u modelů strojového učení nebo vkládání vektorů je důležité zkontrolovat dokumentaci nebo výstup modelu a určit, jestli jsou vektory normalizované. Pokud se pro vaši aplikaci vyžaduje normalizace, budete ji možná muset implementovat jako samostatný krok, pokud model ve výchozím nastavení neposkytuje normalizované vektory.

Pokud například chcete normalizovaný vektor pomocí normy Euclidean (což je nejběžnější typ normy), můžete použít:

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

Note

VECTOR_NORMALIZEje k dispozici ve službě Azure SQL Managed Instance se zásadami aktualizaceSQL Serveru 2025 nebo Always-up-to-date.

Syntax

Transact-SQL konvence syntaxe

VECTOR_NORMALIZE ( vector , norm_type )

Arguments

vektor

Výraz, který se vyhodnotí jako vektorový datový typ.

norm_type

Řetězec s názvem typu normy, který se má použít k výpočtu normy daného vektoru. Podporují se následující typy norem:

  • norm1 - , 1-normcož je součet absolutních hodnot vektorových složek.
  • norm2 - Označuje se 2-normtaké jako Euclidean Norm, což je druhá odmocnina součtu čtverců vektorových složek.
  • norminf - nekonečná norma, což je maximum absolutních hodnot vektorových složek.

Návratová hodnota

Výsledkem je vektor se stejným směrem jako vstupní vektor, ale s délkou 1 podle dané normy.

Pokud je NULLvstup , vrácený výsledek je také NULL.

Pokud norm_type není platným standardním typem, vrátí se chyba, a pokud vektor není datový typ vektoru .

Examples

Příklad 1

Normalizovat 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;

Příklad 2

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