Fonctions Large Language Model (LLM) (Cortex de Snowflake)

Snowflake Cortex vous donne un accès instantané à de grands modèles de langage (Large Language Model, LLMs) entraînés par des chercheurs dans des entreprises telles que Mistral, Reka, Meta, and Google, y compris Snowflake Arctic, un modèle d’entreprise ouvert développé par Snowflake.

Comme ces LLMs sont entièrement hébergés et gérés par Snowflake, leur utilisation ne nécessite aucune configuration. Vos données restent dans Snowflake, ce qui vous permet de bénéficier des performances, de l’évolutivité et de la gouvernance que vous attendez.

Fonctions disponibles

Les fonctionnalités de Cortex de Snowflake sont fournies sous forme de fonctions SQL et sont également disponibles en Python. Les fonctions Cortex LLM peuvent être regroupées dans les catégories suivantes :

Fonction COMPLETE

La fonction COMPLETE est une fonction à usage général qui peut effectuer une large gamme de tâches spécifiées par l’utilisateur, telles que la classification des sentiments basée sur l’aspect, la génération de données synthétiques et les résumés personnalisés. Cortex Guard est un paramètre de sécurité disponible dans la fonction COMPLETE conçue pour filtrer les éventuelles réponses dangereuses et nuisibles d’un modèle linguistique. Vous pouvez également utiliser cette fonction avec vos modèles affinés.

Fonctions spécifiques à la tâche

Les fonctions spécifiques aux tâches sont des fonctions spécialement conçues et gérées qui automatisent les tâches de routine, comme les résumés simples et les traductions rapides, qui ne nécessitent aucune personnalisation.

  • CLASSIFY_TEXT : Avec une invite, la classe dans l’une des classes que vous définissez.

  • EXTRACT_ANSWER : à partir d’une question et de données non structurées, renvoie la réponse à la question si elle peut être trouvée dans les données.

  • PARSE_DOCUMENT : Avec une zone de préparation interne ou externe avec des documents, renvoie un objet qui contient une chaîne formatée en JSON avec le contenu de texte extrait à l’aide du mode OCR, ou le texte extrait et les éléments de mise en page à l’aide du mode LAYOUT.

  • SENTIMENT : renvoie un score de sentiment, de -1 à 1, représentant le sentiment positif ou négatif détecté dans le texte donné.

  • SUMMARIZE : renvoie un résumé du texte donné.

  • TRANSLATE : traduit un texte donné de n’importe quelle langue prise en charge vers n’importe quelle autre.

  • EMBED_TEXT_768 : étant donné une portion de texte, renvoie une intégration vectorielle de 768 dimensions qui représente ce texte.

  • EMBED_TEXT_1024 : étant donné un portion de texte, renvoie une intégration vectorielle de 1 024 dimensions qui représente ce texte.

Fonctions d’assistance

Les fonctions d’assistance sont des fonctions spécialement conçues et gérées qui réduisent les cas d’échec lors de l’exécution d’autres fonctions LLM, par exemple en obtenant le nombre de jetons dans une invite de saisie pour garantir que l’appel ne dépasse pas une limite de modèle.

  • 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ée.

  • TRY_COMPLETE : 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.

Privilèges requis

Le rôle de base de données CORTEX_USER dans la base de données SNOWFLAKE comprend les privilèges qui permettent aux utilisateurs d’appeler les fonctions LLM Cortex de Snowflake. Par défaut, le rôle CORTEX_USER est accordé au rôle PUBLIC. Le rôle PUBLIC est automatiquement accordé à tous les utilisateurs et rôles, de façon à permettre à tous les utilisateurs de votre compte d’utiliser les fonctions de Snowflake Cortex LLM.

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 à des rôles spécifiques.

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;
Copy

Vous pouvez ensuite accorder un accès sélectif à des rôles spécifiques. Le rôle de base de données SNOWFLAKE.CORTEX_USER ne peut pas être accordé directement à un utilisateur. Pour plus d’informations, voir À l’aide des rôles de base de données SNOWFLAKE. 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 LLM 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;
Copy

Vous pouvez également accorder l’accès aux fonctions LLM Cortex de Snowflake par le biais de rôles existants utilisés par des groupes d’utilisateurs spécifiques. (Voir Rôles utilisateur.) Par exemple, si vous avez créé un rôle analyst qui est utilisé comme rôle par défaut par les analystes de votre organisation, vous pouvez facilement accorder à ces utilisateurs l’accès aux fonctions LLM Cortext de Snowflake avec une seule instruction GRANT.

