Skip to content

Wie lässt sich ChatGPT auf Ihren Anwendungsfall feinabstimmen?

ChatGPT-German

Einführung

Mit dem Hype um ChatGPT ist das Konzept der LLMs oder Large Language Models in unseren allgemeinen Wortschatz aufgenommen worden. Es gibt kein Meeting oder Zoom-Anruf mehr, bei dem man nicht hört: «Aber was ist mit ChatGPT und wie können wir es nutzen?» Zentral für die Nutzung von ChatGPT oder ähnlicher Technologien gilt es zu verstehen, wie man diese Modelle kontrolliert und trainiert, damit sie für Ihr Unternehmen funktionieren, und dazu gehört auch die Feinabstimmung der LLMs. Um diese Modelle jedoch auf spezifische Anwendungsfälle abzustimmen, müssen wir verstehen, wie wir diese Aufgabe wirkungsvoll angehen können. In diesem Artikel werden wir die Bedeutung der Feinabstimmung erörtern und wie sie im Kontext von OpenAI-Modellen im Besonderen und LLMs im Allgemeinen durchgeführt wird.

Verständnis von Large Language Models

Was sind Large Language Models?

Gross angelegte Sprachmodelle oder LLMs sind NLP-Modelle, die auf grossen 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, Sentimentanalyse und Inhaltserstellung durchzuführen. Zu den bekanntesten Beispielen der Large Language Models 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.

Vorteile von Large Language Models

Die Vorteile von Large Language Models sind zahlreich, darunter die Fähigkeit, qualitativ hochwertige Texte zu generieren, die Sprachverarbeitung zu verbessern und die Genauigkeit der Vorhersage von sprachbasierten Ergebnissen zu erhöhen. Diese Modelle können auch von neuen Daten lernen und sich an diese anpassen, ihre Leistung im Laufe der Zeit verbessern und Technologien wie Chatbots, Conversational AI (KI-unterstützte, automatisierte Dialogsysteme), E-Mail-Bots, personalisierte Voice-Bots, SEO und sogar Natural Language Coding unterstützen.

Feinabstimmung vortrainierter Sprachmodelle

Was ist die Feinabstimmung von vortrainierten Sprachmodellen?

Bei der Feinabstimmung von vortrainierten Sprachmodellen wird ein vorhandenes Sprachmodell, das bereits auf einem grossen Datensatz trainiert wurde, auf einem kleineren, domänenspezifischen Datensatz neu trainiert. Bei diesem Prozess wird das Modell so abgestimmt, dass es Sprache versteht und produziert, die für einen bestimmten Bereich oder Anwendungsfall relevant ist. Die Feinabstimmung kann.

  1. die Genauigkeit der Antworten durch ein besseres Verständnis der Aufgabe massgeblich verbessern.
  2. den Ton der Antworten an die Anforderungen Ihres Unternehmens anpassen, z. B. professionell und kurz oder locker und freundlich

Nach OpenAIs eigenen Erkenntnissen verbessert die Feinabstimmung von GPT-3 die Genauigkeit um das 2- bis 4-Fache dessen, was mit Prompt-Design möglich ist.

Wie man NLP-Modelle fein abstimmt

Der Prozess der Feinabstimmung von NLP-Modellen beginnt mit der Auswahl eines vortrainierten Modells, das für den Bereich und den Anwendungsfall relevant ist. Als Nächstes trainieren wir das Modell auf einem kleineren, gelabelten Datensatz, der den spezifischen Bereich oder Anwendungsfall widerspiegelt. Laut OpenAI erkennt man die Vorteile der Feinabstimmung von GPT-3 bereits bei weniger als 100 Beispielen, und die Leistung verbessert sich weiter, wenn man mehr Daten hinzufügt». Das Modell lernt dann, Ergebnisse auf der Grundlage des neuen Datensatzes vorherzusagen, wodurch seine Genauigkeit und Sprachverarbeitungsfähigkeiten für diesen Bereich oder Anwendungsfall verbessert werden.

