sentence-transformers/all-mpnet-base-v2

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 se puede utilizar para tareas como la agrupación o la búsqueda semántica.

Como usar

Uso (Sentence-Transformers)

Utilizar este modelo se vuelve 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('sentence-transformers/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 de transformer, luego debes aplicar la operación de agrupamiento adecuada en la parte superior de las embeddings de palabras contextualizadas.

from transformers import AutoTokenizer, AutoModel
import torch
import torch.nn.functional as F

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

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

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

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

# Realizar agrupamiento
 sentence_embeddings = mean_pooling(model_output, encoded_input['attention_mask'])

# Normalizar embeddings
 sentence_embeddings = F.normalize(sentence_embeddings, p=2, dim=1)

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

Funcionalidades

Transformadores de oraciones
PyTorch
Safetensors
Transformers

Casos de uso

Recuperación de información
Agrupación
Tareas de similitud de oraciones