Silver Retriever Base (v1.1)
El modelo Silver Retriever codifica oraciones o párrafos en polaco en un espacio vectorial denso de 768 dimensiones y puede usarse para tareas como la recuperación de documentos o la búsqueda semántica. Se inicializó a partir del modelo HerBERT-base y se ajustó con los conjuntos de datos PolQA y MAUPQA durante 8,000 pasos con un tamaño de lote de 8,192.
Como usar
Preparar entradas
El modelo se entrenó en pares de preguntas y pasajes y funciona mejor cuando la entrada tiene el mismo formato que el utilizado durante el entrenamiento:
- Añadimos 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. Aunque tus pasajes no tengan un título, sigue siendo 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
Usar este modelo se vuelve fácil cuando tienes sentence-transformers instalado:
pip install -U sentence-transformers
Después puedes usar el modelo así:
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.1')
embeddings = model.encode(sentences)
print(embeddings)
Inferencia con HuggingFace Transformers
Sin sentence-transformers, puedes usar el modelo así: primero, pasas tu entrada a través del modelo transformer, luego debes aplicar la operación de agrupamiento correcta en la parte superior de las incrustaciones de palabras contextualizadas.
from transformers import AutoTokenizer, AutoModel
import torch
def cls_pooling(model_output, attention_mask):
return model_output[0][:,0]
# Frases para las que queremos las incrustaciones 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 el modelo desde HuggingFace Hub
tokenizer = AutoTokenizer.from_pretrained('ipipan/silver-retriever-base-v1.1')
model = AutoModel.from_pretrained('ipipan/silver-retriever-base-v1.1')
# Tokenizar frases
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 agrupamiento. En este caso, agrupamiento cls.
sentence_embeddings = cls_pooling(model_output, encoded_input['attention_mask'])
print("Incrustaciones de oraciones:")
print(sentence_embeddings)
Funcionalidades
- Codificación de oraciones o párrafos en polaco
- Espacio vectorial denso de 768 dimensiones
- Adecuado para tareas de recuperación de documentos y búsqueda semántica
- Inicializado a partir del modelo HerBERT-base
- Ajustado en los conjuntos de datos PolQA y MAUPQA
- Entrenado durante 8,000 pasos
- Tamaño de lote de 8,192
Casos de uso
- Recuperación de documentos
- Búsqueda semántica
- Respuesta a preguntas en polaco