Large Language Model (LLM)-Funktionen (Snowflake Cortex)

Snowflake Cortex bietet Ihnen direkten Zugang zu branchenführenden Large Language Models, kurz LLMs (dt. große Sprachmodelle), die von Forschern in Unternehmen wie Mistral, Reka, Meta und Google, einschließlich Snowflake Arctic, ein von Snowflake entwickeltes offenes Enterprise-Modell, trainiert wurden.

Da diese LLMs vollständig von Snowflake gehostet und verwaltet werden, ist für ihre Nutzung keine spezielle Einrichtung erforderlich. Ihre Daten bleiben in Snowflake und bieten Ihnen die Leistung, Skalierbarkeit und Governance, die Sie erwarten.

Verfügbare Funktionen

Snowflake Cortex-Features werden als SQL-Funktionen bereitgestellt und sind auch in Python verfügbar. Cortex LLM-Funktionen lassen sich in die folgenden Kategorien einteilen:

Funktion COMPLETE

Die Funktion COMPLETE ist eine allgemeine Funktion, die eine Vielzahl von benutzerspezifischen Aufgaben ausführen kann, wie z. B. aspektbasierte Standpunktklassifizierung, Generierung synthetischer Daten und benutzerdefinierte Zusammenfassungen. Cortex Guard ist ein in der Funktion COMPLETE verfügbarer Sicherheitsparameter, der dazu dient, mögliche unsichere und schädliche Antworten aus einem Sprachmodell zu filtern. Sie können diese Funktion auch mit Ihren Fine-Tuning-Modellen nutzen.

Aufgabenspezifische Funktionen

Aufgabenspezifische Funktionen sind speziell entwickelte und verwaltete Funktionen, die Routineaufgaben automatisieren, wie z. B. einfache Zusammenfassungen und schnelle Übersetzungen, die keine Anpassung erfordern.

  • CLASSIFY_TEXT: Bei einer Eingabe wird diese in eine der von Ihnen definierten Klassen eingeordnet.

  • EXTRACT_ANSWER: Gibt bei einer Frage und unstrukturierten Daten die Antwort auf die Frage zurück, wenn sie in den Daten gefunden werden kann.

  • PARSE_DOCUMENT: Gibt bei einem internen oder externen Stagingbereich mit Dokumenten ein Objekt zurück, das eine JSON-formatierte Zeichenfolge mit extrahiertem Textinhalt im OCR-Modus oder den extrahierten Text und die Layoutelemente im Modus LAYOUT enthält.

  • SENTIMENT: Gibt einen Stimmungswert zwischen -1 und 1 zurück, der die erkannte positive oder negative Stimmung des gegebenen Textes darstellt.

  • SUMMARIZE: Gibt eine Zusammenfassung des gegebenen Textes zurück.

  • TRANSLATE: Übersetzt einen gegebenen Text aus einer beliebigen unterstützten Sprache in eine andere.

  • EMBED_TEXT_768: Gibt für einen Text eine Vektoreinbettung mit 768 Dimensionen zurück, die diesen Text repräsentiert.

  • EMBED_TEXT_1024: Gibt eine Vektoreinbettung mit 1024 Dimensionen zurück, die diesen Text repräsentiert.

Hilfreiche Funktionen

Hilfsunktionen: Speziell entwickelte und verwaltete Funktionen, die Fehler bei der Ausführung anderer LLM-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: Gibt bei einer Eingabe die Anzahl der Token auf der Grundlage des angegebenen Modells oder der angegebenen Cortex-Funktion zurück.

  • TRY_COMPLETE: Funktioniert wie die Funktion COMPLETE, gibt aber NULL anstatt eines Fehlercodes zurück, wenn die Funktion nicht ausgeführt werden konnte.

Erforderliche Berechtigungen

Die Datenbankrolle CORTEX_USER der SNOWFLAKE-Datenbank beinhaltet die Berechtigungen, die es dem Benutzer erlauben, Snowflake Cortex-LLM-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-LLM 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;
Copy

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 die Funktionen von Cortex LLM 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;
Copy

Sie können den Zugriff auf die Snowflake Cortex-LLM-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-LLM-Funktionen gewähren.

GRANT DATABASE ROLE SNOWFLAKE.CORTEX_USER TO ROLE analyst;
Copy

Verfügbarkeit

Snowflake Cortex-LLM-Funktionen sind derzeit in den folgenden Regionen verfügbar. Um auf LLMs aus nicht aufgeführten Regionen zuzugreifen, verwenden Sie den regionsübergreifenden Parameter <label-use-cross-region-inference>.

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

