AI_SIMILARITY

Calcul d’un score de similarité basé sur la valeur de similarité du cosinus vectoriel des vecteurs d’intégration des entrées. Prend actuellement en charge le calcul des similitudes de texte et d’image.

Syntaxe

Application de AI_SIMILARITY aux entrées de chaînes ou d’images :

AI_SIMILARITY( <input1>, <input2> )
Copy

Spécification de l’objet config :

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

Arguments

Obligatoire :

Si vous spécifiez des chaînes d’entrée :

input1, {input2}

Les chaînes contenant le texte que vous comparez et que vous utilisez pour calculer le score de similarité.

Si vous spécifiez des images d’entrée :

input1, input2

Type de données FILE référençant les images à comparer.

Note

AI_SIMILARITY ne permet pas de calculer la similarité entre les entrées texte et image.

Facultatif :

config_object

Un OBJECT contenant des paires clé-valeur utilisées pour configurer le modèle.

Clé

Type

Par défaut

Description

model

STRING

Pour l’entrée STRING, la valeur par défaut est 'snowflake-arctic-embed-l-v2'. Pour l’entrée IMAGE, la valeur par défaut est 'voyage-multimodal-3'

Le modèle d’intégration utilisé pour l’intégration. Valeurs prises en charge :

  • '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)

Renvoie

Renvoie une valeur flottante comprise entre -1 et 1 qui représente le score de similarité calculé à l’aide de la similarité vectorielle entre deux vecteurs d’intégration pour les entrées.

Exigences en matière de contrôle d’accès

Les utilisateurs doivent utiliser un rôle auquel le rôle de base de données SNOWFLAKE.CORTEX_USER a été accordé. Voir Privilèges requis pour plus d’informations sur ce privilège.

Exemples

AI_SIMILARITY : texte

Dans cet exemple, la fonction calcule un score de similarité entre les deux entrées d’instruction 'J'aime ce plat' et 'Ce plat est très bon'.

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

Nous pouvons également calculer la similarité sur des colonnes de texte.

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

AI_SIMILARITY : images

Dans cet exemple, la fonction calcule un score de similarité entre les deux images, cat.jpg et 2cats.jpg, stockées dans une zone de préparation Snowflake @file_stage.

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

Nous pouvons également calculer la similarité entre les images à l’aide de la table du répertoire de Snowflake pour la zone de préparation contenant les images.

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

Limitations

  • Les fonctions AI de Snowflake ne prennent pas en charge l’actualisation incrémentielle des tables dynamiques.

  • Les fonctions de Snowflake AI ne fonctionnent pas sur les FILEs créés à partir de fichiers de zone de préparation provenant des types de zones de préparation suivants :

    • Zones de préparation interne avec mode de chiffrement TYPE = 'SNOWFLAKE_FULL'

    • Zones de préparation externe avec n’importe quel mode de chiffrement côté client :

      • TYPE = 'AWS_CSE'

      • TYPE = 'AZURE_CSE'

    • Zone de préparation de l’utilisateur, zone de préparation de table

    • Zone de préparation avec des noms entre guillemets doubles