Instructions to use myeongcheol/decision-lfm2.5-1.2b with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use myeongcheol/decision-lfm2.5-1.2b with PEFT:
Task type is invalid.
- Notebooks
- Google Colab
- Kaggle
decision-lfm2.5-1.2b
Non-generative decision model built from LiquidAI/LFM2.5-1.2B-Instruct: the autoregressive LM head is discarded and replaced with a scalar decision head, then LoRA fine-tuned with the Open-Jev recipe so a single forward pass scores candidates β typed probabilities (Choice / Noul / Score) without any token generation.
| baseline (zero-shot Yes/No readout) | pilot (2.4K rows) | scale1 (48K rows) | |
|---|---|---|---|
| test brier | 0.715 | 0.557 | 0.369 |
| test acc | 43.8% | 54.7% | 68.0% |
| OOD brier | β | 0.513 | 0.318 |
| OOD acc | β | 58.3% | 75.0% |
- Recipe ported from Zefan-Cai/Open-Jev (MIT)
- Trained on
ZefanCai/Open-Jev-v1.1community-hard-mix-v2-redistributable(train 147K; 6K steps consumed 48K rows) - LoRA r=8, Ξ±=16 on in/out_projΒ·q/k/v/o_proj; head initialized from the pretrained
lm_head["Yes"] β lm_head["No"]rows (weight-tied to input embeddings) - Loss = NLL + 0.1 Γ Brier; calibrated with a fitted temperature (T = 1.821, calibration split n=256)
- Training cost: RTX 3090 via Vast.ai, ~40 min, ~$0.40
What "tearing out the gen loop" means
- Load
AutoModelForCausalLM, keep the transformer trunk (full.model), droplm_head - Decision head
Linear(hidden, 1)initialized fromlm_head["Yes"] β lm_head["No"]β reuses the pretrained Yes/No readout - Each candidate gets an independent prompt (
Context / Question / Proposed answer / Is this correct?) passed through the trunk - Last hidden state β scalar score; softmax over candidates within a record β probabilities. No token generation anywhere.
Usage
git clone https://github.com/pinion05/decision-lfm2.5-1.2b.git
python scripts/train_jev_lfm.py --base LiquidAI/LFM2.5-1.2B-Instruct \
--data-dir <open-jev-v1.1 parquet dir> --steps 6000 --output runs/scale1
# stdlib-only HTTP server, same wire format as the jev server contract
python scripts/serve_jev_lfm.py 8321
curl -s localhost:8321/decide -d '{"state": {...}, "questions": {"q1": {"type": "choice", "instructions": "...", "criteria": {"a": null, "b": null}}}}'
This repo ships the LoRA adapter + decision head + temperature for two runs
(pilot1 2.4K rows, scale1 48K rows) β it is not a merged model. Base weights
stay under the LFM Open License v1.0 from LiquidAI/LFM2.5-1.2B-Instruct;
load them with AutoModelForCausalLM.from_pretrained then PeftModel.from_pretrained(backbone, "adapter") and
head.load_state_dict(torch.load("head.pt")) (see scripts/train_jev_lfm.py: LfmDecisionModel.load).
Files
runs/scale1/checkpoint/ # adapter/ (LoRA), head.pt, temperature.json, model.json
runs/pilot1/checkpoint/ # same layout, pilot run
License
- Base model: LFM Open License v1.0 (Liquid AI) β reproduction & distribution of
Derivative Works allowed with license copy + change notices; commercial use by
entities above $10M revenue is not licensed. See
license_link. - This repository's code & LoRA adapter additions: MIT (recipe origin Zefan-Cai/Open-Jev is MIT).
- Downloads last month
- -
Model tree for myeongcheol/decision-lfm2.5-1.2b
Base model
LiquidAI/LFM2.5-1.2B-Base