Megosztás a következőn keresztül:


VECTOR_NORMALIZE (Transact-SQL)

A következőkre vonatkozik: SQL Server 2025 (17.x) Azure SQL DatabaseAzure SQL Managed InstanceSQL Database a Microsoft Fabricben

Egy vektor bemenetként való beírására és a normalizált vektor visszaadására szolgál VECTOR_NORMALIZE , amely egy adott normatípusban 1 hosszúságú vektor.

Ez a szabványosítás kulcsfontosságú a különböző mesterségesintelligencia-alkalmazásokban, ahol a vektorok különböző adatformákat képviselnek, például vizuális tartalmakat, szöveges információkat vagy hangjeleket. A vektorok normalizálásával biztosítjuk a skálájuk egységességét, ami különösen hasznos a vektorok távolságának mérésére vagy az adatpontok csoportosítására és megkülönböztetésére támaszkodó műveleteknél.

Bár az Azure OpenAI modelljei normalizált vektorokat biztosítanak, vannak más modellek és keretrendszerek is, amelyekben a vektorok nem normalizálódnak automatikusan. A Gensim-kódtárban például, amelyet gyakran használnak természetes nyelvi feldolgozási feladatokhoz, a vektorok alapértelmezés szerint nem normalizálva lesznek.

A felhasználóknak gyakran manuálisan kell normalizálni a vektorokat, vagy a kódtár által biztosított bizonyos függvényeket kell használniuk annak biztosításához, hogy a vektorok egységhosszúságúak legyenek.

Gépi tanulási modellek vagy vektorbeágyazások esetén általában fontos ellenőrizni a modell dokumentációját vagy kimenetét annak megállapításához, hogy a vektorok normalizálva vannak-e. Ha normalizálásra van szükség az alkalmazáshoz, előfordulhat, hogy külön lépésként kell implementálnia, ha a modell alapértelmezés szerint nem biztosít normalizált vektorokat.

Ha például normalizált vektort szeretne az euklideszi normával (amely a leggyakoribb normatípus), a következőt használhatja:

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

Note

VECTOR_NORMALIZE a felügyelt Azure SQL-példányban az SQL Server 2025 vagy az Always-up-todátumfrissítésiszabályzattal érhető el.

Syntax

Transact-SQL szintaxis konvenciói

VECTOR_NORMALIZE ( vector , norm_type )

Arguments

vektor

Vektor adattípusra kiértékelt kifejezés.

norm_type

A normatípus nevével ellátott sztring, amely az adott vektor normának kiszámításához használható. A következő normatípusok támogatottak:

  • norm1 - A 1-normvektorösszetevők abszolút értékeinek összege.
  • norm2 - Az 2-normeuklideszi norma, amely a vektorösszetevők négyzetének négyzetgyöke.
  • norminf - A végtelen norma, amely a vektorösszetevők abszolút értékeinek maximális értéke.

Visszaadott érték

Az eredmény egy vektor, amelynek iránya megegyezik a bemeneti vektor irányával, de az adott norma szerint 1 hosszúságú.

Ha a bemenet az NULL, akkor a visszaadott eredmény is NULL.

A hiba akkor jelenik meg, ha norm_type nem érvényes normatípus, és ha a vektor nem a vektor adattípusa.

Examples

1. példa

Vektor normalizálása:

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;

2. példa

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