0 / 0
Retourner à la version anglaise de la documentation
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.

Langues prises en charge

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

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

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 similarity
print(util.cos_sim(query_embeddings, passage_embeddings))

Utilisation avec les transformateurs Huggingface

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 queries
with 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)

Évaluation

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

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

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

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

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.

Ressources