VECTOR_NORMALIZE (Transact-SQL) (предварительная версия)
Применимо к: База данных SQL Azure
Примечание.
Этот тип данных находится в предварительной версии и подлежит изменению. Обязательно ознакомьтесь с условиями использования предварительной версии в документе соглашения об уровне обслуживания (SLA) для веб-служб .
VECTOR_NORMALIZE
принимает вектор в качестве входных данных и возвращает нормализованный вектор, который является вектором, масштабируемым, чтобы иметь длину 1 в заданном типе норм.
Эта стандартизация имеет решающее значение в различных приложениях искусственного интеллекта, где векторы представляют различные формы данных, такие как визуальное содержимое, текстовая информация или звуковые сигналы. Нормализуя векторы, мы обеспечиваем единообразие в их масштабе, что особенно полезно для операций, использующих измерение расстояния векторов или группирование и различение точек данных.
Хотя модели Azure OpenAI предоставляют нормализованные векторы, существуют другие модели и платформы, в которых векторы не нормализуются автоматически. Например, в библиотеке Gensim, которая обычно используется для задач обработки естественного языка, векторы не всегда нормализованы по умолчанию.
Пользователям часто нужно нормализовать векторы вручную или использовать определенные функции, предоставляемые библиотекой, чтобы убедиться, что векторы имеют длину единицы.
Как правило, при работе с моделями машинного обучения или внедрением векторов важно проверить документацию или выходные данные модели, чтобы определить, нормализуются ли векторы. Если нормализация требуется для приложения, может потребоваться реализовать его как отдельный шаг, если модель не предоставляет нормализованные векторы по умолчанию.
Например, если требуется нормализованный вектор с помощью евклидеанской нормы (который является наиболее распространенным типом норм), можно использовать следующее:
SELECT VECTOR_NORMALIZE ( vector_column, 'norm2' )
FROM ...
Синтаксис
Соглашения о синтаксисе Transact-SQL
VECTOR_NORMALIZE ( vector_column, norm_type )
Аргументы
vector_column
Выражение, которое оценивается вектором. Этот столбец должен иметь тип векторных данных.
norm_type
Строка с именем типа норм, используемого для вычисления нормы заданного вектора. Поддерживаются следующие типы норм:
-
norm1
— 1-норма, которая является суммой абсолютных значений векторных компонентов. -
norm2
- 2-норма, также известная как евклидеанской норме, которая является квадратным корнем суммы квадратов векторных компонентов. -
norminf
- Норма бесконечности, которая является максимумом абсолютных значений векторных компонентов.
Возвращаемое значение
Результатом является вектор с тем же направлением, что и входной вектор, но длиной 1 в соответствии с данной нормой.
Если входные данные заданы NULL
, возвращаемый результат также будет NULL
.
Ошибка возвращается, если norm_type не является допустимым типом норм и если vector_column не является типом векторных данных.
Примеры
Пример 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 VECTOR(3) = '[1, 2, 3]';
SELECT VECTOR_NORMALIZE(@v, 'norm1'), VECTOR_NORMALIZE(@v, 'norminf');