IBM slate-125m-english-rtrvr musterkarte

Version 2.0.1 Datum: 30.06.2024

Modellbeschreibung

Das Modell slate.125m.english.rtrvr ist ein Standard-Satztransformationsmodell, das auf Bi-Encodern 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.

Diagramm, das den mit Slate kodierten Abfragetext mit dem kodierten Passagetext vergleicht

Abb. 1. Bi-Encoder-Einbettungsmodell für die Suche

Basis-Sprachmodell

Das zugrunde liegende Sprachmodell (LM) für unsere Einbettungen ist “slate.125m.english” Es hat die gleiche Architektur wie ein Transformatormodell RoBERTa-base (12 Schichten) und hat ~125 Millionen Parameter und eine Einbettungsdimension von 768. Genauer gesagt wurde slate.125m.english von “slate.125m.english” (früher WatBERT) feinabgestimmt. Unser endgültiges Modell heißt slate.125m.english.rtrvr. Das Suffix bedeutet, dass die zugrundeliegende Modellarchitektur für Retrieval-basierte Aufgaben fein abgestimmt wurde.

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:

  1. Aufgabenspezifisches (abrufbasiertes) Vortraining
  2. Aufgabenspezifische Feinabstimmung der verarbeiteten Paare
  3. Feinabstimmung bei überwachten Paaren.

Wir verfolgen den gleichen Ansatz und führen schließlich eine Modellfusion durch, indem wir die Gewichte der verschiedenen trainierten Modelle mitteln.

slate.125m.english.rtrvr wird durch "Modellfusion" erzeugt, d. h. durch Mittelwertbildung der Gewichte der folgenden Modelle, die beide stufenweise trainiert wurden, aber die folgenden Variationen aufweisen:

  • Modell 1: Feinabstimmung auf allen drei oben genannten Stufen
  • Modell 2 wurde aus einem Modell destilliert, das auf allen oben genannten Stufen feinabgestimmt wurde.

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.125m.english und fahren mit dem RetroMAE fort, wobei wir die Daten in Tabelle 1 verwenden. Unsere Hyper-Parameter sind: Lernrate: 2e-5, Anzahl der Schritte: 190000, GPUs: 24 A100 40GB.

Hinweis: Dies ist unser Basis-LM für die folgenden 2 Stufen.

Feinabstimmung mit unüberwachten Daten in großem Maßstab

Dieses Modell wird mit dem vortrainierten RetroMAE initialisiert und wie folgt trainiert.

Für das Training eines Einbettungsmodells verwenden wir einen Bi-Encoder-Rahmen, wie in Abbildung 1 dargestellt. Der von RetroMAE vortrainierte LM wird mit Textpaaren von " <query, passage> unter Verwendung eines kontrastiven Verlustziels feinabgestimmt. Wir ermitteln große Paare aus verschiedenen Bereichen, wie in Tabelle 2 angegeben. Das Modell wird mit verschiedenen Paaren trainiert, darunter Klassifizierungsaufgaben wie NLI (Natural Language Inference), bei denen eine Prämisse mit der entsprechenden Hypothese abgeglichen werden muss. Unsere Hyper-Parameter sind: Lernrate: 2e-4; Anzahl der Schritte: 35000; GPUs: 8 A100_80GB, effektive Stapelgröße: 16k Paare

Feinabstimmung mit überwachten Daten in kleinem Maßstab mit harten Negativen

Schließlich wird das Modell mit hochwertigen überwachten Trainingspaaren, die aus dem Hard Negative Mining stammen, für die Retrievalaufgabe feinabgestimmt. Die Kontrollpunkte des Zwischenmodells werden iterativ verwendet, um datensatzspezifische harte Negative zu ermitteln, die dann für die überwachte Feinabstimmung verwendet werden. Dieser Prozess zielt darauf ab, das Modell robuster zu machen, indem es aus seinen eigenen Fehlern lernt, und hilft bei der Stabilisierung mit viel kleineren Daten.

