0 / 0
Torna alla versione inglese della documentazione
IBM slate-125m-english-rtrvr-v2 modello di scheda
Ultimo aggiornamento: 28 nov 2024
IBM slate-125m-english-rtrvr-v2 modello di scheda

Versione 2.0.1 Data: 30/06/2024

Descrizione modello

Il modello slate.125m.english.rtrvr-v2 è un modello standard di trasformatori di frasi basato su bi-encoder. Il modello produce un embedding per un dato input, ad esempio una query, un brano, un documento ecc. Ad alto livello, il nostro modello viene addestrato per massimizzare la somiglianza del coseno tra due testi in ingresso, ad esempio il testo A (testo di interrogazione) e il testo B (testo di passaggio), che risultano nelle incorporazioni di frase q e p. Queste incorporazioni di frasi possono poi essere confrontate utilizzando la similarità del coseno.

Diagramma che confronta il testo di interrogazione codificato da Slate con il testo di passaggio codificato

Figura 1. Modello di incorporazioni bi-encoder per il recupero

Modello linguistico di base

Il modello linguistico (LM) sottostante per le nostre incorporazioni è “slate.125m.english”. Ha la stessa architettura di un modello di trasformatore RoBERTa-base (12 strati) e ha ~125 milioni di parametri e una dimensione di incorporazione di 768. In particolare, slate.125m.english è stato messo a punto da “slate.125m.english” (in precedenza, WatBERT). Il nostro modello finale si chiama slate.125m.english.rtrvr. Il suffisso indica che l'architettura del modello sottostante è stata messa a punto per compiti basati sul reperimento.

Algoritmo di formazione

La maggior parte dei modelli di incorporazione che sono all'avanguardia o in cima alla classifica MTEB sono in genere addestrati in 3 fasi:

  1. Pre-training specifico per il compito (basato sul recupero)
  2. Messa a punto specifica del compito sulle coppie estratte
  3. Messa a punto delle coppie supervisionate.

Seguiamo lo stesso approccio e infine eseguiamo una fusione di modelli facendo la media dei pesi dei diversi modelli addestrati.

slate.125m.english.rtrvr viene prodotto eseguendo una "fusione di modelli", ovvero una media dei pesi dei seguenti modelli, entrambi addestrati in fasi successive ma con le seguenti variazioni:

  • Modello 1 messo a punto in tutte e tre le fasi di cui sopra
  • Modello 2 distillato da un modello messo a punto in tutte le fasi precedenti.

Preformazione specifica per il compito

Questa fase utilizza il framework RetroMAE, per rendere il nostro LM sottostante più orientato al recupero. Inizializziamo la nostra LM di base con slate.125m.english e continuiamo con il pre-addestramento RetroMAE, utilizzando i dati della Tabella 1. I nostri iper-parametri sono: tasso di apprendimento: 2e-5, numero di passi: 190000, GPU: 24 A100 40GB.

Nota: questa è la nostra LM di base per le 2 fasi successive.

Messa a punto con dati non supervisionati su larga scala

Questo modello viene inizializzato con il modello pre-addestrato RetroMAE e viene addestrato come segue.

Per l'addestramento di un modello di incorporazione utilizziamo un framework bi-encoder, come nella Figura 1. La LM preaddestrata RetroMAE viene messa a punto con <query, passage> coppie di testi utilizzando un obiettivo di perdita contrastiva. Abbiamo estratto coppie su larga scala da vari domini, come indicato nella Tabella 2. Il modello viene addestrato con diverse coppie, tra cui compiti di classificazione come NLI (Natural Language Inference) che consiste nel far corrispondere una premessa all'ipotesi corrispondente. I nostri iper-parametri sono: tasso di apprendimento: 2e-4; numero di passi: 35000; GPU: 8 A100_80GB, dimensione effettiva del batch: 16k coppie

Messa a punto con dati supervisionati su piccola scala e con negativi difficili da gestire

