AI_SIMILARITY
AI_SIMILARITY
입력의 임베딩 벡터 간 코사인 유사도 값을 바탕으로 유사도 점수를 계산하는 AI 함수예요. 현재 텍스트와 이미지 유사도 계산을 모두 지원해요.
본문
문자열이나 이미지 입력에 적용할 때:
AI_SIMILARITY( <input1>, <input2> )
구성 객체(config object)를 지정할 때:
AI_SIMILARITY( <input1>, <input2>, <config_object> )
인자
- 텍스트 입력이라면
input1,input2는 비교·유사도 점수 계산에 쓸 텍스트가 담긴 문자열이에요. - 이미지 입력이라면
input1,input2는 비교할 이미지를 참조하는 FILE 데이터 타입이에요. config_object(선택): 모델을 구성하는 키-값 쌍을 담은 OBJECT.
참고: AI_SIMILARITY는 텍스트와 이미지 입력 간의 유사도 계산은 지원하지 않아요.
config_object의 주요 키:
| Key | Type | Default | Description |
|---|---|---|---|
| model | STRING 입력은 'snowflake-arctic-embed-l-v2.0', IMAGE 입력은 'voyage-multimodal-3' | 임베딩에 사용하는 모델. 'snowflake-arctic-embed-l-v2.0', 'nv-embed-qa-4', 'multilingual-e5-large', 'voyage-multilingual-2', 'snowflake-arctic-embed-m-v1.5', 'snowflake-arctic-embed-m', 'e5-base-v2', 'voyage-multimodal-3'(IMAGE) 지원 |
반환값 — 입력의 두 임베딩 벡터 사이의 벡터 유사도로 계산된 유사도 점수를 나타내는 -1에서 1 범위의 float 값을 반환해요.
접근 제어 요구사항 — 사용자는 SNOWFLAKE.CORTEX_USER 데이터베이스 역할이 부여된 역할을 사용해야 해요.
예시 (텍스트) — 두 문장 입력 간의 유사도 점수 계산:
SELECT AI_SIMILARITY('I like this dish', 'This dish is very good');
텍스트 컬럼에 대해서도 계산할 수 있어요. 리뷰를 문장과의 유사도 순으로 정렬해 볼게요.
SELECT
review
FROM restaurant_reviews
ORDER BY AI_SIMILARITY(review, 'I love the food here!');
예시 (이미지) — 스테이지 @file_stage에 저장된 cat.jpg와 2cats.jpg 두 이미지의 유사도:
SELECT AI_SIMILARITY(TO_FILE('@file_stage', 'cat.jpg'), TO_FILE('@file_stage', '2cats.jpg'));