sentence-transformers/facebook-dpr-ctx_encoder-single-nq-base

sentence-transformers
Similitud de oraciones

Este es un port del Modelo DPR al modelo sentence-transformers: Mapea oraciones y párrafos a un espacio vectorial denso de 768 dimensiones y se puede utilizar para tareas como la agrupación o la búsqueda semántica.

Como usar

Uso (Sentence-Transformers)

Usar este modelo se vuelve fácil cuando tienes instalados los sentence-transformers:

pip install -U sentence-transformers

Entonces puedes usar el modelo de esta manera:

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

model = SentenceTransformer('sentence-transformers/facebook-dpr-ctx_encoder-single-nq-base')
embeddings = model.encode(sentences)
print(embeddings)

Uso (HuggingFace Transformers)

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

from transformers import AutoTokenizer, AutoModel
import torch

def cls_pooling(model_output, attention_mask):
    return model_output[0][:,0]

# Oraciones para las que queremos embeddings de oraciones
sentences = ['This is an example sentence', 'Each sentence is converted']

# Cargar modelo desde HuggingFace Hub
tokenizer = AutoTokenizer.from_pretrained('sentence-transformers/facebook-dpr-ctx_encoder-single-nq-base')
model = AutoModel.from_pretrained('sentence-transformers/facebook-dpr-ctx_encoder-single-nq-base')

# 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 máxima.
sentence_embeddings = cls_pooling(model_output, encoded_input['attention_mask'])

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

Funcionalidades

Agrupación de oraciones
Búsqueda semántica
Extracción de características
Inferencia de embeddings de texto

Casos de uso

Búsqueda semántica
Agrupación de oraciones
Análisis de similitud de textos
Extracción automática de características de texto