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.
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 :
- Pré-entraînement spécifique à la tâche (basé sur la récupération)
- Ajustement spécifique à la tâche sur les paires extraites
- 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
Ensemble de données | Passages |
---|---|
Wikipédia | 36396918 |
Corpus de livres | 3401308 |
Stack Exchange | 15999837 |
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 :
BM25 (un modèle traditionnel basé sur tf-idf)
ELSER (un algorithme de recherche commercial fourni par Elastic)
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
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
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
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
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
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 |
Figure 2. Comparaison des performances sur le benchmark BEIR (onglet de recherche MTEB)
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 |
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.
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 |