0 / 0
Retourner à la version anglaise de la documentation

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

Dernière mise à jour : 28 nov. 2024
IBM slate-30m-english-rtrvr-v2 carte modèle

Version 2.0.1 Date : 30/06/2024

Description du modèle

Le modèle slate.30m.english.rtrvr 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 linguistique (LM) sous-jacent pour nos enregistrements est “slate.30m.english”. Il a la même architecture qu'un modèle de transformateur small-RoBERTa (6 couches) et a ~30 millions de paramètres et une dimension d'intégration de 384. Plus précisément, “slate.30m.english” a été distillé à partir de “slate.125m.english” (anciennement, WatBERT). Notre modèle final s'appelle slate.30m.english.rtrvr. Remarquez le suffixe à la fin qui indique que nous affinons l'architecture du modèle sous-jacent 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 une approche similaire, en combinant les deux dernières étapes en une seule étape de réglage fin.

slate.30m.english.rtrvr est produit par distillation du modèle “slate.125m.english.rtrvr-06-30-2024” lors de l'étape de mise au point (les détails du modèle de l'enseignant plus grand se trouvent à cet endroit). La distillation des connaissances transfère les connaissances d'un modèle enseignant très performant vers un modèle élève plus petit en entraînant la distribution de probabilité de sortie de l'élève pour qu'elle corresponde le plus possible à celle de l'enseignant, ce qui améliore les performances de l'élève par rapport à un réglage fin autonome.

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.30m.english” et poursuivons avec RetroMAE le pré-entraînement, en utilisant les données du tableau 1. Ici, au lieu d'utiliser uniquement les étiquettes des données, nous distillons également les prédictions de l'encodeur RetroMAE utilisé par slate.125m.english.rtrvr. Nos hyperparamètres sont les suivants : taux d'apprentissage : 2e-5, nombre de pas : 435000, GPUs : 8 A100 (80GB) GPUs.

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

Distillation à l'aide de paires non supervisées et supervisées

Nous utilisons un cadre bi-encodeur pour l'apprentissage d'un modèle d'intégration, comme le montre la figure 1. Nous initialisons avec le modèle pré-entraîné RetroMAE, et employons ensuite la distillation de connaissances avec des paires de textes <requête, passage> en utilisant un objectif de pertecontrastive avec des négatifs en lot. La distillation des connaissances entraîne la distribution des probabilités de sortie de l'étudiant pour qu'elle corresponde le plus possible à celle de l'enseignant. Dans le contexte des modèles de recherche, la distribution de sortie est constituée des scores de similarité entre les paires de textes. Plus précisément, pour chaque paire de phrases < requête, passage>, la distribution des scores de l'enseignant entre les intégrations de requête et passage, c'est-à-dire la similarité cosinus entre les intégrations, est distillée dans l'étudiant.

Le professeur utilisé pour la distillation est le modèle "slate.125m.english.rtrvr” entraîné sur les mêmes données que celles mentionnées ci-dessous. Le modèle de l'enseignant a été formé à l'aide d'un paradigme en plusieurs étapes où un modèle prétraîné RetroMAE a vu des données non supervisées lors de la phase de préformation, puis a été affiné sur des données plus propres, extraites ou étiquetées avec de l'or pendant quelques centaines d'étapes. Pour garantir la robustesse des ensembles de données, ce modèle ajusté a ensuite été fusionné avec un autre modèle formé avec différents hyperparamètres sur les mêmes données. Pour plus de détails, veuillez vous référer à la carte modèle slate.125m.english.rtrvr.

Le flux de transfert de connaissances est illustré à la figure 2.

Diagramme montrant la distillation de slate.125m.english à slate.125m.rtrvr à slate.30m.rtrvr

Figure 2. Distillation des connaissances

Nous extrayons des paires à grande échelle de différents domaines, comme indiqué dans la section Données d'entraînement. En outre, nous incluons également des paires de haute qualité pour la tâche d'extraction sur les ensembles de données suivants : SQuAD, Questions naturelles, Specter, paires Stack Exchange (Titre, Corps), S2ORC, SearchQA, HotpotQA, Fever, et Miracl. Pour ces ensembles de données supervisés, nous incluons également les Hard Negatives extraits avec une version précédente du modèle slate.125m.english.rtrvr. En outre, nous générons synthétiquement des triples pour créer des paires de bonne qualité de questions-réponses, de vérifications factuelles, etc. en utilisant `Mixtral-8x7B-Instruct-v0.1`. Afin d'améliorer les performances pour les cas d'utilisation spécifiques à IBM, nous incluons également des paires créées à partir de IBM Software Support data et IBM Docs.

Les hyperparamètres de distillation sont les suivants : apprentissage rate:7e-4, nombre d'étapes : 500000, taille effective du lot : 2048, GPUs : 4 A100_80GB GPUs.

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. Affiner les donné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 : Le support logiciel triple 40290
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 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 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 3 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 4 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