FrontiersMind/Lumma-fev-0.1b

🤗 Hugging Face sourcetext-classificationapache-2.0154M params310 MBsafetensors✓ 4 checksumsupdated today
Submit in one command

Run it next to your model folder. It makes the torrent, checks your files against Hugging Face, and submits it. You just start seeding and paste your key from your account. It only reads your files and never changes them. Read the script first if you like.

curl -fsSL https://pirateface.co/package.sh | bash -s -- --repo FrontiersMind/Lumma-fev-0.1b ./model-folder
Needs a seeder →

Lumma-Fev-0.1B

Lumma-Fev-0.1B is a decision model. It reads one document (the state) and a set of typed questions, and returns a probability distribution for each question in a single forward pass. It never generates text, so there is nothing to parse and nothing to hallucinate.

It is fine-tuned from FrontiersMind's Nandi-Mini-150M, which we pre-trained from scratch.

NOTE: Lumma-fev-4B and Lumma-feb-9B releasing on 26 September along with a detailed blog.

🎮 Lumma-fev in Action

🔥 See our smallest Lumma-fev 150 million model turn decisions into actions - playing Super Mario autonomously and in real time on a MacBook Air M2. ⚡

⚡ Despite its compact size, Lumma-fev can observe the game state, reason about the situation, and choose the next action — all running locally on consumer hardware. 💻

Benchmarks

Benchmarks

Benchmark / Metric TypeSafe Jev 1.13.0 Laya Gliner2.5-Decide Lumma-Fev-0.15B Lumma-Fev-0.6B Lumma-Fev-4B Lumma-Fev-9B
Typed-decisions 0.72 0.76 0.46 0.49 0.64 0.78 0.81
AG News 0.91 0.95 0.48 0.89 0.84 0.93 0.95
DAIR Emotion 0.48 0.595 0.55 0.68 0.89 0.94 0.94
Banking77 0.87 0.425 0.68 0.47 0.90 0.93 0.94
Average 0.75 0.68 0.54 0.63 0.82 0.90 0.91
P50 latency 256 ms 32.8 ms 99.85 ms 35.576 ms 45.82 ms 175.93 ms 269.39 ms
Weights Close Open Open Open Open Open Open
Cost $0.042 / 1M tokens $0 self-hosted $0 self-hosted $0 self-hosted $0 self-hosted $0 self-hosted $0 self-hosted

Model details

Developed by FrontiersMind
Model type Causal transformer, prefill-only; each question reads the state and its own tokens only; pointer readout over the options
Base model FrontiersMind/Nandi-Mini-150M (revision 31c8aceaa16e)
Parameters 154M
Fine-tuning full fine-tune
Pointer head 512 dimensions
Context up to 1024 state tokens; one question row (state + question) up to 2,048 tokens
Question types noul (yes/no), choice (1–255 options), score (1–255 ordered levels)
Weights bf16 backbone, fp32 pointer head
Language English

Use it with transformers

from transformers import AutoModel

model = AutoModel.from_pretrained("FrontiersMind/lumma-fev-0.1b", trust_remote_code=True)

answers = model.decide(
    state="My running shoes arrived in the wrong size. Can I exchange them for a size 10?",
    questions={
    "department": {
        "type": "choice",
        "instructions": "Which team should handle this?",
        "criteria": {
            "returns": "Exchanges, wrong items, damaged items",
            "shipping": "Delivery status, delays, lost packages",
            "billing": "Charges, invoices, payment problems",
        },
    }
}
)
print(answers)

state can be text, a JSON object or an array. Pin a version with revision="<commit>", and move the model to a GPU with model.to("cuda") (bf16 is the stored precision).

Use it with the lumma-fev package

pip install lumma-fev              # local inference
pip install "lumma-fev[serve]"     # plus the API server
import lumma_fev

model = lumma_fev.load("FrontiersMind/lumma-fev-0.1b")        # picks cuda, mps or cpu
print(model.decide("Two charges on my card for one order.",
                   {"billing": {"type": "noul", "instructions": "Is this about billing?"}}))

Serve it as an API

lumma-fev-serve exposes the TypeSafe POST /v1/systemone contract, so existing TypeSafe clients work by changing their base URL.

lumma-fev-serve --model FrontiersMind/lumma-fev-0.1b --host 0.0.0.0 --port 8000
# optional: LUMMA_FEV_API_KEY=<key> requires "Authorization: Bearer <key>"; --cors for browser apps
curl -s localhost:8000/v1/systemone -H 'content-type: application/json' -d '{
  "state": "I was charged twice. Please fix this ASAP.",
  "questions": {"billing": {"type": "noul", "instructions": "Is this ticket about billing?"}}
}'

From Python, with the lumma-fev client or the TypeSafe SDK:

from lumma_fev import Client

client = Client("http://127.0.0.1:8000")
print(client.decide("I was charged twice.", {"billing": {"type": "noul", "instructions": "Is this about billing?"}}))

from typesafe_sdk import Noul, TypeSafeClient     # pip install typesafe-sdk

with TypeSafeClient(api_key="local", base_url="http://127.0.0.1:8000") as ts:
    print(ts.system_one(state="I was charged twice.", questions={"billing": Noul(instructions="Is this about billing?")}).nouls["billing"].noul)

Answers

Type Criteria Answer
noul optional {"true": ..., "false": ...} noul: probability of yes
choice {name: description or null} choice (most likely name), confidence, probabilities by name
score ordered list of levels score (expected level), confidence, legend, probabilities by level

Questions never see each other: each one reads the state and its own instructions and options only, so one question cannot change another's answer. Text inside the request cannot forge the model's delimiter tokens.

Limits

  • confidence and probabilities are the model's own estimates. Measure calibration on your own labelled data before gating automated actions on them.

Feedback