13. September 2023

Feinabstimmung oder nicht Feinabstimmung großer Sprachmodelle? Das ist die Frage.

Mitwirkende
Michiel De Koninck
Ingenieur für maschinelles Lernen und LLM-Spezialist
Keine Artikel gefunden.
Newsletter abonnieren
Diesen Beitrag teilen
Sollten wir ein großes Sprachmodell feinabstimmen, um diesen Anwendungsfall zu ermöglichen?
Oder sind andere Techniken besser geeignet?

Bei ML6 ist das wohl die Frage Nr. 1, die wir von Kunden bezüglich der Verwendung von großen Sprachmodellen (LLMs) erhalten.

Kurz gesagt, die Wahl der Technik läuft auf einen Unterschied in den Ambitionen hinaus:

  • Ziel: Anpassung des Verhaltens Ihres Modells an einen bestimmten Anwendungsfall
    Technik: Fine-Tuning, Few-Shot oder Zero-Shot Prompting
    Beispiel: Ihr Modell muss Antworten im spezifischen Stil von Shakespeare geben.
  • Ziel: Anpassung des Wissens, zu dem Ihr Modell Zugang hat
    Technik: Retrieval-Augmented Generation (Lösungsarchitektur)
    Beispiel: Ihr Modell muss Antworten auf die Frage liefern, welche Art von Stahl für bestimmte Bauelemente benötigt wird.

Beachten Sie, dass es sich bei diesen Zielen nicht um ausschließliche Alternativen handelt; für viele Anwendungsfälle möchten Sie vielleicht sowohl das Verhalten des Modells ändern als auch sicherstellen, dass Ihr Modell Zugang zu den richtigen Informationen hat.

Verhalten: Shakespeare; Wissen: Zum Entwurf von Stahl- und Stahl-Beton-Verbundbrücken

An diejenigen, die jetzt denken: "Hey, aber kann ich nicht auch Wissen durch Feinabstimmung hinzufügen? Sollte ich einen LLM nicht mit meiner privaten Wissensbasis verfeinern?". Ihnen könnten wir sagen: "Hey, danke für diese spontane Bemerkung. Nun, ja, das mag möglich sein, aber es ist wahrscheinlich nicht die effizienteste Art, Wissen hinzuzufügen, und es ist auch nicht wirklich transparent und überschaubar." Wenn Sie speziell daran interessiert sind, dass ein LLM auf spezifisches Wissen in einer wartbaren Weise zugreift, verweisen wir Sie auf unseren Beitrag über die Nutzung von LLMs in Ihrer domänenspezifischen Wissensbasis.

Denjenigen, die diese Bemerkung nicht gemacht haben, sagen wir: "Na, dann wollen wir mal". Aber nicht bevor wir einige inspirierende, einleitende Worte von Billiam Bookworm gehört haben.

Die Zeiten ändern sich 🎸

In diesem Beitrag werden wir Ihnen ein Verständnis für die Feinabstimmung vermitteln und Ihnen ein Werkzeug an die Hand geben, mit dem Sie fundierte Entscheidungen treffen können. Natürlich ist dieses Werkzeug dasjenige, das schon lange vor der Erfindung des Computers alle Werkzeuge beherrscht hat: das Flussdiagramm. Vielleicht ändern sich die Zeiten nicht?

Aber was ist Feinabstimmung eigentlich?

Um zu verstehen, was durch Feinabstimmung erreicht werden kann und was nicht, müssen wir auf einer gewissen Ebene verstehen, worauf sich dieser Prozess eigentlich bezieht. Wovon gehen wir aus und wie wirken wir uns auf das Modell aus? Wir möchten Sie darauf hinweisen, dass dieser Abschnitt ein wenig technisch sein kann, aber für ein gutes Verständnis der Feinabstimmung entscheidend ist.

Zusammenfassend lässt sich sagen, dass ein großes Sprachmodell in drei verschiedenen Schritten aufgebaut wird:

  • Unüberwachtes Lernen (UL):
    ▹Daten: minderwertig (typischerweise gescrapte Internetdaten), ±1 Billion "Wörter"
    ▹Prozess: optimiert für Textvervollständigung (Vorhersage des nächsten "Wortes")
    ▹Ergebnis: ein Ungetüm so monströs, dass Medusa zu Stein wird
  • Überwachtes Fine-Tuning (SFT):
    ▹Daten: 10k-100k "Wörter" mit kuratierten Beispielen [Eingabeaufforderung, Antwort]
    ▹Prozess: dem Modell wird anhand von Eingabe-/Ausgabebeispielen ein Verhalten beigebracht
    ▹Ergebnis: ein Ungetüm mit einem einigermaßen akzeptablen Gesicht , das man sich ansehen kann
  • Verstärkungslernen aus menschlichem Feedback (RLHF):
    ▹Daten: 100k-1M Vergleiche [prompt, won_response, lost_response]
    ▹Prozess: Optimierung des Modells, um so zu reagieren, wie es Menschen bevorzugen
    ▹Ergebnis: ein Ungetüm mit einem Smiley , mit dem man gerne etwas trinken gehen würde