Ist eine Feinabstimmung für ChatGPT oder gpt-3.5-turbo verfügbar?

Nein. Stand 1. März 2023 können Sie nur die Basis-GPT-3-Modelle feineinstellen. Weitere Einzelheiten zur Verwendung von Feinabstimmungsmodellen finden Sie in der Anleitung zur Feinabstimmung. Derzeit ist die beste Option für die Feinabstimmung von ChatGPT das Prompt Engineering.

Feinabstimmung vs. Feature Extraction

Was ist der Unterschied zwischen Feinabstimmung und Feature Extraction?

Feinabstimmung und Feature Extraction sind zwei Ansätze zur Wiederverwendung bestehender Modelle für eine bestimmte Aufgabe. Bei der Feinabstimmung wird das gesamte Modell auf neuen Daten trainiert, während bei der Feature Extraction nur ein neuer Klassifikator auf den bereits extrahierten Merkmalen des bestehenden Modells trainiert wird. Die Feinabstimmung ist in der Regel effektiver, wenn die Aufgabe komplexer ist oder das Modell mehr über den Bereich lernen muss, während die Feature Extraction bei einfacheren Aufgaben effizienter sein kann.

Warum brauchen wir Feinabstimmung?

Die Feinabstimmung ist wichtig, weil sie uns die Wiederverwendung bestehender, leistungsstarker Modelle für bestimmte Anwendungsfälle ermöglicht. Anstatt ein völlig neues Modell von Grund auf zu trainieren, können wir Zeit und Ressourcen sparen, indem wir ein vortrainiertes Modell für unsere spezifischen Anforderungen feinabstimmen. Dieser Ansatz kann auch die Genauigkeit und Leistung des Modells verbessern, insbesondere in Situationen, in denen die Anzahl der gelabelten Trainingsdaten begrenzt ist.

Wie man ein grosses Sprachmodell fein abstimmt

  1. Für die Feinabstimmung eines LLM wie ChatGPT ist es wichtig, die erforderlichen Daten vorzubereiten. Dazu gehört es, die Aufgabe zu verstehen, den richtigen Datensatz auszuwählen und diesen zu formatieren.
    1. Verstehen der vorliegenden Aufgabe: Es ist entscheidend, die spezifische Aufgabe zu verstehen, die das LLM wie CHATGPT erfüllen soll. Wenn Sie z. B. ein LLM wie CHATGPT für die Sentimentanalyse optimieren möchten, müssen Sie verstehen, was Sentimentanalyse beinhaltet, in wie viele verschiedene Sentiments Sie den Text einteilen möchten und wie LLMs wie CHATGPT für diese Aufgabe verwendet werden können.
    2. Den richtigen Datensatz auswählen: Sobald Sie die Aufgabe verstanden haben, müssen Sie einen Datensatz auswählen, der für diese Aufgabe relevant ist. Der Datensatz sollte Beispiele für die Art von Text enthalten, die das LLM wie ChatGPT erzeugen wird. Wenn Sie z. B. ein LLM wie ChatGPT für die Sentimentanalyse feinabstimmen wollen, benötigen Sie einen Datensatz, der Textbeispiele mit Sentiment-Labels mit allen Sentiments enthält, die das Sprachmodell verstehen soll.
    3. Den Datensatz formatieren: Der Datensatz muss richtig formatiert werden, damit er für die Feinabstimmung verwendet werden kann. Dazu gehört die Trennung des Textes in Eingabe- und Ausgabesequenzen und die Sicherstellung, dass die Beschriftungen richtig formatiert sind.
  2. Feinabstimmungstechniken: Es gibt mehrere Feinabstimmungstechniken, die zur Optimierung von LLMs wie ChatGPT für bestimmte Aufgaben verwendet werden können. Dazu gehören das Few-Shot-Learning, das Zero-Shot-Learning, das lebenslange Lernen und das Multi-Task-Learning (MTL).
    1. Few-Shot-Learning: Few-Shot-Learning beinhaltet die Feinabstimmung von LLMs wie ChatGPT auf einer kleinen Menge von Daten. Diese Technik ist nützlich, wenn Sie nur begrenzte gelabelte Daten für die jeweilige Aufgabe haben.
    2. Zero-Shot-Learning: Das Zero-Shot-Learning beinhaltet die Feinabstimmung des LLM auf eine Aufgabe, für die es nicht speziell trainiert wurde. Diese Technik ist nützlich, wenn Sie LLMs für eine Aufgabe verwenden möchten, die derjenigen ähnlich ist, für die es trainiert wurde, wie z. B. das Schreiben von Inhalten.
    3. Lebenslanges Lernen: Lebenslanges Lernen beinhaltet die Feinabstimmung von LLMs wie ChatGPT im Laufe der Zeit, wenn neue Daten verfügbar werden. Diese Technik ist nützlich, wenn Sie ein LLM wie ChatGPT mit neuen Informationen auf dem Laufenden halten und sein Modell auf der Grundlage neuer Daten weiter verbessern wollen. Dies ist äusserst nützlich, um die Genauigkeit zu erhöhen, aber wenn es nicht richtig implementiert wird, kann die Genauigkeit auch sinken.
    4. Multi-Task-Learning: MTL beinhaltet die Feinabstimmung von LLMs wie ChatGPT auf mehrere verwandten Aufgaben gleichzeitig. Diese Technik ist nützlich, wenn Sie ein LLM wie ChatGPT für mehrere Aufgaben auf einmal optimieren wollen.

