0 / 0
Volver a la versión inglesa de la documentación

Tarjeta modelo Granite Embedding 107m Multilingüe

Última actualización: 16 ene 2025
Tarjeta modelo Granite Embedding 107m Multilingüe

El modelo granite-embedding-107m-multilingual es un modelo de incrustación biencodificador denso de 107M parámetros de la suite Granite Embeddings que puede utilizarse para generar incrustaciones de texto de alta calidad. Este modelo produce vectores de incrustación de tamaño 384 y se entrena utilizando una combinación de conjuntos de datos de pares de relevancia de código abierto con licencia permisiva y apta para empresas, y conjuntos de datos recopilados y generados IBM. Este modelo se desarrolla utilizando el ajuste contrastivo, la destilación de conocimientos y la fusión de modelos para mejorar el rendimiento.

Idiomas soportados

Inglés, alemán, español, francés, japonés, portugués, árabe, checo, italiano, coreano, neerlandés y chino. Los usuarios pueden ajustar el modelo granite-embedding-107m-multilingual para idiomas distintos de estos 12.

Uso previsto

El modelo está diseñado para producir representaciones vectoriales de longitud fija para un texto dado, que pueden utilizarse para aplicaciones de similitud, recuperación y búsqueda de textos.

Uso con transformadores de frases

El modelo es compatible con la biblioteca SentenceTransformer y es muy fácil de usar:

En primer lugar, instale la biblioteca de transformadores de sentencias.

pip install sentence_transformers

A continuación, el modelo puede utilizarse para codificar pares de textos y hallar la similitud entre sus representaciones.

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

Uso con transformadores Huggingface

Este es un ejemplo sencillo de cómo utilizar el modelo granite-embedding-107m-multilingual con la librería Transformers y PyTorch.

En primer lugar, instale las bibliotecas necesarias.

pip install transformers torch

A continuación, el modelo puede utilizarse para codificar pares de texto.

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)

Evaluación

A continuación se muestra el rendimiento medio del modelo granite-embedding-107m-multilingual en Miracl multilingüe (18 idiomas), Mintaka Retrieval (8 idiomas) y MTEB Retrieval para inglés (15 tareas), alemán (4 tareas), español (2 tareas), francés (5 tareas), japonés (2 tareas), árabe (1 tarea), coreano (1 tarea) y chino (8 tareas). El modelo granite-embedding-107m-multilingual es dos veces más rápido que otros modelos con dimensiones de incrustación similares.

Tabla 1. Puntuaciones de referencia del modelo granite-embedding-107m-multilingual
Modelo Parámetros (M) Dimensión de incrustación Miracl (18) Recuperación de Mintaka (8) MTEB Inglés (15) MTEB Alemán (4) MTEB Español (2) MTEB Francés (5) MTEB Japonés (2) MTEB Árabe (1) MTEB Coreano (1) MTEB Chino (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

Arquitectura modelo

El modelo granite-embedding-107m-multilingual se basa en una arquitectura de transformadores XLM-RoBERTa similar a la del codificador, entrenada internamente en IBM Research.

Tabla 2. Detalles de la arquitectura del modelo de incrustación de Granite
Modelo granite-embedding-30m-english granite-embedding-125m-english granite-embedding-107m-multilingual granite-embedding-278m-multilingual
Tamaño de incrustación 384 768 384 768
Número de capas 6 6 6 6
Número de cabezas de atención 6 6 12 6
Tamaño intermedio 1536 3072 1536 3072
Función de activación GeLU GeLU GeLU GeLU
Tamaño del vocabulario 50265 50265 250002 250002
Máx. Longitud de secuencia 512 512 512 512
Número de parámetros 30M 125M 107M 278M

Datos de entrenamiento

En general, los datos de formación proceden de cuatro fuentes principales: (1) datos emparejados título-cuerpo no supervisados extraídos de la web, (2) datos emparejados disponibles públicamente con licencia permisiva y de uso empresarial, (3) datos emparejados IBM orientados a dominios técnicos específicos y (4) datos sintéticos IBM. Los datos figuran a continuación:

Tabla 3. Datos de entrenamiento para el modelo granite-embedding-107m-multilingual
Conjunto de datos Num. Pares
Multilingüe MC4 52,823,484
Webhose multilingüe 12,369,322
Wikipedia en inglés 20,745,403
Wikimedia multilingüe 2,911,090
Miracl Corpus (Título-Cuerpo) 10,120,398
Stack Exchange Preguntas duplicadas (títulos) 304,525
Stack Exchange Preguntas duplicadas (títulos) 304,525
Stack Exchange Preguntas duplicadas (cuerpos) 250,519
Traducciones automáticas de preguntas duplicadas de Stack Exchange (títulos) 187,195
Stack Exchange (Título, Respuesta) pares 4,067,139
Stack Exchange (Título, Cuerpo) pares 23,978,013
Stack Exchange (Título, Cuerpo) pares 23,978,013
Traducciones automáticas de pares Stack Exchange (Título+Cuerpo, Respuesta) 1,827,15
SearchQA 582,261
S2ORC (Título, Resumen) 41,769,185
WikiAnswers Preguntas duplicadas 77,427,422
CCNoticias 614,664
XSum 226,711
SimpleWiki 102,225
Corpus multilingües paralelos traducidos automáticamente 28,376,115
Trillizos de citas SPECTER 684,100
Traducciones automáticas de tripletas de citas SPECTER 4,104,600
Preguntas naturales (NQ) 100,231
SQuAD2.0 87,599
HotpotQA 85.000
Fiebre 109,810
PubMed 20 000 000
Triples multilingües Miracl 81,409
Triples multilingües MrTydi 48,715
Sadeeem Pregunta Asnwering 4,037
DBPedia Pares título-cuerpo 4,635,922
Sintética: Pasaje en inglés de Query-Wikipedia 1,879,093
Sintética: Verificación de hechos en inglés 9,888
Sintética: Pasaje multilingüe de consulta-Wikipedia 300,266
Sintética: Resúmenes multilingües de noticias 37,489
Triples internos IBM 40,290
Pares título-cuerpo internos de IBM 1,524,586

En particular, no utilizamos el popular conjunto de datos de recuperación MS-MARCO en nuestro corpus de entrenamiento debido a su licencia no comercial, mientras que otros modelos de código abierto se entrenan en este conjunto de datos debido a su alta calidad.

Infraestructura

Entrenamos los modelos Granite Embedding utilizando el cluster de computación de IBM, Cognitive Compute Cluster, que está equipado con GPUs NVIDIA A100 80gb. Este clúster proporciona una infraestructura escalable y eficiente para entrenar nuestros modelos en múltiples GPU.

Consideraciones éticas y limitaciones

Los datos en inglés utilizados para entrenar el modelo lingüístico base se filtraron para eliminar los textos que contenían odio, insultos y blasfemias.

Recursos