In den vorherigen Schritten Ihrer Retrieval-Augmented Generation (RAG)-Lösung teilen Sie Ihre Dokumente in Blöcke auf und bereicherten die Blöcke. In diesem Schritt generieren Sie Einbettungen für diese Blöcke und alle Metadatenfelder, für die Sie Vektorsuchen durchführen möchten.
Dieser Artikel ist Teil einer Reihe. Lesen Sie die Einführung.
Eine Einbettung ist eine mathematische Darstellung eines Objekts, z. B. Text. Wenn ein neurales Netzwerk trainiert wird, werden viele Darstellungen eines Objekts erstellt. Jede Darstellung verfügt über Verbindungen zu anderen Objekten im Netzwerk. Eine Einbettung ist wichtig, da sie die semantische Bedeutung des Objekts erfasst.
Die Darstellung eines Objekts verfügt über Verbindungen zu Darstellungen anderer Objekte, sodass Sie Objekte mathematisch vergleichen können. Das folgende Beispiel zeigt, wie Einbettungen semantische Bedeutung und Beziehungen zwischeneinander erfassen:
embedding (king) - embedding (man) + embedding (woman) = embedding (queen)
Einbettungen werden unter Verwendung der Begriffe Ähnlichkeit und Distanz miteinander verglichen. Das folgende Raster zeigt einen Vergleich von Einbettungen.
In einer RAG-Lösung betten Sie die Benutzerabfrage häufig ein, indem Sie dasselbe Einbettungsmodell wie Ihre Blöcke verwenden. Anschließend durchsuchen Sie Ihre Datenbank nach relevanten Vektoren, um die semantisch relevanten Blöcke zurückzugeben. Der ursprüngliche Text der relevanten Blöcke wird als Erdungsdaten an das Sprachmodell übergeben.
Anmerkung
Vektoren stellen die semantische Bedeutung von Text auf eine Weise dar, die einen mathematischen Vergleich ermöglicht. Sie müssen die Blöcke bereinigen, damit die mathematische Nähe zwischen Vektoren ihre semantische Relevanz genau widerspiegelt.
Die Bedeutung des Einbettungsmodells
Das ausgewählte Einbettungsmodell kann sich erheblich auf die Relevanz Ihrer Vektorsuchergebnisse auswirken. Sie müssen das Vokabular des Einbettungsmodells berücksichtigen. Jedes Einbettungsmodell wird mit einem bestimmten Vokabular trainiert. Beispielsweise beträgt die Vokabulargröße des BERT-Modells etwa 30.000 Wörter.
Das Vokabular eines Einbettungsmodells ist wichtig, da es Wörter behandelt, die nicht in seinem Vokabular auf einzigartige Weise sind. Wenn sich ein Wort nicht im Vokabular des Modells befindet, berechnet es dennoch einen Vektor dafür. Dazu unterteilen viele Modelle die Wörter in Unterwörter. Sie behandeln die Unterwörter als unterschiedliche Token oder aggregieren die Vektoren für die Unterwörter, um eine einzelne Einbettung zu erstellen.
Beispielsweise könnte das Wort Histamin sich möglicherweise nicht im Vokabular eines Einbettungsmodells befinden. Das Wort Histamin hat eine semantische Bedeutung als eine Chemische, die Ihr Körper loslässt, was Allergiesymptome verursacht. Das Einbettungsmodell enthält nicht Histamin. Es kann also das Wort in Unterworte unterteilen, die sich in seinem Vokabular befinden, wie z. B. seine, taund mine.
Die semantischen Bedeutungen dieser Unterbegriffe sind weit von der Bedeutung Histamin. Die einzel- oder kombinierten Vektorwerte der Unterworte führen zu schlechteren Vektorübereinstimmungen im Vergleich dazu, ob Histamin- im Vokabular des Modells waren.
Auswählen eines Einbettungsmodells
Ermitteln Sie das richtige Einbettungsmodell für Ihren Anwendungsfall. Berücksichtigen Sie die Überlappung zwischen dem Vokabular des Einbettungsmodells und den Wörtern Ihrer Daten, wenn Sie ein Einbettungsmodell auswählen.
Ermitteln Sie zunächst, ob Domänenspezifische Inhalte vorliegen. Sind Ihre Dokumente beispielsweise für einen Anwendungsfall, Ihre Organisation oder eine Branche spezifisch? Eine gute Möglichkeit, die Domänenspezifität zu ermitteln, besteht darin, zu überprüfen, ob Sie die Entitäten und Schlüsselwörter in Ihren Inhalten im Internet finden können. Wenn möglich, kann auch ein allgemeines Einbettungsmodell.
Allgemeiner oder nicht domänenspezifischer Inhalt
Wenn Sie ein allgemeines Einbettungsmodell auswählen, beginnen Sie mit dem Hugging Face Leaderboard. Erhalten Sie up-to-Datumseinbettungsmodellbewertungen. Bewerten Sie, wie die Modelle mit Ihren Daten arbeiten, und beginnen Sie mit den toprangigen Modellen.
Domänenspezifische Inhalte
Ermitteln Sie bei domänenspezifischen Inhalten, ob Sie ein domänenspezifisches Modell verwenden können. Ihre Daten könnten sich beispielsweise in der biomedizinischen Domäne befinden, sodass Sie das BioGPT-Modellverwenden können. Dieses Sprachmodell wird in einer großen Sammlung biomedizinischer Literatur vorgeschmiert. Sie können es für biomedizinischen Textbergbau und -generation verwenden. Wenn domänenspezifische Modelle verfügbar sind, bewerten Sie, wie diese Modelle mit Ihren Daten funktionieren.
Wenn Sie kein domänenspezifisches Modell haben oder das domänenspezifische Modell nicht gut funktioniert, können Sie ein allgemeines Einbettungsmodell mit Ihrem domänenspezifischen Vokabular optimieren.
Wichtig
Für jedes von Ihnen ausgewählte Modell müssen Sie überprüfen, ob die Lizenz Ihren Anforderungen entspricht, und das Modell bietet die erforderliche Sprachunterstützung.
Auswerten von Einbettungsmodellen
Um ein Einbettungsmodell auszuwerten, visualisieren Sie die Einbettungen, und bewerten Sie den Abstand zwischen der Frage und den Blockvektoren.
Visualisieren von Einbettungen
Sie können Bibliotheken wie t-SNE verwenden, um die Vektoren für Ihre Blöcke und Ihre Frage in einem X-Y-Diagramm zu zeichnen. Sie können dann bestimmen, wie weit die Blöcke voneinander und von der Frage entfernt sind. Das folgende Diagramm zeigt Blockvektoren, die gezeichnet werden. Die beiden Pfeile in der Nähe eines anderen stellen zwei Blockvektoren dar. Der andere Pfeil stellt einen Fragevektor dar. Sie können diese Visualisierung verwenden, um zu verstehen, wie weit die Frage aus den Blöcken stammt.
Zwei Pfeile zeigen, um Punkte naheeinander zu zeichnen, und ein anderer Pfeil zeigt einen Zeichnungspunkt weit von den anderen beiden entfernt.
Berechnen von Einbettungsabständen
Mit einer programmgesteuerten Methode können Sie bewerten, wie gut Ihr Einbettungsmodell mit Ihren Fragen und Blöcken funktioniert. Berechnen Sie den Abstand zwischen den Fragevektoren und den Blockvektoren. Sie können die Euklidische Entfernung oder die Manhattan-Entfernung verwenden.
Einbetten von Wirtschaft
Wenn Sie ein Einbettungsmodell auswählen, müssen Sie durch einen Kompromiss zwischen Leistung und Kosten navigieren. Große Einbettungsmodelle haben in der Regel eine bessere Leistung bei Benchmark-Datasets. Aber die erhöhte Leistung erhöht Kosten. Große Vektoren benötigen mehr Platz in einer Vektordatenbank. Außerdem benötigen sie mehr Rechenressourcen und Zeit zum Vergleichen von Einbettungen. Kleine Einbettungsmodelle weisen in der Regel eine geringere Leistung auf denselben Benchmarks auf. Sie benötigen weniger Speicherplatz in Der Vektordatenbank und weniger Rechen- und Zeitaufwand zum Vergleichen von Einbettungen.
Wenn Sie Ihr System entwerfen, sollten Sie die Kosten für die Einbettung in Bezug auf Speicher, Berechnung und Leistung berücksichtigen. Sie müssen die Leistung der Modelle durch Experimentieren überprüfen. Die öffentlich verfügbaren Benchmarks sind hauptsächlich akademische Datasets und gelten möglicherweise nicht direkt für Ihre Geschäftsdaten und Anwendungsfälle. Abhängig von den Anforderungen können Sie die Leistung gegenüber Kosten bevorzugen oder einen Kompromiss von gut genug Leistung für niedrigere Kosten akzeptieren.