Zugang aus Übersee: www.kdjingpai.com
Ctrl + D Lesezeichen für diese Seite

Qwen3-FineTuning-Playground ist ein Open-Source-Projekt, das eine komplette Codebasis für die Feinabstimmung der Qwen3-Familie von großen Sprachmodellen bereitstellt. Die Grundlage dieses Projekts ist es, klare, professionelle und einfach zu erweiternde Code-Beispiele für die Feinabstimmung bereitzustellen, so dass Entwickler und Forscher leicht eine Vielzahl von Mainstream-Feinabstimmungstechniken anwenden können. Der Projektcode ist klar strukturiert und modularisiert verschiedene Funktionen wie überwachtes Feintuning, Reinforcement Learning, Wissensdestillation und Inferenz in separaten Verzeichnissen. Alle Trainings- und Inferenzskripte unterstützen die Konfiguration durch Übergabe von Parametern über die Befehlszeile, was bedeutet, dass Benutzer verschiedene Experimente durchführen können, ohne den Quellcode zu ändern. Darüber hinaus bietet das Projekt mehrere detaillierte End-to-End-Tutorials, so dass auch Anfänger die Dokumentation Schritt für Schritt durch den gesamten Prozess von der Umgebungskonfiguration über die Datenaufbereitung bis hin zum Modelltraining und zur Inferenz verfolgen können.

Funktionsliste

  • Mehrere überwachte Feinabstimmungsprogramme (SFT)Unterstützt eine vollständige Feinabstimmung der Parameter des Modells sowie eine effiziente Feinabstimmung mit Techniken wie LoRA (Low Rank Adaptation) zur Anpassung an unterschiedliche Hardware-Ressourcen und Trainingsanforderungen.
  • Ausrichtung des Verstärkungslernens (RL)Integration mehrerer auf menschlichem Feedback basierender Verstärkungslernalgorithmen zur Verbesserung der Dialogqualität und der Fähigkeit des Modells, Anweisungen zu befolgen.
    • PPO-Algorithmus: implementiert einen klassischen proximalen Optimierungsalgorithmus, der das Modelllernen durch ein Belohnungsmodell (RM) leitet.
    • ORPO-AlgorithmusBietet einen effizienten Algorithmus zur Ausrichtung von Präferenzen, der den Trainingsprozess vereinfacht, ohne dass zusätzliche Belohnungsmodelle benötigt werden.
  • Optimierungstechniken nach dem Training:
    • WissensdestillationUnterstützung bei der Migration von Wissen von einem größeren, leistungsfähigeren Lehrermodell (z. B. Qwen3-4B) zu einem kleineren Schülermodell (z. B. Qwen3-1.7B), um ein leichteres, aber immer noch leistungsfähiges Modell zu erhalten.
  • Modulare CodestrukturDas Projekt unterteilt den Code klar in verschiedene Verzeichnisse je nach Funktion, zum BeispielSupervised_FineTuningundRL_FineTuningusw., wodurch der Code leicht zu verstehen und zu pflegen ist.
  • Parametrische LaufskripteAlle Skripte unterstützen die Konfiguration über Kommandozeilenparameter, so dass der Benutzer Parameter wie Modellpfade, Datensätze, Ausgabeverzeichnisse usw. flexibel anpassen kann, ohne den Code zu ändern.
  • End-to-End-Beispiel-Tutorial: Inexample/Der Katalog enthält mehrere vollständige praktische Übungen, die den gesamten Prozess von SFT bis PPO, das Ein-Schritt-Alignment für ORPO, die Wissensdestillation und domänenspezifische Anwendungen (z. B. die Feinabstimmung von Mehr-Runden-Dialogen in der Psychologie) abdecken.

Hilfe verwenden

Diese Codebasis bietet einen vollständigen Prozess, der Ihnen einen schnellen Einstieg in die Feinabstimmung des Qwen3-Modells ermöglicht. Im Folgenden wird eine SFT-LoRA-Feinabstimmung als Beispiel genommen und das Verfahren im Detail beschrieben.

1. die Vorbereitung: Klonen des Projekts und Konfigurieren der Umgebung

Zunächst müssen Sie den Projektcode von GitHub auf Ihren lokalen Computer klonen und in das Projektverzeichnis wechseln.

git clone https://github.com/Muziqinshan/Qwen3-FineTuning-Playground.git
cd Qwen3-FineTuning-Playground

Der nächste Schritt ist die Konfiguration der Python-Umgebung. Um Konflikte mit Bibliotheken, die sich bereits auf Ihrem System befinden, zu vermeiden, ist es sehr empfehlenswert, diecondaErstellen Sie eine brandneue eigenständige Umgebung. Für dieses Projekt wird die Python-Version 3.10 empfohlen.

