⚠️Fehlerbehebung & FAQs

Tipps zur Behebung von Problemen und häufig gestellte Fragen.

Falls Sie weiterhin Probleme mit Versionen oder Abhängigkeiten haben, verwenden Sie bitte unser Docker-Image das bereits alles vorinstalliert hat.

Ein neues Modell feinabstimmen, das von Unsloth nicht unterstützt wird?

Unsloth funktioniert mit jedem Modell, das unterstützt wird von transformers. Wenn ein Modell nicht in unseren Uploads enthalten ist oder nicht sofort funktioniert, wird es in der Regel dennoch unterstützt; einige neuere Modelle benötigen aufgrund unserer Optimierungen möglicherweise nur eine kleine manuelle Anpassung.

In den meisten Fällen können Sie die Kompatibilität aktivieren, indem Sie trust_remote_code=True in Ihrem Fine-Tuning-Skript setzen. Hier ist ein Beispiel mit DeepSeek-OCR:

Die Ausführung in Unsloth funktioniert gut, aber nach dem Export und der Ausführung auf anderen Plattformen sind die Ergebnisse schlecht

Es kann vorkommen, dass Ihr Modell in Unsloth läuft und gute Ergebnisse liefert, aber wenn Sie es auf einer anderen Plattform wie Ollama oder vLLM verwenden, sind die Ergebnisse schlecht oder Sie erhalten Kauderwelsch, endlose/unendliche Generierungen oder wiederholte Ausgaben.

  • Die häufigste Ursache für diesen Fehler ist die Verwendung eines falschen Chat-Templates. Es ist wichtig, dass Sie dasselbe Chat-Template verwenden, das beim Training des Modells in Unsloth und später bei der Ausführung in einem anderen Framework wie llama.cpp oder Ollama verwendet wurde. Beim Inferenzieren mit einem gespeicherten Modell ist es entscheidend, das richtige Template anzuwenden.

  • Es könnte auch daran liegen, dass Ihre Inferenz-Engine ein unnötiges Token für den „Anfang der Sequenz“ hinzufügt (oder umgekehrt fehlt dieses). Prüfen Sie also beide Hypothesen!

  • Verwenden Sie unsere Konversations-Notebooks, um das Chat-Template zu erzwingen – das behebt die meisten Probleme.

Speichern nach GGUF / vLLM 16bit stürzt ab

Sie können versuchen, die maximale GPU-Auslastung während des Speicherns zu verringern, indem Sie maximum_memory_usage.

Der Standardwert ist model.save_pretrained(..., maximum_memory_usage = 0.75). Reduzieren Sie ihn beispielsweise auf 0.5, um 50 % des maximalen GPU-Speichers zu nutzen, oder noch weniger. Das kann OOM-Abstürze während des Speicherns reduzieren.

Wie speichere ich manuell nach GGUF?

Speichern Sie Ihr Modell zunächst in 16bit über:

Kompilieren Sie llama.cpp aus dem Quellcode wie unten gezeigt:

Speichern Sie dann das Modell als F16:

Warum ist Q8_K_XL langsamer als Q8_0 GGUF?

Auf Mac-Geräten scheint BF16 langsamer zu sein als F16. Q8_K_XL wandelt einige Schichten auf BF16 hoch, daher die Verlangsamung. Wir ändern derzeit aktiv unseren Konvertierungsprozess, um F16 als Standardwahl für Q8_K_XL festzulegen und Leistungseinbußen zu reduzieren.

Wie führt man die Evaluation durch

Um die Evaluation in Ihrem Trainingslauf einzurichten, müssen Sie zuerst Ihren Datensatz in einen Trainings- und einen Test-Split aufteilen. Sie sollten die Auswahl des Datensatzes immer mischen, sonst ist Ihre Evaluation falsch!

Dann können wir die Trainingsargumente so setzen, dass die Evaluation aktiviert wird. Hinweis: Die Evaluation kann sehr, sehr langsam sein, besonders wenn Sie eval_steps = 1 setzen, was bedeutet, dass Sie bei jedem einzelnen Schritt evaluieren. Falls ja, versuchen Sie, die Größe von eval_dataset auf beispielsweise 100 Zeilen oder so zu reduzieren.

Evaluation Loop - Kein Speicher mehr oder Absturz.

Ein häufiges Problem bei OOM ist, dass Sie die Batch-Größe zu hoch gesetzt haben. Setzen Sie sie auf unter 2, um weniger VRAM zu verwenden. Verwenden Sie außerdem fp16_full_eval=True um float16 für die Evaluation zu verwenden, wodurch der Speicherbedarf um die Hälfte reduziert wird.

