Heim > Technologie-Peripheriegeräte > IT Industrie > Feinabstimmung eines Open-Source-LLM mit Axolotl unter Verwendung direkter Präferenzoptimierung (DPO)

Feinabstimmung eines Open-Source-LLM mit Axolotl unter Verwendung direkter Präferenzoptimierung (DPO)

尊渡假赌尊渡假赌尊渡假赌
Freigeben: 2025-02-08 09:24:10
Original
547 Leute haben es durchsucht

Fine-Tuning an Open-Source LLM with Axolotl Using Direct Preference Optimization (DPO)

Die Entstehung großer Sprachmodelle (LLMs) hat unzählige neue Möglichkeiten für KI -Anwendungen gebracht. Wenn Sie Ihr eigenes Modell schon immer feinstimmen wollten, zeigt Ihnen dieser Leitfaden, wie Sie dies leicht tun können, ohne Code zu schreiben. Wir werden Tools wie Axolotl und DPO verwenden, um Sie Schritt für Schritt durch den gesamten Prozess zu führen.

Was ist ein großes Sprachmodell (LLM)?

großes Sprachmodell (LLM) ist ein leistungsstarkes KI -Modell, das massive Textdaten (Billionen von Zeichen) trainiert, um die nächste Phrase in einer Sequenz vorherzusagen. Dies war nur mit Fortschritten in der GPU-Computing in den letzten 2 bis 3 Jahren möglich, die es ermöglicht haben, ein so großes Modell in wenigen Wochen auszubilden.

Sie haben möglicherweise zuvor mit LLM über Produkte wie Chatgpt oder Claude interagiert und ihre Fähigkeit, menschliche Reaktionen zu verstehen und zu erzeugen, persönlich erlebt.

Warum müssen Sie LLM feinsten?

Können wir nicht einfach GPT-4O verwenden, um mit allem umzugehen? Obwohl es das mächtigste Modell ist, das wir zum Zeitpunkt des Schreibens haben, ist es nicht immer die praktischste Option. Die Feinabstimmung Ein kleineres Modell (Parameterbereich von 3 bis 14 Milliarden) kann vergleichbare Ergebnisse bei einem kleinen Teil der Kosten erzielen. Darüber hinaus ermöglicht Ihnen die Feinabstimmung, Ihr eigenes geistiges Eigentum zu besitzen und die Abhängigkeit von Dritten zu verringern.

Verständnis der Grundmodelle, Anweisungsmodelle und Dialogmodelle

Verstehen Sie unbedingt die verschiedenen verfügbaren Arten von LLMs, bevor Sie eingehend angepasst werden:

  • Basismodelle: Diese Modelle werden auf großen Mengen unstrukturierter Text wie Bücher oder Internetdaten vorgeschrieben. Obwohl sie ein inhärentes Verständnis der Sprache haben, sind sie nicht optimiert, um zu argumentieren und inkohärente Ausgabe zu erzeugen. Die Entwicklung von Basismodellen besteht darin, als Ausgangspunkt für die Entwicklung professionellerer Modelle zu dienen.
  • Anleitungsmodell: Anweisungsmodell basiert auf dem Basismodell und fein abgestimmt mit strukturierten Daten (z. B. ein Eingabeaufforderungspaar). Sie sollen bestimmte Anweisungen befolgen oder Fragen beantworten.
  • Dialogmodell: basiert auch auf dem Basismodell. Im Gegensatz zum Anweisungsmodell wird das Dialogmodell jedoch auf den Dialogdaten geschult, sodass sie Gespräche und Forth -Gespräche führen können.

Was sind Verstärkungslernen und DPO?

Verstärkungslernen (RL) ist eine Technik, bei der Modelle lernen, indem sie Feedback zu ihrem Verhalten erhalten. Es wird auf Anweisungsmodelle oder Dialogmodelle angewendet, um die Qualität der Ausgabe weiter zu verbessern. In der Regel funktioniert RL nicht über dem zugrunde liegenden Modell, da es eine niedrigere Lernrate verwendet, was nicht ausreicht, um signifikante Änderungen vorzunehmen.

