Enterprise Bot - Blog

Wie lässt sich ChatGPT auf Ihren Anwendungsfall feinabstimmen?

Geschrieben von Pranay Kumar Jain | 14.03.2023 08:23:30

Mit dem Hype um ChatGPT ist das Konzept der LLMs oder auch Large Language Models in den Wortschatz eines jeden aufgenommen worden. Es gibt kein Meeting und keinen Zoom-Call, in dem man die Worte nicht hört, aber was ist mit ChatGPT und wie können wir es nutzen? Einer der wichtigsten Aspekte bei der Nutzung von ChatGPT oder ähnlichen Technologien ist es, zu verstehen, wie diese Modelle gesteuert und trainiert werden können, damit sie für Ihr Unternehmen funktionieren, und dazu gehört auch die Feinabstimmung der LLMs. Um diese Modelle jedoch auf bestimmte Anwendungsfälle abzustimmen, müssen wir wissen, wie wir diese Aufgabe effektiv angehen können. In diesem Artikel erörtern wir die Bedeutung der Feinabstimmung und wie sie im Zusammenhang mit OpenAI-Modellen im Besonderen und LLMs im Allgemeinen durchgeführt wird.

Large Language Models vertsehen

Was sind Large Scale Language Models?

Large Scale Language Models oder LLMs sind NLP-Modelle, die auf großen Datensätzen trainiert werden, um ihre Sprachverarbeitungsfähigkeiten zu verbessern. Diese Modelle können Textdaten verarbeiten und analysieren, um eine Vielzahl von Aufgaben wie Sprachübersetzung, Stimmungsanalyse und Inhaltserstellung zu erfüllen. Zu den bekanntesten Beispielen für große Sprachmodelle gehören ChatGPT (OpenAI), Turing NLG (Microsoft), Gopher, Chichilla (Deepmind), T5, MT5 (Google), Ernie 3.0 (Baidu), die alle auf Milliarden von Token trainiert wurden.

Was sind die Vorteile von Large Language Models?

Die Vorteile von großen Sprachmodellen sind zahlreich, darunter die Fähigkeit, qualitativ hochwertige Texte zu generieren, eine verbesserte Sprachverarbeitung und eine höhere Genauigkeit bei der Vorhersage sprachbasierter Ergebnisse. Diese Modelle können auch von neuen Daten lernen und sich an diese anpassen, ihre Leistung mit der Zeit verbessern und Technologien wie Chatbots, Conversational AI, E-Mail-Bots, personalisierte Voice-Bots, SEO und sogar Natural Language Coding unterstützen.

Fine-Tuning von vortrainierten Language Models

Was ist das Fine-Tuning von vortrainierten Language models?

Beim Fine-Tuning von vortrainierten language models wird ein bestehendes language model, das bereits auf einem großen Datensatz trainiert wurde, auf einen kleineren, branchenspezifischen Datensatz umtrainiert. Bei diesem Prozess wird das Modell so abgestimmt, dass es Sprache versteht und produziert, die für einen bestimmten Bereich oder Anwendungsfall relevant ist.

Fine-tuning ermöglicht:

  1. Eine erhebliche Steigerung der Antwortgenauigkeit durch ein tieferes Verständnis der Aufgabenstellung.
  2. die Anpassung des Antwortstils an die Unternehmensanforderungen, sei es in einer professionellen und prägnanten Form oder auf eine lockere und freundliche Weise.

Gemäß den Erkenntnissen von OpenAI steigert das Fine-Tuning von GPT-3 die Genauigkeit um das 2- bis 4-fache im Vergleich zum Prompt-Design.

Ist es möglich, ChatGPT zu optimieren?

Ab Juli 2023 können Sie wie folgt vorgehen, um generative KI-Plattformen, wie ChatGPT, zu optimieren:

  1. Prompt-basiertes Fine-Tuning: Prompt-Engineering ist ein wachsender Bereich, und Prompts sind eine großartige und einfache Möglichkeit des Fine-Tunings eines Modells auf der Grundlage Ihres Anwendungsfalls. Für das Fine-Tuning auf der Grundlage von Prompts müssen Sie zunächst einige Beispiele für Ihre verschiedenen Ausgaben mit der Frage und der erwarteten Antwort geben. Auf diese Weise kann das System verstehen, was Sie erwarten, und auf dieser Grundlage automatisch das Fine-Tuning vornehmen. Für diese Art des Fine-Tuning können Sie die Eingabeaufforderungen des Systems verwenden, so dass Sie nicht jedes Mal dieselbe Nachricht eingeben müssen.
  2. Anweisungsbasiertes Fine-Tuning: Falls das promptbasierte Fine-Tuning nicht ausreicht (was in vielen Fällen nicht der Fall ist, insbesondere wenn Sie mit proprietären Daten wie medizinischen Analysen arbeiten), müssen Sie Ihr eigenes angepasstes GPT-Modell erstellen. Hier empfehlen wir die Verwendung des Llama2-Modells mit QLoRa-basiertem Fine-Tuning. (Sie können diesen Artikel für detaillierte Schritte lesen: Link zum Artikel). Diese Methode eignet sich besonders für Unternehmen, die das Modell für bestimmte Aufgaben lehren und Gewichtungen des Modells feinabstimmen möchten, anstatt es allgemein einsetzbar zu machen.
  3. Token-basiertes Fine-Tuning: In bestimmten Fällen wird selbst dies nicht ausreichen, wenn Sie eine genauere Kenntnis Ihrer Domänensprache und -feinheiten benötigen. Ein gutes Beispiel dafür war BloombergGPT, wo das gesamte Tokensystem feinabgestimmt wurde.
