Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к: SQL Server 2025 (17.x) Предварительная версия
Azure SQL Database
Azure SQL Managed Instance
База данных SQL в Microsoft Fabric Preview
Используется VECTOR_NORMALIZE
для принятия вектора в качестве входных данных и возврата нормализованного вектора, который является вектором, масштабируемым, чтобы иметь длину 1 в заданном типе норм.
Эта стандартизация имеет решающее значение в различных приложениях искусственного интеллекта, где векторы представляют различные формы данных, такие как визуальное содержимое, текстовая информация или звуковые сигналы. Нормализуя векторы, мы обеспечиваем единообразие в их масштабе, что особенно полезно для операций, использующих измерение расстояния векторов или группирование и различение точек данных.
Хотя модели Azure OpenAI предоставляют нормализованные векторы, существуют другие модели и платформы, в которых векторы не нормализуются автоматически. Например, в библиотеке Gensim, которая обычно используется для задач обработки естественного языка, векторы не всегда нормализованы по умолчанию.
Пользователям часто нужно нормализовать векторы вручную или использовать определенные функции, предоставляемые библиотекой, чтобы убедиться, что векторы имеют длину единицы.
Как правило, при использовании моделей машинного обучения или внедрения векторов важно проверить документацию или выходные данные модели, чтобы определить, нормализуются ли векторы. Если нормализация требуется для приложения, может потребоваться реализовать его как отдельный шаг, если модель не предоставляет нормализованные векторы по умолчанию.
Например, если требуется нормализованный вектор с помощью евклидеанской нормы (который является наиболее распространенным типом норм), можно использовать следующее:
SELECT VECTOR_NORMALIZE ( vector, 'norm2' )
FROM ...
Note
- Эта функция находится в предварительной версии и подлежит изменению. Не забудьте прочитать условия использования предварительной версии в соглашениях об уровне обслуживания (SLA) для веб-служб.
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');