COMPLETE
(llama3.2-3b)

COMPLETE
(llama3.1-8b)

COMPLETE
(llama3.1-70b)

COMPLETE
(llama3.1-405b)

COMPLETE
(snowflake-arctic)

COMPLETE
(reka-core)

COMPLETE
(reka-flash)

COMPLETE
(mistral-large2)

COMPLETE
(mixtral-8x7b)

COMPLETE
(mistral-7b)

COMPLETE
(jamba-instruct)

COMPLETE
(jamba-1.5-mini)

COMPLETE
(jamba-1.5-large)

COMPLETE
(gemma-7b)

EMBED_TEXT_768
(e5-base-v2)

EMBED_TEXT_768
(snowflake-arctic-embed-m)

EMBED_TEXT_1024
(nv-embed-qa-4)

EMBED_TEXT_1024
(multilingual-e5-large)

EMBED_TEXT_1024
(voyage-multilingual-2)

CLASSIFY_TEXT

EXTRACT_ANSWER

SENTIMENT

SUMMARIZE

TRANSLATE

Die folgenden Funktionen von Snowflake Cortex LLM 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
(Syndey)
AWS AP Southeast 3
(Jakarta)
Azure South Central US
(Texas)
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)

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:

Legacy
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

Bemerkung

Eine PARSE_DOCUMENT-Abrechnung nach Anzahl der bearbeiteten Seiten wird in Kürze erwartet.

Snowflake Cortex-LLM-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 LLM 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 (COMPLETE, CLASSIFY_TEXT, 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 den EMBED_TEXT_*-Funktionen werden nur die Eingabe-Token gezählt.

  • Bei Funktionen, die nur Informationen aus der Eingabe extrahieren (EXTRACT_ANSWER und SENTIMENT), 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 und question.

  • SUMMARIZE, TRANSLATE, EXTRACT_ANSWER, CLASSIFY_TEXT und SENTIMENT fügen dem Eingabetext einen Prompt hinzu, um die Antwort zu generieren. Daher ist die Anzahl der Eingabe-Token etwas höher als die Anzahl der Token in dem von Ihnen bereitgestellten Text.

  • TRY_COMPLETE verursacht keine Kosten für die Fehlerbehandlung. Das bedeutet, dass, wenn die Funktion TRY_COMPLETE NULL zurückgibt, keine Kosten anfallen.

  • COUNT_TOKENS verursacht nur Kosten für die Ausführung der Funktion. Es fallen keine zusätzlichen Kosten für Token an.

Snowflake empfiehlt, dass Sie Abfragen, die eine Snowflake Cortex-LLM-Funktion oder die Cortex-PARSE_DOCUMENT-Funktion aufrufen, mit einem kleineren Warehouse (nicht größer als MEDIUM) ausfü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';
Copy

Verfolgen Sie den Credit-Verbrauch für LLM-Funktionen

Um den Credit- und Token-Verbrauch für jeden LLM-Funktionsaufruf zu sehen, verwenden Sie die Ansicht CORTEX_FUNCTIONS_USAGE_HISTORY:

SELECT *
  FROM SNOWFLAKE.ACCOUNT_USAGE.CORTEX_FUNCTIONS_USAGE_HISTORY;
Copy

Nutzungskontingente

Um sicherzustellen, dass alle Snowflake-Kunden auf die LLM-Funktionen zugreifen können, können die Funktionen von Snowflake Cortex LLM 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-LLM-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.

Wichtig

In der Region AWS AP Southeast 2 (Sydney) ist das Kontextfenster für die folgenden Modelle 4k:

  • llama3-8b und mistral-7b für die Funktion COMPLETE.

  • Snowflake-verwaltetes Modell aus der SUMMARIZE-Funktion.

In der AWS-Region Irland ist das Kontextfenster für llama3.1-8b 16.384.

Funktion

Modell

Kontextfenster (Token)

COMPLETE

snowflake-arctic

4,096

mistral-large

32,000

mistral-large2

128,000

reka-flash

100,000

reka-core

32,000

jamba-instruct

256,000

jamba-1.5-mini

256,000

jamba-1.5-large

256,000

mixtral-8x7b

32,000

llama2-70b-chat

4,096

llama3-8b

8,000

llama3-70b

8,000

llama3.1-8b

128,000

llama3.1-70b

128,000

llama3.1-405b

128,000

llama3.2-1b

128,000

llama3.2-3b

128,000

mistral-7b

32,000

gemma-7b

8,000

EMBED_TEXT_768

e5-base-v2

512

snowflake-arctic-embed-m

512

EMBED_TEXT_1024

nv-embed-qa-4

512

multilingual-e5-large

512

voyage-multilingual-2

32,000

CLASSIFY_TEXT

Snowflake-verwaltetes Modell

128,000

EXTRACT_ANSWER

Snowflake-verwaltetes Modell

2.048 für Text
64 für Frage

SENTIMENT

Snowflake-verwaltetes Modell

512

SUMMARIZE

Snowflake-verwaltetes Modell

32,000

TRANSLATE

Snowflake-verwaltetes Modell

1,024

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

  • reka-core ist das fortschrittlichste große Sprachmodell von Reka AI mit starken Ergebnissen bei Argumentationsfähigkeit, Codegenerierung und Mehrsprachigkeit.

  • mistral-large2 ist das fortschrittlichste große Sprachmodell von Mistral AImit erstklassigen Argumentationsfähigkeiten. Im Vergleich zu mistral-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 der llama3.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.

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

  • reka-flash ist ein hochleistungsfähiges mehrsprachiges Sprachmodell, das für schnelle Workloads optimiert ist, die eine hohe Qualität erfordern, wie z. B. das Schreiben von Produktbeschreibungen oder Blogbeiträgen, Codierung und das Extrahieren von Antworten aus Dokumenten mit Hunderten von Seiten.

  • 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 und jamba-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 und llama3.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 und llama2-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)