Beispiel für Token-basiertes Fine-Tuning - Datensatz verwendet von Bloomberg:
2.1 Finanzdatensätze (363B Token - 51,27% des Trainings)
  2.1.1 Web(298Btokens-42.01% des Trainings)
  2.1.2 Nachrichten(38Btokens-5,31%der Ausbildung)
  2.1.3 Anmeldungen(14Btokens-2,04%derAusbildung)
  2.1.4 Presse(9Btokens-1,21%derAusbildung)
  2.1.5 Bloomberg(5Btokens-0,70%Schulungsanteil)
2.2 Öffentliche Datenbestände(345Btokens-48,73%Schulung)
  The Pile(184Btokens-25,9%derAusbildung)
2.2.3 Wikipedia (24Btokens-3,35%derAusbildung)

Mit Llama2 und anderen einschlägigen Open-Source-Modellen ist dies nun möglich, so dass Unternehmen ihre eigenen personalisierten, sicheren GPT-Modelle erstellen können, die auf ihrer Domain funktionieren und hinter ihren Firewalls sicher sind.
 

Fine-Tuning vs. Feature-Extraktion

Was ist der Unterschied zwischen Fine-Tuning und Feature-Extraktion?

Fine-Tuning und Feature-Extraktion sind zwei Ansätze zur Wiederverwendung bestehender Modelle für eine bestimmte Aufgabe. Beim Fine-Tuning wird das gesamte Modell auf neue Daten trainiert, während bei der Feature-Extraktion nur ein neuer Klassifikator auf der Grundlage der zuvor extrahierten Merkmale des bestehenden Modells trainiert wird. Das Fine-Tuning ist in der Regel effektiver, wenn die Aufgabe komplexer ist oder das Modell mehr über den Bereich lernen muss, während die Feature-Extraktion bei einfacheren Aufgaben effizienter sein kann.

Warum brauchen wir Fine-Tuning?

Das Fine-Tuning ist unverzichtbar, denn es ermöglicht uns die Wiederverwendung bestehender, leistungsstarker Modelle für bestimmte Anwendungsfälle. Anstatt ein völlig neues Modell von Grund auf zu trainieren, können wir Zeit und Ressourcen sparen, indem wir ein vorab trainiertes Modell für unsere speziellen Bedürfnisse anpassen. Dieser Ansatz kann auch die Genauigkeit und Leistung des Modells verbessern, insbesondere in Situationen, in denen nur wenige Trainingsdaten zur Verfügung stehen.

Wie man ein Large Language Model fine-tuned

  1. Vorbereitungen für das Fine-Tuning:
    Vor dem Fine-Tuning von LLMs wie ChatGPT ist es wichtig, die notwendigen Daten vorzubereiten. Dazu gehört es, die Aufgabe zu verstehen, den richtigen Datensatz auszuwählen und diesen zu formatieren.
    1. Das Verständnis der anstehenden Aufgabe: Das Verständnis der spezifischen Aufgabe, die Sie von LLMs wie ChatGPT ausführen lassen möchten, ist entscheidend. Wenn Sie beispielsweise ein Fine-Tuning für Gefühlsanalyse durchführen möchten, müssen Sie verstehen, was Gefühlsanalyse beinhaltet, wie viele verschiedene Emotionen Sie im Text klassifizieren möchten und wie LLMs wie ChatGPT für diese Aufgabe verwendet werden können.
    2. Auswahl des richtigen Datensatzes: Sobald Sie die Aufgabe verstanden haben, müssen Sie einen Datensatz auswählen, der für die Aufgabe relevant ist. Der Datensatz sollte Beispiele für die Art von Text enthalten, die LLMs wie ChatGPT erzeugen werden. Wenn Sie z. B. ein Fine-tuning für die Gefühlsanalyse durchführen, benötigen Sie einen Datensatz, der Textbeispiele mit Gefühlsbezeichnungen enthält, die alle Emotionen enthalten, die das Sprachmodell verstehen soll.
    3. Formatierung des Datensatzes: Der Datensatz muss richtig formatiert werden, damit er für das Fine-tuning verwendet werden kann. Dazu gehört, dass der Text in Eingabe- und Ausgabesequenzen unterteilt wird und dass die Beschriftungen richtig formatiert sind.
  2. Fine-Tuning Techniques:
    Es gibt mehrere Möglichkeiten des Fine-Tunings, mit denen LLMs wie ChatGPT für bestimmte Aufgaben optimiert werden können. Dazu gehören Few-Shot Learning, Zero-Shot Learning, Continual Learning und Multi-Task Learning.
    1. Few-Shot Learning: Beim Few-Shot-Learning geht es um das Fine-Tuning von LLMs wie ChatGPT anhand einer kleinen Datenmenge. Diese Technik ist nützlich, wenn Sie nur wenige gelabelte Daten für die betreffende Aufgabe haben.
    2. Zero-Shot Learning: Beim Zero-Shot-Learning geht es um das Fine-Tuning von LLMs für eine Aufgabe, für die sie nicht speziell trainiert wurden. Diese Technik ist nützlich, wenn Sie LLMs für eine Aufgabe verwenden möchten, die den Aufgaben ähnelt, für die sie trainiert wurden, wie z.B. das Schreiben von Inhalten.
    3. Continual Learning: Continual Learning beinhaltet die Anpassung von LLMs wie ChatGPT im Laufe der Zeit, wenn neue Daten verfügbar werden. Diese Technik ist nützlich, wenn Sie LLMs wie ChatGPT mit neuen Informationen auf dem neuesten Stand halten und ihr Modell auf der Grundlage neuer Daten weiter verbessern wollen. Dies ist äußerst nützlich, um die Genauigkeit zu erhöhen, aber wenn es nicht richtig implementiert wird, kann die Genauigkeit auch sinken.
    4. Multi-Task Learning: Multi-task learning beinhaltet die Optimierung von LLMs wie ChatGPT für mehrere zusammenhängende Aufgaben gleichzeitig. Diese Technik ist nützlich, wenn Sie LLMs wie ChatGPT für mehrere Aufgaben auf einmal optimieren wollen.

