/ Модель

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

Контекст
7 999 токенов
Параметры
149 млн
Лицензия
Своя лицензия
Архитектура
modernbert · dense
Базовая модель
ettin-encoder-150m
Библиотека
sentence-transformers
Опубликована
20 сен 2026

ColNanoVDR-Q-Ettin150M-ColVec8B-640-ML

ЭмбеддингиТекст → embedding

Компактный текстовый энкодер ColNanoVDR кодирует запросы в многовекторное пространство ColVec для поиска по заранее проиндексированным визуальным документам.

118скачиваний за 30 дней4лайкавеса обновлены3 окт 2026

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

  • Vidore3FinanceEnRetrieval

    main_score

    Результат

    0,6834

    Общий результат 0,6986Общий результат 0,6899
    MTEB

    Публичная таблицадругая ревизия

  • VidoreShiftProjectRetrieval

    main_score

    Результат

    0,9289

    MTEB

    Публичная таблицадругая ревизия

  • Vidore3IndustrialRetrieval

    main_score

    Результат

    0,5469

    Общий результат 0,5723Общий результат 0,5587Общий результат 0,5506
    MTEB

    Публичная таблицадругая ревизия

  • Vidore3HrRetrieval

    main_score

    Результат

    0,6695

    Общий результат 0,6574Общий результат 0,6508Общий результат 0,6426
    MTEB

    Публичная таблицадругая ревизия

  • Vidore3TelecomRetrieval

    main_score

    Результат

    0,6991

    Общий результат 0,701Общий результат 0,6989Общий результат 0,6959
    MTEB

    Публичная таблицадругая ревизия

  • Vidore3PharmaceuticalsRetrieval

    main_score

    Результат

    0,669

    Общий результат 0,6728Общий результат 0,6726Общий результат 0,6705
    MTEB

    Публичная таблицадругая ревизия

  • Vidore2ESGReportsHLRetrieval

    main_score

    Результат

    0,7847

    MTEB

    Публичная таблицадругая ревизия

  • VidoreSyntheticDocQAGovernmentReportsRetrieval

    main_score

    Результат

    0,9689

    MTEB

    Публичная таблицадругая ревизия

  • Vidore3ComputerScienceRetrieval

    main_score

    Результат

    0,7738

    Общий результат 0,7772Общий результат 0,7751
    MTEB

    Публичная таблицадругая ревизия

  • Vidore2BioMedicalLecturesRetrieval

    main_score

    Результат

    0,639

    Общий результат 0,6654Общий результат 0,6511
    MTEB

    Публичная таблицадругая ревизия

  • Vidore3EnergyRetrieval

    main_score

    Результат

    0,6937

    Общий результат 0,6821Общий результат 0,6798Общий результат 0,6784
    MTEB

    Публичная таблицадругая ревизия

  • VidoreDocVQARetrieval

    main_score

    Результат

    0,6407

    MTEB

    Публичная таблицадругая ревизия

  • Vidore3PhysicsRetrieval

    main_score

    Результат

    0,4915

    Общий результат 0,4921Общий результат 0,4909
    MTEB

    Публичная таблицадругая ревизия

  • Vidore3FinanceFrRetrieval

    main_score

    Результат

    0,52

    Общий результат 0,5148Общий результат 0,5129Общий результат 0,5113
    MTEB

    Публичная таблицадругая ревизия

  • VidoreInfoVQARetrieval

    main_score

    Результат

    0,931

    MTEB

    Публичная таблицадругая ревизия

  • Vidore3NuclearRetrieval

    main_score

    Результат

    0,5166

    Общий результат 0,5059
    MTEB

    Публичная таблицадругая ревизия

  • Vidore2ESGReportsRetrieval

    main_score

    Результат

    0,5975

    Общий результат 0,6139Общий результат 0,6052
    MTEB

    Публичная таблицадругая ревизия

  • VidoreSyntheticDocQAEnergyRetrieval

    main_score

    Результат

    0,9545

    MTEB

    Публичная таблицадругая ревизия

  • Vidore2EconomicsReportsRetrieval

    main_score

    Результат

    0,5592

    MTEB

    Публичная таблицадругая ревизия

  • VidoreTabfquadRetrieval

    main_score

    Результат

    0,9641

    MTEB

    Публичная таблицадругая ревизия

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

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

ColNanoVDR-Q-Ettin150M-ColVec8B-640-ML — текстовый энкодер запросов, разработанный авторами ColNanoVDR и дообученный на основе jhu-clsp/ettin-encoder-150m методом дистилляции запросных эмбеддингов учителя webAI-Official/webAI-ColVec1.1-8b. Модель формирует многовекторные представления текстовых запросов размерностью 640 в пространстве позднего взаимодействия ColVec, предназначенном для визуального поиска по документам.

