Maite89/Roberta_finetuning_semantic_similarity_stsb_multi_mt

Maite89
Similitud de oraciones

Este es un modelo de sentence-transformers: Mapea oraciones y párrafos a un espacio vectorial denso de 1024 dimensiones y se puede usar para tareas como la agrupación o la búsqueda semántica.

Como usar

Uso (Sentence-Transformers)

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

pip install -U sentence-transformers

Entonces puedes usar el modelo así:

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

model = SentenceTransformer('Maite89/Roberta_finetuning_semantic_similarity_stsb_multi_mt')
embeddings = model.encode(sentences)
print(embeddings)

Uso (HuggingFace Transformers)

Sin sentence-transformers, puedes usar el modelo así: Primero, pasa tu entrada a través del modelo transformer, luego debes aplicar la operación de pooling adecuada sobre las embeddings contextualizadas.

from transformers import AutoTokenizer, AutoModel
import torch

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

# Oraciones para las que queremos embeddings de oraciones
sentences = ['This is an example sentence', 'Each sentence is converted']

# Cargar el modelo desde HuggingFace Hub
tokenizer = AutoTokenizer.from_pretrained('Maite89/Roberta_finetuning_semantic_similarity_stsb_multi_mt')
model = AutoModel.from_pretrained('Maite89/Roberta_finetuning_semantic_similarity_stsb_multi_mt')

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

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

# Realizar el pooling. En este caso, mean pooling.
sentence_embeddings = mean_pooling(model_output, encoded_input['attention_mask'])

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

Funcionalidades

sentence-transformers
PyTorch
Transformers
roberta
extracción de características
similaridad de oraciones
inferencia de embeddings de texto
compatible con AutoTrain
compatible con Endpoints (Puntos de Ingreso)

Casos de uso

Agrupación de oraciones
Búsqueda semántica