Die Entwicklung eines LLM, visualisiert als die Bestie Shoggoth (mit freundlicher Genehmigung von Helen TonersBeitrag)

Die obige Erklärung sollte Ihnen ein erstes Verständnis dafür vermitteln, was die Feinabstimmung bewirkt und warum sie notwendig ist. Um Ihr Verständnis zu vertiefen, wollen wir uns ein Beispiel ansehen:

🎸So, du hast das Wissen, aber hast du auch das Gefühl? 🎸@unsupervised_behemoth

Das obige Beispiel zeigt, wie die Abhängigkeit vomunüberwachten Lernen allein zu kurz greift. Das Modell hat zwar eine Menge Wissen erworben, weiß aber nicht, wie es damit umgehen soll. Für ein Modell, das lediglich die nächsten Wörter vorhersagt, kann eine Frage die wahrscheinlichste Fortsetzung einer früheren Frage sein, da es beim Lernen aus seinen Unmengen von Daten geringer Qualität wahrscheinlich auf eine ganze Reihe von Tests und Folgefragen gestoßen ist.

Aber keine Angst, denn die überwachte Feinabstimmung rettet den Tag! Nach dem Sammeln von Tonnen von Wissen aus Daten geringer Qualität zielt der SFT-Prozess darauf ab, das Verhalten des Modells richtig zu machen. Dies geschieht, indem dem Modell ein Beispielverhalten vorgeführt wird und es so optimiert wird, dass es dieses nachahmt. Auf diese Weise lernt das Modell zu verstehen: "Wenn mir eine Frage gestellt wird, muss ich wohl versuchen, eine Antwort zu formulieren".

Dies ist das traditionelle überwachte Lernen. Was das volle Potenzial dieser Modelle zu entfesseln scheint, ist der RLHF-Schritt. Wir wollen nicht zu sehr ins Detail gehen, aber dieser Prozess zielt darauf ab, das Modell so zu lenken, dass es sich so verhält, wie Menschen es angegeben haben (daher der Name: Reinforcement Learning from Human Feedback). Um die Vorteile von RLHF nutzen zu können, muss zunächst ein Belohnungsmodell erstellt werden, das die Belohnungspunkte für bestimmte Antworten berechnet. Und das erfordert einen erheblichen Aufwand an Beschriftung und technischer Arbeit.

Wenn es darum geht, das Verhalten des Modells zu beeinflussen, ist die SFT glücklicherweise der entscheidende Schritt. Sie zeigt beispielhaft, wie sich das Modell verhalten soll. RLHF verfeinert das dann weiter, weil es für uns Menschen einfacher ist, Ihnen einfach zu zeigen, was wir bevorzugen, als es selbst anhand von Beispielen zu erklären.

Machen Sie keinen Fehler. Die Aufbereitung der für die Durchführung von SFT erforderlichen Daten ist keine leichte Aufgabe. Tatsächlich war das Team von OpenAI bei der Entwicklung von GPT-3 auf die Mitarbeit von Freiberuflern angewiesen, um beschriftete Daten (sowohl für den SFT- als auch den RLHF-Prozess) bereitzustellen. Da sie sich der Bedeutung dieser Aufgabe bewusst sind, haben sie darauf geachtet, dass die Beschrifter gut ausgebildet sind. Das zeigen die Ergebnisse einer Umfrage, die OpenAI im Rahmen ihres Papiers über "Learning to summarise from human feedback" durchgeführt hat.

Auszug aus Anhang C über "Details der menschlichen Datenerhebung" für dieses OpenAI-Papier

Im letzten Abschnitt dieses Beitrags werden wir näher darauf eingehen, was Sie benötigen, um die Feinabstimmung tatsächlich durchzuführen. Doch zunächst möchten wir Ihnen einen praktischen Leitfaden an die Hand geben, mit dem Sie entscheiden können, wann Sie zu SFT greifen sollten und wann Sie ohne SFT weitermachen können.

Ein praktischer Leitfaden zur Unterstützung Ihrer Wahl

