適用於: SQL Server 2025 (17.x)
Azure SQL Database Azure
SQL Managed Instance
SQL database in Microsoft Fabric
使用 VECTOR_NORMALIZE 來接受向量做為輸入,並傳回正規化向量,這是向量在指定 常態類型中調整為長度 1 的向量。
這種標準化在各種人工智慧應用程式中非常重要,其中向量代表不同形式的數據,例如視覺內容、文字資訊或音訊訊號。 藉由正規化向量,我們會確保其縮放比例的統一性,這特別適用於依賴測量向量距離或分組和區分數據點的作業。
雖然 Azure OpenAI 的模型提供正規化向量,但還有其他模型和架構不會自動正規化向量。 例如,在通常用於自然語言處理任務的 Gensim 庫中,向量預設並不總是標準化。
使用者通常需要手動正規化向量,或使用連結庫所提供的特定函式,以確保向量具有單位長度。
一般而言,使用機器學習模型或向量內嵌,請務必檢查模型的檔或輸出,以判斷向量是否已正規化。 如果您的應用程式需要正規化,如果模型預設未提供正規化向量,您可能需要將其實作為個別步驟。
例如,如果您想要使用 Euclidean norm 的標準化向量(這是最常見的常態類型),您可以使用:
SELECT VECTOR_NORMALIZE ( vector, 'norm2' )
FROM ...
Note
VECTOR_NORMALIZE 可在 Azure SQL 受控執行個體中使用 SQL Server 2025 或 一律up-to日期更新原則。
Syntax
VECTOR_NORMALIZE ( vector , norm_type )
Arguments
向量
評估為 向量 數據類型的表達式。
norm_type
字串,其名稱為 norm 型別,用來計算指定向量的常態。 支援下列常態類型:
-
norm11-norm- ,這是向量元件絕對值的總和。 -
norm2- 這2-norm,也稱為歐幾里得範數,它是向量分量平方和的平方根。 -
norminf- 無限常態,這是向量元件絕對值的最大值。
返回值
結果是向量,其方向與輸入向量相同,但長度為 1 根據指定的常態。
如果輸入 NULL是 ,則傳回的結果也是 NULL。
如果 norm_type 不是有效的規範類型,且 向量 不是 向量 資料類型,則會傳回錯誤。
Examples
範例 1
正規化向量:
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
DECLARE @v AS VECTOR(3) = '[1, 2, 3]';
SELECT VECTOR_NORMALIZE(@v, 'norm1'),
VECTOR_NORMALIZE(@v, 'norminf');