Direkt zum Hauptinhalt

Verbesserung von Retrieval und RAG durch Feinabstimmung von Einbettungsmodellen

Improving Retrieval and RAG with Embedding Model Finetuning

Summary

  • Wie die Feinabstimmung von Einbettungsmodellen die Genauigkeit von Retrieval und RAG verbessert
  • Wichtige Leistungssteigerungen über Benchmarks hinweg
  • Erste Schritte mit der Feinabstimmung von Einbettungen auf Databricks

Finetuning von Embedding-Modellen für besseres Retrieval und RAG

TL;DR: Das Finetuning eines Embedding-Modells auf In-Domain-Daten kann die Genauigkeit von Vektorsuche und Retrieval-Augmented Generation (RAG) deutlich verbessern. Mit Databricks ist es einfach, Embedding-Modelle zu finetunen, bereitzustellen und zu evaluieren, um das Retrieval für Ihren spezifischen Anwendungsfall zu optimieren – unter Nutzung synthetischer Daten ohne manuelle Kennzeichnung.

Warum das wichtig ist: Wenn Ihr Vektorsuch- oder RAG-System nicht die besten Ergebnisse liefert, ist das Finetuning eines Embedding-Modells eine einfache, aber leistungsstarke Möglichkeit, die Leistung zu steigern. Ob es sich um Finanzdokumente, Wissensdatenbanken oder interne Code-Dokumentationen handelt, Finetuning kann Ihnen relevantere Suchergebnisse und bessere nachgelagerte LLM-Antworten liefern.

Was wir herausgefunden haben: Wir haben zwei Embedding-Modelle auf drei Enterprise-Datensätzen finetuned und getestet und dabei deutliche Verbesserungen bei den Retrieval-Metriken (Recall@10) und der nachgelagerten RAG-Performance festgestellt. Das bedeutet, dass Finetuning ein Game-Changer für die Genauigkeit sein kann, ohne dass eine manuelle Kennzeichnung erforderlich ist, da nur Ihre vorhandenen Daten genutzt werden.

Möchten Sie das Finetuning von Embeddings ausprobieren? Wir bieten eine Referenzlösung, die Ihnen den Einstieg erleichtert. Databricks vereinfacht vector search, RAG, Reranking und Embedding-Finetuning. Wenden Sie sich an Ihren Databricks Account Executive oder Solutions Architect, um weitere Informationen zu erhalten.

In-Domain-Finetuning kann die Retrieval-Genauigkeit verbessern
Abbildung 1: In-Domain-Finetuning kann die Retrieval-Genauigkeit verbessern. Recall@10 für zwei Embedding-Modelle über drei Datensätze hinweg. „FT“ = bestes finetuned Modell nach einem Hyperparameter-Sweep. Das OpenAI-Modell ist text-embedding-3-large.

Warum Embeddings finetunen?

Embedding-Modelle sind die Grundlage für moderne Vektorsuch- und RAG-Systeme. Ein Embedding-Modell transformiert Text in Vektoren und ermöglicht so das Auffinden relevanter Inhalte anhand der Bedeutung und nicht nur anhand von Schlüsselwörtern. Standardmodelle sind jedoch nicht immer für Ihre spezifische Domäne optimiert – hier kommt das Finetuning ins Spiel.

Das Finetuning eines Embedding-Modells auf domänenspezifischen Daten hilft auf verschiedene Weise:

  • Verbesserung der Retrieval-Genauigkeit: Benutzerdefinierte Embeddings verbessern die Suchergebnisse, indem sie auf Ihre Daten abgestimmt werden.
  • Verbesserung der RAG-Performance: Besseres Retrieval reduziert Halluzinationen und ermöglicht fundiertere generative KI-Antworten.
  • Verbesserung von Kosten und Latenz: Ein kleineres, finetuned Modell kann manchmal größere, teure Alternativen übertreffen.

