Sprylab/paraphrase-multilingual-MiniLM-L12-v2-fine-tuned-3

Sprylab
Similitud de oraciones

Este es un modelo sentence-transformers: Mapea oraciones y párrafos a un espacio vectorial denso de 384 dimensiones y puede ser utilizado para tareas como la agrupación o la 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

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

model = SentenceTransformer('Sprylab/paraphrase-multilingual-MiniLM-L12-v2-fine-tuned-3')
embeddings = model.encode(sentences)
print(embeddings)

Uso (HuggingFace Transformers)

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

from transformers import AutoTokenizer, AutoModel
import torch

# Pooling Promedio - Tener en cuenta la máscara de atención para promediar correctamente
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 que queremos embeddings de oraciones
sentences = ['Esta es una oración de ejemplo', 'Cada oración se convierte']

# Cargar modelo desde HuggingFace Hub
tokenizer = AutoTokenizer.from_pretrained('Sprylab/paraphrase-multilingual-MiniLM-L12-v2-fine-tuned-3')
model = AutoModel.from_pretrained('Sprylab/paraphrase-multilingual-MiniLM-L12-v2-fine-tuned-3')

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

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

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

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

Funcionalidades

Modelo basado en sentence-transformers
Espacio vectorial denso de 384 dimensiones
Adecuado para la agrupación de oraciones
Adecuado para búsqueda semántica

Casos de uso

Agrupación de oraciones
Búsqueda semántica
Inferencia de embeddings textuales

Recibe las últimas noticias y actualizaciones sobre el mundo de IA directamente en tu bandeja de entrada.