0 / 0
Torna alla versione inglese della documentazione

Scheda modello Granite Embedding 278m multilingue

Ultimo aggiornamento: 16 gen 2025
Scheda modello Granite Embedding 278m multilingue

Il modello granite-embedding-278m-multilingual è un modello 278M parametri della suite Granite Embeddings che può essere usato per generare incorporazioni di testo di alta qualità. Questo modello produce vettori di incorporamento di dimensione 768 ed è stato addestrato utilizzando una combinazione di dataset di coppie di rilevanza open source con licenza permissiva e di tipo enterprise-friendly e dataset raccolti e generati IBM. Questo modello è stato sviluppato utilizzando la messa a punto contrastiva, la distillazione della conoscenza e la fusione dei modelli per migliorare le prestazioni.

Lingue supportate

Inglese, tedesco, spagnolo, francese, giapponese, portoghese, arabo, ceco, italiano, coreano, olandese e cinese. Gli utenti possono regolare Granite-Embedding-278M-Multilingual per lingue diverse da queste 12 lingue.

Uso previsto

Il modello è progettato per produrre rappresentazioni vettoriali a lunghezza fissa per un dato testo, che possono essere utilizzate per applicazioni di similarità testuale, recupero e ricerca.

Uso con i trasformatori di frasi

Il modello è compatibile con la libreria SentenceTransformer ed è molto facile da usare.

Per prima cosa, installare la libreria dei trasformatori di frasi.

pip install sentence_transformers

Il modello può quindi essere utilizzato per codificare coppie di testi e trovare la somiglianza tra le loro rappresentazioni.

from sentence_transformers import SentenceTransformer, util

model_path = "ibm-granite/granite-embedding-278m-multilingual"
# Load the Sentence Transformer model
model = SentenceTransformer(model_path)

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."
    ]

# encode queries and passages
query_embeddings = model.encode(input_queries)
passage_embeddings = model.encode(input_passages)

# calculate cosine similarity
print(util.cos_sim(query_embeddings, passage_embeddings))

Utilizzo con i trasformatori Huggingface

Questo è un semplice esempio di utilizzo del modello granite-embedding-278m-multilingual con la libreria Transformers e PyTorch.

Per prima cosa, installare le librerie necessarie.

pip install transformers torch

Il modello può quindi essere utilizzato per codificare coppie di testi.

import torch
from transformers import AutoModel, AutoTokenizer

model_path = "ibm-granite/granite-embedding-278m-multilingual"

# Load the model and tokenizer
model = AutoModel.from_pretrained(model_path)
tokenizer = AutoTokenizer.from_pretrained(model_path)
model.eval()

input_queries = [
    ' Who made the song My achy breaky heart? ',
    'summit define'
    ]

# tokenize inputs
tokenized_queries = tokenizer(input_queries, padding=True, truncation=True, return_tensors='pt')

# encode queries
with torch.no_grad():
    # Queries
    model_output = model(**tokenized_queries)
    # Perform pooling. granite-embedding-278m-multilingual uses CLS Pooling
    query_embeddings = model_output[0][:, 0]

# normalize the embeddings
query_embeddings = torch.nn.functional.normalize(query_embeddings, dim=1)

Valutazione

Le prestazioni medie di Granite-Embedding-278M-Multilingual su Multilingual Miracl (in 18 lingue), Mintaka Retrieval (in 8 lingue) e MTEB Retrieval per l'inglese (in 15 compiti), il tedesco (in 4 compiti), lo spagnolo (in 2 compiti), il francese (in 5 compiti), il giapponese (in 2 compiti), l'arabo (in 1 compito), il coreano (in 1 compito) e il cinese (in 8 compiti) sono riportate di seguito.

Tabella 1. Punteggi di benchmark per il modello granite-embedding-278m-multilingual
Modello Parametri (M) Dimensione di incorporazione Miracl (18) Recupero di Mintaka (8) MTEB Inglese (15) MTEB Tedesco (4) MTEB Spagnolo (2) MTEB Francese (5) MTEB Giapponese (2) MTEB Arabo (1) MTEB Coreano (1) MTEB Cinese (8)
granite-embedding-278M-multilingual 278 768 58.3 23.2 48.2 71.2 52.6 54.1 61.7 64.2 71.8 45.2