GRANT DATABASE ROLE SNOWFLAKE.CORTEX_USER TO ROLE analyst;
Copy

Disponibilité

Les fonctions LLM Cortex de Snowflake sont actuellement disponibles dans les régions suivantes. Pour accéder aux LLMs depuis des régions non répertoriées, utilisez le paramètre d’inférence interrégionale.

Note

  • La fonction TRY_COMPLETE est disponible dans les mêmes régions que COMPLETE.

  • La fonction COUNT_TOKENS est disponible dans toutes les régions, mais l’inférence du modèle est spécifique à la région, comme indiqué dans la table.

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)
COMPLETE
(llama3.2-1b)

COMPLETE
(llama3.2-3b)

COMPLETE
(llama3.1-8b)

COMPLETE
(llama3.1-70b)

COMPLETE
(llama3.1-405b)

COMPLETE
(snowflake-arctic)

COMPLETE
(reka-core)

COMPLETE
(reka-flash)

COMPLETE
(mistral-large2)

COMPLETE
(mixtral-8x7b)

COMPLETE
(mistral-7b)

COMPLETE
(jamba-instruct)

COMPLETE
(jamba-1.5-mini)

COMPLETE
(jamba-1.5-large)

COMPLETE
(gemma-7b)

EMBED_TEXT_768
(e5-base-v2)

EMBED_TEXT_768
(snowflake-arctic-embed-m)

EMBED_TEXT_1024
(nv-embed-qa-4)

EMBED_TEXT_1024
(multilingual-e5-large)

EMBED_TEXT_1024
(voyage-multilingual-2)

CLASSIFY_TEXT

EXTRACT_ANSWER

SENTIMENT

SUMMARIZE

TRANSLATE

Les fonctions suivantes de Snowflake Cortex LLM sont actuellement disponibles dans les régions étendues suivantes.

Fonction
(Modèle)
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 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)
GCP Europe Ouest 2
(Londres)
GCP Europe Ouest 4
(Pays-Bas)
GCP US Central 1
(Iowa)
GCP US Est 4
(Virginie du Nord)
EMBED_TEXT_768
(snowflake-arctic-embed-m)

EMBED_TEXT_1024
(multilingual-e5-large)

La table suivante répertorie les modèles hérités. Si vous débutez, commencez par les modèles des tables précédentes :

Héritage
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)
COMPLETE
(llama2-70b-chat)

COMPLETE
(llama3-8b)

COMPLETE
(llama3-70b)

COMPLETE
(mistral-large)

Considérations relatives aux clients

Note

Une facturation PARSE_DOCUMENT évolutive en fonction du nombre de pages traitées est attendue prochainement.

Les fonctions Snowflake Cortex LLM 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 Snowflake Cortex LLM, correspondant approximativement à quatre caractères. L’équivalence du texte brut d’entrée ou de sortie en jetons peut varier selon le modèle.

  • Pour les fonctions qui génèrent un nouveau texte dans la réponse (COMPLETE, CLASSIFY_TEXT, SUMMARIZEet TRANSLATE), les jetons d’entrée et de sortie sont comptés.

  • 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 par le modèle LLM utilisé dans la fonction COMPLETE.

  • Pour les fonctions EMBED_TEXT_*, seuls les jetons d’entrée sont comptés.

  • Pour les fonctions qui n’extraient que des informations de l’entrée (EXTRACT_ANSWER et SENTIMENT), seuls les jetons d’entrée sont comptés.

  • Pour EXTRACT_ANSWER, le nombre de jetons facturables est la somme du nombre de jetons dans les champs from_text et question.

  • SUMMARIZE, TRANSLATE, EXTRACT_ANSWER, CLASSIFY_TEXT et SENTIMENT ajoutent une invite au texte d’entrée afin de générer la réponse. Par conséquent, le nombre de jetons en entrée est légèrement supérieur au nombre de jetons dans le texte que vous fournissez.

  • TRY_COMPLETE n’entraîne pas de frais de traitement des erreurs. Cela signifie que si la fonction TRY_COMPLETE renvoie NULL, aucun frais n’est engagé.

  • 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.