Энкодер содержит около 149 млн параметров, использует архитектуру ModernBERT и принимает текст без префикса инструкции. При поиске его векторы запросов сопоставляются через MaxSim с индексом страниц, заранее построенным моделью webAI-ColVec1.1-8b; существующий совместимый индекс можно использовать без перестроения. README сообщает о сохранении 97,5% качества 8,4-миллиардного учителя на 22 наборах ViDoRe и о возможности выполнять кодирование запросов на CPU. Контекст модели — 7 999 токенов.

Модель предназначена только для стороны запроса: она не кодирует изображения страниц и не заменяет учителя при построении индекса. Размерность и модель-учитель должны совпадать с использованными при индексации; повторная нормализация векторов меняет результаты. Указана лицензия other.

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

  • поиск по PDF и отсканированным документам по текстовому запросу
  • поиск нужной страницы в существующем индексе ColVec
  • кодирование запросов для визуального поиска на CPU
  • обслуживание запросов к документному индексу без запуска VLM на стороне запроса

Ограничения

Совместима только с индексом страниц, построенным webAI-Official/webAI-ColVec1.1-8b с той же размерностью; сама модель не индексирует изображения. Запрос следует подавать без префикса инструкции и не нормализовать выход повторно.

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

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

Открыть на Hugging Face

What is ColNanoVDR

ColNanoVDR extends NanoVDR from single-vector retrievers to the multi-vector, late-interaction encoders that define the state of the art in visual document retrieval (ColPali-style models such as ColQwen3.5, Vultron, Tomoro and ColVec).

In those systems the query is encoded, at serving time, by a multi-billion-parameter vision-language model, even though a query is plain text and carries no image. ColNanoVDR removes that model from the online path. Using document-free distillation, a small text-only encoder is trained to reproduce the teacher's query token embeddings under an optimal-transport objective, so its output lands directly in the teacher's late-interaction space and the teacher's existing page index can be scored by MaxSim unchanged. Training needs only cached teacher query embeddings: no page image is ever encoded, and no relevance label is ever used.

The result keeps 97.5% of a 8.4B teacher across 22 ViDoRe datasets with a query tower 56x smaller, and the document side is left untouched, so an existing index does not need to be rebuilt. With no vision tower on the query path, encoding a query becomes feasible on CPU, so serving no longer requires a GPU at all.

This model

Every ColNanoVDR release is named:

ColNanoVDR-Q-{backbone}-{teacher}-{dim}-ML
FieldMeaningThis model
Qthe query tower: the only side that is trained; documents stay with the teacherQ
{backbone}the text-only encoder distilled intoEttin150M = jhu-clsp/ettin-encoder-150m, 150M params
{teacher}the multi-vector VDR teacher whose embedding space this tower targetsColVec8B = webAI-Official/webAI-ColVec1.1-8b, 8.4B params
{dim}late-interaction vector width of that teacher640
MLmultilingual training mixtureEnglish + 5 Latin-script European languages

So ColNanoVDR-Q-Ettin150M-ColVec8B-640-ML is a 150M ettin-encoder-150m query tower that emits 640-d multi-vector queries inside the late-interaction space of webAI-Official/webAI-ColVec1.1-8b.

A tower is only valid with the teacher it was distilled from: the teacher and the width must both match. This one requires pages indexed by webAI-Official/webAI-ColVec1.1-8b; for a different teacher, take the corresponding tower:

Query towerTeacher that must index your pagesWidth
ColNanoVDR-Q-Ettin150M-ColQwen35-320-MLathrael-soju/colqwen3.5-4.5B-v3320
ColNanoVDR-Q-Ettin150M-Tomoro8B-320-MLTomoroAI/tomoro-colqwen3-embed-8b320
ColNanoVDR-Q-Ettin150M-Vultron45B-320-MLvultr/VultronRetrieverCore-Qwen3.5-4.5B320
ColNanoVDR-Q-Ettin150M-ColVec4B-640-MLwebAI-Official/webAI-ColVec1.1-4b640
ColNanoVDR-Q-Ettin150M-ColVec8B-640-ML (this model)webAI-Official/webAI-ColVec1.1-8b640
ColNanoVDR-Q-Ettin400M-ColQwen35-320-MLathrael-soju/colqwen3.5-4.5B-v3320

Training

Dataset. nanovdr/NanoVDR-Train: 1.49M queries, 711K English plus 778K MarianMT translations into five Latin-script European languages. Only the query text is used. Teacher query embeddings are cached once before training, so the teacher never runs during training.

Loss: OTW (weighted entropic optimal transport). A query is a set of token vectors, and the student and the teacher do not produce the same number of tokens, so there is no token-to-token correspondence to regress onto. OTW instead treats each side as a distribution on the unit sphere, the student as mu_S = sum_i a_i d(s_i) and the teacher as mu_T = sum_j b_j d(t_j), and minimises the entropic optimal-transport cost between them under c(s,t) = 1 - <s,t>:

L = <P*, C>,   P* = argmin_{P in U(a,b)} <P, C> - eps H(P)