Wie beginnt man mit der Feinabstimmung?

  1. Die Umgebung einrichten: Vor der Feinabstimmung von LLMs wie ChatGPT müssen Sie die Umgebung einrichten, indem Sie die erforderlichen Bibliotheken und Abhängigkeiten installieren.
  2. Den Feinabstimmungscode ausführen: Sobald die Umgebung eingerichtet ist, können Sie mit der Ausführung des Feinabstimmungscodes beginnen. Dazu müssen Sie den formatierten Datensatz in den Code einspeisen und die zu verwendende Feinabstimmungstechnik festlegen. Der Code führt dann eine Feinabstimmung des LLM wie ChatGPT auf dem Datensatz durch und erzeugt ein feinabgestimmtes Modell.

    So könnte die jsonl-Datei für den Datensatz aussehen.

{"prompt": "", "completion": "<idealer generierter Text>"}

{"prompt": "", "completion": "<idealer generierter Text>"}

{"prompt": "", "completion": "<idealer generierter 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 Ihnen bei der Umwandlung in einen für die Feinabstimmung geeigneten Datensatz hilft.

  1. Trainieren Sie ein neues fein abgestimmtes Modell

    Führen Sie den folgenden Befehl im Kommandozeilenprogramm aus, um Ihr Feinabstimmungsmodell 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 als Grundlage für Ihr Modell.

  2. Das feinabgestimmte Modell auswerten: Nach Abschluss des Feinabstimmungsprozesses müssen Sie das feinabgestimmte Modell auswerten, um sicherzustellen, dass es die verlangte Aufgabe gut erfüllt. Dazu wird ein separater Datensatz verwendet, um die Leistung des feinabgestimmten Modells zu testen. Wenn das Modell nicht gut abschneidet, müssen Sie möglicherweise die Feinabstimmungstechnik oder die Hyperparameter anpassen und den Prozess wiederholen.

SchlussfolgerungDer Feinabstimmungsprozess kann iterativ sein, und es kann mehrere Runden der Feinabstimmung und Bewertung erfordern, um LLMs wie ChatGPT für eine bestimmte Aufgabe zu optimieren. Mit der richtigen Herangehensweise und den richtigen Techniken kann die Feinabstimmung von LLMs wie ChatGPT jedoch zu beeindruckenden Ergebnissen führen und dazu beitragen, das volle Potenzial dieses Verfahrens auszuschöpfen. Wenn Sie wissen möchten, wie dies in Ihrem Unternehmen angewendet werden kann, schreiben Sie uns unter technology@enterprisebot.ai oder unserem Vertriebsteam unter sales@enterprisebot.ai.