FinnAI-Foundation

FinnAI-Foundation is a verification-first LoRA fine-tune of LiquidAI/LFM2.5-VL-1.6B, prepared by FinnAI Foundation. The weights here are the v3 iteration, the current best-measured candidate in this line, published both as a ready-to-run GGUF and as the LoRA adapter that produced it.

What is in this repo

Path What it is
FinnAI-Foundation-Q4_K_M.gguf Q4_K_M GGUF for llama.cpp (697 MiB, 4.98 BPW)
adapter_config.json LoRA adapter config (peft)
adapter_model.safetensors LoRA adapter weights (rank 32)
mmproj-LFM2.5-VL-1.6b-Q8_0.gguf Vision projector, Q8_0, required for multimodal llama.cpp
loss_history.json Full training log (loss and eval loss per step)

Everything needed to run the model is in this repo: pass both the GGUF and mmproj-LFM2.5-VL-1.6b-Q8_0.gguf to llama-mtmd-cli.

Running the GGUF

llama-mtmd-cli \
  -m FinnAI-Foundation-Q4_K_M.gguf \
  --mmproj mmproj-LFM2.5-VL-1.6b-Q8_0.gguf \
  --image photo.png \
  -p "Describe this image."

LiquidAI documents temperature 0.1, min_p 0.15 and repetition penalty 1.05 for the base model; those are the settings used for our measurements.

Reproducing the merged checkpoint from the adapter

from peft import PeftModel
from transformers import AutoModelForImageTextToText

base = AutoModelForImageTextToText.from_pretrained(
    "LiquidAI/LFM2.5-VL-1.6B", torch_dtype="auto"
)
model = PeftModel.from_pretrained(base, "Finn-Technologies/FinnAI-Foundation")
merged = model.merge_and_unload()

Method

Supervised distillation in the style of the MiMo-V2.6 recipe: teacher traces with concise <think> segments plus deterministic verifiers, distilled into LFM2.5-VL-1.6B with LoRA-SFT, then merged and quantized.

LoRA was applied at rank 32 / alpha 64 / dropout 0.05 over the attention, MLP, and convolution projection matrices (q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj, fc1, fc2, linear, w1, w2, w3).

Training

  • Base: LiquidAI/LFM2.5-VL-1.6B (SigLIP2 NaFlex 400M vision encoder, LFM2.5-1.2B backbone, 32k context)
  • Hardware: single Kaggle T4, fp16, gradient checkpointing
  • Steps: 3,590 (one epoch over 114,870 rows, batch 2, accumulation 16)
  • Runtime: 33,146 s (9.2 h)
  • Final train loss: 0.4739
  • Eval loss: 0.37896 (step 1000) -> 0.37209 (2000) -> 0.36878 (3000) -> 0.36843 (3590)
  • Checkpoints saved every 500 steps; final adapter saved at end of run

Data

Finn-Technologies/FinnAI-Foundation-100K-v3: 114,870 training rows and a frozen 2,224-row evaluation split, 27.0% of rows carrying an image, 100% gold-verifier pass with 80.0% verifier coverage and zero answer-template leaks.

v3 is a targeted repair of the v2 iteration: it preserves every v2 row and the v2 general-domain upsample, then adds eight deterministic prompt variants for each of the 731 diagram-mermaid rows (731 -> 6,579 rows) to restore visual weight after v2's general-domain upsample.

Intended use

On-device macOS assistant work: OCR, document and table questions, diagram reading, code and cyber reasoning, and visual UI assistance. Not intended as a safety authority or a substitute for review in high-stakes decisions.

Evaluation

Benchmarks are produced with llama.cpp on the Q4_K_M GGUF using the sampling parameters LiquidAI documents for the base model (temperature 0.1, min_p 0.15, repetition penalty 1.05, max_image_tokens=256). Rows whose inference subprocess fails or times out are scored incorrect rather than dropped, so run failures cannot inflate a score, and every scored row passes through a deterministic verifier. Full per-row records are kept.

License

Released under the LFM Open License v1.0, inherited from LiquidAI/LFM2.5-VL-1.6B. Review that license before commercial use.

Downloads last month
35
GGUF
Model size
1B 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 Finn-Technologies/FinnAI-Foundation

Adapter
(17)
this model