Snowflake recommande d’exécuter les requêtes qui appellent une fonction Snowflake Cortex LLM de la fonction PARSE_DOCUMENT Cortex avec un entrepôt plus petit (pas plus grand que MEDIUM), car les entrepôts plus grands n’augmentent pas les performances. Le coût associé au maintien d’un entrepôt actif continuera à s’appliquer lors de l’exécution d’une requête qui appelle une fonction Snowflake Cortex LLM. Pour des informations générales sur les coûts de calcul, consultez Compréhension des coûts de calcul.

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';
Copy

Suivre la consommation de crédit pour les fonctions LLM

Pour voir la consommation de crédit et de jetons pour chaque appel de fonction LLM, utilisez le Vue CORTEX_FUNCTIONS_USAGE_HISTORY :

SELECT *
  FROM SNOWFLAKE.ACCOUNT_USAGE.CORTEX_FUNCTIONS_USAGE_HISTORY;
Copy

Quotas d’utilisation

Afin de garantir que tous les clients de Snowflake puissent accéder aux capacités de LLM, les fonctions LLM de Snowflake Cortex peuvent faire l’objet d’un étranglement pendant les périodes de forte utilisation. Les quotas d’utilisation ne sont pas appliqués au niveau du compte.

Les requêtes bloquées recevront une réponse d’erreur et devront être réessayées ultérieurement.

Note

Les comptes Snowflake à la demande sans méthode de paiement valide (tels que les comptes d’essai) sont limités à environ un crédit par jour dans l’utilisation de la fonction Snowflake Cortex LLM. Pour lever cette restriction, convertissez votre compte d’essai en compte payant.

Gestion des coûts et de la limitation

Snowflake recommande d’utiliser une taille d’entrepôt ne dépassant pas MEDIUM lors de l’appel des fonctions LLM de Snowflake Cortex. L’utilisation d’un entrepôt plus grand que nécessaire n’augmente pas les performances, mais peut entraîner des coûts inutiles et un risque plus élevé de limitation. Cette recommandation pourrait ne plus s’appliquer à l’avenir en raison des prochaines mises à jour du produit.

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.

Important

Dans la région AWS AP Sud-Est 2 (Sydney), la fenêtre de contexte pour les modèles suivants est de 4k :

  • llama3-8b et mistral-7b pour la fonction COMPLETE.

  • Modèle géré par Snowflake à partir de la fonction SUMMARIZE.

Dans la région AWS Irlande , la fenêtre contextuelle pour llama3.1-8b est 16 384.

Fonction

Modèle

Fenêtre contextuelle (jetons)

COMPLETE

snowflake-arctic

4,096

mistral-large

32,000

mistral-large2

128,000

reka-flash

100,000

reka-core

32,000

jamba-instruct

256,000

jamba-1.5-mini

256,000

jamba-1.5-large

256,000

mixtral-8x7b

32,000

llama2-70b-chat

4,096

llama3-8b

8,000

llama3-70b

8,000

llama3.1-8b

128,000

llama3.1-70b

128,000

llama3.1-405b

128,000

llama3.2-1b

128,000

llama3.2-3b

128,000

mistral-7b

32,000

gemma-7b

8,000

EMBED_TEXT_768

e5-base-v2

512

snowflake-arctic-embed-m

512

EMBED_TEXT_1024

nv-embed-qa-4

512

multilingual-e5-large

512

voyage-multilingual-2

32,000

CLASSIFY_TEXT

Modèle géré par Snowflake

128,000

EXTRACT_ANSWER

Modèle géré par Snowflake

2 048 pour le texte
64 pour la question

SENTIMENT

Modèle géré par Snowflake

512

SUMMARIZE

Modèle géré par Snowflake

32,000

TRANSLATE

Modèle géré par Snowflake

1,024

Choix d’un modèle

La fonction Snowflake Cortex 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. reka-core 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.

  • reka-core est le grand modèle de langage le plus avancé de l’AI Reka, avec de fortes capacités de raisonnement, de génération de code et de maîtrise du multilinguisme.

  • mistral-large2 est 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-405b est un modèle open source de la famille de modèles llama3.1 de 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.