In diesem Blogbeitrag zeigen wir, dass das Finetuning eines Embedding-Modells eine effektive Möglichkeit ist, die Retrieval- und RAG-Performance für aufgabenspezifische Enterprise-Anwendungsfälle zu verbessern.

Ergebnisse: Finetuning funktioniert

Wir haben zwei Embedding-Modelle (gte-large-en-v1.5 und e5-mistral-7b-instruct) auf synthetischen Daten finetuned und sie auf drei Datensätzen aus unserer Domain Intelligence Benchmark Suite (DIBS) (FinanceBench, ManufactQA und Databricks DocsQA) evaluiert. Anschließend haben wir sie mit text-embedding-3-large von OpenAI verglichen.

Wichtigste Erkenntnisse:

  • Finetuning verbesserte die Retrieval-Genauigkeit über alle Datensätze hinweg und übertraf oft die Baseline-Modelle deutlich.
  • Finetuned Embeddings schnitten in vielen Fällen genauso gut oder besser ab als Reranking, was zeigt, dass sie eine starke eigenständige Lösung sein können.
  • Besseres Retrieval führte zu einer besseren RAG-Performance auf FinanceBench, was die End-to-End-Vorteile demonstriert.

Retrieval-Performance

Nach dem Vergleich über drei Datensätze hinweg stellten wir fest, dass das Embedding-Finetuning die Genauigkeit bei zwei dieser Datensätze verbessert. Abbildung 1 zeigt, dass für FinanceBench und ManufactQA finetuned Embeddings ihre Basisversionen übertrafen und manchmal sogar das API-Modell von OpenAI (hellgrau) schlugen. Für Databricks DocsQA übertrifft die Genauigkeit von text-embedding-3-large von OpenAI jedoch alle finetuned Modelle. Es ist möglich, dass dies daran liegt, dass das Modell mit öffentlicher Databricks-Dokumentation trainiert wurde. Dies zeigt, dass Finetuning zwar effektiv sein kann, aber stark vom Trainingsdatensatz und der Evaluierungsaufgabe abhängt.

Finetuning vs. Reranking

Anschließend verglichen wir die obigen Ergebnisse mit API-basiertem Reranking unter Verwendung von voyageai/rerank-1 (Abbildung 2). Ein Reranker nimmt typischerweise die Top-k-Ergebnisse, die von einem Embedding-Modell abgerufen wurden, ordnet diese Ergebnisse nach Relevanz für die Suchanfrage neu und gibt dann die neu geordneten Top-k zurück (in unserem Fall k=30, gefolgt von k=10). Dies funktioniert, weil Reranker in der Regel größere, leistungsfähigere Modelle als Embedding-Modelle sind und auch die Interaktion zwischen der Abfrage und dem Dokument auf eine ausdrucksstärkere Weise modellieren.

In-Domain-Finetuning kann mit Reranking konkurrieren
Abbildung 2: In-Domain-Finetuning kann mit Reranking konkurrieren. Recall@10 über drei Datensätze hinweg. „FT“ = bestes finetuned Modell nach einem Hyperparameter-Sweep. Der in allen diesen Experimenten verwendete Reranker ist voyageai/rerank-1 ohne Finetuning. Der hier verwendete „openai“-Retriever ist text-embedding-3-large.

Wir haben Folgendes festgestellt:

  • Finetuning von gte-large-en-v1.5 übertraf das Reranking auf FinanceBench und ManufactQA.
  • text-embedding-3-large von OpenAI profitierte vom Reranking, aber die Verbesserungen waren bei einigen Datensätzen geringfügig.
  • Für Databricks DocsQA hatte Reranking einen geringeren Einfluss, aber Finetuning brachte dennoch Verbesserungen, was die datensatzabhängige Natur dieser Methoden zeigt.

