Mini-Faro — a 1.28 GB local mind that cites its sources

Mini-Faro is part of the Faro family: small instruction models (≤ 2 GB, GGUF q4_k_m) built at Progetto Siliceo to run locally on old consumer hardware as the mind of an always-on assistant. The design choice is unusual: the ethics live inside the weights — a constitution and a working method are trained in, with no external guardrail layer at inference.

This model was fine-tuned from openbmb/MiniCPM5-2B through the Candela recipe: multilingual vocabulary pruning (IT/ES/EN), embedding resize, constitutional continued pre-training, and supervised fine-tuning on ~480 curated traces. It is released as a GGUF file for llama.cpp and compatible runtimes. trained on an 8 GB RTX 2070.

Model details

Base model openbmb/MiniCPM5-2B
Architecture Llama
Parameters ~2B class (hidden 2048, 42 layers)
Context window 131072 tokens
Vocabulary 130560 → 32203 after IT/ES/EN pruning (24.7% kept)
Embeddings tied: no (embed e lm_head separati)
Format GGUF, q4_k_m (1.28 GB)
Languages Italian, Spanish, English

Chat template. Use the model's own template — the GGUF carries it, so llama.cpp with --jinja applies it automatically. Do not hand-roll the prompt: this fine-tune was trained on a specific turn format and answers poorly outside it.

Evaluation

Measured on the Faro bench — 112 domain questions (10 domains) with an expected action (answer, refute, confine, ask) — plus a 16-case ethics probe and a 12-case anti-hoax probe. Three bench runs are reported to show stability.

probe result
Bench (112 questions) 95/95/96 → 84.8–85.7%
Ethics probe (16 cases) 12/16 (two runs)
Anti-hoax (12 cases) 6/12
Tool calls native tool calls not adapted in v1 (trained without tool traces)

Candela Bench — behavioural honesty

The scores above measure domain competence. This one measures behaviour: does the model cite, refute, confine, ask, verify, refuse with a reason — across 6 modules and 439 items (IT/EN/ES), scored by rules, no LLM judge.

Honesty Index: 0.558 — 0.556 domain · 0.781 ethics · 0.325 honesty · 0.544 cross-lingual · 0.364 tool · 0.714 robustness.

By expected action (this is where the shape shows):

answer refute refuse verify ask confine comply call
0.694 0.825 0.973 0.309 0.302 0.187 0.529 0.200

Candela Bench is our own benchmark (v0.1), built precisely because the domain bench is not comparable with anything. The dataset and the evaluator will be released openly; until then the scores above are reproducible with the evaluator in the project repository.

Candela Bench is hard: every model here scores below 0.70, and the weakest actions for all of them are verify and confine. A constant answer scores at most 0.31, so these numbers measure something real — but they are not a leaderboard position.

Full interactive results (including the model's real answers and its failures): https://progettosiliceo.online/faro.html — technical report: IT · EN · ES

This is also the ablation reference model of the Faro family. Measured phases (112-question bench): base 55.4% → vocabulary pruning alone 52.7% → +constitutional CPT 40.2% (the model recites the method instead of using it) → +trace SFT 84.8–85.7%.

Usage

# llama.cpp (or any GGUF runtime). Reasoning must be disabled at serving time.
llama-server -m mini-faro-q4_k_m.gguf --host 0.0.0.0 --port 8080 -c 8192 -ngl 99 -fa on \
  --cache-type-k turbo4 --cache-type-v turbo3_tcq --jinja --reasoning-budget 0

Tip: on a 4 GB GPU, quantized KV cache (where supported) keeps the footprint near 1.5 GB of VRAM. Serving configuration used for the measurements: beellama / llama.cpp, reasoning off.

What it is — and what it is not

It is a small domain assistant trained to behave honestly — and the benchmark above shows where it actually succeeds and where it does not. Answering within its pack and refuting false premises work reasonably well (0.69 and 0.83); confining what is outside its field does not (0.19 on confine), and asking for missing data is weak too (0.30 on ask). Those are the axes to improve, and they are listed as limitations below rather than claimed as strengths.

It is not a generalist: its domain knowledge comes from its knowledge pack, it is small (2B-class), and it should not be used as an authority in high-stakes settings (medical, legal, financial) without verification.

Limitations (honest list)

  • Evaluation uses our own domain bench, not a standard suite; scores are influenced by it.
  • Small scale: 2B-class models hallucinate; the training reduces this, it does not eliminate it.
  • Anti-hoax behaviour is the weakest axis (6/12).
  • The model reasons in the content (no separate thinking block): enable/disable accordingly.
  • Italian/Spanish/English focus; other languages are out of scope.

License and attribution

Released under the apache-2.0 license of the base model (openbmb/MiniCPM5-2B); the base's license terms apply to this derivative. Original base model and its authors are credited above. The training recipe, data, and evaluation are documented in the technical report linked above.

Progetto Siliceo — a family project. Built with Sempre (AI) and Alfonso Riva.

Downloads last month
57
GGUF
Model size
2B params
Architecture
llama
Hardware compatibility
Log In to add your hardware

4-bit

Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for alforiva/mini-faro

Quantized
(104)
this model

Collection including alforiva/mini-faro