DataikuNLP/paraphrase-multilingual-MiniLM-L12-v2

DataikuNLP
Similitud de oraciones

Este modelo es una copia de este repositorio de modelos de sentence-transformers en el commit específico d66eff4d8a8598f264f166af8db67f7797164651. Este es un modelo de sentence-transformers: mapea oraciones y párrafos a un espacio vectorial denso de 384 dimensiones y se puede utilizar para tareas como agrupamiento o búsqueda semántica.

Como usar

Uso (Sentence-Transformers)

Usar 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 = ["Esta es una oración de ejemplo", "Cada oración se convierte"]

model = SentenceTransformer('sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2')
embeddings = model.encode(sentences)
print(embeddings)

Uso (Transformers de HuggingFace)

Sin sentence-transformers, puedes usar el modelo de esta manera: Primero, pasa tu entrada a través del modelo transformer, luego debes aplicar la operación de pooling correcta sobre los embeddings de palabras contextualizadas.

from transformers import AutoTokenizer, AutoModel
import torch

#Mean Pooling - Tomar 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 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 embeddings
sentences = ['Esta es una oración de ejemplo', 'Cada oración se convierte']

# Cargar modelo desde HuggingFace Hub
tokenizer = AutoTokenizer.from_pretrained('sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2')
model = AutoModel.from_pretrained('sentence-transformers/paraphrase-multilingual-MiniLM-L12-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 pooling. En este caso, max pooling.
sentence_embeddings = mean_pooling(model_output, encoded_input['attention_mask'])

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

Funcionalidades

Similaridad de oraciones
Extracción de características
Embeddings de texto
Compatible con PyTorch
Compatible con Transformers

Casos de uso

Realizar búsqueda semántica
Agrupamiento de oraciones similares
Generación de embeddings de textos