IBM slate-125m-english-rtrvr carte modèle

Version 2.0.1 Date : 06/30/2024

Description du modèle

Le modèle d' slate.125m.english.rtrvr s est un modèle standard de transformateurs de phrases basé sur des bi-encodeurs. Le modèle produit une intégration pour une entrée donnée, par exemple une requête, un passage, un document, etc. À un niveau élevé, notre modèle est formé pour maximiser la similarité en cosinus entre deux morceaux de texte d'entrée, par exemple le texte A (texte de requête) et le texte B (texte de passage), qui se traduisent par les enchâssements de phrases q et p. Ces enchâssements de phrases peuvent ensuite être comparés à l'aide de la similarité cosinusienne.

Diagramme comparant le texte d'interrogation codé de l'ardoise au texte de passage codé

Figure 1 : Modèle d'intégration à deux encodeurs pour la recherche d'information

Modèle de langue de base

Le modèle de langage (LM) sous-jacent pour nos enchâssements est “slate.125m.english” Il a la même architecture qu'un modèle de transformateur RoBERTa-base (12 couches) et possède ~125 millions de paramètres et une dimension d'intégration de 768. Plus précisément, le fichier slate.125m.english a été adapté à partir du “slate.125m.english” (anciennement WatBERT). Notre modèle final s'appelle slate.125m.english.rtrvr. Le suffixe indique que l'architecture du modèle sous-jacent a été affinée pour les tâches basées sur la recherche.

Algorithme de formation

La plupart des modèles d'intégration qui sont soit à la pointe de la technologie, soit en tête du classement MTEB, sont généralement formés en trois étapes :

  1. Pré-entraînement spécifique à la tâche (basé sur la récupération)
  2. Ajustement spécifique à la tâche sur les paires extraites
  3. Ajustement des paires supervisées.

Nous suivons la même approche et effectuons finalement une fusion de modèles en calculant la moyenne des poids des différents modèles formés.

slate.125m.english.rtrvr est produit en effectuant une "fusion de modèles" - en faisant la moyenne des poids des modèles suivants, tous deux formés par étapes mais présentant les variations suivantes :

  • Le modèle 1 a été affiné sur les trois étapes mentionnées ci-dessus
  • Modèle 2 distillé à partir d'un modèle affiné à toutes les étapes ci-dessus.

Pré-entraînement spécifique à une tâche

Cette étape utilise le cadre RetroMAE, pour rendre notre LM sous-jacente plus orientée vers la recherche. Nous initialisons notre LM de base avec slate.125m.english et poursuivons avec le pré-entraînement RetroMAE, en utilisant les données du tableau 1. Nos hyper-paramètres sont les suivants : taux d'apprentissage : 2e-5, nombre de pas : 190000, GPUs : 24 A100 40GB.

Remarque : il s'agit de notre LM de base pour les deux étapes suivantes.

Mise au point avec des données non supervisées à grande échelle

Ce modèle est initialisé avec le modèle pré-entraîné de RetroMAE et est entraîné comme suit.

Nous utilisons un cadre bi-encodeur pour l'apprentissage d'un modèle d'intégration, comme le montre la figure 1. Le LM pré-entraîné de RetroMAE est affiné avec les paires de textes " <query, passage> à l'aide d'un objectif de perte contrastive. Nous extrayons des paires à grande échelle de divers domaines, comme indiqué dans le tableau 2. Le modèle est entraîné avec diverses paires, y compris des tâches de classification telles que la NLI (Natural Language Inference) qui consiste à faire correspondre une prémisse à l'hypothèse correspondante. Nos hyper-paramètres sont les suivants : taux d'apprentissage : 2e-4; nombre d'étapes : 35000 ; GPUs : 8 A100_80GB, taille effective du lot : 16k paires

Ajustement fin avec des données supervisées à petite échelle avec des négatifs durs

