/ Модель

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

Контекст
262 144 токена
Лицензия
Своя лицензия
Архитектура
colvec1 · dense
Базовая модель
Qwen3.5-9B
Библиотека
transformers
Опубликована
5 апр 2026

webAI-ColVec1-9b

Языковая модельИзображение, текст → embedding10 профессий

Мультиязычная ColBERT-подобная модель webAI для поиска по изображениям документов и PDF с помощью текстовых запросов.

342скачиваний за 30 дней9лайковвеса обновлены17 авг 2026

Бенчмарки

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

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

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

  • Vidore3PharmaceuticalsRetrieval

    main_score

    Результат

    0,6747

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

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

  • Vidore3NuclearRetrieval

    main_score

    Результат

    0,5075

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

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

  • Vidore3EnergyRetrieval

    main_score

    Результат

    0,6977

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

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

  • Vidore3TelecomRetrieval

    main_score

    Результат

    0,7049

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

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

  • Vidore3PhysicsRetrieval

    main_score

    Результат

    0,4821

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

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

  • VidoreSyntheticDocQAEnergyRetrieval

    main_score

    Результат

    0,9689

    MTEB

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

  • Vidore2ESGReportsRetrieval

    main_score

    Результат

    0,6133

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

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

  • Vidore3HrRetrieval

    main_score

    Результат

    0,7282

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

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

  • VidoreTatdqaRetrieval

    main_score

    Результат

    0,7884

    MTEB

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

  • VidoreArxivQARetrieval

    main_score

    Результат

    0,9364

    MTEB

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

  • Vidore3FinanceEnRetrieval

    main_score

    Результат

    0,6678

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

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

  • VidoreInfoVQARetrieval

    main_score

    Результат

    0,9518

    MTEB

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

  • VidoreTabfquadRetrieval

    main_score

    Результат

    0,9501

    MTEB

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

  • Vidore2EconomicsReportsRetrieval

    main_score

    Результат

    0,6474

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

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

  • Vidore3IndustrialRetrieval

    main_score

    Результат

    0,5653

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

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

  • Vidore3ComputerScienceRetrieval

    main_score

    Результат

    0,8099

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

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

  • VidoreSyntheticDocQAAIRetrieval

    main_score

    Результат

    0,9926

    MTEB

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

  • Vidore2BioMedicalLecturesRetrieval

    main_score

    Результат

    0,6041

    MTEB

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

  • VidoreSyntheticDocQAGovernmentReportsRetrieval

    main_score

    Результат

    0,9802

    MTEB

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

  • VidoreShiftProjectRetrieval

    main_score

    Результат

    0,8855

    MTEB

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

  • Vidore3FinanceFrRetrieval

    main_score

    Результат

    0,5282

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

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

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

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

webAI-ColVec1-9b — мультимодальная модель поиска по визуальным документам от webAI-Official, дообученная на базе Qwen/Qwen3.5-9B. Она кодирует текстовые запросы и изображения страниц документов в многовекторные представления размерности 2560, нормализованные по L2. Архитектура ColBERT-style использует общий энкодер для текста и изображений и позднее взаимодействие токенов с оценкой MaxSim.

Модель предназначена для поиска релевантных страниц и документов по запросу на естественном языке, включая PDF-страницы, таблицы и визуально представленные документы. Карточка сообщает о мультиязычном обучении на объединённом наборе примерно из двух миллионов пар «вопрос — изображение» и о результатах на бенчмарках ViDoRe V1 и V3. Лицензия указана как other, поэтому условия использования следует проверять в карточке репозитория. README сообщает о доступности более новой версии ColVec1.1-8b.

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

  • поиск страниц PDF по текстовому запросу
  • извлечение релевантных таблиц из документов
  • поиск по многоязычным визуальным документам
  • ранжирование страниц документов по соответствию вопросу

Ограничения

Модель выдаёт многовекторные представления и оценки релевантности, а не готовые текстовые ответы; для поиска требуется вычислять MaxSim-оценки. README указывает, что доступна более новая версия модели.

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

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

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

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

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

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

Открыть на Hugging Face

webAI-Official/webAI-ColVec1-9b

!!! A new version of this model is available here webAI-ColVec1.1-8b !!!

⚡ Summary

webAI-Official/webAI-ColVec1-9b is a state-of-the-art ColBERT-style multimodal embedding model based on Qwen/Qwen3.5-9B. It maps text queries, visual documents (images, PDFs) into aligned multi-vector embeddings.

The model has been fine-tuned on a merged multimodal dataset of ~2M question-image pairs, including DocVQA, PubTables-1M, TAT-QA, ViDoRe-ColPali-Training, VDR Multilingual, VisRAG-Ret-Train-In-domain-data, VisRAG-Ret-Train-Synthetic-data and proprietary domain-specific synthetic data

The datasets were filtered, balanced, and merged to produce a comprehensive training set optimized for multilingual, multimodal retrieval and document-image understanding. The model achieves competitive performance across ViDoRe V1 & V3 (English and multilingual).

