PunjabiSBERT-STS

l3cube-pune
Similitud de oraciones

Este es un modelo PunjabiSBERT (l3cube-pune/punjabi-sentence-bert-nli) ajustado finamente en el conjunto de datos STS. Lanzado como parte del proyecto MahaNLP. Una versión multilingüe de este modelo que admite los principales idiomas de la India y la similitud de oraciones cruzadas 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 [paper] (https://arxiv.org/abs/2304.11434).

Como usar

Usar este modelo es fácil cuando tienes sentence-transformers instalado:

pip install -U sentence-transformers

from sentence_transformers import SentenceTransformer
sentences = ["This is an example sentence", "Each sentence is converted"]

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

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 agrupamiento correcta sobre las incrustaciones de palabras contextualizadas.

from transformers import AutoTokenizer, AutoModel
import torch

#Mean Pooling - Tomar la máscara de atención en cuenta para el promediado correcto
def mean_pooling(model_output, attention_mask):
token_embeddings = model_output[0] #El primer elemento de model_output contiene todas las incrustaciones de token
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)

# Sentences we want sentence embeddings for
sentences = ["This is an example sentence", "Each sentence is converted"]

# Load model from HuggingFace Hub
tokenizer = AutoTokenizer.from_pretrained('{MODEL_NAME}')
model = AutoModel.from_pretrained('{MODEL_NAME}')

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

# Compute token embeddings
with torch.no_grad():
model_output = model(**encoded_input)

# Perform pooling. In this case, mean pooling.
sentence_embeddings = mean_pooling(model_output, encoded_input['attention_mask'])

print("Sentence embeddings:")
print(sentence_embeddings)

Funcionalidades

Similitud de oraciones
Transformadores de oraciones
PyTorch
Transformers
Panjabi
Extracción de características
Inferencia de incrustaciones de texto

Casos de uso

Medir la similitud de oraciones en idioma Punjabi
Generar incrustaciones de texto para oraciones en Punjabi
Transformar oraciones a representaciones vectoriales