nord-triplet-hsm-bert-base-uncased

CC-AI-Labs
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 agrupamiento o búsqueda semántica.

Como usar

Uso (Sentence-Transformers)

pip install -U sentence-transformers

from sentence_transformers import SentenceTransformer
sentences = ["This is an example sentence", "Each sentence is converted"]

model = SentenceTransformer('nord-triplet-hsm-bert-base-uncased')
embeddings = model.encode(sentences)
print(embeddings)

Uso (HuggingFace Transformers)

from transformers import AutoTokenizer, AutoModel
import torch

# Mean Pooling - Considerar 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 modelo desde HuggingFace Hub
tokenizer = AutoTokenizer.from_pretrained('nord-triplet-hsm-bert-base-uncased')
model = AutoModel.from_pretrained('nord-triplet-hsm-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 el pooling. En este caso, el mean pooling.
sentence_embeddings = mean_pooling(model_output, encoded_input['attention_mask'])

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

Funcionalidades

Transformadores de Google TensorFlow
Safetensors
Transformadores BERT
Extracción de características
Inferencia de incrustaciones de texto
EndPoints de inferencia
Eficiente en la creación de embeddings de oraciones

Casos de uso

Clustering
Búsqueda semántica
Conversión de oraciones a un espacio denso de vectores