VAGOsolutions/SauerkrautLM-ColQwen3-8b-v0.1

Model

4

stars

7

commits

2

repos using this model

1

linked in READMEs

Aug 27, 2026

updated

colpali
colqwen3
conversational
document-retrieval
image-text-to-text
late-interaction
mteb
multi-vector
qwen3-vl
safetensors
sauerkrautlm-colpali
sentence-transformers
vidore
vision-language-model
visual-retrieval
Browse cluster: Visual Document Retrieval & ColPali β†’

README

SauerkrautLM-ColQwen3-8b-v0.1

VAGO Solutions Logo

πŸ† #1 among 128-dim Models | State-of-the-Art Visual Document Retrieval

SauerkrautLM-ColQwen3-8b-v0.1 is the best-performing 128-dimensional embedding model for visual document retrieval, achieving 91.08 NDCG@5 on ViDoRe v1 - the highest score among all models with 128-dim embeddings.

ViDoRe v1 Benchmark - 128-dim Models

🎯 Why Visual Document Retrieval?

Traditional OCR-based retrieval loses layout, tables, and visual context. Our visual approach:

  • βœ… No OCR errors - Direct visual understanding
  • βœ… Layout-aware - Understands tables, forms, charts
  • βœ… End-to-end - Single model, no pipeline complexity

πŸ† Key Achievements

BenchmarkScoreRank (128-dim)Rank (All)
ViDoRe v191.08πŸ₯‡ #1#1
MTEB v1+v282.91#2#5
ViDoRe v358.55πŸ₯‡ #1#3

128-dim Models Comparison (XLarge Category)

ModelParamsDimViDoRe v1MTEB v1+v2ViDoRe v3
SauerkrautLM-ColQwen3-8b-v0.1 ⭐8.0B12891.0882.9158.55
EvoQwen2.5-VL-Retriever-7B-v17.0B12890.6883.41-
colnomic-embed-multimodal-7b7.0B12889.7281.3057.64

Our 8B model achieves the highest ViDoRe v1 and v3 scores among ALL 128-dim models!

Detailed Benchmark Results

πŸ“Š ViDoRe v1 (NDCG@5) - Click to expand
TaskScore
ArxivQA93.80 πŸ₯‡
DocVQA64.69
InfoVQA94.51
ShiftProject90.41
SyntheticDocQA-AI98.65
SyntheticDocQA-Energy96.52
SyntheticDocQA-Gov96.79
SyntheticDocQA-Health99.26
TabFQuAD92.18
TATDQA84.04 πŸ₯‡
Average91.08 πŸ₯‡
πŸ“Š MTEB v1+v2 (NDCG@5) - Click to expand

ViDoRe v1 Tasks:

TaskScore
ArxivQA93.80 πŸ₯‡
DocVQA64.69
InfoVQA94.51
ShiftProject90.41
SyntheticDocQA-AI98.65
SyntheticDocQA-Energy96.52
SyntheticDocQA-Gov96.79
SyntheticDocQA-Health99.26
TabFQuAD92.18
TATDQA84.04 πŸ₯‡

ViDoRe v2 Tasks (Multilingual):

TaskScore
ViDoRe-v2-2BioMed63.26
ViDoRe-v2-2Econ57.98
ViDoRe-v2-2ESG-HL70.77
ViDoRe-v2-2ESG57.85
Combined Average82.91
πŸ“Š ViDoRe v3 (NDCG@10) - Click to expand
TaskScore
ViDoRe-v3-CS77.52 πŸ₯‡
ViDoRe-v3-Energy66.32
ViDoRe-v3-FinanceEn55.79
ViDoRe-v3-FinanceFr45.03
ViDoRe-v3-HR59.96
ViDoRe-v3-Industry50.39
ViDoRe-v3-Pharma63.98
ViDoRe-v3-Physics49.36
Average58.55

Overall Summary (128-dim Models)

ModelParamsViDoRe v1MTEB v1+v2ViDoRe v3
SauerkrautLM-ColQwen3-8b-v0.1 ⭐8.0B91.08 (#1)82.91 (#2)58.55 (#1)
EvoQwen2.5-VL-Retriever-7B-v17.0B90.68 (#3)83.41 (#1)-
SauerkrautLM-ColQwen3-4b-v0.14.0B90.80 (#2)81.97 (#4)56.03 (#4)
EvoQwen2.5-VL-Retriever-3B-v13.0B90.67 (#4)82.76 (#3)-
SauerkrautLM-ColQwen3-2b-v0.12.2B90.24 (#5)81.02 (#7)54.32 (#5)
colnomic-embed-multimodal-7b7.0B89.72 (#7)81.30 (#5)57.64 (#2)
colnomic-embed-multimodal-3b3.0B89.86 (#6)80.09 (#8)56.40 (#3)
colqwen2.5-v0.23.0B89.54 (#8)81.12 (#6)52.44 (#6)
colqwen2-v1.02.2B89.23 (#9)79.74 (#9)44.18 (#8)

πŸ“‹ Summary Tables

128-dim Models Comparison

128-dim Models Summary

Comparison vs High-dim Models

High-dim Comparison

✨ Key Features

  • πŸ† #1 in 128-dim Class: Best ViDoRe v1 and v3 scores among all 128-dim models
  • ⚑ Compact Embeddings: 128-dimensional (same as ColPali, 2.5x smaller than tomoro)
  • 🌍 Multilingual: Trained on 6 languages (EN, DE, FR, ES, IT, PT)
  • πŸ“„ High Resolution: Supports up to 1540 visual tokens per image
  • πŸ”§ MTEB Compatible: Standardized evaluation and easy integration
  • πŸ’» Full Code: github.com/VAGOsolutions/sauerkrautlm-colpali

Model Details

PropertyValue
Base ModelQwen/Qwen3-VL-8B
Parameters8.0B
Embedding Dimension128
VRAM (bfloat16)~16 GB
Max Context Length262,144 tokens
Image ResolutionDynamic (up to 1540 visual tokens)
Supported LanguagesEN, DE, FR, ES, IT, PT
LicenseApache 2.0

Training

Hardware & Configuration

SettingValue
GPUs4x NVIDIA A100 SXM (80GB)
Effective Batch Size256
Precisionbfloat16
OptimizerAdamW

Datasets

DatasetTypeDescription
vidore/colpali_train_setPublicColPali training data
openbmb/VisRAG-Ret-Train-In-domain-dataPublicVisual RAG training data
llamaindex/vdr-multilingual-trainPublicMultilingual document retrieval
VAGO Multilingual Dataset 1In-houseProprietary multilingual document-query pairs
VAGO Multilingual Dataset 2In-houseProprietary multilingual document-query pairs

Installation & Usage

Sentence Transformers

This model can be used with Sentence Transformers as a multi-vector (ColBERT-style late interaction) retriever via the MultiVectorEncoder:

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

model = MultiVectorEncoder("VAGOsolutions/SauerkrautLM-ColQwen3-8b-v0.1")

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",
]

query_embeddings = model.encode_query(queries)
image_embeddings = model.encode_document(images)
print(query_embeddings[0].shape, image_embeddings[0].shape)
# torch.Size([25, 128]) torch.Size([1251, 128])

# Diagonal should have higher scores
scores = model.similarity(query_embeddings, image_embeddings)
print(scores)
# tensor([[14.9121,  9.1426],
#         [ 5.8672, 15.3125]], device='cuda:0')

SauerkrautLM ColPali

⚠️ Important: Install our package first before loading the model:

pip install git+https://github.com/VAGOsolutions/sauerkrautlm-colpali
import torch
from PIL import Image
from sauerkrautlm_colpali.models import ColQwen3, ColQwen3Processor

model_name = "VAGOsolutions/SauerkrautLM-ColQwen3-8b-v0.1"

model = ColQwen3.from_pretrained(
    model_name,
    torch_dtype=torch.bfloat16,
    attn_implementation="flash_attention_2",
    device_map="cuda:0",
).eval()

processor = ColQwen3Processor.from_pretrained(model_name)

# Process inputs
images = [Image.open("document.png")]
queries = ["What is the main topic?"]

batch_images = processor.process_images(images).to(model.device)
batch_queries = processor.process_queries(queries).to(model.device)

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

scores = processor.score(query_embeddings, image_embeddings)

πŸ“Š Additional Benchmark Visualizations

MTEB v1+v2 Benchmark (128-dim Models)

MTEB v1+v2 Benchmark - 128-dim Models

ViDoRe v3 Benchmark (128-dim Models)

ViDoRe v3 Benchmark - 128-dim Models

Our Models vs High-dim Models

ViDoRe v1 - Our Models vs High-dim

Citation

@misc{sauerkrautlm-colpali-2025,
  title={SauerkrautLM-ColPali: Multi-Vector Vision Retrieval Models},
  author={David Golchinfar},
  organization={VAGO Solutions},
  year={2025},
  url={https://github.com/VAGOsolutions/sauerkrautlm-colpali}
}

Contact

Contributors

DavidGF

6 commits

tomaarsen

1 commits

VAGOsolutions/SauerkrautLM-ColQwen3-8b-v0.1

Model

4

stars

7

commits

2

repos using this model

1

linked in READMEs

Aug 27, 2026

updated

colpali
colqwen3
conversational
document-retrieval
image-text-to-text
late-interaction
mteb
multi-vector
qwen3-vl
safetensors
sauerkrautlm-colpali
sentence-transformers
vidore
vision-language-model
visual-retrieval
Browse cluster: Visual Document Retrieval & ColPali β†’

README

SauerkrautLM-ColQwen3-8b-v0.1

VAGO Solutions Logo

πŸ† #1 among 128-dim Models | State-of-the-Art Visual Document Retrieval

SauerkrautLM-ColQwen3-8b-v0.1 is the best-performing 128-dimensional embedding model for visual document retrieval, achieving 91.08 NDCG@5 on ViDoRe v1 - the highest score among all models with 128-dim embeddings.

ViDoRe v1 Benchmark - 128-dim Models

🎯 Why Visual Document Retrieval?

Traditional OCR-based retrieval loses layout, tables, and visual context. Our visual approach:

  • βœ… No OCR errors - Direct visual understanding
  • βœ… Layout-aware - Understands tables, forms, charts
  • βœ… End-to-end - Single model, no pipeline complexity

πŸ† Key Achievements

BenchmarkScoreRank (128-dim)Rank (All)
ViDoRe v191.08πŸ₯‡ #1#1
MTEB v1+v282.91#2#5
ViDoRe v358.55πŸ₯‡ #1#3

128-dim Models Comparison (XLarge Category)

ModelParamsDimViDoRe v1MTEB v1+v2ViDoRe v3
SauerkrautLM-ColQwen3-8b-v0.1 ⭐8.0B12891.0882.9158.55
EvoQwen2.5-VL-Retriever-7B-v17.0B12890.6883.41-
colnomic-embed-multimodal-7b7.0B12889.7281.3057.64

Our 8B model achieves the highest ViDoRe v1 and v3 scores among ALL 128-dim models!

Detailed Benchmark Results

πŸ“Š ViDoRe v1 (NDCG@5) - Click to expand
TaskScore
ArxivQA93.80 πŸ₯‡
DocVQA64.69
InfoVQA94.51
ShiftProject90.41
SyntheticDocQA-AI98.65
SyntheticDocQA-Energy96.52
SyntheticDocQA-Gov96.79
SyntheticDocQA-Health99.26
TabFQuAD92.18
TATDQA84.04 πŸ₯‡
Average91.08 πŸ₯‡
πŸ“Š MTEB v1+v2 (NDCG@5) - Click to expand

ViDoRe v1 Tasks:

TaskScore
ArxivQA93.80 πŸ₯‡
DocVQA64.69
InfoVQA94.51
ShiftProject90.41
SyntheticDocQA-AI98.65
SyntheticDocQA-Energy96.52
SyntheticDocQA-Gov96.79
SyntheticDocQA-Health99.26
TabFQuAD92.18
TATDQA84.04 πŸ₯‡

ViDoRe v2 Tasks (Multilingual):

TaskScore
ViDoRe-v2-2BioMed63.26
ViDoRe-v2-2Econ57.98
ViDoRe-v2-2ESG-HL70.77
ViDoRe-v2-2ESG57.85
Combined Average82.91
πŸ“Š ViDoRe v3 (NDCG@10) - Click to expand
TaskScore
ViDoRe-v3-CS77.52 πŸ₯‡
ViDoRe-v3-Energy66.32
ViDoRe-v3-FinanceEn55.79
ViDoRe-v3-FinanceFr45.03
ViDoRe-v3-HR59.96
ViDoRe-v3-Industry50.39
ViDoRe-v3-Pharma63.98
ViDoRe-v3-Physics49.36
Average58.55

Overall Summary (128-dim Models)

ModelParamsViDoRe v1MTEB v1+v2ViDoRe v3
SauerkrautLM-ColQwen3-8b-v0.1 ⭐8.0B91.08 (#1)82.91 (#2)58.55 (#1)
EvoQwen2.5-VL-Retriever-7B-v17.0B90.68 (#3)83.41 (#1)-
SauerkrautLM-ColQwen3-4b-v0.14.0B90.80 (#2)81.97 (#4)56.03 (#4)
EvoQwen2.5-VL-Retriever-3B-v13.0B90.67 (#4)82.76 (#3)-
SauerkrautLM-ColQwen3-2b-v0.12.2B90.24 (#5)81.02 (#7)54.32 (#5)
colnomic-embed-multimodal-7b7.0B89.72 (#7)81.30 (#5)57.64 (#2)
colnomic-embed-multimodal-3b3.0B89.86 (#6)80.09 (#8)56.40 (#3)
colqwen2.5-v0.23.0B89.54 (#8)81.12 (#6)52.44 (#6)
colqwen2-v1.02.2B89.23 (#9)79.74 (#9)44.18 (#8)

πŸ“‹ Summary Tables

128-dim Models Comparison

128-dim Models Summary

Comparison vs High-dim Models

High-dim Comparison

✨ Key Features

  • πŸ† #1 in 128-dim Class: Best ViDoRe v1 and v3 scores among all 128-dim models
  • ⚑ Compact Embeddings: 128-dimensional (same as ColPali, 2.5x smaller than tomoro)
  • 🌍 Multilingual: Trained on 6 languages (EN, DE, FR, ES, IT, PT)
  • πŸ“„ High Resolution: Supports up to 1540 visual tokens per image
  • πŸ”§ MTEB Compatible: Standardized evaluation and easy integration
  • πŸ’» Full Code: github.com/VAGOsolutions/sauerkrautlm-colpali

Model Details

PropertyValue
Base ModelQwen/Qwen3-VL-8B
Parameters8.0B
Embedding Dimension128
VRAM (bfloat16)~16 GB
Max Context Length262,144 tokens
Image ResolutionDynamic (up to 1540 visual tokens)
Supported LanguagesEN, DE, FR, ES, IT, PT
LicenseApache 2.0

Training

Hardware & Configuration

SettingValue
GPUs4x NVIDIA A100 SXM (80GB)
Effective Batch Size256
Precisionbfloat16
OptimizerAdamW

Datasets

DatasetTypeDescription
vidore/colpali_train_setPublicColPali training data
openbmb/VisRAG-Ret-Train-In-domain-dataPublicVisual RAG training data
llamaindex/vdr-multilingual-trainPublicMultilingual document retrieval
VAGO Multilingual Dataset 1In-houseProprietary multilingual document-query pairs
VAGO Multilingual Dataset 2In-houseProprietary multilingual document-query pairs

Installation & Usage

Sentence Transformers

This model can be used with Sentence Transformers as a multi-vector (ColBERT-style late interaction) retriever via the MultiVectorEncoder:

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

model = MultiVectorEncoder("VAGOsolutions/SauerkrautLM-ColQwen3-8b-v0.1")

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",
]

query_embeddings = model.encode_query(queries)
image_embeddings = model.encode_document(images)
print(query_embeddings[0].shape, image_embeddings[0].shape)
# torch.Size([25, 128]) torch.Size([1251, 128])

# Diagonal should have higher scores
scores = model.similarity(query_embeddings, image_embeddings)
print(scores)
# tensor([[14.9121,  9.1426],
#         [ 5.8672, 15.3125]], device='cuda:0')

SauerkrautLM ColPali

⚠️ Important: Install our package first before loading the model:

pip install git+https://github.com/VAGOsolutions/sauerkrautlm-colpali
import torch
from PIL import Image
from sauerkrautlm_colpali.models import ColQwen3, ColQwen3Processor

model_name = "VAGOsolutions/SauerkrautLM-ColQwen3-8b-v0.1"

model = ColQwen3.from_pretrained(
    model_name,
    torch_dtype=torch.bfloat16,
    attn_implementation="flash_attention_2",
    device_map="cuda:0",
).eval()

processor = ColQwen3Processor.from_pretrained(model_name)

# Process inputs
images = [Image.open("document.png")]
queries = ["What is the main topic?"]

batch_images = processor.process_images(images).to(model.device)
batch_queries = processor.process_queries(queries).to(model.device)

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

scores = processor.score(query_embeddings, image_embeddings)

πŸ“Š Additional Benchmark Visualizations

MTEB v1+v2 Benchmark (128-dim Models)

MTEB v1+v2 Benchmark - 128-dim Models

ViDoRe v3 Benchmark (128-dim Models)

ViDoRe v3 Benchmark - 128-dim Models

Our Models vs High-dim Models

ViDoRe v1 - Our Models vs High-dim

Citation

@misc{sauerkrautlm-colpali-2025,
  title={SauerkrautLM-ColPali: Multi-Vector Vision Retrieval Models},
  author={David Golchinfar},
  organization={VAGO Solutions},
  year={2025},
  url={https://github.com/VAGOsolutions/sauerkrautlm-colpali}
}

Contact

Contributors

DavidGF

6 commits

tomaarsen

1 commits