Snowflake Cortex AISQL (einschließlich LLM-Funktionen)¶
Verwenden Sie Cortex AISQL in Snowflake, um unstrukturierte Analysen von Text und Bildern mit branchenführenden LLMs von OpenAI, Anthropic, Meta, Mistral AI und DeepSeek durchzuführen. Cortex AISQL unterstützt Anwendungsfälle wie z. B.:
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 werden als SQL-Funktionen bereitgestellt und sind auch in Python verfügbar. Cortex AISQL-Funktionen lassen sich in die folgenden Kategorien einteilen:
AISQL-Funktionen¶
Aufgabenspezifische Funktionen sind speziell entwickelte und verwaltete Funktionen, die Routineaufgaben automatisieren, wie z. B. einfache Zusammenfassungen und schnelle Übersetzungen, die keine Anpassung erfordern.
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.
Dies ist die aktualisierte Version von COMPLETE (SNOWFLAKE.CORTEX).
AI_CLASSIFY: Klassifiziert Text oder Bilder in benutzerdefinierte Kategorien.
Dies ist die aktualisierte Version von CLASSIFY_TEXT (SNOWFLAKE.CORTEX) mit Unterstützung für Multi-Label- und Bildklassifizierung.
AI_FILTER: Gibt True oder False für eine gegebene Text- oder Bildeingabe zurück, so dass Sie die Ergebnisse in den Klauseln
SELECT
,WHERE
oderJOIN ... ON
filtern 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_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.
PARSE_DOCUMENT (SNOWFLAKE.CORTEX): Extrahiert Text (im Modus OCR) oder Text mit Layoutinformationen (im Modus LAYOUT) aus Dokumenten in einem internen oder externen Stagingbereich.
TRANSLATE: Übersetzt Text zwischen unterstützten Sprachen.
SENTIMENT (SNOWFLAKE.CORTEX): Extrahiert Stimmungswerte aus Text.
EXTRACT_ANSWER (SNOWFLAKE.CORTEX): Extrahiert die Antwort auf eine Frage aus unstrukturierten Daten, vorausgesetzt, die entsprechenden Daten sind vorhanden.
SUMMARIZE (SNOWFLAKE.CORTEX): Liefert eine Zusammenfassung des Textes, den Sie angegeben haben.
Bemerkung
Funktionen, die früher als „LLM-Funktionen“ bezeichnet wurden, sind im Namespace „SNOWFLAKE.CORTEX“ aufgeführt
Hilfreiche Funktionen¶
Hilfsunktionen: Speziell entwickelte und verwaltete Funktionen, die Fehler bei der Ausführung anderer AISQL-Funktionen reduzieren, indem sie z. B. die Anzahl der Token in einer Eingabeaufforderung abfragen, um sicherzustellen, dass der Aufruf eine Modellbeschränkung nicht überschreitet.
COUNT_TOKENS (SNOWFLAKE.CORTEX): Gibt bei einer Eingabe die Anzahl der Token auf der Grundlage des angegebenen Modells oder der angegebenen Cortex-Funktion zurück.
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 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 Gebühren an, die sich nach der Anzahl der verarbeiteten Eingabe-Token richten.
Hinweise zur Performance¶
Cortex AISQL-Funktionen sind für den Durchsatz optimiert. Wir empfehlen die Verwendung dieser Funktionen für die Verarbeitung zahlreicher Eingaben, wie z. B. Text aus großen SQL-Tabellen. Die Batchverarbeitung eignet sich in der Regel besser für AISQL-Funktionen. Für interaktivere Anwendungsfälle, bei denen die Latenzzeit wichtig ist, verwenden Sie die REST API. Diese sind für einfache Inferenz (Complete API), Einbettung (Embed API) und agentenbasierte Anwendungen (Agents API) verfügbar.
Erforderliche Berechtigungen¶
Die Datenbankrolle CORTEX_USER der SNOWFLAKE-Datenbank beinhaltet die Berechtigungen, die es dem Benutzer erlauben, Snowflake Cortex-AI-Funktionen aufzurufen. Die Rolle CORTEX_USER ist standardmäßig der Rolle PUBLIC zugewiesen. Die Rolle PUBLIC wird automatisch allen Benutzern und Rollen zugewiesen, sodass allen Benutzern in Ihrem Konto die Nutzung der Snowflake Cortex-Funktionen-AI ermöglicht wird.
Wenn Sie nicht möchten, dass alle Benutzer diese Berechtigung haben, können Sie der Rolle PUBLIC die Berechtigung entziehen und den Zugriff nur bestimmten Rollen gewähren.
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. Die Datenbankrolle SNOWFLAKE.CORTEX_USER kann einem Benutzer nicht direkt zugewiesen werden. Weitere Informationen dazu finden Sie unter Verwenden von SNOWFLAKE-Datenbankrollen. Ein Benutzer mit der Rolle ACCOUNTADMIN kann diese Rolle einer kundenspezifischen Rolle zuweisen, um Benutzern den Zugriff auf Cortex AI-Funktionen 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;
Sie können den Zugriff auf die Snowflake Cortex-AI-Funktionen auch über bestehende Rollen gewähren, die häufig von bestimmten Benutzergruppen verwendet werden. (siehe Benutzerrollen). Wenn Sie beispielsweise eine analyst
-Rolle erstellt haben, die von Analysten in Ihrer Organisation als Standardrolle verwendet wird, können Sie diesen Benutzern mit einer einzigen GRANT-Anweisung schnell Zugriff auf die Snowflake Cortex-AISQL-Funktionen gewähren.
GRANT DATABASE ROLE SNOWFLAKE.CORTEX_USER TO ROLE analyst;
Zugriff auf das Modell kontrollieren¶
Es gibt zwei Methoden, um den Zugriff auf Modelle in Snowflake Cortex zu kontrollieren. Sie können eine oder beide Methoden zusammen verwenden, um eine Mischung aus breiter und feinkörniger Zugriffssteuerung zu erhalten:
Modell-Zulassungsliste
Rollenbasierte Zugriffssteuerung
Die Modell-Zulassungsliste bietet eine Standard-Zugriffsebene auf Modelle für alle Benutzer des Kontos, die mit dem Parameter CORTEX_MODELS_ALLOWLIST
angepasst werden kann. Die rollenbasierte Zugriffssteuerung ermöglicht eine fein abgestufte Zugriffsverwaltung, indem über Anwendungsrollen Berechtigungen für bestimmte Modellobjekte gewährt oder entzogen werden.
Die Modell-Zugriffssteuerung ist für die folgenden Dienste verfügbar:
Fein abgestufte Methoden der Zugriffssteuerung sind für die folgenden Dienste nicht verfügbar:
Cortex Search
Cortex Analyst
Cortex Copilot
Cortex Agents
Dokumenten-KI (Document AI)
Modell-Zulassungsliste¶
Verwenden Sie den Parameter CORTEX_MODELS_ALLOWLIST
im Befehl ALTER ACCOUNT SET
, um den Modellzugriff für alle Benutzer des Kontos festzulegen. Wenn Sie bestimmten Benutzern einen Zugriff gewähren müssen, der über das hinausgeht, was Sie in der Zulassungsliste angegeben haben, sollten Sie stattdessen eine rollenbasierte Zugriffssteuerung verwenden. Weitere Informationen zur rollenbasierten Zugriffssteuerung finden Sie unter Rollenbasierte Zugriffssteuerung.
Wenn Ihre Benutzer eine Anfrage stellen, wertet Snowflake Cortex den Parameter aus, um festzustellen, ob der Benutzer auf das Modell zugreifen kann.
Für den Parameter CORTEX_MODELS_ALLOWLIST
können Sie die folgenden Werte einstellen:
CORTEX_MODELS_ALLOWLIST = 'All'
Bietet Zugang zu allen Modellen.Der folgende Befehl bietet dem Benutzer Zugriff auf alle Modelle:
ALTER ACCOUNT SET CORTEX_MODELS_ALLOWLIST = 'All';
CORTEX_MODELS_ALLOWLIST = 'model1,model2,...'
Ermöglicht Benutzern den Zugriff auf die in einer kommagetrennten Liste angegebenen Modelle.
Mit dem folgenden Befehl erhalten Benutzer Zugriff auf die Modelle
mistral-large2
undllama3.1-70b
:ALTER ACCOUNT SET CORTEX_MODELS_ALLOWLIST = 'mistral-large2,llama3.1-70b';
CORTEX_MODELS_ALLOWLIST = 'None'
Verhindert, dass Benutzer auf ein Modell zugreifen können.Der folgende Befehl verhindert den Zugriff eines Benutzers auf ein Modell:
ALTER ACCOUNT SET CORTEX_MODELS_ALLOWLIST = 'None';
Rollenbasierte Zugriffssteuerung¶
Jedes Modell in Snowflake Cortex ist ein eindeutiges Objekt im Schema SNOWFLAKE.MODELS mit einer zugehörigen Anwendungsrolle. Sie können die Modellobjekte und Anwendungsrollen verwenden, um den Zugriff auf das Modellobjekt zu verwalten.
Verwenden Sie den folgenden Befehl, um Zugriff auf die neuesten Modelle zu erhalten:
CALL SNOWFLAKE.MODELS.CORTEX_BASE_MODELS_REFRESH();
Als nächstes verwenden Sie den folgenden Befehl, um die Modelle aufzulisten, die in Ihrem Snowflake-Konto verfügbar sind:
SHOW MODELS IN SNOWFLAKE.MODELS;
Der Befehl gibt eine Liste von Modellen zurück, wie zum Beispiel die folgende:
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 |
Verwenden Sie den folgenden Befehl, um die Anwendungsrollen für diese Modelle aufzulisten:
SHOW APPLICATION ROLES IN APPLICATION SNOWFLAKE;
Der Befehl gibt eine Liste von Anwendungsrollen zurück, wie z. B. die folgende:
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 |
Wichtig
Wenn Sie keine Modelle oder die zugehörigen Anwendungsrollen sehen, stellen Sie sicher, dass Sie CALL SNOWFLAKE.MODELS.CORTEX_BASE_MODELS_REFRESH()
aufrufen, um Zugriff auf die neuesten Modelle zu erhalten.
Um den Zugriff auf ein bestimmtes Modell zu gewähren, weisen Sie die Anwendungsrolle des Modells einer Benutzerrolle zu. Sie können zum Beispiel CORTEX-MODEL-ROLE-LLAMA3. 1-70B
, die Anwendungsrolle für SNOWFLAKE.MODELS. "LLAMA3. 1-70B"
, einer Benutzerrolle zuweisen. Mit dem folgenden Befehl wird die Anwendungsrolle CORTEX-MODEL-ROLE-LLAMA3. 1-70B
der Benutzerrolle MY_ROLE
zugewiesen:
GRANT APPLICATION ROLE SNOWFLAKE."CORTEX-MODEL-ROLE-LLAMA3.1-70B" TO ROLE MY_ROLE;
Um einen Inferenzaufruf zu machen, verwenden Sie den vollständig qualifizierten Modellnamen. Im Folgenden sehen Sie ein Beispiel für einen Aufruf, den Benutzer machen können:
SELECT AI_COMPLETE('SNOWFLAKE.MODELS."LLAMA3.1-70B"', 'Hello');
Wichtig
Wenn ein Benutzer eine Anfrage stellt, verwendet Snowflake Cortex zunächst eine rollenbasierte Zugriffssteuerung, um festzustellen, ob der Benutzer Zugriff auf das Modell hat. Wenn der Benutzer keinen Zugriff hat, wertet Snowflake Cortex CORTEX_MODELS_ALLOWLIST aus, um den Zugriff auf das Modell zu bestimmen. Wenn das Modell in der Zulassungsliste enthalten ist (oder wenn der Wert der Zulassungsliste auf 'All'
gesetzt ist), wird dem Benutzer der Zugriff auf das Modell gewährt. Um den granularen Zugriff auf ein Modell zu ermöglichen, entfernen Sie den Modellnamen aus CORTEX_MODELS_ALLOWLIST oder setzen Sie ihn auf 'None'
.
Verfügbarkeit¶
Snowflake Cortex-AI-Funktionen sind derzeit in den folgenden Regionen verfügbar. Um auf LLMs aus Regionen zuzugreifen, die nicht aufgelistet sind, verwenden Sie den regionsübergreifenden Inferenzparameter.
Bemerkung
Die Funktion TRY_COMPLETE ist in denselben Regionen verfügbar wie COMPLETE.
Die Funktion COUNT_TOKENS ist in allen Regionen verfügbar, aber die Inferenz des Modells ist regionsspezifisch, wie in der Tabelle angegeben.
Funktion
(Modell)
|
AWS US
(Regionsübergreifend)
|
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)
|
AWS US East
(Commercial Gov - N. Virginia)
|
Azure East US 2
(Virginia)
|
Azure West Europe
(Niederlande)
|
AWS EU
(Regionsübergreifend)
|
AWS AWS_APJ
(Regionsübergreifend)
|
Azure US
(Regionsübergreifend)
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
COMPLETE
(
claude-4-sonnet ) |
✔ |
||||||||||||
COMPLETE
(
claude-4-opus ) |
In der Vorschau |
||||||||||||
COMPLETE
(
claude-3-7-sonnet ) |
✔ |
||||||||||||
COMPLETE
(
claude-3-5-sonnet ) |
✔ |
✔ |
✔ |
||||||||||
COMPLETE
(
llama4-maverick ) |
✔ |
✔ |
|||||||||||
COMPLETE
(
llama4-scout ) |
✔ |
✔ |
|||||||||||
COMPLETE
(
llama3.2-1b ) |
✔ |
✔ |
|||||||||||
COMPLETE
(
llama3.2-3b ) |
✔ |
✔ |
|||||||||||
COMPLETE
(
llama3.1-8b ) |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
COMPLETE
(
llama3.1-70b ) |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
COMPLETE
(
llama3.3-70b ) |
✔ |
✔ |
|||||||||||
COMPLETE
(
snowflake-llama-3.3-70b ) |
✔ |
✔ |
|||||||||||
COMPLETE
(
llama3.1-405b ) |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
|||||||
COMPLETE
(
openai-gpt-4.1 ) |
In der Vorschau |
In der Vorschau |
|||||||||||
COMPLETE
(
openai-o4-mini ) |
In der Vorschau |
In der Vorschau |
|||||||||||
COMPLETE
(
snowflake-llama-3.1-405b ) |
✔ |
✔ |
|||||||||||
COMPLETE
(
snowflake-arctic ) |
✔ |
✔ |
✔ |
✔ |
|||||||||
COMPLETE
(
deepseek-r1 ) |
✔ |
✔ |
|||||||||||
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_768
(
snowflake-arctic-embed-m-v1.5 ) |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
|
EMBED_TEXT_1024
(
snowflake-arctic-embed-l-v2.0 ) |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
|
EMBED_TEXT_1024
(
nv-embed-qa-4 ) |
✔ |
✔ |
|||||||||||
EMBED_TEXT_1024
(
multilingual-e5-large ) |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
|
EMBED_TEXT_1024
(
voyage-multilingual-2 ) |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
|
AI_CLASSIFY TEXT
|
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
AI_CLASSIFY IMAGE
|
✔ |
✔ |
✔ |
✔ |
|||||||||
AI_FILTER TEXT
|
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
AI_FILTER IMAGE
|
✔ |
✔ |
✔ |
✔ |
|||||||||
AI_AGG
|
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
AI_SIMILARITY TEXT
|
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
AI_SIMILARITY IMAGE
|
✔ |
✔ |
✔ |
✔ |
|||||||||
AI_SUMMARIZE_AGG
|
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
EXTRACT_ANSWER |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
SENTIMENT |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
ENTITY_SENTIMENT |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
||
SUMMARIZE |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
TRANSLATE |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
Die folgenden Funktionen von Snowflake Cortex AI sind derzeit in den folgenden erweiterten Regionen verfügbar.
Funktion
(Modell)
|
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)
|
GCP Europe West 2
(London)
|
GCP Europe West 4
(Niederlande)
|
GCP US Zentrale 1
(Iowa)
|
GCP US East 4
(N. Virginia)
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
EMBED_TEXT_768
(
snowflake-arctic-embed-m-v1.5 ) |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
EMBED_TEXT_768
(
snowflake-arctic-embed-m ) |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
EMBED_TEXT_1024
(
multilingual-e5-large ) |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
Die folgende Tabelle listet die älteren Modelle auf. Wenn Sie gerade erst anfangen, beginnen Sie mit den Modellen in den vorherigen Tabellen:
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)
|
---|---|---|---|---|---|---|---|---|
COMPLETE
(
llama2-70b-chat ) |
✔ |
✔ |
✔ |
✔ |
✔ |
|||
COMPLETE
(
llama3-8b ) |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
||
COMPLETE
(
llama3-70b ) |
✔ |
✔ |
✔ |
✔ |
✔ |
|||
COMPLETE
(
mistral-large ) |
✔ |
✔ |
✔ |
✔ |
✔ |
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 Funktionen des Snowflake Cortex AI verarbeitet wird und etwa vier Zeichen entspricht. Das Verhältnis des ein-/ausgegebene Rohtextes zur Tokenanzahl kann je nach Modell variieren.
Bei Funktionen, die neuen Text in der Antwort generieren (AI_COMPLETE, AI_CLASSIFY, AI_FILTER, AI_AGG, AI_SUMMARIZE und TRANSLATE), werden sowohl Eingabe- als auch Ausgabe-Token gezählt.
Für CORTEX GUARD werden nur Eingabetoken gezählt. Die Anzahl der Eingabe-Token basiert auf der Anzahl der Ausgabe-Token pro LLM-Modell, das in der Funktion COMPLETE verwendet wird.
Bei AI_SIMILARITY und den Funktionen EMBED_* werden nur die Eingabe-Token gezählt.
Bei EXTRACT_ANSWER ergibt sich die Anzahl der abrechenbaren Token aus der Summe der Anzahl der Token in den Feldern
from_text
undquestion
.AI_CLASSIFY, AI_FILTER, AI_AGG, AI_SUMMARIZE_AGG, SUMMARIZE, TRANSLATE, EXTRACT_ANSWER und ENTITY_SENTIMENT und SENTIMENT fügen dem Eingabetext eine Aufforderung hinzu, um die Antwort zu erzeugen. Das Ergebnis ist, dass die Anzahl der Eingabe-Token höher ist als die Anzahl der Token in dem von Ihnen bereitgestellten Text.
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 PARSE_DOCUMENT (SNOWFLAKE.CORTEX) erfolgt die Abrechnung auf der Grundlage der Anzahl der verarbeiteten Dokumentseiten.
TRY_COMPLETE(SNOWFLAKE.CORTEX) verursacht keine Kosten für die Fehlerbehandlung. Das bedeutet, dass, wenn die TRY_COMPLETE(SNOWFLAKE.CORTEX)-Funktion NULL zurückgibt, keine Kosten anfallen.
COUNT_TOKENS(SNOWFLAKE.CORTEX) verursacht nur Rechenkosten für die Ausführung der Funktion. Es fallen keine zusätzlichen Kosten für Token an.
Snowflake empfiehlt, Abfragen, die eine Snowflake Cortex AISQL-Funktion oder eine Cortex PARSE_DOCUMENT-Funktion aufrufen, mit einem kleineren Warehouse (nicht größer als MEDIUM) auszuführen, da größere Warehouses die Leistung nicht erhöhen. Die Kosten, die mit dem kontinuierlichen Ausführen eines Warehouses verbunden sind, fallen auch dann an, wenn eine Abfrage ausgeführt wird, die eine Snowflake Cortex-LLM-Funktion aufruft. Allgemeine Informationen zu Computekosten finden Sie unter Erläuterungen zu Computekosten.
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';
Verfolgen Sie den Credit-Verbrauch für AISQL-Funktionen¶
Um den Credit- und Token-Verbrauch für jeden AISQL-Funktionsaufruf zu sehen, verwenden Sie die 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¶
Um sicherzustellen, dass alle Snowflake-Kunden auf die LLM-Funktionen zugreifen können, können die Funktionen von Snowflake Cortex AI in Zeiten hoher Auslastung gedrosselt werden. Nutzungskontingente kommen auf Kontoebene nicht zur Anwendung.
Gedrosselte Anfragen erhalten eine Fehlerantwort und sollten später erneut versucht werden.
Bemerkung
On-demand-Snowflake-Konten ohne gültige Zahlungsmethode (z. B. Testkonten) sind auf etwa einen Credit pro Tag für die Nutzung der Snowflake Cortex-LLM-Funktion beschränkt. Um diese Einschränkung aufzuheben, wandeln Sie Ihr Testkonto in ein kostenpflichtiges Konto um.
Kostenmanagement und Drosselung¶
Snowflake empfiehlt, beim Aufrufen von Snowflake Cortex-AISQL-Funktionen eine Warehouse-Größe von maximal MEDIUM zu verwenden. Die Verwendung eines größeren Warehouses als nötig erhöht nicht die Leistung, sondern kann zu unnötigen Kosten und einem höheren Risiko der Drosselung führen. Diese Empfehlung gilt möglicherweise in Zukunft nicht mehr, da die Produkte aktualisiert werden.
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-8b
undmistral-7b
beträgt 4.096 Token.das Kontextfenster für
llama3.1-8b
beträ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-8b
beträgt 16.384 Token.das Kontextfenster für
mistral-7b
beträgt 4.096 Token.
Funktion |
Modell |
Kontextfenster (Token) |
Maximale Ausgabe AISQL-Funktionen (Token) |
---|---|---|---|
COMPLETE |
|
128,000 |
8,192 |
|
128,000 |
8,192 |
|
|
4,096 |
8,192 |
|
|
32,768 |
8,192 |
|
|
200,000 |
32,000 |
|
|
200,000 |
64,000 |
|
|
200,000 |
8,192 |
|
|
200,000 |
8,192 |
|
|
32,000 |
8,192 |
|
|
128,000 |
8,192 |
|
|
1,047,576 |
32,768 |
|
|
200,000 |
100,000 |
|
|
100,000 |
8,192 |
|
|
32,000 |
8,192 |
|
|
256,000 |
8,192 |
|
|
256,000 |
8,192 |
|
|
256,000 |
8,192 |
|
|
32,000 |
8,192 |
|
|
4,096 |
8,192 |
|
|
8,000 |
8,192 |
|
|
8,000 |
8,192 |
|
|
128,000 |
8,192 |
|
|
128,000 |
8,192 |
|
|
128,000 |
8,192 |
|
|
8,000 |
8,192 |
|
|
128,000 |
8,192 |
|
|
8,000 |
8,192 |
|
|
128,000 |
8,192 |
|
|
128,000 |
8,192 |
|
|
32,000 |
8,192 |
|
|
8,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_FILTER |
Snowflake-verwaltetes Modell |
128,000 |
k.A. |
AI_CLASSIFY / CLASSIFY_TEXT |
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_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 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
reka-core
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 Sonnet
ist 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-r1
ist 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-large2
ist das fortschrittlichste große Sprachmodell von Mistral AImit erstklassigen Argumentationsfähigkeiten. Im Vergleich zumistral-large
ist 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-405b
ist 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-405b
ist ein Modell, das von dem Open-Source-Modell llama3.1 abgeleitet ist. Es nutzt das<SwiftKV optimizations https://www.snowflake.com/en/blog/up-to-75-lower-inference-cost-llama-meta-llm/>
, das vom Snowflake AI-Forschungsteam entwickelt wurde, um die Kosten für Inferenzen um bis zu 75 % zu senken. SwiftKV erreicht eine höhere Durchsatzleistung bei minimalem Genauigkeitsverlust.
Mittlere Modelle¶
llama3.1-70b
ist 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-70b
wird weiterhin unterstützt und hat ein Kontextfenster von 8 K.snowflake-llama3.3-70b
ist ein Modell, das von dem Open-Source-Modell llama3.3 abgeleitet ist. Es nutzt die vom Snowflake AI-Forschungsteam entwickelte<SwiftKV optimizations https://www.snowflake.com/en/blog/up-to-75-lower-inference-cost-llama-meta-llm/>
, um die Kosten für Inferenzen um bis zu 75 % zu senken. SwiftKV erreicht eine höhere Durchsatzleistung bei minimalem Genauigkeitsverlust.snowflake-arctic
ist 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-8x7b
ist 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.Das
jamba-Instruct
-Modell wurde von AI21 Labs entwickelt, um die Anforderungen von Unternehmen effizient zu erfüllen. Es ist so optimiert, dass es ein 256k Token-Kontextfenster mit geringen Kosten und Latenzzeiten bietet, was es ideal für Aufgaben wie Zusammenfassung, Q&A und Entitätsextraktion bei langen Dokumenten und umfangreichen Wissensdatenbanken macht.Die AI21 Jamba 1.5-Modellfamilie ist eine hochmoderne, hybride SSM-Transformator-Anweisung, die Grundmodellen folgt.
jamba-1.5-mini
undjamba-1.5-large
mit einer Kontextlänge von 256K unterstützen Anwendungsfälle wie die strukturierte Ausgabe (JSON) und die grundlegende Generierung.
Kleine Modelle¶
Die Modelle
llama3.2-1b
undllama3.2-3b
unterstützen Kontextlängen von 128-K-Token und sind in ihrer Klasse für Anwendungsfälle wie die Zusammenfassung, das Verfolgen von Anweisungen und das Umschreiben von Aufgaben führend. Llama 3.2-Modelle sind mehrsprachig und unterstützen Englisch, Deutsch, Französisch, Italienisch, Portugiesisch, Hindi, Spanisch und Thailändisch.llama3.1-8b
ist ideal für Aufgaben, die geringes bis mittleres logisches Denken erfordern. Es ist ein einfaches, ultraschnelles Modell mit einem Kontextfenster von 128 K.llama3-8b
undllama2-70b-chat
sind weiterhin unterstützte Modelle, die ein kleineres Kontextfenster und eine relativ geringere Präzision bieten.mistral-7b
ist 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.gemma-7b
ist für einfache Code- und Textvervollständigungsaufgaben geeignet. Es hat ein Kontextfenster von 8.000 Token, ist aber innerhalb dieses Limits erstaunlich leistungsfähig und recht kostengünstig.
Die folgende Tabelle bietet Informationen dazu, wie gängige Modelle bei verschiedenen Benchmarks abschneiden, einschließlich die von Snowflake Cortex-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 |
- |
|
32,000 |
83,2 |
76,8 |
92,2 |
- |
|
128,000 |
86 |
80,5 |
95,1 |
- |
|
128,000 |
84 |
92 |
93 |
- |
|
100,000 |
75,9 |
72 |
81 |
- |
|
128,000 |
73 |
72,6 |
84,9 |
- |
|
32,000 |
70,6 |
40,2 |
60,4 |
- |
|
256,000 |
68,2 |
40 |
59,9 |
- |
|
256,000 |
69,7 |
- |
75,8 |
- |
|
256,000 |
81,2 |
- |
87 |
- |
|
4,096 |
67,3 |
64,3 |
69,7 |
79 |
|
128,000 |
49,3 |
- |
44,4 |
- |
|
128,000 |
69,4 |
- |
77,7 |
- |
|
8,000 |
64,3 |
32,3 |
46,4 |
- |
|
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 COMPLETE-Funktion unterstützt auch die folgenden älteren Modellversionen. Wir empfehlen die Verwendung der neuesten Modellversionen anstelle der in dieser Tabelle aufgeführten Versionen.
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 |
- |
Fehlerbedingungen¶
Snowflake Cortex-AI-Funktionen können die folgenden Fehlermeldungen erzeugen.
Meldung |
Erläuterung |
---|---|
|
Die Anfrage wurde wegen zu hoher Systembelastung abgelehnt. Versuchen Sie Ihre Anfrage erneut. |
|
Das an die Funktion übergebene |
|
Das Budget für den Modellverbrauch wurde überschritten. |
|
Das angegebene Modell ist nicht vorhanden. |
|
Die angegebene Sprache wird von der TRANSLATE-Funktion nicht unterstützt. |
|
Die Anfrage hat die maximale Anzahl der vom Modell unterstützten Token überschritten (siehe Modelleinschränkungen). |
|
Die Anfrage wurde aufgrund einer hohen Nutzung gedrosselt. Versuchen Sie es später noch einmal. |
|
Die angegebene Anzahl von Kategorien liegt über der Beschränkung für AI_CLASSIFY. |
|
Der angegebene Kategorietyp wird von AI_CLASSIFY nicht unterstützt. |
|
Die Eingabe für AI_CLASSIFY ist eine leere Zeichenfolge oder Null. |
Verwendung von Snowflake Cortex AISQL mit Python¶
Sie können Snowflake Cortex AISQL-Funktionen in Snowpark Python API verwenden. In API können Sie die Funktionen zum Klassifizieren, Zusammenfassen und Filtern von Text- und Bilddaten verwenden.
Diese Funktionen umfassen die folgenden:
ai_agg()
– Aggregiert eine Textspalte mit Anweisungen in natürlicher Sprache. Weitere Informationen dazu finden Sie unter AI_AGG.ai_classify()
– Klassifiziert Text oder Bilder in benutzerdefinierte Kategorien. Weitere Informationen dazu finden Sie unter AI_CLASSIFY.ai_filter()
– Filtert Daten mithilfe natürlicher Sprache. Weitere Informationen dazu finden Sie unter AI_FILTER.
Die Funktion ai_agg()
fasst eine Textspalte mithilfe von Anweisungen in natürlicher Sprache zusammen, ähnlich wie Sie einen Analysten bitten würden, Ergebnisse aus gruppierten oder nicht gruppierten Daten zusammenzufassen oder zu extrahieren.
Das folgende Beispiel fasst die Kundenrezensionen für jedes Produkt mit der Funktion ai_agg()
zusammen. Die Funktion nimmt 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“.
Die Funktion ai_classify()
klassifiziert einen Text 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
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("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.
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 markieren.
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 Aufforderungen verwenden Sie die Funktion prompt(). Weitere Informationen finden Sie unter Snowpark Python Referenz.
Bestehende Funktionen von Snowpark ML werden in Snowpark ML Version 1.1.2 und höher weiterhin unterstützt. Eine Anleitung zum Einrichten von Snowpark ML finden Sie unter Lokale Verwendung von Snowflake ML.
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.
Das folgende Python-Beispiel zeigt den Aufruf von Snowflake Cortex-AI-Funktionen für einzelne Werte:
from snowflake.cortex import Complete, ExtractAnswer, 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("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"))
Sie können Optionen übergeben, die die Hyperparameter des Modells beeinflussen, wenn Sie die Funktion COMPLETE verwenden. Das folgende Python-Beispiel veranschaulicht den Aufruf der Funktion COMPLETE mit einer Änderung der maximalen Anzahl von Ausgabe-Token, die das Modell erzeugen 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))
Sie können auch 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 nicht unterstützt.
Verwendung der Snowflake Cortex-AI-Funktionen mit Snowflake CLI¶
Snowflake Cortex AISQL ist in Snowflake CLI Version 2.4.0 und höher verfügbar. Unter Einführung in Snowflake CLI finden Sie weitere Informationen zur Verwendung von Snowflake CLI.
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.