Argomento tradotto automaticamente È possibile passare alla versione ingleseConsultare la dichiarazione di non responsabilità
Fare riferimento alla versione inglese (originale) per visualizzare una versione più accurata e aggiornata di questa documentazione. IBM non è responsabile di eventuali danni o perdite derivanti dall'uso di contenuti tradotti automaticamente (machine translation).
Scheda modello IBM slate-30m-english-rtrvr
Ultimo aggiornamento: 28 nov 2024
Scheda modello IBM slate-30m-english-rtrvr
Descrizione modello
Copy link to section
Il modello slate.30m.english.rtrvr è un modello standard di trasformatori di frasi basato su bi-encoders. Il modello produce un'integrazione per un determinato input, ad esempio query, passaggio, documento e così via. Ad alto livello, il nostro modello è addestrato per massimizzare la somiglianza coseno tra due parti di testo di input, ad esempio il testo A (testo di query) e il testo B (testo di passaggio), che risultano nelle frasi di inserimento q e p. Questi incorporamenti di frasi possono quindi essere confrontati utilizzando la similarità coseno.
Figura 1. Modello di incorporazione Bi - encoder per Retrieval
Modello lingua base
Copy link to section
Il modello lingua sottostante (LM) per le nostre integrazioni è slate.30m.english. Ha la stessa architettura di un modello di trasformatore di base small-RoBERTa (6 strati) e ha ~30 milioni di parametri e una dimensione di incorporamento di 384. In particolare, “slate.30m.english” è stato distillato da “slate.125m.english” (precedentemente, WatBERT). Il nostro modello finale si chiama “slate.30m.english.rtrvr” - notare il suffisso alla fine che indica che regoliamo l'architettura del modello sottostante per le attività basate sul richiamo.
Algoritmo di addestramento
Copy link to section
La maggior parte dei modelli di incorporazione che sono all'avanguardia o in cima alla classifica MTEB sono in genere addestrati in 3 fasi:
Pre - addestramento specifico dell'attività (basato sul richiamo)
Ottimizzazione specifica dell'attività sulle coppie estratte
Ottimizzazione su coppie supervisionate
Seguiamo un approccio simile, combinando le due fasi finali in un unico passo di messa a punto.
slate.30m.english.rtrvr viene prodotto distillando dal modello “slate.125m.english.rtrvr” nel passo di ottimizzazione. La distillazione della conoscenza trasferisce la conoscenza da un modello di insegnante ad alte prestazioni in un modello di studente più piccolo formando la distribuzione della probabilità di output dello studente in modo che corrisponda il più possibile a quella dell'insegnante, migliorando le prestazioni dello studente rispetto alla finetuning stand-alone.
Pre - formazione specifica del compito
Copy link to section
Questo stage utilizza il framework RetroMAE , per rendere il nostro LM sottostante più orientato al richiamo. Inizializziamo il nostro LM base con slate.30m.english e continuiamo con il pre - training RetroMAE , utilizzando i dati della tabella 1. I nostri iper parametri sono: velocità di apprendimento: 2e-5, numero di passi: 435000, GPU: 8 A100 (80GB) GPU. Nota: questo è il nostro LM di base per le seguenti 2 fasi.
Distillazione con coppie non supervisionate e supervisionate
Copy link to section
Utilizziamo un framework bi - encoder per la formazione di un modello di incorporazione, come in Figura 1. Inizializziamo con il modello pre - addestrato RetroMAE e utilizziamo ulteriormente Knowledge Distillazione con coppie di testo <query, passage> utilizzando un obiettivo di perdita contrastante con negativi in batch. La distillazione della conoscenza allena la distribuzione della probabilità di uscita dello studente in modo che corrisponda il più possibile a quella dell'insegnante. Nel contesto dei modelli retriever, la distribuzione di output è il punteggio di similarità tra coppie di testo. In particolare, per ogni coppia di frasi <query, passage>, la distribuzione dei punteggi dell'insegnante tra le incorporazioni della query e del passaggio, cioè la somiglianza coseno tra le incorporazioni, viene distillata nello studente.
L'insegnante utilizzato per la distillazione è il "slate.125m.english.rtrvr” modello addestrato sugli stessi dati menzionati di seguito. L'insegnante viene formato utilizzando la fusione di modelli tra due modelli, ognuno dei quali utilizzava il pretraining e il finetuning RetroMAE , ma differendo nei dati di finetuning. Per ulteriori dettagli, fare riferimento alla scheda modello per slate.125m.english.rtrvr. Il flusso del trasferimento di conoscenze è illustrato pittoricamente nella figura 2.
Figura 2. Distillazione della conoscenza
Si estraggono coppie su larga scala da vari domini, come indicato nella sezione Training Data. Inoltre, includiamo anche coppie di alta qualità per il compito di recupero sui seguenti set di dati: SQuAD, coppie Natural Questions, Specter, Stack Exchange (Title, Body), S2ORC, SearchQA, HotpotQA e Fever. Gli iperparametri di distillazione sono: learning rate:7e-4, number of steps: 400000, effective batch size: 2048, GPU: 2 GPU A100_80GB .
Dati di formazione
Copy link to section
Tabella 1. Dati di pre - formazione
Dataset
Passages
Wikipedia
36396918
Corpus di libri
3401308
Scambio stack
15999837
Tabella 2. Ottimizzazione dei dati
Dataset
Coppie
Triplette di citazione SPECTER
684100
Domande duplicate (titoli)
304525
AllNLI (SNLI e MultiNLI)
277230
Domande duplicate (corpi)
250519
Domande duplicate (titoli + corpi)
250460
Domande naturali (NQ)
100231
SQuAD2.0
87599
Coppie PAQ (Domanda, Risposta)
64371441
Coppie di scambio stack (titolo, risposta)
4067139
Coppie di scambio stack (titolo, corpo)
23978013
Coppie di scambio stack (titolo + corpo, risposta)
187195
S2ORC Coppie di citazione (Titoli)
52603982
S2ORC (Titolo, Estratto)
41769185
S2ORC_citations_abstracts
52603982
WikiAnswers Duplica coppie di domande
77427422
SearchQA
582261
HotpotQA
85000
Febbre
109810
Arxiv
2358545
Wikipedia
20745403
PubMed
20000000
Utilizzo
Copy link to section
# Make sure the sentence transformers is installed.
pip install -U sentence-transformers
from sentence_transformers import SentenceTransformer, util
model = SentenceTransformer('path_to_slate_model')
input_queries = [
'Who made the son 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))
Copy to clipboardCopiato negli appunti
La lunghezza massima della sequenza di questo modello è 512 token.
Valutazione
Copy link to section
Baseline
Copy link to section
Per un confronto equo, si confronta con le seguenti linee di base:
BM25 (un modello tradizionale basato su tf-idf).
ELSER (un algoritmo di ricerca commerciale fornito da Elastic).
all-MiniLM-l6-v2: : un popolare modello di trasformatori di frasi open-source. Questo modello condivide la stessa architettura di slate.125m.english.rtvr, con una dimensione di inserimento più piccola (384) ed è stato addestrato su più dati senza licenze commerciali. Per maggiori dettagli, consultare la scheda del modello Hugging Facehttps://huggingface.co/sentence-transformers/all-MiniLM-L6-v2.
E5-base: un recente modello di trasformatore open source con prestazioni molto buone sul benchmark BEIR. Questo è un modello di base, che ha la stessa architettura di slate.125m.english.rtvr. [ Riferimento: Wang et.al., 2022: Incorporazioni di testo da pre - allenamento contrastivo debolmente supervisionato]. Scheda modello Huggingface (https://huggingface.co/intfloat/e5-base).
E5-small: un modello più piccolo all'interno della famiglia E5 open source. La dimensione di incorporazione di questo modello corrisponde a quella di all-minilm-l6-v2 (384), tuttavia ha 12 livelli e quindi è più grande e leggermente più lento. [ Riferimento: Wang et.al., 2022: Incorporazioni di testo da pre - allenamento contrastivo debolmente supervisionato]. Scheda modello Huggingface (https://huggingface.co/intfloat/e5-small).
BGE - base: un recente modello di trasformatore open-source con le migliori prestazioni sul benchmark BEIR per la dimensione di inserimento 768 (a partire da 01.20.2024). Scheda modello Huggingface (https://huggingface.co/BAAI/bge-base-en-v1.5).
Il nostro benchmark di valutazione: BEIR (scheda di recupero di MTEB)
Copy link to section
Il benchmark BEIR contiene 15 attività di recupero open-source valutate con un'impostazione zero - shot. BEIR si è concentrata sulla diversità, includendo nove diverse attività di recupero: controllo dei fatti, previsione delle citazioni, recupero delle domande duplicate, recupero degli argomenti, recupero delle notizie, risposta alle domande, recupero dei tweet, IR biomedico e recupero delle entità. Inoltre, include dataset provenienti da diversi domini di testo, dataset che coprono argomenti ampi (come Wikipedia) e argomenti specializzati (come pubblicazioni COVID-19 ), diversi tipi di testo (articoli di notizie e tweet), dataset di varie dimensioni (documenti3.6k - 15M ) e dataset con lunghezze di query differenti (lunghezza media di query tra 3 e 192 parole) e lunghezze di documenti (lunghezza media di documenti tra 11 e 635 parole). BEIR utilizza la metrica Guadagno sconto cumulativo normalizzato (in particolare, nDCG@10) per la valutazione.
NQ lunga
Copy link to section
Long NQ è un dataset IBM progettato per valutare la pipeline RAG completa, basata su un sottoinsieme del dataset NaturalQuestions . Il set di sviluppo ha 300 domande con un corpus di 178.891 passaggi da 2.345 documenti Wikipedia. Long NQ fornisce anche passaggi di Wikipedia in oro che sono rilevanti per ogni domanda. Durante il recupero, il compito è quello di ottenere il passaggio d'oro pertinente dal corpus per ogni domanda.
Risultati
Copy link to section
Confronto delle prestazioni sul benchmark BEIR (scheda recupero MTEB)
Modello
BEIR-15 (NDCG@10)
BM25
42.02
ELSER
49.01
all-miniLM-L6-v2
41.95
ES - piccolo
46.01
ES - base
48.75
BGE - base
53.25
slate.30m.english.rtrvr
49.37
slate.30m.english.rtrvr
46.91
Figura 3 Confronto delle prestazioni sul benchmark BEIR (scheda recupero MTEB)
Confronto delle prestazioni sul dataset NQ lungo
Modello
LONGNQ (NDCG@10)
all-miniLM-L6-v2
58.10
ES - piccolo
66.87
ES - base
63.95
BGE - base
61.29
slate.30m.english.rtrvr
65.01
slate.30m.english.rtrvr
59.94
Figura 4. Confronto delle prestazioni sul dataset NQ lungo
Prestazioni runtime
Copy link to section
Il runtime delle prestazioni viene misurato su un'attività di riclassificazione con 466 query. Per ogni query, vengono nuovamente classificati i top-100 passaggi ottenuti da BM25 e viene riportato il tempo medio su tutte le query. La nuova classificazione è stata eseguita su una GPU A100_40GB .
Tabella 3. Prestazioni di runtime in fase di riclassificazione