Die LLM Factory: unterstützt von Snowflake und NVIDIA
Snowflake hat kürzlich eine Partnerschaft mit NVIDIA angekündigt, durch die ganz einfach mit NVIDIA beschleunigte Computing-Workloads direkt in Snowflake-Konten ausgeführt werden können. Ein spannender Anwendungsfall ist die sichere Bereitstellung von Large Language Models (LLMs) innerhalb von Snowflake. Möglich wird das durch die Kombination aus unseren neuen Snowpark Container Services, die derzeit in Private Preview verfügbar sind, und NVIDIA AI.
Viele unserer Kunden wollen LLMs in Snowflake ausführen, um sie in Verbindung mit ihren Snowflake-Daten zu verwenden, ohne hierfür externe APIs aufrufen zu müssen. Und sie wollen in der Lage sein, vortrainierte LLMs, wie die Modelle, die mit dem NVIDIA NeMo-Framework und den Llama-Modellen von Meta verfügbar sind, nicht nur mit ihren eigenen, sondern auch mit Snowflake-Daten zu optimieren. In diesem Blogbeitrag untersuchen wir die Möglichkeiten, die sich Kunden hierdurch eröffnen, stellen kurz vor, wie das Ganze funktioniert, und präsentieren einige Anwendungsfälle, die wir derzeit mit Early Adoptern erkunden.
Snowpark Container Services: NVIDIA-GPU-Computing innerhalb von Snowflake
Mit unserer neuen Funktion „Snowpark Container Services“ können Sie Docker-Container innerhalb von Snowflake ausführen – darunter auch Workloads, die über NVIDIA-GPUs beschleunigt werden. NVIDIA bietet vorkonfigurierte und kostenlose Docker-Container für verschiedenste KI-Workloads, einschließlich solcher, die das NeMo-Framework für LLMs nutzen.
Sie können ganz einfach eins der NVIDIA AI Enterprise-Container-Images einrichten, die innerhalb von Snowpark Container Services in dieser 90-Tage-Testlizenz enthalten sind, um Container sicher mit Ihren Snowflake-Daten auszuführen – direkt in Ihrem Snowflake-Konto. Da der Container innerhalb von Snowflake ausgeführt wird, können Unternehmen ihren Teams benutzerdefinierte Funktionen (User-Defined Functions, UDFs) bereitstellen, die über SQL aufgerufen werden können. So können ohne Betriebsaufwand komplexe Verarbeitungen innerhalb des Containers ausgeführt werden.
Snowpark Container Services bieten Ihnen nahezu unbegrenzte Flexibilität, mit der Sie selbst Open-Source-Entwicklungstools wie Jupyter Notebooks einsetzen können. So erhalten Sie eine einfache Methode, mit LLMs zu experimentieren und sie zu optimieren.
Vortraining und Optimierung von LLMs mit Snowflake
Sofort einsatzbereite LLMs werden als „vortrainierte Modelle“ bezeichnet. Das heißt, jemand hat bereits große Mengen von Trainingsdaten gesammelt und das Modell vorab trainiert. In der Regel sind diese Modelle Generalisten, darunter auch NVIDIA NeMo oder auch die Llama-Modelle von Meta. Das bedeutet, dass sie fließend Englisch und andere Sprachen sprechen und über ein unterschiedliches Maß an Wissen über verschiedene Themen verfügen. Sie kennen sich also vielleicht in gewissem Maße mit Ihrer Branche und den zugehörigen Fachbegriffen, Prozessen und Anforderungen aus – doch wahrscheinlich nur oberflächlich. Und in der Regel wissen sie nichts über Ihr spezifisches Unternehmen, Ihre Richtlinien, Ihre Produkte und Ihre Kund:innen.
Sie sind außerdem meist für bestimmte Aufgaben optimiert, darunter die Beantwortung von Fragen, Zusammenfassungen, Textgenerierung, allgemeine Konversationen usw. Sie sind echte Allrounder – und das müssen sie auch sein, um viele verschiedene Einsatzbereiche zu unterstützen. Doch hierdurch sind sie oft nicht in der Lage, Ihre spezifischen Anwendungsfälle mit der nötigen Genauigkeit umzusetzen.
Und hier kommen LLM-Vortraining und -Optimierung ins Spiel. Beim Vortraining werden LLMs von Grund auf mithilfe großer Mengen von Trainingsdaten trainiert, die Sie als Trainer:in kuratieren können, um ein Modell zu erstellen, das sich mit wichtigen Aspekten Ihres Unternehmens auskennt. Und diese vortrainierten Modelle können noch weiter trainiert werden, damit sie mehr über einen bestimmten Bereich lernen, was wir hier als „Optimierung“ bezeichnen.
Das NVIDIA NeMo-Framework, das Teil der Softwareplattform NVIDIA AI Enterprise ist, ermöglicht diese Optimierung innerhalb von Snowflake. Die Optimierung bestehender Modelle führt oft zu hinreichenden Ergebnissen, wenn man bedenkt, dass ein vollständiges Vortraining sehr daten- und ressourcenintensiv sein kann. Es gibt verschiedene Optimierungsmethoden, die vom NeMo-Framework unterstützt werden: Sie reichen von vollständiger Optimierung bis hin zu Parameter-Efficient Fine-Tuning (PEFT), also der Optimierung kleiner Gruppen von Modellparametern. Einige der verfügbaren vollständigen Optimierungsmethoden sind überwachte Optimierung und Verstärkungslernen mit menschlichem Feedback (Reinforcement Learning with Human Feedback, RLHF). Die unterstützten PEFT-Techniken umfassen Prompt-Lernen, Prompt-Optimierung, Adapter, Low-Rank Adaptation (LoRA) und IA3.
Sichere Optimierung mit Ihren Unternehmensdaten
Die Optimierung von Modellen ist nützlich, um ihnen beizubringen, neue Aufgaben zu erledigen, oder um die Art und Weise anzupassen, wie sie bereits erlernte Aufgaben durchführen. Weniger nützlich ist die Optimierung jedoch, wenn es darum geht, dem Modell neues Basiswissen beizubringen. Wenn Sie dem LLM neues Wissen bereitstellen wollen, ohne es neu vorzutrainieren, können Sie auch RAG-Ansätze (Retrieval-Augmented Generation) verwenden. Beispiele hierfür finden Sie in diesem Beitrag, in dem unser Chatbot Frosty vorgestellt wird.
Doch die Optimierung eignet sich hervorragend, um die Art und Weise anzupassen, wie LLMs ihre Antworten generieren, oder ihnen neue Aufgaben beizubringen. Wenn Sie beispielsweise einen Chatbot für den Kundenservice entwickeln, der sich auf bestimmte Weise verhalten und sprechen soll, können Sie ihn hierauf optimieren. Hierzu können Sie Daten aus Ihrem Snowflake-Konto abrufen, einen Trainingsdatensatz erstellen, der Beispiele für die richtige Verhaltensweise und Sprache enthält, und dann den Optimierungsprozess aufrufen, um ein neues Modell zu erstellen.
Dann können Sie dieses neue Modell mit dem Basismodell vergleichen, um zu sehen, ob es die gewünschte Leistung bringt. Die Modelloptimierung nimmt in der Regel nicht viel Zeit in Anspruch: Mit den NVIDIA H100, A100 oder A10 Tensor Core GPUs sind es nur wenige Stunden, je nach Größe des Basismodells und der Menge der Optimierungsbeispiele. Sie können also frei experimentieren, um herauszufinden, was am besten funktioniert. Verglichen mit dem vollständigen Vortraining eines Modells, das Tage oder Wochen dauern kann und Unmengen an GPUs erfordert, ist das eine enorme Verbesserung.
Beschaffung von Optimierungsdaten über Snowflake
Was jedoch Zeit kostet, ist die Zusammenstellung von Optimierungsdaten, also die Beispiele dafür, wie sich das LLM in bestimmten Situationen verhalten soll. Es gibt zwar allgemeine Optimierungsdaten, doch wenn Sie ein individuelles Modell wollen, brauchen Sie auch individuelle Datensätze. Für einige Anwendungsfälle können Sie diese Daten aus Ihrem Snowflake-Konto abrufen. Wenn Sie beispielsweise die Chatverläufe, Mitschriften oder E-Mails Ihrer Kundenkommunikation in Snowflake gespeichert haben, können Sie der Optimierung Beispiele hinzufügen, die besonders gut bewertet wurden oder die besten Ergebnisse erzielt haben.
Und da die Optimierung direkt auf GPU-Knoten erfolgt, die in Snowpark-Containern innerhalb Ihres Snowflake-Kontos ausgeführt werden, verlassen Ihre vertraulichen Trainingsdaten nie Ihren Account. Sie bleiben dort, wo sie immer sind: in Ihren Snowflake-Tabellen oder bereitgestellten Dateien. Darüber hinaus wird auch das resultierende Modell – das nun auf Erkenntnissen aus Ihren vertraulichen Informationen beruht – sicher in Snowflake gespeichert und kann über Snowpark-Container bereitgestellt werden.
Indem das Vortraining, die Optimierung und die Speicherung der Modelle vollständig in Snowflake erfolgt, und zwar End-to-End, können Sie die neuesten Open-Source-basierten LLM-Technologien von NVIDIA und anderen Anbietern nutzen, ohne sich Gedanken machen zu müssen, dass Ihre Daten das Unternehmen verlassen.
In diesem Medium-Beitrag finden Sie eine technische Anleitung dazu, wie die Prompt-Optimierung mit NeMo in Snowpark Container Services funktioniert.
Eine Fülle potenzieller Anwendungsfälle
Viele unserer Kunden experimentieren bereits mit LLMs und einige stellen ihren Ansatz derzeit auf LLM-Training und -Optimierung um. Zu den spannendsten Anwendungsfällen gehören:
- Sichtung von Kundenservice-Fällen, Antwortgenerierung und letztlich vollständige Chaterfahrungen, wie oben beschrieben
- Generierung von Werbeinhalten, die für einzelne Kund:innen personalisiert sind, basierend auf den Kundendaten, die Sie in Snowflake gespeichert haben
- Erstellung von SQL-Entwürfen und Beantwortung von Fragen durch Datenanalyse-Chatbots basierend auf Ihren Snowflake-Daten und -Schemas
- Unterstützung für Vertriebsteams, um Kund:innen und Interessent:innen besser zu verstehen und Kommunikation und Kampagnen effektiver zu gestalten
- Schulung und Beantwortung von Fragen neuer – oder auch bestehender! – Mitarbeitender auf Grundlage von Unternehmensdokumenten, -richtlinien, -geschichte und Snowflake-Daten
- Erfassung und Analyse von Finanzdaten und -berichten für die Beantwortung finanzieller Fragen
- Bereitstellung eines Modells zur Entdeckung von Medikamenten über Snowpark, mit dem sich verschiedene Molekül- und Proteinkombinationen generieren lassen
- Kuratierung eines multimodalen LLM für Ihre vielen Anwendungen
Wir freuen uns, mit NVIDIA zusammenzuarbeiten, um unseren Data Cloud-Kunden diese – und viele weitere – LLM-Anwendungsfälle zu ermöglichen. Wir befinden uns zwar noch in den Anfängen dieser Entwicklung, doch wir sind schon jetzt gespannt darauf, diese Anwendungsfälle gemeinsam mit unseren Kunden in die Tat umzusetzen.