/ Модель

Характеристики

Контекст
512 токенов
Лицензия
Apache 2.0
Архитектура
distilbert · dense
Базовая модель
distilbert-base-uncased
Библиотека
sentence-transformers
Опубликована
26 фев 2026

NanoVDR-Q-DistilBERT-Qwen3VL2B-2048-ML

ЭмбеддингиТекст → embedding7 профессий

Компактный многоязычный текстовый энкодер, который преобразует запросы в эмбеддинги для поиска по изображениям страниц документов, индексированным моделью Qwen3-VL-Embedding-2B.

332скачиваний за 30 дней6лайковвеса обновлены21 авг 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Тесты пользователейпока нет

Никто ещё не опубликовал тест этой модели. Соберите бенчмарк из своих задач — результат появится здесь.

  1. Добавьте модель в бенчмарк

    Вместе с другими моделями категории «Эмбеддинги» — сравнение идёт внутри одной категории.

  2. Опишите свои задачи

    Напишите запросы, при необходимости приложите файлы и эталонные ответы.

  3. Запустите и опубликуйте

    Модели ответят на каждую задачу, судья оценит ответы. Опубликованный результат появится на этой странице.

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

NanoVDR-Q-DistilBERT-Qwen3VL2B-2048-ML — разработанная командой NanoVDR компактная модель-энкодер запросов для поиска по визуальным документам. Это текстовая модель на базе DistilBERT с проектором из двух слоёв; она содержит 69 млн параметров и формирует векторы размерности 2048, совместимые с эмбеддингами документов от Qwen3-VL-Embedding-2B. По данным карточки, модель сохраняет 95,1% качества учителя в оценке на 22 наборах ViDoRe.

Модель предназначена для кодирования текстовых запросов на английском, немецком, французском, испанском, итальянском и португальском языках и поиска по заранее индексированным изображениям страниц документов. Индексацию выполняет учитель Qwen3-VL-Embedding-2B, а NanoVDR кодирует запросы; поиск затем можно проводить по косинусному сходству или скалярному произведению, например, с FAISS. В карточке указаны максимальная длина последовательности 512 токенов и возможность обслуживать запросы на CPU.

Это специализированный энкодер запросов, а не самостоятельная система индексации документов: для построения индекса требуется отдельная модель-учитель, а карточка указывает, что индексация требует GPU. Модель дообучена на базе distilbert/distilbert-base-uncased методом дистилляции; заявленная лицензия — Apache-2.0.

Сценарии применения

  • Поиск нужной страницы в индексе отсканированных документов по текстовому запросу
  • Поиск по изображениям страниц многоязычных документов
  • Построение быстрого CPU-сервиса для кодирования поисковых запросов
  • Подключение эмбеддингов запросов к FAISS-индексу документов

Ограничения

Модель кодирует только текстовые запросы; документы нужно заранее индексировать отдельной моделью Qwen3-VL-Embedding-2B, для чего требуется GPU. Максимальная длина последовательности — 512 токенов.

Для каких профессий подходит7

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Также подходит для

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

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

NanoVDR-Q-DistilBERT-Qwen3VL2B-2048-ML

⚠️ This model was renamed

It was published as nanovdr/NanoVDR-S-Multi. Old links and from_pretrained calls still resolve through a redirect, but please move to the new id.

- SentenceTransformer("nanovdr/NanoVDR-S-Multi")
+ SentenceTransformer("nanovdr/NanoVDR-Q-DistilBERT-Qwen3VL2B-2048-ML")

Why. NanoVDR started as one thing: a small text encoder that replaces the query side of a large vision-language retriever. It has since grown a second tower that replaces the document side, and a second teacher, so a name like -S no longer says enough. Two checkpoints only work together when they were distilled from the same teacher into the same width, and neither fact was recoverable from the old names.

The scheme is now NanoVDR-<Q|D>-<variant>-<teacher>-<width>[-ML], and the rule is simply that the teacher and the width have to match. This model is Q (query tower), DistilBERT (backbone), distilled from Qwen3-VL-Embedding-2B into 2048 dimensions, trained on the multilingual mixture (-ML). -ML used to be spelled -Multi, which read as multi-vector when it meant multilingual.

The recommended NanoVDR model for production use.

NanoVDR-Q-DistilBERT-Qwen3VL2B-2048-ML is a 69M-parameter multilingual text-only query encoder for visual document retrieval. It encodes text queries into the same embedding space as a frozen 2B VLM teacher (Qwen3-VL-Embedding-2B), so you can retrieve document page images using only a DistilBERT forward pass — no vision model at query time.

