NanoVDR · DistilVDR · ColNanoVDR

Efficient visual document retrieval with small distilled encoders

NanoVDR is a family of small encoders aligned to the embedding space of a frozen vision-language retriever. A text encoder of 69M to 395M parameters answers each query, so pages indexed by a 2B to 8B model are searched without running that model per request. DistilVDR adds a 457M page encoder, which takes the large model out of indexing as well.

Zhuchenyang Liu, Ziyi Wang, Yao Zhang, Yu Xiao · Aalto University

NanoVDR banner: a small figure in a jacket holding a retrieved page beside floating document thumbnails

51ms

per query on one CPU thread for the 69M DistilBERT query encoder, at 95.1% of its 2B teacher on ViDoRe.

NanoVDR

527M

parameters in the full DistilVDR pair. No multi-billion model runs at indexing or at query time.

DistilVDR

95.7–98.1%

retention for multi-vector query encoders across five late-interaction teachers, trained without a single page image.

ColNanoVDR

Overview

A query is text. It does not need a vision model.

Visual document retrieval matches a text query against page images, with no OCR in between. The strongest retrievers are 2B to 8B vision-language models. Indexing a corpus with one is a one-time cost; running the same model on every query is a cost that never stops. Each NanoVDR paper moves a different part of that work onto a small student.

SetupOffline, once per corpusOnline, on every query
VLM retrieverthe usual setup
PagesVLM · 2B to 8BIndex
QueryVLM · 2B to 8BScores
NanoVDRreplaces the query side
PagesVLM teacher · 2BSingle-vector index
QueryText encoder · 69MDot product
DistilVDRreplaces both sides
PagesPage encoder · 457MSingle-vector index
QueryText encoder · 70MDot product
ColNanoVDRmulti-vector query side
PagesColPali-style VLM · 4.5B to 8BMulti-vector index
QueryText encoder · 150MMaxSim

Grey blocks are multi-billion vision-language models. Tinted blocks are NanoVDR students.

One loss, no labels

Each student minimises a direct discrepancy to cached teacher embeddings. No relevance labels, no hard-negative mining, no contrastive sampling.

Encoders train alone

An encoder only sees its own cached targets, so a query encoder and a page encoder can be trained separately and paired afterwards.

Works with the teacher's index

A student lands in its teacher's space, so it scores an index the teacher already built. Teacher and output width must match.

Models

Three papers, one recipe

Each paper replaces a different part of a vision-language retriever with a small student. All checkpoints are on the Hugging Face Hub under nanovdr.

QEMNLP 2026 Main

NanoVDR

Single-vector query encoders

A 69M to 151M text encoder replaces Qwen3-VL-Embedding-2B at query time. Pages stay in the teacher's index and scoring is a dot product.

Replaces
the teacher at query time
Teacher
Qwen3-VL-Embedding-2B
Result
82.2 / 61.9 / 46.5 NDCG@5 on ViDoRe v1 / v2 / v3 with 69M parameters
Q + DDocInsights @ EMNLP 2026

DistilVDR

Query and page encoders

Adds NanoVDR-D, a 457M page encoder, so both sides are students. A deployed pair has no multi-billion model in it at any point.

Replaces
the teacher at query and indexing time
Teacher
Qwen3-VL-Embedding-8B
Result
61.74 average NDCG@5 over ViDoRe v1 to v3, end to end
Col · QPreprint

ColNanoVDR

Multi-vector query encoders

A text encoder emits a set of token vectors in a ColPali-style teacher's space, so the existing page index is scored by MaxSim unchanged. Training is document-free.

Replaces
the late-interaction teacher at query time
Teachers
ColQwen3.5, Vultron, Tomoro, ColVec 4B and 8B, EVIE 4.5B and 8B
Result
96.1% of ColQwen3.5-4.5B with a 150M encoder

Results

One benchmark for all three: ViDoRe v3

