addy88/eli5-all-mpnet-base-v2

addy88
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

Uso (Sentence-Transformers)

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

pip install -U sentence-transformers

Entonces puedes usar el modelo de esta manera:

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

model = SentenceTransformer('addy88/eli5-all-mpnet-base-v2')
embeddings = model.encode(sentences)
print(embeddings)

Uso (HuggingFace Transformers)

Sin sentence-transformers, puedes usar el modelo de esta manera: Primero, pasas tu entrada a través del modelo transformer, luego tienes que aplicar la operación de agrupamiento adecuada sobre las embeddings de palabras contextualizadas.

from transformers import AutoTokenizer, AutoModel
import torch

# Mean Pooling - Tomar la máscara de atención en cuenta para un promedio correcto
def mean_pooling(model_output, attention_mask):
    token_embeddings = model_output[0] # Primer elemento de la salida del modelo 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 cuales queremos embeddings de oraciones
sentences = ['This is an example sentence', 'Each sentence is converted']

# Cargar modelo desde HuggingFace Hub
tokenizer = AutoTokenizer.from_pretrained('addy88/eli5-all-mpnet-base-v2')
model = AutoModel.from_pretrained('addy88/eli5-all-mpnet-base-v2')

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

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

Resultados de Evaluación

Para una evaluación automatizada de este modelo, ver el Benchmark de Embeddings de Oraciones: https://seb.sbert.net

Funcionalidades

Transformadores de oraciones
PyTorch
Transformers
roberta
Extracción de características
Inferencia de embeddings de texto
Puntos finales de inferencia
Compatible con AutoTrain
Etiqueta de Similitud de Oraciones

Casos de uso

Agrupamiento de oraciones
Búsqueda semántica