GPT 4.o *

128,000

88,7

90,2

96,4

-

llama3.1-405b

128,000

88,6

89

96,8

-

reka-core

32,000

83,2

76,8

92,2

-

llama3.1-70b

128,000

86

80,5

95,1

-

mistral-large2

128,000

84

92

93

-

mistral-large

32,000

81,2

45,1

81

81

reka-flash

100,000

75,9

72

81

-

llama3.1-8b

128,000

73

72,6

84,9

-

mixtral-8x7b

32,000

70,6

40,2

60,4

-

llama-2-70b-chat

4,096

68,9

30,5

57,5

-

jamba-instruct

256,000

68,2

40

59,9

-

jamba-1.5-mini

256,000

69,7

-

75,8

-

jamba-1.5-groß

256,000

81,2

-

87

-

Snowflake Arctic

4,096

67,3

64,3

69,7

79

llama3.2-1b

128,000

49,3

-

44,4

-

llama3.2-3b

128,000

69,4

-

77,7

-

gemma-7b

8,000

64,3

32,3

46,4

-

mistral-7b

32,000

62,5

26,2

52,1

-

GPT 3.5 Turbo*

4,097

70

48,1

57,1

-

*Zu Vergleichszwecken bereitgestellt; nicht verfügbar in Snowflake Cortex-COMPLETE.

Übersicht zu LLM-Funktionen

Cortex LLM-Funktionen lassen sich in die folgenden Kategorien einteilen:

  • COMPLETE-Funktion: Eine Funktion für allgemeine Zwecke, die eine Vielzahl von benutzerspezifischen Aufgaben ausführen kann, wie z. B. aspektbasierte Standpunktklassifizierung, Generierung synthetischer Daten und benutzerdefinierte Zusammenfassungen. Sie können diese Funktion auch mit Ihren Fine-Tuning-Modellen nutzen.

  • Aufgabenspezifische Funktionen: Speziell entwickelte und verwaltete Funktionen, die Routineaufgaben automatisieren, wie z. B. einfache Zusammenfassungen und schnelle Übersetzungen, die keine Anpassung erfordern.

  • Hilfsunktionen: Speziell entwickelte und verwaltete Funktionen, die Fehler bei der Ausführung anderer LLM-Funktionen reduzieren, indem sie z. B. die Anzahl der Token in einer Eingabeaufforderung abfragen, um sicherzustellen, dass der Aufruf eine Modellbeschränkung nicht überschreitet.

COMPLETE

Bei einer Eingabeaufforderung generiert die Anweisungen befolgende COMPLETE-Funktion eine Antwort unter Verwendung des von Ihnen gewählten Sprachmodells. Im einfachsten Fall besteht die Eingabeaufforderung aus einer einzigen Zeichenfolge. Sie können auch eine Konversation aus mehreren Eingabeaufforderungen und Antworten für eine interaktive Nutzung im Chat-Stil bereitstellen. In dieser Form der Funktion können Sie auch Hyperparameter-Optionen angeben, um den Stil und die Größe der Ausgabe anzupassen. Um Schutzmaßnahmen zu implementieren, können Sie auch den Parameter Cortex Guard aktivieren, der potenziell unsichere und schädliche Antworten von einem LLM filtert.

