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