kamalkraj/BioSimCSE-BioLinkBERT-BASE

kamalkraj
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 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('kamalkraj/BioSimCSE-BioLinkBERT-BASE')
embeddings = model.encode(sentences)
print(embeddings)

Uso (Transformadores de HuggingFace)

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 agrupación correcta sobre las incrustaciones de palabras contextualizadas.

from transformers import AutoTokenizer, AutoModel
import torch

#Agrupación media - Tener en cuenta la atención de la máscara 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 cuales queremos las incrustaciones de oraciones
sentences = ['Esta es una oración de ejemplo', 'Cada oración es convertida']

# Cargar el modelo desde HuggingFace Hub
tokenizer = AutoTokenizer.from_pretrained('kamalkraj/BioSimCSE-BioLinkBERT-BASE')
model = AutoModel.from_pretrained('kamalkraj/BioSimCSE-BioLinkBERT-BASE')

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

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

# Realizar la agrupación. En este caso, agrupación media.
sentence_embeddings = mean_pooling(model_output, encoded_input['attention_mask'])

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

Funcionalidades

Transformadores de oraciones
Basado en BERT
Extracción de características
Inferencia de incrustaciones de texto

Casos de uso

Agrupación de oraciones
Búsqueda semántica
Análisis de similitud semántica
Reconocimiento de implicación de preguntas