/ Модель

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

Контекст
32 768 токенов
Параметры
1,5 млрд
Лицензия
Apache 2.0
Архитектура
qwen2_vl · dense
Базовая модель
colqwen2-base
Библиотека
colpali
Опубликована
24 ноя 2024

colqwen2-v1.0-merged

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

Модель ViDoRe на основе Qwen2-VL для поиска релевантных страниц документов по визуальному содержимому с помощью многовекторных представлений.

0скачиваний за 30 дней19лайковвеса обновлены20 авг 2026

Бенчмарки

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

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

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

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

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

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

ColQwen2-v1.0-merged — модель для визуального поиска по документам, созданная ViDoRe на основе Qwen2-VL-2B-Instruct и представленной в работе ColPali стратегии ColBERT. Она кодирует страницы документов по их визуальным признакам и запросы в многовекторные представления, которые сопоставляются методом late interaction. В этой версии LoRA-адаптер уже объединён с базовой моделью ColQwen2, поэтому отдельное объединение адаптера не требуется.

Модель предназначена для поиска релевантных страниц PDF по текстовому запросу, включая поиск по макету и визуальному содержимому страницы. Размер — около 1,5 млрд параметров; архитектура основана на Qwen2-VL, контекст — до 32 768 токенов. Обучающая выборка состояла из 127 460 пар «запрос — страница» и была англоязычной; README отмечает возможность обобщения на другие языки благодаря мультиязычным данным предобучения, но предупреждает о возможных ограничениях на менее представленных языках и типах документов.

Для индексации и поиска модель выдаёт многовекторные представления; применение требует стека, поддерживающего ColBERT-подобный late interaction, что может потребовать адаптации к обычным векторным поисковым системам. В README также отмечено различие формата префикса запроса в некоторых версиях colpali-engine. Лицензия — Apache-2.0.

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

  • поиск страниц PDF по текстовому запросу
  • поиск сведений в документах с учётом макета страницы
  • построение поискового индекса по отсканированным документам
  • извлечение релевантных страниц из коллекции отчётов и статей

Ограничения

Обучение было англоязычным, поэтому качество на менее представленных языках и типах документов может быть ограничено. Многовекторный поиск требует поддержки ColBERT-подобного late interaction, а версии colpali-engine могут по-разному формировать префикс запроса.

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

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

Открыть на Hugging Face

ColQwen2: Visual Retriever based on Qwen2-VL-2B-Instruct with ColBERT strategy

ColQwen2 is a model based on a novel model architecture and training strategy based on Vision Language Models (VLMs) to efficiently index documents from their visual features. It is a Qwen2-VL-2B extension that generates ColBERT- style multi-vector representations of text and images. It was introduced in the paper ColPali: Efficient Document Retrieval with Vision Language Models and first released in this repository

Version specificity

[!NOTE] This version is similar to vidore/colqwen2-v1.0, except that the LoRA adapter was merged into the base model. Thus, loading ColQwen2 from this checkpoint saves you the trouble of merging the pre-trained adapter yourself.

This can be useful if you want to train a new adapter from scratch.

Model Training

Dataset

Our training dataset of 127,460 query-page pairs is comprised of train sets of openly available academic datasets (63%) and a synthetic dataset made up of pages from web-crawled PDF documents and augmented with VLM-generated (Claude-3 Sonnet) pseudo-questions (37%). Our training set is fully English by design, enabling us to study zero-shot generalization to non-English languages. We explicitly verify no multi-page PDF document is used both ViDoRe and in the train set to prevent evaluation contamination. A validation set is created with 2% of the samples to tune hyperparameters.

Note: Multilingual data is present in the pretraining corpus of the language model and most probably in the multimodal training.

Parameters

All models are trained for 1 epoch on the train set. Unless specified otherwise, we train models in bfloat16 format, use low-rank adapters (LoRA) with alpha=32 and r=32 on the transformer layers from the language model, as well as the final randomly initialized projection layer, and use a paged_adamw_8bit optimizer. We train on an 8 GPU setup with data parallelism, a learning rate of 5e-5 with linear decay with 2.5% warmup steps, and a batch size of 32.

Usage

Sentence Transformers

ColQwen2 can be loaded as a multi-vector (ColBERT-style late interaction) retriever with Sentence Transformers via the MultiVectorEncoder, exposing the familiar encode_query / encode_document / similarity API.

