IBM Granite embedding 107m multilingual model card
Granite Embedding 107m Carte modèle multilingue
Dernière mise à jour : 16 janv. 2025
Granite Embedding 107m Carte modèle multilingue
Le modèle granite-embedding-107m-multilingual est un modèle d'incorporation à biencoder dense de 107M paramètres de la suite Granite Embeddings qui peut être utilisé pour générer des incorporations de texte de haute qualité. Ce modèle produit des vecteurs d'intégration de taille 384 et est entraîné à l'aide d'une combinaison d'ensembles de données de paires de pertinence de source ouverte avec une licence permissive et adaptée aux entreprises, et d'ensembles de données collectés et générés par IBM Ce modèle est développé en utilisant la mise au point contrastive, la distillation des connaissances et la fusion des modèles pour améliorer les performances.
Anglais, allemand, espagnol, français, japonais, portugais, arabe, tchèque, italien, coréen, néerlandais et chinois. Les utilisateurs peuvent affiner le modèle granite-embedding-107m-multilingual pour les langues au-delà de ces 12 langues.
Utilisation prévue
Copy link to section
Le modèle est conçu pour produire des représentations vectorielles de longueur fixe pour un texte donné, qui peuvent être utilisées pour des applications de similarité, d'extraction et de recherche de texte.
Utilisation avec les transformateurs de phrases
Copy link to section
Le modèle est compatible avec la bibliothèque SentenceTransformer et est très facile à utiliser :
Tout d'abord, installez la bibliothèque des transformateurs de phrases.
pip install sentence_transformers
Le modèle peut ensuite être utilisé pour coder des paires de textes et trouver la similarité entre leurs représentations.
from sentence_transformers import SentenceTransformer, util
model_path = "ibm-granite/granite-embedding-107m-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 similarityprint(util.cos_sim(query_embeddings, passage_embeddings))
Show more
Utilisation avec les transformateurs Huggingface
Copy link to section
Voici un exemple simple d'utilisation du modèle granite-embedding-107m-multilingual avec la bibliothèque Transformers et PyTorch.
Il faut d'abord installer les bibliothèques nécessaires.
pip install transformers torch
Le modèle peut ensuite être utilisé pour coder des paires de textes.
import torch
from transformers import AutoModel, AutoTokenizer
model_path = "ibm-granite/granite-embedding-107m-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 querieswith torch.no_grad():
# Queries
model_output = model(**tokenized_queries)
# Perform pooling. granite-embedding-107m-multilingual uses CLS Pooling
query_embeddings = model_output[0][:, 0]
# normalize the embeddings
query_embeddings = torch.nn.functional.normalize(query_embeddings, dim=1)
Show more
Évaluation
Copy link to section
La performance moyenne du modèle granite-embedding-107m-multilingual sur Miracl multilingue (18 langues), Mintaka Retrieval (8 langues) et MTEB Retrieval pour l'anglais (15 tâches), l'allemand (4 tâches), l'espagnol (2 tâches), le français (5 tâches), le japonais (2 tâches), l'arabe (1 tâche), le coréen (1 tâche) et le chinois (8 tâches) est présentée ci-dessous. Le modèle granite-embedding-107m-multilingual est deux fois plus rapide que les autres modèles ayant des dimensions d'intégration similaires.
Tableau 1. Scores de référence pour le modèle granite-embedding-107m-multilingual
Modèle
Paramètres (M)
Dimension d'intégration
Miracl (18)
Récupération de Mintaka (8)
MTEB Anglais (15)
MTEB Allemand (4)
MTEB Espagnol (2)
MTEB Français (5)
MTEB Japonais (2)
MTEB arabe (1)
MTEB Coréen (1)
MTEB Chinois (8)
granite-embedding-107m-multilingual
107
384
55.9
22.6
45.3
70.3
48.7
51.1
59.0
63.2
70.5
40.8
Modèle d'architecture
Copy link to section
Le modèle granite-embedding-107m-multilingual est basé sur une architecture de transformateur de type XLM-RoBERTa, formé en interne par IBM Research.
Tableau 2. Détails de l'architecture du modèle Granite Embedding
Modèle
granite-embedding-30m-english
granite-embedding-125m-english
granite-embedding-107m-multilingual
granite-embedding-278m-multilingual
Taille de l'encastrement
384
768
384
768
Nombre de couches
6
12
6
12
Nombre de têtes d'attention
12
12
12
12
Taille intermédiaire
1536
3072
1536
3072
Fonction d'activation
GeLU
GeLU
GeLU
GeLU
Taille du vocabulaire
50265
50265
250002
250002
Max. Longueur de la séquence
512
512
512
512
Nombre de paramètres
30M
125M
107M
278M
Données d'entraînement
Copy link to section
Globalement, les données d'entraînement se composent de quatre sources principales : (1) des données appariées titre-corps non supervisées récupérées sur le web, (2) des données appariées accessibles au public avec une licence permissive et adaptée aux entreprises, (3) des données appariées IBM ciblant des domaines techniques spécifiques, et (4) des données synthétiques IBM Les données sont énumérées ci-dessous :
Tableau 3. Données d'entraînement pour le modèle granite-embedding-107m-multilingual
Ensemble de données
Num. Paires
Multilingue MC4
52,823,484
Le webhose multilingue
12,369,322
Wikipédia en anglais
20,745,403
Wikimedia multilingue
2,911,090
Corpus Miracl (Titre-Corps)
10,120,398
Stack Exchange Questions en double (titres)
304,525
Stack Exchange Questions en double (titres)
304,525
Stack Exchange Questions en double (corps)
250,519
Traductions automatiques des questions dupliquées de Stack Exchange (titres)
187,195
Paires Stack Exchange (Titre, Réponse)
4,067,139
Paires Stack Exchange (Titre, Corps)
23,978,013
Paires Stack Exchange (Titre, Corps)
23,978,013
Traductions automatiques des paires Stack Exchange (Titre+Corps, Réponse)
1,827,15
SearchQA
582,261
S2ORC (titre, résumé)
41,769,185
WikiAnswers Paires de questions en double
77,427,422
CCNews
614,664
XSum
226,711
SimpleWiki
102,225
Corpora parallèles interlinguistiques traduits à la machine
28,376,115
Triplets de citation SPECTER
684,100
Traductions automatiques des triplets de citations SPECTER
4,104,600
Questions naturelles (NQ)
100,231
SQuAD2.0
87,599
HotpotQA
85 000
Fièvre
109,810
PubMed
20 000 000
Triples miracles multilingues
81,409
Triples multilingues MrTydi
48,715
Question Sadeeem Asnwering
4,037
Paires titre-corps DBPedia
4,635,922
Synthétique : Passage de l'interrogation anglaise à Wikipédia
1,879,093
Synthétique : Vérification des faits en anglais
9,888
Synthétique : Passage multilingue Query-Wikipedia
300,266
Synthétique : Résumés d'actualité multilingues
37,489
Triples internes IBM
40,290
Paires titre-corps internes IBM
1,524,586
Notamment, nous n'utilisons pas le populaire ensemble de données de recherche MS-MARCO dans notre corpus d'entraînement en raison de sa licence non commerciale, alors que d'autres modèles open-source s'entraînent sur cet ensemble de données en raison de sa haute qualité.
hyper-convergée
Copy link to section
Nous formons les modèles d'intégration Granite en utilisant le cluster informatique d' IBM, Cognitive Compute Cluster, qui est équipé de GPU NVIDIA A100 80gb. Ce cluster fournit une infrastructure évolutive et efficace pour l'entraînement de nos modèles sur plusieurs GPU.
Considérations éthiques et limites
Copy link to section
Les données anglaises utilisées pour former le modèle linguistique de base ont été filtrées pour supprimer les textes contenant des propos haineux, injurieux et blasphématoires.