Wie Sie vielleicht wissen, können selbst Closed-Source-Modelle (bei denen Sie keinen tatsächlichen Zugriff auf die Modellparameter selbst haben) eine Feinabstimmung über eine API ermöglichen. In diesem Zusammenhang hat OpenAI (23. August) die Feinabstimmung von GPT-3.5 veröffentlicht. Dies erweitert die Möglichkeiten für die breite Öffentlichkeit, sich an der Feinabstimmung von Modellen zu beteiligen. Das wirft die Frage auf, wann man es tatsächlich tun sollte (wie die am häufigsten gestellte Frage nach der Feinabstimmung-API beweist).

OpenAI #1 FAQ Frage zur Feinabstimmung

Die Frage? Kein Anhaltspunkt. Die Antwort? Wahrscheinlich ein Flussdiagramm.

Im Folgenden stellen wir Ihnen ein Flussdiagramm vor, das Ihnen helfen soll, sich in den unruhigen Gewässern einer fundierten LLM-Entscheidung zurechtzufinden.

Braucht man einen "NO"-Fluss, damit ein Flussdiagramm ein echtes Flussdiagramm ist? Wahrscheinlich nicht, richtig? Und wenn ja, wie sollten wir es stattdessen nennen?

Beachten Sie, dass wir ausdrücklich zwischen Wissen und Verhalten unterscheiden.
Was die Verhaltensseite betrifft, würden wir im Einklang mit dem , was Andrej Karpathy im Mai gesagt hat, folgenden Ansatz für die Entwicklung Ihres LLM-Anwendungsfalls vorschlagen:

  • Testen Sie Ihren Anwendungsfall durch: Zero-Shot Prompting
  • Erkunden Sie, was bereits möglich ist, wenn Sie ein paar Daten sammeln, um das gewünschte Verhalten zu demonstrieren: Few-Shot Prompting
  • Wenn Few-Shot Prompting nicht ausreicht, können Sie versuchen, das Modell selbst zu ändern, indem Sie ihm [Prompt, Antwort] Beispiele liefern: Überwachtes Fine-Tuning

Stellen Sie sich vor, Sie haben sich für ein Prompting-Verfahren entschieden, das gut funktioniert, aber Sie haben eine gigantische Anzahl von Anfragen und die Sache wird teuer? Dann könnte es interessant sein, das LLM selbst zu hosten und eine Feinabstimmung vor zunehmen, um die Anzahl der Wörter zu reduzieren, die bei jedem Aufruf durch das System gejagt werden.

Unter dem Gesichtspunkt der Kosteneffizienz präsentieren wir ein Flussdiagramm mit einem tatsächlichen "NO"-Fluss.

Oder was ist, wenn Sie eine Aufgabe haben, die so einfach ist, dass Sie das richtige Verhalten leicht durch Zero-Shot Prompting erreichen können, aber die Kosten pro Aufgabe einfach zu hoch sind? Auch in diesem Fall könnte das Selbsthosten eines viel kleineren, fein abgestimmten LLM der richtige Weg sein. Für weitere Einblicke in diese Thematik verweisen wir auf unseren Blogpost über den entstehenden Raum der Stiftungsmodelle im Allgemeinen.

Einige konkrete Beispiele, wann was zu tun ist

Im Stil einer klassischen Schulkind-Prahlerei gehen wir mit Ihnen einige konkrete Beispiele durch, um die Intuition zu demonstrieren.

1. "Sie wissen, dass MEIN Unternehmen ein großes Sprachmodell verwenden möchte, um jedem neuen Mitarbeiter eine personalisierte Willkommensnachricht zu senden?

In diesem Fall sollte ein einfaches Lernprogramm mit einigen Beispielen für schön gestaltete Begrüßungsnachrichten in Kombination mit einer Vorlage, die die Informationen für diesen Mitarbeiter lädt, ausreichen.

2. "Ach ja? Nun, MEINE Firma möchte ein LLM benutzen, um eine Reihe von typischen Navigationsnachrichten im Stil von Severus Snape.

Je nachdem, wie sehr dieser Snape🪄-Typ tatsächlich eine Karikatur ist, können Sie hier mit wenigen Lernschritten auskommen. Wenn sein Sprachstil jedoch so kreativ ist, dass selbst 50 Beispiele von Snape-Interaktionen nicht ausreichen, müssen Sie sich vielleicht mit einem umfangreicheren Datensatz in die SFT stürzen.
"Turn left. Enttäusche mich nicht".

3. "Oh bitte, MEIN Unternehmen möchte einen Chatbot entwickeln, der sarkastisch jede allgemeine englische Frage beantwortet, die ein Nutzer stellt.