🛠️ Model Specifications

FeatureDetail
ArchitectureQwen3.5-9B Vision-Language Model (VLM) + 2560 dim Linear Projection Head
MethodologyColBERT-style Late Interaction (MaxSim scoring)
OutputMulti-vector (Seq_Len × 2560), L2-normalized
ModalitiesText Queries, Images (Documents)
Training StrategyLoRA adapters + Fully-trained projection layer
Precisionbfloat16 weights, FlashAttention 2 enabled

Key Properties

  • Unified Encoder (Single-Tower): A single shared language model processes both images and text. Images are converted into visual tokens via a vision encoder and injected into the token stream, no separate dual encoders.

  • Projection Head: A single linear layer projects final hidden states → compact embedding space (hidden_size → 2560 dim). - No activation - Fully trained - Replaces LM head for retrieval

  • Multi-Vector Representation: Each token becomes an embedding → enables fine-grained token-level matching instead of single-vector pooling.

📊 Evaluation Results

We report results on the ViDoRe benchmark suite. The tables below summarize the image-modality accuracy of webAI-ColVec1-9b on the ViDoRe V1 and V3 benchmarks, alongside other webAI ColVec1 models. Note that (M)MTEB leaderboards use Borda ranking. Each task acts like a voter that ranks models based on how well they perform. Models earn more points when they rank higher on a task. The model with the most total points across all tasks gets the top overall rank.

ViDoRe V3 (NDCG@10)

ModelCompSciEnergyFinanceEnFinanceFrHRIndustrialPharmaPhysicsAvg (Public)
webAI-ColVec1-9b0.80920.69760.68270.53720.70040.57180.67320.48380.6445
nemotron-colembed-vl-8b-v20.79290.69820.67290.51540.66320.56030.67190.50840.6354
webAI-ColVec1-4b0.79830.68690.68480.51110.67390.55730.65670.50140.6338
tomoro-colqwen3-embed-8b0.75350.68410.65080.49100.63980.54410.66360.50130.6160
colqwen3.5-4.5B-v30.78660.68040.64060.48560.62060.55200.65590.50340.6156

ViDoRe V1 (NDCG@5)

ModelArxivQADocVQAInfoVQAShiftSyn-AISyn-EngSyn-GovSyn-HealthTabFQuADTatdqaAvg
nemotron-colembed-vl-8b-v20.93100.68100.94600.93301.00000.97900.98900.99600.97700.83400.9270
llama-nemotron-colembed-vl-3b-v20.90400.67200.94700.92001.00000.98000.98000.98900.97300.81000.9170
nemotron-colembed-vl-4b-v20.92000.67400.93300.92300.99300.96200.98000.98500.98100.81200.9160
colqwen3.5-4.5B-v30.91900.66600.93600.90201.00000.97100.97300.98900.95900.84000.9150
webAI-ColVec1-9b0.94130.68820.95050.87580.99630.97390.98390.99260.94600.79560.9144
Ops-Colqwen3-4B0.91800.66500.94000.90800.99600.97300.98000.99600.93600.82400.9140
SauerkrautLM-ColQwen3-8b-v0.10.93800.64700.94500.90400.98600.96500.96800.99300.92200.84000.9110
webAI-ColVec1-4b0.92580.67730.94120.87641.00000.97030.97211.00000.94140.79500.9100

💻 Usage

The processor exposes three primary methods for encoding inputs and computing retrieval scores.

process_images(images, max_length=None)

Encodes a batch of document images into model-ready tensors. Pass the result directly to the model with **batch.

ParameterTypeDescription
imagesList[PIL.Image.Image]Document page images. Each image is automatically converted to RGB.
max_lengthintNone
batch = processor.process_images(images=pil_images)
batch = {k: v.to(device) for k, v in batch.items()}
embeddings = model(**batch)  # shape: (B, seq_len, embed_dim)

process_queries(texts, max_length=None)

Encodes a batch of text queries into model-ready tensors.

ParameterTypeDescription
textsList[str]Natural-language query strings.
max_lengthintNone
batch = processor.process_queries(texts=["What is the revenue for Q3?"])
batch = {k: v.to(device) for k, v in batch.items()}
embeddings = model(**batch)  # shape: (B, seq_len, embed_dim)

score_multi_vector(qs, ps, batch_size=128, device=None)

Computes ColBERT-style MaxSim late-interaction scores between a list of query embeddings and a list of passage (document) embeddings. For each query token, the maximum dot product across all passage tokens is found; these maxima are summed to produce a single scalar score per (query, passage) pair.

ParameterTypeDescription
qsList[Tensor] or TensorQuery embeddings. Each tensor has shape (seq_len_q, embed_dim).
psList[Tensor] or TensorPassage embeddings. Each tensor has shape (seq_len_p, embed_dim).
batch_sizeintNumber of queries processed per inner loop iteration (default: 128).
devicestrtorch.device