DPO ist ein RL -Formular, bei dem das Modell mit den Vor- und Nachteilen desselben Eingabeaufforderung/Dialogs -Antwortpaares trainiert wird. Durch die Präsentation dieser Paare lernt das Modell günstige Beispiele und vermeidet schlechte Beispiele.

Wann verwendet DPO

DPO ist besonders nützlich, wenn Sie den Stil oder Verhalten Ihres Modells anpassen möchten, zum Beispiel:

  • Stilanpassung: Ändern Sie die Länge, die Detailebene oder das Vertrauen in den Modellexpression der Antwort.
  • Sicherheitsmaßnahmen: Schulungsmodell weigert sich, Eingabeaufforderungen zu beantworten, die möglicherweise unsicher oder unangemessen sind.

DPO ist jedoch nicht geeignet, um neue Kenntnisse oder Fakten über Modelle zu vermitteln. Zu diesem Zweck sind beaufsichtigte Feinabstimmungstechniken (SFT) oder Suchverbesserten Generation (RAG) besser geeignet.

DPO -Datensatz erstellen

In Produktionsumgebungen verwenden Sie normalerweise Benutzer -Feedback, um DPO -Datensätze zu generieren, wie z. B.

  • Benutzerfeedback: Implementieren Sie den Like/Click -Mechanismus als Antwort.
  • Vergleichen Sie Auswahlmöglichkeiten: präsentiert dem Benutzer zwei verschiedene Ausgänge und fordert sie auf, das bessere auszuwählen.

Wenn Ihnen Benutzerdaten fehlen, können Sie auch synthetische Datensätze erstellen, indem Sie größere, leistungsstärkere LLMs nutzen. Sie können beispielsweise ein kleineres Modell verwenden, um die falsche Antwort zu generieren und es dann mit GPT-4O zu korrigieren.

Der Einfachheit halber werden wir den vorgefertigten Datensatz von Huggingface verwenden: Olivermolenschot/alpaca_messages_dpo_test. Wenn Sie den Datensatz untersuchen, werden Sie feststellen, dass er Hinweise mit ausgewählten und abgelehnten Antworten enthält - dies sind gute und schlechte Beispiele. Diese Daten wurden mit der GPT-3,5-Turbo- und GPT-4-Synthese erstellt.

Sie benötigen normalerweise mindestens 500 bis 1000 Datenpaare, um effektiv ohne Überanpassung ausgebildet zu werden. Der größte DPO-Datensatz enthält bis zu 15.000 bis 20.000 Datenpaare.

Verwenden Sie Axolotl, um das QWEN2.5 3B-Anweisungsmodell

zu optimieren

Wir werden Axolotl verwenden, um das QWEN2.5 3B-Anweisungsmodell zu optimieren, das derzeit in seiner Skala-Kategorie die Nummer 1 in der OpenllM-Rangliste steht. Mit Axolotl können Sie Ihr Modell fein abstellen, ohne Code zu schreiben-nur eine YAML-Konfigurationsdatei ist erforderlich. Hier ist die config.yml, die wir verwenden werden:

# ... (YAML configuration remains the same) ...
Nach dem Login kopieren
Nach dem Login kopieren
Richten Sie eine Cloud -Umgebung ein

Um das Training auszuführen, verwenden wir Cloud -Hosting -Dienste wie Runpod oder Vultr. Hier sind was Sie brauchen:

    Docker-Bild: Klonte das Winglian/Axolotl-Cloud: Hauptdockbild, das vom Axolotl-Team bereitgestellt wurde.
  • Hardwareanforderungen: 80 GB VRAM -GPU (wie 1 × A100 -PCIe -Knoten) ist für Modelle dieser Größe mehr als ausreichend.
  • Speicher: 200 GB Volumenspeicher enthält alle von uns benötigten Dateien.
  • CUDA -Version: Ihre CUDA -Version sollte mindestens 12,1 betragen.