Every model with ViDoRe v3 results in the MTEB results repository, plotted by size against quality. NanoVDR and ColNanoVDR sit on the Pareto front: no listed model is both smaller and better. Each dashed arrow runs from a teacher to the student distilled from it.

Scroll sideways to see the whole chart.

ViDoRe v3 quality against model size Scatter plot of NDCG@5 on the eight public ViDoRe v3 tasks against parameter count on a log scale for every model in the MTEB results repository. NanoVDR at 69M and ColNanoVDR at 150M lie on the Pareto front; dashed lines connect each NanoVDR student to its teacher. 20 25 30 35 40 45 50 55 60 65 50M 100M 200M 500M 1B 2B 5B 10B Parameters as listed on MTEB (log scale) ViDoRe v3 NDCG@5 Pareto front ModernVBERT/colmodernvbert athrael-soju/BiUltraVBERT athrael-soju/ColUltraVBERT VAGOsolutions/SauerkrautLM-ColLFM2-450M-v0.1 perplexity-ai/pplx-embed-v2-late-0.6b vultr/VultronRetrieverFlash-Qwen3.5-0.8B topk-io/topk-embed-v1-xsmall jinaai/jina-embeddings-v5-omni-nano nvidia/Nemotron-3.5-Embed-1B-BF16 jinaai/jina-embeddings-v5-omni-small VAGOsolutions/SauerkrautLM-ColQwen3-1.7b-Turbo-v0.1 VAGOsolutions/SauerkrautLM-ColQwen3-2b-v0.1 vidore/colqwen2-v1.0 topk-io/topk-embed-v1-small DataScience-UIBK/Argus-Colqwen3.5-2b-v0 nvidia/llama-nemoretriever-colembed-1b-v1 vidore/colpali-v1.3 nomic-ai/colnomic-embed-multimodal-3b vidore/colqwen2.5-v0.2 jinaai/jina-embeddings-v4 TomoroAI/tomoro-colqwen3-embed-4b eagerworks/eager-embed-v1 VAGOsolutions/SauerkrautLM-ColMinistral3-3b-v0.1 nvidia/llama-nemoretriever-colembed-3b-v1 nvidia/llama-nemotron-colembed-vl-3b-v2 VAGOsolutions/SauerkrautLM-ColQwen3-4b-v0.1 Verm1ion/ColTurk-VDR-Qwen3VL-4B-v1.0 vultr/VultronRetrieverCore-Qwen3.5-4.5B webAI-Official/webAI-ColVec1-4b tencent/EVIE-4.5B athrael-soju/colqwen3.5-4.5B-v3 DataScience-UIBK/Argus-Colqwen3.5-4b-v0-bf16 OpenSearch-AI/Ops-Colqwen3-4B nvidia/nemotron-colembed-vl-4b-v2 nomic-ai/colnomic-embed-multimodal-7b TomoroAI/tomoro-colqwen3-embed-8b VAGOsolutions/SauerkrautLM-ColQwen3-8b-v0.1 nvidia/Nemotron-3.5-Embed-8B-BF16 perplexity-ai/pplx-embed-v2-late-9b vultr/VultronRetrieverPrime-Qwen3.5-8B tencent/EVIE-8B nvidia/nemotron-colembed-vl-8b-v2 DataScience-UIBK/Argus-Colqwen3.5-9b-v0-bf16 webAI-Official/webAI-ColVec1-9b Qwen/Qwen3-VL-Embedding-2B Qwen/Qwen3-VL-Embedding-8B webAI-Official/webAI-ColVec1.1-8b webAI-Official/webAI-ColVec1.1-4b NanoVDR-Q-DistilBERT-Qwen3VL2B-2048-ML ColNanoVDR-Q-Ettin150M-ColVec8B-640-ML ColNanoVDR-Q-Ettin150M-ColVec4B-640-ML DistilVDR-HiRes (NanoVDR-D-HiRes + NanoVDR-Q-8B) Qwen3-VL-Emb-2B Qwen3-VL-Emb-8B ColVec1.1-8b ColVec1.1-4b NanoVDR · 69M ColNanoVDR · 8B teacher ColNanoVDR · 4B teacher DistilVDR · 527M

