Instructions to use FrontiersMind/Lumma-fev-0.1b with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use FrontiersMind/Lumma-fev-0.1b with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-classification", model="FrontiersMind/Lumma-fev-0.1b", trust_remote_code=True)# Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("FrontiersMind/Lumma-fev-0.1b", trust_remote_code=True, device_map="auto") - Notebooks
- Google Colab
- Kaggle
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 | Lumma-Fev-0.15B | Lumma-Fev-0.6B |
|---|---|---|---|---|
| Banking77 | 0.87 | 0.425 | 0.47 | 0.90 |
| DAIR Emotion | 0.48 | 0.595 | 0.68 | 0.89 |
| AG News | 0.91 | 0.95 | 0.89 | 0.85 |
| Typed-decisions | 0.72 | 0.76 | 0.20 | 0.30 |
| Average | 0.75 | 0.68 | 0.56 | 0.74 |
| P50 Latency | 256 ms | 32.8 ms | 35.576 ms | 45.82 ms |
| Weights | Closed | Open | Open | Open |
| Cost | $0.042 / 1M tokens | $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="I was charged twice for my March invoice. Please refund one of them.",
questions={
"billing": {"type": "noul", "instructions": "Is this about billing?"},
"team": {"type": "choice", "instructions": "Which team should handle this?",
"criteria": {"billing": "Payments and refunds", "shipping": "Delivery problems", "technical": "Bugs and outages"}},
"urgency": {"type": "score", "instructions": "How urgent is this?",
"criteria": ["can wait", "this week", "today"]},
},
)
print(answers["team"]["choice"], answers["team"]["probabilities"])
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
confidenceand probabilities are the model's own estimates. Measure calibration on your own labelled data before gating automated actions on them.
Feedback
- Discord: https://discord.gg/ZGdjCdRt
- Email: [email protected]
- Website: https://www.frontiersmind.ai/
- LinkedIn: https://www.linkedin.com/company/frontiersmind/
- X (Twitter): https://x.com/FrontiersMind
- Downloads last month
- 94
Model tree for FrontiersMind/Lumma-fev-0.1b
Base model
FrontiersMind/Nandi-Mini-150M