🔎Fine-Tuning von Embedding-Modellen mit Unsloth-Anleitung

Lerne, wie du Embedding-Modelle einfach mit Unsloth fein-tunen kannst.

Das Fine-Tuning von Embedding-Modellen kann die Retrieval- und RAG-Performance bei bestimmten Aufgaben deutlich verbessern. Es stimmt die Vektoren des Modells auf Ihre Domäne und die Art von „Ähnlichkeit“ ab, die für Ihren Anwendungsfall wichtig ist, was die Suche, RAG, Clusterbildung und Empfehlungen auf Ihren Daten verbessert.

Beispiel: Die Schlagzeilen „Google startet Pixel 10“ und „Qwen veröffentlicht Qwen3“ könnten als ähnlich eingebettet werden, wenn Sie beide nur als „Tech“ kennzeichnen, aber nicht als ähnlich, wenn Sie semantische Suche betreiben, weil es um unterschiedliche Dinge geht. Fine-Tuning hilft dem Modell, die „richtige“ Art von Ähnlichkeit für Ihren Anwendungsfall zu erzeugen, Fehler zu reduzieren und die Ergebnisse zu verbessern.

Unslotharrow-up-right unterstützt jetzt das Training von Embedding-, Klassifikations-, BERT-, Reranker- Modellen ~1,8–3,3x schneller mit 20 % weniger Speicher und 2x längerem Kontext als andere Flash-Attention-2-Implementierungen – ohne Genauigkeitsverlust. EmbeddingGemma-300M läuft mit nur 3 GB VRAM. Sie können Ihr trainiertes Modell überallverwenden: transformers, LangChain, Ollama, vLLM, llama.cpp usw.

Unsloth verwendet SentenceTransformersarrow-up-right zur Unterstützung kompatibler Modelle wie Qwen3-Embedding, BERT und mehr. Selbst wenn es kein Notebook oder keinen Upload gibt, wird es dennoch unterstützt.

Wir haben kostenlose Fine-Tuning-Notebooks erstellt, mit 3 Hauptanwendungsfällen:

  • All-MiniLM-L6-v2: erzeugen Sie kompakte, domänenspezifische Satz-Embeddings für semantische Suche, Retrieval und Clustering, abgestimmt auf Ihre eigenen Daten.

  • tomaarsen/miriad-4.4M-split: betten Sie medizinische Fragen und biomedizinische Fachartikel ein, um hochwertige medizinische semantische Suche und RAG zu ermöglichen.

  • electroglyph/technical: Bedeutung und semantische Ähnlichkeit in technischem Text besser erfassen (Dokumente, Spezifikationen und Engineering-Diskussionen).

Sie können die restlichen unserer hochgeladenen Modelle in unserer Sammlung hierarrow-up-right.

Ein großes Dankeschön an den Unsloth-Mitwirkenden electroglypharrow-up-right, dessen Arbeit wesentlich dazu beigetragen hat, dies zu unterstützen. Sie können electroglyphs benutzerdefinierte Modelle auf Hugging Face hierarrow-up-right.

🦥 Unsloth-Funktionen

  • LoRA/QLoRA oder vollständiges Fine-Tuning für Embeddings, ohne dass Sie Ihre Pipeline neu schreiben müssen

  • Beste Unterstützung für ausschließlich Encoder- SentenceTransformer- Modelle (mit einer modules.json)

  • Cross-Encoder-Modelle werden auch im Fallback-Pfad als korrekt trainierend bestätigt

  • Diese Version unterstützt außerdem transformers v5

Es gibt eingeschränkte Unterstützung für Modelle ohne modules.json (wir weisen automatisch standardmäßige SentenceTransformers Pooling-Module zu). Wenn Sie etwas Benutzerdefiniertes machen (benutzerdefinierte Köpfe, nicht standardmäßiges Pooling), überprüfen Sie die Ausgaben wie das Verhalten des gepoolten Embeddings noch einmal.

Einige Modelle benötigten benutzerdefinierte Ergänzungen, wie MPNet oder DistilBERT, wurden durch das Einfügen von Gradient Checkpointing in die transformers Modelle aktiviert.

🛠️ Fine-Tuning-Workflow

Der neue Fine-Tuning-Ablauf konzentriert sich auf FastSentenceTransformer.

Wichtigste Speicher-/Push-Methoden:

  • save_pretrained() Speichert LoRA-Adapter in einem lokalen Ordner

  • save_pretrained_merged() Speichert das zusammengeführte Modell in einem lokalen Ordner

  • push_to_hub() Lädt LoRA-Adapter zu Hugging Face hoch

  • push_to_hub_merged() Lädt das zusammengeführte Modell zu Hugging Face hoch

Und ein sehr wichtiges Detail: Das Laden für die Inferenz erfordert for_inference=True

from_pretrained() ist ähnlich wie Lackers andere schnelle Klassen, mit einer Ausnahme:

  • Um ein Modell für die Inferenz mit FastSentenceTransformerzu laden, müssen Sie übergeben: for_inference=True

Ihre Inferenz-Ladevorgänge sollten also so aussehen:

Für die Hugging-Face-Autorisierung gilt: Wenn Sie

innerhalb derselben virtuellen Umgebung vor dem Aufruf der Hub-Methoden ausführen, dann:

  • push_to_hub() und push_to_hub_merged() ist kein Token-Argument erforderlich.

✅ Inferenz und überall einsetzbar!

Ihr feinabgestimmtes Unsloth-Modell kann mit allen wichtigen Tools verwendet und bereitgestellt werden: transformers, LangChain, Weaviate, sentence-transformers, Text Embeddings Inference (TEI), vLLM und llama.cpp, benutzerdefinierte Embedding-API, pgvector, FAISS/Vektordatenbanken und jedes RAG-Framework.

Es gibt kein Lock-in, da das feinabgestimmte Modell später lokal auf Ihr eigenes Gerät heruntergeladen werden kann.

📊 Unsloth-Benchmarks

Zu den Vorteilen von Unsloth gehört die Geschwindigkeit beim Fine-Tuning von Embeddings! Wir zeigen, dass wir durchgehend 1,8 bis 3,3x schneller bei einer Vielzahl von Embedding-Modellen und bei unterschiedlichen Sequenzlängen von 128 bis 2048 und darüber hinaus sind.

EmbeddingGemma-300M QLoRA läuft mit nur 3 GB VRAM und LoRA läuft mit 6 GB VRAM.

Unten sehen Sie unsere Unsloth-Benchmarks in einer Heatmap vs. SentenceTransformers + Flash Attention 2 (FA2) für 4-Bit QLoRA. Für 4-Bit QLoRA ist Unsloth 1,8x bis 2,6x schneller:

Unten sehen Sie unsere Unsloth-Benchmarks in einer Heatmap vs. SentenceTransformers + Flash Attention 2 (FA2) für 16-Bit LoRA. Für 16-Bit 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 aufgeführt):

Die meisten gängigen Modellearrow-up-right werden bereits unterstützt. Wenn es ein ausschließlich Encoder-basiertes Modell gibt, das Sie gerne hätten und das noch nicht unterstützt wird, können Sie gern ein GitHub-Issuearrow-up-right dazu erstellen.

Zuletzt aktualisiert

War das hilfreich?