NaSE (Noticias-adaptado Codificador de Oraciones)

aiana94
Similitud de oraciones

NaSE es un codificador de oraciones multilingüe adaptado al dominio de noticias, inicializado a partir de LaBSE. Fue especializado en el dominio de noticias utilizando dos corpora multilingües, a saber, Polynews y PolyNewsParallel. Más específicamente, NaSE fue preentrenado con dos objetivos: auto-encoding de denoising y traducción de secuencia a secuencia.

Como usar

Aquí se muestra cómo usar este modelo para obtener las incrustaciones de oraciones de un texto dado en PyTorch:

from transformers import BertModel, BertTokenizerFast

tokenizer = BertTokenizerFast.from_pretrained('aiana94/NaSE')
model = BertModel.from_pretrained('aiana94/NaSE')

# Preparar entrada
sentences = ["Esta es una oración de ejemplo", "Dies ist auch ein Beispielsatz in einer anderen Sprache."]
encoded_input = tokenizer(sentences, return_tensors='pt', padding=True)

# Pase hacia adelante
with torch.no_grad():
output = model(**encoded_input)

# Para obtener las incrustaciones de oraciones, use la salida del Pooler
sentence_embeddings = output.pooler_output

Y en Tensorflow:

from transformers import TFBertModel, BertTokenizerFast

tokenizer = BertTokenizerFast.from_pretrained('aiana94/NaSE')
model = TFBertModel.from_pretrained('aiana94/NaSE')

# Preparar entrada
sentences = ["Esta es una oración de ejemplo", "Dies ist auch ein Beispielsatz in einer anderen Sprache."]
encoded_input = tokenizer(sentences, return_tensors='tf', padding=True)

# Pase hacia adelante
with torch.no_grad():
output = model(**encoded_input)

# Para obtener las incrustaciones de oraciones, use la salida del Pooler
sentence_embeddings = output.pooler_output

Para la similitud entre oraciones, se recomienda una norma L2 antes de calcular la similitud:

import torch
import torch.nn.functional as F

def cos_sim(a: torch.Tensor, b: torch.Tensor):
    a_norm = F.normalize(a, p=2, dim=1)
    b_norm = F.normalize(b, p=2, dim=1)
    return torch.mm(a_norm, b_norm.transpose(0, 1))

Funcionalidades

Codificador multilingüe de oraciones
Especializado en el dominio de noticias
Preentrenado con LaBSE
Auto-encoding de denoising
Traducción de secuencia a secuencia

Casos de uso

Codificación de oraciones
Similitud de oraciones
Recuperación de información
Tareas de agrupamiento