Transport is balanced, so every student token must carry mass and the student is forced to cover the teacher's full token distribution rather than collapsing onto a few easy directions. The W is the student marginal: a_i is a softmax over learned per-token weight logits instead of uniform, which lets a student token carry more mass and match a teacher measure with more atoms. The motivation is that the transport cost upper-bounds the MaxSim scoring error uniformly over every possible document, which is what makes the objective document-free: minimising it constrains retrieval behaviour without a single page ever being encoded.

Settings: eps = 0.05, 50 Sinkhorn iterations, AdamW one-cycle, peak LR 3e-4, 3% warmup, effective batch 1024 (128 per GPU x 2 GPUs x 4 accumulation), 10 epochs.

Architecture. Ettin encoder -> bias-free linear projection to 640-d -> per-token L2 normalisation -> learned weight head. The weight head is a linear layer over the pre-projection hidden states whose softmax gives a_i; at inference each unit token vector is scaled by its weight, so the emitted vectors are deliberately not unit-length and the per-query token norms sum to 1. Special tokens are excluded from scoring. 150M parameters total.

Usage

Requires sentence-transformers>=6.0 and transformers>=5.0.

Retrieval runs in two stages. The teacher builds the page index once, offline; ColNanoVDR then answers every query online, and the teacher is never loaded again.

Step 1 (offline, once): index your pages with the teacher

This is the only stage where the vision-language model runs. Cache the resulting page embeddings; they are what you serve against.

import torch
from transformers import AutoModel, AutoProcessor

TEACHER = "webAI-Official/webAI-ColVec1.1-8b"
teacher = AutoModel.from_pretrained(
    TEACHER, trust_remote_code=True, dtype=torch.bfloat16,
    attn_implementation="sdpa", device_map="cuda:0"
).eval()
processor = AutoProcessor.from_pretrained(TEACHER, trust_remote_code=True)

page_embeddings = []
with torch.no_grad():
    for batch in batches_of(page_images, 4):          # PIL images
        inputs = processor.process_images(batch).to(teacher.device)
        out = teacher(**inputs)                       # raw hidden states
        page_embeddings.extend(l2_normalise_and_unpad(out, inputs["attention_mask"]))

# persist page_embeddings to disk / a multi-vector index (PLAID, Vespa, Qdrant, ...)

If you already run webAI-ColVec1.1-8b in production, skip this step entirely: your existing index is already in the right space and does not need rebuilding.

Step 2 (online, per query): encode with ColNanoVDR and score

from sentence_transformers import MultiVectorEncoder

model = MultiVectorEncoder(
    "nanovdr/ColNanoVDR-Q-Ettin150M-ColVec8B-640-ML",
    trust_remote_code=True,
)

q = model.encode_query(["What was the revenue growth in Q3 2024?"])
# list of (n_tokens, 640) float arrays, weights already folded in

scores = model.similarity(q, page_embeddings)   # meanMaxSim

No teacher, no image processor, no GPU required on this path.

Two notes that change results if ignored:

  • Pass the raw query, with no instruction prefix. The teacher's targets were cached through the teacher's own query processor, but the student was trained to reproduce them from bare query text, and every number below was measured that way.
  • Do not re-normalise the output. The learned weights are already folded in. similarity_fn_name is meanmaxsim (MaxSim over document tokens per query token, then averaged over query tokens); the summed ColBERT variant changes the ranking.

Performance

NDCG@5 on ViDoRe (22 datasets). The query side is measured in isolation against teacher-encoded pages, which attributes all error to this tower:

v1v2v3Avg
webAI-ColVec1.1-8b (teacher)91.4667.7562.5773.93
ColNanoVDR-Q-Ettin150M-ColVec8B-640-ML90.8665.3760.1072.11
Retention99.3%96.5%96.0%97.5%

Efficiency

ParamsVision tower at query timeCPU serving
webAI-ColVec1.1-8b (teacher)8.4Brequiredno
ColNanoVDR-Q-Ettin150M-ColVec8B-640-ML150Mnoneyes

The query tower is 56x smaller than the teacher and runs no vision tower, so a query can be encoded on CPU. Query latency depends on your hardware and on the teacher's attention kernels, so measure it on your own stack.

License

This model inherits the licence of its teacher. It was distilled from webAI-ColVec1.1-8b, whose weights are released under the webAI Non-Commercial License v1.0, and it is released under the same terms: non-commercial use only. The full licence text is in LICENSE.md in this repository. The ColNanoVDR training code and the other ColNanoVDR towers are MIT; this repository is not.

Contact

Zhuchenyang Liu, Aalto University: zhuchenyang.liu@aalto.fi

Citation

If you use ColNanoVDR, please cite:

@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}, 
}

ColNanoVDR builds on NanoVDR:

@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}
}

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

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

GPU в ailist

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

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

Подбираем GPU…

Класс архитектуры
ModernBertModel
Ревизия весов
9f55eb5

0 моделей