Infine, il modello viene messo a punto con coppie di addestramento supervisionate di alta qualità, la cui supervisione proviene dall'hard negative mining, per il compito di recupero. I checkpoint intermedi del modello vengono utilizzati iterativamente per estrarre gli hard negative specifici del set di dati, che vengono poi utilizzati per la messa a punto supervisionata. Questo processo mira a rendere il modello più robusto, consentendogli di imparare dai propri errori e aiutandolo a stabilizzarsi con dati molto più piccoli.

La messa a punto del modello avviene utilizzando un sottoinsieme di set di dati (individuati attraverso l'esecuzione di esperimenti di convalida su un set di dati non utilizzato) menzionati nella sezione Dati di addestramento, che sono i seguenti: AllNLI, Squad, Stackexchange, NQ, HotpotQA, Fever e 5M sottoinsieme da ciascuno di Specter, S2orc, WikiAnswers. Inoltre, generiamo sinteticamente le triple per creare coppie di buona qualità di domande-risposte, verifica dei fatti, ecc. utilizzando Mixtral-8x7B-Instruct-v0.1. Per fornire prestazioni migliori per i casi d'uso specifici di IBM, includiamo anche le coppie create dai dati di IBM Software Support e IBM Docs.

Gli iperparametri di addestramento sono: tasso di apprendimento: 2e-5; lunghezza max query: 64; lunghezza max passaggio: 512; passi max: 5000; dimensione effettiva del lotto: 512; GPU: 1A100_80GB

Dati di formazione

Tabella 1. Dati di pre-addestramento
Dataset Passages
Wikipedia 36396918
Corpus di libri 3401308
Stack Exchange 15999837
Tabella 2. Dati di messa a punto non supervisionati e supervisionati
Dataset Coppie
Tripletta di citazioni SPECTER 684100
Stack Exchange Domande duplicate (titoli) 304525
Stack Exchange Domande duplicate (corpi) 250519
Stack Exchange Domande duplicate (titoli+corpi) 250460
Domande naturali (NQ) 100231
SQuAD2.0 87599
Coppie PAQ (domanda, risposta) 64371441
Scambio di coppie (Titolo, Risposta) 4067139
Coppie di scambio (titolo, corpo) 23978013
Scambio di coppie (Titolo+Corpo, Risposta) 187195
S2ORC Coppie di citazioni (titoli) 52603982
S2ORC (Titolo, Abstract) 41769185
S2ORC_citations_abstracts 52603982
WikiAnswers Coppie di domande duplicate 77427422
SearchQA 582261
HotpotQA 85000
Febbre 109810
Arxiv 2358545
Wikipedia 20745403
PubMed 20000000
Coppie miracolose 9016
Coppie titolo-corpo DBPedia 4635922
Sintetico: Query-Passaggio di Wikipedia 1879093
Sintetico: Verifica dei fatti 9888
IBM: IBM Docs (Titolo-Corpo) 474637
IBM: IBM Supporto (Titolo-Corpo) 1049949

Utilizzo

# 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 lunghezza massima della sequenza di questo modello è di 512 token.

Valutazione

Baseline

Per un confronto equo, ci confrontiamo con le seguenti linee di base:

  1. BM25 (un modello tradizionale basato su tf-idf)

  2. ELSER (un algoritmo di ricerca commerciale fornito da Elastic)

  3. all-MiniLM-l6-v2: un popolare modello di trasformatori di frasi open-source. Questo modello condivide la stessa architettura di slate.30m.english.rtrvr, è stato addestrato su un maggior numero di dati senza licenze commerciali. Per maggiori dettagli, consultare la scheda del modello huggingface

  4. E5-base: un recente modello di trasformatore open-source con ottime prestazioni nel benchmark BEIR. Si tratta di un modello di dimensioni base, che ha la stessa architettura di slate.125m.english.rtrvr. [Riferimento: Wang et.al.., 2022: Text Embeddings by Weakly-Supervised Contrastive Pre-training]. Scheda modello Huggingface

  5. E5-small: un modello più piccolo della famiglia open source E5. La dimensione di incorporazione di questo modello corrisponde a quella di slate.30m.rtrvr (384), ma ha 12 strati e quindi è più grande e leggermente più lento. [Riferimento: Wang et.al.., 2022: Text Embeddings by Weakly-Supervised Contrastive Pre-training]. Scheda modello Huggingface

  6. BGE-base: un recente modello di trasformatore open-source con una delle migliori prestazioni sul benchmark BEIR per la dimensione di incorporazione 768. Scheda modello Huggingface

  7. BGE-small: un recente modello di trasformatore open-source con una delle migliori prestazioni nel benchmark BEIR per la dimensione di incorporazione 384. Scheda modello Huggingface

Confrontiamo inoltre le prestazioni di questi modelli con le versioni precedenti dei modelli slate, slate.125m.english.rtrvr-012024 e slate.30m.english.rtrvr-012024.

Il nostro benchmark di valutazione: BEIR(scheda di reperimento di MTEB)

Il benchmark BEIR contiene 15 compiti di recupero open-source valutati in un'impostazione a zero colpi. Il BEIR si è concentrato sulla Diversità, includendo nove diversi compiti di recupero: Fact checking, citation prediction, duplicate question retrieval, argument retrieval, news retrieval, question answering, tweet retrieval, bio-medical IR e entity retrieval. Inoltre, include dataset provenienti da domini testuali diversi, dataset che coprono argomenti ampi (come Wikipedia) e argomenti specialistici (come le pubblicazioni COVID-19), diversi tipi di testo (articoli di notizie vs. Tweets), dataset di varie dimensioni (3.6k - 15M documenti) e dataset con diverse lunghezze di query (lunghezza media della query tra 3 e 192 parole) e di documenti (lunghezza media del documento tra 11 e 635 parole). Per la valutazione, BEIR utilizza la metrica Normalized Cumulative Discount Gain (in particolare, nDCG@10).

Lungo NQ

Long NQ è un set di dati IBM progettato per valutare l'intera pipeline RAG, basato su un sottoinsieme del set di dati NaturalQuestions. Il dev set è composto da 300 domande a risposta libera con un corpus di 178.891 passaggi da 2.345 documenti di Wikipedia. Long NQ fornisce anche i passaggi di Wikipedia oro che sono rilevanti per ogni domanda. Durante il recupero, il compito è quello di ottenere il passaggio aureo rilevante dal corpus per ogni domanda.

Risultati

Tabella 3. Confronto delle prestazioni sul benchmark BEIR (scheda di recupero MTEB)
Modello 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-piccolo 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

Grafico che mostra i risultati per Slate e altri modelli

Figura 2. Confronto delle prestazioni sul benchmark BEIR (scheda di recupero MTEB)

Tabella 4. Confronto delle prestazioni sul set di dati Long NQ
Modello LONGNQ (NDCG@10)
all-miniLM-L6-v2 58.10
BGE-piccolo 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

Grafico che mostra i risultati per Slate e altri modelli

Figura 3 Confronto delle prestazioni sul set di dati Long NQ

Prestazioni in tempo reale

Il tempo di esecuzione delle prestazioni è stato misurato su un compito di re-ranking con 466 query. Per ogni query ri-arranchiamo i top-100 passaggi ottenuti da BM25 e riportiamo il tempo medio su tutte le query. La riorganizzazione è stata eseguita su una GPU A100_40GB.

Tabella 5. Prestazioni in tempo reale del re-ranking
Modello Tempo/query
all-miniLM-L6-v2 0.18 sec
E5-small 0.33 sec
E5-base 0.75 sec
BGE-piccolo 0.34 sec
BGE-base 0.75 sec
slate.125m.english.rtrvr 0.71 sec
slate.30m.english.rtrvr 0.20 sec
Ricerca e risposta AI generativa
Queste risposte sono generate da un modello di lingua di grandi dimensioni in watsonx.ai basato sul contenuto della documentazione del prodotto. Ulteriori informazioni