CoolFace
Modelpublic

VillanovaAI/Villanova-2B-VL-2603

sourceHugging Faceapache-2.0updated 9h agoView on Hugging Face
3likes192downloads
Model Card

Model Card for Villanova-2B-VL-2603

<img src="https://huggingface.co/spaces/VillanovaAI/README/resolve/main/LogoVILLANOVAcolore.svg" alt="Villanova.AI logo" height="96"/>

Villanova-2B-VL-2603 is a fully open, multilingual Vision-Language Model developed by Villanova.AI. Part of the Villanova project, it extends our text-only Villanova-2B-2603 to visual understanding while preserving native support for five European languages. All model weights, training data sources, and training details are publicly released.

Built on a LLaVA-style architecture pairing a SigLIP vision encoder with the Villanova-2B-Base-2603 language backbone, this ~2.8B-parameter model delivers strong multimodal understanding, visual question answering, and multilingual image captioning under a fully open Apache 2.0 license.


Model Family

[Villanova-2B-Base-2603](https://huggingface.co/VillanovaAI/Villanova-2B-Base-2603) — Base model (4.4T)<br> &emsp;↳ [Villanova-2B-2603](https://huggingface.co/VillanovaAI/Villanova-2B-2603) — SFT / Instruct<br> &emsp;&emsp;↳ Villanova-2B-2603-GGUF — Quantized<br> &emsp;↳ [Villanova-2B-VL-2603](https://huggingface.co/VillanovaAI/Villanova-2B-VL-2603) — Vision-Language Instruct — 📍 This model<br> &emsp;&emsp;↳ Villanova-2B-VL-2603-GGUF — Quantized<br> <br> [Villanova-2B-Base-2512-Preview](https://huggingface.co/VillanovaAI/Villanova-2B-Base-2512-Preview) — Base model (2.2T) (previous version, not recommended)<br> &emsp;↳ [Villanova-2B-2512-Preview](https://huggingface.co/VillanovaAI/Villanova-2B-2512-Preview) — SFT / Instruct (previous version, not recommended)<br>


Highlights

  • —European-focused, fully open VLM released under Apache 2.0
  • —Native multilingual support for 5 European languages: English, French, German, Italian, and Spanish, including multilingual image captioning (XM3600) and visual instruction following
  • —Broad visual understanding across general VQA (RealWorldQA, CVQA, MME) and multilingual benchmarks (Multi-MMBench, Multi-AI2D)
  • —Preserves text-only capabilities of the Villanova-2B-2603 language backbone through text-only data mixing in Stage 2
  • —Only ~2.8B parameters, efficient enough for single-GPU inference

Model Summary

ArchitectureLLaVA (LlavaForConditionalGeneration)
Vision EncoderSigLIP-SO400M/14 (frozen in Stage 2)
Language ModelVillanova-2B-Base-2603
Total Parameters~2.79B
Stage 1Projector-only alignment on multilingual image-caption pairs
Stage 2LLM unfrozen, vision tower frozen, visual instruction tuning on a fullmix recipe (~1.08M samples)
LanguagesEnglish, French, German, Italian, Spanish
Max Sequence Length32,768 tokens
Precisionbfloat16
LicenseApache 2.0

Training Recipe (Stage 1: Projector Alignment)

Stage 1 aligns the vision encoder output to the language model embedding space by training only the multimodal projector, with both the vision tower and the LLM fully frozen. This is a lightweight warmup that teaches the projector how to map SigLIP visual features into the Villanova-2B token space before any instruction tuning.

Data: Multi-Pixmo-Cap, multilingual image caption pairs in EN/DE/ES/FR/IT (brief captions split).

HyperparameterValue
Trainable parametersMultimodal projector only
Vision towerfrozen
LLMfrozen
Learning rate1e-3
Batch size (per GPU)2
Gradient accumulation16
GPUs8× H100 80GB
Effective batch size256
Epochs4
Max seq length32,768
Precisionbf16-mixed

Training Data

Both stages use only permissively-licensed data (no GPT/Claude-generated content). The curated multilingual derivatives (the Multi-* datasets, translated and post-processed in EN/DE/ES/FR/IT) are released by Villanova.AI on the HuggingFace Hub.

Stage 1: Projector Alignment (~600K samples)

DatasetRoleModalitySamples
Multi-Pixmo-CapBrief image captioningImage + text (5 langs)~600K

Stage 2: Visual Instruction Tuning (~1.08M samples)

DatasetRoleModalitySamples
FineVision (AOKVQA)General VQAImage + text16K
FineVision (DocVQA)Document understandingImage + text37K
FineVision (TextVQA)Scene-text VQAImage + text33K
FineVision (VizWiz)Accessibility VQAImage + text6K
FineVision (VQAv2)General VQAImage + text422K
AI2DDiagram QAImage + text7K
TextCapsImage captioning with textImage + text22K
XM3600Multilingual image captioningImage + text (5 langs)41K
Multi-Pixmo-AskMultilingual visual instructionImage + text (5 langs)112K
Multi-Persona-IFMultilingual instruction following with personaImage + text (5 langs)75K
Multi-Dolly-15kText-only general instructionText only (5 langs)14K
Multi-FLAN-CoTText-only chain-of-thought reasoningText only (5 langs)38K
Multi-FLAN-NIV2Text-only NLP task instructionText only (5 langs)38K
Multi-FLAN-P3Text-only NLP task instruction (P3)Text only (5 langs)6K
Multi-SciRIFFText-only scientific reasoningText only (5 langs)67K
Multi-SmolTalk-RewriteText-only rewriting tasksText only (5 langs)51K
Multi-SmolTalk-SummarizeText-only summarizationText only (5 langs)91K
Villanova-Hard-CodedIdentity / persona priorsText only167
The text-only mixing in Stage 2 prevents catastrophic forgetting of the language model's pre-existing capabilities.

Training Recipe (Stage 2: Visual Instruction Tuning)

HyperparameterValue
BackboneVillanova-2B-Base-2603
OptimizerAdamW, weight decay 0.01
Learning rate2e-5
SchedulerCosine with warmup
Warmup steps200
Epochs4
Batch size (per GPU)1
Gradient accumulation16
GPUs8× H100 80GB
Effective batch size128
Precisionbf16-mixed
Max seq length32,768
Vision towerfrozen

How to Use

python
import torch
from PIL import Image
from transformers import AutoProcessor, LlavaForConditionalGeneration

model_name = "VillanovaAI/Villanova-2B-VL-2603"
device = "cuda"

processor = AutoProcessor.from_pretrained(model_name)
model = LlavaForConditionalGeneration.from_pretrained(
    model_name,
    dtype=torch.bfloat16,
).to(device)
model.eval()

image = Image.open("example.jpg").convert("RGB")

# The `<image>` placeholder inside the content string marks where the
# image tokens will be inserted by the processor.
messages = [
    {"role": "user", "content": "<image>\nDescribe this image in detail."},
]

prompt = processor.apply_chat_template(messages, add_generation_prompt=True)
inputs = processor(images=image, text=prompt, return_tensors="pt").to(device, torch.bfloat16)

with torch.no_grad():
    output_ids = model.generate(**inputs, max_new_tokens=256, do_sample=False)

response = processor.decode(output_ids[0][inputs.input_ids.shape[1]:], skip_special_tokens=True)
print(response)

Evaluation

Villanova-2B-VL-2603 was evaluated using VLMEvalKit on a suite of standard and multilingual VLM benchmarks covering multiple-choice reasoning, general visual question answering, hallucination robustness, and cross-lingual visual understanding. All evaluations use exact_matching judging (no LLM-as-judge) for full reproducibility.

We compare against [Salamandra-VL-7B](https://huggingface.co/BSC-LT/Salamandra-VL-7B-2512), a strong European VLM built on the same language family.

Despite using less than a third of the parameters (~2.8B vs ~8.9B), Villanova-2B-VL-2603 matches Salamandra-VL-7B overall, with particular strengths on general VQA and multilingual benchmarks. Multilingual benchmarks are reported as the average across EN/DE/ES/FR/IT.

CategoryBenchmarkSalamandra-VL-7B**Villanova-2B-VL-2603**
MCQ / ReasoningMMBench51.952.6
MCQ / ReasoningMMStar38.932.7
MCQ / ReasoningAI2D58.551.1
MCQ / ReasoningScienceQA65.062.4
General VQARealWorldQA45.546.8
General VQACVQA32.937.6
General VQAMME13691565
HallucinationPOPE86.881.1
OCR / DocumentOCRBench558377
Multilingual (avg)Multi-MMBench59.761.0
Multilingual (avg)Multi-AI2D58.466.4
Multilingual (avg)Multi-MMStar50.247.6
OverallAverage (0-100 benchmarks)54.853.9
The Overall row is the unweighted average across the 10 benchmarks on the 0-100 scale. MME and OCRBench are excluded because they use different scoring scales (0-2800 and 0-1000 respectively).

Multilingual Evaluation (Per-Language Detail)

The multilingual benchmarks (Multi-MMBench, Multi-AI2D, Multi-MMStar) are extensions of the standard benchmarks with parallel test sets in 5 European languages. Below is the per-language breakdown.

BenchmarkModelDEENESFRIT**Avg**
Multi-MMBenchSalamandra-VL-7B59.364.862.757.054.759.7
Multi-MMBenchVillanova-2B-VL-260360.862.858.960.661.661.0
Multi-AI2DSalamandra-VL-7B57.067.162.253.652.258.4
Multi-AI2DVillanova-2B-VL-260366.668.165.166.965.466.4
Multi-MMStarSalamandra-VL-7B46.656.552.348.247.350.2
Multi-MMStarVillanova-2B-VL-260345.950.147.049.245.747.6

Key takeaways:

  • —Competitive overall average (53.9 vs 54.8) against a model with ~3.2x more parameters
  • —Wins on general VQA: RealWorldQA, CVQA, and MME all outperform Salamandra-VL-7B
  • —Solid multilingual capability across EN/DE/ES/FR/IT, with a particularly strong Multi-AI2D improvement (+8.0 avg, wins on all 5 languages) over Salamandra-VL-7B
  • —Balanced per-language performance: on Multi-AI2D and Multi-MMBench, Villanova performs uniformly across DE/EN/ES/FR/IT (no language collapse)

Intended Use

  • —Multilingual image captioning and description
  • —Visual question answering (single-image)
  • —Document and chart understanding (OCR-light tasks)
  • —Multimodal instruction following in EN/DE/ES/FR/IT
  • —Research on fully-open European VLMs

Limitations

  • —Single-image inference only (no multi-image or video support)
  • —OCR quality on dense, small-text documents is limited compared to specialized OCR-heavy VLMs
  • —As with all VLMs, outputs can contain hallucinations; users should verify factual claims

License

This model is released under the Apache 2.0 License. The training data used for Stage 2 was selected to allow permissive commercial use (no GPT/Claude-generated content).

Citation

@inproceedings{simonazzi2026villanova2b,
  author    = {Simonazzi, Stefano and Zeinalipour, Kamyar and Gabburo, Matteo and Baiamonte, Daniela and Fano, Elena and Zugarini, Andrea},
  title     = {Villanova-2B: European Open Multilingual and Multimodal Language Models},
  booktitle = {Proceedings of the Twelfth Italian Conference on Computational Linguistics (CLiC-it 2026)},
  editor    = {Basile, Valerio and Croce, Danilo and Passaro, Lucia and Pirrone, Roberto},
  year      = {2026},
  note      = {In press}
}

@article{baiamonte2026multilingual,
  title={Multilingual Training and Evaluation Resources for Vision-Language Models},
  author={Baiamonte, Daniela and Fano, Elena and Gabburo, Matteo and Simonazzi, Stefano and Rigutini, Leonardo and Zugarini, Andrea},
  journal={arXiv preprint arXiv:2604.18347},
  year={2026}
}