VAGOsolutions/SauerkrautLM-ColMinistral3-3b-v0.1

Model

3

stars

6

commits

2

repos using this model

1

linked in READMEs

Aug 27, 2026

updated

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

README

SauerkrautLM-ColMinistral3-3b-v0.1

VAGO Solutions Logo

πŸ”¬ Experimental Architecture | Mistral-Based Visual Retrieval

SauerkrautLM-ColMinistral3-3b-v0.1 is an experimental model based on mistralai/Ministral-3-3B-Reasoning-2512 with the Pixtral vision encoder, exploring the Mistral architecture for document retrieval.

⚠️ Note: This is an experimental release. For production use, we recommend ColQwen3 or ColLFM2 models.

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

πŸ“Š Benchmark Results

BenchmarkScoreRank (128-dim)
ViDoRe v181.98-
MTEB v1+v271.93-
ViDoRe v340.50#11

Large Category Comparison (3-5B, 128-dim)

ModelParamsDimViDoRe v1MTEB v1+v2ViDoRe v3
SauerkrautLM-ColQwen3-4b-v0.1 ⭐4.0B12890.8081.9756.03
EvoQwen2.5-VL-Retriever-3B-v13.0B12890.6782.76-
colnomic-embed-multimodal-3b3.0B12889.8680.0956.40
SauerkrautLM-ColMinistral3-3b-v0.13.0B12881.9871.9340.50

vs. ColPali Baseline

ModelParamsViDoRe v1
ColMinistral3-3b3.0B81.98
colpali-v1.12.9B81.61

Slightly better than ColPali-v1.1 baseline.

πŸ“‹ Summary Tables

128-dim Models Comparison

128-dim Models Summary

Comparison vs High-dim Models

High-dim Comparison

✨ Key Features

  • πŸ”¬ Novel Architecture: First ColPali-style model based on Ministral/Pixtral
  • πŸ“· Pixtral Vision: Uses Mistral's Pixtral vision encoder
  • ⚑ 128-dim Embeddings: Compact embedding space
  • 🌍 Multilingual: 6 languages (EN, DE, FR, ES, IT, PT)

Model Details

PropertyValue
Base Modelmistralai/Ministral-3B-Instruct
Vision EncoderPixtral
Parameters3.0B
Embedding Dimension128
VRAM (bfloat16)~6 GB
Max Context Length262,144 tokens
LicenseApache 2.0

Training

Hardware & Configuration

SettingValue
GPUs4x NVIDIA RTX 6000 Ada (48GB)
Effective Batch Size256
Precisionbfloat16

Datasets

DatasetTypeDescription
vidore/colpali_train_setPublicColPali training data
openbmb/VisRAG-Ret-Train-In-domain-dataPublicVisual RAG training data
llamaindex/vdr-multilingual-trainPublicMultilingual 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-ColMinistral3-3b-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([24, 128]) torch.Size([427, 128])

# Diagonal should have higher scores
scores = model.similarity(query_embeddings, image_embeddings)
print(scores)
# tensor([[24.0039, 24.0000],
#         [19.2227, 19.5508]], device='cuda:0')

SauerkrautLM ColPali

⚠️ Important: Install our package first (requires transformers 5.0.0+):

pip install "sauerkrautlm-colpali[ministral]"
# Or: pip install git+https://github.com/VAGOsolutions/sauerkrautlm-colpali && pip install transformers>=5.0.0rc0
import torch
from PIL import Image
from sauerkrautlm_colpali.models import ColMinistral3, ColMinistral3Processor

model_name = "VAGOsolutions/SauerkrautLM-ColMinistral3-3b-v0.1"

model = ColMinistral3.from_pretrained(model_name)
model = model.to(dtype=torch.bfloat16, device="cuda:0").eval()

processor = ColMinistral3Processor.from_pretrained(model_name)

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)

When to Use This Model

βœ… Consider when:

  • You need a Mistral-based architecture
  • Exploring alternative vision encoders
  • Research and experimentation

❌ Use ColQwen3 instead when:

  • Maximum performance required
  • Production deployment

Experimental Status

This model represents architecture exploration. Key findings:

  • Pixtral Vision Encoder works for document understanding
  • Ministral backbone capable but not as optimized for retrieval as Qwen3-VL
  • Future work: investigating larger Ministral variants

πŸ“Š 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

5 commits

tomaarsen

1 commits