Moderne LLMs verstehen das Sprachspiel in ausreichendem Maße, so dass dieser Chatbot ausschließlich auf der Basis von Zero-Shot Prompting aufgebaut werden kann.

4. "Warten Sie, bis Sie das hören. Meine Firma will einen Chatbot entwickeln, der sarkastisch jede ostasiatische Frage, die ein Nutzer stellt, in derselben Sprache beantwortet.

Es wird sehr schwer sein, genügend Daten über all diese Sprachen zu sammeln, um ausreichend zu erfassen, wie Sarkasmus typischerweise übertragen wird. Wenn es Ihnen gelingt, diese Daten zusammenzutragen, stehen Ihnen die Türen der überwachten Feinabstimmung offen. Beachten Sie jedoch, dass eine gute Leistung unerreichbar ist, wenn Ihr Modell über keinerlei Kenntnisse dieser Sprachen verfügt. Sie müssen dann möglicherweise auf einen riesigen Datensatz warten, der es einem Helden ermöglicht, unüberwachtes Lernen zu nutzen, damit ein Modell den Umgang mit diesen exotischeren Sprachen lernt.

5. "Ist das alles? Mein Unternehmen möchte ein LLM einsetzen, das für ein bestimmtes Support-Ticket automatisch das Support-Team bestimmt, das es bearbeiten soll. Wir haben jede Stunde über 1000 Supportanfragen".

Klassifizierungsaufgaben (wie diese Routing-Aufgabe) gibt es schon seit den Anfängen des maschinellen Lernens. Klassischerweise würde man dafür ein spezielles Modell trainieren, und vielleicht ist das immer noch die billigste Option, aber ein LLM sollte natürlich auch mehr als ausreichend sein. Je nach Komplexität (Themenspektrum der Fragen, Anzahl der Support-Teams, Eingabesprachen,...) würden wir erwarten, dass dies mit einem "few-shot" Lernansatz gut funktioniert . Beachten Sie jedoch, dass es sich aufgrund des hier erwähnten hohen Durchsatzes aus Gründen der Kosteneffizienz lohnen könnte, das Selbst-Hosting zu prüfen.

6. "Halt meine Safttüte, MEIN Unternehmen will ein Modell bauen, das sich nicht einmal um die Weiterleitung der Frage kümmert, sondern einfach nur die Support-Frage sofort beantwortet! "

Aha, aber um diese Fragen zu beantworten, braucht man doch Wissen, oder? Eine RAG-Architektur (Ad-hoc-Versorgung des Modells mit den relevanten Informationen) mit einigen wenigen Lernschritten , um ein angemessenes Verhalten zu gewährleisten, sollte für diesen Anwendungsfall ausreichen. Auch hier ist das Self-Hosting eine Überlegung wert, wenn es eine hohe Nachfrage nach diesem Modell gibt.

Sie glauben also, dass Sie eine Feinabstimmung vornehmen können?

Abgesehen davon, dass es sich um meine liebste imaginäre Reality-Show handelt, ist dies eine berechtigte Frage. Wenn Sie sich schließlich dafür entscheiden, dass Sie tatsächlich eine Feinabstimmung eines LLM vornehmen müssen, haben Sie eine weitere Wahl zu treffen: Feinabstimmung eines Open-Source-Modells und eigenes Hosting oder, falls verfügbar, Nutzung von Feinabstimmungs-APIs, die von Anbietern von Closed-Source-Modellen bereitgestellt werden.

Feinabstimmung von Open-Source-Modellen

Die Feinabstimmung eines Open-Source-Modells (z. B. des Llama 2 von Meta oder des brandneuen gigantischen Falcon 180B von TII) und das Hosting in Eigenregie bietet Ihnen einige große Vorteile, die normalerweise mit dem vollständigen Eigentum verbunden sind.

Vorteile:
  • Volle Kontrolle über die Privatsphäre sowohl während der Ausbildung als auch während der Nutzung.
  • Keine externen Abhängigkeiten: Sie stellen das Modell bereit, Sie pflegen es und Sie bestimmen, wann und wie Änderungen am Modell vorgenommen werden sollen.
  • Vollständige Codetransparenz in dem Maße, in dem Sie Zugang zur gesamten Codebasis und der spezifischen Implementierung der überwachten Feinabstimmung haben.
  • Völlige Freiheit bei der Modellwahl. Da Sie jedes Open-Source-Modell feinabstimmen können, können Sie die Größe wählen, die am besten zu Ihrem Anwendungsfall passt, um Kosten, Latenz und Verarbeitungsleistung zu optimieren.
Benachteiligungen:
  • Zeit, Kosten und Kenntnisse , die erforderlich sind, um einen LLM selbst zu veranstalten und eine Feinabstimmung auf einer geeigneten Infrastruktur vorzunehmen.
  • Die Kosten für die Aufrechterhaltung des Betriebs. Sie brauchen einen bestimmten Durchsatz, um die ständige Hochverfügbarkeit eines Modells zu rechtfertigen.

Für einige grundlegende Einblicke in den Feinabstimmungsprozess selbst (d.h. die Änderung der Modellgewichte) empfehlen wir die folgende Zusammenfassung zum Thema Parametereffiziente Feinabstimmung.

Feinabstimmung geschlossener Quellenmodelle

Wie bereits erwähnt, bieten einige Closed-Source-Modellanbieter eine API für die Feinabstimmung an (z. B. die Feinabstimmungs-API von OpenAI für GPT-3.5).

Vorteile:
  • Schnelle Entwicklung: Der Aufwand beschränkt sich darauf, Ihren überwachten Feinabstimmungsdatensatz vorzubereiten und ihn der API anzubieten.
  • Keine Komplexität/Kosten für das Selbsthosten: Seltsamerweise verlangt OpenAI keine Gebühren dafür, dass Sie Ihr fein abgestimmtes "Modell" zur Nutzung bereithalten.
Benachteiligungen:
  • Keine Transparenz: viele unbeantwortete Fragen. Welche Techniken (z.B. die oben genannten) werden tatsächlich angewandt? Wie werden die Modellparameter beeinflusst? Höchstwahrscheinlich ist diese API-basierte Feinabstimmung sehr leichtgewichtig und die Obergrenze für die Qualität ist wahrscheinlich viel niedriger, als wenn man die Feinabstimmung selbst vornimmt.
  • Klassische Closed-Source-Beschränkungen: Sie zahlen pro "Wort" und daran führt kein Weg vorbei, Sie sind völlig abhängig vom Anbieter, Ihre Daten verlassen Ihre Umgebung über die API usw.

Es sind also Daten? Es waren die ganze Zeit Daten? Ja. Immer.

Welchen Ansatz Sie auch immer wählen, es sollte klar sein, dass die Daten, die für die Feinabstimmung verwendet werden, einen direkten Einfluss auf die letztendliche Leistung Ihres feinabgestimmten Modells haben werden.

Angesichts dieser Bedeutung der Qualität Ihrer Trainingsdaten - jetzt und in Zukunft - sollte Ihr Hauptaugenmerk auf der Einrichtung von hochqualitativen, wiederverwendbaren Datenvorverarbeitungskomponenten liegen. Open-Source-Initiativen wie Fondant zielen darauf ab, genau das zu erreichen: leistungsfähige und kosteneffiziente Kontrolle der Modellleistung durch Qualitätsdaten. Mehr dazu erfahren Sie in diesem Blogpost zu Foundation Models.

Zusammenfassend

Wir haben diskutiert:

  • Der Unterschied zwischen Retrieval-Augmented Generation (wissensbeeinflussende) Techniken & Fine-Tuning (verhaltensbeeinflussende) Techniken (+ warum es durchaus vertretbar ist, beide Techniken zu kombinieren)
  • Eine hochrangige Interpretation dessen, was Feinabstimmung im LLM-Raum tatsächlich bedeutet (typischerweise: überwachte Feinabstimmung)

Und dann haben wir natürlich auch über das Flaggschiff dieser Geschichte berichtet:

  • Ein "Flussdiagramm", das Ihnen hilft, zu überlegen, wann Sie welche Technik anwenden sollten

Letztendlich betonten wir, dass die überwachte Feinabstimmung in der Tat der richtige Ansatz ist: Sie sollten auf Qualitätsdaten setzen. Das ermöglicht wertvolle Anwendungsfälle für jetzt und für die Zukunft.

Für weitere Flussdiagramme und LLM-Neuigkeiten bleiben Sie auf dem Laufenden.
Oder, noch besser, bleiben Sie auf dem Laufenden.

Verwandte Beiträge

Alle anzeigen
Keine Ergebnisse gefunden.
Es gibt keine Ergebnisse mit diesen Kriterien. Versuchen Sie, Ihre Suche zu ändern.
Großes Sprachmodell
Stiftung Modelle
Unternehmen
Unser Team
Strukturierte Daten
Chat GPT
Nachhaltigkeit
Stimme und Ton
Front-End-Entwicklung
Schutz und Sicherheit von Daten
Verantwortungsvolle/ethische KI
Infrastruktur
Hardware und Sensoren
MLOps
Generative KI
Verarbeitung natürlicher Sprache
Computer Vision