aditeyabaral/sentencetransformer-xlm-roberta-base

aditeyabaral
Similitud de oraciones

Este es un modelo de transformers de oraciones: Mapea oraciones y párrafos a un espacio de vector denso de 768 dimensiones y se puede usar para tareas como agrupamiento o búsqueda semántica.

Como usar

Uso (Sentence-Transformers)

Usar este modelo se vuelve 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('aditeyabaral/sentencetransformer-xlm-roberta-base')
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 correcta sobre los embeddings contextualizados de las palabras.

from transformers import AutoTokenizer, AutoModel
import torch

# Mean Pooling - Toma en cuenta la máscara de atención para el promedio correcto
 def mean_pooling(model_output, attention_mask):
    token_embeddings = model_output[0] # El primer elemento de model_output contiene todos los 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 los embeddings de las oraciones
sentences = ['This is an example sentence', 'Each sentence is converted']

# Cargar modelo desde HuggingFace Hub
tokenizer = AutoTokenizer.from_pretrained('aditeyabaral/sentencetransformer-xlm-roberta-base')
model = AutoModel.from_pretrained('aditeyabaral/sentencetransformer-xlm-roberta-base')

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

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

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

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

Funcionalidades

Transformers de oraciones
Espacio de vector denso de 768 dimensiones
Tareas de agrupamiento
Búsqueda semántica

Casos de uso

Agrupamiento de oraciones
Búsqueda semántica
Extracción de características
Embeddings de texto para inferencia
Endpoints de inferencia