Model reference · open weights
silver-retriever is an open-weight embedding model from ipipan. AxForge deploys and operates it for you on dedicated EU-owned hardware — with the licence handled where one is required.
Available as managed deployment — configured and operated for you on dedicated EU hardware, quoted per deployment.
What it is
| Released by | ipipan |
|---|---|
| Type | Embedding models |
| Task | Embeddings |
| Parameters (lead) | 124M |
| Context | 514 tokens |
| Runs with | sentence-transformers |
| Released | 2023-11-27 |
| Popularity | 3k downloads / month |
| Licence | Open weights |
About
Silver Retriever model encodes the Polish sentences or paragraphs into a 768-dimensional dense vector space and can be used for tasks like document retrieval or semantic search.
It was initialized from the HerBERT-base model and fine-tuned on the PolQA and MAUPQA datasets for 8,000 steps with a batch size of 8,192. Please refer to the SilverRetriever: Advancing Neural Passage Retrieval for Polish Question Answering for more details.
| Model | Average [Acc] | Average [NDCG] | PolQA [Acc] | PolQA [NDCG] | Allegro FAQ [Acc] | Allegro FAQ [NDCG] | Legal Questions [Acc] | Legal Questions [NDCG] |
|---|---|---|---|---|---|---|---|---|
| BM25 | 74.87 | 51.81 | 61.35 | 24.51 | 66.89 | 48.71 | 96.38 | 82.21 |
| BM25 (lemma) | 80.46 | 55.44 | 71.49 | 31.97 | 75.33 | 55.70 | 94.57 | 78.65 |
| MiniLM-L12-v2 | 62.62 | 39.21 | 37.24 | 11.93 | 71.67 | 51.25 | 78.97 | 54.44 |
| LaBSE | 64.89 | 39.47 | 46.23 | 15.53 | 67.11 | 46.71 | 81.34 | 56.16 |
| mContriever-Base | 86.31 | 60.37 | 78.66 | 36.30 | 84.44 | 67.38 | 95.82 | 77.42 |
| E5-Base | 91.58 | 66.56 | 86.61 | 46.08 | 91.89 | 75.90 | 96.24 | 77.69 |
| ST-DistilRoBERTa | 73.78 | 48.29 | 48.43 | 16.73 | 84.89 | 64.39 | 88.02 | 63.76 |
| ST-MPNet | 76.66 | 49.99 | 56.80 | 21.55 | 86.00 | 65.44 | 87.19 | 62.99 |
| HerBERT-QA | 84.23 | 54.36 | 75.84 | 32.52 | 85.78 | 63.58 | 91.09 | 66.99 |
| Silver Retriever v1 | 92.45 | 66.72 | 87.24 | 43.40 | 94.56 | 79.66 | 95.54 | 77.10 |
| Silver Retriever v1.1 | 93.18 | 67.55 | 88.60 | 44.88 | 94.00 | 79.83 | 96.94 | 77.95 |
Legend:
The model was trained on question-passage pairs and works best when the input is the same format as that used during training:
Pytanie: to the beginning of the question.title and text concatenated with the special token . Even if your passages don't have a `title`, it is still beneficial to prefix a passage with the token.Using this model becomes easy when you have sentence-transformers installed:
pip install -U sentence-transformers
Then you can use the model like this:
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)
Without sentence-transformers, you can use the model like this: First, you pass your input through the transformer model, then you have to apply the right pooling-operation on-top of the contextualized word embeddings.
from transformers import AutoTokenizer, AutoModel
import torch
def cls_pooling(model_output, attention_mask):
return model_output[0][:,0]
# Sentences we want sentence embeddings for
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.",
]
# Load model from HuggingFace Hub
tokenizer = AutoTokenizer.from_pretrained('ipipan/silver-retriever-base-v1.1')
model = AutoModel.from_pretrained('ipipan/silver-retriever-base-v1.1')
# Tokenize sentences
encoded_input = tokenizer(sentences, padding=True, truncation=True, return_tensors='pt')
# Compute token embeddings
with torch.no_grad():
model_output = model(**encoded_input)
# Perform pooling. In this case, cls pooling.
sentence_embeddings = cls_pooling(model_output, encoded_input['attention_mask'])
print("Sentence embeFrom the published model card. Full card on the HuggingFace links in the sidebar.
Using it via the API
Once AxForge deploys silver-retriever for you, it answers on the OpenAI-compatible API — the same base URL and keys as every other model. (silver-retriever below is illustrative; you get the exact model name on deployment.)
$ curl -sS https://api.axforge.ai/v1/embeddings \
-H "Authorization: Bearer $AXFORGE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"silver-retriever","input":"text to embed"}'
Create an account — your API key is available in the console. 3M free tokens every 30 days with every new account.