DeCLUTR-base

johngiorgi
Similitud de oraciones

El modelo 'DeCLUTR-base' de nuestro artículo: DeCLUTR: Deep Contrastive Learning for Unsupervised Textual Representations. El modelo está destinado a ser utilizado como un codificador universal de oraciones, similar al Codificador Universal de Oraciones de Google o Sentence Transformers.

Como usar

Con SentenceTransformers:

from scipy.spatial.distance import cosine
from sentence_transformers import SentenceTransformer

# Cargar el modelo
model = SentenceTransformer('johngiorgi/declutr-base')

# Preparar algo de texto para incrustar
texts = [
'A smiling costumed woman is holding an umbrella.',
'A happy woman in a fairy costume holds an umbrella.',
]

# Incrustar el texto
embeddings = model.encode(texts)

# Calcular una similitud semántica vía la distancia de coseno
semantic_sim = 1 - cosine(embeddings[0], embeddings[1])

Con 🤗 Transformers:

import torch
from scipy.spatial.distance import cosine
from transformers import AutoModel, AutoTokenizer

# Cargar el modelo
tokenizer = AutoTokenizer.from_pretrained('johngiorgi/declutr-base')
model = AutoModel.from_pretrained('johngiorgi/declutr-base')

# Preparar algo de texto para incrustar
text = [
'A smiling costumed woman is holding an umbrella.',
'A happy woman in a fairy costume holds an umbrella.',
]
inputs = tokenizer(text, padding=True, truncation=True, return_tensors='pt')

# Incrustar el texto
with torch.no_grad():
 sequence_output = model(**inputs)[0]

# Realizar un pooling medio de las incrustaciones a nivel de tokens para obtener incrustaciones a nivel de oración
embeddings = torch.sum(
 sequence_output * inputs['attention_mask'].unsqueeze(-1), dim=1
) / torch.clamp(torch.sum(inputs['attention_mask'], dim=1, keepdims=True), min=1e-9)

# Calcular una similitud semántica vía la distancia de coseno
semantic_sim = 1 - cosine(embeddings[0], embeddings[1])

Funcionalidades

sentence-transformers
PyTorch
JAX
roberta
feature-extraction
sentence-similarity
text-embeddings-inference
endpoints_compatible

Casos de uso

Codificación universal de oraciones
Comparación de similitud de oraciones
Extracción de características textuales