sentence-transformers/paraphrase-albert-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 puede ser utilizado para tareas como la agrupación o la 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

Luego puedes usar el modelo así:

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

model = SentenceTransformer('sentence-transformers/paraphrase-albert-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 aplicas la operación adecuada de agrupación sobre las incrustaciones de palabras contextualizadas.

from transformers import AutoTokenizer, AutoModel
import torch

# Agrupación de medias - Considera la máscara de atención para el 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 las incrustaciones
sentences = ['Esta es una oración de ejemplo', 'Cada oración es convertida']

# Cargamos el modelo desde HuggingFace Hub
tokenizer = AutoTokenizer.from_pretrained('sentence-transformers/paraphrase-albert-base-v2')
model = AutoModel.from_pretrained('sentence-transformers/paraphrase-albert-base-v2')

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

# Calculamos las incrustaciones de tokens
with torch.no_grad():
    model_output = model(**encoded_input)

# Realizamos agrupaciones. En este caso, max pooling.
sentence_embeddings = mean_pooling(model_output, encoded_input['attention_mask'])

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

Funcionalidades

Conversión de oraciones y párrafos a un espacio vectorial denso de 768 dimensiones.
Adecuado para tareas como la agrupación y la búsqueda semántica.
Compatible con PyTorch y TensorFlow.
Utiliza el modelo Albert para transformar las oraciones.
Incluye operaciones de agrupación de medias y max pooling.
Etiquetas adicionales: sentence-transformers, transformers, safetensors.

Casos de uso

Agrupación de oraciones para análisis de similaridad.
Búsqueda semántica en bases de datos de texto.
Generación de incrustaciones densas para tareas de procesamiento de lenguaje natural como la comparación de oraciones.