Поделиться через


VECTOR_NORMALIZE (Transact-SQL) (предварительная версия)

Применимо к: SQL Server 2025 (17.x) Предварительная версия Azure SQL DatabaseAzure SQL Managed InstanceБаза данных SQL в Microsoft Fabric Preview

Используется VECTOR_NORMALIZE для принятия вектора в качестве входных данных и возврата нормализованного вектора, который является вектором, масштабируемым, чтобы иметь длину 1 в заданном типе норм.

Эта стандартизация имеет решающее значение в различных приложениях искусственного интеллекта, где векторы представляют различные формы данных, такие как визуальное содержимое, текстовая информация или звуковые сигналы. Нормализуя векторы, мы обеспечиваем единообразие в их масштабе, что особенно полезно для операций, использующих измерение расстояния векторов или группирование и различение точек данных.

Хотя модели Azure OpenAI предоставляют нормализованные векторы, существуют другие модели и платформы, в которых векторы не нормализуются автоматически. Например, в библиотеке Gensim, которая обычно используется для задач обработки естественного языка, векторы не всегда нормализованы по умолчанию.

Пользователям часто нужно нормализовать векторы вручную или использовать определенные функции, предоставляемые библиотекой, чтобы убедиться, что векторы имеют длину единицы.

Как правило, при использовании моделей машинного обучения или внедрения векторов важно проверить документацию или выходные данные модели, чтобы определить, нормализуются ли векторы. Если нормализация требуется для приложения, может потребоваться реализовать его как отдельный шаг, если модель не предоставляет нормализованные векторы по умолчанию.

Например, если требуется нормализованный вектор с помощью евклидеанской нормы (который является наиболее распространенным типом норм), можно использовать следующее:

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

Note

VECTOR_NORMALIZE доступен в Управляемом экземпляре SQL Azure, настроенном с помощью политики обновления Always-up-to-date .

Syntax

Соглашения о синтаксисе Transact-SQL

VECTOR_NORMALIZE ( vector, norm_type )

Arguments

vector

Выражение, которое оценивает тип векторных данных.

norm_type

Строка с именем типа норм, используемого для вычисления нормы заданного вектора. Поддерживаются следующие типы норм:

  • norm1 — сумма 1-normабсолютных значений векторных компонентов.
  • norm2 - , 2-normтакже известный как евклидеанский норм, который является квадратным корнем суммы квадратов векторных компонентов.
  • norminf - Норма бесконечности, которая является максимумом абсолютных значений векторных компонентов.

Return value

Результатом является вектор с тем же направлением, что и входной вектор, но длиной 1 в соответствии с данной нормой.

Если входные данные заданы NULL, возвращаемый результат также будет NULL.

Ошибка возвращается, если norm_type не является допустимым типом норм и если вектор не является типом векторных данных.

Examples

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

Example 2

DECLARE @v VECTOR(3) = '[1, 2, 3]';

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