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:
Extrahieren von Entitäten zur Anreicherung von Metadaten und Optimierung der Validierung
Aggregieren von Erkenntnissen über Kundentickets
Filtern und Klassifizieren von Inhalten durch natürliche Sprache
Sentiment- und aspektbasierte Analyse zur Verbesserung von Diensten
Übersetzen und Lokalisieren mehrsprachiger Inhalte
Parsing von Dokumenten für Analysen und RAG-Pipelines
Alle Modelle werden vollständig in Snowflake gehostet, so dass Leistung, Skalierbarkeit und Governance gewährleistet sind, während Ihre Daten sicher und an ihrem Platz bleiben.
Verfügbare Funktionen¶
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¶
Diese aufgabenspezifischen Funktionen sind speziell entwickelte und verwaltete Funktionen, die Routineaufgaben automatisieren, wie z. B. einfache Zusammenfassungen und schnelle Übersetzungen, die keine Anpassung erfordern.
Wichtig
The following features are in preview and should not be used in production:
AI_AGG
AI_FILTER
AI_SUMMARIZE_AGG
AI_COMPLETE: Erzeugt eine Vervollständigung für eine gegebene Textzeichenfolge oder ein Bild unter Verwendung eines ausgewählten LLM. Verwenden Sie diese Funktion für die meisten generativen AI-Aufgaben.
AI_COMPLETE ist die aktualisierte Version von COMPLETE (SNOWFLAKE.CORTEX).
AI_CLASSIFY: Klassifiziert Text oder Bilder in benutzerdefinierte Kategorien.
AI_CLASSIFY ist die aktualisierte Version von CLASSIFY_TEXT (SNOWFLAKE.CORTEX) mit Unterstützung für Multi-Label- und Bild-Klassifizierung.
AI_FILTER: Gibt True oder False für eine gegebene Text- oder Bildeingabe zurück, so dass Sie die Ergebnisse in den Klauseln
SELECT,WHEREoderJOIN ... ONfiltern können.AI_AGG: Aggregiert eine Textspalte und liefert auf der Grundlage einer benutzerdefinierten Aufforderung Erkenntnisse über mehrere Zeilen. Diese Funktion unterliegt nicht den Beschränkungen des Kontextfensters.
AI_EMBED: Generiert einen Einbettungsvektor für eine Text- oder Bildeingabe, der für Ähnlichkeitssuche, Clustering und Klassifizierungsaufgaben verwendet werden kann.
AI_EMBED ist die aktualisierte Version von EMBED_TEXT_1024 (SNOWFLAKE.CORTEX).
AI_EXTRACT: Extrahiert Informationen aus einer Eingabezeichenfolge oder -datei, z. B. Text, Bilder und Dokumente. Unterstützt mehrere Sprachen.
AI_EXTRACT ist die aktualisierte Version von EXTRACT_ANSWER (SNOWFLAKE.CORTEX).
AI_REDACT: Redacts personally identifiable information (PII) from text.
AI_SENTIMENT: Extracts sentiment from text.
AI_SENTIMENT ist die aktualisierte Version von SENTIMENT (SNOWFLAKE.CORTEX).
AI_SUMMARIZE_AGG: Aggregiert eine Textspalte und liefert eine Zusammenfassung über mehrere Zeilen. Diese Funktion unterliegt nicht den Beschränkungen des Kontextfensters.
AI_SIMILARITY: Berechnet die Ähnlichkeit der Einbettung zwischen zwei Eingaben.
AI_TRANSCRIBE: Transcribes audio and video files stored in a stage, extracting text, timestamps, and speaker information.
AI_PARSE_DOCUMENT: Extrahiert Text (mit dem OCR-Modus) oder Text mit Layoutinformationen (mit dem LAYOUT-Modus) von Dokumenten in einem internen oder externen Stagingbereich.
AI_PARSE_DOCUMENT ist die aktualisierte Version von PARSE_DOCUMENT (SNOWFLAKE.CORTEX).
AI_TRANSLATE: Übersetzt Text zwischen unterstützten Sprachen.
AI_TRANSLATE ist die aktualisierte Version von TRANSLATE (SNOWFLAKE.CORTEX).
SUMMARIZE (SNOWFLAKE.CORTEX): Liefert eine Zusammenfassung des Textes, den Sie angegeben haben.
Hilfreiche Funktionen¶
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: Erstellt einen Verweis auf eine Datei in einem internen oder externen Stagingbereich zur Verwendung mit AI_COMPLETE und anderen Funktionen, die Dateien akzeptieren.
AI_COUNT_TOKENS: Gibt bei einer Texteingabe die Anzahl der Token auf der Grundlage des angegebenen Modells oder der angegebenen Cortex-Funktion zurück.
AI_COUNT_TOKENS ist die aktualisierte Version von COUNT_TOKENS (SNOWFLAKE.CORTEX).
PROMPT: Unterstützt Sie beim Erstellen von Eingabeaufforderungsobjekten zur Verwendung mit AI_COMPLETE und anderen Funktionen.
TRY_COMPLETE (SNOWFLAKE.CORTEX): Funktioniert wie die COMPLETE-Funktion, gibt aber, wenn die Funktion nicht ausgeführt werden konnte, anstatt eines Fehlercodes NULL zurück.
Cortex Guard¶
Cortex Guard ist eine Option der Funktion AI_COMPLETE (oder SNOWFLAKE.CORTEX.COMPLETE), die dazu dient, mögliche unsichere und schädliche Antworten aus einem Sprachmodell herauszufiltern. Cortex Guard wird derzeit mit Llama Guard 3 von Meta erstellt. Cortex Guard wertet die Antworten eines Sprachmodells aus, bevor die Ausgabe an die Anwendung zurückgegeben wird. Sobald Sie Cortex Guard aktivieren, werden Antworten des Sprachmodells, die mit Gewaltverbrechen, Hass, sexuellen Inhalten, Selbstverletzung und mehr in Verbindung gebracht werden können, automatisch gefiltert. Siehe COMPLETE Argumente für Syntax und Beispiele.
Bemerkung
Für die Nutzung von Cortex Guard fallen Computekosten an, die sich nach der Anzahl der verarbeiteten Eingabetoken richten, zusätzlich zu den Kosten für die AI_COMPLETE-Funktion.
Hinweise zur Performance¶
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).
Cortex LLM-Berechtigungen¶
CORTEX_USER-Datenbankrollen¶
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.
Wenn Sie nicht möchten, dass alle Benutzer diese Berechtigung haben, können Sie den Zugriff auf die PUBLIC-Rolle widerrufen und den Zugriff für andere Rollen gewähren. Die Datenbankrolle SNOWFLAKE-CORTEX_USER kann einem Benutzer nicht direkt zugewiesen werden. Weitere Informationen dazu finden Sie unter Verwenden von SNOWFLAKE-Datenbankrollen.
Um der Rolle PUBLIC die Datenbankrolle CORTEX_USER zu entziehen, führen Sie die folgenden Befehle mit der Rolle ACCOUNTADMIN aus:
REVOKE DATABASE ROLE SNOWFLAKE.CORTEX_USER
FROM ROLE PUBLIC;
REVOKE IMPORTED PRIVILEGES ON DATABASE SNOWFLAKE
FROM ROLE PUBLIC;
Sie können dann selektiv bestimmten Rollen Zugriff gewähren. Ein Benutzer mit der Rolle ACCOUNTADMIN kann diese Rolle einer kundenspezifischen Rolle zuweisen, um Benutzern den Zugriff auf die Funktionen von Cortex AI zu ermöglichen. Im folgenden Beispiel verwenden Sie die Rolle ACCOUNTADMIN und weisen dem Benutzer some_user die Datenbankrolle CORTEX_USER über die Kontorolle cortex_user_role zu, die Sie zu diesem Zweck erstellen.
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 Benutzerrollen.) 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;
CORTEX_EMBED_USER-Datenbankrollen¶
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.
Bemerkung
Sie können Cortex Search Services mit vom Benutzer bereitgestellten Einbettungen ohne die Rolle CORTEX_EMBED_USER erstellen. In diesem Fall müssen Sie die Einbettungen selbst außerhalb von Snowflake erstellen und in eine Tabelle laden.
Im Gegensatz zur Rolle CORTEX_USER wird die Rolle CORTEX_EMBED_USER standardmäßig nicht der Rolle PUBLIC zugewiesen. Sie müssen diese Rolle ausdrücklich Rollen zuweisen, die Einbettungsmöglichkeiten benötigen, wenn Sie die Rolle CORTEx_USER widerrufen haben. Die Datenbankrolle CORTEX_EMBED_USER kann Benutzern nicht direkt zugewiesen werden, sondern muss Rollen zugewiesen werden, die Benutzer übernehmen können. Das folgende Beispiel veranschaulicht diesen Vorgang.
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;
Um allen Benutzern Zugriff auf die Einbettungsfunktionen zu geben, können Sie alternativ wie folgt die Rolle CORTEX_EMBED_USER für die Rolle PUBLIC zuweisen.
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>;
Zugriff auf das Modell kontrollieren¶
Snowflake Cortex bietet zwei unabhängige Mechanismen, um Modellzugriff zu erzwingen:
Parameter für die Zulassungsliste auf Kontoebene (einfache, umfassende Kontrolle)
Rollenbasierte Zugriffssteuerung (RBAC) (fein abgestufte Kontrolle)
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.
Parameter für die Zulassungsliste auf Kontoebene¶
Sie können den Modellzugriff für Ihr gesamtes Konto steuern, indem Sie den Parameter CORTEX_MODELS_ALLOWLIST verwenden. Unterstützte Features respektieren den Wert dieses Parameters und verhindern die Verwendung von Modellen, die nicht in der Zulassungsliste enthalten sind.
Der Parameter CORTEX_MODELS_ALLOWLIST kann auf 'All', 'None' oder eine durch Kommas getrennte Liste von Modellnamen festgelegt werden. Dieser Parameter kann nur auf Kontoebene eingestellt werden, nicht auf Benutzer- oder der Sitzungsebene. Nur die Rolle ACCOUNTADMIN kann den Parameter mit dem Befehl ALTER ACCOUNT festlegen.
Beispiele:
So ermöglichen Sie den Zugriff auf alle Modelle:
ALTER ACCOUNT SET CORTEX_MODELS_ALLOWLIST = 'All';
So ermöglichen Sie den Zugriff auf die Modelle
mistral-large2undllama3.1-70b:ALTER ACCOUNT SET CORTEX_MODELS_ALLOWLIST = 'mistral-large2,llama3.1-70b';
So verhindern Sie den Zugriff auf Modelle:
ALTER ACCOUNT SET CORTEX_MODELS_ALLOWLIST = 'None';
Verwenden Sie RBAC wie im folgenden Abschnitt beschrieben, um bestimmten Rollen Zugriff zu gewähren, der über das hinausgeht, was Sie in der Zulassungsliste angegeben haben.
Rollenbasierte Zugriffssteuerung (RBAC)¶
Obwohl Cortex-Modelle selbst keine Snowflake-Objekte sind, können Sie mit Snowflake Modellobjekte im Schema SNOWFLAKE.MODELS erstellen, das die Cortex-Modelle darstellt. Indem Sie RBAC auf diese Objekte anwenden, können Sie den Modellzugriff auf die gleiche Weise steuern wie bei jedem anderen Snowflake-Objekt. Unterstützte Features akzeptieren die Bezeichner von Objekten in SNOWFLAKE.MODELS überall dort, wo ein Modell angegeben werden kann.
Tipp
Wenn Sie ausschließlich RBAC verwenden möchten, legen Sie CORTEX_MODELS_ALLOWLIST auf 'None' fest.
Modellobjekte und Anwendungsrollen aktualisieren¶
SNOWFLAKE.MODELS wird nicht automatisch mit den Objekten gefüllt, die Cortex-Modelle darstellen. Sie müssen diese Objekte erstellen, wenn Sie RBAC für Modelle zum ersten Mal einrichten, und sie aktualisieren, wenn Sie RBAC auf neue Modelle anwenden möchten.
Führen Sie als ACCOUNTADMIN die gespeicherte Prozedur SNOWFLAKE.MODELS.CORTEX_BASE_MODELS_REFRESH aus, um das Schema SNOWFLAKE.MODELS mit Objekten zu füllen, die die derzeit verfügbaren Cortex-Modelle darstellen, und um Anwendungsrollen zu erstellen, die den Modellen entsprechen. Die Prozedur erstellt auch CORTEX-MODEL-ROLE-ALL – eine Rolle, die alle Modelle abdeckt.
Tipp
Sie können CORTEX_BASE_MODELS_REFRESH jederzeit auf sichere Weise aufrufen; es werden keine doppelten Objekte oder Rollen erstellt.
CALL SNOWFLAKE.MODELS.CORTEX_BASE_MODELS_REFRESH();
Nach Aktualisierung der Modellobjekte können Sie überprüfen, ob die Modelle im Schema SNOWFLAKE.MODELS wie folgt angezeigt werden:
SHOW MODELS IN SNOWFLAKE.MODELS;
Die zurückgegebene Liste der Modelle sieht folgendermaßen aus:
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 |
Um zu überprüfen, ob Sie die mit diesen Modellen verknüpften Anwendungsrollen anzeigen können, verwenden Sie den Befehl SHOW APPLICATION ROLES wie im folgenden Beispiel:
SHOW APPLICATION ROLES IN APPLICATION SNOWFLAKE;
Die Liste der Anwendungsrollen sieht wie folgt aus:
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 |
Anwendungsrollen zu Benutzerrollen zuweisen¶
Nachdem Sie die Modellobjekte und Anwendungsrollen erstellt haben, können Sie die Anwendungsrollen bestimmten Benutzerrollen in Ihrem Konto zuweisen.
So gewähren Sie einer Rolle Zugriff auf ein bestimmtes Modell:
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;
Verwenden Sie Modellobjekte mit unterstützten Features¶
Um Modellobjekte mit unterstützten Cortex-Features zu verwenden, geben Sie den Bezeichner des Modellobjekts in SNOWFLAKE.MODELS als Modellargument an. Sie können einen vollqualifizierten Bezeichner, einen teilweisen Bezeichner oder einen einfachen Modellnamen verwenden, der automatisch in SNOWFLAKE.MODELS aufgelöst wird.
Verwendung eines vollqualifizierten Bezeichners:
SELECT AI_COMPLETE('SNOWFLAKE.MODELS."LLAMA3.1-70B"', 'Hello');
Verwendung eines teilweisen Bezeichners:
USE DATABASE SNOWFLAKE; USE SCHEMA MODELS; SELECT AI_COMPLETE('LLAMA3.1-70B', 'Hello');
Verwenden der automatischen Suche mit einem einfachen Modellnamen:
-- Automatically resolves to SNOWFLAKE.MODELS."LLAMA3.1-70B" SELECT AI_COMPLETE('llama3.1-70b', 'Hello');
Verwendung von RBAC mit Zulassungsliste auf Kontoebene¶
Eine Reihe von Cortex-Features akzeptieren einen Modellnamen als Zeichenfolgenargument, zum Beispiel AI_COMPLETE('model', 'prompt'). Wenn Sie einen Modellnamen angeben, gilt Folgendes:
Cortex versucht zunächst, ein passendes Modellobjekt in SNOWFLAKE.MODELS zu finden. Wenn Sie einen nicht qualifizierten Namen wie
'x'angeben, sucht das System automatisch nachSNOWFLAKE.MODELS."X".Wird das Modellobjekt gefunden, wird RBAC angewendet, um zu ermitteln, ob der Benutzer das Modell verwenden kann.
Wird kein Modellobjekt gefunden, wird die angegebene Zeichenfolge mit der Zulassungsliste auf Kontoebene abgeglichen.
Das folgende Beispiel veranschaulicht die kombinierte Verwendung von Zulassungsliste und RBAC. In diesem Beispiel ist die Zulassungsliste so eingestellt, dass das Modell mistral-large2 zugelassen ist, sodass der Benutzer über RBAC Zugriff auf das Modellobjekt LLAMA3.1-70B hat.
-- 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');
Häufige Probleme¶
Zugriff auf ein Modell (über Zulassungsliste oder RBAC) bedeutet nicht immer, dass es auch verwendet werden kann. Es kann immer noch regionenübergreifenden, abkündigungsbezogenen oder anderen Verfügbarkeitsbeschränkungen unterliegen. Diese Beschränkungen können zu Fehlermeldungen führen, die ähnlich wie Modellzugriffsfehler aussehen.
Die Modellzugriffssteuerung regelt nur die Verwendung eines Modells und nicht die Nutzung eines Features selbst, das über eigene Zugriffssteuerungen verfügen kann. Zum Beispiel wird der Zugriff auf
AI_COMPLETEdurch die DatenbankrolleCORTEX_USERgeregelt. Weitere Informationen dazu finden Sie unter Cortex LLM-Berechtigungen.Nicht alle Features unterstützen Modellzugriffssteuerungen. Der Tabelle Unterstützte Features können Sie entnehmen, welche Zugriffssteuerungsmethoden ein bestimmtes Feature unterstützt.
Sekundärrollen können Berechtigungen verschleiern. Wenn ein Benutzer z. B. ACCOUNTADMIN als Sekundärrolle hat, können alle Modellobjekte zugänglich erscheinen. Deaktivieren Sie Sekundärrollen vorübergehend, wenn Sie Berechtigungen überprüfen.
Qualified model object identifiers are quoted and therefore case-sensitive. See QUOTED_IDENTIFIERS_IGNORE_CASE for more information.
Unterstützte Features¶
Die Modellzugriffssteuerung wird von folgenden Features unterstützt:
Feature |
Zulassungsliste auf Kontoebene |
Rollenbasierte Zugriffssteuerung |
Anmerkungen |
|---|---|---|---|
✔ |
✔ |
||
✔ |
✔ |
Wenn das Modell, das dieser Funktion zugrunde liegt, nicht zulässig ist, enthält die Fehlermeldung Informationen darüber, wie Sie die Zulassungsliste ändern können. |
|
✔ |
✔ |
Wenn das Modell, das dieser Funktion zugrunde liegt, nicht zulässig ist, enthält die Fehlermeldung Informationen darüber, wie Sie die Zulassungsliste ändern können. |
|
✔ |
✔ |
Wenn das Modell, das dieser Funktion zugrunde liegt, nicht zulässig ist, enthält die Fehlermeldung Informationen darüber, wie Sie die Zulassungsliste ändern können. |
|
✔ |
✔ |
Wenn das Modell, das dieser Funktion zugrunde liegt, nicht zulässig ist, enthält die Fehlermeldung Informationen darüber, wie Sie die Zulassungsliste ändern können. |
|
✔ |
✔ |
||
✔ |
✔ |
||
✔ |
✔ |
||
✔ |
✔ |
Regionale Verfügbarkeit¶
Snowflake Cortex AI functions are available in the following regions. If your region is not listed for a particular function, use cross-region inference.
Bemerkung
Die Funktion TRY_COMPLETE ist in denselben Regionen verfügbar wie COMPLETE.
Die Funktion AI_COUNT_TOKENS ist in allen Regionen für jedes Modell verfügbar, aber die Modelle selbst sind nur in den in der folgenden Tabellen angegebenen Regionen verfügbar.
The following functions and models are available in any region via cross-region inference.
Funktion
Model
|
Cloudübergreifend (beliebige Region)
|
AWS US
(Regionsübergreifend)
|
AWS US Commercial Gov
(Regionsübergreifend)
|
AWS EU
(Regionsübergreifend)
|
AWS-APJ
(Regionsübergreifend)
|
Azure US
(Regionsübergreifend)
|
Google Cloud US
(Regionsübergreifend)
|
|---|---|---|---|---|---|---|---|
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
|
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
Die folgenden Funktionen und Modelle sind nativ in Nordamerika verfügbar.
Funktion
Model
|
AWS US West 2
(Oregon)
|
AWS US East 1
(N. Virginia)
|
AWS US East
(Commercial Gov - N. Virginia)
|
Azure East US 2
(Virginia)
|
Azure East US
(Virginia)
|
Azure West US
(Washington)
|
Azure West US 3
(Arizona)
|
Azure North Central US
(Illinois)
|
Azure South Central 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 |
✔ |
✔ |
✔ |
✔ |
Die folgenden Funktionen und Modelle sind nativ in europäischen Regionen verfügbar.
Funktion
Model
|
AWS Europe Central 1
(Frankfurt)
|
AWS Europe West 1
(Ireland)
|
Azure West Europe
(Niederlande)
|
|---|---|---|---|
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:
Funktion
| Model
|
AWS AP Southeast 2
(Sydney)
|
AWS AP Northeast 1
(Tokio)
|
|---|---|---|
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.
Funktion
Model
|
AWS US East 2
(Ohio)
|
AWS CA Zentrale 1
(Zentral)
|
AWS SA East 1
(São Paulo)
|
AWS Europe West 2
(London)
|
AWS Europe Central 1
(Frankfurt)
|
AWS Europe North 1
(Stockholm)
|
AWS AP Northeast 1
(Tokio)
|
AWS AP South 1
(Mumbai)
|
AWS AP Southeast 2
(Sydney)
|
AWS AP Southeast 3
(Jakarta)
|
Azure South Central US
(Texas)
|
Azure West US 2
(Washington)
|
Azure UK South
(London)
|
Azure North Europe
(Ireland)
|
Azure Switzerland North
(Zürich)
|
Azure-Zentrale Indien
(Pune)
|
Azure Japan East
(Tokio, Saitama)
|
Azure Southeast Asia
(Singapur)
|
Azure – Ostaustralien
(New South Wales)
|
Google Cloud Europe West 2
(London)
|
Google Cloud Europe West 4
(Niederlande)
|
Google Cloud US Central 1
(Iowa)
|
Google Cloud US East 4
(N. Virginia)
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
EMBED_TEXT_768
|
|||||||||||||||||||||||
snowflake-arctic-embed-m-v1.5 |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
snowflake-arctic-embed-m |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
EMBED_TEXT_1024
|
|||||||||||||||||||||||
multilingual-e5-large |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
AI_EXTRACT
|
✔ |
✔ |
✔ |
✔ |
✔ |
Nur regionenübergreifend |
✔ |
Nur regionenübergreifend |
✔ |
Nur regionenübergreifend |
✔ |
✔ |
Nur regionenübergreifend |
✔ |
Nur regionenübergreifend |
✔ |
✔ |
✔ |
✔ |
Nur regionenübergreifend |
Nur regionenübergreifend |
Nur regionenübergreifend |
Nur regionenübergreifend |
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.
Funktion
(Modell)
|
AWS US West 2
(Oregon)
|
AWS US East 1
(N. Virginia)
|
AWS Europe Central 1
(Frankfurt)
|
AWS Europe West 1
(Ireland)
|
AWS AP Southeast 2
(Sydney)
|
AWS AP Northeast 1
(Tokio)
|
Azure East US 2
(Virginia)
|
Azure West Europe
(Niederlande)
|
|---|---|---|---|---|---|---|---|---|
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:
Bemerkung
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.
Tipp
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.
Hinweise zu Kosten¶
Snowflake Cortex-AI-Funktionen verursachen Computekosten, die sich nach der Anzahl der verarbeiteten Token richten. Die Kosten für jede Funktion in Credits pro Million Token finden Sie in der Snowflake Service Consumption Table.
Ein Token ist die kleinste Texteinheit, die von den Snowflake Cortex-AI-Funktionen verarbeitet wird. Eine Branchenkonvention für Text ist, dass ein Token ungefähr vier Zeichen entspricht, obwohl dies je nach Modell variieren kann, ebenso wie die Token-Äquivalenz bei Mediendateien.
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.
Bei Cortex Guard werden nur Eingabe-Token gezählt. Die Anzahl der Eingabe-Token basiert auf der Anzahl der Token, die von AI_COMPLETE oder COMPLETE ausgegeben werden. Die Nutzung von Cortex Guard wird zusätzlich zu den Kosten der FunktionAI_COMPLETE (oder COMPLETE) in Rechnung gestellt.
For AI_SIMILARITY, AI_EMBED, and the SNOWFLAKE.CORTEX.EMBED_* functions, only input tokens are counted.
Bei EXTRACT_ANSWER ergibt sich die Anzahl der abrechenbaren Token aus der Summe der Anzahl der Token in den Feldern
from_textundquestion.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.
AI_CLASSIFY-Beschriftungen, Beschreibungen und Beispiele werden als Eingabe-Token für jeden verarbeiteten Datensatz gezählt, nicht nur einmal für jeden Aufruf von AI_CLASSIFY.
Bei AI_PARSE_DOCUMENT (oder SNOWFLAKE.CORTEX.PARSE_DOCUMENT) erfolgt die Abrechnung auf der Grundlage der Anzahl der verarbeiteten Dokumentseiten.
TRY_COMPLETE (SNOWFLAKE.CORTEX) verursacht keine Kosten für die Fehlerbehandlung. Wenn die Funktion TRY_COMPLETE (SNOWFLAKE.CORTEX NULL zurückgibt, fallen keine Kosten an.
Bei AI_EXTRACT werden sowohl Eingabe- als auch Ausgabe-Token gezählt. Das Argument
responseFormatwird als Eingabe-Token gezählt. Bei Dokumentformaten, die aus Seiten bestehen, wird die Anzahl der verarbeiteten Seiten als Eingabe-Token gezählt. Jede Seite in einem Dokument wird als 970 Token gezählt.AI_COUNT_TOKENS verursacht nur Kosten für die Ausführung der Funktion. Es fallen keine zusätzlichen Kosten für Token an.
Für Modelle, die Mediendateien wie Bilder oder Audio unterstützen, gilt Folgendes:
Autodateien werden mit 50 Token pro Sekunde Audiodaten abgerechnet.
Die Token-Äquivalenz von Bildern richtet sich nach dem verwendeten Modell. Weitere Informationen dazu finden Sie unter Überlegungen zu den AI-Bildkosten.
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.
Kosten für KI-Dienste verfolgen¶
Um die Credits zu verfolgen, die Sie für die KI-Dienste einschließlich LLM-Funktionen in Ihrem Konto verwendet haben, verwenden Sie die Ansicht 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 Ansicht CORTEX_FUNCTIONS_USAGE_HISTORY:
SELECT *
FROM SNOWFLAKE.ACCOUNT_USAGE.CORTEX_FUNCTIONS_USAGE_HISTORY;
Sie können auch den Credit- und Token-Verbrauch für jede Abfrage in Ihrem Snowflake Konto einsehen. Die Anzeige des Credit- und Token-Verbrauchs für jede Abfrage hilft Ihnen, die Abfragen zu identifizieren, die die meisten Credits und Token verbrauchen.
Die folgende Beispielabfrage verwendet Ansicht CORTEX_FUNCTIONS_QUERY_USAGE_HISTORY, um den Credit- und Token-Verbrauch für alle Ihre Abfragen innerhalb Ihres Kontos anzuzeigen.
SELECT * FROM SNOWFLAKE.ACCOUNT_USAGE.CORTEX_FUNCTIONS_QUERY_USAGE_HISTORY;
Sie können die gleiche Ansicht auch verwenden, um den Credit- und Token-Verbrauch für eine bestimmte Abfrage anzuzeigen.
SELECT * FROM SNOWFLAKE.ACCOUNT_USAGE.CORTEX_FUNCTIONS_QUERY_USAGE_HISTORY
WHERE query_id='<query-id>';
Bemerkung
Sie können keine detaillierten Informationen über die Nutzung von Anfragen erhalten, die mit der REST API gemacht wurden.
Der Verlauf der Abfrage wird nach den in der Abfrage verwendeten Modellen gruppiert. Wenn Sie zum Beispiel Folgendes ausgeführt haben:
SELECT AI_COMPLETE('mistral-7b', 'Is a hot dog a sandwich'), AI_COMPLETE('mistral-large', 'Is a hot dog a sandwich');
Der Abfrage-Nutzungsverlauf würde zwei Zeilen anzeigen, eine für mistral-7b und eine für mistral-large.
Nutzungskontingente¶
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.
Modelleinschränkungen¶
Für die von Snowflake Cortex verwendeten Modelle gelten die in der nachstehenden Tabelle beschriebenen Größenbeschränkungen. Die Größen sind in Anzahl von Token angegeben. Token stehen in der Regel für etwa vier Zeichen Text, sodass die Anzahl der Wörter, die einer Beschränkung entsprechen, geringer ist als die Anzahl der Token. Eingaben, die dieses Limit überschreiten, führen zu einem Fehler.
Die maximale Größe der Ausgabe, die ein Modell erzeugen kann, ist durch Folgendes begrenzt:
Das Limit für das Ausgabe-Token des Modells.
Der im Kontextfenster verfügbare Platz, nachdem das Modell die Eingabe-Token verbraucht hat.
claude-3-5-sonnet hat zum Beispiel ein Kontextfenster von 200.000 Token. Wenn 100.000 Token als Eingabe verwendet werden, kann das Modell bis zu 8.192 Token erzeugen. Wenn jedoch 195.000 Token als Eingabe verwendet werden, dann kann das Modell nur bis zu 5.000 Token für insgesamt 200.000 Token generieren.
Wichtig
In der Region AWS AP Southeast 2 (Sydney):
das Kontextfenster für
llama3-8bundmistral-7bbeträgt 4.096 Token.das Kontextfenster für
llama3.1-8bbeträgt 16.384 Token.das Kontextfenster für das von Snowflake verwaltete Modell aus der Funktion SUMMARIZE beträgt 4.096 Token.
In der Region AWS Europa West 1 (Irland):
das Kontextfenster für
llama3.1-8bbeträgt 16.384 Token.das Kontextfenster für
mistral-7bbeträgt 4.096 Token.
Funktion |
Modell |
Kontextfenster (Token) |
Maximale Ausgabe (Token) |
|---|---|---|---|
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 |
k.A. |
|
512 |
k.A. |
|
EMBED_TEXT_1024 |
|
512 |
k.A. |
|
512 |
k.A. |
|
|
32,000 |
k.A. |
|
AI_EXTRACT |
|
128,000 |
51.200 |
AI_FILTER |
Snowflake-verwaltetes Modell |
128,000 |
k.A. |
AI_CLASSIFY |
Snowflake-verwaltetes Modell |
128,000 |
k.A. |
AI_AGG |
Snowflake-verwaltetes Modell |
128.000 pro Zeile
kann über mehrere Zeilen verwendet werden
|
8,192 |
AI_SENTIMENT |
Snowflake-verwaltetes Modell |
2,048 |
k.A. |
AI_SUMMARIZE_AGG |
Snowflake-verwaltetes Modell |
128.000 pro Zeile
kann über mehrere Zeilen verwendet werden
|
8,192 |
ENTITY_SENTIMENT |
Snowflake-verwaltetes Modell |
2,048 |
k.A. |
EXTRACT_ANSWER |
Snowflake-verwaltetes Modell |
2.048 für Text
64 für Frage
|
k.A. |
SENTIMENT |
Snowflake-verwaltetes Modell |
512 |
k.A. |
SUMMARIZE |
Snowflake-verwaltetes Modell |
32,000 |
4,096 |
TRANSLATE |
Snowflake-verwaltetes Modell |
4,096 |
k.A. |
Auswählen eines Modells¶
Die Snowflake Cortex-Funktion AI_COMPLETE unterstützt mehrere Modelle mit unterschiedlichen Fähigkeiten, Latenzen und Kosten. Diese Modelle wurden sorgfältig ausgewählt, um den gängigen Anwendungsfällen der Kunden gerecht zu werden. Um die beste Leistung pro Credit zu erzielen, wählen Sie ein Modell, das gut zu Umfang und Komplexität des Inhalts Ihrer Aufgabe passt. Im Folgenden finden Sie einen kurzen Überblick über die verfügbaren Modelle.
Große Modelle¶
Wenn Sie nicht sicher sind, wo Sie anfangen sollen, probieren Sie zunächst die leistungsfähigsten Modelle aus, um eine Grundlage für die Bewertung anderer Modelle zu schaffen. claude-3-7-sonnet, und mistral-large2 sind die leistungsfähigsten Modelle, die Snowflake Cortex anbietet, und die Ihnen einen guten Eindruck davon vermitteln, was ein modernes Modell leisten kann.
Claude 3-7 Sonnetist führend im Bereich des allgemeinen logischen Denkens und der multimodalen Fähigkeiten. Es übertrifft seine Vorgänger bei Aufgaben, die Schlussfolgerungen über verschiedene Domänen und Modalitäten hinweg erfordern. Sie können seine große Ausgabekapazität nutzen, um mehr Informationen aus strukturierten oder unstrukturierten Abfragen zu erhalten. Mit seinen Argumentationsfähigkeiten und großen Kontextfenstern eignet es sich hervorragend für agentenbasierte Arbeitsabläufe.deepseek-r1ist ein Basismodell, das mit Large-Scale Reinforcement-Learning (RL) ohne überwachte Feinabstimmung (SFT) trainiert wurde. Es kann hohe Leistungen bei Mathematik-, Code- und Denkaufgaben erbringen. Um auf das Modell zuzugreifen, setzen Sie den regionsübergreifenden Inferenzparameter aufAWS_US.mistral-large2ist das fortschrittlichste große Sprachmodell von Mistral AImit erstklassigen Argumentationsfähigkeiten. Im Vergleich zumistral-largeist es wesentlich leistungsfähiger in den Bereichen Codegenerierung, Mathematik und Argumentation und bietet eine viel stärkere Unterstützung für mehrere Sprachen.. Es eignet sich ideal für komplexe Aufgaben, die umfangreiche Argumentationsfähigkeiten erfordern oder hochspezialisiert sind, wie z. B. die Generierung synthetischer Texte, Codegenerierung und mehrsprachige Textanalyse.llama3.1-405bist ein Open Source-Modell aus derllama3.1-Modellfamilie von Meta mit einem großen 128K-Kontextfenster. Es zeichnet sich durch die Verarbeitung langer Dokumente, mehrsprachige Unterstützung, die Generierung synthetischer Daten und die Modelldestillation aus.snowflake-llama3.1-405bist ein Modell, das vom Open-Source-Modell lama3.1 abgeleitet ist. Es verwendet die SwiftKV-Optimierungen, die vom Snowflake-AI-Forschungsteam entwickelt wurden, um die Inferenzkosten um bis zu 75 % zu senken. SwiftKV erreicht einen höheren Durchsatz bei minimalem Genauigkeitsverlust.
Mittlere Modelle¶
llama3.1-70bist ein Open-Source-Modell, das modernste Leistung bietet und ideal für Chat-Anwendungen, Content-Erstellung und Unternehmensanwendungen ist. Es ist ein hochleistungsfähiges, kosteneffizientes Modell, das mit einem Kontextfenster von 128 K verschiedene Anwendungsfälle ermöglicht.llama3-70bwird weiterhin unterstützt und hat ein Kontextfenster von 8 K.snowflake-llama3.3-70bist ein Modell, das vom Open-Source-Modell lama3.3 abgeleitet ist. Es verwendet die SwiftKV-Optimierungen, die vom Snowflake-AI-Forschungsteam entwickelt wurden, um die Inferenzkosten um bis zu 75 % zu senken. SwiftKV erreicht einen höheren Durchsatz bei minimalem Genauigkeitsverlust.snowflake-arcticist das auf Unternehmen ausgerichtete Top-LLM von Snowflake. Arctic eignet sich hervorragend für Unternehmensaufgaben wie SQL-Generierung, Codierung und die Anweisungsbefolgung nach Benchmarks.mixtral-8x7bist ideal für Textgenerierung, Klassifizierung und die Beantwortung von Fragen. Die Mistral-Modelle sind für niedrige Latenzen und geringen Arbeitsspeicherbedarf optimiert, was sich in einem höheren Durchsatz für Anwendungsfälle in großen Unternehmen niederschlägt.
Kleine Modelle¶
llama3.1-8bist ideal für Aufgaben, die geringes bis mittleres logisches Denken erfordern. Es ist ein leichtes, ultraschnelles Modell mit einem Kontextfenster von 128K.llama3-8bbietet ein kleineres Kontextfenster und eine relativ geringere Präzision.mistral-7bist ideal für Ihre einfachsten Zusammenfassungs-, Strukturierungs- und Fragebeantwortungsaufgaben geeignet, die schnell erledigt werden müssen. Mit seinem 32K-Kontextfenster bietet es niedrige Latenzen und einen hohen Durchsatz bei der Verarbeitung mehrerer Textseiten.
Die folgende Tabelle bietet Informationen dazu, wie gängige Modelle bei verschiedenen Benchmarks abschneiden, einschließlich die von Snowflake Cortex-AI_COMPLETE angebotenen Modelle sowie einige andere beliebte Modelle.
Modell |
Kontextfenster
(Token)
|
MMLU
(Begründungen)
|
HumanEval
(Codierung)
|
GSM8K
(Arithmetisches Rechnen)
|
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 |
- |
Frühere Modellversionen¶
Die Snowflake Cortex-Funktionen AI_COMPLETE und COMPLETE unterstützen auch die folgenden älteren Modellversionen. Wir empfehlen, die neuesten Modellversionen anstelle der in dieser Tabelle aufgeführten Versionen zu verwenden.
Modell |
Kontextfenster
(Token)
|
MMLU
(Begründungen)
|
HumanEval
(Codierung)
|
GSM8K
(Arithmetisches Rechnen)
|
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.
ai_agg-Beispiel¶
Die Funktion ai_agg aggregiert eine Textspalte unter Verwendung von Anweisungen in natürlicher Sprache – ähnlich wie Sie einen Analysten bitten würden, Ergebnisse aus gruppierten oder nicht gruppierten Daten zusammenzufassen oder zu extrahieren.
Im folgenden Beispiel werden Kundenbewertungen für jedes Produkt unter Verwendung der Funktion ai_agg zusammengefasst. Die Funktion benötigt eine Textspalte und eine Anweisung in natürlicher Sprache, um die Bewertungen zusammenzufassen.
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()
Bemerkung
Verwenden Sie Aufgabenbeschreibungen, die detailliert sind und sich auf den Anwendungsfall konzentrieren. Zum Beispiel: „Fassen Sie das Kundenfeedback für einen Investorenbericht zusammen“.
Text mit ai_classify klassifizieren¶
Die Funktion ai_classify klassifiziert eine Zeichenfolge oder ein Bild in die von Ihnen definierten Kategorien.
Das folgende Beispiel klassifiziert Reiseberichte in Kategorien wie „Reisen“ und „Kochen“. Die Funktion nimmt eine Textspalte und eine Liste von Kategorien an, in die der Text klassifiziert werden soll.
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()
Bemerkung
Sie können bis zu 500 Kategorien angeben. Sie können sowohl Text als auch Bilder klassifizieren.
Zeilen mit ai_filter filtern¶
Die Funktion ai_filter wertet eine Bedingung in natürlicher Sprache aus und gibt True oder False zurück. Sie können damit Zeilen filtern oder taggen.
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()
Bemerkung
Sie können sowohl nach Zeichenfolgen als auch nach Dateien filtern. Für dynamische Eingabeaufforderungen verwenden Sie die Funktion :code:prompt. Weitere Informationen dazu finden Sie unter Referenz zu Snowpark Python.
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.
Wenn Sie Ihr Python-Skript außerhalb von Snowflake ausführen, müssen Sie eine Snowpark-Sitzung erstellen, um diese Funktionen nutzen zu können. Eine Anleitung dazu finden Sie unter Verbinden mit Snowflake.
Einzelne Werte verarbeiten¶
Das folgende Python-Beispiel zeigt den Aufruf von Snowflake Cortex-AI-Funktionen für einzelne Werte:
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"))
Hyperparameter-Optionen übergeben¶
Sie können Optionen übergeben, die sich auf die Hyperparameter des Modells auswirken, wenn Sie die Funktion complete verwenden. Das folgende Python-Beispiel veranschaulicht die Änderung der maximalen Anzahl von Ausgabe-Token, die das Modell generieren kann:
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))
Funktionen für Tabellenspalten aufrufen¶
Sie können eine AI-Funktion für eine Tabellenspalte aufrufen, wie unten gezeigt. Dieses Beispiel erfordert ein Sitzungsobjekt (gespeichert in session) und eine Tabelle articles mit einer Textspalte abstract_text. Das Beispiel erstellt eine neue Spalte abstract_summary mit einer Zusammenfassung des Abstracts.
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()
Bemerkung
Die erweiterte Form von COMPLETE im Chat-Stil (mehrere Meldungen) wird derzeit in Python von Snowflake ML nicht unterstützt.
Verwendung der Snowflake Cortex-AI-Funktionen mit Snowflake CLI¶
Snowflake Cortex AI Functions are available in Snowflake CLI version 2.4.0 and later. See Einführung in 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“.
Die folgenden Beispiele veranschaulichen die Verwendung der Befehle snow cortex für einzelne Werte. Der Parameter -c gibt an, welche Verbindung zu verwenden ist.
Bemerkung
Die erweiterte Form von COMPLETE im Chat-Stil (mehrere Meldungen) wird derzeit in Snowflake CLI nicht unterstützt.
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
Sie können auch Dateien verwenden, die den Text enthalten, den Sie für die Befehle verwenden möchten. Für dieses Beispiel nehmen wir an, dass die Datei about_cortex.txt den folgenden Inhalt hat:
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.
Sie können dann den Befehl snow cortex summarize ausführen, indem Sie den Dateinamen über den Parameter --file übergeben, wie gezeigt:
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).
Weitere Informationen zu diesen Befehlen finden Sie unter snow cortex-Befehle.
Rechtliche Hinweise¶
Die Datenklassifizierung der Eingaben und Ausgaben ist in der folgenden Tabelle aufgeführt.
Klassifizierung von Eingabedaten |
Klassifizierung von Ausgabedaten |
Benennung |
|---|---|---|
Usage Data |
Customer Data |
Die allgemein verfügbaren Funktionen sind abgedeckte AI-Features. Die Vorschaufunktionen sind Vorschau-AI-Features. [1] |
Weitere Informationen dazu finden Sie unter KI und ML in Snowflake.