sentence-transformers/distilroberta-base-paraphrase-v1

sentence-transformers
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 utilizarse para tareas como agrupamiento o 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

Luego puedes usar el modelo así:

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

model = SentenceTransformer('sentence-transformers/distilroberta-base-paraphrase-v1')
embeddings = model.encode(sentences)
print(embeddings)

Uso (Transformers de HuggingFace)

Sin sentence-transformers, puedes usar el modelo así: Primero, pasas tu entrada a través del modelo transformer, luego debes aplicar la operación de pooling correcta en la parte superior de las incrustaciones de las palabras contextualizadas.

from transformers import AutoTokenizer, AutoModel
import torch

# Pooling promedio - 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 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 cuales queremos incrustaciones de oraciones
sentences = ["Esta es una oración de ejemplo", "Cada oración es convertida"]

# Cargar el modelo desde HuggingFace Hub
tokenizer = AutoTokenizer.from_pretrained('sentence-transformers/distilroberta-base-paraphrase-v1')
model = AutoModel.from_pretrained('sentence-transformers/distilroberta-base-paraphrase-v1')

# 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 el pooling. En este caso, pooling promedio.
sentence_embeddings = mean_pooling(model_output, encoded_input['attention_mask'])

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

Funcionalidades

Modelo basado en RoBERTa
Transformación de oraciones y párrafos a espacios vectoriales densos de 768 dimensiones
Facilidad de uso con bibliotecas como sentence-transformers y transformers
Soporte de PyTorch y TensorFlow
Extracción de características
Compatibilidad con AutoTrain
Inferencia de incrustaciones de texto
Compatibilidad con Inference Endpoints

Casos de uso

Agrupamiento de oraciones
Búsqueda semántica
Análisis de similitud de oraciones
Extracción de características
Inferencia de incrustaciones de texto en tiempo real