(Diese Art von Training gilt als eine vollständige Feinabstimmung von LLM und daher sehr vramintensiv. Wenn Sie das Training lokal ausführen möchten, ohne sich auf Cloud-Hosts zu verlassen, können Sie versuchen, Qlora, eine Form der beaufsichtigten Feinabstimmung, zu verwenden. Obwohl DPO und Qlora theoretisch kombiniert werden können, ist dies selten

Schritt zum Training

Setzen Sie das Cache -Verzeichnis von Huggingface:
Dies stellt sicher, dass das Originalmodell in unseren anhaltenden Lautstärkeraum heruntergeladen wird.
export HF_HOME=/workspace/hf
Nach dem Login kopieren
Nach dem Login kopieren

    Erstellen einer Konfigurationsdatei: Speichern Sie die zuvor erstellte config.yml -Datei auf /workspace/config.yml.
  1. Starten Sie das Training:
schau! Ihr Training sollte beginnen. Nach dem Herunterladen der Modell- und Trainingsdaten in Axolotl sollten Sie eine ähnliche Ausgabe wie folgt sehen:
python -m axolotl.cli.train /workspace/config.yml
Nach dem Login kopieren
Nach dem Login kopieren
# ... (YAML configuration remains the same) ...
Nach dem Login kopieren
Nach dem Login kopieren

Da dies ein kleinerer Datensatz mit nur 264 Zeilen ist, sollte das Training nur wenige Minuten dauern. Das fein abgestimmte Modell wird in /Workspace /DPO-Output gespeichert.

Laden Sie das Modell in das Umarmungsface

hoch.

Sie können mit der CLI das Modell auf das Umarmungsface hochladen:
  1. Installieren von Huggingface Hub CLI:
export HF_HOME=/workspace/hf
Nach dem Login kopieren
Nach dem Login kopieren
  1. Laden Sie das Modell hoch:
python -m axolotl.cli.train /workspace/config.yml
Nach dem Login kopieren
Nach dem Login kopieren

Ersetzen Sie Ihren Namen/Ihr REPO durch Ihren tatsächlichen Benutzernamen und den Repository -Namen.

fein abgestimmtes Modell

Für die Bewertung wird empfohlen, Tools wie die Inferenz (Textergenerierung Inferenz) zu verwenden, um das ursprüngliche Modell und das fein abgestimmte Modell zu hosten. Verwenden Sie dann die Temperatureinstellung auf 0 (um eine deterministische Ausgabe sicherzustellen), um die beiden Modelle zu begründen, und vergleichen Sie die Antworten der beiden Modelle manuell.

Dieser praktische Ansatz bietet bessere Einblicke, als sich ausschließlich auf Schulungen zur Bewertung von Verlustmetriken zu verlassen, da Verlustmetriken möglicherweise nicht die Feinheiten der Sprachgenerierung in LLM erfassen.

Schlussfolgerung

Mit

Fine-Tuning LLM mit DPO können Sie Ihre Modelle anpassen, um die Anforderungen Ihrer Anwendung besser zu erfüllen und gleichzeitig die Kosten unter Kontrolle zu halten. Wenn Sie die in diesem Artikel beschriebenen Schritte befolgen, können Sie die Leistung von Open -Source -Tools und -Datensätzen nutzen, um Modelle zu erstellen, die Ihren spezifischen Anforderungen entsprechen. Unabhängig davon, ob Sie den Stil Ihrer Antwort anpassen oder Sicherheitsmaßnahmen implementieren möchten, bietet DPO eine praktische Möglichkeit, LLM zu verbessern.

Ich wünsche Ihnen eine glückliche Feinabstimmung!

Das obige ist der detaillierte Inhalt vonFeinabstimmung eines Open-Source-LLM mit Axolotl unter Verwendung direkter Präferenzoptimierung (DPO). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage