VAGOsolutions/SauerkrautLM-ColMinistral3-3b-v0.1
SauerkrautLM-ColMinistral3-3b-v0.1
<p align="center"> <img src="https://vago-solutions.ai/wp-content/uploads/2025/12/Sauerkrautlm-colpali-scaled.png" alt="VAGO Solutions Logo" width="75%"/> </p>
๐ฌ 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.
<p align="center"> <img src="https://raw.githubusercontent.com/VAGOsolutions/sauerkrautlm-colpali/main/assets/benchmark128dimv1.png" alt="ViDoRe v1 Benchmark - 128-dim Models" width="100%"/> </p>
๐ฏ 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
Large Category Comparison (3-5B, 128-dim)
vs. ColPali Baseline
Slightly better than ColPali-v1.1 baseline.
๐ Summary Tables
128-dim Models Comparison
<p align="center"> <img src="https://raw.githubusercontent.com/VAGOsolutions/sauerkrautlm-colpali/main/assets/tablesummary128dim.png" alt="128-dim Models Summary" width="100%"/> </p>
Comparison vs High-dim Models
<p align="center"> <img src="https://raw.githubusercontent.com/VAGOsolutions/sauerkrautlm-colpali/main/assets/tablesummaryhighdim_comparison.png" alt="High-dim Comparison" width="100%"/> </p>
โจ 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
Training
Hardware & Configuration
Datasets
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.0rc0import 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)
<p align="center"> <img src="https://raw.githubusercontent.com/VAGOsolutions/sauerkrautlm-colpali/main/assets/benchmark128dimv1v2.png" alt="MTEB v1+v2 Benchmark - 128-dim Models" width="100%"/> </p>
ViDoRe v3 Benchmark (128-dim Models)
<p align="center"> <img src="https://raw.githubusercontent.com/VAGOsolutions/sauerkrautlm-colpali/main/assets/benchmark128dimv3.png" alt="ViDoRe v3 Benchmark - 128-dim Models" width="100%"/> </p>
Our Models vs High-dim Models
<p align="center"> <img src="https://raw.githubusercontent.com/VAGOsolutions/sauerkrautlm-colpali/main/assets/benchmarkoursvshighdimv1.png" alt="ViDoRe v1 - Our Models vs High-dim" width="100%"/> </p>
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
- VAGO Solutions: https://vago-solutions.ai
- GitHub: https://github.com/VAGOsolutions