Enfin, le modèle est affiné à l'aide de paires d'entraînement supervisées de haute qualité, la supervision provenant de l'extraction de données négatives dures, pour la tâche de recherche. Les points de contrôle intermédiaires du modèle sont utilisés de manière itérative pour extraire des données négatives spécifiques au jeu de données, qui sont ensuite utilisées pour un réglage fin supervisé. Ce processus vise à rendre le modèle plus robuste en lui permettant d'apprendre de ses propres erreurs et aide à se stabiliser avec des données beaucoup plus petites.

Nous affinons le modèle en utilisant un sous-ensemble d'ensembles de données (tels qu'ils ont été trouvés en effectuant des expériences de validation sur un ensemble de données retenu) mentionnés dans la section sur les données d'entraînement, qui sont les suivants : AllNLI, Squad, Stackexchange, NQ, HotpotQA, Fever et un sous-ensemble de 5M de chacun des ensembles de données Specter, S2orc, WikiAnswers. En outre, nous générons synthétiquement des triplets pour créer des paires de questions-réponses de bonne qualité, des vérifications factuelles, etc. à l'aide du " Mixtral-8x7B-Instruct-v0.1. Afin d'améliorer les performances pour les cas d'utilisation IBM, nous incluons également des paires créées à partir des données du support logiciel d'IBM et des IBM Docs

Les hyperparamètres d'entraînement sont les suivants : taux d'apprentissage : 2e-5; longueur maximale de la requête : 64 ; longueur maximale du passage : 512 ; nombre maximal de pas : 5000 ; taille effective du lot : 512 ; GPUs : 1A100_80GB

Données d'entraînement

Tableau 1. Données de pré-entraînement
Ensemble de données Passages
Wikipédia 36396918
Corpus de livres 3401308
Stack Exchange 15999837
Tableau 2. Données de réglage fin non supervisées et supervisées
Ensemble de données Paires
Triplets de citation SPECTER 684100
Stack Exchange Questions en double (titres) 304525
Stack Exchange Questions en double (corps) 250519
Stack Exchange Questions en double (titres+corps) 250460
Questions naturelles (NQ) 100231
SQuAD2.0 87599
Paires PAQ (Question, Réponse) 64371441
Paires Stack Exchange (Titre, Réponse) 4067139
Paires Stack Exchange (Titre, Corps) 23978013
Paires Stack Exchange (Titre+Corps, Réponse) 187195
S2ORC Paires de citations (Titres) 52603982
S2ORC (titre, résumé) 41769185
S2ORC_citations_abstracts 52603982
WikiAnswers Paires de questions en double 77427422
SearchQA 582261
HotpotQA 85000
Fièvre 109810
Arxiv 2358545
Wikipédia 20745403
PubMed 20000000
Miracl En Paires 9016
Paires titre-corps DBPedia 4635922
Synthétique : Passage Query-Wikipedia 1879093
Synthétique : Vérification des faits 9888
IBM: IBM Docs (Titre-Corps) 474637
IBM: IBM Support (Titre-Corps) 1049949

Utilisation

# 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)

La longueur maximale de la séquence de ce modèle est de 512 jetons.

Évaluation

Lignes de base

Pour une comparaison équitable, nous comparons avec les lignes de base suivantes :

  1. BM25 (un modèle traditionnel basé sur tf-idf)

  2. ELSER (un algorithme de recherche commercial fourni par Elastic)

  3. all-MiniLM-l6-v2: un modèle populaire de transformateurs de phrases à source ouverte. Ce modèle partage la même architecture que le slate.30m.english.rtrvr, et a été entraîné sur un plus grand nombre de données sans licence commerciale. Pour plus de détails, veuillez consulter la carte modèle du visage de câlin

  4. E5-base: un modèle de transformateur à source ouverte récent avec de très bonnes performances sur le benchmark BEIR. Il s'agit d'un modèle de base, qui a la même architecture que slate.125m.english.rtrvr [Référence : Wang et.al 2022 : Text Embeddings by Weakly-Supervised Contrastive Pre-training]. Carte modèle Huggingface

  5. E5-small: un modèle plus petit au sein de la famille E5 open source. La dimension d'intégration de ce modèle correspond à celle de slate.30m.rtrvr (384), mais il comporte 12 couches, ce qui le rend plus grand et légèrement plus lent. [Référence : Wang et.al 2022 : Text Embeddings by Weakly-Supervised Contrastive Pre-training]. Carte modèle Huggingface

  6. BGE-base : un modèle de transformateur à source ouverte récent qui présente l'une des meilleures performances sur le benchmark BEIR pour une taille d'intégration de 768. Carte modèle Huggingface

  7. BGE-small : un modèle de transformateur à source ouverte récent qui présente l'une des meilleures performances sur le benchmark BEIR pour la taille d'intégration 384. Carte modèle Huggingface

