smartmind/ko-sbert-augSTS-maxlength512

smartmind
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 usar para tareas como agrupamiento o búsqueda semántica. Este modelo es snunlp/KR-SBERT-V40K-klueNLI-augSTS con una longitud de entrada máxima de 512.

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 = ['This is an example sentence', 'Each sentence is converted']

model = SentenceTransformer('smartmind/ko-sbert-augSTS-maxlength512')
embeddings = model.encode(sentences)
print(embeddings)

Uso (HuggingFace Transformers)

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

from transformers import AutoTokenizer, AutoModel
import torch

# Agrupación por media: ten 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 cuales queremos embeddings de oraciones
 sentences = ['This is an example sentence', 'Each sentence is converted']

# Cargar el modelo desde HuggingFace Hub
 tokenizer = AutoTokenizer.from_pretrained('smartmind/ko-sbert-augSTS-maxlength512')
 model = AutoModel.from_pretrained('smartmind/ko-sbert-augSTS-maxlength512')

# 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 agrupación. En este caso, agrupación por media.
 sentence_embeddings = mean_pooling(model_output, encoded_input['attention_mask'])

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

Resultados de la Evaluación

Para una evaluación automatizada de este modelo, consulta el Benchmark de Embeddings de Oraciones: https://seb.sbert.net

Funcionalidades

Transformadores de oraciones
Espacio vectorial denso de 768 dimensiones
Extracción de características
Embeddings de texto
Transformadores de PyTorch

Casos de uso

Agrupamiento de oraciones
Búsqueda semántica
Clasificación de documentos