Teilen Sie zunächst Ihren Trainingsdatensatz in einen Train- und einen Test-Split auf. Setzen Sie dann die Trainer-Einstellungen für die Evaluation auf:

Dies verursacht keine OOMs und macht es etwas schneller. Sie können auch bf16_full_eval=True für bf16-Maschinen verwenden. Standardmäßig sollte Unsloth diese Flags seit Juni 2025 standardmäßig gesetzt haben.

Wie mache ich Early Stopping?

Wenn Sie den Fine-Tuning-/Trainingslauf beenden möchten, weil die Evaluationsverluste nicht sinken, können Sie Early Stopping verwenden, das den Trainingsprozess stoppt. Verwenden Sie EarlyStoppingCallback.

Wie gewohnt richten Sie Ihren Trainer und Ihren Evaluationsdatensatz ein. Das Folgende wird verwendet, um den Trainingslauf zu stoppen, wenn der eval_loss (der Evaluationsverlust) nach etwa 3 Schritten nicht sinkt.

Dann fügen wir den Callback hinzu, der ebenfalls angepasst werden kann:

Dann trainieren Sie das Modell wie gewohnt über trainer.train() .

Der Download bleibt bei 90 bis 95 % hängen

Wenn Ihr Modell lange bei 90, 95 % hängen bleibt, können Sie einige schnelle Download-Prozesse deaktivieren, um Downloads zu synchronisieren und mehr Fehlermeldungen auszugeben.

Verwenden Sie einfach UNSLOTH_STABLE_DOWNLOADS=1 vor jedem Unsloth-Import.

RuntimeError: CUDA-Fehler: device-seitiger Assert ausgelöst

Starten Sie neu und führen Sie alles erneut aus, aber setzen Sie dies ganz am Anfang vor jedem Unsloth-Import. Bitte reichen Sie außerdem umgehend einen Bug-Report ein, danke!

Alle Labels in Ihrem Datensatz sind -100. Die Trainingsverluste werden alle 0 sein.

Das bedeutet, dass Ihre Verwendung von train_on_responses_only für dieses spezielle Modell nicht korrekt ist. train_on_responses_only erlaubt es Ihnen, die Benutzerfrage zu maskieren und Ihr Modell darauf zu trainieren, die Antwort des Assistenten mit höherer Gewichtung auszugeben. Es ist bekannt, dass dies die Genauigkeit um 1 % oder mehr erhöht. Siehe unseren Leitfaden zu LoRA-Hyperparametern für weitere Details.

Für Llama-3.1-, 3.2-, 3.3-Modelle verwenden Sie bitte das Folgende:

Für Gemma 2, 3. 3n-Modelle verwenden Sie bitte das Folgende:

Ist Unsloth langsamer als erwartet?

Wenn Ihre Geschwindigkeit anfangs langsamer erscheint, liegt das wahrscheinlich daran, dass torch.compile typischerweise etwa 5 Minuten (oder länger) zum Aufwärmen und Abschließen der Kompilierung benötigt. Stellen Sie sicher, dass Sie den Durchsatz messen nach es vollständig geladen ist, da Unsloth bei längeren Läufen deutlich schneller sein sollte.

Zum Deaktivieren verwenden Sie:

Einige Gewichte von Gemma3nForConditionalGeneration wurden nicht aus dem Modell-Checkpoint initialisiert

Dies ist ein kritischer Fehler, da dies bedeutet, dass einige Gewichte nicht korrekt geparst wurden, was zu falschen Ausgaben führt. Dies kann normalerweise durch ein Upgrade von Unsloth behoben werden

pip install --upgrade --force-reinstall --no-cache-dir --no-deps unsloth unsloth_zoo

Dann aktualisieren Sie transformers und timm:

pip install --upgrade --force-reinstall --no-cache-dir --no-deps transformers timm

Falls das Problem jedoch weiterhin besteht, reichen Sie bitte umgehend einen Bug-Report ein!

NotImplementedError: Ein UTF-8-Locale ist erforderlich. ANSI erhalten

Siehe https://github.com/googlecolab/colabtools/issues/3409

Führen Sie in einer neuen Zelle das Folgende aus:

Unsloth zitieren

Wenn Sie die Verwendung unserer Modell-Uploads zitieren, verwenden Sie bitte die folgende BibTeX. Dies gilt für Qwen3-30B-A3B-GGUF Q8_K_XL:

Wenn Sie die Verwendung unseres Github-Pakets oder unserer Arbeit im Allgemeinen zitieren möchten:

Zuletzt aktualisiert

War das hilfreich?