Nous comparons également les performances de ces modèles avec les anciennes versions des modèles d'ardoise, slate.125m.english.rtrvr-012024 et slate.30m.english.rtrvr-012024.

Notre évaluation de référence : BEIR(onglet de recherche de MTEB)

Le benchmark BEIR contient 15 tâches d'extraction de sources ouvertes évaluées dans un contexte d'essai zéro. Le BEIR s'est concentré sur la diversité, y compris neuf tâches de recherche différentes : Vérification des faits, prédiction des citations, recherche de questions en double, recherche d'arguments, recherche de nouvelles, réponse aux questions, recherche de tweets, RI bio-médicale et recherche d'entités. En outre, il inclut des ensembles de données provenant de divers domaines textuels, des ensembles de données couvrant des sujets généraux (comme Wikipedia) et des sujets spécialisés (comme les publications COVID-19 ), différents types de texte (articles d'actualité ou tweets), des ensembles de données de différentes tailles3.6k - 15M documents), et des ensembles de données avec différentes longueurs de requête (longueur moyenne de la requête entre 3 et 192 mots) et longueurs de document (longueur moyenne du document entre 11 et 635 mots). Le BEIR utilise la méthode du Normalized Cumulative Discount Gain (plus précisément, nDCG@10) pour l'évaluation.

Long NQ

Long NQ est un ensemble de données IBM conçu pour évaluer l'ensemble du pipeline RAG, basé sur un sous-ensemble de l'ensemble de données NaturalQuestions. L'ensemble de démonstration comprend 300 questions auxquelles il est possible de répondre et un corpus de 178 891 passages tirés de 2 345 documents Wikipédia. Long NQ fournit également des passages de Wikipédia en or qui sont pertinents pour chaque question. Lors de la recherche, il s'agit d'obtenir le passage en or pertinent du corpus pour chaque question.

Résultats

Tableau 3. Comparaison des performances sur le benchmark BEIR (onglet de recherche MTEB)
Modèle 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-petit 51.68
BGE-base 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

Graphique montrant les résultats pour l'ardoise et d'autres modèles

Figure 2. Comparaison des performances sur le benchmark BEIR (onglet de recherche MTEB)

Tableau 4. Comparaison des performances sur l'ensemble de données Long NQ
Modèle LONGNQNDCG@10)
all-miniLM-L6-v2 58.10
BGE-petit 59.33
BGE-base 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

Graphique montrant les résultats pour l'ardoise et d'autres modèles

Figure 3 Comparaison des performances sur l'ensemble de données Long NQ

Performance d'exécution

La durée d'exécution des performances est mesurée sur une tâche de reclassement comportant 466 requêtes. Pour chaque requête, nous reclassons les top-100 passages obtenus par BM25 et nous indiquons le temps moyen pour toutes les requêtes. Le reclassement a été effectué sur un GPU A100_40GB.

Tableau 5. Performances d'exécution en cas de reclassement
Modèle Temps/requête
all-miniLM-L6-v2 0.0.18 secondes
E5-small 0.0.33 secondes
E5-base 0.0.75 secondes
BGE-petit 0.0.34 secondes
BGE-base 0.0.75 secondes
slate.125m.english.rtrvr 0.0.71 sec
slate.30m.english.rtrvr 0.0.20 secondes