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.
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:
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.
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:
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.
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.
Wir haben Folgendes festgestellt:
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.
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.
Hier sind einige der detaillierteren technischen Details unserer synthetischen Datengenerierung, des Finetunings und der Evaluierung.
Wir haben zwei Open-Source-Embedding-Modelle finetuned:
Anschließend haben wir sie mit text-embedding-3-large von OpenAI verglichen.
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.
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).
Wir haben Sweeps durchgeführt über:
Das gesamte Finetuning wurde mit den Open-Source-Bibliotheken mosaicml/composer, mosaicml/llm-foundry und mosaicml/streaming auf der Databricks-Plattform durchgeführt.
Finetuning ist nur ein Ansatz zur Verbesserung der Vektorsuch- und RAG-Performance; wir listen im Folgenden einige zusätzliche Ansätze auf.
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:
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.
|
Größe |
FinanceBench Recall@10 |
ManufactQA Recall@10 |
DocsQA Recall@10 |
||||
|
Baseline |
Finetuned |
Baseline |
Finetuned |
Originalbeitrag | |||