pip install "sentence-transformers[image]>=6.0.0"
from sentence_transformers import MultiVectorEncoder

model = MultiVectorEncoder("vidore/colqwen2-v1.0-merged")

queries = [
    "What is the variable represented on the y-axis of the graph?",
    "Total outlay is maximum in which year?",
]
images = [
    "https://huggingface.co/datasets/sentence-transformers/example-documents/resolve/main/doc1.jpg",
    "https://huggingface.co/datasets/sentence-transformers/example-documents/resolve/main/doc2.jpg",
    "https://huggingface.co/datasets/sentence-transformers/example-documents/resolve/main/doc3.jpg",
    "https://huggingface.co/datasets/sentence-transformers/example-documents/resolve/main/doc4.jpg",
]

query_embeddings = model.encode_query(queries)
document_embeddings = model.encode_document(images)
print(f"Query 0 shape:    {tuple(query_embeddings[0].shape)}")
print(f"Document 0 shape: {tuple(document_embeddings[0].shape)}")
# Query 0 shape:    (25, 128)
# Document 0 shape: (755, 128)

scores = model.similarity(query_embeddings, document_embeddings)
print(scores)
# tensor([[13.6689, 11.1143, 11.5332, 10.2905],
#         [ 7.1914, 16.0020,  6.7881,  6.3818]])

ColPali Engine

[!WARNING] Note: colpali-engine 0.3.13 and later no longer send the "Query: " query prefix that this checkpoint was trained with (illuin-tech/colpali#280 dropped it from ColQwen2Processor, and illuin-tech/colpali#339 then changed the base class default it fell back on to ""). The Sentence Transformers configuration in this repository reproduces the original training-time format, so its embeddings differ slightly from current colpali-engine output.

Make sure colpali-engine is installed from source or with a version superior to 0.3.1. transformers version must be > 4.45.0.

pip install git+https://github.com/illuin-tech/colpali
import torch
from PIL import Image
from transformers.utils.import_utils import is_flash_attn_2_available

from colpali_engine.models import ColQwen2, ColQwen2Processor

model = ColQwen2.from_pretrained(
    "vidore/colqwen2-v1.0-merged",
    torch_dtype=torch.bfloat16,
    device_map="cuda:0",  # or "mps" if on Apple Silicon
    attn_implementation="flash_attention_2" if is_flash_attn_2_available() else None,
).eval()
processor = ColQwen2Processor.from_pretrained("vidore/colqwen2-v1.0-merged")

# Your inputs
images = [
    Image.new("RGB", (128, 128), color="white"),
    Image.new("RGB", (64, 32), color="black"),
]
queries = [
    "Is attention really all you need?",
    "What is the amount of bananas farmed in Salvador?",
]

# Process the inputs
batch_images = processor.process_images(images).to(model.device)
batch_queries = processor.process_queries(queries).to(model.device)

# Forward pass
with torch.no_grad():
    image_embeddings = model(**batch_images)
    query_embeddings = model(**batch_queries)

scores = processor.score_multi_vector(query_embeddings, image_embeddings)

Limitations

  • Focus: The model primarily focuses on PDF-type documents and high-ressources languages, potentially limiting its generalization to other document types or less represented languages.
  • Support: The model relies on multi-vector retreiving derived from the ColBERT late interaction mechanism, which may require engineering efforts to adapt to widely used vector retrieval frameworks that lack native multi-vector support.

License

ColQwen2's vision language backbone model (Qwen2-VL) is under apache2.0 license. The adapters attached to the model are under MIT license.

Contact

Citation

If you use any datasets or models from this organization in your research, please cite the original dataset as follows:

@misc{faysse2024colpaliefficientdocumentretrieval,
  title={ColPali: Efficient Document Retrieval with Vision Language Models}, 
  author={Manuel Faysse and Hugues Sibille and Tony Wu and Bilel Omrani and Gautier Viaud and Céline Hudelot and Pierre Colombo},
  year={2024},
  eprint={2407.01449},
  archivePrefix={arXiv},
  primaryClass={cs.IR},
  url={https://arxiv.org/abs/2407.01449}, 
}

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

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

GPU в ailist

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

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

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

Класс архитектуры
ColQwen2
Ревизия весов
8076c40

0 моделей