⚠️Fehlerbehebung & FAQs

Tipps zur Lösung von Problemen und häufig gestellte Fragen.

Wenn Sie weiterhin Probleme mit Versionen oder Abhängigkeiten haben, verwenden Sie bitte unser Docker-Image welches alles vorinstalliert enthält.

circle-check

Feinabstimmung eines neuen Modells, das von Unsloth nicht unterstützt wird?

Unsloth funktioniert mit jedem Modell, das von transformersunterstützt wird. Wenn ein Modell nicht in unseren Uploads vorhanden ist oder nicht sofort läuft, wird es in der Regel trotzdem 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 Feinabstimmungs-Skript setzen. Hier ein Beispiel mit DeepSeek-OCR:

Das Ausführen in Unsloth funktioniert gut, aber nach dem Export und dem Ausführen auf anderen Plattformen sind die Ergebnisse schlecht

Manchmal kann es 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, die Ergebnisse schlecht sind oder Sie Kauderwelsch bzw. endlose/unendliche Generierungen erhalten oder wiederholte Ausgaben.

  • Die häufigste Ursache für diesen Fehler ist die Verwendung einer inkorrekten Chat-Vorlage. Es ist entscheidend, dieselbe Chat-Vorlage zu verwenden, die beim Training des Modells in Unsloth verwendet wurde und später, wenn Sie es in einem anderen Framework wie llama.cpp oder Ollama ausführen. Beim Inferencing aus einem gespeicherten Modell ist es wichtig, die korrekte Vorlage anzuwenden.

  • Es kann auch daran liegen, dass Ihre Inferenz-Engine ein unnötiges "Start der Sequenz"-Token hinzufügt (oder im Gegenteil dessen Fehlen), also prüfen Sie bitte beide Hypothesen!

  • Verwenden Sie unsere konversationellen Notebooks, um die Chat-Vorlage zu erzwingen - das behebt die meisten Probleme.

Speichern in GGUF / vLLM 16bit stürzt ab

Sie können versuchen, die maximale GPU-Nutzung 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 z. B. auf 0,5, um 50 % des maximalen GPU-Speichers oder weniger zu verwenden. Dies kann OOM-Abstürze beim Speichern reduzieren.

Wie speichere ich manuell in GGUF?

Speichern Sie Ihr Modell zuerst in 16bit via:

Kompilieren Sie llama.cpp aus dem Quellcode wie unten:

Speichern Sie dann das Modell in F16:

Warum ist Q8_K_XL langsamer als Q8_0 GGUF?

Auf Mac-Geräten scheint BF16 langsamer als F16 zu sein. Q8_K_XL wandelt einige Schichten in BF16 hoch (upcasts), was die Verlangsamung erklärt. Wir ändern aktiv unseren Konvertierungsprozess, um F16 als Standard für Q8_K_XL zu verwenden, um Leistungseinbußen zu reduzieren.

Wie man Evaluation durchführt

Um die Evaluation in Ihrem Trainingslauf einzurichten, müssen Sie zuerst Ihr Dataset in einen Trainings- und einen Testsplit aufteilen. Sie sollten immer die Auswahl des Datasets mischen, andernfalls ist Ihre Evaluation falsch!

Dann können wir die Trainingsargumente so einstellen, dass die Evaluation aktiviert wird. Erinnerung: Evaluation kann sehr, sehr langsam sein, besonders wenn Sie eval_steps = 1 setzen, was bedeutet, dass Sie bei jedem einzelnen Schritt evaluieren. Wenn Sie das tun, versuchen Sie, die Größe des eval_dataset auf z. B. 100 Zeilen oder so zu reduzieren.

Evaluationsschleife – Out of Memory oder Absturz.

Ein häufiges Problem bei OOM ist, dass Sie Ihre Batch-Größe zu hoch gesetzt haben. Setzen Sie sie niedriger als 2, um weniger VRAM zu verwenden. Verwenden Sie außerdem fp16_full_eval=True um für die Evaluation float16 zu verwenden, was den Speicherbedarf halbiert.

Teilen Sie zuerst Ihr Trainingsdataset in einen Trainings- und einen Testsplit. Setzen Sie die Trainer-Einstellungen für die Evaluation auf:

Dies verhindert 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 Feinabstimmungs-/Trainingslauf stoppen möchten, weil der Evaluationsverlust nicht sinkt, können Sie Early Stopping verwenden, das den Trainingsprozess beendet. Verwenden Sie EarlyStoppingCallback.

Wie üblich richten Sie Ihren Trainer und Ihren Evaluations-Datensatz ein. Das Folgende wird verwendet, um den Trainingslauf zu stoppen, wenn der eval_loss (der Evaluationsverlust) sich nach etwa 3 Schritten nicht verringert.

Wir fügen dann den Callback hinzu, der ebenfalls angepasst werden kann:

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

Download bleibt bei 90 bis 95% hängen

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

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

RuntimeError: CUDA error: device-side assert triggered

Neustarten und alles ausführen, aber setzen Sie dies ganz am Anfang, bevor irgendein Unsloth-Import erfolgt. Bitte melden Sie außerdem so schnell wie möglich einen Bug, danke!

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

Das bedeutet, dass Ihre Verwendung von train_on_responses_only für dieses spezielle Modell falsch ist. train_on_responses_only ermöglicht es Ihnen, die Nutzerfrage zu maskieren und Ihr Modell zu trainieren, die Assistenten-Antwort mit höherer Gewichtung auszugeben. Es ist bekannt, dass dies die Genauigkeit um 1% oder mehr steigert. Siehe unser LoRA-Hyperparameter-Leitfaden für weitere Details.

Für Modelle vom Typ Llama 3.1, 3.2, 3.3 verwenden Sie bitte Folgendes:

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

Unsloth ist langsamer als erwartet?

Wenn Ihre Geschwindigkeit anfangs langsamer erscheint, liegt das wahrscheinlich daran, dass torch.compile typischerweise ~5 Minuten (oder länger) benötigt, um sich aufzuwärmen und die Kompilierung abzuschließen. 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:

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

Wenn das Problem jedoch weiterhin besteht, melden Sie bitte so schnell wie möglich einen Bug!

NotImplementedError: Es wird eine UTF-8-Locale benötigt. ANSI erhalten

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

Führen Sie in einer neuen Zelle Folgendes aus:

Unsloth zitieren

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

Um die Nutzung unseres Github-Pakets oder unserer Arbeit im Allgemeinen zu zitieren:

Zuletzt aktualisiert

War das hilfreich?