Modèles moyens

  • llama3.1-70b est 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-70b est toujours pris en charge et dispose d’une fenêtre contextuelle de 8K.

  • snowflake-arctic est 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.

  • reka-flash est un modèle linguistique multilingue très performant, optimisé pour les charges de travail rapides exigeant une qualité élevée, telles que la rédaction de descriptions de produits ou d’articles de blog, le codage et l’extraction de réponses dans des documents de plusieurs centaines de pages.

  • mixtral-8x7b est 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.

  • Le modèle jamba-Instruct est construit par AI21 Labs pour répondre efficacement aux exigences des entreprises. Il est optimisé pour offrir une fenêtre de contexte de 256 000 jetons avec un faible coût et une faible latence, ce qui le rend idéal pour des tâches telles que le résumé, les questions-réponses et l’extraction d’entités sur des documents longs et de vastes bases de connaissances.

  • La famille de modèles AI21 Jamba 1.5 est à la pointe de la technologie, avec une instruction SSM-Transformer hybride qui suit les modèles fondamentaux. Le jamba-1.5-mini et le jamba-1.5-large avec une longueur de contexte de 256K prennent en charge des cas d’utilisation tels que la sortie structurée (JSON), et une génération ancrée.

Petits modèles

  • Les modèles llama3.2-1b et llama3.2-3b prennent en charge une longueur de contexte de 128 000 jetons et sont à la pointe de la technologie dans leur catégorie pour les cas d’utilisation tels que les tâches de résumé, de suivi d’instructions et de réécriture. Les modèles Llama 3.2 offrent des capacités multilingues, avec prise en charge de l’anglais, de l’allemand, du français, de l’italien, du portugais, de l’hindi, de l’espagnol et du thaï.

  • llama3.1-8b est idéal pour les tâches qui nécessitent un raisonnement faible à modéré. C’est un modèle léger et ultra-rapide avec une fenêtre contextuelle de 128K. llama3-8b et llama2-70b-chat sont des modèles toujours pris en charge qui fournissent une fenêtre de contexte plus petite et une précision relativement faible.

  • mistral-7b est 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.

  • gemma-7b est adapté aux tâches simples de complétion de code et de texte. Il dispose d’une fenêtre contextuelle de 8 000 jetons, mais il est étonnamment performant dans cette limite et tout à fait rentable.

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

GPT 4.o *

128,000

88,7

90,2

96,4

-

llama3.1-405b

128,000

88,6

89

96,8

-

reka-core

32,000

83,2

76,8

92,2

-

llama3.1-70b

128,000

86

80,5

95,1

-

mistral-large2

128,000

84

92

93

-

mistral-large

32,000

81,2

45,1

81

81

reka-flash

100,000

75,9

72

81

-

llama3.1-8b

128,000

73

72,6

84,9

-

mixtral-8x7b

32,000

70,6

40,2

60,4

-

llama-2-70b-chat

4,096

68,9

30,5

57,5

-

jamba-instruct

256,000

68,2

40

59,9

-

jamba-1.5-mini

256,000

69,7

-

75,8

-

jamba-1.5-large

256,000

81,2

-

87

-

Compte Snowflake

4,096

67,3

64,3

69,7

79

llama3.2-1b

128,000

49,3

-

44,4

-

llama3.2-3b

128,000

69,4

-

77,7

-

gemma-7b

8,000

64,3

32,3

46,4

-

mistral-7b

32,000

62,5

26,2

52,1

-

GPT 3.5 Turbo*

4,097

70

48,1

57,1

-

*Fourni à titre de comparaison ; non disponible dans Snowflake Cortex COMPLETE.

aperçu des fonctions LLM

Les fonctions Cortex LLM peuvent être regroupées dans les catégories suivantes :

  • Fonction COMPLETE : fonction à usage général qui peut effectuer une large gamme de tâches spécifiées par l’utilisateur, telles que la classification des sentiments basée sur l’aspect, la génération de données synthétiques et les résumés personnalisés. Vous pouvez également utiliser cette fonction avec vos modèles affinés.

  • Fonctions spécifiques aux tâches : fonctions spécialement conçues et gérées qui automatisent les tâches de routine, comme les résumés simples et les traductions rapides, qui ne nécessitent aucune personnalisation.

  • Fonctions d’assistance : Fonctions spécialement conçues et gérées qui réduisent les cas d’échec lors de l’exécution d’autres fonctions LLM, par exemple en obtenant le nombre de jetons dans une invite de saisie pour garantir que l’appel ne dépasse pas une limite de modèle.