Um Schutzmaßnahmen zu implementieren, können Sie den Parameter Cortex Guard aktivieren, der unsichere und schädliche Antworten von einem LLM filtert.

Die COMPLETE-Funktion unterstützt die folgenden Modelle. Verschiedene Modelle können unterschiedliche Kosten haben.

  • gemma-7b

  • jamba-1.5-mini

  • jamba-1.5-large

  • jamba-instruct

  • llama2-70b-chat

  • llama3-8b

  • llama3-70b

  • llama3.1-8b

  • llama3.1-70b

  • llama3.1-405b

  • llama3.2-1b

  • llama3.2-3b

  • mistral-large

  • mistral-large2

  • mistral-7b

  • mixtral-8x7b

  • reka-core

  • reka-flash

  • snowflake-arctic

Syntax und Beispiele finden Sie unter COMPLETE (SNOWFLAKE.CORTEX).

Cortex Guard

Cortex Guard ist ein Sicherheitsparameter, der in der Funktion COMPLETE verfügbar ist und dazu dient, mögliche unsichere und schädliche Antworten aus einem Sprachmodel zu filtern. 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. Syntax und Beispiele finden Sie im Abschnitt COMPLETE (SNOWFLAKE.CORTEX) Argumente.

Bemerkung

Für die Nutzung von Cortex Guard fallen Gebühren an, die sich nach der Anzahl der verarbeiteten Eingabe-Token richten.

Aufgabenspezifische Funktionen

Bei Eingabe eines bestimmten Textes führen aufgabenspezifische Funktionen die Aufgabe aus, für die sie entwickelt wurden, ohne dass eine Eingabeaufforderung angegeben werden muss. Aufgabenspezifische Funktionen führen schnell und kostengünstig Routineaufgaben aus, die keiner Anpassung bedürfen.

CLASSIFY_TEXT

Die CLASSIFY_TEXT-Funktion klassifiziert Freiformtext in von Ihnen bereitgestellte Kategorien. Der Text kann eine Zeichenfolge in einfachem Englisch sein.

Syntax und Beispiele finden Sie unter CLASSIFY_TEXT (SNOWFLAKE.CORTEX).

EMBED_TEXT_768

Die Funktion EMBED_TEXT_768 erstellt eine Vektoreinbettung von 768 Dimensionen für einen gegebenen englischsprachigen Text. Weitere Informationen zu Einbettungen und Vektorvergleichsfunktionen finden Sie unter Vektoreinbettungen.

Syntax und Beispiele finden Sie unter EMBED_TEXT_768 (SNOWFLAKE.CORTEX).

EMBED_TEXT_1024

Die Funktion EMBED_TEXT_1024 erstellt eine Vektoreinbettung mit 1024 Dimensionen für einen bestimmten Text. Weitere Informationen zu Einbettungen und Vektorvergleichsfunktionen finden Sie unter Vektoreinbettungen.

Syntax und Beispiele finden Sie unter EMBED_TEXT_1024 (SNOWFLAKE.CORTEX).

EXTRACT_ANSWER

Die Funktion EXTRACT_ANSWER extrahiert aus einem Textdokument eine Antwort auf eine bestimmte Frage. Bei dem Dokument kann es sich um ein Dokument in einfachem Englisch oder um eine Zeichenfolgen-Darstellung eines semistrukturierten (JSON-)Datenobjekts handeln.

Syntax und Beispiele finden Sie unter EXTRACT_ANSWER (SNOWFLAKE.CORTEX).

PARSE_DOCUMENT

Die Funktion PARSE_DOCUMENT extrahiert Text oder Layout aus Dokumenten, die in einem internen Stagingbereich oder einer externen Stagingbereich gespeichert sind.

Syntax und Beispiele finden Sie unter PARSE_DOCUMENT (SNOWFLAKE.CORTEX).

SENTIMENT

Die SENTIMENT-Funktion gibt für einen gegebenen englischsprachigen Eingabetext die Stimmung als Punktwert zwischen -1 und 1 zurück (wobei -1 der negativste und 1 der positivste Wert ist und die Werte um 0 herum neutral sind).

Syntax und Beispiele finden Sie unter SENTIMENT (SNOWFLAKE.CORTEX).

SUMMARIZE

Die SUMMARIZE-Funktion gibt zu einem gegebenen englischsprachigen Text eine Zusammenfassung zurück.

