Heute freut sich Unsloth, die neue Untuch Die R1-Studie von DeepSeek zeigt einen "Moment der Erleuchtung", in dem R1-Zero selbstständig lernt, mehr Denkzeit ohne menschliches Feedback durch Group Relative Policy Optimisation (GRPO) zuzuweisen.
Unsloth hat den gesamten GRPO-Prozess so verbessert, dass er 80% weniger VRAM verbraucht als Hugging Face + FA2, was es den Benutzern ermöglicht, R1-Zeros "Epiphanie-Moment" mit nur 7 GB VRAM unter Verwendung von Qwen2.5 (1.5B) nachzustellen.
Testen Sie das kostenlose GRPO-Notizbuch von Unsloth:Llama 3.1 (8B) auf Colab
GRPO-Notebooks für andere Modelle wie Phi-4 finden Sie in der Dokumentation von Unsloth unter
💡 Wichtige Details
- Mit 15 GB VRAM kann Unsloth jedes Modell mit bis zu 15 B Parametern (z. B. Llama 3.1 (8 B), Phi-4 (14 B), Mistral (7 B) oder Qwen2.5 (7 B)) in ein Schlussfolgerungsmodell umwandeln
- Mindestanforderungen: Trainieren Sie Ihre eigenen Inferenzmodelle lokal mit nur 7 GB VRAM.
- Das brillante Team von Tiny-Zero hat bewiesen, dass Benutzer ihre eigenen Erleuchtungsmomente mit Qwen2.5 (1.5B) erreichen können - aber das erforderte 2 A100 GPUs (160GB VRAM). Jetzt, mit Unsloth, können Benutzer denselben Epiphanie-Moment mit nur einer 7GB VRAM-GPU erreichen!
- Zuvor unterstützte GRPO nur die vollständige Feinabstimmung, aber Unsloth macht sie für QLoRA und LoRA verfügbar
- Beachten Sie, dass dies keine Feinabstimmung ist DeepSeek des R1-Destillationsmodells und wird auch nicht anhand von R1-Destillationsdaten abgestimmt (die bereits von Unsloth unterstützt werden). Es handelt sich um die Umwandlung eines Standardmodells in ein vollwertiges Inferenzmodell unter Verwendung von GRPO.
- Zu den Anwendungsfällen für GRPO gehören: Wenn ein Nutzer ein maßgeschneidertes Modell mit Anreizen erstellen möchte (z. B. für Recht, Medizin usw.), kann GRPO dabei helfen.
Wenn ein Benutzer Eingabe- und Ausgabedaten hat (z.B. Fragen und Antworten), aber keine Gedankenkette oder einen Denkprozess, kann GRPO auf magische Weise den Denkprozess für den Benutzer erstellen! + mehr
🤔 GRPO + "Epiphanie"-Momente
Die DeepSeek-Forscher beobachteten beim Training von R1-Zero mit reinem Verstärkungslernen (Reinforcement Learning, RL) einen "Erleuchtungsmoment". Das Modell lernte, seine Denkzeit zu verlängern, indem es seinen ursprünglichen Ansatz ohne menschliche Anleitung oder vordefinierte Anweisungen neu bewertete.
In einem Testbeispiel, obwohl Unsloth Phi-4 in 100 Schritten nur mit GRPO trainierte, sind die Ergebnisse bereits offensichtlich. Das Modell ohne GRPO hat nicht an das Token gedacht, während das mit GRPO trainierte Modell an das Token gedacht hat und auch die richtige Antwort hatte.
Diese Magie kann mit GRPO reproduziert werden, einem RL-Algorithmus, der Antworten effizient optimiert, ohne dass eine Wertfunktion erforderlich ist, im Gegensatz zur Proximal Policy Optimisation (PPO), die auf eine Wertfunktion angewiesen ist. In den Unsloth-Notizbüchern verwendet Unsloth GRPO, um ein Modell zu trainieren, mit dem Ziel, ihm zu ermöglichen, autonom seine eigenen Selbstbewertungs- und Suchfähigkeiten zu entwickeln - und so einen Mini-Moment der Erleuchtung zu schaffen.
Wie es funktioniert:
- Das Modell erzeugt Antwortgruppen.
- Jede Antwort wird auf der Grundlage der Korrektheit oder einer anderen Metrik bewertet, die durch eine Belohnungsfunktion und nicht durch das Belohnungsmodell des Big Language Model erstellt wird.
- Berechnen Sie die durchschnittliche Punktzahl für die Gruppe.
- Die Punktzahlen für jede Antwort wurden mit dem Gruppendurchschnitt verglichen.
- Das Modell wurde verbessert, um Antworten mit höherer Punktzahl zu unterstützen.
Nehmen wir zum Beispiel an, dass Unsloth das Modell lösen will:
Was ist 1+1? >> Gedankenkette/Berechnungsprozess >> Die Antwort ist 2.
Was ist 2+2? >> Gedankenkette/Berechnungsprozess >> Die Antwort ist 4.
Anfangs muss man eine Menge Daten sammeln, um den Rechenprozess/die Gedankenkette zu füllen. Aber GRPO (der von DeepSeek verwendete Algorithmus) oder andere RL-Algorithmen können das Modell so anleiten, dass es automatisch seine Denkfähigkeit unter Beweis stellt und Argumentationspfade erstellt. Stattdessen muss Unsloth gute Belohnungsfunktionen oder Validatoren erstellen. Wenn es zum Beispiel die richtige Antwort findet, gibt es 1 Punkt. Wenn einige Wörter falsch geschrieben sind, ziehe 0,1 Punkte ab. Und so weiter! Unsloth kann viele Funktionen zur Belohnung dieses Prozesses bereitstellen.
🦥 GRPO in Unsloth
Wenn Sie GRPO mit Unsloth lokal verwenden, installieren Sie bitte auch "pip install diffusers", da es eine Abhängigkeit ist.
Warten Sie mindestens 300 Schritte, bis die Belohnung tatsächlich ansteigt, und verwenden Sie die neueste Version von vLLM. Denken Sie daran, dass Unsloths Beispiel auf Colab nur in einer Stunde trainiert wurde, daher sind die Ergebnisse nicht gut. Um gute Ergebnisse zu erzielen, muss der Benutzer mindestens 12 Stunden lang trainieren (so funktioniert GRPO), aber bedenken Sie, dass dies nicht zwingend erforderlich ist, da der Benutzer jederzeit aufhören kann.
Es wird empfohlen, GRPO auf Modelle mit mindestens 1,5B Parametern anzuwenden, um Thinking Token korrekt zu erzeugen, da kleinere Modelle möglicherweise nicht in der Lage sind, es zu erzeugen. Wenn der Benutzer ein Basismodell verwendet, stellen Sie sicher, dass der Benutzer die Chat-Vorlage hat. Die Verfolgung von Trainingsverlusten für GRPO ist jetzt direkt in Unsloth integriert, sodass keine externen Tools wie wandb mehr benötigt werden.
Zusätzlich zur GRPO-Unterstützung unterstützte Unsloth in der Folge auch Online-DPO, PPO und RLOO! Unten finden Sie ein Diagramm, in dem der VRAM-Verbrauch von Unsloths Online-DPO mit dem von Hugging Face + FA2 verglichen wird.
✨ Unsloth x vLLM
20x höherer Durchsatz und 50% VRAM-Einsparungen:
Die Benutzer können jetzt vLLM direkt im Feinabstimmungs-Stack verwenden, was einen höheren Durchsatz ermöglicht und es den Benutzern erlaubt, gleichzeitig Feinabstimmungen vorzunehmen und Schlussfolgerungen über das Modell zu ziehen! Dynamische 4-Bit-Quantisierung mit Unsloths Llama 3.2 3B Instruct auf 1 A100 40GB, geschätzt 4000 Token / s oder so. Auf einem 16GB Tesla T4 (mit kostenlosen Colab GPU), erhalten Benutzer 300 Token / s.
Unsloth eliminiert auch auf magische Weise die doppelte Speichernutzung, wenn vLLM und Unsloth gleichzeitig geladen werden, und spart so etwa 5 GB für Llama 3.1 8B und 3 GB für Llama 3.2 3B (Dank an Boris für die Inspiration.) Unsloth hat ursprünglich Llama 3.3 70B auf einer 48 GB GPU feinabgestimmt Anweisung: Llama 3.3 70B benötigt 40 GB VRAM. Ohne die Beseitigung der doppelten Speichernutzung würde Unsloth >= 80 GB VRAM benötigen, wenn sowohl Unsloth als auch vLLM geladen werden.
Aber mit Unsloth können Benutzer immer noch eine Feinabstimmung vornehmen und die Vorteile der schnellen Inferenz in VRAMs von bis zu 48 GB nutzen! Um Fast Inference zu nutzen, installieren Sie zunächst vllm und instanziieren Unsloth mit fast_inference:
pip install unsloth vllm von unsloth import FastLanguageModel model, tokenizer = FastLanguageModel.from_pretrained( model_name = "unsloth/Llama-3.2-3B-Instruct", fast_inference = True, fast_inference = True, FastLanguageModel. fast_inference = True, ) model.fast_generate(["Hallo!"])
vLLM-Entdeckung in Unsloth
- vLLM kann jetzt Unsloths dynamische 4-Bit-Quantisierung laden. Wie Unsloths 1,58-Bit Dynamic R1 GGUF hat auch Unsloth gezeigt, dass die dynamische Quantisierung einiger Schichten auf 4-Bit und einiger Schichten auf 16-Bit die Genauigkeit erheblich verbessert, während das Modell klein bleibt.
- Unsloth wählt automatisch mehrere Parameter aus, um RAM, VRAM-Effizienz und maximalen Durchsatz zu berücksichtigen (z. B. # vorbesetzte Token in Blöcken, # maximale Sequenzen usw.) Unsloth aktiviert standardmäßig -O3 in vLLM und aktiviert Präfix-Caching Unsloth hat festgestellt, dass Flashinfer auf älteren GPUs tatsächlich 10% langsamer ist. Der FP8 KV-Cache macht es 10% langsamer, verdoppelt aber das Durchsatzpotenzial.
- Unsloth ermöglicht es, LoRA in vLLM zu laden, indem das Zustandswörterbuch geparst wird, anstatt es von der Festplatte zu laden - dies kann Ihr GRPO-Training 1,5x schneller machen. Ein aktives Forschungsgebiet ist, wie man den LoRA-Adapter direkt in vLLM bearbeiten kann (Unsloth weiß noch nicht wie). Dies könnte eine enorme Beschleunigung bedeuten, da Unsloth jetzt unnötigerweise GPU-Daten verschiebt.
- vLLM kann seltsamerweise zufällige VRAM-Spitzen aufweisen, insbesondere während der Stapelgenerierung. unsloth hat eine Stapelgenerierungsfunktion hinzugefügt, um Speicherspitzen zu reduzieren.