AI_SIMILARITY

基于输入嵌入向量的余弦相似度值,计算相似度分数。目前支持文本和图像相似度计算。

语法

将 AI_SIMILARITY 应用于字符串或图像输入:

AI_SIMILARITY( <input1>, <input2> )
Copy

指定配置对象:

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

实参

必填:

如果您要指定输入字符串:

input1input2

包含您正在比较的文本的字符串,用于计算相似度分数。

如果您要指定输入图像:

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)

返回

返回介于 -1 到 1 之间的浮点值,该浮点值表示使用输入的两个嵌入向量之间的向量相似度计算的相似度分数。

访问控制要求

用户必须使用已被授予 SNOWFLAKE.CORTEX_USER 数据库角色 的角色。有关此权限的更多信息,请参阅 所需权限

示例

AI_SIMILARITY:文本

在此示例中,该函数计算两个语句输入 '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 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 Directory Table 计算图像之间的相似度。

SELECT
    to_file('@file_stage', relative_path)
FROM directory(@file_stage)
WHERE 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'

    • 用户暂存区、表暂存区

    • 带有双引号名称的暂存区

计费

AI_SIMILARITY 目前按 SNOWFLAKE.ACCOUNT_USAGE.CORTEX_FUNCTIONS_USAGE_HISTORY 视图中的 AI_EMBED 行项目计费。

语言: 中文