tomaarsen/mpnet-base-nli-matryoshka

tomaarsen
Similitud de oraciones

Este es un modelo de transformers de frases: Mapea oraciones y párrafos a un espacio vectorial denso de 768 dimensiones y puede ser usado para tareas como agrupación o búsqueda semántica.

Como usar

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

pip install -U sentence-transformers

Luego puedes usar el modelo así:

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

modelo = SentenceTransformer('tomaarsen/mpnet-base-nli-matryoshka')
embeddings = modelo.encode(oraciones)
print(embeddings)

Sin sentence-transformers, puedes usar el modelo así:

from transformers import AutoTokenizer, AutoModel
import torch

# Promedio de 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 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 frases
oraciones = ['This is an example sentence', 'Each sentence is converted']

# Cargar modelo desde HuggingFace Hub

tokenizer = AutoTokenizer.from_pretrained('tomaarsen/mpnet-base-nli-matryoshka')
modelo = AutoModel.from_pretrained('tomaarsen/mpnet-base-nli-matryoshka')

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

# Calcular incrustaciones de tokens
with torch.no_grad():
    model_output = modelo(**encoded_input)

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

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

Funcionalidades

tokenización automática
mapas dimensionales densos
agrupación y búsqueda semántica
compatibilidad con AutoTrain
compatibilidad con Puntos de Inferencia
extracción de características
tamaños de tensor seguros (Safetensors)

Casos de uso

Búsqueda semántica
Agrupación de oraciones
Búsqueda de similitud de oraciones