Introducing Lumma-Fev-v2
The second generation of our Lumma-Fev decision models: one family from 0.1B to 27B, one forward pass, nothing to parse.
Most ways of asking a model to make a decision end the same way: the model writes a sentence, and your code tries to read it. A label comes back with extra words, a number comes back as text, and a confidence is whatever the model feels like saying.
Lumma-Fev-v2 is a family of decision models that skips that step. You give a model a state and typed questions, and it returns a probability for every option in one forward pass. It never generates text, so there is nothing to parse.
The family covers every size you might need, from small models built on our own Nandi-Mini and Lumma base models up to Qwen3.8-27B, and every size shares one interface. Today we are releasing Lumma-Fev-4B-v2 and Lumma-Fev-27B-v2, with 0.1B and 0.6B models coming soon.
Both released models score higher than TypeSafe Jev 1.13.0 on average across eight public benchmarks, and both are better calibrated. Where Jev still leads, we say so below.
Overview
A Decision Model, Not a Generator
Each Lumma-Fev model takes a state, which can be text, a JSON object or an array, plus a set of typed questions. It scores every option of every question at once and hands the probabilities back. Because the answer is a distribution and not a sentence, you can set a threshold, route on the top option, or send low-confidence cases to a person.
Figure 1 · State In, Probabilities Out
Lumma-Fev-27B-v2 across eight public benchmarks, against 81.2% for TypeSafe Jev 1.13.0
Lumma-Fev-4B-v2 on the same eight benchmarks, also ahead of Jev
training samples for the 27B model, up from about 100K in v1
of context for a question plus its state
The Family
One Family, Four Sizes
Every Lumma-Fev decision model is a fine-tune of a pretrained base model. The small ones start from our own Nandi-Mini and Lumma foundation models, the larger ones from Qwen3.8. The interface does not change between them, so you can prototype on a small model and move up, or down, without touching your code.
| Pretrained base | Decision model | Avg. accuracy | Jev 1.13.0 |
|---|---|---|---|
| Nandi-Mini-150M (Ours) | Lumma-Fev-0.1B-v2 (coming soon) | – | 81.2 |
| Lumma-0.6B-Base (Ours) | Lumma-Fev-0.6B-v2 (coming soon) | – | 81.2 |
| Qwen3.5-4B | Lumma-Fev-4B-v2 | 82.4 | 81.2 |
| Qwen3.8-27B | Lumma-Fev-27B-v2 | 87.3 | 81.2 |
Figure 2 · Average Accuracy by Model
Our first-generation decision models (0.1B, 0.6B, 4B and 9B) are in the Lumma Decision Models collection.
What Changed
What Changed in v2
Lumma-Fev-27B-v2 is the flagship of the family and the successor to Lumma-Fev-27B. Three things are different.
Bidirectional Attention
In Lumma-Fev-27B-v2, the full-attention layers read the whole prompt in both directions, like an encoder. The Gated DeltaNet (linear-attention) layers stay causal. For a decision model that is a natural fit: the state and the questions are all in the prompt before any answer is scored, so there is no reason for an early token to be blind to a later one.
Figure 3 · What Bidirectional Means
Because of this, the checkpoint needs lumma-fev 0.3 or later. Older versions do not apply bidirectional attention and refuse to load it.
3× the Training Data
Lumma-Fev-27B-v2 trains on about 300K samples, up from about 100K for v1.
Trained With decisionformer
We trained the Lumma-Fev-v2 models with decisionformer, our open-source (Apache 2.0) library for fine-tuning, loading and serving calibrated decision models on any Hugging Face model. It supports full, LoRA, QLoRA and head-only fine-tuning through YAML recipes, with a CLI and multi-GPU support, and it includes tools to evaluate and compare checkpoints and push them to the Hub. If you want to train your own decision model, start there.
Interface
The Same Interface as v1
Every Lumma-Fev-v2 model uses the interface of v1, so nothing changes for existing users. Each model takes a state and a set of typed questions. Each answer comes back with its type, the choice, a confidence, and the full probabilities over every option.
noul
A yes/no-style question about the state, such as “Does the customer need a reply today?”
choice
Pick one option from labeled criteria, with a probability for each.
score
Accepted, but untested. The models were trained on noul and choice questions only.
The models work in English, Hindi, Tamil and Kannada, plus Hinglish.
Results
Compared With Jev
We evaluated on the test splits of eight public benchmarks, using the same rows for every model.
Figure 4 · Accuracy on Eight Public Benchmarks
Show the full table
| Benchmark | Lumma-Fev-4B-v2 | Lumma-Fev-27B-v2 | TypeSafe Jev 1.13.0 |
|---|---|---|---|
| AG News | 91.4 | 93.1 | 89.2 |
| BANKING77 | 91.5 | 92.4 | 79.5 |
| Emotion | 91.5 | 91.7 | 58.6 |
| RAGTruth | 85.8 | 88.1 | 82.5 |
| WinoGrande | 82.6 | 92.1 | 90.7 |
| Financial PhraseBank | 84.1 | 79.3 | 77.7 |
| JudgeBench | 64.3 | 77.4 | 80.6 |
| BBH | 68.1 | 83.9 | 91.1 |
| Average | 82.4 | 87.3 | 81.2 |
Accuracy in percent on the test split of each benchmark, the same rows for every model. Best in each row in bold. Source: the Lumma-Fev-v2 model cards.
Hindi, Tamil and Kannada
There is no public benchmark for decision-making in Indic languages, so we use an internal one. All three systems answered the same 400 rows: 100 each in English, Hindi, Tamil and Kannada, translated by Claude from our held-out test tasks.
Figure 5 · Accuracy on the Internal Indic Benchmark
Show the full table
| Language | Lumma-Fev-4B-v2 | Lumma-Fev-27B-v2 | TypeSafe Jev 1.13.0 |
|---|---|---|---|
| English | 88% | 92% | 77% |
| Hindi | 88% | 89% | 82% |
| Tamil | 79% | 87% | 77% |
| Kannada | 89% | 87% | 80% |
| Indic avg | 85.3% | 87.7% | 79.7% |
Averaged over Hindi, Tamil and Kannada, Lumma-Fev-27B-v2 scores 87.7% and Lumma-Fev-4B-v2 scores 85.3%, against 79.7% for Jev.
Calibration
Confidence You Can Read
A decision model is only useful for automation if its probabilities mean something. Both Lumma-Fev-v2 models beat Jev on log loss, ECE and Brier, and Lumma-Fev-27B-v2 is the best calibrated of the three on every metric.
The reliability diagram shows it directly. Each point is a confidence bin, and the closer a point sits to the dotted diagonal, the more the model's stated confidence matches how often it is right. The two Lumma-Fev-v2 models follow the diagonal closely, while Jev sits below it: when Jev says 90%, it is right about 80% of the time.
Figure 6 · Confidence Against Accuracy
On the pooled rows, the calibration error (ECE) is 0.004 for Lumma-Fev-4B-v2 and 0.010 for Lumma-Fev-27B-v2, against 0.091 for Jev. Averaged benchmark by benchmark instead, the picture below is the one we reported: the 27B is the best calibrated of the three on every metric.
Figure 7 · Calibration, Benchmark by Benchmark
Show the numbers
| Metric (lower is better) | Lumma-Fev-4B-v2 | Lumma-Fev-27B-v2 | TypeSafe Jev 1.13.0 |
|---|---|---|---|
| Log loss | 0.401 | 0.307 | 1.315 |
| ECE | 0.045 | 0.024 | 0.088 |
| Brier | 0.237 | 0.178 | 0.291 |
On the Indic Benchmark
On the internal Indic benchmark, averaged over Hindi, Tamil and Kannada, Lumma-Fev-27B-v2 has the best Brier score and log loss of the three, and its ECE of 0.084 is close to Jev's 0.080. Lumma-Fev-4B-v2 is better than Jev on Brier and log loss, but its ECE is higher at 0.096.
Figure 8 · Calibration on Indic
Show the Indic numbers
| Metric (lower is better) | Lumma-Fev-4B-v2 | Lumma-Fev-27B-v2 | TypeSafe Jev 1.13.0 |
|---|---|---|---|
| ECE | 0.096 | 0.084 | 0.080 |
| Brier | 0.231 | 0.208 | 0.276 |
| NLL | 0.417 | 0.406 | 0.439 |
Calibration is measured on these benchmarks. Before letting scores trigger actions automatically, fit your thresholds on your own labeled traffic.
Run It
Test It Yourself
Install
pip install "lumma-fev>=0.3"
Version 0.3 or later is required to load Lumma-Fev-27B-v2, because it uses bidirectional attention.
Python
import lumma_fev
model = lumma_fev.load("FrontiersMind/Lumma-fev-27B-v2") # or lumma_fev.load("27b-v2")
# model = lumma_fev.load("FrontiersMind/Lumma-fev-4B-v2") # smaller model, same interface
# model = lumma_fev.load("27b-v2", device_map="auto") # several GPUs: pip install "lumma-fev[large]"
answers = model.decide(
state="My integration keeps failing. Please help.",
questions={
"team": {
"type": "choice",
"instructions": "Which team should handle this request?",
"criteria": {
"billing": "Charges and refunds",
"support": "Technical integration errors",
"sales": "Questions about buying a product",
},
},
"urgent": {"type": "noul", "instructions": "Does the customer need a reply today?"},
},
)
print(answers["team"])
# {"type": "choice", "choice": "support", "confidence": 0.99..., "probabilities": {"billing": ..., "support": ..., "sales": ...}}
Images
Install the extra and pass images=[...] as paths, PIL images or data: URLs.
pip install "lumma-fev[images]"
HTTP API
To serve a model behind the TypeSafe-compatible POST /v1/systemone API:
pip install "lumma-fev[serve]"
lumma-fev-serve --model 27b-v2 --host 0.0.0.0 --port 8000 # add --device-map auto for several GPUs
Limits
Requirements and Limits
- GPU memory (27B-v2): about 55 GB free, which is a single 80 GB card, or several smaller GPUs with
device_map="auto". - Precision: BF16, Safetensors.
- Context: a question plus the state must fit in 8,192 tokens.
scorequestions: accepted but untested.- Loading the 27B-v2 weights yourself:
decision_config.jsonhas"attention_mode": "noncausal_full_attention". Setconfig.is_causal = Falseon the text config andis_causal = Falseon every text attention module after loading. Setting only the config makes single unpadded requests run causally.
Lumma-Fev-27B-v2 at a Glance
| Spec | Value |
|---|---|
| Model | FrontiersMind/Lumma-fev-27B-v2 |
| Previous version | FrontiersMind/Lumma-fev-27B |
| Base model | Qwen/Qwen3.8-27B |
| Fine-tuning | Full-weight |
| Training code | FrontiersMindAI/decisionformer |
| Training samples | About 300K |
| Languages | English, Hindi, Tamil, Kannada (and Hinglish) |
| Python package | lumma-fev 0.3 or later |
| License | Apache 2.0 |
What Is Next
What We Are Building Next
Lumma-Fev-0.1B-v2 and Lumma-Fev-0.6B-v2 are coming soon, built on Nandi-Mini-150M and Lumma-0.6B-Base. Jev still leads on BBH and JudgeBench, so reasoning remains the main gap for the family.
Try the Lumma-Fev-v2 models on your own decisions, and tell us where they fail. Those failures shape the next version. To fine-tune your own decision model, use decisionformer.