Modello di architettura

Il modello granite-embedding-278m-multilingual si basa su un'architettura di trasformatori XLM-RoBERTa di sola codifica, addestrata internamente all' IBM Research.

Tabella 2. Dettagli dell'architettura del modello di incorporazione del Granite
Modello granite-embedding-30m-english granite-embedding-125m-english granite-embedding-107M-multilingual granite-embedding-278m-multilingual
Dimensione dell'incorporazione 384 768 384 768
Numero di livelli 6 12 6 12
Numero di teste di attenzione 12 12 12 12
Dimensione intermedia 1536 3072 1536 3072
Funzione di attivazione GeLU GeLU GeLU GeLU
Dimensione del vocabolario 50265 50265 250002 250002
Max. Lunghezza della sequenza 512 512 512 512
Numero di parametri 30M 125M 107M 278M

Dati di formazione

In generale, i dati di addestramento sono costituiti da quattro fonti chiave: (1) dati accoppiati titolo-corpo non supervisionati, raccolti dal web, (2) dati accoppiati disponibili pubblicamente con licenza permissiva e di tipo enterprise, (3) dati accoppiati IBM e relativi a domini tecnici specifici e (4) dati sintetici IBM. I dati sono elencati di seguito:

Tabella 3. Dati di addestramento per il modello granite-embedding-278m-multilingual
Dataset Num. Coppie
Multilingua MC4 52,823,484
Webhose multilingue 12,369,322
Wikipedia inglese 20,745,403
Wikimedia multilingue 2,911,090
Corpus Miracl (Titolo-Corpo) 10,120,398
Stack Exchange Domande duplicate (titoli) 304,525
Stack Exchange Domande duplicate (titoli) 304,525
Stack Exchange Domande duplicate (corpi) 250,519
Traduzioni automatiche delle domande duplicate di Stack Exchange (titoli) 187,195
Scambio di coppie (Titolo, Risposta) 4,067,139
Coppie di scambio (titolo, corpo) 23,978,013
Coppie di scambio (titolo, corpo) 23,978,013
Traduzioni automatiche di coppie di Stack Exchange (Titolo+Corpo, Risposta) 1,827,15
SearchQA 582,261
S2ORC (Titolo, abstract) 41,769,185
WikiAnswers Coppie di domande duplicate 77,427,422
CCNews 614,664
XSum 226,711
SimpleWiki 102,225
Corpora paralleli interlinguistici a traduzione automatica 28,376,115
Tripletta di citazioni SPECTER 684,100
Traduzioni automatiche di terzine di citazioni SPECTER 4,104,600
Domande naturali (NQ) 100,231
SQuAD2.0 87,599
HotpotQA 85,000
Febbre 109,810
PubMed 20,000,000
Tripli Miracl multilingue 81,409
Trio MrTydi multilingue 48,715
Domanda di Sadeeem Asnwering 4,037
Coppie titolo-corpo DBPedia 4,635,922
Sintetico: Quesito inglese-Passaggio su Wikipedia 1,879,093
Sintetico: Verifica dei fatti in inglese 9,888
Sintetico: Passaggio Query-Wikipedia multilingue 300,266
Sintetico: Riassunti di notizie multilingue 37,489
Triplicazione interna IBM 40,290
Coppie titolo-corpo interne IBM 1,524,586

In particolare, nel nostro corpus di addestramento non utilizziamo il popolare dataset MS-MARCO a causa della sua licenza non commerciale, mentre altri modelli open-source si addestrano su questo dataset a causa della sua alta qualità.

infrastruttura

Addestriamo i modelli di Granite Embedding utilizzando il cluster di calcolo di IBM, Cognitive Compute Cluster, dotato di GPU NVIDIA A100 80gb. Questo cluster fornisce un'infrastruttura scalabile ed efficiente per l'addestramento dei nostri modelli su più GPU.

Considerazioni etiche e limitazioni

I dati in inglese utilizzati per addestrare il modello linguistico di base sono stati filtrati per rimuovere i testi contenenti odio, abusi e bestemmie.

Risorse