Wie beginnt man mit dem Fine-Tuning?

  1. Einrichtung der Umgebung: Vor dem Fine-Tuning von LLMs wie ChatGPT müssen Sie die Umgebung einrichten, indem Sie die erforderlichen Dateien und Abhängigkeiten installieren..
  2. Ausführen des Fine-Tuning-Codes: Sobald die Umgebung eingerichtet ist, können Sie mit der Ausführung des Fine-Tuning-Codes beginnen. Dazu müssen Sie den formatierten Datensatz in den Code eingeben und die zu verwendende Feintuning-Technik angeben. Der Code führt dann eine Optimierung von LLMs wie ChatGPT auf dem Datensatz durch und erstellt ein optimiertes Modell.
    So könnte die jsonl-Datei des Datensatzes aussehen..

{"prompt": "", "completion": "<ideal generated text>"}

{"prompt": "", "completion": "<ideal generated text>"}

{"prompt": "", "completion": "<ideal generated text>"}
....

Sie müssen darauf achten, dass jeder Datensatz weniger als 2048 Token enthält. Sobald Sie den Datensatz fertig haben, lassen Sie ihn durch das OpenAI-Kommandozeilentool laufen, um ihn zu validieren. Openai tools fine_tunes.prepare_data - <LOCAL_FILE>

Sie können auch Dateien im CSV-, TSV-, XLSX-, JSON- oder JSONL-Format an dieses Tool übergeben, das Sie bei der Umwandlung in einen für das Fine-Tuning geeigneten Datensatz unterstützen wird.

  1. Trainieren Sie ein neues fine-tuned Modell:
    Führen Sie den folgenden Befehl im Befehlszeilenprogramm aus, um Ihr optimiertes Modell zu trainieren.
    openai api fine_tunes.create -t <TRAIN_FILE_ID_OR_PATH> -m <BASE_MODEL>
    Ersetzen Sie den Dateinamen und wählen Sie einen Modellnamen, auf dem Ihr Modell basieren soll.

  2. Bewertung des optimierten Modells: Nachdem das Fine-Tuning abgeschlossen ist, müssen Sie das optimierte Modell auswerten, um sicherzustellen, dass es die gestellte Aufgabe gut bewältigt. Dazu müssen Sie einen separaten Datensatz verwenden, um die Leistung des Modells zu testen. Wenn das Modell nicht gut abschneidet, müssen Sie möglicherweise die Feintuning-Technik oder die Hyperparameter anpassen und den Prozess wiederholen.

Fazit: Die Optimierung von LLMs wie ChatGPT für eine bestimmte Aufgabe kann schrittweise erfolgen, und es können mehrere Durchgänge zur Optimierung und Überprüfung erforderlich sein. Mit dem richtigen Ansatz und den richtigen Techniken kann das Fine-Tuning von LLMs wie ChatGPT jedoch zu beeindruckenden Ergebnissen führen und dazu beitragen, ihr volles Potenzial zu erschließen.

Wenn Sie sehen möchten, wie sich dies auf Ihr Unternehmen anwenden lässt, wenden Sie sich an uns unter technology@enterprisebot.ai oder an unser Sales Team unter sales@enterprisebot.ai.