Zur Feinabstimmung des Modells verwenden wir eine Untergruppe von Datensätzen (die wir durch Validierungsexperimente mit einem zurückgehaltenen Datensatz gefunden haben), die im Abschnitt Trainingsdaten erwähnt werden: AllNLI, Squad, Stackexchange, NQ, HotpotQA, Fever und eine 5M Teilmenge von Specter, S2orc und WikiAnswers. Darüber hinaus generieren wir auch synthetisch Tripel, um qualitativ hochwertige Frage-Antwort-Paare, Faktenüberprüfungen usw. mit Hilfe von " Mixtral-8x7B-Instruct-v0.1 zu erstellen. Um eine bessere Leistung für IBM Anwendungsfälle zu erzielen, werden auch Paare aus IBM Software Support-Daten und IBM Docs einbezogen.

Die Hyperparameter für das Training sind: Lernrate: 2e-5; maximale Abfragelänge: 64; maximale Durchgangslänge: 512; maximale Schritte: 5000; effektive Stapelgröße: 512; GPUs: 1A100_80GB

Trainingsdaten

Tabelle 1. Pre-Training Daten
Dataset Passagen
Wikipedia, 36396918
Bücher Corpus 3401308
Stack Exchange 15999837
Tabelle 2. Unüberwachte und überwachte Feinabstimmungsdaten
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 Zitierpaare (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: IBM Docs (Titel-Körper) 474637
IBM: IBM (Titel-Körper) 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

Baselines

Um einen fairen Vergleich anzustellen, vergleichen wir mit den folgenden Grundlinien:

  1. BM25 (ein traditionelles Modell auf der Grundlage von tf-idf)

  2. ELSER (ein kommerzieller Suchalgorithmus, der von Elastic bereitgestellt wird)

  3. all-MiniLM-l6-v2: ein beliebtes Open-Source-Modell für Satzumwandler. 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

  4. E5-base: ein neueres Open-Source-Transformatormodell mit sehr guter Leistung beim BEIR-Benchmark. Dies ist ein Basismodell, das die gleiche Architektur wie slate.125m.english.rtrvr hat. [Referenz: Wang et.al., 2022: Texteinbettungen durch schwach überwachtes kontrastives Vortraining]. Modellkarte Huggingface

  5. E5-small: ein kleineres Modell innerhalb der E5. Die Einbettungsdimension 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

  6. BGE-base: ein aktuelles Open-Source-Transformationsmodell mit einer der besten Leistungen beim BEIR-Benchmark für die Einbettungsgröße 768. Modellkarte Huggingface

  7. BGE-small: ein aktuelles 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, bio-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 ) abdecken, unterschiedliche Texttypen (Nachrichtenartikel vs. Tweets), Datensätze unterschiedlicher Größe3.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 zur Bewertung die Metrik Normalized Cumulative Discount Gain (genauer gesagt nDCG@10).

Lang NQ

Long NQ ist ein IBM, der für die Evaluierung der gesamten RAG-Pipeline entwickelt wurde und auf einer Teilmenge des NaturalQuestions 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 Retrieval besteht die Aufgabe darin, für jede Frage die relevante Gold-Passage aus dem Korpus zu erhalten.

Ergebnisse

Tabelle 3. Leistungsvergleich beim BEIR-Benchmark (Registerkarte MTEB-Abfrage)
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

Grafik mit den Ergebnissen für Slate und andere Modelle

Abbildung 2: Leistungsvergleich beim BEIR-Benchmark (Registerkarte MTEB-Abfrage)

Tabelle 4. Leistungsvergleich mit dem Long NQ-Datensatz
Modell LONGNQNDCG@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

Grafik mit den Ergebnissen für Slate und andere Modelle

Abb. 3 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 des BM25 neu geordnet, und es wird die durchschnittliche Zeit für alle Abfragen angegeben. Die Neueinstufung wurde auf einer A100_40GB GPU durchgeführt.

Tabelle 5. Laufzeitleistung bei der Neueinstufung
Modell Zeit/Abfrage
all-miniLM-L6-v2 0.0.18 Sekunden
E5-small 0.0.33 Sekunden
E5-base 0.0.75 Sekunden
BGE-klein 0.0.34 Sekunden
BGE-Basis 0.0.75 Sekunden
slate.125m.english.rtrvr 0.0.71 Sekunden
slate.30m.english.rtrvr 0.0.20 Sekunden