Large Language Models (LLMs) wie ChatGPT können viele Herausforderungen, wie das Schreiben von Texten und Code, von Haus aus bewältigen. Doch haben sie im Normalfall keinen Zugriff auf eigene bzw. unternehmensinterne Daten. Was also, wenn ihnen Informationen fehlen und sie falsche Antworten liefern? In diesem Beitrag untersuchen wir die Lösungsansätze Embedding bzw. Retrieval Augmented Generation und Fine-Tuning, um spezifisches Kontextmaterial bereitzustellen und Anwendungsfälle vom Typ "Chat with your Data" zu ermöglichen. So können LLMs auf neuem Terrain eingesetzt werden und mit mehr Zuversicht in die Produktion gehen (wie genau das geht, lesen Sie in unserem vorigen Blogbeitrag).
Sie werden bereits Ihre eigenen Erfahrungen mit ChatGPT und anderen LLMs gemacht haben. Dabei ist Ihnen sicherlich aufgefallen, dass diese Modelle auch ohne spezifisches Fachwissen eloquent und gut formuliert antworten können. Häufig neigen sie jedoch dazu, selbstsicher inkorrekte Antworten zu liefern, die nicht mit den Trainingsdaten übereinstimmen (sog. Halluzinieren). Das erschwert den Umgang mit ihnen und mindert das Vertrauen in ihre Zuverlässigkeit. Nutzer sind daraufhin oft gezwungen zu versuchen, besonders klare bzw. kontextreiche Anweisungen zu formulieren.
Das Optimieren von Anfragen mit dem Ziel bessere Ergebnisse zu erhalten nennt sich Prompt Engineering. Als weitere Methoden dieses Bereichs seien hier "Chain of Thought und "Recursive Criticize and Improve" genannt. Diese fordern das Modell auf, sich selbst zu erklären oder zu hinterfragen. Dennoch stoßen auch diese Vorgehensweisen in der Praxis an ihre Grenzen, wenn es dem LLM an Wissen, Kontext oder methodischem Wissen mangelt.
Wissen vermitteln mit Embeddings
Eine Lösung ist das Bereitstellen von benötigten Informationen oder Beispielen zur Laufzeit (sog. “Few-Shot-Prompting”). Die Anfrage bzw. der Prompt wird damit um relevanten Kontext erweitert, ohne das Modell selbst zu verändern – gewissermaßen ein "Just-in-Time-Training" ohne Training.
Eine Erweiterung dieses Ansatzes ist das sogenannte Embedding. Hier werden Beispiele von User-Queries und Kontext in numerische Vektoren umgewandelt (“embedded”) und in einer Datenbank gespeichert. Bei einer Anfrage sucht das System nach dem mathematisch ähnlichsten Partner in der Datenbank und übermittelt diesen zusätzlich dem LLM. Anders ausgedrückt werden die Dokumente aus der Wissensbasis ermittelt, deren Inhalte der Nutzeranfrage semantisch am ähnlichsten sind und daher am besten dafür geeignet sind die Anfrage zu generieren. Das Modell kann mithilfe dieses Knowledge-Stores bessere Antworten generieren und Fragen zu Inhalten beantworten, auf das es ansonsten keinen Zugriff hätte.
Embeddings finden vor allem Anwendung, wenn das Modell Zugang zu neuen Informationen benötigt, wie z.B. aktuellen Nachrichten oder Börsenkursen. Ein typischer Anwendungsfall ist die Retrieval-Augmented Generation (RAG), die häufig zur Implementierung des Anwendungsfalls “Chat with your data” eingesetzt wird: Hierbei werden zusätzlich abfragebasierte Techniken verwendet, um relevante Quellen wie Artikel und Datenbanken zu durchsuchen. Die gefundenen Ergebnisse werden einem LLM übermittelt, das eine kompakte und gut formulierte Antwort liefern kann.
Retrieval-Augmented Generation (RAG) verbindet die semantische Suche mit LLMs und ermöglicht u.a. “Chat with your data” Use-Cases.
Embeddings lassen sich schnell und kosteneffizient implementieren und eignen sich gut für Aufgaben wie semantische Suchen oder Information Retrieval. Zudem erfordern sie nicht den Besitz des Modells und können mit closed-source APIs (wie OpenAI) betrieben werden. Allerdings eignen sie sich nicht dazu, einem Modell gänzlich neue Aufgaben, Stile oder Muster beizubringen.
Neue Aufgabenstellungen durch Fine-Tuning
Wenn Embeddings an ihre Grenzen stoßen, kann ein eigenes, auf die Domäne zugeschnittenes Modell trainiert werden. Ein solches Modell wäre in der Lage, spezifische Probleme zu lösen und allein mehr korrekte Antworten zu liefern. Doch die meisten Unternehmen verfügen weder über die Ressourcen noch das Fachwissen, um ein solches Modell von Grund auf zu trainieren. Laut Sam Altman kostete allein das Training von GPT-4 mehr als 100 Millionen Dollar. Das Unternehmen benötigte dafür zahlreiche Data Scientists, GPUs und umfangreiche, saubere Trainingsdaten.
Es ist jedoch nicht zwingend erforderlich, den Trainingsprozess von Grund auf zu beginnen. Bereits trainierte und veröffentlichte Modelle - sogenannte Foundation Models - können als Ausgangspunkt für ein darauf aufbauendes Training dienen. Häufig werden dabei open-source Modelle wie Llama-2 und Falcon verwendet, die - abhängig von der Lizenz - für viele Anwendungsfälle geeignet sind und in ihrer Qualität mit den großen kostenpflichtigen Produkten mithalten können. Solche foundation Models werden meist über den Service huggingface bereitgestellt und können unter Bereitstellung ausreichender Rechenressourcen mittels verschiedener SDKs lokal verwendet werden (siehe Beispiel hier).
Diese Herangehensweise ist keineswegs neu: Bereits vor Jahren wurde das stark verwandte, sogenannte Transfer-Learning insbesondere in der Bilderkennung genutzt. Hierbei werden bereits trainierte neuronale Netze unter leichten Modifikationen erfolgreich auf neuen Domänen angewandt. Es werden dem Modell lediglich neue Neuronen hinzugefügt, um die Erkenntnisse zu transferieren. Im Gegensatz dazu steht das häufiger bei LLMs verwendete Fine-Tuning, bei dem das bereits trainierte Foundation Model erneut modifiziert bzw. weitertrainiert wird. Es sieht dabei neue Trainingsdaten und kann so gänzlich andere Aufgaben und Stile erlernen. Als Beispiel lässt sich ChatGPT anführen, das selbst durch ein Fine-Tuning der GPT-Modelle mit menschlichen Konversationen entstanden ist. GPT, das vorher “nur” Sprache generierte, erlang damit die Eigenschaft, Gespräche zu führen und unfreundliches Verhalten zu minimieren.
Mittels Fine-Tuning werden sog. foundation models mit eigenen Daten weitertrainiert und somit auf ein spezifisches Problem ausgerichtet. Beispiel: ChatGPT entstand aus einem GPT-Fine-tuning. Modelle können immer wieder fine-tuned werden, wodurch Unternehmen dem Modell einfach eine eigene Domäne beibringen können.
Fine-Tuning ist selbst mit relevantem Aufwand verbunden: Statt, wie wir in diesem Beitrag zeigen, nur ein ML-Artefakt in die Produktion zu bringen, erstellen wir nun ein komplettes ML-Projekt mit allen Facetten seines Lebenszyklus. Unter Umständen müssen viele Arbeitsstunden investiert werden, um das Modell fortlaufend zu trainieren und zu warten. Der Prozess kann zwar mithilfe moderner MLOps-Ansätze automatisiert und vereinfacht werden, bedarf jedoch erst eines entsprechenden Setups. In diesem Prozess kann insbesondere eine dynamische Wissensbasis zu Problemen führen, denn mit dieser stellt sich die Frage, wie veraltetes, jedoch bereits erlerntes Wissen aus iterativ weitertrainierten Modellen wieder entfernt werden kann. Zudem benötigen wir das Modell im Rohformat oder sind darauf angewiesen, dass der Anbieter eine Fine-Tuning API anbietet (siehe OpenAPI Fine-Tuning API). Daher sollte immer zuerst getestet werden, ob Methoden des Prompt Engineering bzw. Embeddings, die keine Modifikation des Modells erfordern, vergleichbare oder sogar bessere Ergebnisse liefern.
Fazit
Obwohl Large Language Models (LLMs) über beeindruckende Fähigkeiten verfügen, tendieren sie in komplexen Domänen zu inkorrekten Ergebnissen. In solchen Fällen ist eine gezielte Optimierung der Modelle unerlässlich. Während Strategien des Prompt Engineerings in einfachen Anwendungsfällen helfen, können sie Defizite an Wissen oder Fähigkeiten nicht vollständig ausgleichen.
Die Integration von Embeddings, RAGs und maßgeschneidertem Training hingegen ermöglicht es LLMs, neue Domänen zu erschließen und dadurch die Qualität der generierten Antworten weiter zu verbessern. Durch Embeddings können neue Informationen schnell integriert werden, während RAGs, unterstützt durch semantische Suche, "Chat with your Data"-Anwendungsfälle eröffnen. Obwohl Fine-Tuning zusätzliche Ressourcen und Aufwand erfordert, ermöglicht es dem Modell, neue Verhaltensweisen und Fähigkeiten zu erlernen.
Unabhängig vom gewählten Ansatz bleibt die Qualität der vorhandenen Daten von entscheidender Bedeutung. Eine sorgfältige Aufbereitung der Datenbasis ist oft effektiver als das Trainieren des Modells mit minderwertigen Daten.
Verschiedene Szenarien erfordern spezifische Lösungen. Während Zero und Few-Shot Prompting leicht einzusetzen sind, erfordern Embeddings und Fine-Tunings ein höheres Investment. Dafür können diese Methoden die Leistung ihres LLM enorm steigern.
Es empfiehlt sich daher, je nach Anwendungsfall und den verfügbaren Ressourcen, zwischen diesen beiden Ansätzen abzuwägen, um die bestmögliche Leistung aus Large Language Models für Ihre spezifischen Anforderungen zu erzielen. Eine kluge Auswahl und Kombination der Methodik kann die Leistung optimieren und das Vertrauen in die Zuverlässigkeit dieser Modelle stärken.
Möchten Sie mehr zum Thema erfahren und lernen, wie Sie als Anwender:in mit LLMs umgehen und deren Potenzial für Ihr Unternehmen erschließen?
Dann besuchen Sie unser Seminar zum Thema “Generative KI gezielt nutzen”:
zurück zur Blogübersicht