l3cube-pune/indic-sentence-bert-nli
Este es un modelo MuRIL (google/muril-base-cased) entrenado en el conjunto de datos NLI de diez idiomas principales de la India. El modelo único funciona para inglés, hindi, marathi, kannada, tamil, telugu, gujarati, oriya, punjabi, malayalam y bengalí. El modelo también tiene capacidades de traducción cruzada. Lanzado como parte del proyecto MahaNLP: https://github.com/l3cube-pune/MarathiNLP. Un mejor modelo de similitud de oraciones (versión ajustada de este modelo) se comparte aquí: https://huggingface.co/l3cube-pune/indic-sentence-similarity-sbert. Más detalles sobre el conjunto de datos, modelos y resultados básicos se pueden encontrar en nuestro [artículo] (https://arxiv.org/abs/2304.11434)
Como usar
Uso (Sentence-Transformers)
Usar este modelo se vuelve fácil cuando tienes instalado sentence-transformers:
pip install -U sentence-transformers
Entonces puedes usar el modelo así:
from sentence_transformers import SentenceTransformer
sentences = ["Esta es una oración de ejemplo", "Cada oración es convertida"]
modelo = SentenceTransformer('{MODEL_NAME}')
embeddings = model.encode(sentences)
print(embeddings)
Uso (HuggingFace Transformers)
Sin sentence-transformers, puedes usar el modelo así: Primero, pasas tu entrada a través del modelo transformer, luego tienes que aplicar la operación de agrupación correcta en la parte superior de las incrustaciones de palabras contextualizadas.
from transformers import AutoTokenizer, AutoModel
import torch
def mean_pooling(model_output, attention_mask):
token_embeddings = model_output[0] # El primer elemento de model_output contiene todas las incrustaciones de tokens
input_mask_expanded = attention_mask.unsqueeze(-1).expand(token_embeddings.size()).float()
return torch.sum(token_embeddings * input_mask_expanded, 1) / torch.clamp(input_mask_expanded.sum(1), min=1e-9)
sentencias = ['Esta es una oración de ejemplo', 'Cada oración es convertida']
tokenizer = AutoTokenizer.from_pretrained('{MODEL_NAME}')
modelo = AutoModel.from_pretrained('{MODEL_NAME}')
encoded_input = tokenizer(sentencias, padding=True, truncation=True, return_tensors='pt')
with torch.no_grad():
model_output = model(**encoded_input)
sentence_embeddings = mean_pooling(model_output, encoded_input['attention_mask'])
print("Incrustaciones de oraciones:")
print(sentence_embeddings)
Funcionalidades
- Similitud de oraciones
- Transformadores de oraciones
- PyTorch
- Transformers
- Extracción de características
- Inferencia de incrustaciones de texto
- Capacidades de traducción cruzada
Casos de uso
- Similitud de oraciones a través de múltiples idiomas
- Generación de incrustaciones de oraciones para diversas aplicaciones NLP
- Traducción cruzada entre idiomas