# 创建一个名为 qwen3_ft 的新环境
conda create -n qwen3_ft python=3.10
# 激活这个新创建的环境
conda activate qwen3_ft

Sobald die Umgebung aktiviert ist, müssen Sie alle Bibliotheken installieren, die für das Projekt erforderlich sind. Im Stammverzeichnis des Projekts muss dierequirements.txtIn der Datei sind bereits alle erforderlichen Bibliotheken aufgeführt. Führen Sie den folgenden Befehl aus, um sie zu installieren:

pip install -r requirements.txt

2. das Herunterladen des Modells und die Aufbereitung der Daten

Vor der Feinabstimmung müssen Sie das Basismodell und den Datensatz für das Training vorbereiten.

Modelle herunterladen
Empfohlen für dieses ProjektmodelscopeDie Bibliothek lädt vortrainierte Qwen3-Modelle von der Magic Match Community herunter.modelscopeDie Bibliothek führt den vorherigen Schritt auspip installBefehl installiert wurde.

Führen Sie die folgenden Befehle aus, um die beiden Basismodelle herunterzuladen, die in diesem Projektbeispiel verwendet werden sollen:

# 下载Qwen3-1.7B模型,它将主要用于SFT、ORPO和PPO等微调任务
modelscope download --model Qwen/Qwen3-1.7B --local_dir ./Qwen3/Qwen3-1.7B
# 下载Qwen3-4B模型,它主要用作知识蒸馏任务中的教师模型
modelscope download --model Qwen/Qwen3-4B --local_dir ./Qwen3/Qwen3-4B

Nach der Ausführung des Befehls werden die Modelldateien automatisch heruntergeladen und im Stammverzeichnis des Projekts unter dem Namen./Qwen3/Qwen3-1.7Bim Gesang antworten./Qwen3/Qwen3-4BKatalog.

Daten vorbereiten
Die in diesem Projekt verwendeten Daten haben ein bestimmtes JSON-Format. Es gibt ein spezifisches JSON-Format für die Daten, die in derdata/Verzeichnis, das ein Verzeichnis namensdirty_chinese_dpo.jsonBeispieldatei, die Sie für die Formatierung Ihres eigenen Datensatzes heranziehen können.

3. der Beginn der SFT-LoRA-Feinabstimmung

Sobald alles bereit ist, kann mit dem Training begonnen werden. Mit dem folgenden Befehl wird eine überwachte Feinabstimmung (SFT) gestartet und die LoRA-Technik zur Verbesserung der Effizienz eingesetzt.

python Supervised_FineTuning/train_sft_dirty.py \
--model_path ./Qwen3/Qwen3-1.7B \
--dataset_path data/dirty_chinese_dpo.json \
--sft_adapter_output_dir ./output/sft_adapter_demo
  • --model_pathGibt den Pfad zum Basismodell an, das wir gerade heruntergeladen haben.
  • --dataset_pathDataset: Gibt die Datei des Datensatzes an, der für das Training verwendet werden soll.
  • --sft_adapter_output_dirGibt das Verzeichnis an, in dem die Gewichte des LoRA-Adapters nach Abschluss des Trainings gespeichert werden.

Der Schulungsprozess dauert je nach Leistung Ihrer Hardware eine gewisse Zeit. Am Ende des Trainingsprozesses werden Sie./output/sft_adapter_demoSuchen Sie die generierte Modelladapterdatei in dem Verzeichnis.

4. die Argumentation mit fein abgestimmten Modellen

Nachdem das Modell trainiert wurde, besteht der wichtigste Schritt darin, seine Wirksamkeit zu überprüfen. Sie können das folgende Inferenzskript ausführen, um einen interaktiven Chat mit dem Modell zu führen, das Sie gerade feinabgestimmt haben.

python inference/inference_dirty_sft.py \
--model_path ./Qwen3/Qwen3-1.7B \
--adapter_path ./output/sft_adapter_demo \
--mode interactive
  • --model_path:: Auch hier der Weg des Basismodells.
  • --adapter_pathVerweist auf das Verzeichnis, in dem sich der LoRA-Adapter befindet, den wir im vorherigen Schritt trainiert haben.
  • --mode interactiveInteraktiver Chat: Zeigt an, dass der interaktive Chat-Modus aktiviert ist, in dem Sie direkt in der Befehlszeile Fragen eingeben können, um mit dem Modell zu sprechen.

Nun sind Sie bereit, die Leistung des Modells bei bestimmten Aufgaben zu testen. Wenn Sie andere Feinabstimmungsmethoden wie ORPO oder Wissensdestillation ausprobieren möchten, können Sie sich auf dieexample/Die ausführliche Tutorial-Dokumentation im Verzeichnis enthält ähnliche Schritte.