Reranker verursachen in der Regel zusätzliche Inferenzlatenz und -kosten pro Abfrage im Vergleich zu Embedding-Modellen. Sie können jedoch mit vorhandenen Vektordatenbanken verwendet werden und in einigen Fällen kostengünstiger sein als das erneute Einbetten von Daten mit einem neueren Embedding-Modell. Die Wahl, ob ein Reranker verwendet werden soll, hängt von Ihrer Domäne und Ihren Latenz-/Kostenanforderungen ab.

Finetuning hilft der RAG-Performance

Für FinanceBench führte ein besseres Retrieval direkt zu einer besseren RAG-Genauigkeit in Kombination mit GPT-4o (siehe Anhang). In Domänen, in denen das Retrieval bereits stark war, wie z. B. Databricks DocsQA, brachte Finetuning jedoch nicht viel – was hervorhebt, dass Finetuning am besten funktioniert, wenn das Retrieval ein klarer Engpass ist.

5-FACHER LEADER

Gartner®: Databricks als Leader für Cloud-Datenbanken

Wie wir Embedding-Modelle finetuned und evaluiert haben

Hier sind einige der detaillierteren technischen Details unserer synthetischen Datengenerierung, des Finetunings und der Evaluierung.

Embedding-Modelle

Wir haben zwei Open-Source-Embedding-Modelle finetuned:

  • gte-large-en-v1.5 ist ein beliebtes Embedding-Modell, das auf BERT Large basiert (434 Millionen Parameter, 1,75 GB). Wir haben uns entschieden, Experimente mit diesem Modell aufgrund seiner moderaten Größe und der offenen Lizenzierung durchzuführen. Dieses Embedding-Modell wird derzeit auch in der Databricks Foundation Model API unterstützt.
  • e5-mistral-7b-instruct gehört zu einer neueren Klasse von Embedding-Modellen, die auf starken LLMs aufbauen (in diesem Fall Mistral-7b-instruct-v0.1). Obwohl e5-mistral-7b-instruct in den Standard-Embedding-Benchmarks wie MTEB besser abschneidet und längere und differenziertere Prompts verarbeiten kann, ist es viel größer als gte-large-en-v1.5 (da es 7 Milliarden Parameter hat) und etwas langsamer und teurer im Betrieb ist.

Anschließend haben wir sie mit text-embedding-3-large von OpenAI verglichen.

Evaluierungsdatensätze

Wir haben alle Modelle auf den folgenden Datensätzen aus unserer Domain Intelligence Benchmark Suite (DIBS) evaluiert: FinanceBench, ManufactQA und Databricks DocsQA.

Datensatz Beschreibung # Abfragen # Korpus
FinanceBench Fragen zu SEC 10-K-Dokumenten, die von menschlichen Experten erstellt wurden. Das Retrieval erfolgt über einzelne Seiten aus einer Obermenge von 360 SEC 10-K-Einreichungen. 150 53.399
ManufactQA Fragen und Antworten, die aus öffentlichen Foren eines Herstellers von elektronischen Geräten stammen. 6.787 6.787
Databricks DocsQA Fragen, die auf öffentlich verfügbarer Databricks-Dokumentation basieren und von Databricks-Experten erstellt wurden. 139 7.561

Wir geben Recall@10 als unsere wichtigste Retrieval-Metrik an; diese misst, ob sich das korrekte Dokument in den Top 10 der abgerufenen Dokumente befindet.

Der Goldstandard für die Qualität von Embedding-Modellen ist der MTEB-Benchmark, der Retrieval-Aufgaben wie BEIR sowie viele andere Nicht-Retrieval-Aufgaben umfasst. Während Modelle wie gte-large-en-v1.5 und e5-mistral-7b-instruct in MTEB gut abschneiden, waren wir neugierig, wie sie bei unseren internen Enterprise-Aufgaben abschneiden würden.

Trainingsdaten

Wir haben separate Modelle auf synthetischen Daten trainiert, die auf jeden der oben genannten Benchmarks zugeschnitten sind:

