Version 2.0.1 Datum: 30.06.2024
Modellbeschreibung
Das Modell slate.30m.english.rtrvr ist ein Standard-Satzumwandlungsmodell, das auf Bi-Codierern basiert. Das Modell erzeugt eine Einbettung für eine gegebene Eingabe, z. B. eine Anfrage, eine Passage, ein Dokument usw. Auf einer hohen Ebene wird unser Modell so trainiert, dass es die Kosinusähnlichkeit zwischen zwei Eingabetexten maximiert, z. B. zwischen Text A (Abfragetext) und Text B (Passagetext), was zu den Satzeinbettungen q und p führt. Diese Satzeinbettungen können dann anhand der Kosinusähnlichkeit verglichen werden.
Abb. 1. Bi-Encoder-Einbettungsmodell für die Suche
Basis-Sprachmodell
Das zugrunde liegende Sprachmodell (LM) für unsere Einbettungen ist “slate.30m.english”. Es hat die gleiche Architektur wie ein small-RoBERTa Transformatormodell (6 Schichten) und hat ~30 Millionen Parameter und eine Einbettungsdimension von 384. Konkret wurde “slate.30m.english” aus “slate.125m.english” (früher WatBERT) destilliert. Unser endgültiges Modell heißt slate.30m.english.rtrvr. Beachten Sie das Suffix am Ende, das besagt, dass wir die zugrunde liegende Modellarchitektur für abrufbasierte Aufgaben feinabstimmen.
Trainingsalgorithmus
Die meisten Einbettungsmodelle, die entweder dem neuesten Stand der Technik entsprechen oder an der Spitze der MTEB-Rangliste stehen, werden in der Regel in drei Stufen trainiert:
- Aufgabenspezifisches (abrufbasiertes) Vortraining
- Aufgabenspezifische Feinabstimmung der verarbeiteten Paare
- Feinabstimmung bei überwachten Paaren. Wir verfolgen einen ähnlichen Ansatz, indem wir die letzten beiden Stufen zu einem einzigen Feinabstimmungsschritt zusammenfassen.
slate.30m.english.rtrvr wird durch Destillation aus dem Modell “slate.125m.english.rtrvr-06-30-2024” im Feinabstimmungsschritt erzeugt (Einzelheiten zum größeren Lehrermodell finden Sie an dieser Stelle). Knowledge Distillation überträgt das Wissen eines leistungsstarken Lehrermodells in ein kleineres Schülermodell, indem es die Wahrscheinlichkeitsverteilung des Schülers so weit wie möglich an die des Lehrers anpasst, wodurch sich die Leistung des Schülers im Vergleich zur alleinigen Feinabstimmung verbessert.
Aufgabenspezifische Vorschulung
In dieser Phase wird das RetroMAE verwendet, um unser zugrunde liegendes LM stärker auf das Abrufen von Informationen auszurichten. Wir initialisieren unser Basis-LM mit “slate.30m.english” und fahren mit RetroMAE Pre-Training fort, unter Verwendung der Daten in Tabelle 1. Anstatt nur die harten Etiketten aus den Daten zu verwenden, destillieren wir hier auch die Vorhersagen des RetroMAE-Encoders, der von slate.125m.english.rtrvr verwendet wird. Unsere Hyper-Parameter sind: Lernrate: 2e-5, Anzahl der Schritte: 435000, GPUs: 8 A100 (80GB) GPUs.
Hinweis: Dies ist unser Basis-LM für die folgenden 2 Stufen.
Destillation mit unbeaufsichtigten und beaufsichtigten Paaren
Wir verwenden einen Bi-Encoder-Rahmen für das Training eines Einbettungsmodells, wie in Abbildung 1 dargestellt. Wir initialisieren mit dem RetroMAE vortrainierten Modell und verwenden anschließend Knowledge Distillation mit <Frage, Passage> Textpaaren unter Verwendung eines kontrastiven Verlusts mit In-Batch-Negativen. Die Wissensdestillation trainiert die Wahrscheinlichkeitsverteilung des Schülers so, dass sie derjenigen des Lehrers möglichst nahe kommt. Im Zusammenhang mit Retriever-Modellen ist die Ausgabeverteilung die Ähnlichkeitsbewertung zwischen Textpaaren. Konkret wird für jedes Satzpaar < Frage, Passage> die Verteilung der Bewertungen des Lehrers zwischen den Einbettungen von Frage und Passage, d.h. die Kosinusähnlichkeit zwischen den Einbettungen, auf den Schüler übertragen.
Der Lehrer, der für die Destillation verwendet wird, ist das Modell "slate.125m.english.rtrvr”, das auf denselben Daten trainiert wurde, wie unten erwähnt. Das Lehrermodell wurde mit Hilfe eines mehrstufigen Paradigmas trainiert, bei dem ein RetroMAE-Modell in der Pre-Trainingsphase unüberwachte Daten sah und dann in einigen hundert Schritten an saubereren, mit Mining- oder Gold-Labels versehenen Daten feinabgestimmt wurde. Um die Robustheit über verschiedene Datensätze hinweg zu gewährleisten, wurde dieses fein abgestimmte Modell dann mit einem anderen Modell fusioniert, das mit anderen Hyperparametern auf denselben Daten trainiert wurde. Weitere Einzelheiten entnehmen Sie bitte der slate.125m.english.rtrvr Modellkarte.
Der Ablauf des Wissenstransfers ist in Abbildung 2 dargestellt.
Abbildung 2: Wissensdestillation
Wie im Abschnitt Trainingsdaten angegeben, werden große Paare aus verschiedenen Bereichen ermittelt. Darüber hinaus haben wir auch hochwertige Paare für die Retrieval-Aufgabe auf den folgenden Datensätzen: SQuAD, Natural Questions, Specter, Stack Exchange (Title, Body) Paare, S2ORC, SearchQA, HotpotQA, Fever, und Miracl. Zu diesen überwachten Datensätzen gehören auch Hard Negatives, die mit einer früheren Version des Modells slate.125m.english.rtrvr gewonnen wurden. Darüber hinaus generieren wir Triples synthetisch, um qualitativ hochwertige Frage-Antwort-Paare, Faktenüberprüfungen usw. mit `Mixtral-8x7B-Instruct-v0.1` zu erstellen. Um eine bessere Leistung für IBM-spezifische Anwendungsfälle zu bieten, werden auch Paare einbezogen, die aus IBM-Software-Support-Daten und IBM Docs erstellt wurden.
Die Hyperparameter der Destillation sind: Lernrate rate:7e-4, Anzahl der Schritte: 500000, effektive Batchgröße: 2048, GPUs: 4 A100_80GB GPUs.
Trainingsdaten
Dataset | Passagen |
---|---|
Wikipedia, | 36396918 |
Bücher Corpus | 3401308 |
Stack Exchange | 15999837 |
Dataset | Paare |
---|---|
SPECTER-Zitat-Drillinge | 684100 |
Stack Exchange Doppelte Fragen (Titel) | 304525 |
Stack Exchange Doppelte Fragen (Körper) | 250519 |
Stack Exchange Doppelte Fragen (Titel+Körper) | 250460 |
Natürliche Fragen (NQ) | 100231 |
SQuAD2.0 | 87599 |
PAQ-Paare (Frage-Antwort-Paare) | 64371441 |
Stack Exchange (Titel, Antwort) Paare | 4067139 |
Stack Exchange (Titel, Körper) Paare | 23978013 |
Stack Exchange (Titel+Körper, Antwort) Paare | 187195 |
S2ORC Zitatpaare (Titel) | 52603982 |
S2ORC (Titel, Zusammenfassung) | 41769185 |
S2ORC_citations_abstracts | 52603982 |
WikiAnswers Doppelte Fragenpaare | 77427422 |
SearchQA | 582261 |
HotpotQA | 85000 |
Fieber | 109810 |
Arxiv | 2358545 |
Wikipedia, | 20745403 |
PubMed | 20000000 |
Miracl En Pairs | 9016 |
DBPedia Titel-Körper-Paare | 4635922 |
Synthetisch: Abfrage-Wikipedia-Passage | 1879093 |
Synthetisch: Überprüfung der Fakten | 9888 |
IBM: Software-Unterstützung verdreifacht sich | 40290 |
IBM: IBM Docs (Title-Body) | 474637 |
IBM: IBM Unterstützung (Title-Body) | 1049949 |
Verwendung
# make sure you’ve sentence transformers installed
pip install -U sentence-transformers
from sentence_transformers import SentenceTransformer, util
model = SentenceTransformer('path_to_slate_model')
input_queries = [
' Who made the song My achy breaky heart? ',
'summit define']
input_passages = [
" Achy Breaky Heart is a country song written by Don Von Tress. Originally titled Don't Tell My Heart and performed by The Marcy Brothers in 1991. ",
"Definition of summit for English Language Learners. : 1 the highest point of a mountain : the top of a mountain. : 2 the highest level. : 3 a meeting or series of meetings between the leaders of two or more governments."]
query_embeddings = model.encode(input_queries)
passage_embeddings = model.encode(input_passages)
print(util.cos_sim(query_embeddings, passage_embeddings))
Die maximale Sequenzlänge dieses Modells beträgt 512 Token.
Evaluierung
Grundlinien
Um einen fairen Vergleich anzustellen, vergleichen wir mit den folgenden Grundlinien:
BM25 (ein traditionelles Modell auf der Grundlage von tf-idf)
ELSER (ein kommerzieller Suchalgorithmus, der von Elastic bereitgestellt wird)
all-MiniLM-l6-v2: ein beliebtes Open-Source-Satzumwandlungsmodell. Dieses Modell hat die gleiche Architektur wie slate.30m.english.rtrvr, wurde aber auf mehr Daten ohne kommerzielle Lizenzen trainiert. Weitere Einzelheiten entnehmen Sie bitte der Modellkarte von Huggingface
E5-base: ein neueres Open-Source-Transformationsmodell mit sehr guter Leistung beim BEIR-Benchmark. Dies ist ein Basismodell, das dieselbe Architektur hat wie slate.125m.english.rtrvr. [Referenz: Wang et.al., 2022: Texteinbettungen durch schwach überwachtes kontrastives Vortraining]. Modellkarte Huggingface
E5-small: ein kleineres Modell innerhalb der quelloffenen E5 Familie. Die Einbettungsgröße dieses Modells entspricht der von slate.30m.rtrvr (384), allerdings hat es 12 Schichten und ist daher größer und etwas langsamer. [Referenz: Wang et.al., 2022: Texteinbettungen durch schwach überwachtes kontrastives Vortraining]. Modellkarte Huggingface
BGE-base: ein aktuelles Open-Source-Transformationsmodell mit einer der besten Leistungen beim BEIR-Benchmark für die Einbettungsgröße 768. Modellkarte Huggingface
BGE-small: ein neueres Open-Source-Transformationsmodell mit einer der besten Leistungen beim BEIR-Benchmark für die Einbettungsgröße 384. Modellkarte Huggingface
Wir vergleichen auch die Leistung dieser Modelle mit den älteren Versionen der Schiefermodelle, slate.125m.english.rtrvr-012024 und slate.30m.english.rtrvr-012024.
Unser Bewertungsmaßstab: BEIR(MTEBs Registerkarte für die Suche)
Der BEIR-Benchmark besteht aus 15 Open-Source-Retrievalaufgaben, die in einer Zero-Shot-Situation bewertet werden. BEIR konzentrierte sich auf Diversität und umfasste neun verschiedene Abrufaufgaben: Faktenüberprüfung, Vorhersage von Zitaten, Suche nach doppelten Fragen, Suche nach Argumenten, Suche nach Nachrichten, Beantwortung von Fragen, Suche nach Tweets, biologisch-medizinische IR und Suche nach Entitäten. Darüber hinaus enthält es Datensätze aus verschiedenen Textdomänen, Datensätze, die breite Themen (wie Wikipedia) und spezialisierte Themen (wie COVID-19 Publikationen) abdecken, verschiedene Texttypen (Nachrichtenartikel vs. Tweets), Datensätze unterschiedlicher Größe (3.6k - 15M Dokumente) und Datensätze mit unterschiedlichen Abfragelängen (durchschnittliche Abfragelänge zwischen 3 und 192 Wörtern) und Dokumentlängen (durchschnittliche Dokumentlänge zwischen 11 und 635 Wörtern). BEIR verwendet die Metrik Normalized Cumulative Discount Gain (insbesondere nDCG@10) zur Bewertung.
Lang NQ
Long NQ ist ein IBM-Datensatz, der für die Evaluierung der gesamten RAG-Pipeline entwickelt wurde und auf einer Teilmenge des NaturalQuestions-Datensatzes basiert. Das Dev-Set umfasst 300 beantwortbare Fragen mit einem Korpus von 178.891 Passagen aus 2.345 Wikipedia-Dokumenten. Long NQ bietet auch goldene Wikipedia-Passagen, die für jede Frage relevant sind. Beim Abruf besteht die Aufgabe darin, für jede Frage die relevante Gold-Passage aus dem Korpus zu erhalten.
Ergebnisse
Modell | BEIR-15 (NDCG@10) |
---|---|
BM25 | 42.02 |
ELSER | 49.01 |
all-miniLM-L6-v2 | 41.95 |
ES-small-v2 | 49.04 |
ES-base-v2 | 50.29 |
BGE-klein | 51.68 |
BGE-Basis | 53.25 |
slate.30m.english.rtrvr 01.20.2024 | 46.91 |
slate.125m.english.rtrvr-01.20.2024 | 49.37 |
slate.30m.english.rtrvr 06.30.2024 | 49.06 |
slate.125m.english.rtrvr-06.30.2024 | 51.26 |
Abb. 3 Leistungsvergleich beim BEIR-Benchmark (Registerkarte MTEB-Abfrage)
Modell | LONGNQ (NDCG@10) |
---|---|
all-miniLM-L6-v2 | 58.10 |
BGE-klein | 59.33 |
BGE-Basis | 61.29 |
ES-small-v2 | 61.88 |
ES-base-v2 | 63.80 |
slate.30m.english.rtrvr 01.20.2024 | 59.94 |
slate.125m.english.rtrvr-01.20.2024 | 65.01 |
slate.30m.english.rtrvr 06.30.2024 | 62.07 |
slate.125m.english.rtrvr-06.30.2024 | 66.80 |
Abbildung 4. Leistungsvergleich mit dem Long NQ-Datensatz
Laufzeitleistung
Die Leistungslaufzeit wird anhand einer Aufgabe mit 466 Abfragen zur Neueinstufung gemessen. Für jede Abfrage werden die top-100-Passagen, die mit BM25 ermittelt wurden, neu gereiht und die durchschnittliche Zeit für alle Abfragen angegeben. Die Neueinstufung wurde auf einer A100_40GB GPU durchgeführt.
Modell | Zeit/Abfrage |
---|---|
all-miniLM-L6-v2 | 0.18 sec |
E5-small | 0.33 sec |
E5-base | 0.75 sec |
BGE-klein | 0.34 sec |
BGE-Basis | 0.75 sec |
slate.125m.english.rtrvr | 0.71 sec |
slate.30m.english.rtrvr | 0.20 sec |