cointegrated/SONAR_200_text_encoder

cointegrated
Similitud de oraciones

Este es un puerto del codificador de texto multilingüe SONAR (https://huggingface.co/facebook/SONAR) al formato transformers desde fairseq2. Se espera que sus embeddings sean iguales a los de la implementación oficial (https://github.com/facebookresearch/SONAR), pero esta última sigue siendo la fuente de verdad. El codificador soporta los mismos 202 idiomas que NLLB-200 (ver también la tarjeta del modelo de origen y el mapeo de códigos de idioma FLORES-200).

Como usar

Cómo calcular embeddings:

# !pip install transformers sentencepiece -q

import torch
from transformers import AutoTokenizer
from transformers.models.m2m_100.modeling_m2m_100 import M2M100Encoder

model_name = 'cointegrated/SONAR_200_text_encoder'
encoder = M2M100Encoder.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)

def encode_mean_pool(texts, tokenizer, encoder, lang='eng_Latn', norm=False):
    tokenizer.src_lang = lang
    with torch.inference_mode():
        batch = tokenizer(texts, return_tensors='pt', padding=True)
        seq_embs = encoder(**batch).last_hidden_state
        mask = batch.attention_mask
        mean_emb = (seq_embs * mask.unsqueeze(-1)).sum(1) / mask.unsqueeze(-1).sum(1)
        if norm:
            mean_emb = torch.nn.functional.normalize(mean_emb)
        return mean_emb

sentences = ['My name is SONAR.', 'I can embed the sentences into vectorial space.']
embs = encode_mean_pool(sentences, tokenizer, encoder, lang='eng_Latn')
print(embs.shape)
# torch.Size([2, 1024])
print(embs)
# tensor([[-0.0053, 0.0020, -0.0006, ..., 0.0094, -0.0009, 0.0070],
#         [-0.0003, -0.0071, 0.0076, ..., 0.0055, 0.0022, -0.0083]])

Funcionalidades

Transformers
PyTorch
m2m_100
Capacidad de realizar similitud de oraciones
Endpoints de inferencia
Licencia: cc-by-nc-4.0

Casos de uso

Similitud de oraciones
Codificación de texto multilingüe
Aplicaciones que requieran embeddings de 202 idiomas

Recibe las últimas noticias y actualizaciones sobre el mundo de IA directamente en tu bandeja de entrada.