Syntax und Beispiele finden Sie unter SUMMARIZE (SNOWFLAKE.CORTEX).

TRANSLATE

Die TRANSLATE-Funktion übersetzt Text aus der angegebenen oder erkannten Ausgangssprache in eine Zielsprache.

Syntax und Beispiele finden Sie unter TRANSLATE (SNOWFLAKE.CORTEX).

Hilfreiche Funktionen

Helper-Funktionen sind verwaltete Funktionen, die dazu dienen, Fehler bei der Ausführung anderer Cortex LLM-Funktionen zu vermeiden.

COUNT_TOKENS

Die Funktion COUNT_TOKENS berechnet die Anzahl der Token in einer Eingabeaufforderung für das große Sprachmodell (Large Language Model), das in COMPLETE angegeben ist, und den Eingabetext für aufgabenspezifische Funktionen.

Syntax und Beispiele finden Sie unter COUNT_TOKENS (SNOWFLAKE.CORTEX).

TRY_COMPLETE

Die Funktion TRY_COMPLETE führt die gleiche Operation aus wie die Funktion COMPLETE, gibt aber NULL zurück, anstatt einen Fehler zu melden, wenn die Operation nicht ausgeführt werden kann.

Syntax und Beispiele finden Sie unter TRY_COMPLETE (SNOWFLAKE.CORTEX).

Fehlerbedingungen

Snowflake Cortex-LLM-Funktionen können die folgenden Fehlermeldungen erzeugen.

Meldung

Erläuterung

too many requests

Die Anfrage wurde wegen zu hoher Systembelastung abgelehnt. Versuchen Sie Ihre Anfrage erneut.

invalid options object

Das an die Funktion übergebene options-Objekt enthält ungültige Optionen oder Werte.

budget exceeded

Das Budget für den Modellverbrauch wurde überschritten.

unknown model "<Modellbezeichnung>"

Das angegebene Modell ist nicht vorhanden.

invalid language "<Sprache>"

Die angegebene Sprache wird von der TRANSLATE-Funktion nicht unterstützt.

max tokens of <Anzahl> exceeded

Die Anfrage hat die maximale Anzahl der vom Modell unterstützten Token überschritten (siehe Modelleinschränkungen).

all requests were throttled by remote service

Die Anfrage wurde aufgrund einer hohen Nutzung gedrosselt. Versuchen Sie es später noch einmal.

invalid number of categories: <num_categories>

Die angegebene Anzahl von Kategorien liegt über der Beschränkung für CLASSIFY_TEXT.

invalid category input type

Der angegebene Kategorietyp wird von CLASSIFY_TEXT nicht unterstützt.

empty classification input

Die Eingabe für CLASSIFY_TEXT ist eine leere Zeichenfolge oder Null.

Verwenden von Snowflake Cortex-LLM-Funktionen mit Python

Snowflake Cortex-LLM-Funktionen sind in Snowpark ML, Version 1.1.2 und höher verfügbar. 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-LLM-Funktionen für einzelne Werte:

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

text = """
    The Snowflake company was co-founded by Thierry Cruanes, Marcin Zukowski,
    and Benoit Dageville in 2012 and is headquartered in Bozeman, Montana.
"""

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

Sie können auch eine LLM-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()
Copy

Bemerkung

Die erweiterte Form von COMPLETE im Chat-Stil (mehrere Meldungen) wird derzeit in Python nicht unterstützt.

Verwendung der Snowflake Cortex-LLM-Funktionen mit Snowflake CLI

Die von Snowflake Cortex-LLM-Funktionen sind 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"
Copy
snow cortex extract-answer "what is snowflake?" "snowflake is a company" -c "snowhouse"
Copy
snow cortex sentiment "Mary had a little Lamb" -c "snowhouse"
Copy
snow cortex summarize "John has a car. John's car is blue. John's car is old and John is thinking about buying a new car. There are a lot of cars to choose from and John cannot sleep because it's an important decision for John."
Copy
snow cortex translate herb --to pl
Copy

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 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
Copy
Snowflake Cortex offers instant access to industry-leading language models, including Snowflake Arctic, with SQL functions for completing prompts (COMPLETE), text embedding (EMBED\_TEXT\_768), extracting answers (EXTRACT\_ANSWER), sentiment analysis (SENTIMENT), summarizing text (SUMMARIZE), and translating text (TRANSLATE).

Weitere Informationen zu diesen Befehlen finden Sie unter snow cortex-Befehle.