Qu'est-ce que Cortex AI SQL ?
Les fonctions Cortex AISQL de Snowflake intègrent l'IA directement dans vos requêtes SQL. Plutôt que d'exporter vos données pour les soumettre à un modèle, il suffit d'ajouter une colonne à n'importe quelle instruction select et d'invoquer l'IA là où résident vos données. Vous pouvez analyser du texte, des images et de l'audio aux côtés de vos données structurées grâce à des fonctions telles que AI_COMPLETE, AI_EXTRACT, AI_CLASSIFY, AI_SUMMARIZE et bien d'autres, le tout propulsé par les modèles d'OpenAI, Anthropic, Meta, Mistral et d'autres encore.
Ce que les clients Snowflake ne réalisent pas toujours, c'est que la tarification au token diffère fondamentalement de la tarification au warehouse à laquelle ils sont habitués. Et la facture peut grimper très vite si l'on n'y prête pas attention.
J'ai vu des équipes lancer un "test rapide" avec Claude Opus et engloutir un nombre considérable de crédits en un après-midi. Elles ignoraient que les tokens en sortie étaient comptabilisés, avaient choisi un modèle onéreux alors qu'un modèle plus économique aurait largement suffi, et n'avaient mis en place aucun suivi pour s'en apercevoir.
Dans cet article, nous verrons comment Cortex AISQL est facturé et comment suivre précisément ses coûts à l'aide des vues account_usage de Snowflake.
Comment fonctionne Cortex AI SQL ?
L'utilisation des fonctions Cortex AISQL est très simple : il suffit de les appeler directement dans vos instructions SQL, comme n'importe quelle autre fonction. Voici un exemple qui classe les retours clients en positifs, négatifs ou neutres :
SELECT
customer_id,
feedback_text,
SNOWFLAKE.CORTEX.AI_CLASSIFY(
feedback_text,
['positive', 'negative', 'neutral']
) as sentiment
FROM customer_feedback
LIMIT 10;
Seul prérequis : votre rôle doit disposer du rôle de base de données SNOWFLAKE.CORTEX_USER. Par défaut, il est attribué au rôle PUBLIC, ce qui signifie que la plupart des utilisateurs y ont déjà accès.
C'est tout. Aucune clé d'API externe, aucun déplacement de données, aucune infrastructure à provisionner. Les modèles d'IA s'exécutent directement dans l'environnement Snowflake.
Référez-vous toujours à la Snowflake Credit Consumption Table
Avant d'entrer dans le détail des coûts de Cortex AISQL, précisons que la tarification complète de Snowflake est disponible dans la Credit Consumption Table, tenue à jour en permanence. La capture d'écran ci-dessous montre que les tarifs varient considérablement d'un modèle d'IA à l'autre. Claude-4-opus est facturé 12 crédits par million de tokens, tandis que certains modèles plus petits ne coûtent qu'une fraction de crédit par million de tokens.
Comment fonctionne la tarification de Cortex AI SQL ?
Avec les fonctions Cortex, vous payez au token traité (tokens en entrée + sortie pour les fonctions génératives, uniquement en entrée pour les embeddings).
Les fonctions génératives telles que AI_COMPLETE, AI_CLASSIFY et AI_SUMMARIZE facturent à la fois les tokens en entrée (le texte envoyé au modèle) ET les tokens en sortie (la réponse générée). Si vous envoyez 100 tokens et en recevez 200, vous payez 300 tokens au total.
La principale **fonction d'embedding** est AI_EMBED, qui vectorise des données comme du texte ou des images. Ici, seuls les tokens en entrée sont facturés, puisque la sortie n'est qu'une suite de nombres (et non du texte généré).
Comprendre les tokens
- 1 token ≈ 4 caractères de texte
- Utilisez la fonction
COUNT_TOKENSpour estimer le coût avant de lancer des opérations coûteuses - Les tokens en entrée ET en sortie sont comptabilisés pour les fonctions comme
AI_COMPLETE,AI_CLASSIFY,AI_SUMMARIZE - Seuls les tokens en entrée sont comptabilisés pour
AI_EMBEDet les fonctions d'extraction
Exemples de tarification
Voici quelques exemples pour donner un ordre de grandeur, sachant que Snowflake fait évoluer ses tarifs en permanence : référez-vous toujours à la Credit Consumption Table. Ces exemples retiennent 3 $ par crédit à titre indicatif.
Petits modèles :
openai-gpt-5-mini: 0,32 crédit = 0,96 $ par million de tokensmistral-7b: 0,12 crédit = 0,36 $ par million de tokens- Exemple :
- Analyse de 20 000 avis produits avec
openai-gpt-5-mini - Avis moyen de 100 tokens : 2 M de tokens = ~1,92 $
- Analyse de 20 000 avis produits avec
Modèles intermédiaires :
llama3.1-70b: 1,21 crédit = 3,63 $ par million de tokensopenai-gpt-4.1: 1,40 crédit = 4,20 $- Exemple : les mêmes 20 000 avis avec
llama3.1-70b= ~7,26 $
Grands modèles (3 crédits ou plus par million de tokens) :
llama-3.1-405b: 3 crédits = 9 $ par million de tokensclaude-4-opus: 12 crédits = 36 $ par million de tokens- Exemple : les mêmes 20 000 avis avec
claude-4-opus= ~72 $
Les facteurs qui font grimper les coûts de Snowflake Cortex AI SQL
Plusieurs éléments peuvent faire fondre vos crédits plus vite que prévu. Voici les points à surveiller.
Les sorties volumineuses multiplient rapidement la facture, puisque les fonctions génératives facturent à la fois les tokens en entrée et en sortie. Un résumé verbeux de 500 mots coûte 5 fois plus cher qu'un résumé concis de 100 mots. Tout dépend de votre prompt engineering.
Le choix du modèle pèse bien plus qu'on ne le pense : les modèles premium comme Claude Opus coûtent 37 fois plus cher qu'un modèle de base comme GPT 5 mini, et pour bon nombre de tâches de classification ou d'analyse de sentiment, un modèle économique suffit largement.
Comment suivre les coûts et l'utilisation de Cortex AI SQL
Snowflake fournit deux vues dédiées au suivi des coûts des fonctions Cortex AISQL, chacune répondant à un besoin différent :
CORTEX_FUNCTIONS_USAGE_HISTORY — Données d'utilisation agrégées à l'heure
- Regroupe la consommation de tokens et de crédits par fonction, modèle et heure
- Ne contient pas l'ID de requête : impossible donc de la rattacher à une requête, un utilisateur ou un rôle précis
- Idéale pour comprendre les tendances et les usages globaux
- Indique quelles fonctions et quels modèles génèrent le plus de coûts
- Données agrégées par tranches d'une heure
CORTEX_FUNCTIONS_QUERY_USAGE_HISTORY — Détail au niveau de chaque requête
- Affiche la consommation de tokens et de crédits pour chaque requête
- Essentielle pour repérer les requêtes ou opérations les plus coûteuses
- Inclut les IDs de requêtes pour pousser l'investigation
- Vous aide à identifier les requêtes à optimiser
Voici quelques exemples de requêtes pour démarrer.
Synthèse horaire ou journalière des coûts par fonction et par modèle :
-- Horaire : sélectionnez simplement toutes les colonnes de la vue :
select
start_time,
end_time,
function_name,
model_name,
warehouse_id,
token_credits,
tokens
from
SNOWFLAKE.ACCOUNT_USAGE.CORTEX_FUNCTIONS_USAGE_HISTORY;
--journalier : il suffit d'agréger
select
date_trunc('day',start_time) as date,
Développer le code
Les 50 requêtes les plus coûteuses. Coût de chaque requête, avec le texte de la requête, l'utilisateur et le warehouse :
SELECT
c.query_id,
q.query_text as query_text,
q.start_time,
q.execution_time / 1000 as execution_seconds,
c.function_name,
c.model_name,
c.tokens,
c.token_credits,
q.user_name,
q.warehouse_name,
FROM SNOWFLAKE.ACCOUNT_USAGE.CORTEX_FUNCTIONS_QUERY_USAGE_HISTORY c
JOIN SNOWFLAKE.ACCOUNT_USAGE.QUERY_HISTORY q
ON c.query_id = q.query_id
WHERE q.start_time >= DATEADD(day, -7, CURRENT_TIMESTAMP())
Développer le code
J'ai également découvert une vue nommée snowflake.account_usage.cortex_aisql_usage_history, sans en trouver de documentation. Cette vue se situe au grain de l'ID de requête et expose usage_time, user_id et warehouse_id. Il s'agit peut-être d'une fonctionnalité en preview non documentée.
Bonnes pratiques et recommandations pour utiliser Cortex AI SQL
Après avoir accompagné plusieurs clients sur les coûts de Cortex AISQL, voici quelques recommandations.
Mettez en place des alertes, pas seulement des dashboards
Les requêtes de monitoring présentées plus haut ne servent à rien si personne ne les exécute. Pour tout ce que vous voulez surveiller dans Snowflake, vous pouvez encapsuler le SQL dans une tâche planifiée couplée à une Notification Integration pour créer un moniteur personnalisé qui envoie des alertes vers Slack ou Teams. Pour une solution de monitoring particulièrement simple à prendre en main, jetez un œil aux monitors dans SELECT.
Testez toujours le nombre de tokens en amont
Avant de traiter 100 000 lignes, exécutez COUNT_TOKENS sur un échantillon. Le nombre de tokens est presque toujours plus élevé qu'on ne l'imagine. Un test rapide du type SELECT AVG(COUNT_TOKENS(your_column)) FROM your_table LIMIT 1000 vous donne immédiatement la mesure du problème.
Commencez par le plus petit modèle qui fait le travail
Je le constate sans cesse : les équipes choisissent par défaut GPT-4 ou les plus gros modèles Claude parce qu'ils sont connus et inspirent confiance. Or, pour la plupart des tâches de classification ou d'analyse de sentiment, gpt-5-mini fait très bien l'affaire pour 10 fois moins cher. Testez d'abord un modèle premium sur 100 lignes, puis essayez le modèle plus économique. Vous serez peut-être surpris de voir que le petit modèle produit des résultats comparables.
Demandez à l'IA de rester concise dans ses réponses
Avec AI_COMPLETE ou AI_SUMMARIZE, vous payez à la fois le prompt ET la réponse. Si votre prompt demande des explications détaillées et que vous traitez des milliers de lignes, les tokens de sortie s'accumulent très vite. Soyez explicite : exigez des réponses courtes.
Mettez vos résultats en cache ou utilisez des mises à jour incrémentales
Si vous reclassifiez les mêmes descriptions produits à chaque exécution d'un rapport, vous gaspillez de l'argent. Matérialisez les résultats de l'IA dans une table. Oui, cela paraît évident, mais tout le monde ne le fait pas.
Surveillez les modèles réellement utilisés
Lancez régulièrement la requête "coût par utilisateur et par warehouse". Vous découvrirez souvent quelqu'un en train de tester un modèle coûteux en dev sans jamais avoir basculé vers une option plus économique en production. Ou, pire encore, une requête incontrôlée qui traite des millions de lignes avec l'un des modèles Claude les plus chers.
Pour conclure
Snowflake fournit tout ce qu'il faut pour suivre les coûts d'AISQL : des vues account usage détaillées, une tarification transparente (mais complexe) et des capacités d'alerte intégrées. Le défi consiste à faire évoluer votre modèle mental pour intégrer la logique de tarification au token. La plupart des utilisateurs aguerris de Snowflake raisonnent instinctivement en durée de requête et en taille de warehouse, mais il faut désormais aussi penser en nombre de tokens et en choix de modèle. Considérez vos premières semaines avec Cortex AISQL comme une période d'apprentissage. Commencez petit, surveillez de près et établissez vos repères avant de passer à l'échelle. Ce modèle de tarification récompense une mise en œuvre réfléchie et sanctionne l'approche "on lance partout et on verra bien". J'ai vu des équipes paniquer face à des coûts d'IA qui s'étaient emballés, alors que les modèles restent raisonnablement tarifés à condition de les utiliser avec discernement. Si vous traitez quotidiennement des volumes de données vraiment massifs avec des fonctions IA, échangez avec votre équipe commerciale Snowflake au sujet d'une tarification au volume. Au-delà de plusieurs millions de tokens par jour, il y a probablement matière à négocier de meilleurs tarifs. Vous devriez désormais vous sentir à l'aise pour utiliser les fonctions Cortex AISQL sans craindre la facture ! Je serais ravi de connaître vos retours sur ces fonctionnalités.
Jeff est consultant Data et Analytics avec plus de 15 ans d'expérience dans l'automatisation des analyses et l'exploitation des données pour piloter les processus métier. Côté technologie, il est spécialisé sur Snowflake + dbt + Tableau. Côté métiers, il a travaillé dans les services publics, les essais cliniques, l'édition, les biens de grande consommation et l'industrie manufacturière. N'hésitez pas à le contacter à tout moment : [email protected].