AI_SIMILARITY

입력된 임베딩 벡터의 벡터 코사인 유사도 값을 기반으로 유사도 점수를 계산합니다. 현재 텍스트와 이미지 유사도 계산을 모두 지원합니다.

구문

문자열 또는 이미지 입력에 AI_SIMILARITY 적용:

AI_SIMILARITY( <input1>, <input2> )
Copy

구성 오브젝트 지정:

AI_SIMILARITY( <input1>, <input2>, <config_object> )
Copy

인자

필수:

입력 문자열을 지정하는 경우:

input1, {input2}

유사도 점수를 계산하기 위해 비교하고 사용하는 텍스트가 포함된 문자열입니다.

입력 이미지를 지정하는 경우:

input1, input2

비교하려는 이미지를 참조하는 FILE 데이터 타입 입니다.

참고

AI_SIMILARITY 는 텍스트와 이미지 입력 간의 유사도 계산을 지원하지 않습니다.

선택 사항:

config_object

모델을 구성하는 데 사용되는 키-값 페어를 포함하는 OBJECT 입니다.

타입

기본값

설명

model

STRING

STRING 입력의 경우 기본값은 'snowflake-arctic-embed-l-v2' 입니다. IMAGE 입력의 경우 기본값은 'voyage-multimodal-3' 입니다.

임베딩에 사용되는 임베딩 모델입니다. 지원되는 값은 다음과 같습니다.

  • 'snowflake-arctic-embed-l-v2'

  • '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 범위의 실수 값을 반환합니다.

액세스 제어 요구 사항

사용자는 SNOWFLAKE.CORTEX_USER 데이터베이스 역할 이 부여된 역할을 사용해야 합니다. 이 권한에 대한 자세한 내용은 필수 권한 섹션을 참조하십시오.

AI_SIMILARITY: 텍스트

이 예제에서 함수는 '나는 요리가 좋아요''이 요리는 아주 좋아요' 라는 두 문자 입력 사이의 유사도 점수를 계산합니다.

SELECT AI_SIMILARITY('I like this dish', 'This dish is very good');
Copy

텍스트 열에 대해서도 유사도를 계산할 수 있습니다.

SELECT
    review
FROM restaurant_reviews
ORDER BY SNOWFLAKE.CORTEX.AI_SIMILARITY(review, 'I love the food here!');
Copy

AI_SIMILARITY: 이미지

이 예제에서 함수는 Snowflake 스테이지 @file_stage 에 저장된 두 이미지 cat.jpg2cats.jpg 사이의 유사도 점수를 계산합니다.

SELECT AI_SIMILARITY(TO_FILE('@file_stage', 'cat.jpg'), TO_FILE('@file_stage', '2cats.jpg'));
Copy

또한 이미지가 포함된 스테이지에 대해 Snowflake 디렉터리 테이블을 사용하여 이미지 간의 유사도를 계산할 수도 있습니다.

SELECT
    to_file('@file_stage', relative_path)
FROM directory(@file_stage)
WHERE snowflake.cortex.ai_similarity(f, to_file(@file_stage, 'cat.jpg')) >= 0.5;
Copy

제한 사항

  • Snowflake AI 함수는 동적 테이블 증분 새로 고침을 지원하지 않습니다.

  • 다음 스테이지 유형의 스테이지 파일로 만든 FILEs 에서는 Snowflake AI 함수가 작동하지 않습니다.

    • 암호화 모드 TYPE = 'SNOWFLAKE_FULL' 이 있는 내부 스테이지

    • 고객 측에서 암호화된 모드가 있는 외부 스테이지:

      • TYPE = 'AWS_CSE'

      • TYPE = 'AZURE_CSE'

    • 사용자 스테이지, 테이블 스테이지

    • 큰따옴표로 묶인 이름을 가진 스테이지