Cortex AISQL Images

Avec Cortex AI Images, vous pouvez accomplir les tâches suivantes :

  • Comparer des images

  • Ajouter une légende à des images

  • Classer des images

  • Extraire des entités à partir d’images

  • Répondre à des questions en utilisant des données dans des graphiques et des tableaux

Vous pouvez effectuer ces tâches à l’aide des fonctions suivantes :

Exigences en matière d’entrées

COMPLETE Multimodal peut traiter des images présentant les caractéristiques suivantes :

Exigence

Valeur

Extensions de noms de fichiers

.jpg, .jpeg, .png, .webp, .gif

Chiffrement de la zone de préparation

Chiffrement côté serveur

Type de données

FILE

Note

Le traitement des fichiers à partir des zones de préparation est actuellement incompatible avec les politiques réseau personnalisées.

Créer une zone de préparation pour le traitement des images

Créez une zone de préparation adaptée au stockage des images à traiter. La zone de préparation doit disposer d’une table de répertoire et d’un chiffrement côté serveur.

Le SQL ci-dessous permet de créer une zone de préparation interne adaptée.

CREATE OR REPLACE STAGE input_stage
    DIRECTORY = ( ENABLE = true )
    ENCRYPTION = ( TYPE = 'SNOWFLAKE_SSE' );
Copy

Le SQL suivant crée une zone de préparation externe sur Amazon S3. Les zones de préparation externes Azure et GCP sont également prises en charge.

CREATE OR REPLACE STAGE input_stage
    URL='s3://<s3-path>/'
    DIRECTORY = ( ENABLE = true )
    CREDENTIALS = (AWS_KEY_ID = <aws_key_id>
    AWS_SECRET_KEY = <aws_secret_key>)
    ENCRYPTION = ( TYPE = 'AWS_SSE_S3' );
Copy

Note

Pour actualiser automatiquement la table de répertoire de la zone de préparation externe lorsque des fichiers nouveaux ou mis à jour sont disponibles, passez l’option AUTO_REFRESH = true lors de la création de la zone de préparation. Pour plus d’informations, voir CREATE STAGE.

Traiter les images

La fonction COMPLETE traite soit une seule image, soit plusieurs images (par exemple, pour extraire les différences entre les entités sur plusieurs images). L’appel de la fonction spécifie ce qui suit :

  • Le modèle multimodal à utiliser

  • Un prompt

  • Le chemin de la zone de préparation du ou des fichiers image via un objet FILE

Exemple d’une seule image

L’exemple suivant utilise le modèle Claude Sonnet 3.5 d’Anthropic pour résumer un diagramme circulaire science-employment-slide.jpeg stocké dans la zone de préparation @myimages.

Diagramme circulaire montrant la répartition des professions où les mathématiques sont considérées comme "extrêmement importantes" en 2023

Répartition des professions où les mathématiques sont considérées comme « extrêmement importantes » en 2023

SELECT AI_COMPLETE('claude-3-5-sonnet',
    'Summarize the insights from this pie chart in 100 words',
    TO_FILE('@myimages', 'science-employment-slide.jpeg'));
Copy

Réponse :

This pie chart shows the distribution of occupations where mathematics is considered "extremely important" in 2023.
Data scientists dominate with nearly half (48.7%) of all such positions, followed by operations research analysts
at 29.6%. The remaining positions are distributed among statisticians (7.8%), actuaries (7.2%), physicists (5.1%),
mathematicians (0.6%), and other mathematical science occupations (1.1%). This distribution highlights the growing
importance of data science in mathematics-intensive careers, while traditional mathematics roles represent a smaller
share of the workforce.

Exemple de plusieurs images

Note

Actuellement, seuls les modèles Anthropic (claude) et Meta (llama) peuvent faire référence à plusieurs images dans un seul prompt. La prise en charge de plusieurs images pour d’autres modèles pourrait être disponible dans une prochaine version.

Utilisez la fonction d’aide PROMPT pour traiter plusieurs images en un seul appel COMPLETE. L’exemple suivant utilise le modèle Claude Sonnet 3.5 d’Anthropic pour comparer deux créations publicitaires différentes à partir de la zone de préparation @myimages.

Images de deux publicités pour des voitures électriques

Image de deux publicités pour des voitures électriques

SELECT AI_COMPLETE('claude-3-5-sonnet',
    PROMPT('Compare this image {0} to this image {1} and describe the ideal audience for each in two concise bullets no longer than 10 words',
    TO_FILE('@myimages', 'adcreative_1.png'),
    TO_FILE('@myimages', 'adcreative_2.png')
));
Copy

Réponse :

First image ("Discover a New Energy"):
• Conservative luxury SUV buyers seeking a subtle transition to electrification

Second image ("Electrify Your Drive"):
• Young, tech-savvy urbanites attracted to bold, progressive automotive design

Limites du modèle

Tous les modèles disponibles pour Snowflake Cortex ont des limites sur le nombre total de jetons d’entrée et de sortie. C’est ce que l’on appelle la fenêtre contextuelle du modèle. La taille de la fenêtre contextuelle est mesurée en jetons. Les entrées dépassant la limite de la fenêtre contextuelle entraînent une erreur.

Pour les modèles de texte, les jetons représentent généralement environ quatre caractères de texte, de sorte que le nombre de mots correspondant à une limite est inférieur au nombre de jetons.

Pour les modèles d’image, le nombre de jetons par image dépend de l’architecture du modèle de vision. Les jetons contenus dans un prompt (par exemple, « Quel est cet animal ? ») contribuent également à la fenêtre contextuelle du modèle.

