Model setup recipes

Search English documents with a small model: UIBK-Embedding-v1

Use this English checkpoint for English retrieval experiments.

UIBK-Embedding-v1 is a 179M English embedding model. It combines dense and token-level late-interaction scores, so evaluate corpus scale and index size together.

Requirements and key details
  • It is an English-only 179M checkpoint.
  • Measure token-level late-interaction storage as well as pooled vectors.

An encoder for English retrieval candidates

UIBK-Embedding-v1 is a 179M model that encodes English queries and passages for retrieval. It combines dense vectors with token-level late-interaction scores in a PLAID search path, so the experiment should follow the documented retrieval workflow.

For example, fix a query and its gold page in 500 product-support documents, then grow the index through 100, 500, and 2,000 pages. Track retrieval success and token-level index growth.

Documents are split into search passages, with selected passages sent to a local computer
As documents grow, token-level representations add to vector storage.

Use the PLAID path and supported language

This example follows the documented PyLate ColBERT + PLAID path. It does not include a dense-only ablation. Its separate ./uibk-plaid-demo folder and support-demo index name keep it away from existing indexes.

With four passages indexed and one query sent, it prints PLAID result IDs and scores. This small example checks the API1 path. For Recall@10 comparison, prepare a larger English query set with labeled gold documents.

Index four passages in a separate PLAID demo index
from pylate import indexes, models, retrieve

model = models.ColBERT("DataScience-UIBK/uibk-embedding-v1", trust_remote_code=True)
document_ids = ["refund", "delivery", "battery", "warranty"]
documents = [
    "Refund requests are processed within five business days after cancellation.",
    "Delivery addresses can be changed before an order is prepared.",
    "The battery health report is available in Settings under Power.",
    "The limited warranty lasts for two years from the purchase date.",
]
index = indexes.PLAID(index_folder="./uibk-plaid-demo", index_name="support-demo", override=False)
doc_vectors = model.encode(documents, is_query=False, prompt_name="document")
index.add_documents(documents_ids=document_ids, documents_embeddings=doc_vectors)
search = retrieve.ColBERT(index=index)
query_vectors = model.encode(
    ["Where can I see the battery health report?"],
    is_query=True,
    prompt_name="query",
)
for result in search.retrieve(queries_embeddings=query_vectors, k=3)[0]:
    print(result)
Install the documented PyLate stack
python -m venv .venv
source .venv/bin/activate
python -m pip install -U pylate 'transformers>=5.3' 'sentence-transformers>=5.3'
Cards organize the expected evidence for each query
Use fixed gold queries to compare English retrieval.

Separate vector size from total index size

As the corpus grows, record embedding time, query latency, Recall@10, and the size of the PLAID index directory. Late interaction retains token-level representations, so pooled vector bytes do not describe the full index.

For 200 queries, record the share whose gold passage appears in the top ten. If memory runs short, change batch size2 or index settings one at a time. Keep the checkpoint3 when quality and latency fit your current hardware.

If your documents are not in English, do not use this model as the baseline. Even for English, when retrieval scores fall short, change how you split passages and the chunk size first.

Two computers compare document indexing and retrieval results
Measure accuracy and actual index size together.

Terminology notes

  1. API — A defined interface that lets other code call a program’s functions.

    Back to the text
  2. Batch size — The number of inputs or requests processed together in one batch.

    Back to the text
  3. Checkpoint — A file containing saved model weights and related state. Versions or tasks in one model family may use different checkpoints.

    Back to the text

Frequently asked questions

What should you check first in this article?
UIBK-Embedding-v1 is a 179M English embedding model. It combines dense and token-level late-interaction scores, so evaluate corpus scale and index size together.
How much memory does it need?
For 200 queries, record the share whose gold passage appears in the top ten. If memory runs short, change batch size or index settings one at a time. Keep the checkpoint when quality and latency fit your current hardware.