🔎Finetuning von Embedding-Modellen mit Unsloth - Anleitung
Lerne, wie man Embedding-Modelle ganz einfach mit Unsloth finetunt.
Feinabstimmung von Embedding-Modellen kann die Retrieval- und RAG-Leistung für spezifische Aufgaben erheblich verbessern. Sie richtet die Vektoren des Modells an Ihrer Domäne und der Art von „Ähnlichkeit“ aus, die für Ihren Anwendungsfall wichtig ist, was die Suche, RAG, Clusterbildung und Empfehlungen auf Ihren Daten verbessert.
Beispiel: Die Überschriften „Google launches Pixel 10“ und „Qwen releases Qwen3“ könnten als ähnlich eingebettet werden, wenn Sie beide einfach als „Tech“ kennzeichnen, aber nicht als ähnlich, wenn Sie semantische Suche durchführen, weil sie von unterschiedlichen Themen handeln. Feinabstimmung hilft dem Modell, die für Ihren Anwendungsfall „richtige“ Art von Ähnlichkeit zu erzeugen, wodurch Fehler reduziert und Ergebnisse verbessert werden.
Unsloth unterstützt jetzt das Training von Embeddings, Klassifikator, BERT, Reranker Modelle ~1,8–3,3x schneller mit 20% weniger Speicher und doppelt so langem Kontext im Vergleich zu anderen Flash Attention 2-Implementierungen - ohne Genauigkeitsverlust. EmbeddingGemma-300M funktioniert bereits mit nur 3GB VRAM. Sie können Ihr trainiertes Modell überall: transformers, LangChain, Ollama, vLLM, llama.cpp usw.
Unsloth verwendet SentenceTransformers um kompatible Modelle wie Qwen3-Embedding, BERT und mehr zu unterstützen. Auch wenn es kein Notebook oder Upload gibt, ist es trotzdem unterstützt.
Wir haben kostenlose Fine-Tuning-Notebooks erstellt, mit 3 Hauptanwendungsfällen:
All-MiniLM-L6-v2: erzeugen kompakte, domänenspezifische Satz-Embeddings für semantische Suche, Retrieval und Clustering, abgestimmt auf Ihre eigenen Daten.tomaarsen/miriad-4.4M-split: bettet medizinische Fragen und biomedizinische Arbeiten ein für qualitativ hochwertige medizinische semantische Suche und RAG.electroglyph/technical: erfasst Bedeutung und semantische Ähnlichkeit in technischem Text (Dokumente, Spezifikationen und technische Diskussionen) besser.
Sie können den Rest unserer hochgeladenen Modelle ansehen in unserer Sammlung hier.
Ein großes Dankeschön an den Unsloth-Mitwirkenden electroglyph, dessen Arbeit maßgeblich zur Unterstützung beigetragen hat. Sie können electroglyphs benutzerdefinierte Modelle auf Hugging Face ansehen hier.
🦥 Unsloth-Funktionen
LoRA/QLoRA oder vollständiges Fine-Tuning für Embeddings, ohne dass Sie Ihre Pipeline umschreiben müssen
Beste Unterstützung für Encoder-only
SentenceTransformerModelle (mit einermodules.json)Cross-Encoder-Modelle wurden bestätigt, dass sie sogar unter dem Fallback-Pfad ordnungsgemäß trainieren
Diese Veröffentlichung unterstützt außerdem
transformers v5
Es gibt eingeschränkte Unterstützung für Modelle ohne modules.json (wir weisen standardmäßig SentenceTransformers Pooling-Module zu). Wenn Sie etwas Eigenes machen (benutzerdefinierte Köpfe, nicht standardmäßiges Pooling), prüfen Sie doppelt die Ausgaben wie das Verhalten des gepoolten Embeddings.
Einige Modelle benötigten benutzerdefinierte Ergänzungen wie MPNet oder DistilBERT, die durch Einfügen von Gradient Checkpointing in das transformers Modelle.
🛠️ Fine-Tuning-Workflow
Der neue Fine-Tuning-Flow ist zentriert um FastSentenceTransformer.
Haupt-Speicher-/Push-Methoden:
save_pretrained()Speichert LoRA-Adapter in einen lokalen Ordnersave_pretrained_merged()Speichert das zusammengeführte Modell in einen lokalen Ordnerpush_to_hub()Schiebt LoRA-Adapter zu Hugging Facepush_to_hub_merged()Schiebt das zusammengeführte Modell zu Hugging Face
Und ein sehr wichtiges Detail: Das Laden für die Inferenz erfordert for_inference=True
from_pretrained() ist ähnlich zu Lackers anderen schnellen Klassen, mit einer Ausnahme:
Um ein Modell für Inference mit
FastSentenceTransformeraufrufen, müssen folgende Angaben gemacht werden:for_inference=True
Ihre Inferenz-Loads sollten also wie folgt aussehen:
Für Hugging Face-Autorisierung, falls Sie ausführen:
innerhalb desselben virtualenv bevor Sie die Hub-Methoden aufrufen, dann:
push_to_hub()undpush_to_hub_merged()ist kein Token-Argument erforderlich.
✅ Inferenz und Deployment überall!
Ihr feinabgestimmtes Unsloth-Modell kann mit allen großen Tools verwendet und bereitgestellt werden: transformers, LangChain, Weaviate, sentence-transformers, Text Embeddings Inference (TEI), vLLM und llama.cpp, benutzerdefinierte Embedding-APIs, pgvector, FAISS/Vektordatenbanken und jedes RAG-Framework.
Es gibt keine Bindung, da das feinabgestimmte Modell später lokal auf Ihrem eigenen Gerät heruntergeladen werden kann.
📊 Unsloth-Benchmarks
Zu Unsloths Vorteilen gehört Geschwindigkeit beim Embedding-Fine-Tuning! Wir zeigen, dass wir konsequent 1,8 bis 3,3x schneller für eine Vielzahl von Embedding-Modellen und bei unterschiedlichen Sequenzlängen von 128 bis 2048 und länger sind.
EmbeddingGemma-300M QLoRA funktioniert bereits mit nur 3GB VRAM und LoRA funktioniert mit 6GB VRAM.
Nachfolgend sind unsere Unsloth-Benchmarks in einer Heatmap gegenüber: SentenceTransformers + Flash Attention 2 (FA2) für 4bit QLoRA. Für 4bit QLoRA ist Unsloth 1,8x bis 2,6x schneller:

Nachfolgend sind unsere Unsloth-Benchmarks in einer Heatmap gegenüber: SentenceTransformers + Flash Attention 2 (FA2) für 16bit LoRA. Für 16bit LoRA ist Unsloth 1,2x bis 3,3x schneller:

🔮 Modellunterstützung
Hier sind einige beliebte Embedding-Modelle, die Unsloth unterstützt (nicht alle Modelle sind hier aufgelistet):
Die meisten gängigen Modelle werden bereits unterstützt. Wenn es ein Encoder-only-Modell gibt, das Sie möchten und das noch nicht unterstützt wird, können Sie gerne eine GitHub-Issue Anfrage dafür öffnen.
Zuletzt aktualisiert
War das hilfreich?