VAGOsolutions/SauerkrautLM-ColMinistral3-3b-v0.1

Model

3

stars

6

commits

2

repos using this model

1

linked in READMEs

Aug 27, 2026

updated

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

README

SauerkrautLM-ColMinistral3-3b-v0.1

VAGO Solutions Logo

πŸ”¬ Experimental Architecture | Mistral-Based Visual Retrieval

SauerkrautLM-ColMinistral3-3b-v0.1 is an experimental model based on mistralai/Ministral-3-3B-Reasoning-2512 with the Pixtral vision encoder, exploring the Mistral architecture for document retrieval.

⚠️ Note: This is an experimental release. For production use, we recommend ColQwen3 or ColLFM2 models.

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

πŸ“Š Benchmark Results

BenchmarkScoreRank (128-dim)
ViDoRe v181.98-
MTEB v1+v271.93-
ViDoRe v340.50#11

Large Category Comparison (3-5B, 128-dim)

ModelParamsDimViDoRe v1MTEB v1+v2ViDoRe v3
SauerkrautLM-ColQwen3-4b-v0.1 ⭐4.0B12890.8081.9756.03
EvoQwen2.5-VL-Retriever-3B-v13.0B12890.6782.76-
colnomic-embed-multimodal-3b3.0B12889.8680.0956.40
SauerkrautLM-ColMinistral3-3b-v0.13.0B12881.9871.9340.50

vs. ColPali Baseline

ModelParamsViDoRe v1
ColMinistral3-3b3.0B81.98
colpali-v1.12.9B81.61

Slightly better than ColPali-v1.1 baseline.

πŸ“‹ Summary Tables

128-dim Models Comparison

128-dim Models Summary

Comparison vs High-dim Models

High-dim Comparison

✨ Key Features

  • πŸ”¬ Novel Architecture: First ColPali-style model based on Ministral/Pixtral
  • πŸ“· Pixtral Vision: Uses Mistral's Pixtral vision encoder
  • ⚑ 128-dim Embeddings: Compact embedding space
  • 🌍 Multilingual: 6 languages (EN, DE, FR, ES, IT, PT)

Model Details

PropertyValue
Base Modelmistralai/Ministral-3B-Instruct
Vision EncoderPixtral
Parameters3.0B
Embedding Dimension128
VRAM (bfloat16)~6 GB
Max Context Length262,144 tokens
LicenseApache 2.0

Training

Hardware & Configuration

SettingValue
GPUs4x NVIDIA RTX 6000 Ada (48GB)
Effective Batch Size256
Precisionbfloat16

Datasets

DatasetTypeDescription
vidore/colpali_train_setPublicColPali training data
openbmb/VisRAG-Ret-Train-In-domain-dataPublicVisual RAG training data
llamaindex/vdr-multilingual-trainPublicMultilingual 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-ColMinistral3-3b-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([24, 128]) torch.Size([427, 128])

# Diagonal should have higher scores
scores = model.similarity(query_embeddings, image_embeddings)
print(scores)
# tensor([[24.0039, 24.0000],
#         [19.2227, 19.5508]], device='cuda:0')

SauerkrautLM ColPali

⚠️ Important: Install our package first (requires transformers 5.0.0+):

pip install "sauerkrautlm-colpali[ministral]"
# Or: pip install git+https://github.com/VAGOsolutions/sauerkrautlm-colpali && pip install transformers>=5.0.0rc0
import torch
from PIL import Image
from sauerkrautlm_colpali.models import ColMinistral3, ColMinistral3Processor

model_name = "VAGOsolutions/SauerkrautLM-ColMinistral3-3b-v0.1"

model = ColMinistral3.from_pretrained(model_name)
model = model.to(dtype=torch.bfloat16, device="cuda:0").eval()

processor = ColMinistral3Processor.from_pretrained(model_name)

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)

When to Use This Model

βœ… Consider when:

  • You need a Mistral-based architecture
  • Exploring alternative vision encoders
  • Research and experimentation

❌ Use ColQwen3 instead when:

  • Maximum performance required
  • Production deployment

Experimental Status

This model represents architecture exploration. Key findings:

  • Pixtral Vision Encoder works for document understanding
  • Ministral backbone capable but not as optimized for retrieval as Qwen3-VL
  • Future work: investigating larger Ministral variants

πŸ“Š 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

5 commits

tomaarsen

1 commits