COMPLETE

À partir d’une invite, la fonction COMPLETE qui suit les instructions génère une réponse en utilisant le modèle linguistique de votre choix. Dans le cas d’utilisation le plus simple, l’invite est une simple chaîne de caractères. Vous pouvez également fournir une conversation comprenant plusieurs invites et réponses pour une utilisation interactive de type chat, et dans cette forme de la fonction, vous pouvez également spécifier des options d’hyperparamètres pour personnaliser le style et la taille de la sortie. Afin de mettre en œuvre des mesures de protection, vous pouvez également activer le paramètre Cortex Guard qui filtre les réponses potentiellement dangereuses et nuisibles d’un LLM.

Pour mettre en œuvre des mesures de protection, vous pouvez activer le paramètre Cortex Guard qui filtre les réponses dangereuses et nuisibles d’un LLM.

La fonction COMPLETE prend en charge les modèles suivants. Différents modèles peuvent avoir des coûts.

  • gemma-7b

  • jamba-1.5-mini

  • jamba-1.5-large

  • jamba-instruct

  • llama2-70b-chat

  • llama3-8b

  • llama3-70b

  • llama3.1-8b

  • llama3.1-70b

  • llama3.1-405b

  • llama3.2-1b

  • llama3.2-3b

  • mistral-large

  • mistral-large2

  • mistral-7b

  • mixtral-8x7b

  • reka-core

  • reka-flash

  • snowflake-arctic

Voir COMPLETE (SNOWFLAKE.CORTEX) pour la syntaxe et les exemples.

Cortex Guard

Cortex Guard est un paramètre de sécurité disponible dans la fonction COMPLETE conçue pour filtrer les éventuelles réponses dangereuses et nuisibles d’un modèle linguistique. 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. Consultez la section des arguments COMPLETE (SNOWFLAKE.CORTEX) 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.

Fonctions spécifiques à la tâche

Avec un texte d’entrée, les fonctions spécifiques à la tâche exécutent la tâche pour laquelle elles ont été conçues sans avoir besoin de spécifier une invite. Les fonctions spécifiques aux tâches exécutent rapidement et de manière rentable des tâches de routine qui ne nécessitent aucune personnalisation.

CLASSIFY_TEXT

La fonction CLASSIFY_TEXT classe le texte libre dans des catégories que vous fournissez. Le texte peut être une chaîne en anglais simple.

Pour la syntaxe et les exemples, voir CLASSIFY_TEXT (SNOWFLAKE.CORTEX).

EMBED_TEXT_768

La fonction EMBED_TEXT_768 crée une intégration vectorielle de 768 dimensions pour un texte en anglais donné. Pour en savoir plus sur les intégrations et les fonctions de comparaison vectorielles, consultez Intégrations vectorielles.

Pour la syntaxe et les exemples, voir EMBED_TEXT_768 (SNOWFLAKE.CORTEX).

EMBED_TEXT_1024

La fonction EMBED_TEXT_1024 crée une intégration vectorielle de 1 024 dimensions pour un texte donné. Pour en savoir plus sur les intégrations et les fonctions de comparaison vectorielles, consultez Intégrations vectorielles.

Pour la syntaxe et les exemples, voir EMBED_TEXT_1024 (SNOWFLAKE.CORTEX).

EXTRACT_ANSWER

La fonction EXTRACT_ANSWER permet d’extraire d’un document textuel une réponse à une question donnée. Le document peut être un document en anglais ou une représentation sous forme de chaîne d’un objet de données semi-structurées (JSON).

Pour la syntaxe et les exemples, voir EXTRACT_ANSWER (SNOWFLAKE.CORTEX).

PARSE_DOCUMENT

La fonction PARSE_DOCUMENT extrait du texte ou de la mise en page à partir de documents stockés dans une zone de préparation interne ou une zone de préparation externe.

Pour la syntaxe et les exemples, voir PARSE_DOCUMENT (SNOWFLAKE.CORTEX).

SENTIMENT

La fonction SENTIMENT renvoie le sentiment sous la forme d’un score compris entre -1 et 1 (-1 étant le plus négatif et 1 le plus positif, avec des valeurs autour de 0 neutres) pour le texte d’entrée en langue anglaise donné.

