Snowflake Cortex AI Functions (including LLM functions)¶
Use Cortex AI Functions in Snowflake to run unstructured analytics on text and images with industry-leading LLMs from OpenAI, Anthropic, Meta, Mistral AI, and DeepSeek. AI Functions support use cases such as:
Extraction d’entités pour enrichir les métadonnées et rationaliser la validation
Agrégation d’informations sur les tickets des clients
Filtrage et classification du contenu par la langue naturelle
Analyse des sentiments et des aspects pour l’amélioration des services
Traduction et localisation des contenus multilingues
Analyse des documents pour l’analytique et les pipelines RAG
Tous les modèles sont entièrement hébergés dans Snowflake, ce qui garantit la performance, l’évolutivité et la gouvernance tout en gardant vos données sécurisées et en place.
Fonctions disponibles¶
Snowflake Cortex features are provided as SQL functions and are also available in Python. Cortex AI Functions can be grouped into the following categories:
Cortex AI functions¶
Les fonctions spécifiques aux tâches sont spécialement conçues et gérées pour automatiser les tâches de routine, comme les résumés simples et les traductions rapides, qui ne nécessitent aucune exigence de personnalisation.
Important
The following features are in preview and should not be used in production:
AI_AGG
AI_FILTER
AI_SUMMARIZE_AGG
AI_COMPLETE : Génère un achèvement pour une chaîne de texte ou une image donnée en utilisant un LLM sélectionné. Utilisez cette fonction pour la plupart des tâches de l’AI générative.
AI_COMPLETE est la version mise à jour de COMPLETE (SNOWFLAKE.CORTEX).
AI_CLASSIFY : Classe le texte ou les images dans des catégories définies par l’utilisateur.
AI_CLASSIFY est la version mise à jour de CLASSIFY_TEXT (SNOWFLAKE.CORTEX) avec prise en charge de la classification multi-label et des images.
AI_FILTER : Renvoie True ou False pour une entrée de texte ou d’image donnée, ce qui vous permet de filtrer les résultats dans les clauses
SELECT,WHEREouJOIN. .. ON.AI_AGG : Agrège une colonne de texte et renvoie des aperçus sur plusieurs lignes en fonction d’un prompt défini par l’utilisateur. Cette fonction n’est pas soumise aux limites des fenêtres contextuelles.
AI_EMBED : Génère un vecteur d’intégration pour une entrée de texte ou d’image, qui peut être utilisé pour des tâches de recherche de similarité, de clustering et de classification.
AI_EMBED est la version mise à jour de EMBED_TEXT_1024 (SNOWFLAKE.CORTEX).
AI_EXTRACT : Extrait des informations d’une chaîne ou d’un fichier d’entrée, par exemple du texte, des images et des documents. Prend en charge plusieurs langues.
AI_EXTRACT est la version mise à jour de EXTRACT_ANSWER (SNOWFLAKE.CORTEX).
AI_REDACT: Redacts personally identifiable information (PII) from text.
AI_SENTIMENT: Extracts sentiment from text.
AI_SENTIMENT est la version mise à jour de SENTIMENT (SNOWFLAKE.CORTEX).
AI_SUMMARIZE_AGG : Agrège une colonne de texte et renvoie un résumé sur plusieurs lignes. Cette fonction n’est pas soumise aux limites des fenêtres contextuelles.
AI_SIMILARITY : Calcule la similarité d’intégration entre deux entrées.
AI_TRANSCRIBE: Transcribes audio and video files stored in a stage, extracting text, timestamps, and speaker information.
AI_PARSE_DOCUMENT : extrait du texte (à l’aide du mode OCR) ou du texte avec des informations de mise en page (avec le mode LAYOUT) à partir de documents dans une zone de préparation interne ou externe.
AI_PARSE_DOCUMENT est la version mise à jour de PARSE_DOCUMENT (SNOWFLAKE.CORTEX).
AI_TRANSLATE : Traduit le texte entre les langues prises en charge.
AI_TRANSLATE est la version mise à jour de TRANSLATE (SNOWFLAKE.CORTEX).
SUMMARIZE (SNOWFLAKE.CORTEX) : Renvoie un résumé du texte que vous avez spécifié.
Fonctions d’assistance¶
Helper functions are purpose-built managed functions that reduce cases of failures when running other Cortex AI Functions, for example by getting the count of tokens in an input prompt to ensure the call doesn’t exceed a model limit.
TO_FILE : crée une référence à un fichier dans une zone de préparation interne ou externe pour une utilisation avec AI_COMPLETE et d’autres fonctions qui acceptent des fichiers.
AI_COUNT_TOKENS : Avec un texte d’entrée, renvoie le nombre de jetons en fonction du modèle ou de la fonction Cortex spécifié.
AI_COUNT_TOKENS est la version mise à jour de COUNT_TOKENS (SNOWFLAKE.CORTEX).
PROMPT : vous aide à créer des objets d’invite à utiliser avec AI_COMPLETE et d’autres fonctions.
TRY_COMPLETE (SNOWFLAKE.CORTEX) : Fonctionne comme la fonction COMPLETE, mais renvoie NULL lorsque la fonction n’a pas pu s’exécuter, au lieu d’un code d’erreur.
Cortex Guard¶
cortex guard est une option de la fonction AI_COMPLETE (ou SNOWFLAKE.CORTEX.COMPLETE) conçue pour filtrer les éventuelles réponses dangereuses et nuisibles d’un modèle de langue. Cortex Guard est actuellement construit avec Llama Guard 3 de Meta. Cortex Guard fonctionne en évaluant les réponses d’un modèle de langage avant que cette sortie ne soit renvoyée à l’application. Une fois que vous avez activé Cortex Guard, les réponses du modèle linguistique qui peuvent être associées à des crimes violents, à la haine, au contenu sexuel, à l’automutilation, etc. sont automatiquement filtrées. Voir arguments COMPLETE pour la syntaxe et les exemples.
Note
l’utilisation de cortex guard entraîne des frais de calcul basés sur le nombre de jetons d’entrée traités, en plus des frais pour la fonction AI_COMPLETE.
Considérations en matière de performances¶
Cortex AI Functions are optimized for throughput. We recommend using these functions to process numerous inputs such as text from large SQL tables. Batch processing is typically better suited for AI Functions. For more interactive use cases where latency is important, use the REST API. These are available for simple inference (Complete API), embedding (Embed API) and agentic applications (Agents API).
Privilèges LLM Cortex¶
Rôle de la base de données CORTEX_USER¶
The CORTEX_USER database role in the SNOWFLAKE database includes the privileges that allow users to call Snowflake Cortex AI Functions. By default, the CORTEX_USER role is granted to the PUBLIC role. The PUBLIC role is automatically granted to all users and roles, so this allows all users in your account to use the Snowflake Cortex AI functions.
si vous ne souhaitez pas que tous les utilisateurs disposent de ce privilège, vous pouvez révoquer l’accès au rôle PUBLIC et accorder l’accès à d’autres rôles. le rôle de base de donnéesSNOWFLAKE.CORTEX_USER ne peut pas être accordé directement à un utilisateur. pour plus d’informations, consultez À l’aide des rôles de base de données SNOWFLAKE.
Pour révoquer le rôle de base de données CORTEX_USER à partir du rôle PUBLIC, exécutez les commandes suivantes à l’aide du rôle ACCOUNTADMIN :
REVOKE DATABASE ROLE SNOWFLAKE.CORTEX_USER
FROM ROLE PUBLIC;
REVOKE IMPORTED PRIVILEGES ON DATABASE SNOWFLAKE
FROM ROLE PUBLIC;
Vous pouvez ensuite accorder un accès sélectif à des rôles spécifiques. un utilisateur ayant le rôle ACCOUNTADMIN peut attribuer ce rôle à un rôle personnalisé afin de permettre aux utilisateurs d’accéder aux fonctions AI de cortex. Dans l’exemple suivant, vous avez le rôle ACCOUNTADMIN et accordez à l’utilisateur some_user le rôle de base de données CORTEX_USER via le rôle de compte cortex_user_role, que vous créez à cet effet.
USE ROLE ACCOUNTADMIN;
CREATE ROLE cortex_user_role;
GRANT DATABASE ROLE SNOWFLAKE.CORTEX_USER TO ROLE cortex_user_role;
GRANT ROLE cortex_user_role TO USER some_user;
You can also grant access to Snowflake Cortex AI functions through existing roles commonly used by specific groups of
users. (See Rôles utilisateur.) For example, if you have created an analyst role that is used
as a default role by analysts in your organization, you can easily grant these users access to Snowflake Cortex AI
Functions with a single GRANT statement.
GRANT DATABASE ROLE SNOWFLAKE.CORTEX_USER TO ROLE analyst;
Rôle de la base de données CORTEX_EMBED_USER¶
The CORTEX_EMBED_USER database role in the SNOWFLAKE database includes the privileges that allow users to call the text embedding functions AI_EMBED, EMBED_TEXT_768, and EMBED_TEXT_1024 and to create Cortex Search Services with managed vector embeddings. CORTEX_EMBED_USER allows you to grant embedding privileges separately from other Cortex AI capabilities.
Note
Vous pouvez créer des Cortex Search Services avec des intégrations fournies par l’utilisateur sans le rôle CORTEX_EMBED_USER. Dans ce cas, vous devez générer vous-même les intégrations, en dehors de Snowflake, et les charger dans une table.
Contrairement au rôle CORTEX_USER, le rôle CORTEX_EMBED_USER n’est pas accordé au rôle par défaut PUBLIC. Vous devez explicitement accorder ce rôle aux rôles qui nécessitent des capacités d’intégration si vous avez révoqué le rôle CORTEx_USER. Le rôle de base de données CORTEX_EMBED_USER ne peut pas être accordé directement aux utilisateurs, mais doit être accordé aux rôles que les utilisateurs peuvent assumer. L’exemple suivant illustre ce processus.
USE ROLE ACCOUNTADMIN;
CREATE ROLE cortex_embed_user_role;
GRANT DATABASE ROLE SNOWFLAKE.CORTEX_EMBED_USER TO ROLE cortex_embed_user_role;
GRANT ROLE cortex_embed_user_role TO USER some_user;
Sinon, pour donner à tous les utilisateurs l’accès aux capacités d’intégration, accordez le rôle CORTEX_EMBED_USER au rôle PUBLIC comme suit.
USE ROLE ACCOUNTADMIN;
GRANT DATABASE ROLE SNOWFLAKE.CORTEX_EMBED_USER TO ROLE PUBLIC;
Using AI Functions in stored procedures with EXECUTE AS RESTRICTED CALLER¶
To use AI Functions inside stored procedures with EXECUTE AS RESTRICTED CALLER, grant the following privileges to the role that created the stored procedure:
GRANT INHERITED CALLER USAGE ON ALL SCHEMAS IN DATABASE snowflake TO ROLE <role_that_created_the_stored_procedure>;
GRANT INHERITED CALLER USAGE ON ALL FUNCTIONS IN DATABASE snowflake TO ROLE <role_that_created_the_stored_procedure>;
GRANT CALLER USAGE ON DATABASE snowflake TO ROLE <role_that_created_the_stored_procedure>;
Contrôle de l’accès au modèle¶
Snowflake Cortex fournit deux mécanismes indépendants pour appliquer l’accès aux modèles :
paramètre de la liste d’autorisation au niveau du compte (contrôle simple et étendu)
contrôle d’accès basé sur les rôles (RBAC) (contrôle détaillé)
You can use the account-level allowlist to control model access across your entire account, or you can use RBAC to control model access on a per-role basis. For maximum flexibility, you can also use both mechanisms together, if you can accept additional management complexity.
Paramètre de la liste d’autorisation au niveau du compte¶
vous pouvez contrôler l’accès aux modèles pour l’ensemble de votre compte à l’aide du paramètreCORTEX_MODELS_ALLOWLIST. les fonctionnalités prises en charge respecteront la valeur de ce paramètre et empêcheront l’utilisation de modèles qui ne figurent pas dans la liste d’autorisation.
Le paramètre CORTEX_MODELS_ALLOWLIST peut être réglé sur 'All', 'None', ou sur une liste de noms de modèles séparés par des virgules. Ce paramètre ne peut être défini qu’au niveau du compte, pas aux niveaux de l’utilisateur ou de la session. seul le rôle ACCOUNTADMIN peut définir le paramètre à l’aide de la commande ALTER ACCOUNT:
Exemples :
Pour autoriser l’accès à tous les modèles :
ALTER ACCOUNT SET CORTEX_MODELS_ALLOWLIST = 'All';
pour permettre l’accès aux modèles
mistral-large2etllama3.1-70b:ALTER ACCOUNT SET CORTEX_MODELS_ALLOWLIST = 'mistral-large2,llama3.1-70b';
Pour empêcher l’accès à tout modèle :
ALTER ACCOUNT SET CORTEX_MODELS_ALLOWLIST = 'None';
utiliser le RBAC, comme décrit dans la section suivante, pour fournir des rôles spécifiques avec un accès supérieur à celui que vous avez spécifié dans la liste d’autorisation.
contrôle d’accès basé sur les rôles (RBAC)¶
Bien que les modèles Cortex ne soient pas eux-mêmes des objets Snowflake, Snowflake vous permet de créer des objets de modèle dans le schéma SNOWFLAKE.MODELS qui représentent les modèles Cortex. en appliquant le RBAC à ces objets, vous pouvez contrôler l’accès aux modèles de la même manière que vous le feriez pour tout autre objet snowflake. Les fonctionnalités prises en charge acceptent les identificateurs des objets dans SNOWFLAKE.MODELS partout où un modèle peut être spécifié.
Astuce
Pour utiliser exclusivement le RBAC, définissez CORTEX_MODELS_ALLOWLIST sur 'None'.
Actualiser les objets de modèle et les rôles des applications¶
SNOWFLAKE.MODELS n’est pas automatiquement renseigné avec les objets qui représentent les modèles cortex. Vous devez créer ces objets lorsque vous configurez pour la première fois le modèle RBAC, et les actualiser lorsque vous voulez appliquer le RBAC à de nouveaux modèles.
en tant que ACCOUNTADMIN, exécutez la procédure enregistrée SNOWFLAKE.MODELS.CORTEX_BASE_MODELS_REFRESH pour renseigner le schéma SNOWFLAKE.MODELS avec des objets représentant les modèles cortex actuellement disponibles, et pour créer des rôles d’application qui correspondent aux modèles. La procédure crée également CORTEX-MODEL-ROLE-ALL, un rôle qui couvre tous les modèles.
Astuce
vous pouvez appeler en toute sécurité CORTEX_BASE_MODELS_REFRESH à tout moment ; sans que cela crée d’objets ou de rôles en double.
CALL SNOWFLAKE.MODELS.CORTEX_BASE_MODELS_REFRESH();
Après avoir actualisé les objets de modèle, vous pouvez vérifier que les modèles apparaissent dans le schéma SNOWFLAKE.MODELS comme suit :
SHOW MODELS IN SNOWFLAKE.MODELS;
La liste de modèles renvoyée ressemble à ce qui suit :
created_on |
name |
model_type |
database_name |
schema_name |
owner |
|---|---|---|---|---|---|
2025-04-22 09:35:38.558 -0700 |
CLAUDE-3-5-SONNET |
CORTEX_BASE |
SNOWFLAKE |
MODELS |
SNOWFLAKE |
2025-04-22 09:36:16.793 -0700 |
LLAMA3.1-405B |
CORTEX_BASE |
SNOWFLAKE |
MODELS |
SNOWFLAKE |
2025-04-22 09:37:18.692 -0700 |
SNOWFLAKE-ARCTIC |
CORTEX_BASE |
SNOWFLAKE |
MODELS |
SNOWFLAKE |
pour vérifier que vous pouvez voir les rôles des applications associés à ces modèles, utilisez la commande SHOW APPLICATION ROLES comme dans l’exemple suivant :
SHOW APPLICATION ROLES IN APPLICATION SNOWFLAKE;
La liste des rôles des applications ressemble à ce qui suit :
created_on |
name |
owner |
comment |
owner_role_type |
|---|---|---|---|---|
2025-04-22 09:35:38.558 -0700 |
CORTEX-MODEL-ROLE-ALL |
SNOWFLAKE |
MODELS |
APPLICATION |
2025-04-22 09:36:16.793 -0700 |
CORTEX-MODEL-ROLE-LLAMA3.1-405B |
SNOWFLAKE |
MODELS |
APPLICATION |
2025-04-22 09:37:18.692 -0700 |
CORTEX-MODEL-ROLE-SNOWFLAKE-ARCTIC |
SNOWFLAKE |
MODELS |
APPLICATION |
Attribuer des rôles d’application aux rôles d’utilisateur¶
Après avoir créé les objets de modèle et les rôles des applications, vous pouvez attribuer ces rôles à des rôles d’utilisateur spécifiques de votre compte.
Pour accorder à un rôle l’accès à un modèle spécifique :
GRANT APPLICATION ROLE SNOWFLAKE."CORTEX-MODEL-ROLE-LLAMA3.1-70B" TO ROLE MY_ROLE;
To grant a role access to all current and future models:
GRANT APPLICATION ROLE SNOWFLAKE."CORTEX-MODEL-ROLE-ALL" TO ROLE MY_ROLE;
Utiliser des objets de modèle avec des fonctionnalités prises en charge¶
pour utiliser des objets de modèle avec des fonctionnalités cortex prises en charge, indiquez l’identificateur de l’objet de modèle dans SNOWFLAKE.MODELS comme argument du modèle. Vous pouvez utiliser un identificateur pleinement qualifié, un identificateur partiel, ou un simple nom de modèle qui sera automatiquement résolu en SNOWFLAKE.MODELS.
Utiliser un identificateur entièrement qualifié :
SELECT AI_COMPLETE('SNOWFLAKE.MODELS."LLAMA3.1-70B"', 'Hello');
Utiliser un identificateur partiel :
USE DATABASE SNOWFLAKE; USE SCHEMA MODELS; SELECT AI_COMPLETE('LLAMA3.1-70B', 'Hello');
Utiliser la recherche automatique avec un nom de modèle simple :
-- Automatically resolves to SNOWFLAKE.MODELS."LLAMA3.1-70B" SELECT AI_COMPLETE('llama3.1-70b', 'Hello');
utiliser le RBAC avec liste d’autorisation au niveau du compte¶
Un certain nombre de fonctionnalités Cortex acceptent un nom de modèle comme argument de chaîne, par exemple AI_COMPLETE('model', 'prompt'). Lorsque vous indiquez un nom de modèle :
Cortex tente d’abord de localiser un objet de modèle correspondant dans SNOWFLAKE.MODELS. Si vous fournissez un nom incomplet comme
'x', il recherche automatiquementSNOWFLAKE.MODELS."X".si l’objet de modèle est trouvé, le RBAC est appliqué pour déterminer si l’utilisateur peut utiliser le modèle.
Si aucun objet de modèle n’est trouvé, la chaîne fournie est comparée à la liste d’autorisation au niveau du compte.
l’exemple suivant illustre l’utilisation commune de la liste d’autorisation et du RBAC. dans cet exemple, la liste d’autorisation est définie de sorte à autoriser le modèle mistral-large2, et l’utilisateur a accès à l’objet de modèle LLAMA3.1-70B via le RBAC.
-- set up access
USE SECONDARY ROLES NONE;
USE ROLE ACCOUNTADMIN;
ALTER ACCOUNT SET CORTEX_MODELS_ALLOWLIST = 'MISTRAL-LARGE2';
CALL SNOWFLAKE.MODELS.CORTEX_BASE_MODELS_REFRESH();
GRANT APPLICATION ROLE SNOWFLAKE."CORTEX-MODEL-ROLE-LLAMA3.1-70B" TO ROLE PUBLIC;
-- test access
USE ROLE PUBLIC;
-- this succeeds because mistral-large2 is in the allowlist
SELECT AI_COMPLETE('MISTRAL-LARGE2', 'Hello');
-- this succeeds because the role has access to the model object
SELECT AI_COMPLETE('SNOWFLAKE.MODELS."LLAMA3.1-70B"', 'Hello');
-- this fails because the first argument is
-- neither an identifier for an accessible model object
-- nor is it a model name in the allowlist
SELECT AI_COMPLETE('SNOWFLAKE-ARCTIC', 'Hello');
Problèmes courants¶
l’accès à un modèle (soit par liste d’autorisation, soit via le RBAC) ne signifie pas toujours qu’il peut être utilisé. Il peut encore être soumis à des contraintes de région, d’obsolescence ou à d’autres contraintes de disponibilité. Ces restrictions peuvent entraîner des messages d’erreur qui semblent similaires à des erreurs d’accès au modèle.
Les contrôles d’accès aux modèles régissent uniquement l’utilisation d’un modèle, et non l’utilisation d’une fonctionnalité elle-même, qui peut avoir ses propres contrôles d’accès. par exemple, l’accès à
AI_COMPLETEest régi par le rôle de base de donnéesCORTEX_USER. Pour plus d’informations, voir Privilèges LLM Cortex.Toutes les fonctions ne prennent pas en charge les contrôles d’accès aux modèles. consultez le tableau des fonctionnalités prises en charge pour voir les méthodes de contrôle d’accès prises en charge par une fonctionnalité donnée.
Les rôles secondaires peuvent masquer les autorisations. Par exemple, si un utilisateur a ACCOUNTADMIN en tant que rôle secondaire, tous les objets du modèle peuvent être accessibles. Désactivez temporairement les rôles secondaires lors de la vérification des autorisations.
Qualified model object identifiers are quoted and therefore case-sensitive. See QUOTED_IDENTIFIERS_IGNORE_CASE for more information.
Fonctionnalités prises en charge¶
Les contrôles d’accès aux modèles sont pris en charge par les fonctionnalités suivantes :
Fonctionnalité |
Liste d’autorisation au niveau du compte |
Contrôle d’accès basé sur les rôles |
Remarques |
|---|---|---|---|
✔ |
✔ |
||
✔ |
✔ |
Si le modèle alimentant cette fonction n’est pas autorisé, le message d’erreur contient des informations sur la manière de modifier la liste d’autorisation. |
|
✔ |
✔ |
Si le modèle alimentant cette fonction n’est pas autorisé, le message d’erreur contient des informations sur la manière de modifier la liste d’autorisation. |
|
✔ |
✔ |
Si le modèle alimentant cette fonction n’est pas autorisé, le message d’erreur contient des informations sur la manière de modifier la liste d’autorisation. |
|
✔ |
✔ |
Si le modèle alimentant cette fonction n’est pas autorisé, le message d’erreur contient des informations sur la manière de modifier la liste d’autorisation. |
|
✔ |
✔ |
||
✔ |
✔ |
||
✔ |
✔ |
||
✔ |
✔ |
Disponibilité régionale¶
Snowflake Cortex AI functions are available in the following regions. If your region is not listed for a particular function, use cross-region inference.
Note
La fonction TRY_COMPLETE est disponible dans les mêmes régions que COMPLETE.
La fonction AI_COUNT_TOKENS est disponible dans toutes les régions pour tous les modèles, mais les modèles eux-mêmes ne sont disponibles que dans les régions spécifiées dans les tables ci-dessous.
The following functions and models are available in any region via cross-region inference.
Fonction
Model
|
Inter-Cloud (n’importe quelle région)
|
AWS US
(inter-régionale)
|
Gouvernement commercial AWS US
(inter-régionale)
|
AWS EU
(inter-régionale)
|
AWS APJ
(inter-régionale)
|
Azure US
(inter-régionale)
|
Google Cloud US
(inter-régionale)
|
|---|---|---|---|---|---|---|---|
AI_COMPLETE
|
|||||||
claude-sonnet-4-5 |
* |
* |
* |
* |
|||
claude-haiku-4-5 |
* |
* |
|||||
claude-4-sonnet |
✔ |
✔ |
✔ |
✔ |
✔ |
||
claude-3-7-sonnet |
✔ |
✔ |
✔ |
✔ |
|||
claude-3-5-sonnet |
✔ |
✔ |
|||||
llama4-maverick |
✔ |
✔ |
|||||
llama4-scout |
✔ |
✔ |
|||||
llama3.1-8b |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
|
llama3.1-70b |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
|
llama3.3-70b |
✔ |
✔ |
|||||
snowflake-llama-3.3-70b |
✔ |
✔ |
|||||
llama3.1-405b |
✔ |
✔ |
✔ |
✔ |
|||
openai-gpt-4.1 |
✔ |
✔ |
|||||
openai-gpt-5 |
* |
* |
|||||
openai-gpt-5-mini |
* |
* |
|||||
openai-gpt-5-nano |
* |
* |
|||||
openai-gpt-5-chat |
✔ |
||||||
openai-gpt-oss-120b |
* |
||||||
openai-gpt-oss-20b |
* |
||||||
snowflake-llama-3.1-405b |
✔ |
✔ |
✔ |
||||
snowflake-arctic |
✔ |
✔ |
✔ |
||||
deepseek-r1 |
✔ |
✔ |
|||||
mistral-large2 |
✔ |
✔ |
✔ |
✔ |
✔ |
||
mixtral-8x7b |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
|
mistral-7b |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
|
EMBED_TEXT_768
|
|||||||
e5-base-v2 |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
|
snowflake-arctic-embed-m |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
|
snowflake-arctic-embed-m-v1.5 |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
|
EMBED_TEXT_1024
|
|||||||
snowflake-arctic-embed-l-v2.0 |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
|
snowflake-arctic-embed-l-v2.0-8k |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
|
nv-embed-qa-4 |
✔ |
✔ |
|||||
multilingual-e5-large |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
|
voyage-multilingual-2 |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
|
AI_CLASSIFY TEXT
|
✔ |
✔ |
✔ |
✔ |
✔ |
||
AI_CLASSIFY IMAGE
|
✔ |
||||||
AI_EXTRACT
|
✔ |
✔ |
✔ |
✔ |
✔ |
||
AI_FILTER TEXT *
|
✔ |
✔ |
✔ |
✔ |
✔ |
||
AI_FILTER IMAGE *
|
✔ |
||||||
AI_AGG *
|
✔ |
✔ |
✔ |
✔ |
✔ |
||
AI_REDACT
|
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
|
AI_SENTIMENT
|
✔ |
✔ |
✔ |
✔ |
✔ |
||
AI_SIMILARITY TEXT
|
✔ |
✔ |
✔ |
✔ |
✔ |
||
AI_SIMILARITY IMAGE
|
✔ |
✔ |
✔ |
||||
AI_SUMMARIZE_AGG *
|
✔ |
✔ |
✔ |
✔ |
✔ |
||
AI_TRANSCRIBE
|
✔ |
✔ |
✔ |
✔ |
|||
SENTIMENT
|
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
|
ENTITY_SENTIMENT
|
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
|
EXTRACT_ANSWER
|
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
|
SUMMARIZE
|
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
|
TRANSLATE
|
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
Les fonctions et modèles suivants sont disponibles nativement dans les régions Amérique du Nord.
Fonction
Model
|
AWS US West 2
(Oregon)
|
AWS US East 1
(Virginie du Nord)
|
AWS US Est
(Service public commercial - Virginie du Nord)
|
Azure Est US 2
(Virginie)
|
Azure Est US
(Virginie)
|
Azure Ouest US
(Washington)
|
Azure Ouest US 3
(Arizona)
|
Azure Centre- Nord US
(Illinois)
|
Azure Centre-Sud US
(Texas)
|
|---|---|---|---|---|---|---|---|---|---|
AI_COMPLETE
|
|||||||||
claude-4-sonnet |
|||||||||
claude-3-7-sonnet |
|||||||||
claude-3-5-sonnet |
✔ |
✔ |
|||||||
llama4-maverick |
✔ |
||||||||
llama4-scout |
✔ |
||||||||
llama3.1-8b |
✔ |
✔ |
✔ |
✔ |
|||||
llama3.1-70b |
✔ |
✔ |
✔ |
✔ |
|||||
llama3.3-70b |
✔ |
||||||||
snowflake-llama-3.3-70b |
✔ |
||||||||
llama3.1-405b |
✔ |
✔ |
✔ |
✔ |
|||||
openai-gpt-4.1 |
✔ |
||||||||
openai-gpt-oss-120b |
* |
||||||||
openai-gpt-oss-20b |
* |
* |
|||||||
snowflake-llama-3.1-405b |
✔ |
||||||||
snowflake-arctic |
✔ |
✔ |
|||||||
deepseek-r1 |
✔ |
||||||||
mistral-large2 |
✔ |
✔ |
✔ |
✔ |
|||||
mixtral-8x7b |
✔ |
✔ |
✔ |
✔ |
|||||
mistral-7b |
✔ |
✔ |
✔ |
✔ |
|||||
EMBED_TEXT_768
|
|||||||||
e5-base-v2 |
✔ |
✔ |
✔ |
✔ |
|||||
snowflake-arctic-embed-m |
✔ |
✔ |
✔ |
✔ |
|||||
snowflake-arctic-embed-m-v1.5 |
✔ |
✔ |
✔ |
✔ |
|||||
EMBED_TEXT_1024
|
|||||||||
snowflake-arctic-embed-l-v2.0 |
✔ |
✔ |
✔ |
✔ |
|||||
snowflake-arctic-embed-l-v2.0-8k |
✔ |
✔ |
✔ |
✔ |
|||||
nv-embed-qa-4 |
✔ |
||||||||
multilingual-e5-large |
✔ |
✔ |
✔ |
✔ |
|||||
voyage-multilingual-2 |
✔ |
✔ |
✔ |
✔ |
|||||
AI_CLASSIFY TEXT
|
✔ |
✔ |
✔ |
||||||
AI_CLASSIFY IMAGE
|
✔ |
✔ |
|||||||
AI_EXTRACT
|
✔ |
✔ |
✔ |
✔ |
✔ |
||||
AI_FILTER TEXT *
|
✔ |
✔ |
✔ |
||||||
AI_FILTER IMAGE *
|
✔ |
✔ |
|||||||
AI_AGG *
|
✔ |
✔ |
✔ |
||||||
AI_REDACT
|
✔ |
✔ |
✔ |
✔ |
|||||
AI_SIMILARITY TEXT
|
✔ |
✔ |
✔ |
||||||
AI_SIMILARITY IMAGE
|
✔ |
✔ |
|||||||
AI_SUMMARIZE_AGG *
|
✔ |
✔ |
✔ |
||||||
AI_TRANSCRIBE
|
✔ |
✔ |
✔ |
||||||
SENTIMENT |
✔ |
✔ |
✔ |
✔ |
|||||
ENTITY_SENTIMENT |
✔ |
✔ |
✔ |
✔ |
|||||
EXTRACT_ANSWER |
✔ |
✔ |
✔ |
✔ |
|||||
SUMMARIZE |
✔ |
✔ |
✔ |
✔ |
|||||
TRANSLATE |
✔ |
✔ |
✔ |
✔ |
Les fonctions et modèles suivants sont disponibles nativement dans les régions européennes.
Fonction
Model
|
AWS Europe Central 1
(Francfort)
|
AWS Europe Ouest 1
(Irlande)
|
Azure Europe de l’Ouest
(Pays-Bas)
|
|---|---|---|---|
AI_COMPLETE
|
|||
claude-4-sonnet |
|||
claude-3-7-sonnet |
|||
claude-3-5-sonnet |
|||
llama4-maverick |
|||
llama4-scout |
|||
llama3.1-8b |
✔ |
✔ |
✔ |
llama3.1-70b |
✔ |
✔ |
✔ |
llama3.3-70b |
|||
snowflake-llama-3.3-70b |
|||
llama3.1-405b |
|||
openai-gpt-4.1 |
|||
openai-gpt-oss-120b |
|||
openai-gpt-oss-20b |
|||
snowflake-llama-3.1-405b |
|||
snowflake-arctic |
|||
deepseek-r1 |
|||
mistral-large2 |
✔ |
✔ |
✔ |
mixtral-8x7b |
✔ |
✔ |
✔ |
mistral-7b |
✔ |
✔ |
✔ |
EMBED_TEXT_768
|
|||
e5-base-v2 |
✔ |
✔ |
|
snowflake-arctic-embed-m |
✔ |
✔ |
✔ |
snowflake-arctic-embed-m-v1.5 |
✔ |
✔ |
✔ |
EMBED_TEXT_1024 |
|||
snowflake-arctic-embed-l-v2.0 |
✔ |
✔ |
✔ |
snowflake-arctic-embed-l-v2.0-8k |
✔ |
✔ |
✔ |
nv-embed-qa-4 |
|||
multilingual-e5-large |
✔ |
✔ |
✔ |
voyage-multilingual-2 |
✔ |
✔ |
✔ |
AI_CLASSIFY TEXT
|
✔ |
✔ |
✔ |
AI_CLASSIFY IMAGE
|
✔ |
||
AI_EXTRACT
|
✔ |
✔ |
✔ |
AI_FILTER TEXT *
|
✔ |
✔ |
✔ |
AI_FILTER IMAGE *
|
✔ |
||
AI_AGG *
|
✔ |
✔ |
✔ |
AI_REDACT
|
✔ |
✔ |
✔ |
AI_SIMILARITY TEXT
|
✔ |
✔ |
✔ |
AI_SIMILARITY IMAGE
|
✔ |
||
AI_SUMMARIZE_AGG *
|
✔ |
✔ |
✔ |
AI_TRANSCRIBE
|
✔ |
||
SENTIMENT |
✔ |
✔ |
✔ |
ENTITY_SENTIMENT |
✔ |
✔ |
|
EXTRACT_ANSWER |
✔ |
✔ |
✔ |
SUMMARIZE |
✔ |
✔ |
✔ |
TRANSLATE |
✔ |
✔ |
✔ |
The following functions and models are available natively in Asia-Pacific regions:
Fonction
| Model
|
AWS AP Sud-Est 2
(Sydney)
|
AWS AP Nord-Est 1
(Tokyo)
|
|---|---|---|
AI_COMPLETE
|
||
claude-4-sonnet |
||
claude-3-7-sonnet |
||
claude-3-5-sonnet |
✔ |
|
llama4-maverick |
||
llama4-scout |
||
llama3.1-8b |
✔ |
✔ |
llama3.1-70b |
✔ |
✔ |
llama3.3-70b |
||
snowflake-llama-3.3-70b |
||
llama3.1-405b |
||
openai-gpt-4.1 |
||
snowflake-llama-3.1-405b |
||
snowflake-arctic |
||
deepseek-r1 |
||
mistral-large2 |
✔ |
✔ |
mixtral-8x7b |
✔ |
✔ |
mistral-7b |
✔ |
✔ |
EMBED_TEXT_768
|
||
e5-base-v2 |
✔ |
✔ |
snowflake-arctic-embed-m |
✔ |
✔ |
snowflake-arctic-embed-m-v1.5 |
✔ |
✔ |
EMBED_TEXT_1024
|
||
snowflake-arctic-embed-l-v2.0 |
✔ |
✔ |
snowflake-arctic-embed-l-v2.0-8k |
✔ |
✔ |
nv-embed-qa-4 |
||
multilingual-e5-large |
✔ |
✔ |
voyage-multilingual-2 |
✔ |
✔ |
AI_EXTRACT
|
✔ |
✔ |
AI_CLASSIFY TEXT
|
✔ |
✔ |
AI_CLASSIFY IMAGE
|
||
AI_FILTER TEXT *
|
✔ |
✔ |
AI_FILTER IMAGE *
|
||
AI_AGG *
|
✔ |
✔ |
AI_SIMILARITY TEXT
|
✔ |
✔ |
AI_SIMILARITY IMAGE
|
||
AI_SUMMARIZE_AGG *
|
✔ |
✔ |
AI_TRANSCRIBE
|
||
EXTRACT_ANSWER |
✔ |
✔ |
SENTIMENT |
✔ |
✔ |
ENTITY_SENTIMENT |
✔ |
|
SUMMARIZE |
✔ |
✔ |
TRANSLATE |
✔ |
✔ |
* Indicates a preview function or model. Preview features are not suitable for production workloads.
The following Snowflake Cortex AI functions and models are available in the following extended regions.
Fonction
Model
|
AWSUS Est 2
(Ohio)
|
AWS CA Central 1
(Central)
|
AWS SA East 1
(São Paulo)
|
AWS Europe Ouest 2
(Londres)
|
AWS Europe Central 1
(Francfort)
|
AWS Europe du Nord 1
(Stockholm)
|
AWS AP Nord-Est 1
(Tokyo)
|
AWS AP Sud 1
(Mumbai)
|
AWS AP Sud-Est 2
(Sydney)
|
AWS AP Sud-Est 3
(Jakarta)
|
Azure Centre-Sud US
(Texas)
|
Azure West US 2
(Washington)
|
Azure UK Sud
(Londres)
|
Azure Nord de l’Europe
(Irlande)
|
Azure Suisse Nord
(Zurich)
|
Azure Centre de l’Inde
(Pune)
|
Azure Japon Est
(Tokyo, Saitama)
|
Azure Asie du Sud-Est
(Singapour)
|
Azure Australie Est
(Nouvelle-Galles du Sud)
|
Google Cloud Europe West 2
(Londres)
|
Google Cloud Europe West 4
(Pays-Bas)
|
Google Cloud US Central 1
(Iowa)
|
Google Cloud US East 4
(Virginie du Nord)
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
EMBED_TEXT_768
|
|||||||||||||||||||||||
snowflake-arctic-embed-m-v1.5 |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
snowflake-arctic-embed-m |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
EMBED_TEXT_1024
|
|||||||||||||||||||||||
multilingual-e5-large |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
AI_EXTRACT
|
✔ |
✔ |
✔ |
✔ |
✔ |
Interrégionale uniquement |
✔ |
Interrégionale uniquement |
✔ |
Interrégionale uniquement |
✔ |
✔ |
Interrégionale uniquement |
✔ |
Interrégionale uniquement |
✔ |
✔ |
✔ |
✔ |
Interrégionale uniquement |
Interrégionale uniquement |
Interrégionale uniquement |
Interrégionale uniquement |
The following table lists availability of legacy models. These models have not been deprecated and can still be used. However, Snowflake recommends newer models for new development.
Fonction
(Modèle)
|
AWS US West 2
(Oregon)
|
AWS US East 1
(Virginie du Nord)
|
AWS Europe Central 1
(Francfort)
|
AWS Europe Ouest 1
(Irlande)
|
AWS AP Sud-Est 2
(Sydney)
|
AWS AP Nord-Est 1
(Tokyo)
|
Azure Est US 2
(Virginie)
|
Azure Europe de l’Ouest
(Pays-Bas)
|
|---|---|---|---|---|---|---|---|---|
AI_COMPLETE
|
||||||||
llama3-8b |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
||
llama3-70b |
✔ |
✔ |
✔ |
✔ |
✔ |
|||
mistral-large |
✔ |
✔ |
✔ |
✔ |
✔ |
|||
openai-o4-mini |
✔ |
Create stage for media files¶
Cortex AI Functions that process media files (documents, images, audio, or video) require the files to be stored on an internal or external stage. The stage must use server-side encryption. If you want to be able to query the stage or programmatically process all the files stored there, the stage must have a directory table.
The SQL below creates a suitable internal stage:
CREATE OR REPLACE STAGE input_stage
DIRECTORY = ( ENABLE = true )
ENCRYPTION = ( TYPE = 'SNOWFLAKE_SSE' );
To process files from external object storage (e.g., Amazon S3), create a storage integration, then create an external stage that uses the storage integration. To learn how to configure a Snowflake Storage Integration, see our detailed guides:
Create an external stage that references the integration and points to your cloud storage container. This example points to an Amazon S3 bucket:
CREATE OR REPLACE STAGE my_aisql_media_files
STORAGE_INTEGRATION = my_s3_integration
URL = 's3://my_bucket/prefix/'
DIRECTORY = ( ENABLE = TRUE )
ENCRYPTION = ( TYPE = 'AWS_SSE_S3' );
With an internal or external stage created, and files stored there, you can use Cortex AI Functions to process media files stored in the stage. For more information, see:
Note
AI Functions are currently incompatible with custom network policies.
Cortex AI Functions storage best practices¶
You may find the following best practices helpful when working with media files in stages with Cortex AI Functions:
Establish a scheme for organizing media files in stages. For example, create a separate stage for each team or project, and store the different types of media files in subdirectories.
Enable directory listings on stages to allow querying and programmatic access to its files.
Astuce
To automatically refresh the directory table for the external stage when new or updated files are available, set AUTO_REFRESH = TRUE when creating the stage.
For external stages, use fine-grained policies on the cloud provider side (for example, AWS IAM policies) to restrict the storage integration’s access to only what is necessary.
Always use encryption, such as AWS_SSE or SNOWFLAKE_SSE, to protect your data at rest.
Considérations relatives aux clients¶
Les fonctions Snowflake Cortex AI ont un coût de calcul basé sur le nombre de jetons traités. Reportez-vous à la table de consommation des services Snowflake pour le coût de chaque fonction en crédits par million de jetons.
un jeton est la plus petite unité de texte traitée par les fonctions d’AI de snowflake cortex. Une convention de l’industrie pour le texte est qu’un jeton équivaut approximativement à quatre caractères, bien que cela puisse varier selon le modèle, de même que l’équivalence des jetons pour les fichiers média.
For functions that generate new text using provided text (AI_COMPLETE, AI_CLASSIFY, AI_FILTER, AI_AGG, AI_SUMMARIZE, and AI_TRANSLATE, and their previous versions in the SNOWFLAKE.CORTEX schema), both input and output tokens are billable.
Pour Cortex Guard, seuls les jetons d’entrée sont comptés. le nombre de jetons d’entrée est basé sur le nombre de jetons de sortie de AI_COMPLETE (ou COMPLETE). l’utilisation de cortex guard est facturée en plus du coût de la fonction AI_COMPLETE (ou COMPLETE).
For AI_SIMILARITY, AI_EMBED, and the SNOWFLAKE.CORTEX.EMBED_* functions, only input tokens are counted.
Pour EXTRACT_ANSWER, le nombre de jetons facturables est la somme du nombre de jetons dans les champs
from_textetquestion.AI_CLASSIFY, AI_FILTER, AI_AGG, AI_SENTIMENT, AI_SUMMARIZE_AGG, SUMMARIZE, TRANSLATE, AI_TRANSLATE, EXTRACT_ANSWER, ENTITY_SENTIMENT, and SENTIMENT add a prompt to the input text in order to generate the response. As a result, the billed token count is higher than the number of tokens in the text you provide.
Les étiquettes, les descriptions et les exemples d’AI_CLASSIFY sont comptés comme des jetons d’entrée pour chaque enregistrement traité, et non pas une seule fois pour chaque appel à AI_CLASSIFY.
Pour AI_PARSE_DOCUMENT (ou SNOWFLAKE.CORTEX.PARSE_DOCUMENT), la facturation est basée sur le nombre de pages de documents traitées.
TRY_COMPLETE (SNOWFLAKE.CORTEX) n’entraîne pas de frais de traitement des erreurs. si la fonction TRY_COMPLETE(SNOWFLAKE.CORTEX) renvoie NULL, aucun frais n’est engagé.
pour AI_EXTRACT, les jetons d’entrée et de sortie sont comptés. l’argument
responseFormatest compté comme jetons d’entrée. Pour les formats de documents composés de pages, le nombre de pages traitées est compté comme jeton d’entrée. Chaque page d’un document compte pour 970 jetons.AI_COUNT_TOKENS n’entraîne que des coûts de calcul pour exécuter la fonction. Aucun coût supplémentaire basé sur les jetons n’est encouru.
Pour les modèles qui prennent en charge les fichiers médias tels que les images ou l’audio :
Les fichiers son sont facturés à 50 jetons par seconde d’audio.
L’équivalence en jetons des images est déterminée par le modèle utilisé. pour plus d’informations, consultez les considérations relatives aux coûts des images AI.
Snowflake recommends executing queries that call a Snowflake Cortex AI Function with a smaller warehouse (no larger than MEDIUM). Larger warehouses do not increase performance. The cost associated with keeping a warehouse active continues to apply when executing a query that calls a Snowflake Cortex LLM Function. For general information on compute costs, see Understanding compute cost.
Warehouse sizing¶
Snowflake recommends using a warehouse size no larger than MEDIUM when calling Snowflake Cortex AI Functions. Using a larger warehouse than necessary does not increase performance, but can result in unnecessary costs. This recommendation may change in the future as we continue to evolve Cortex AI Functions.
Suivi des coûts des services AI¶
Pour suivre les crédits utilisés pour les services d’AI, y compris les fonctions LLM de votre compte, utilisez l” Vue METERING_HISTORY :
SELECT *
FROM SNOWFLAKE.ACCOUNT_USAGE.METERING_DAILY_HISTORY
WHERE SERVICE_TYPE='AI_SERVICES';
Track credit consumption for Cortex AI Functions¶
To view the credit and token consumption for each AI Function call, use the Vue CORTEX_FUNCTIONS_USAGE_HISTORY:
SELECT *
FROM SNOWFLAKE.ACCOUNT_USAGE.CORTEX_FUNCTIONS_USAGE_HISTORY;
Vous pouvez également voir la consommation de crédits et de jetons pour chaque requête dans votre compte Snowflake. La vue de la consommation de crédits et de jetons pour chaque requête vous aide à identifier les requêtes qui consomment le plus de crédits et de jetons.
L’exemple de requête suivant utilise l”Vue CORTEX_FUNCTIONS_QUERY_USAGE_HISTORY pour afficher la consommation de crédits et de jetons pour toutes vos requêtes au sein de votre compte.
SELECT * FROM SNOWFLAKE.ACCOUNT_USAGE.CORTEX_FUNCTIONS_QUERY_USAGE_HISTORY;
Vous pouvez également utiliser la même vue pour voir la consommation de crédits et de jetons pour une requête spécifique.
SELECT * FROM SNOWFLAKE.ACCOUNT_USAGE.CORTEX_FUNCTIONS_QUERY_USAGE_HISTORY
WHERE query_id='<query-id>';
Note
Vous ne pouvez pas obtenir d’informations granulaires sur l’utilisation des requêtes effectuées avec l’API REST.
L’historique de l’utilisation des requêtes est groupé en fonction des modèles utilisés dans la requête. Par exemple, si vous avez exécuté :
SELECT AI_COMPLETE('mistral-7b', 'Is a hot dog a sandwich'), AI_COMPLETE('mistral-large', 'Is a hot dog a sandwich');
L’historique de l’utilisation de la requête fait apparaître deux lignes, l’une pour mistral-7b et l’autre pour mistral-large.
Quotas d’utilisation¶
On-demand Snowflake accounts without a valid payment method (such as trial accounts) are limited to 10 credits per day for Snowflake Cortex AI Functions usage. To remove this limit, convert your trial account to a paid account.
Restrictions du modèle¶
Les modèles utilisés par Snowflake Cortex sont limités en taille comme décrit dans le tableau ci-dessous. Les tailles sont données en jetons. Les jetons représentent généralement environ quatre caractères de texte, donc le nombre de mots correspondant à une limite est inférieur au nombre de jetons. Les entrées qui dépassent la limite entraînent une erreur.
La taille maximale de la sortie qu’un modèle peut produire est limitée par les éléments suivants :
La limite du jeton de sortie du modèle.
L’espace disponible dans la fenêtre contextuelle après que le modèle a consommé les jetons d’entrée.
Par exemple, claude-3-5-sonnet dispose d’une fenêtre contextuelle de 200 000 jetons. Si 100 000 jetons sont utilisés comme entrée, le modèle peut générer jusqu’à 8 192 jetons. Toutefois, si 195 000 jetons sont utilisés en entrée, le modèle ne peut générer que 5 000 jetons au maximum, soit un total de 200 000 jetons.
Important
Dans la région AWS AP Southeast 2 (Sydney) :
la fenêtre contextuelle pour
llama3-8betmistral-7best de 4 096 jetons.la fenêtre contextuelle pour
llama3.1-8best de 16 384 jetons.la fenêtre contextuelle pour le modèle géré par Snowflake à partir de la fonction SUMMARIZE est de 4 096 jetons.
Dans la région AWS Europe West 1 (Irlande) :
la fenêtre contextuelle pour
llama3.1-8best de 16 384 jetons.la fenêtre contextuelle pour
mistral-7best de 4 096 jetons.
Fonction |
Modèle |
Fenêtre contextuelle (jetons) |
Sortie maximale (jetons) |
|---|---|---|---|
COMPLETE |
|
128,000 |
8,192 |
|
128,000 |
8,192 |
|
|
4,096 |
8,192 |
|
|
32,768 |
8,192 |
|
|
200,000 |
64,000 |
|
|
200,000 |
64,000 |
|
|
200,000 |
32,000 |
|
|
200,000 |
32,000 |
|
|
200,000 |
8,192 |
|
|
32,000 |
8,192 |
|
|
128,000 |
8,192 |
|
|
128,000 |
32,000 |
|
|
200,000 |
32,000 |
|
|
272,000 |
8,192 |
|
|
272,000 |
8,192 |
|
|
272,000 |
8,192 |
|
|
128,000 |
8,192 |
|
|
128,000 |
8,192 |
|
|
128,000 |
8,192 |
|
|
32,000 |
8,192 |
|
|
8,000 |
8,192 |
|
|
8,000 |
8,192 |
|
|
128,000 |
8,192 |
|
|
128,000 |
8,192 |
|
|
128,000 |
8,192 |
|
|
128,000 |
8,192 |
|
|
128,000 |
8,192 |
|
|
8,000 |
8,192 |
|
|
32,000 |
8,192 |
|
EMBED_TEXT_768 |
|
512 |
s/o |
|
512 |
s/o |
|
EMBED_TEXT_1024 |
|
512 |
s/o |
|
512 |
s/o |
|
|
32,000 |
s/o |
|
AI_EXTRACT |
|
128,000 |
51 200 |
AI_FILTER |
Modèle géré par Snowflake |
128,000 |
s/o |
AI_CLASSIFY |
Modèle géré par Snowflake |
128,000 |
s/o |
AI_AGG |
Modèle géré par Snowflake |
128 000 par ligne
peuvent être utilisés sur plusieurs lignes
|
8,192 |
AI_SENTIMENT |
Modèle géré par Snowflake |
2,048 |
s/o |
AI_SUMMARIZE_AGG |
Modèle géré par Snowflake |
128 000 par ligne
peuvent être utilisés sur plusieurs lignes
|
8,192 |
ENTITY_SENTIMENT |
Modèle géré par Snowflake |
2,048 |
s/o |
EXTRACT_ANSWER |
Modèle géré par Snowflake |
2 048 pour le texte
64 pour la question
|
s/o |
SENTIMENT |
Modèle géré par Snowflake |
512 |
s/o |
SUMMARIZE |
Modèle géré par Snowflake |
32,000 |
4,096 |
TRANSLATE |
Modèle géré par Snowflake |
4,096 |
s/o |
Choix d’un modèle¶
La fonction Snowflake Cortex AI_COMPLETE prend en charge plusieurs modèles dont la capacité, la latence et le coût varient. Ces modèles ont été soigneusement choisis pour correspondre aux cas d’utilisation courants des clients. Pour obtenir la meilleure performance par crédit, choisissez un modèle qui correspond bien à la taille du contenu et à la complexité de votre tâche. Voici un bref aperçu des modèles disponibles.
Grands modèles¶
Si vous ne savez pas par où commencer, essayez d’abord les modèles les plus performants afin d’établir une base de référence pour évaluer les autres modèles. claude-3-7-sonnet et mistral-large2 sont les modèles les plus performants proposés par Snowflake Cortex. Ils vous donneront une bonne idée de ce que peut faire un modèle à la pointe de la technologie.
Claude 3-7 Sonnetest un leader dans le domaine du raisonnement général et des capacités multimodales. Il surpasse ses prédécesseurs dans les tâches qui requièrent un raisonnement à travers différents domaines et modalités. Vous pouvez utiliser sa large capacité de sortie pour obtenir davantage d’informations à partir de requêtes structurées ou non structurées. Ses capacités de raisonnement et ses grandes fenêtres contextuelles le rendent bien adapté aux flux de travail agentiques.deepseek-r1est un modèle de base formé à l’aide de l’apprentissage par renforcement à grande échelle (RL) sans affinage supervisé (SFT). Il peut offrir des performances élevées dans les tâches de mathématiques, de codage et de raisonnement. Pour accéder au modèle, définissez le paramètre d’inférence inter-régionale surAWS_US.mistral-large2est le grand modèle de langage le plus avancé de l’AI Mistral avec des capacités de raisonnement de premier plan. Par rapport àmistral-large, il est nettement plus performant en matière de génération de code, de mathématiques, de raisonnement et offre un support multilingue beaucoup plus puissant. C’est idéal pour les tâches complexes qui requièrent de grandes capacités de raisonnement ou qui sont hautement spécialisées, telles que la génération de textes synthétiques, la génération de codes et l’analyse de texte multilingue.llama3.1-405best un modèle open source de la famille de modèlesllama3.1de Meta avec une grande fenêtre de contexte de 128K. Il excelle dans le traitement de documents longs, l’assistance multilingue, la génération de données synthétiques et la distillation de modèles.snowflake-llama3.1-405best un modèle dérivé du modèle open source llama3.1. Il utilise les `optimisations SwiftKV<https://www.snowflake.com/en/blog/up-to-75-lower-inference-cost-llama-meta-llm/>`_ développées par l’équipe de recherche de l’AI de Snowflake pour fournir jusqu’à 75 % de réduction des coûts d’inférence. SwiftKV permet d’obtenir des performances de débit supérieures avec une perte de précision minimale.
Modèles moyens¶
llama3.1-70best un modèle open source qui offre des performances de pointe idéales pour les applications de chat, la création de contenu et les applications d’entreprise. Il s’agit d’un modèle hautement performant et rentable qui permet divers cas d’utilisation avec une fenêtre contextuelle de 128K.llama3-70best toujours pris en charge et dispose d’une fenêtre contextuelle de 8K.snowflake-llama3.3-70best un modèle dérivé du modèle open source llama3.3. Il utilise les `optimisations SwiftKV<https://www.snowflake.com/en/blog/up-to-75-lower-inference-cost-llama-meta-llm/>`_ développées par l’équipe de recherche de l’AI de Snowflake pour fournir jusqu’à 75 % de réduction des coûts d’inférence. SwiftKV permet d’obtenir des performances de débit supérieures avec une perte de précision minimale.snowflake-arcticest la solution de premier plan de Snowflake axée sur l’entreprise LLM. Arctic excelle dans les tâches d’entreprise telles que la génération de SQL, le codage et les benchmarks de suivi des instructions.mixtral-8x7best idéal pour la génération de textes, la classification et la réponse aux questions. Les modèles Mistral sont optimisés pour une faible latence avec de faibles besoins en mémoire, ce qui se traduit par un débit plus élevé pour les cas d’utilisation en entreprise.
Petits modèles¶
llama3.1-8best idéal pour les tâches qui nécessitent un raisonnement faible à modéré. Il s’agit d’un modèle léger et ultra-rapide avec une fenêtre contextuelle de 128K.llama3-8bfournit une fenêtre contextuelle plus petite et une précision relativement faible.mistral-7best idéal pour vos tâches les plus simples de résumé, de structuration et de réponse à des questions qui doivent être effectuées rapidement. Il offre une faible latence et un traitement à haut débit pour plusieurs pages de texte grâce à sa fenêtre contextuelle de 32 Ko.
Le tableau suivant fournit des informations sur les performances des modèles les plus courants sur différents benchmarks, y compris les modèles proposés par Snowflake Cortex AI_COMPLETE ainsi que quelques autres modèles courants.
Modèle |
Fenêtre contextuelle
(Jetons)
|
MMLU
(Raisonnement)
|
HumanEval
(Codage)
|
GSM8K
(Raisonnement arithmétique)
|
Spider 1.0
(SQL)
|
|---|---|---|---|---|---|
128,000 |
88,7 |
90,2 |
96,4 |
- |
|
200,000 |
88,3 |
92,0 |
96,4 |
- |
|
128,000 |
88,6 |
89 |
96,8 |
- |
|
128,000 |
86 |
80,5 |
95,1 |
- |
|
128,000 |
84 |
92 |
93 |
- |
|
128,000 |
73 |
72,6 |
84,9 |
- |
|
32,000 |
70,6 |
40,2 |
60,4 |
- |
|
4,096 |
67,3 |
64,3 |
69,7 |
79 |
|
32,000 |
62,5 |
26,2 |
52,1 |
- |
|
GPT 3.5 Turbo* |
4,097 |
70 |
48,1 |
57,1 |
- |
Versions antérieures du modèle¶
Les fonctions AI_COMPLETE et COMPLETE de Snowflake Cortex prennent également en charge les versions de modèles plus anciennes suivantes. Nous vous recommandons d’utiliser les dernières versions de modèles au lieu des versions répertoriées dans ce tableau.
Modèle |
Fenêtre contextuelle
(Jetons)
|
MMLU
(Raisonnement)
|
HumanEval
(Codage)
|
GSM8K
(Raisonnement arithmétique)
|
Spider 1.0
(SQL)
|
|---|---|---|---|---|---|
32,000 |
81,2 |
45,1 |
81 |
81 |
|
4,096 |
68,9 |
30,5 |
57,5 |
- |
Using Snowflake Cortex AI Functions with Python¶
Call Cortex AI Functions in Snowpark Python¶
You can use Snowflake Cortex AI Functions in the Snowpark Python API. These functions include the following. Note that the functions in Snowpark Python have names in Pythonic « snake_case » format, with words separated by underscores and all letters in lowercase.
Exemple ai_agg¶
la fonction ai_agg agrège une colonne de texte en utilisant des instructions en langage naturel de la même manière que vous demanderiez à un analyste de résumer ou d’extraire des résultats à partir de données groupées ou non groupées.
l’exemple suivant résume les avis des clients pour chaque produit utilisant la fonction:code:ai_agg. La fonction prend une colonne de texte et une instruction en langage naturel pour synthétiser les avis.
from snowflake.snowpark.functions import ai_agg, col
df = session.create_dataframe([
[1, "Excellent product!"],
[1, "Great battery life."],
[1, "A bit expensive but worth it."],
[2, "Terrible customer service."],
[2, "Won’t buy again."],
], schema=["product_id", "review"])
# Summarize reviews per product
summary_df = df.group_by("product_id").agg(
ai_agg(col("review"), "Summarize the customer reviews in one sentence.")
)
summary_df.show()
Note
Utilisez des descriptions de tâches détaillées et centrées sur le cas d’utilisation. Par exemple, « Résumez les commentaires des clients pour un rapport destiné aux investisseurs ».
Catégoriser du texte avec ai_classify¶
La fonction ai_classify prend une chaîne ou une image et la classe dans les catégories que vous définissez.
L’exemple suivant classe les avis de voyageurs dans des catégories telles que « voyages » et « cuisine ». La fonction prend une colonne de texte et une liste de catégories dans lesquelles classer le texte.
from snowflake.snowpark.functions import ai_classify, col
df = session.create_dataframe([
["I dream of backpacking across South America."],
["I made the best pasta yesterday."],
], schema=["sentence"])
df = df.select(
"sentence",
ai_classify(col("sentence"), ["travel", "cooking"]).alias("classification")
)
df.show()
Note
Vous pouvez fournir jusqu’à 500 catégories. Vous pouvez classer à la fois du texte et des images.
Filtrer les lignes avec ai_filter¶
La fonction ai_filter évalue une condition de langage naturel et renvoie True or False. Vous pouvez l’utiliser pour filtrer ou baliser des lignes.
from snowflake.snowpark.functions import ai_filter, prompt, col
df = session.create_dataframe(["Canada", "Germany", "Japan"], schema=["country"])
filtered_df = df.select(
"country",
ai_filter(prompt("Is {0} in Asia?", col("country"))).alias("is_in_asia")
)
filtered_df.show()
Note
Vous pouvez filtrer à la fois sur les chaînes et sur les fichiers. Pour les invites dynamiques, utilisez la fonction:code:Invite. pour plus d’informations, consultez la `référence snowpark python<https://docs.snowflake.com/developer-guide/snowpark/reference/python/latest/snowpark/index>`_.
Call Cortex AI Functions in Snowflake ML¶
Snowflake ML contains the older AI Functions, those with names that don’t begin with « AI ». These functions are supported in version 1.1.2 and later of Snowflake ML. The names are rendered in Pythonic « snake_case » format, with words separated by underscores and all letters in lowercase.
Si vous exécutez votre script Python en dehors de Snowflake, vous devez créer une session Snowpark pour utiliser ces fonctions. Pour obtenir des instructions, voir Connexion à Snowflake.
Traiter des valeurs uniques¶
L’exemple Python suivant illustre l’appel de fonctions Snowflake Cortex AI sur des valeurs uniques :
from snowflake.cortex import complete, extract_answer, sentiment, summarize, translate
text = """
The Snowflake company was co-founded by Thierry Cruanes, Marcin Zukowski,
and Benoit Dageville in 2012 and is headquartered in Bozeman, Montana.
"""
print(complete("llama3.1-8b", "how do snowflakes get their unique patterns?"))
print(extract_answer(text, "When was snowflake founded?"))
print(sentiment("I really enjoyed this restaurant. Fantastic service!"))
print(summarize(text))
print(translate(text, "en", "fr"))
Transmettre des options d’hyperparamètres¶
Vous pouvez transmettre des options qui affectent les hyperparamètres du modèle lorsque vous utilisez la fonction complete. L’exemple Python suivant illustre la modification du nombre maximal de jetons de sortie que le modèle peut générer :
from snowflake.cortex import complete, CompleteOptions
model_options1 = CompleteOptions(
{'max_tokens':30}
)
print(complete("llama3.1-8b", "how do snowflakes get their unique patterns?", options=model_options1))
Appeler des fonctions sur des colonnes de table¶
Vous pouvez appeler une fonction AI sur une colonne du tableau, comme indiqué ci-dessous. Cet exemple nécessite un objet session (stocké dans session) et une table articles contenant une colonne de texte abstract_text, et crée une nouvelle colonne abstract_summary contenant un résumé de l’abrégé.
from snowflake.cortex import summarize
from snowflake.snowpark.functions import col
article_df = session.table("articles")
article_df = article_df.withColumn(
"abstract_summary",
summarize(col("abstract_text"))
)
article_df.collect()
Note
la forme avancée de COMPLETE de type chat (multi-message) n’est actuellement pas prise en charge par python dans snowflake ML.
Utilisation des fonctions Snowflake Cortex AI avec Snowflake CLI¶
Snowflake Cortex AI Functions are available in Snowflake CLI version 2.4.0 and later. See Présentation de Snowflake CLI for more information about using Snowflake CLI. The functions are the old-style functions, those with names that don’t begin with « AI ».
Les exemples suivants illustrent l’utilisation des commandes :codenowrap :snow cortex sur des valeurs uniques. Le paramètre -c spécifie quelle connexion utiliser.
Note
La forme avancée de COMPLETE de type chat (multi-message) n’est actuellement pas prise en charge par Snowflake CLI.
snow cortex complete "Is 5 more than 4? Please answer using one word without a period." -c "snowhouse"
snow cortex extract-answer "what is snowflake?" "snowflake is a company" -c "snowhouse"
snow cortex sentiment "Mary had a little Lamb" -c "snowhouse"
snow cortex summarize "John has a car. John's car is blue. John's car is old and John is thinking about buying a new car. There are a lot of cars to choose from and John cannot sleep because it's an important decision for John."
snow cortex translate herb --to pl
Vous pouvez également utiliser des fichiers contenant le texte que vous souhaitez utiliser pour les commandes. Pour cet exemple, supposons que le fichier about_cortex.txt contienne le contenu suivant :
Snowflake Cortex gives you instant access to industry-leading large language models (LLMs) trained by researchers at companies like Anthropic, Mistral, Reka, Meta, and Google, including Snowflake Arctic, an open enterprise-grade model developed by Snowflake.
Since these LLMs are fully hosted and managed by Snowflake, using them requires no setup. Your data stays within Snowflake, giving you the performance, scalability, and governance you expect.
Snowflake Cortex features are provided as SQL functions and are also available in Python. The available functions are summarized below.
COMPLETE: Given a prompt, returns a response that completes the prompt. This function accepts either a single prompt or a conversation with multiple prompts and responses.
EMBED_TEXT_768: Given a piece of text, returns a vector embedding that represents that text.
EXTRACT_ANSWER: Given a question and unstructured data, returns the answer to the question if it can be found in the data.
SENTIMENT: Returns a sentiment score, from -1 to 1, representing the detected positive or negative sentiment of the given text.
SUMMARIZE: Returns a summary of the given text.
TRANSLATE: Translates given text from any supported language to any other.
Vous pouvez ensuite exécuter la commande snow cortex summarize en passant le nom de fichier à l’aide du paramètre --file, comme indiqué :
snow cortex summarize --file about_cortex.txt
Snowflake Cortex offers instant access to industry-leading language models, including Snowflake Arctic, with SQL functions for completing prompts (COMPLETE), text embedding (EMBED\_TEXT\_768), extracting answers (EXTRACT\_ANSWER), sentiment analysis (SENTIMENT), summarizing text (SUMMARIZE), and translating text (TRANSLATE).
Pour plus d’informations sur ces commandes, consultez Commandes snow cortex.
Avis juridiques¶
La classification des données d’entrées et de sorties est présentée dans la table suivante.
Classification des données d’entrée |
Classification des données de sortie |
Désignation |
|---|---|---|
Usage Data |
Customer Data |
Les fonctions généralement disponibles sont des fonctions AI couvertes. Les fonctions d’aperçu sont les fonctions AI d’aperçu. [1] |
Pour plus d’informations, reportez-vous à Snowflake AI et ML.