AI_SIMILARITY

入力の埋め込みベクトルのベクトルのコサイン類似度値に基づいて類似度スコアを計算します。現在、テキストと画像の類似度計算の両方をサポートしています。

構文

文字列や画像の入力に AI_SIMILARITY を適用:

AI_SIMILARITY( <input1>, <input2> )
Copy

configオブジェクトを指定:

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

引数

必須:

入力文字列を指定する場合:

input1{input2}

類似度スコアの計算するために比較および使用しているテキストを含む文字列。

入力画像を指定する場合:

input1input2

比較する画像を参照している 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)

戻り値

入力に対する2つの埋め込みベクトル間のベクトル類似度を使用して計算された類似度スコアを表す-1から1までの範囲のfloat値を返します。

アクセス制御の要件

ユーザーは、 SNOWFLAKE.CORTEX_USER データベースロール が付与されているロールを使用する必要があります。この権限の詳細については、 必要な権限 をご参照ください。

AI_SIMILARITY: テキスト

この例では、関数は2つのステートメント入力 'I like this dish''This dish is very good' の間の類似度スコアを計算しています。

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 に格納された2つの画像 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 関数は、動的テーブルのインクリメンタルリフレッシュをサポートしていません。

  • Snowflake AI 関数は、以下のタイプのステージファイルから作成された FILEs では動作しません。

    • 暗号化モード TYPE = 'SNOWFLAKE_FULL' 付き内部ステージ

    • 顧客側の暗号化モードを持つ外部ステージ:

      • TYPE = 'AWS_CSE'

      • TYPE = 'AZURE_CSE'

    • ユーザーステージ、テーブルステージ

    • 名前が二重引用符で囲まれているステージ