VECTOR_NORMALIZE(Transact-SQL)(미리 보기)
적용 대상: Azure SQL Database
참고 항목
이 데이터 형식은 미리 보기 상태이며 변경될 수 있습니다. 온라인 서비스용 SLA(서비스 수준 계약) 문서에서 미리 보기 사용 약관 을 읽어야 합니다 .
VECTOR_NORMALIZE
는 벡터를 입력으로 사용하고 정규화된 벡터를 반환합니다. 이 벡터는 지정된 norm 형식에서 길이가 1로 조정된 벡터입니다.
이 표준화는 벡터가 시각적 콘텐츠, 텍스트 정보 또는 오디오 신호와 같은 다양한 형태의 데이터를 나타내는 다양한 인공 지능 애플리케이션에서 중요합니다. 벡터를 정규화하여 벡터 거리를 측정하거나 데이터 요소를 그룹화하고 구분하는 작업에 특히 유용합니다.
Azure OpenAI의 모델은 정규화된 벡터를 제공하지만 벡터가 자동으로 정규화되지 않는 다른 모델 및 프레임워크가 있습니다. 예를 들어 자연어 처리 작업에 일반적으로 사용되는 Gensim 라이브러리에서 벡터는 기본적으로 항상 정규화되지는 않습니다.
사용자는 벡터를 수동으로 정규화하거나 라이브러리에서 제공하는 특정 함수를 사용하여 벡터가 단위 길이인지 확인해야 하는 경우가 많습니다.
일반적으로 기계 학습 모델 또는 벡터 포함을 사용할 때는 설명서 또는 모델의 출력을 확인하여 벡터가 정규화되었는지 여부를 확인하는 것이 중요합니다. 애플리케이션에 정규화가 필요한 경우 모델이 기본적으로 정규화된 벡터를 제공하지 않는 경우 별도의 단계로 구현해야 할 수 있습니다.
예를 들어 Euclidean norm(가장 일반적인 표준 형식)을 사용하여 정규화된 벡터를 원하는 경우 다음을 사용할 수 있습니다.
SELECT VECTOR_NORMALIZE ( vector_column, 'norm2' )
FROM ...
구문
VECTOR_NORMALIZE ( vector_column, norm_type )
인수
vector_column
벡터로 계산되는 식입니다. 이 열은 벡터 데이터 형식이어야 합니다.
norm_type
지정된 벡터의 norm을 계산하는 데 사용할 norm 형식의 이름을 가진 문자열입니다. 지원되는 표준 형식은 다음과 같습니다.
norm1
- 벡터 구성 요소의 절대값 합계인 1-norm입니다.norm2
- 벡터 구성 요소의 제곱 합계의 제곱근인 Euclidean Norm이라고도 하는 2-norm입니다.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');