ViDoRe v3, NDCG@5 averaged over the eight public tasks and their six query languages, computed from the MTEB results repository (snapshot of 2026-10-26, commit f530b79). Horizontal axis: parameters as listed on MTEB, which for NanoVDR and ColNanoVDR counts the query encoder; their pages are indexed by the teacher at the other end of the dashed line. DistilVDR is drawn at its full size, page and query encoder together. Its score comes from the DistilVDR paper under the same protocol; it has not been submitted to MTEB and the two private tasks were not run. 13 models below 20 NDCG@5 are not drawn: 10 CLIP and SigLIP variants, and bimodernvbert, modernvbert-embed and colSmol-256M. Hover or tap a point for its name.

Our models on ViDoRe v3

ModelParams on MTEBPages indexed byNDCG@5, 8 public tasksMTEB leaderboard
NanoVDR-Q-DistilBERT-Qwen3VL2B-2048-ML69MQwen3-VL-Embedding-2B46.4649.08
ColNanoVDR-Q-Ettin150M-ColVec8B-640-ML150MwebAI-ColVec1.1-8b60.1862.35
ColNanoVDR-Q-Ettin150M-ColVec4B-640-ML150MwebAI-ColVec1.1-4b59.0461.19
NanoVDR-D-HiRes-Qwen3VL8B-4096 +
NanoVDR-Q-DistilBERT-Qwen3VL8B-4096-ML
527M, not on MTEBits own 457M page encoder47.07 (paper)not submitted

MTEB leaderboard: the score shown on the ViDoRe(v3) leaderboard, NDCG@10 averaged over all ten tasks including the two private ones. On MTEB, NanoVDR-Q-DistilBERT-Qwen3VL2B-2048-ML is still listed under its earlier name, NanoVDR-S-Multi.

Deployment

Pick the pair that matches your index

A query encoder and a page index work together when both target the same teacher at the same output width. The model name says which.

SetupIndex pages withAnswer queries withMulti-billion model at serving
NanoVDRQwen3-VL-Embedding-2BNanoVDR-Q-*-Qwen3VL2B-2048indexing only
DistilVDRNanoVDR-D-*-Qwen3VL8B-4096NanoVDR-Q-DistilBERT-Qwen3VL8B-4096-MLnever
ColNanoVDRthe matching ColPali-style teacherColNanoVDR-Q-* for that teacherindexing only
[Col]NanoVDR-<Q|D>-<variant>-<teacher>-<width>[-ML]

Col marks a multi-vector model. Q or D says which side it replaces. Teacher and width fix the embedding space; -ML means it was trained on the multilingual mixture.

Quick start

Load from the Hub

Every checkpoint loads with sentence-transformers and has no dependency on the NanoVDR repository.

from sentence_transformers import SentenceTransformer

query = SentenceTransformer("nanovdr/NanoVDR-Q-DistilBERT-Qwen3VL2B-2048-ML")
q_emb = query.encode(["What was the revenue growth in Q3 2024?"])   # (1, 2048)

scores = q_emb @ doc_emb.T   # doc_emb: pages indexed by Qwen3-VL-Embedding-2B

Pass the raw query. Do not add an instruction prefix. The teacher's instruction was applied when its targets were cached, and every published number was measured on bare query text.

FAQ

Common questions

Can visual document retrieval run on a CPU?

The query side can. The 69M NanoVDR query encoder answers a query in 51 ms on one CPU thread. Pages are still encoded once, offline, on a GPU, either by the teacher or by a NanoVDR-D page encoder.

Can I keep my existing ColPali-style index?

