0 / 0
Retourner à la version anglaise de la documentation

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

Dernière mise à jour : 03 févr. 2025
IBM slate-125m-english-rtrvr-v2 carte modèle

Version 2.0.1 Date : 30/06/2024

Description du modèle

Le modèle slate.125m.english.rtrvr est un modèle standard de transformateur 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 linguistique (LM) sous-jacent pour nos enregistrements est “slate.125m.english”. Il a la même architecture qu'un modèle de transformateur RoBERTa-base (12 couches) et a ~125 millions de paramètres et une dimension d'intégration de 768. Plus précisément, slate.125m.english a été affiné à partir de “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 obtenu par la "fusion de modèles", c'est-à-dire en calculant 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-jacent plus orienté vers la recherche. Nous initialisons notre LM de base avec slate.125m.english et poursuivons avec RetroMAE le pré-entraînement, en utilisant les données du tableau 1. Nos hyperparamè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.

Ajustement fin à l'aide de données non supervisées à grande échelle

Ce modèle est initialisé avec le modèle pré-entraîné 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 RetroMAE LM pré-entraîné est affiné avec des <query, passage> paires de textes à l'aide d'un objectif de perte de contraste. Nous extrayons des paires à grande échelle de différents 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 hyperparamètres sont les suivants : taux d'apprentissage : 2e-4; nombre de pas : 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 que trouvés en effectuant des expériences de validation sur un ensemble de données retenu) mentionnés dans la section Données d'entraînement, qui sont les suivants : AllNLI, Squad, Stackexchange, NQ, HotpotQA, Fever et 5M sous-ensemble de chacun des ensembles de données Specter, S2orc, WikiAnswers. En outre, nous générons synthétiquement des triples pour créer des paires de questions-réponses de bonne qualité, des vérifications factuelles, etc. en utilisant Mixtral-8x7B-Instruct-v0.1. Pour améliorer les performances des cas d'utilisation spécifiques à IBM, nous incluons également des paires créées à partir des données de IBM Software Support et de IBM Docs.

Les hyperparamètres de formation sont le taux d'apprentissage : 2e-5; longueur maximale de la requête : 64 ; longueur maximale du passage : 512 ; étapes maximales : 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 dupliquées 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 Soutien (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 transformateur de phrases à source ouverte. Ce modèle partage la même architecture que 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 open-source 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'encastrement de ce modèle correspond à celle de slate.30m.rtrvr (384), mais il comporte 12 couches et est donc 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 de zéro essai. 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 qui couvrent 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é vs. Tweets), des ensembles de données de différentes tailles (3.6k - 15M documents), et des ensembles de données avec différentes longueurs de requêtes (longueur moyenne des requêtes entre 3 et 192 mots) et longueurs de documents (longueur moyenne des documents entre 11 et 635 mots). BEIR utilise l'indicateur Normalized Cumulative Discount Gain (en particulier, nDCG@10) pour l'évaluation.

Long NQ

Long NQ est un IBM ensemble de données 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 LONGNQ (NDCG@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.18 sec
E5-small 0.33 sec
E5-base 0.75 sec
BGE-petit 0.34 sec
BGE-base 0.75 sec
slate.125m.english.rtrvr 0.71 sec
slate.30m.english.rtrvr 0.20 sec