LFM-Faro — a 1.50 GB local mind that cites its sources

LFM-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 LiquidAI/LFM2.5-2.6B 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 LiquidAI/LFM2.5-2.6B
Architecture Lfm2 (ibrida)
Parameters ~2B class (hidden 2048, 30 layers)
Context window 131072 tokens
Vocabulary 128000 → 30281 after IT/ES/EN pruning (23.7% kept)
Embeddings tied: sì
Format GGUF, q4_k_m (1.50 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) 81/81/81 → 72.3%
Ethics probe (16 cases) 14/16 (two runs)
Anti-hoax (12 cases) 9/12
Tool calls native tool calls not adapted in v1

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.683 — 0.623 domain · 0.891 ethics · 0.425 honesty · 0.597 cross-lingual · 0.818 tool · 0.607 robustness.

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

answer refute refuse verify ask confine comply call
0.784 0.748 0.973 0.405 0.605 0.240 0.765 0.800

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

The base is a reasoning model that always produces a thinking block; this fine-tune was trained to answer directly (no separate thinking block at serving).

Usage

# llama.cpp (or any GGUF runtime). Reasoning must be disabled at serving time.
llama-server -m lfm-faro-q4_k_m.gguf --host 0.0.0.0 --port 8080 -c 8192 -ngl 99 -fa on \
  --cache-type-k f16 --cache-type-v f16 --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. This model needs an f16 KV cache (--cache-type-k f16 --cache-type-v f16): its head dimension (64) does not support the quantized-KV path. Reasoning must also be off (--reasoning-budget 0).

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.78 and 0.75); confining what is outside its field does not (0.24 on confine), asking for missing data is better but still below half (0.61 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 (9/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 lfm1.0 license of the base model (LiquidAI/LFM2.5-2.6B); 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
36
GGUF
Model size
2B params
Architecture
lfm2
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/lfm-faro

Quantized
(109)
this model

Collection including alforiva/lfm-faro