Greek Media SBERT (uncased)

dimitriz
Similitud de oraciones

Este es un modelo basado en sentence-transformers del modelo Greek Media BERT (uncased): Mapea oraciones y párrafos a un espacio vectorial denso de 768 dimensiones y puede usarse para tareas como agrupamiento o búsqueda semántica.

Como usar

El uso de este modelo se vuelve fácil cuando tienes sentence-transformers instalado:

pip install -U sentence-transformers

Entonces puedes usar el modelo así:

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

model = SentenceTransformer('dimitriz/st-greek-media-bert-base-uncased')
embeddings = model.encode(sentences)
print(embeddings)

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 agrupamiento apropiada en la parte superior de los embeddings de las palabras contextualizadas.

from transformers import AutoTokenizer, AutoModel
import torch

# Agrupamiento medio - Tener 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 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 cuales 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('dimitriz/st-greek-media-bert-base-uncased')
model = AutoModel.from_pretrained('dimitriz/st-greek-media-bert-base-uncased')

# 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 agrupamiento. En este caso, agrupamiento medio.
sentence_embeddings = mean_pooling(model_output, encoded_input['attention_mask'])

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

Funcionalidades

Transformador de oraciones
Mapeo de oraciones y párrafos a un espacio vectorial denso
Tareas de agrupamiento
Búsqueda semántica
Transformers

Casos de uso

Agrupamiento de oraciones
Búsqueda semántica