--- title: decider-4b systemone emoji: ⚖️ colorFrom: indigo colorTo: gray sdk: gradio sdk_version: 5.49.1 app_file: app.py pinned: false license: apache-2.0 short_description: Jev-shaped choice/score/noul decisions on decider-4b --- # decider-4b, in Jev's shape A typed-decision service wrapping [`Mapika/decider-4b`](https://huggingface.co/Mapika/decider-4b) (4B dense, Qwen3.5-4B-Base, Apache 2.0) on ZeroGPU. Give it a `state` and typed `questions`; get probabilities and confidence back. No text generation, so nothing to parse and nothing to hallucinate. | type | question | answer | |---|---|---| | **choice** | which of these options? | the option, a probability per option, confidence | | **score** | where on this rubric? | a position along your levels, distribution | | **noul** | is this true? | `noul`: the probability that it is | ## Why this Space exists `decider-4b` is one of the open "System One" models benchmarked against Jev. This wrapper adds the pieces the raw checkpoint leaves to the caller, so it can be scored on the same harness as everything else: - the endpoint signature mirrors `dkappe/IDU`'s `systemone` (`state`, `questions`, three temperature overrides) and returns the same `(table, raw-json)` tuple, so one harness drives both without a special case; - **per-answer-type temperature** is honoured. `decider_config.json` carries `temperature_by_type` `{choice: 1.11, noul: 1.56, score: 1.287}`; serving everything at the single fitted `1.099` flattens the yes/no and Score probabilities. Pass `0` for a temperature to keep the checkpoint's value. - the TypeSafe response shape (`choice` / `confidence` / `probabilities`, `score` + `legend`, `noul` as a probability) is produced by the authors' own `systemone.py`. ## Endpoints - `systemone` — `(state_text, q_text, tc, ts, tn) -> (answers_table, raw_json)` - `health` — device, checkpoint version, temperatures in force ## Capacity `max_options` 255, `max_state_tokens` 32768. This model has no small option-count cap: the 16-option ceiling that stops Plumb 4B and SemIf does not apply here, and neither does Nimble's 8K input limit. ## Notes - Scoring path is the authors' reference implementation, vendored verbatim in `decider/` from the model repository (Apache-2.0). Deviations are documented in `app.py`. - The checkpoint is loaded once at module scope and moved to CUDA eagerly, which is the pattern the official decider demos use on ZeroGPU. - Apache 2.0, weights and wrapper both.