Open recipe for calibrated decision models: an LLM teacher writes training data from a one-sentence task description, a LoRA plus decision head on Qwen3-4B-Base answers Choice, Score and Noul questions with calibrated probabilities, evaluated next to Jev on identical items.
Luce: a recipe for calibrated decision models — a sentence about your task in, a small model that answers typed questions with honest probabilities out (init → synth → train → eval → serve)
Forks
0
Last pushed
Updated Sep 2026
Repo stats from the GitHub API, cached Oct 2026.
About this project
Describe the decision. Supply your inputs or generate them with an LLM. Luce trains a LoRA + decision head on an open model and serves decision probabilities.
Open sourceSelf-hostedRuns locallyRequires API key
Highlights
Five CLI stages: init scaffolds questions, synth generates or labels data, train fits the head, eval reports accuracy and ECE, serve hosts POST /v1/ask
Trains on one RTX 4070 SUPER 12 GB in about 40 minutes per task using Qwen3-4B-Base and 2-3 epochs
On 2,964 rule-generated support tickets it reports 91.1% combined accuracy with ECE 0.022, against Jev zero-shot at 75.1
Teacher is any OpenAI-compatible endpoint (Vercel AI Gateway, OpenAI, Ollama); outputs are probabilities and no text is generated at inference
Browser replay demo on Hugging Face Spaces runs without a GPU; low-confidence inputs queue for review
Watch out
Apache-2.0. The PyPI release is pending so install from git; calibration does not transfer to unseen tasks, and the README documents maze experiments where training added nothing over a constant predictor.
Questions about this entry
Short answers drawn from the linked project or page.
No. Inference returns a probability per option for Choice, Score and Noul questions; the README states that no text is generated at inference, which is what keeps latency low.
luce synth can generate inputs or annotate existing data with any OpenAI-compatible teacher. The README recommends 100-300 real labeled items so eval can fit temperature on them.
Install from git with pip, since the PyPI release is pending; the base install is pip install git+https://github.com/scienthoon/luce, and adding the [synth] extra enables embedding dedup.
Any OpenAI-compatible endpoint. The teacher is never defaulted, so you pass --teacher URL|MODEL, and the key is read from LUCE_TEACHER_API_KEY, then OPENAI_API_KEY, then AI_GATEWAY_API_KEY; Ollama needs none.
The README trains Qwen3-4B-Base with a LoRA and decision head on a single RTX 4070 SUPER 12 GB, about 40 minutes per task over 2-3 epochs, and the browser demo replays recorded outputs so it needs no GPU.
No. Accuracy transfers better than calibration: on datasets Luce never trained on, the README measures a refit temperature of 2.5 to 3.3, meaning the model is over-confident on unseen tasks.
Serving with --review queues inputs whose answers fall under 0.9 confidence for human review; the demo shows them dropping into a review queue while high-confidence tickets are answered automatically.
The fine-tuned Laya checkpoint for four typed-decision workflows: 0.766 accuracy on 2,000 held-out decisions, above Jev 1.13.0's published 0.727 and the teacher self-agreement ceiling it trained past.
An Apache-2.0 0.8B decision model that returns calibrated probabilities for yes/no, choice and score questions on CPU. Distributed as GGUF for llama.cpp and served behind a Jev-style /v1/systemone API, so existing Jev clients mostly need only a new base URL.
Apache-2.0 ModernBERT fine-tune that answers noul, choice, score and multi-label questions with a probability for every option. It serves Jev's POST /v1/systemone locally so TypeSafe's Python SDK runs unchanged, reporting 0.026 expected calibration error on its test split.
An untrained readout: stock Gemma-4-31B weights plus a decider config that reads option letters at the answer slot, scored #2 of 70 on Decision Index v0.2.1 at 57.33 against Jev 1.13.0's 57.91.
A local server that reads next-token probabilities from a fine-tuned Spark model and returns Choice, Score, and Noul answers with zero generated tokens.
An open recipe for a 27B multimodal decision model trained with full-weight SFT on 73,000 examples over one H200, serving choice, noul and score on /v1/systemone with per-checkpoint provenance and released calibration plots.
Jev takes text only; Clef-omni adds image, audio, and video input and Liquid d1 adds images, each keeping the same typed-answer shape. Where that matters, where it does not, and the costs the vendors underplay.
One model in September, a dozen by October. Clef, Liquid d1, Perplexity, and OpenAI all ship the same typed-answer shape now. How to read the rival benchmarks and pick on your own task.
Hundreds of repositories carry the system-one tag, but the ecosystem is a dozen ideas in different sizes. A tour of the families, the licenses, and what a download does not include.