Highlights

  • 95.1% teacher retention — a 69M text-only model recovers 95% of a 2B VLM teacher across 22 ViDoRe datasets
  • Outperforms DSE-Qwen2 (2B) on multilingual v2 (+6.2) and v3 (+4.1) with 32x fewer parameters
  • Outperforms ColPali (~3B) on multilingual v2 (+7.2) and v3 (+4.5) with single-vector cosine retrieval (no MaxSim)
  • Single-vector retrieval — queries and documents share the same 2048-dim embedding space as Qwen3-VL-Embedding-2B; retrieval is a plain dot product, FAISS-compatible, 4 KB per page (float16)
  • Lightweight on storage — 282 MB model file; doc index costs 64× less than ColPali's multi-vector patches
  • 51 ms CPU query latency — 50x faster than DSE-Qwen2, 143x faster than ColPali
  • 6 languages: English, German, French, Spanish, Italian, Portuguese — all >92% teacher retention

Results

ModelTypeParamsViDoRe v1ViDoRe v2ViDoRe v3Avg Retention
Tomoro-8BVLM8.0B90.665.059.0—
Qwen3-VL-Emb (Teacher)VLM2.0B84.365.350.0—
DSE-Qwen2VLM2.2B85.155.742.4—
ColPaliVLM~3B84.254.742.0—
NanoVDR-Q-DistilBERT-Qwen3VL2B-2048-MLText-only69M82.261.946.595.1%

NDCG@5 (×100). v1 = 10 English datasets, v2 = 4 multilingual datasets, v3 = 8 multilingual datasets.

Per-Language Retention (v2 + v3, 19,537 queries)

Language#QueriesTeacherNanoVDR-Q-DistilBERT-Qwen3VL2B-2048-MLRetention
English6,23764.060.394.3%
French2,69451.047.893.6%
Portuguese2,41948.746.194.6%
Spanish2,69451.447.893.1%
Italian2,41949.045.793.3%
German2,69449.345.492.0%

All 6 languages achieve >92% of the 2B teacher's performance.


Quick Start

from sentence_transformers import SentenceTransformer

model = SentenceTransformer("nanovdr/NanoVDR-Q-DistilBERT-Qwen3VL2B-2048-ML")

queries = [
    "What was the revenue growth in Q3 2024?",           # English
    "Quel est le chiffre d'affaires du trimestre?",       # French
    "Wie hoch war das Umsatzwachstum im dritten Quartal?", # German
    "¿Cuál fue el crecimiento de ingresos en el Q3?",     # Spanish
    "Qual foi o crescimento da receita no terceiro trimestre?", # Portuguese
    "Qual è stata la crescita dei ricavi nel terzo trimestre?", # Italian
]
query_embeddings = model.encode(queries)
print(query_embeddings.shape)  # (6, 2048)

# Cosine similarity against pre-indexed document embeddings
# scores = query_embeddings @ doc_embeddings.T

Prerequisites: Document Indexing with Teacher Model

NanoVDR is a query encoder only. Documents must be indexed offline using the teacher VLM (Qwen3-VL-Embedding-2B), which encodes page images into 2048-d embeddings. This is a one-time cost.

# pip install transformers qwen-vl-utils torch
from scripts.qwen3_vl_embedding import Qwen3VLEmbedder

teacher = Qwen3VLEmbedder(model_name_or_path="Qwen/Qwen3-VL-Embedding-2B")

# Encode document page images
documents = [
    {"image": "page_001.png"},
    {"image": "page_002.png"},
    # ... all document pages in your corpus
]
doc_embeddings = teacher.process(documents)  # (N, 2048), L2-normalized

Note: The Qwen3VLEmbedder class and full usage guide (including vLLM/SGLang acceleration) are available at the Qwen3-VL-Embedding-2B model page. Document indexing requires a GPU; once indexed, retrieval uses only CPU.

Full Retrieval Pipeline

import numpy as np
from sentence_transformers import SentenceTransformer

# doc_embeddings: (N, 2048) numpy array from teacher indexing above

# Step 1: Encode text queries with NanoVDR (CPU, ~51ms per query)
student = SentenceTransformer("nanovdr/NanoVDR-Q-DistilBERT-Qwen3VL2B-2048-ML")
query_emb = student.encode("Quel est le chiffre d'affaires?")  # shape: (2048,)

# Step 2: Retrieve via cosine similarity
scores = query_emb @ doc_embeddings.T
top_k_indices = np.argsort(scores)[-5:][::-1]

How It Works

NanoVDR uses asymmetric cross-modal distillation to decouple query and document encoding:

