l3cube-pune/malayalam-sentence-similarity-sbert

l3cube-pune
Similitud de oraciones

Este es un modelo MalayalamSBERT (l3cube-pune/malayalam-sentence-bert-nli) afinado en el conjunto de datos STS. Lanzado como parte del proyecto MahaNLP: https://github.com/l3cube-pune/MarathiNLP. Una versión multilingüe de este modelo que soporta los principales idiomas indicios y la similitud de oraciones entre lenguas se comparte aquí indic-sentence-similarity-sbert. Más detalles sobre el conjunto de datos, los modelos y los resultados de referencia se pueden encontrar en nuestro [artículo] (https://arxiv.org/abs/2304.11434).

Como usar

Uso (Transformadores de Oraciones)

Utilizar este modelo es fácil cuando tienes instalados los transformadores de oraciones:

pip install -U sentence-transformers

Luego puedes usar el modelo así:

from sentence_transformers import SentenceTransformer
sentences = ["Esta es una oración de ejemplo", "Cada oración se convierte"]

model = SentenceTransformer('{MODEL_NAME}')
embeddings = model.encode(sentences)
print(embeddings)

Uso (Transformadores de HuggingFace)

Sin los transformadores de oraciones, puedes usar el modelo así: Primero, pasas tu entrada a través del modelo transformador, luego debes aplicar la operación de agrupamiento correcta encima de las incrustaciones de palabras contextualizadas.

from transformers import AutoTokenizer, AutoModel
import torch

#Agrupamiento de medias - Tener en cuenta la máscara de atención para una correcta promediación
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)

# Las oraciones para las cuales queremos incrustaciones de oraciones
sentences = ['Esta es una oración de ejemplo', 'Cada oración se convierte']

# Cargar el modelo desde HuggingFace Hub
tokenizer = AutoTokenizer.from_pretrained('{MODEL_NAME}')
model = AutoModel.from_pretrained('{MODEL_NAME}')

# Tokenizar oraciones
encoded_input = tokenizer(sentences, padding=True, truncation=True, return_tensors='pt')

# Calcular incrustaciones de tokens
with torch.no_grad():
    model_output = model(**encoded_input)

# Realizar agrupamiento. En este caso, agrupamiento de medias.
sentence_embeddings = mean_pooling(model_output, encoded_input['attention_mask'])

print("Incrustaciones de oraciones:")
print(sentence_embeddings)

Funcionalidades

Similitud de Frases
Transformadores de oraciones
PyTorch
Transformadores
Malabar
extracción de características
Inferencia de incrustaciones de texto

Casos de uso

Medir la similitud entre oraciones en Malayalam
Representación de oraciones en varios idiomas
Extracción de características de texto
Generación de incrustaciones de oraciones multilingües