Blog

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.

Lumma-Fev-v2: a state and questions go in, probabilities come out; the family grows from 0.1B to 27B
Lumma-Fev-v2 scores every option in one forward pass. Four sizes, one interface.

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

InputOne forward passOutputStateMy integration keepsfailing. Please help.Questionschoice · teamnoul · urgentFev0.1B to 27Bno decodingteam · choicebillingsupportsalesurgent · noula probability for every option
One call, two questions. The model reads the state and both questions together and returns a probability for each option. Bar lengths here are illustrative.
87.3% average

Lumma-Fev-27B-v2 across eight public benchmarks, against 81.2% for TypeSafe Jev 1.13.0

82.4% average

Lumma-Fev-4B-v2 on the same eight benchmarks, also ahead of Jev

~300Ksamples

training samples for the 27B model, up from about 100K in v1

8,192tokens

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.

The Lumma-Fev-v2 family
Pretrained baseDecision modelAvg. accuracyJev 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-4BLumma-Fev-4B-v282.481.2
Qwen3.8-27BLumma-Fev-27B-v287.381.2

Figure 2 · Average Accuracy by Model

TypeSafe Jev 1.13.0 · 81.2Lumma-Fev-0.1B-v2from Nandi-Mini-150M (ours)Coming soonLumma-Fev-0.6B-v2from Lumma-0.6B-Base (ours)Coming soonLumma-Fev-4B-v2from Qwen3.5-4B82.4Lumma-Fev-27B-v2from Qwen3.8-27B87.3Average accuracy, eight public benchmarks · higher is better
Average accuracy over the eight public benchmarks. The dashed line is TypeSafe Jev 1.13.0. The 0.1B and 0.6B models are not yet released, so they carry no score.

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

CausalEach token reads only the tokens before itBidirectionalEach token reads the whole promptRow: the token that reads · Column: the token it can see
Attention over eight tokens. Filled cells are the positions a token can read. In Lumma-Fev-27B-v2 the full-attention layers are bidirectional, and the Gated DeltaNet layers stay causal.

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.

Question type

noul

A yes/no-style question about the state, such as “Does the customer need a reply today?”

Question type

choice

Pick one option from labeled criteria, with a probability for each.

Question type

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

Lumma-Fev-4B-v2Lumma-Fev-27B-v2TypeSafe Jev 1.13.00%25%50%75%100%91.493.189.2AGNews91.592.479.5BANKING7791.591.758.6Emotion85.888.182.5RAGTruth82.692.190.7WinoGrande84.179.377.7FinancialPhraseBank64.377.480.6JudgeBench68.183.991.1BBH82.487.381.2Average
Accuracy in percent. Bars start at zero and the best score in each group is in bold. Source: the Lumma-Fev-v2 model cards.
Show the full table
Accuracy on eight public benchmarks
BenchmarkLumma-Fev-4B-v2Lumma-Fev-27B-v2TypeSafe Jev 1.13.0
AG News91.493.189.2
BANKING7791.592.479.5
Emotion91.591.758.6
RAGTruth85.888.182.5
WinoGrande82.692.190.7
Financial PhraseBank84.179.377.7
JudgeBench64.377.480.6
BBH68.183.991.1
Average82.487.381.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

Lumma-Fev-4B-v2Lumma-Fev-27B-v2TypeSafe Jev 1.13.040%60%80%100%888982Hindi798777Tamil898780Kannada
Accuracy in percent on 100 rows per language. The axis starts at 30%. The best score in each group is in bold. Source: our internal benchmark. English and the Indic average are in the full table.
Show the full table
Accuracy on the internal Indic benchmark
LanguageLumma-Fev-4B-v2Lumma-Fev-27B-v2TypeSafe Jev 1.13.0
English88%92%77%
Hindi88%89%82%
Tamil79%87%77%
Kannada89%87%80%
Indic avg85.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

Lumma-Fev-4B-v2 (ECE 0.004)Lumma-Fev-27B-v2 (ECE 0.010)TypeSafe Jev 1.13.0 (ECE 0.091)0%0%25%25%50%50%75%75%100%100%ConfidenceAccuracy
Eight benchmarks pooled, 11,657 rows, 15 equal-width confidence bins. Confidence is the top option's probability after temperature scaling. Each point is a bin with at least 20 rows, and its size grows with the number of rows. The dotted line is perfect calibration. ECE is on the pooled rows.

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

Lumma-Fev-4B-v2Lumma-Fev-27B-v2TypeSafe Jev 1.13.0Log loss · lower is better0.4010.3071.315ECE · lower is better0.0450.0240.088Brier · lower is better0.2370.1780.291
Calibration averaged over the eight benchmarks. Each panel has its own scale. Lower is better, and the lowest value in each panel is in bold.
Show the numbers
Calibration averaged over eight benchmarks
Metric (lower is better)Lumma-Fev-4B-v2Lumma-Fev-27B-v2TypeSafe Jev 1.13.0
Log loss0.4010.3071.315
ECE0.0450.0240.088
Brier0.2370.1780.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

Lumma-Fev-4B-v2Lumma-Fev-27B-v2TypeSafe Jev 1.13.0ECE · lower is better0.0960.0840.080Brier · lower is better0.2310.2080.276NLL · lower is better0.4170.4060.439
Calibration averaged over Hindi, Tamil and Kannada. Each panel has its own scale. Lower is better, and the lowest value in each panel is in bold.
Show the Indic numbers
Calibration on the internal Indic benchmark
Metric (lower is better)Lumma-Fev-4B-v2Lumma-Fev-27B-v2TypeSafe Jev 1.13.0
ECE0.0960.0840.080
Brier0.2310.2080.276
NLL0.4170.4060.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.
  • score questions: accepted but untested.
  • Loading the 27B-v2 weights yourself: decision_config.json has "attention_mode": "noncausal_full_attention". Set config.is_causal = False on the text config and is_causal = False on every text attention module after loading. Setting only the config makes single unpadded requests run causally.

Lumma-Fev-27B-v2 at a Glance

SpecValue
ModelFrontiersMind/Lumma-fev-27B-v2
Previous versionFrontiersMind/Lumma-fev-27B
Base modelQwen/Qwen3.8-27B
Fine-tuningFull-weight
Training codeFrontiersMindAI/decisionformer
Training samplesAbout 300K
LanguagesEnglish, Hindi, Tamil, Kannada (and Hinglish)
Python packagelumma-fev 0.3 or later
LicenseApache 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.