Yes, if one of the supported teachers built it: ColQwen3.5-4.5B, Vultron-4.5B, Tomoro-8B, ColVec1.1 4B or 8B, or EVIE 4.5B or 8B. The matching ColNanoVDR query encoder emits token vectors in that teacher's space, and the index is scored by MaxSim unchanged.

Do I need relevance labels or hard negatives to train one?

No. Every encoder is trained against cached teacher embeddings with a single alignment loss. ColNanoVDR also needs no page images: it only consumes the teacher's cached query token embeddings.

Which languages are supported?

The -ML models were trained on English plus five Latin-script European languages, translated with MarianMT. Non-Latin scripts are untested.

Which model should I start with?

For a single-vector index built by Qwen3-VL-Embedding-2B, NanoVDR-Q-DistilBERT-Qwen3VL2B-2048-ML. For a deployment with no large model at all, the DistilVDR pair. For a ColQwen3.5 multi-vector index, ColNanoVDR-Q-Ettin150M-ColQwen35-320-ML.

Papers

Read and cite

EMNLP 2026 · Main Conference

NanoVDR: Distilling a 2B Vision-Language Retriever into a 70M Text-Only Encoder for Visual Document Retrieval

Zhuchenyang Liu, Yao Zhang, Yu Xiao

BibTeX
@inproceedings{liu-etal-2026-nanovdr,
    title = "{N}ano{VDR}: Distilling a 2{B} Vision-Language Retriever into a 70{M} Text-Only Encoder for Visual Document Retrieval",
    author = "Liu, Zhuchenyang  and
      Zhang, Yao  and
      Xiao, Yu",
    editor = "Lee, Hung-Yi  and
      Dev, Sunipa  and
      Li, Jessy  and
      Elliott, Desmond",
    booktitle = "Proceedings of the 2026 Conference on Empirical Methods in Natural Language Processing",
    month = oct,
    year = "2026",
    address = "Budapest, Hungary",
    publisher = "Association for Computational Linguistics",
    url = "https://aclanthology.org/2026.emnlp-main.71/",
    pages = "1631--1648",
    ISBN = "979-8-89176-459-0"
}
DocInsights Workshop @ EMNLP 2026

DistilVDR: A Compact End-to-End Visual Document Retriever via Dual-Student Distillation

Zhuchenyang Liu, Ziyi Wang, Yao Zhang, Yu Xiao

BibTeX
@inproceedings{liu-etal-2026-distilvdr,
    title = "{D}istil{VDR}: A Compact End-to-End Visual Document Retriever via Dual-Student Distillation",
    author = "Liu, Zhuchenyang  and
      Wang, Ziyi  and
      Zhang, Yao  and
      Xiao, Yu",
    editor = "T.Y.S.S., Santosh  and
      Agarwal, Amit  and
      Gupta, Vivek  and
      Kementchedjhieva, Yova  and
      Garimella, Aparna  and
      Hou, Yufang",
    booktitle = "The Proceedings of Workshop on Document Intelligence and Understanding",
    month = oct,
    year = "2026",
    address = "Budapest, Hungary",
    publisher = "Association for Computational Linguistics",
    url = "https://aclanthology.org/2026.docinsights-1.26/",
    pages = "385--399",
    ISBN = "979-8-89176-477-4"
}
Preprint

ColNanoVDR: Document-Free Query Distillation for Multi-Vector Visual Document Retrieval via Optimal Transport

Zhuchenyang Liu, Ziyi Wang, Yao Zhang, Yu Xiao

BibTeX
@misc{liu2026colnanovdrdocumentfreequerydistillation,
      title={ColNanoVDR: Document-Free Query Distillation for Multi-Vector Visual Document Retrieval via Optimal Transport},
      author={Zhuchenyang Liu and Ziyi Wang and Yao Zhang and Yu Xiao},
      year={2026},
      eprint={2609.34899},
      archivePrefix={arXiv},
      primaryClass={cs.IR},
      url={https://arxiv.org/abs/2609.34899},
}