Document Encoding (offline)Query Encoding (online)
ModelQwen3-VL-Embedding-2B (frozen)NanoVDR-Q-DistilBERT-Qwen3VL2B-2048-ML (69M)
InputPage imagesText queries (6 languages)
Output2048-d embedding2048-d embedding
HardwareGPU (one-time indexing)CPU (real-time serving)

The student is trained to align query embeddings with the teacher's query embeddings via pointwise cosine loss — no document embeddings or hard negatives are needed during training. At inference, student query embeddings are directly compatible with teacher document embeddings.


Training

Value
Base modeldistilbert/distilbert-base-uncased (66M)
Projector2-layer MLP: 768 → 768 → 2048 (2.4M params)
Total params69M
ObjectivePointwise cosine alignment with teacher query embeddings
Training data1.49M pairs — 711K original + 778K translated queries
LanguagesEN (original) + DE, FR, ES, IT, PT (translated via Helsinki-NLP Opus-MT)
Epochs10
Batch size1,024 (effective)
Learning rate3e-4 (OneCycleLR, 3% warmup)
Hardware1× H200 GPU
Training time~10 GPU-hours
Embedding caching~1 GPU-hour (teacher encodes all queries in text mode)

Multilingual Augmentation Pipeline

  1. Extract 489K English queries from the 711K training set
  2. Translate each to 5 languages using Helsinki-NLP Opus-MT → 778K translated queries
  3. Re-encode translated queries with the frozen teacher in text mode (15 min on H200)
  4. Combine: 711K original + 778K translated = 1.49M training pairs
  5. Train with halved epochs (10 vs 20) and slightly higher lr (3e-4 vs 2e-4) to match total steps

Efficiency

NanoVDR-Q-DistilBERT-Qwen3VL2B-2048-MLDSE-Qwen2ColPaliTomoro-8B
Parameters69M2,209M~3B8,000M
Query latency (CPU, B=1)51 ms2,539 ms7,300 msGPU only
Checkpoint size274 MB8.8 GB11.9 GB35.1 GB
Index typeSingle-vectorSingle-vectorMulti-vectorMulti-vector
ScoringCosineCosineMaxSimMaxSim
Index storage (500K pages)4.1 GB3.1 GB128 GB128 GB

Model Variants

NanoVDR-Q-DistilBERT-Qwen3VL2B-2048-ML is the recommended model. The other variants are provided for research and ablation purposes.

ModelBackboneParamsv1v2v3RetentionLatencyRecommended
NanoVDR-Q-DistilBERT-Qwen3VL2B-2048-MLDistilBERT69M82.261.946.595.1%51 msYes
NanoVDR-Q-DistilBERT-Qwen3VL2B-2048DistilBERT69M82.260.543.592.4%51 msEN-only
NanoVDR-Q-BERT-Qwen3VL2B-2048BERT-base112M82.162.244.794.0%101 msAblation
NanoVDR-Q-ModernBERT-Qwen3VL2B-2048ModernBERT151M82.461.544.293.4%109 msAblation

Want a system with no teacher at all?

Every model in this table targets Qwen3-VL-Embedding-2B at 2048 dimensions, so documents still have to be indexed by that 2B teacher. A second family targets the 8B teacher at 4096 dimensions and includes a document tower, so nothing multi-billion runs at indexing time either:

ModelRoleParams
NanoVDR-Q-DistilBERT-Qwen3VL8B-4096-MLquery tower70M
NanoVDR-D-HiRes-Qwen3VL8B-4096document tower457M
NanoVDR-D-Fast-Qwen3VL8B-4096document tower, 3x fewer visual tokens457M

The two families are not interchangeable: 2048-d and 4096-d vectors live in different spaces and will not score against each other.

Key Properties

PropertyValue
Output dimension2048 (aligned with Qwen3-VL-Embedding-2B)
Max sequence length512 tokens
Supported languagesEN, DE, FR, ES, IT, PT
Similarity functionCosine similarity
PoolingMean pooling
NormalizationL2-normalized

Citation

@article{nanovdr2026,
  title={NanoVDR: Distilling a 2B Vision-Language Retriever into a 70M Text-Only Encoder for Visual Document Retrieval},
  author={Liu, Zhuchenyang and Zhang, Yao and Xiao, Yu},
  journal={arXiv preprint arXiv:2603.12824},
  year={2026}
}

License

Apache 2.0

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · sentence-transformers

Можно запустить

Подбираем GPU…

Класс архитектуры
DistilBertModel
Ревизия весов
ab3f0fd

0 моделей