Anwendungsszenario

  1. Bereichsspezifischer intelligenter Kundenservice
    Das generische Qwen3-Modell kann auf eine branchenspezifische Wissensbasis (z. B. Finanzen, Medizin, Recht) abgestimmt werden, um einen intelligenten Kundendienstroboter zu schaffen, der in der Lage ist, spezielle Fragen präzise zu beantworten. Das im Rahmen des Projekts bereitgestellte SFT-Tutorial ist ein idealer Ausgangspunkt für die Umsetzung dieses Szenarios.
  2. Personalisierter Assistent für die Erstellung von Inhalten
    Durch die Feinabstimmung des Modells anhand von Textdaten in einem bestimmten Stil (z. B. das Werk eines bestimmten Autors, ein bestimmter Stil von Werbetexten) ist es möglich, einen Assistenten zu erstellen, der diesen Schreibstil nachahmt und als Hilfe bei der Erstellung von Inhalten, Gedichten oder Werbetexten verwendet werden kann.
  3. Modell-Leichtgewichtung und privates Deployment
    Für Szenarien mit begrenzten Rechenressourcen kann die Funktion der Wissensdestillation genutzt werden, um die Fähigkeiten eines großen Modells (z. B. Qwen3-4B) in ein kleines Modell (z. B. Qwen3-1.7B) zu migrieren. Auf diese Weise bleibt ein Großteil der Leistung erhalten und die Kosten für die Inferenz werden erheblich gesenkt, was den privaten Einsatz auf persönlichen Geräten oder Edge-Computing-Geräten erleichtert.
  4. Verbesserung der Sicherheit und Konsistenz von Modelldialogen
    Methoden des Verstärkungslernens (z. B. PPO oder ORPO) können eingesetzt werden, um das Modell mit den menschlichen Präferenzdaten abzugleichen, so dass die ausgegebenen Antworten besser mit den menschlichen Werten übereinstimmen, wodurch die Erzeugung schädlicher oder unangemessener Inhalte verringert und die Zuverlässigkeit und Sicherheit des Dialogs verbessert wird.

QA

  1. Welche sind die wichtigsten Qwen3-Modelle, die von diesem Projekt unterstützt werden?
    Das Projekt basiert hauptsächlich auf der Qwen3-Modellreihe für Entwicklung und Tests, und der Beispielcode bietet direkten Zugang zu den Modellen Qwen3-1.7B und Qwen3-4B zum Herunterladen und Verwenden. Theoretisch ist die Codestruktur auch mit anderen Größenmodellen der Qwen3-Serie kompatibel.
  2. Welche Art von Hardwarekonfiguration ist für die Feinabstimmung erforderlich?
    Die Hardwareanforderungen hängen von der gewählten Feinabstimmungsmethode und der Modellgröße ab. Für kleine Modelle wie das SFT-LoRA-Feintuning Qwen3-1.7B ist eine Consumer-Grafikkarte (z. B. NVIDIA 3090 oder 4090) in der Regel ausreichend. Für eine vollständige Feinabstimmung oder das Training größerer Modelle sind jedoch mehr Videospeicher und Rechenressourcen erforderlich.
  3. Was ist der Unterschied zwischen ORPO- und PPO-Feinabstimmung?
    PPO ist ein klassischer Reinforcement-Learning-Algorithmus, der ein unabhängiges, vorab trainiertes Belohnungsmodell benötigt, um den Output des Modells zu bewerten, und der Trainingsprozess ist relativ komplex. ORPO hingegen ist ein neuerer Algorithmus, der kein zusätzliches Belohnungsmodell benötigt und das Modell direkt anhand der Präferenzdaten optimiert, wodurch der Prozess einfacher und effizienter wird.
  4. Kann ich meinen eigenen Datensatz verwenden?
    Ganz und gar. Sie müssen Ihren Datensatz nur in Projekte einteilendata/Verzeichnis, und übergeben Sie dann beim Ausführen der Trainingsskripte die--dataset_pathGeben Sie einfach Ihren Dateipfad mit dem Parameter an.
0Lesezeichen
0Gelobt

Empfohlen

Sie können keine AI-Tools finden? Versuchen Sie es hier!

Geben Sie einfach das Schlüsselwort Barrierefreiheit Bing-SucheDer Bereich KI-Tools auf dieser Website bietet eine schnelle und einfache Möglichkeit, alle KI-Tools auf dieser Website zu finden.

Neue Veröffentlichungen

zurück zum Anfang

de_DEDeutsch