Pour la syntaxe et les exemples, voir SENTIMENT (SNOWFLAKE.CORTEX).

SUMMARIZE

La fonction SUMMARIZE renvoie un résumé du texte anglais donné.

Pour la syntaxe et les exemples, voir SUMMARIZE (SNOWFLAKE.CORTEX).

TRANSLATE

La fonction TRANSLATE traduit le texte de la langue source indiquée ou détectée vers une langue cible.

Pour la syntaxe et les exemples, voir TRANSLATE (SNOWFLAKE.CORTEX).

Fonctions d’assistance

Les fonctions d’assistance sont des fonctions gérées qui sont conçues pour aider à réduire les erreurs lors de l’exécution d’autres fonctions Cortex LLM.

COUNT_TOKENS

La fonction COUNT_TOKENS calcule le nombre de jetons dans une invite pour le grand modèle de langage spécifié dans COMPLETE, et le texte d’entrée pour les fonctions spécifiques à la tâche.

Pour la syntaxe et les exemples, voir COUNT_TOKENS (SNOWFLAKE.CORTEX).

TRY_COMPLETE

La fonction TRY_COMPLETE effectue la même opération que la fonction COMPLETE mais renvoie NULL au lieu de générer une erreur lorsque l’opération ne peut pas être effectuée.

Pour la syntaxe et les exemples, voir TRY_COMPLETE (SNOWFLAKE.CORTEX).

Conditions d’erreur

Les fonctions Snowflake Cortex LLM peuvent produire les messages d’erreur suivants.

Message

Explication

too many requests

L’instruction a été rejetée en raison d’une charge excessive du système. Veuillez réessayer la requête.

invalid options object

L’objet options transmis à la fonction contient des options ou des valeurs non valides.

budget exceeded

Le budget de consommation du modèle a été dépassé.

unknown model "<nom du modèle>"

Le modèle spécifié n’existe pas.

invalid language "<langage>"

La langue spécifiée n’est pas prise en charge par la fonction TRANSLATE.

max tokens of <count> exceeded

La requête a dépassé le nombre maximum de jetons pris en charge par le modèle (voir Restrictions du modèle).

all requests were throttled by remote service

La requête a été limitée en raison d’un niveau d’utilisation élevé. Veuillez réessayer plus tard.

invalid number of categories: <num_categories>

Le nombre de catégories spécifié est supérieur à la limite pour CLASSIFY_TEXT

invalid category input type

Le type de catégorie spécifié n’est pas pris en charge par CLASSIFY_TEXT.

empty classification input

L’entrée à CLASSIFY_TEXT est une chaîne vide ou nulle.

Utilisation des fonctions Snowflake Cortex LLM avec Python

Les fonctions Snowflake Cortex LLM sont disponibles dans Snowpark ML à partir de la version 1.1.2. Voir Utilisation de Snowflake ML en local pour les instructions sur la configuration de Snowpark ML.

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.

L’exemple Python suivant illustre l’appel de fonctions Snowflake Cortex LLM sur des valeurs uniques :

from snowflake.cortex import Complete, ExtractAnswer, Sentiment, Summarize, Translate, ClassifyText

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("llama2-70b-chat", "how do snowflakes get their unique patterns?"))
print(ExtractAnswer(text, "When was snowflake founded?"))
print(Sentiment("I really enjoyed this restaurant. Fantastic service!"))
print(Summarize(text))
print(Translate(text, "en", "fr"))
print(ClassifyText("France", ["Europe", "Asia"]))
Copy

Vous pouvez également appeler une fonction LLM 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()
Copy

Note

La forme avancée de COMPLETE de type chat (multi-message) n’est actuellement pas prise en charge par Python.

Utilisation des fonctions Snowflake Cortex LLM avec Snowflake CLI

Les fonctions Snowflake Cortex LLM sont disponibles dans Snowflake CLI à partir de la version 2.4.0. Consultez Présentation de Snowflake CLI pour plus d’informations sur l’utilisation de Snowflake CLI.

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"
Copy
snow cortex extract-answer "what is snowflake?" "snowflake is a company" -c "snowhouse"
Copy
snow cortex sentiment "Mary had a little Lamb" -c "snowhouse"
Copy
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."
Copy
snow cortex translate herb --to pl
Copy

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 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
Copy
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.