Modèle

Fenêtre contextuelle (jetons)

Types de fichiers

Taille du fichier

Images par prompt

claude-4-opus

200,000

.jpg, .jpeg, .png, .webp, .gif

3,75 MB [L1]

20

claude-4-sonnet

200,000

.jpg, .jpeg, .png, .webp, .gif

3,75 MB [L1]

20

claude-3-7-sonnet

200,000

.jpg, .jpeg, .png, .webp, .gif

3,75 MB [L1]

20

claude-3-5-sonnet

200,000

.jpg, .jpeg, .png, .webp, .gif

3,75 MB [L1]

20

llama4-maverick

128,000

.jpg, .jpeg, .png, .webp, .gif, .bmp [L2]

10 MB

10

llama-4-scout

128,000

.jpg, .jpeg, .png, .webp, .gif

10 MB

10

pixtral-large

128,000

.jpg, .jpeg, .png, .webp, .gif, .bmp [L2]

10 MB

1

[L1] (1,2,3,4)

Les images doivent être inférieures à 8 000 x 8 000 pixels. Les modèles d’Anthropic (claude) prennent en charge jusqu’à 100 images lors d’un seul appel. Les limites s’appliquent à chaque image.

[L2] (1,2)

Les modèles Mistral (pixtral) et Meta (llama) prennent en charge les fichiers .bmp en plus des formats courants.

Considérations relatives aux clients

La facturation s’adapte au nombre de jetons traités. Le nombre de jetons par image dépend de l’architecture du modèle de vision.

  • La formule des modèles d’Anthropic (claude) est en gros : jetons = (largeur en pixels x hauteur en pixels) / 750.

  • Les modèles Mistral (pixtral) divisent chaque image en lots de 16 x 16 pixels et convertissent chaque lot en jeton. Le nombre total de jetons équivaut approximativement à (Largeur en pixels / 16) * (Hauteur en pixels / 16).

  • Les modèles Meta (llama) tentent de couvrir l’image de vignettes carrées. En fonction du format et de la taille de l’image, le nombre de vignettes peut aller jusqu’à 16, chacune étant représentée par environ 153 jetons.

Note

La fonction COUNT_TOKENS ne prend pas actuellement en charge les entrées d’images.

Choisir un modèle de vision

La fonction COMPLETE prend en charge plusieurs modèles dont la capacité, le temps de latence et le coût varient. Pour obtenir une performance optimale par crédit, choisissez un modèle adapté à la taille du contenu et à la complexité de la tâche.

Modèle

MMMU

Mathvista

ChartQA

DocVQA

VQAv2

GPT-4o

68,6

64,6

85,1

88,9

77,8

claude-3-5-sonnet

68,0

64,4

87,6

90,3

70,7

lama-4-maverick

73,4

673,7

90

94,4

lama-4-scout

69,4

70,7

88,8

94,4

pixtral-large

64,0

69,4

88,1

85,7

67

Les critères de comparaison sont les suivants :

  • MMMU : Évalue les modèles multimodaux sur des tâches multidisciplinaires qui nécessitent un raisonnement de niveau collégial.

  • Mathvista : Critère de comparaison du raisonnement mathématique dans un contexte visuel.

  • ChartQA: Évalue des questions de raisonnement complexes sur des graphiques.

  • DocVQA et VQv2 : Critères de comparaison pour les questions-réponses visuelles sur des documents.

Disponibilité régionale

Cette fonction est prise en charge nativement pour les comptes des régions Snowflake suivantes :

Modèle
AWS US West 2
(Oregon)
AWS US East 1
(Virginie du Nord)
AWS Europe Central 1
(Francfort)

claude-3-5-sonnet

claude-3-7-sonnet [A1]

claude-4-sonnet [A1]

claude-4-opus [A1]

pixtral-large

llama4-maverick

llama4-scout

[A1] (1,2,3)

Le modèle n’est disponible que par inférence interrégionale.

La multimodale COMPLETE est disponible dans d’autres régions via Inférence interrégionale.

Conditions d’erreur

Message

Explication

Échec de la requête pour la fonction externe SYSTEM$COMPLETE_WITH_IMAGE_INTERNAL avec une erreur de service distant : 400 “« invalid image path »

L’extension du fichier ou le fichier lui-même n’est pas accepté par le modèle. Le message peut également signifier que le chemin d’accès au fichier est incorrect, c’est-à-dire que le fichier n’existe pas à l’emplacement spécifié. Les noms de fichiers sont sensibles à la casse.

Erreur dans l’objet sécurisé

Peut indiquer que la zone de préparation n’existe pas. Vérifiez le nom de la zone de préparation et assurez-vous qu’elle existe et est accessible. Veillez à utiliser le signe at (@) au début du chemin de la zone de préparation, par exemple @myimages.

Échec de la requête pour la fonction externe _COMPLETE_WITH_PROMPT avec une erreur de service distant : 400 “« paramètres de requête non valides : format d’image non pris en charge : image/**

Format d’image non pris en charge donné à claude-3-5-sonnet, c’est-à-dire autre que .jpeg, .png, .webp ou .gif.

Échec de la requête pour la fonction externe _COMPLETE_WITH_PROMPT avec une erreur de service distant : 400 “« paramètres de requête non valides : Les données de l’image dépassent la limite de 5 MB »

L’image fournie à claude-3-5-sonnet dépasse 5 MB.