s-RobBERT-STSb

jpostma
Similitud de oraciones

Este es un modelo de sentence-transformers: Mapea oraciones y párrafos a un espacio vectorial denso de 768 dimensiones y puede ser utilizado para tareas como agrupamiento o búsqueda semántica.

Como usar

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

pip install -U sentence-transformers

Luego puedes usar el modelo de la siguiente manera:

from sentence_transformers import SentenceTransformer
sentences = ["Esta es una oración de ejemplo", "Cada oración es convertida"]
model = SentenceTransformer('{MODEL_NAME}')
embeddings = model.encode(sentences)
print(embeddings)

Sin los 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 pooling correcto sobre las incrustaciones contextualizadas de palabras.

from transformers import AutoTokenizer, AutoModel
import torch

# Media Pooling - Toma 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 incrustaciones de los 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 incrustaciones de oración
sentences = ['Esta es una oración de ejemplo', 'Cada oración es convertida']

# Cargar 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 las incrustaciones de los tokens
with torch.no_grad():
  model_output = model(**encoded_input)

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

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

Funcionalidades

Extracción de características
Compatible con AutoTrain
Inferencias de incrustaciones de texto
Compatible con Endpoints de Inferencia
Basado en PyTorch
Utiliza el modelo Roberta
Transformers

Casos de uso

Agrupamiento de documentos
Búsqueda semántica
Evaluaciones de la similitud de oraciones