Silver Retriever Base (v1)
ipipan
Similitud de oraciones
El modelo Silver Retriever codifica las oraciones o párrafos en polaco en un espacio vectorial denso de 768 dimensiones y puede ser utilizado para tareas como recuperación de documentos o búsqueda semántica. Se inició a partir del modelo HerBERT-base y se ajustó con los conjuntos de datos PolQA y MAUPQA durante 15,000 pasos con un tamaño de lote de 1,024. Consulte el documento SilverRetriever: Advancing Neural Passage Retrieval for Polish Question Answering para obtener más detalles.
Como usar
Preparación de entradas
El modelo fue entrenado en pares de preguntas y pasajes y funciona mejor cuando la entrada tiene el mismo formato que se usó durante el entrenamiento:
- Agregamos la frase 'Pytanie:' al comienzo de la pregunta.
- Los pasajes de entrenamiento consistían en el título y el texto concatenados con el token especial '.'. Incluso si sus pasajes no tienen título, es beneficioso prefijar un pasaje con el token.
- Aunque usamos el producto punto durante el entrenamiento, el modelo generalmente funciona mejor con la distancia coseno.
Inferencia con Sentence-Transformers
pip install -U sentence-transformers
from sentence_transformers import SentenceTransformer
sentences = [
"Pytanie: W jakim mieście urodził się Zbigniew Herbert?",
"Zbigniew HerbertZbigniew Bolesław Ryszard Herbert (ur. 29 października 1924 we Lwowie, zm. 28 lipca 1998 w Warszawie) – polski poeta, eseista i dramaturg."
]
model = SentenceTransformer('ipipan/silver-retriever-base-v1')
embeddings = model.encode(sentences)
print(embeddings)
Inferencia con HuggingFace Transformers
from transformers import AutoTokenizer, AutoModel
import torch
def cls_pooling(model_output, attention_mask):
return model_output[0][:,0]
# Oraciones para las que queremos obtener embeddings de oraciones
sentences = [
"Pytanie: W jakim mieście urodził się Zbigniew Herbert?",
"Zbigniew HerbertZbigniew Bolesław Ryszard Herbert (ur. 29 października 1924 we Lwowie, zm. 28 lipca 1998 w Warszawie) – polski poeta, eseista i dramaturg."
]
# Cargar modelo desde HuggingFace Hub
tokenizer = AutoTokenizer.from_pretrained('ipipan/silver-retriever-base-v1')
model = AutoModel.from_pretrained('ipipan/silver-retriever-base-v1')
# 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 pooling. En este caso, cls pooling.
sentence_embeddings = cls_pooling(model_output, encoded_input['attention_mask'])
print("Embeddings de oraciones:")
print(sentence_embeddings)
Funcionalidades
- Codificación de oraciones y párrafos en polaco
- Espacio vectorial denso de 768 dimensiones
- Recuperación de documentos
- Búsqueda semántica
- Ajustado en los conjuntos de datos PolQA y MAUPQA
- Capacidad de recuperación neuronal
Casos de uso
- Recuperación de documentos
- Búsqueda semántica
- Sistemas de respuesta a preguntas en polaco