Instructions to use VillanovaAI/Villanova2-2B with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use VillanovaAI/Villanova2-2B with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="VillanovaAI/Villanova2-2B") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# pip install -U transformers accelerate # Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("VillanovaAI/Villanova2-2B") model = AutoModelForCausalLM.from_pretrained("VillanovaAI/Villanova2-2B", device_map="auto") messages = [ {"role": "user", "content": "Who are you?"}, ] inputs = tokenizer.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=256) print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use VillanovaAI/Villanova2-2B with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "VillanovaAI/Villanova2-2B" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "VillanovaAI/Villanova2-2B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/VillanovaAI/Villanova2-2B
- SGLang
How to use VillanovaAI/Villanova2-2B with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "VillanovaAI/Villanova2-2B" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "VillanovaAI/Villanova2-2B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "VillanovaAI/Villanova2-2B" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "VillanovaAI/Villanova2-2B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use VillanovaAI/Villanova2-2B with Docker Model Runner:
docker model run hf.co/VillanovaAI/Villanova2-2B
Villanova2-2B
2.4B dense parameters · 131,072-token context · five European languages · open weight & data
The small instruction-tuned model of the Villanova2 family, for English, Italian, German, Spanish and French. Built in EU, for EU.
Of the models under 3B parameters we have tested, Villanova2-2B is the strongest EU and open weight & data model. Out of 18 open instruction-tuned models from 0.5B to 5B, all run with the same harness and settings, it comes first among the 6 from the EU and the 7 open ones.
| Property | Value |
|---|---|
| Model type | Instruction-tuned dense decoder-only Transformer, Qwen3-style backbone |
| Base model | Villanova2-2B-Base |
| Total parameters | 2,411,190,272 (2.411B) |
| Layers / hidden size | 22 / 2,560 |
| Attention | GQA, 20 query heads, 4 KV groups, head dim 128 |
| Context window | 131,072 tokens |
| Modes | Thinking off / thinking on, selected by the chat template |
| Tool calling | Yes: tools declared in the system turn, calls emitted as <tool_call> blocks |
| Openness | open weight & data: model weights under Apache 2.0; training data documented source by source, each dataset under its own terms; no outputs of proprietary models in the training data |
| Languages | English, Italian, German, Spanish, French (partial support beyond these) |
| License | Apache 2.0 |
Quick start
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "VillanovaAI/Villanova2-2B"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id,
dtype=torch.bfloat16,
device_map="auto",
)
messages = [{"role": "user", "content": "Spiegami in tre frasi perché il cielo è blu."}]
inputs = tokenizer.apply_chat_template(
messages,
add_generation_prompt=True,
enable_thinking=False, # thinking off: the mode evaluated on this card
return_tensors="pt",
).to(model.device)
output = model.generate(inputs, max_new_tokens=512)
print(tokenizer.decode(output[0, inputs.shape[1]:], skip_special_tokens=True))
With vLLM:
vllm serve VillanovaAI/Villanova2-2B --max-model-len 131072
and, in each OpenAI-compatible chat request, "chat_template_kwargs": {"enable_thinking": false}.
The chat template starts in thinking mode. To turn thinking off, pass enable_thinking=False as above, or write <|think_off|> in the system prompt or in a message (<|think_on|> turns it back on). With thinking on, the model writes its reasoning in a <think>…</think> block before the answer, and the template drops the reasoning of earlier turns from the context.
If you don't pass a system prompt, the template uses "You are Villanova, a helpful AI assistant built by Villanova.AI."
For tool calling, pass the tools to apply_chat_template(..., tools=tools). The template lists them as JSON in the system turn, and the model answers with
<tool_call>
<function=get_weather>
<parameter=city>Roma</parameter>
</function>
</tool_call>
and tool results go back as <tool_response> blocks.
In BF16 the weights take about 4.5 GiB and the KV cache needs 44 KiB per token, so the model and a long conversation fit on one consumer GPU.
Quantized version
Villanova2-2B-GGUF holds the same weights quantized for llama.cpp, for edge inference:
llama-cli -hf VillanovaAI/Villanova2-2B-GGUF:Q8_0
Intended use
| Good fit | Not a good fit without extra work |
|---|---|
| On-device and low-latency assistants in EN · IT · DE · ES · FR | Safety-critical or high-stakes decisions without human review |
| Instruction following and structured, formatted output | Code generation beyond short, testable functions |
| Grade-school mathematics and step-by-step arithmetic | Factual answers without retrieval, where errors are costly |
| Translation between English and IT · DE · ES · FR | Languages outside the five core ones, where quality is not guaranteed |
| Tool and function calling on a small compute budget; a starting point for task fine-tuning | |
| Research that needs an auditable model: open weight & data |
The family
- Villanova2-15B-A3B-Base · sparse mixture of experts, 15.5B total / 3.9B active
- Villanova2-15B-A3B · instruction-tuned
- Villanova2-15B-A3B-VL · vision-language
- Villanova2-2B-Base · dense, 2.4B
- Villanova2-2B · instruction-tuned (this model)
- Villanova2-2B-VL · vision-language
Architecture
The architecture is the same as Villanova2-2B-Base; that card covers pre-training, data and the tokenizer.
| Architectural feature | Value |
|---|---|
| Backbone | Qwen3-style dense decoder |
| Layers | 22 |
| Hidden dimension | 2,560 |
| Attention | GQA, 20 Q heads / 4 KV groups, head dim 128 |
| FFN | SwiGLU, intermediate dimension 10,240 |
| Vocabulary | 131,072-token Villanova BPE tokenizer · 130,816 embedding rows, tied input/output |
| Context window | 131,072 tokens |
Post-training
Three stages on top of Villanova2-2B-Base: supervised fine-tuning, then DPO, then GRPO.
| Stage | Data | Setup |
|---|---|---|
| SFT | 3.68M conversations, 10.87B tokens (see Data) | 2 epochs, 4,848 steps, learning rate 5 × 10⁻⁵ |
| DPO | A subset of the SFT data | 2,152 steps, learning rate 5 × 10⁻⁷, β = 10 |
| GRPO | Well-known datasets with verifiable answers, difficulty-sampled | 600 steps |
SFT
One run on two sets at once: Think, where every trained turn has a reasoning trace (1.61M conversations), and Instruct, where none does (2.08M). After training, the chat template alone decides whether the model reasons before it answers. Sequences are packed to 32,768 tokens with no attention across documents, 128 sequences (about 4.2M tokens) per step. AdamW at 5 × 10⁻⁵ with 3% warm-up and linear decay to 0, loss on every assistant turn. 32 B200 GPUs, 5.4 hours.
DPO
Direct preference optimisation from the final SFT checkpoint, on a subset of the SFT data: learning rate 5 × 10⁻⁷, β = 10, 2,152 steps.
GRPO
GRPO with verifiable rewards, starting from well-known datasets and applying offline difficulty sampling; 600 steps.
Data
We used synthetic data only from models released under a permissive licence. Where the origin of a dataset was explicit, we removed the proprietary parts, tracing provenance as carefully as we could; where the origin was doubtful, we did not use the data. This distinguishes Villanova2 from many open models, which are post-trained on popular datasets containing answers written by closed models.
The SFT mixture has 3,684,688 conversations and 10.87B tokens in English, Italian, German, Spanish and French. The rows marked Villanova-AI multilingual come from Multi-SFT (Baiamonte et al., 2026), our collection of permissively licensed instruction data in the five languages, built by translation and regeneration with human review.
Every source goes through the same filters: language check (a failed translation is dropped), loops, truncated answers, broken tool calls, claims to be another model, exact and near-duplicate prompts, and a 32,768-token limit (long rows are dropped, never cut). The Think and Instruct sets share no prompts. Rows that overlap with an evaluation benchmark are tagged rather than removed; at most 1.3% of the conversations carry a tag.
| Source | Content |
|---|---|
| Mathematics | |
| OpenMathReasoning | Competition problems with long solutions (hard subset); final solutions without reasoning for Instruct |
| Nemotron-Post-Training-v1 | Mathematics, DeepSeek-R1-0528 traces |
| Nemotron-SFT-Math-v4 | Chain-of-thought and tool-integrated solutions |
| Nemotron-Math-Proofs-v2 | Proof writing and proof verification (Think only) |
| Mixture-of-Thoughts | Mathematics, code and science traces |
| SYNTHETIC-2 | Verified reasoning traces (up to two per problem) |
| GSM8K train | Grade-school word problems (train split) |
| Villanova-AI multilingual | Native-language school mathematics with worked solutions |
| Instruction following | |
| Dolci-Think-SFT | Precise and persona instruction following, WildChat prompts (regenerated answers), Aya |
| Nemotron-SFT-IF-Chat-v3 | Chat and instruction following (LMSYS and WildChat prompts) |
| Nemotron-SFT-IF-Chat-v2 | Paired reasoning-on / reasoning-off answers |
| Villanova-AI multilingual | Nemotron instruction following in German, Spanish, French and Italian |
| Code | |
| OpenCodeReasoning-2 | Python and C++ competitive programming; final code only for Instruct |
| Nemotron-SFT-Competitive-Programming-v2 | C++, Python, text-to-SQL and Exercism tasks |
| Nemotron-SFT-OpenCode-v1 | General coding and agent skills (Instruct only) |
| Villanova-AI multilingual | Code assistance, Python Alpaca and SelfCodeAlign in five languages |
| Science and reasoning | |
| Nemotron-SFT-Science-v2 | Multiple-choice and open science questions |
| Villanova-AI multilingual | SciRIFF, FLAN chain of thought and TableGPT, Think and Instruct versions |
| Multilingual and chat | |
| SmolTalk2 | Multilingual conversations with Qwen3-32B traces; a few no-think subsets |
| Nemotron-SFT-Multilingual-v1 | Translated reasoning data, German, Spanish, French, Italian |
| Nemotron-Post-Training-v1 | Chat (LMSYS-Chat prompts restored) |
| Aya Collection | Multilingual instructions |
| Europarl | Translation pairs between English and IT/ES/DE/FR |
| Villanova-AI multilingual | WildChat, OASST2, Dolly, summarisation, rewriting, dialogues, FLAN, RAG, MentorES |
| Tools and agents | |
| Nemotron-SFT-Agentic-v4 | Multi-step tool calling and knowledge agents |
| Nemotron-Post-Training-v1 | Tool calling, Qwen3-235B answers |
| Toucan | Tool use in real MCP environments (Instruct only) |
| When2Call | When to call a tool, ask, or abstain |
| Nemotron-Terminal-Corpus | Terminal (shell) agent trajectories |
| Villanova-AI multilingual | xLAM function calling and smolagents traces in five languages |
| Domains, safety and identity | |
| Nemotron-SpecializedDomains-Finance-v1 | Financial question answering |
| Nemotron-SFT-Finance-Doc-Grounded | Questions grounded in 10-K / 10-Q / 8-K filings |
| Nemotron-SFT-LC-Transduction-v1 | Code-generated long-context transduction (rows ≤ 32K tokens) |
| Nemotron-SFT-Safety-v2 | Safety prompts with refusals and safe completions |
| Nemotron-SFT-BBQ-v1 | Bias question answering |
| Villanova-AI multilingual | Red-teaming, AdvBench and safety prompts in five languages |
| Villanova identity (ours) | Generated and reviewed identity conversations, five languages |
Names starting with Nemotron are NVIDIA datasets on Hugging Face (nvidia/…).
Evaluation
We ran 85 benchmarks in 10 categories and five languages, with the same harness (lm-evaluation-harness with a vLLM backend) and the same settings for every model on this card: each model's own chat template, thinking off (enable_thinking=False wherever the template supports it), greedy decoding and a single run. Llama-Guard-3-8B judges the safety (M-ALERT) answers. In the comparison tables, bold marks the best score in each column and underline the best among the open weight & data EU models.
Each average is a plain mean over its group: 85 overall, 44 English, 41 multilingual (IT·DE·ES·FR). A missing score counts as 0; a score is not valid when more than 1% of the prompts had to be cut to fit the context window. Summarization (WikiLingua) is out of this release because the benchmark had a problem in our harness.
The comparison covers 18 instruction-tuned models from 0.6B to 5.1B that release their weights or document their training data.
The 85 benchmarks
- Reasoning (8): BBH CoT, BBH MC, MuSR, ARC-Challenge (EN, DE, ES, FR, IT).
- Mathematics (8): GSM8K, MATH-500, MATH (full), MGSM (EN, DE, ES, FR, IT).
- QA (16): DROP, PopQA, TruthfulQA MC1 and MC2, XQuAD (EN, DE, ES), FQuAD v2 (FR), XCOPA (IT), M-MMLU (EN, DE, ES, FR, IT), xStoryCloze (EN, ES).
- Safety (5): M-ALERT (EN, DE, ES, FR, IT).
- Instruction following (6): IFEval, Marco-Bench (EN, DE, ES, FR, IT).
- Coding (5): HumanEval (Python, JavaScript, Java, C++), MBPP.
- Tool calling (14): ToolBench tool selection; BFCL V4 Simple (Python, Java, JavaScript), Multiple, Parallel, Parallel-Multiple, Irrelevance; BFCL V4 Live Simple, Multiple, Parallel, Parallel-Multiple, Irrelevance, Relevance.
- NER (10): MultiNERD and WikiANN (EN, DE, ES, FR, IT).
- Machine translation (8): FLORES-200, English to and from DE, FR, ES, IT (spBLEU).
- Reading comprehension (5): Belebele (EN, DE, ES, FR, IT).
Overall ranking
| # | Model | Openness | Origin | Params | Avg | EN | ML | IT | DE | ES | FR |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Qwen3.5-4B | weight | non-EU | 4.7B | 73.27 | 69.3 | 77.5 | 76.0 | 76.0 | 79.2 | 78.8 |
| 2 | Qwen3-4B | weight | non-EU | 4.0B | 70.69 | 68.8 | 72.7 | 71.8 | 72.1 | 74.5 | 72.4 |
| 3 | gemma-4-E2B-it | weight | non-EU | 5.1B | 68.50 | 66.3 | 70.9 | 70.5 | 70.2 | 72.9 | 69.9 |
| 4 | Qwen2.5-3B-Instruct | weight | non-EU | 3.1B | 64.33 | 63.0 | 65.7 | 66.8 | 62.4 | 67.5 | 66.1 |
| 5 | Llama-3.2-3B-Instruct | weight | non-EU | 3.2B | 62.78 | 61.0 | 64.7 | 63.8 | 63.5 | 67.4 | 63.7 |
| 6 | Villanova2-2B | weight & data | EU | 2.4B | 62.75 | 59.1 | 66.6 | 66.8 | 66.3 | 68.9 | 64.3 |
| 7 | Qwen3.5-2B | weight | non-EU | 2.3B | 58.46 | 54.0 | 63.3 | 63.3 | 63.0 | 67.4 | 59.0 |
| 8 | Qwen3.5-0.8B | weight | non-EU | 0.9B | 46.15 | 42.6 | 49.9 | 49.1 | 50.7 | 52.6 | 47.1 |
| 9 | Llama-3.2-1B-Instruct | weight | non-EU | 1.2B | 45.11 | 43.6 | 46.8 | 45.8 | 45.4 | 50.3 | 45.2 |
| 10 | Velvet2-3B | weight | EU | 3.9B | 44.83 | 34.3 | 56.1 | 59.0 | 50.0 | 58.5 | 56.7 |
| 11 | gemma-3-1b-it | weight | non-EU | 1.0B | 43.45 | 37.5 | 49.8 | 49.8 | 48.6 | 52.9 | 47.8 |
| 12 | Apertus-v1.1-1.5B-Instruct ²˒⁵ | weight & data | non-EU | 1.5B | 35.42 | 27.8 | 43.5 | 43.0 | 42.9 | 45.1 | 43.0 |
| 13 | Velvet-2B | weight | EU | 2.2B | 33.39 | 28.3 | 38.9 | 47.3 | 32.7 | 37.6 | 38.0 |
| 14 | EuroMoE-2.6B-A0.6B-Instruct | weight & data | EU | 2.6B / 0.6B | 33.20 | 23.1 | 44.0 | 45.5 | 42.1 | 45.6 | 42.9 |
| 15 | OLMo-2-1B-Instruct ² | weight & data | non-EU | 1.5B | 32.64 | 27.4 | 38.2 | 36.3 | 34.3 | 43.2 | 38.6 |
| 16 | salamandra-2b-instruct ⁴ | weight & data | EU | 2.2B | 27.31 | 20.3 | 34.9 | 34.9 | 34.6 | 36.0 | 33.9 |
| 17 | EuroLLM-1.7B-Instruct ² | weight & data | EU | 1.7B | 25.94 | 19.9 | 32.4 | 33.8 | 29.9 | 32.9 | 33.2 |
| 18 | Apertus-v1.1-0.5B-Instruct ²˒⁵ | weight & data | non-EU | 0.6B | 25.45 | 18.6 | 32.8 | 34.2 | 32.1 | 32.9 | 32.0 |
² Marked not valid on some tool-calling benchmarks (4; 2 for OLMo-2-1B) because more than 1% of the prompts exceed the model's context window; these count as 0. ⁴ Open weight & data, though part of the training data is not released: salamandra documents its corpus without redistributing all of it. ⁵ Apertus is developed in Switzerland: European, but not from the EU. EN = English (44 benchmarks), ML = multilingual IT·DE·ES·FR (41); weight = open weights only, weight & data = open weights plus documented training data. Per-language columns average different task mixes, so compare them across models, not across languages.
Strengths and weaknesses
| Model | Reas. | Math | QA | Safety | IF | Code | Tools | NER | MT | Read. |
|---|---|---|---|---|---|---|---|---|---|---|
| Qwen3.5-4B | 80.6 | 86.5 | 69.4 | 98.7 | 89.7 | 71.9 | 67.7 | 67.8 | 39.9 | 88.9 |
| Qwen3-4B | 75.6 | 85.0 | 62.1 | 96.5 | 88.5 | 69.1 | 74.3 | 60.1 | 37.5 | 86.4 |
| gemma-4-E2B-it | 64.4 | 81.3 | 59.0 | 97.0 | 88.2 | 72.3 | 67.0 | 67.6 | 41.0 | 79.1 |
| Qwen2.5-3B-Instruct | 65.6 | 72.4 | 54.3 | 99.2 | 74.1 | 61.3 | 70.9 | 56.2 | 34.8 | 83.2 |
| Llama-3.2-3B-Instruct | 63.5 | 64.5 | 59.5 | 93.2 | 75.9 | 47.6 | 69.4 | 54.2 | 36.8 | 78.3 |
| Villanova2-2B | 56.9 | 69.7 | 58.1 | 99.1 | 81.3 | 39.5 | 65.3 | 59.4 | 42.8 | 72.0 |
| Qwen3.5-2B | 67.5 | 60.1 | 57.5 | 95.0 | 80.3 | 42.9 | 46.8 | 53.4 | 35.4 | 76.8 |
| Qwen3.5-0.8B | 52.6 | 33.5 | 50.7 | 84.9 | 70.6 | 23.3 | 36.9 | 37.3 | 30.5 | 65.0 |
| Llama-3.2-1B-Instruct | 45.0 | 29.0 | 48.2 | 91.4 | 63.9 | 28.2 | 44.8 | 35.4 | 31.3 | 51.6 |
| Velvet2-3B | 49.0 | 46.0 | 52.9 | 96.7 | 71.7 | 12.9 | 12.7 | 47.5 | 34.6 | 59.4 |
| gemma-3-1b-it | 38.9 | 42.7 | 44.0 | 94.3 | 74.8 | 31.6 | 23.4 | 44.7 | 32.8 | 44.4 |
| Apertus-v1.1-1.5B-Instruct ²˒⁵ | 32.1 | 18.5 | 44.2 | 86.7 | 64.7 | 14.5 | 10.9 | 34.9 | 36.5 | 42.4 |
| Velvet-2B | 39.3 | 18.8 | 43.4 | 84.8 | 55.0 | 13.3 | 10.2 | 28.0 | 30.3 | 38.5 |
| EuroMoE-2.6B-A0.6B-Instruct | 39.1 | 11.4 | 41.4 | 85.4 | 60.8 | 12.7 | 1.5 | 36.0 | 40.5 | 39.0 |
| OLMo-2-1B-Instruct ² | 33.4 | 27.7 | 44.3 | 76.8 | 69.7 | 10.8 | 3.6 | 24.2 | 29.9 | 37.8 |
| salamandra-2b-instruct ⁴ | 29.6 | 1.7 | 39.3 | 67.2 | 46.1 | 2.9 | 8.8 | 28.1 | 35.1 | 26.0 |
| EuroLLM-1.7B-Instruct ² | 29.0 | 5.9 | 36.8 | 54.3 | 46.6 | 6.2 | 5.8 | 21.7 | 40.5 | 26.5 |
| Apertus-v1.1-0.5B-Instruct ²˒⁵ | 27.7 | 5.9 | 35.2 | 74.6 | 55.8 | 6.1 | 1.2 | 19.6 | 30.2 | 27.6 |
Bold: best in the column; underlined: best among the open weight & data EU models. Reas. = reasoning, IF = instruction following, MT = machine translation, Read. = reading comprehension.
- Translation is its best category, and the best in this comparison: 42.8 spBLEU over eight FLORES directions, ahead of gemma-4-E2B (41.0) and Qwen3.5-4B (39.9).
- Safety is near the maximum, at 99.1 on M-ALERT; only Qwen2.5-3B is slightly higher (99.2).
- It follows instructions better than the 3B models (81.3, against 75.9 for Llama-3.2-3B and 74.1 for Qwen2.5-3B). In maths it falls between them, at 69.7 (Llama-3.2-3B 64.5, Qwen2.5-3B 72.4).
- Reasoning (56.9), code (39.5) and reading comprehension (72.0) are its weak spots, and they explain most of the gap to the 4B models. Qwen3.5-2B, a model of the same size, scores 67.5 in reasoning and 42.9 in code.
Limitations
All the numbers on this card were measured with thinking off. We have not evaluated thinking mode here, so we make no claims about it.
Reasoning (56.9) and code (39.5) are the weakest areas. Check its answers on multi-step problems, and test any code it writes beyond short functions.
At 2.4B parameters it sometimes gets a plain multiplication wrong when asked only for the result. Asking it to show the steps helps.
The usable context has been measured up to 32k tokens.
Some training data overlaps with public benchmarks. There are IFEval-style instructions and MATH problems among the training conversations, and we used the training splits of GSM8K, MATH and MBPP. Keep this in mind when reading those scores.
A 2.4B model knows a limited amount about the world and can state wrong facts with confidence. Use retrieval when accuracy matters.
The M-ALERT safety scores are high in all five languages, but a benchmark is not a guarantee. The model has not been red-teamed for every use, so add your own safeguards.
We trained and tested it for English, Italian, German, Spanish and French. It handles other languages to some extent, without guarantees.
License, citation, acknowledgements
License. Apache 2.0.
Citation. If you use Villanova2-2B, please cite the technical report and the inaugural Villanova paper, and Multi-SFT for the multilingual SFT data:
@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}
}
@techreport{villanova2_2026,
title = {Villanova2 --- Technical Report},
author = {{Villanova.AI}},
institution = {Villanova.AI},
year = {2026},
note = {Coming soon}
}
@misc{baiamonte2026multisft,
author = {Baiamonte, Daniela and Zeinalipour, Kamyar and Fano, Elena and
Simonazzi, Stefano and Zugarini, Andrea},
title = {Multi-SFT: Permissively-Licensed Multilingual Instruction-Following},
year = {2026},
eprint = {2610.22086},
archivePrefix = {arXiv},
url = {https://arxiv.org/abs/2610.22086}
}
Acknowledgements. This work is part of the Villanova project, financed by IPCEI-CIS, Prog. n. SA. 102519 — CUP B29J24000850005.
- Downloads last month
- 55