Returns a torch.Tensor of shape (n_queries, n_passages) on CPU in float32. Higher scores indicate greater relevance.

scores = processor.score_multi_vector(query_embeddings, doc_embeddings)
# scores[i, j] is the relevance of document j to query i
best_doc_per_query = scores.argmax(dim=1)

Prerequisites

We strongly suggest flash-attn to be installed. If not, please change to attention_impl="sdpa"

Currently we only support torch==2.8.0, for higher pytorch version, please build flash attention manually, otherwise performance throughput could be low. Also, Note that torch==2.8.0 supports Python Versions: >= 3.9 and <= 3.13.

pip install torch==2.8.0 torchvision==0.23.0 --index-url https://download.pytorch.org/whl/cu128
pip install transformers pillow requests
pip install flash-attn --no-build-isolation

Inference Code

import torch
from transformers import AutoModel, AutoProcessor
from PIL import Image, UnidentifiedImageError
import requests
from io import BytesIO

# Configuration
MODEL_ID = "webAI-Official/webAI-ColVec1-9b"
DTYPE = torch.bfloat16
DEVICE = "cuda" if torch.cuda.is_available() else "cpu"

# Load Model & Processor
processor = AutoProcessor.from_pretrained(
    MODEL_ID,
    trust_remote_code=True,
)

model = AutoModel.from_pretrained(
    MODEL_ID,
    dtype=DTYPE,
    attn_implementation="flash_attention_2",
    trust_remote_code=True,
    device_map=DEVICE,
).eval()

# Sample Data
queries = [
    "Retrieve the city of Singapore",
    "Retrieve the city of Beijing"
]
docs = [
    "https://upload.wikimedia.org/wikipedia/commons/2/27/Singapore_skyline_2022.jpg",
    "https://upload.wikimedia.org/wikipedia/commons/6/61/Beijing_skyline_at_night.JPG"
]

def load_image(url: str) -> Image.Image:
    # Some CDNs (e.g., Wikimedia) expect a browser-like UA to avoid 403s.
    for headers in ({}, {"User-Agent": "Mozilla/5.0 (compatible; ColQwen3-demo/1.0)"}):
        resp = requests.get(url, headers=headers, timeout=10)
        if resp.status_code == 403:
            continue
        resp.raise_for_status()
        try:
            return Image.open(BytesIO(resp.content)).convert("RGB")
        except UnidentifiedImageError as e:
            raise RuntimeError(f"Failed to decode image from {url}") from e
    raise RuntimeError(f"Could not fetch image (HTTP 403) from {url}; try downloading locally and loading from file path.")

# Helper Functions
def encode_queries(texts, batch_size=8):
    outputs = []
    for start in range(0, len(texts), batch_size):
        batch = processor.process_queries(texts=texts[start : start + batch_size])
        batch = {k: v.to(DEVICE) for k, v in batch.items()}
        with torch.inference_mode():
            embeddings = model(**batch)
            vecs = embeddings.to(torch.bfloat16).cpu()
        outputs.extend(vecs)
    return outputs

def encode_docs(urls, batch_size=4):
    pil_images = [load_image(url) for url in urls]
    outputs = []
    for start in range(0, len(pil_images), batch_size):
        batch_imgs = pil_images[start : start + batch_size]
        features = processor.process_images(images=batch_imgs)
        features = {k: v.to(DEVICE) if isinstance(v, torch.Tensor) else v for k, v in features.items()}
        with torch.inference_mode():
            embeddings = model(**features)
            vecs = embeddings.to(torch.bfloat16).cpu()
        outputs.extend(vecs)
    return outputs

# Execution
query_embeddings = encode_queries(queries)
doc_embeddings = encode_docs(docs)

# MaxSim Scoring
scores = processor.score_multi_vector(query_embeddings, doc_embeddings)
print(scores)

⚖️ Strengths & Limitations

Strengths

  • Performance: State of the art retrieval performance on ViDoRe V1 & V3 dataset with excellent performance on multimodal document retrieval.
  • Complex Layouts: Excellent handling of chart-rich PDFs, domain-specific documents.
  • End-to-end Retrieval: Capable of OCR-free retrieval on unseen multimodal documents without using an intermediate vision LLM to generate summary for retrieval.
  • Multilingualism: Strong performance on non-English document inputs.

Limitations

  • Storage Cost: Still larger than single‑vector baselines despite the smaller token dimension.

License & Data

LICENSE

📚 Citation

If you use this model, please cite:

@misc{webAI-ColVec1,
  title={webAI-ColVec1: Late-Interaction Multi-Vector Embedding Model for Visual Document Retrieval},
  author={webAI},
  year={2026},
  url={https://huggingface.co/webAI-Official/webAI-ColVec1-9b}
}

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

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

GPU в ailist

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

Нельзя запустить

Поиск по документам-картинкам пока не поддерживается.

Класс архитектуры
ColVec1
Ревизия весов
5715c18

0 моделей