Trainingssatz Beschreibung # Eindeutige Stichproben
Synthetisches FinanceBench Abfragen, die aus 2.400 SEC 10-K-Dokumenten generiert wurden ~6.000
Synthetisches Databricks Docs QA Abfragen, die aus öffentlicher Databricks-Dokumentation generiert wurden. 8.727
ManufactQA Abfragen, die aus PDFs der Elektronikfertigung generiert wurden 14.220

Um den Trainingssatz für jede Domäne zu generieren, haben wir vorhandene Dokumente genommen und Beispielabfragen generiert, die auf dem Inhalt jedes Dokuments basieren, wobei wir LLMs wie Llama 3 405B verwendet haben. Die synthetischen Abfragen wurden dann von einem LLM-as-a-Judge (GPT4o) auf Qualität gefiltert. Die gefilterten Abfragen und die zugehörigen Dokumente wurden dann als kontrastive Paare für das Finetuning verwendet. Wir haben In-Batch-Negative für das kontrastive Training verwendet, aber das Hinzufügen von Hard-Negatives könnte die Leistung weiter verbessern (siehe Anhang).

Hyperparameter-Tuning

Wir haben Sweeps durchgeführt über:

  • Lernrate, Batch-Größe, Softmax-Temperatur
  • Epochenanzahl (1-3 Epochen getestet)
  • Variationen der Abfrage-Prompts (z. B. „Abfrage:“ vs. anweisungsbasierte Prompts)
  • Pooling-Strategie (Mean Pooling vs. Last Token Pooling)

Das gesamte Finetuning wurde mit den Open-Source-Bibliotheken mosaicml/composer, mosaicml/llm-foundry und mosaicml/streaming auf der Databricks-Plattform durchgeführt.

So verbessern Sie Vektorsuche und RAG auf Databricks

Finetuning ist nur ein Ansatz zur Verbesserung der Vektorsuch- und RAG-Performance; wir listen im Folgenden einige zusätzliche Ansätze auf.

Für besseres Retrieval:

  • Verwenden Sie ein besseres Embedding-Modell: Viele Benutzer arbeiten unwissentlich mit veralteten Embeddings. Allein der Austausch durch ein leistungsfähigeres Modell kann sofortige Gewinne bringen. Überprüfen Sie die MTEB-Bestenliste auf Top-Modelle.
  • Probieren Sie die hybride Suche aus: Kombinieren Sie Dense Embeddings mit schlüsselwortbasierter Suche, um die Genauigkeit zu verbessern. Databricks Vector Search macht dies mit einer Ein-Klick-Lösung einfach.
  • Verwenden Sie einen Reranker: Ein Reranker kann die Ergebnisse verfeinern, indem er sie basierend auf der Relevanz neu ordnet. Databricks bietet dies als integrierte Funktion (derzeit in Private Preview). Wenden Sie sich an Ihren Account Executive, um es auszuprobieren.

Für besseres RAG:

Beginnen Sie mit dem Finetuning auf Databricks

Das Finetuning von Embeddings kann ein einfacher Gewinn sein, um das Retrieval und RAG in Ihren KI-Systemen zu verbessern. Auf Databricks können Sie:

  • Embedding-Modelle auf skalierbarer Infrastruktur finetunen und bereitstellen.
  • Integrierte Tools für Vektorsuche, Reranking und RAG verwenden.
  • Schnell verschiedene Modelle testen, um herauszufinden, was für Ihren Anwendungsfall am besten funktioniert.

Sind Sie bereit, es auszuprobieren? Wir haben eine Referenzlösung entwickelt, um das Finetuning zu vereinfachen – wenden Sie sich an Ihren Databricks Account Executive oder Solutions Architect, um Zugriff zu erhalten.

Anhang

 

Größe

FinanceBench Recall@10

ManufactQA Recall@10

DocsQA Recall@10

Baseline

Finetuned

Baseline

Finetuned

Originalbeitrag

Verpassen Sie keinen Beitrag von Databricks

Abonnieren Sie unseren Blog und erhalten Sie die neuesten Beiträge direkt in Ihren Posteingang.