14 1 week ago

Lumma-fev-4b-v2 is a decision model from Frontiersmind.ai, fine-tuned from Qwen3.5-4B.

ollama run FrontiersMind/lumma-fev-4b-v2

Details

1 week ago

2ec146af0384 · 3.1GB

qwen35
·
4.84B
·
Q4_K_M
Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR US

Readme

Lumma-Fev-4B-v2

Lumma-Fev-4B-v2 is a decision model from FrontiersMind, fine-tuned from Qwen3.5-4B-Base. You give it a state (text) and typed questions; it returns a probability for every option in one forward pass. It never generates text, so there is nothing to parse. It works in English, Hindi, Tamil and Kannada (and Hinglish).

We used DecisionFormer for training our model.

What changed from Lumma-Fev-4B: - Bidirectional attention. The full-attention layers read the whole prompt in both directions, like an encoder; the Gated DeltaNet (linear-attention) layers stay causal. - About 300K training samples instead of about 100K.

Results (accuracy, same rows for every model)

Benchmark

Calibration (average over the eight benchmarks, lower is better):

Metric Lumma-Fev-4B-v2 Lumma-Fev-27B-v2 Jev
Log loss 0.401 0.307 1.315
ECE 0.045 0.024 0.088
Brier 0.237 0.178 0.291

Run it with Ollama

ollama pull FrontiersMind/lumma-fev-4b-v2

Ask a yes/no question about a state from stdin:

ollama run FrontiersMind/lumma-fev-4b-v2 --ask "Does the customer need a reply today?" < ticket.txt

Pick one option, passing each option as name="description":

ollama run FrontiersMind/lumma-fev-4b-v2 \
  --ask "Which team should handle this request?" \
  --choice billing="Charges and refunds" \
  --choice support="Technical integration errors" \
  --choice sales="Questions about buying a product" \
  < ticket.txt

Python

Send a state and a set of named questions to lumma-fev-4b-v2

import ollama

response = ollama.systemone(
    model="FrontiersMind/lumma-fev-4b-v2",
    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(response)

Supported Decision Types

Type Criteria Answer fields
noul A yes/no question about the state noul (probability of yes)
choice Each option name mapped to a description choice, probabilities, confidence
score Ordered levels, lowest first Accepted, but untested

Each question reads the state and its own options only, so one answer never changes another. A question plus the state must fit in 8,192 tokens. The model was trained on noul and choice questions; score questions are accepted but untested.

Full details are in the model card.

License

Apache 2.0