Download README.md from dkappe/IDU: direct link, hf CLI and curl.
- Browser
- Download file 4.28 kB
-
https://huggingface.co/spaces/dkappe/IDU/resolve/main/README.md
- Command line
-
hf download hf://spaces/dkappe/IDU/README.md
-
curl -L -o README.md https://huggingface.co/spaces/dkappe/IDU/resolve/main/README.md
A newer version of the Gradio SDK is available: 6.30.0
title: IDU
emoji: π§
colorFrom: purple
colorTo: gray
sdk: gradio
sdk_version: 5.49.1
app_file: app.py
pinned: false
license: apache-2.0
short_description: Typed decisions (choice/score/noul) on open weights
IDU
JEV shifted one letter back β the same shift that turns IBM into HAL.
A typed-decision service in Jev's shape: give it a state and typed questions, get typed
answers with probabilities and confidence. 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 (can land between them), distribution |
| noul | is this true? | one number: the probability that it is |
Backend
convaiinnovations/laya β 421M
ModernBERT-large with a decision head, trained by RL against strictly proper scoring rules
(RLCD). Apache 2.0.
Why this one:
- It already is the Jev shape.
state+ typed questions in, typed decisions out. No adapter, no tool-calling workaround, no trigger vocabulary. - Options are judged independently. Each option is scored at its own
[MASK]token and then softmaxed over that question's options. That is what Jev documents ("each level is judged on its own against the state"), and it removes the polarity problem a tool-calling model has: anoulquestion is two markers, not two competing armed tools. - One forward pass answers every question in a call.
- PyTorch, so it fits ZeroGPU natively β none of the JAX dtype/preallocation work it took to get a JAX model running on this runtime.
Endpoints
POST /systemone(Gradio API namesystemone) β the Jev shape./triageβ four-question support triage in one call, with a confidence-gated action line./compareβ head-to-head against the tuned Needle 3 adapter ondkappe/needle3-gpu./healthβ device, temperature in force, warm-up result.
Honest status
The base checkpoints are near chance zero-shot on their own typed-decisions benchmark: 0.362 against a 0.318 random and a 0.461 majority-class baseline. The card's headline 0.766 belongs to a checkpoint fine-tuned on that benchmark's own training split, and it says so itself: "Laya is a fast base to specialise, not a zero-shot decision engine."
The probabilities ship already calibrated. The model card reports mean ECE 0.466 falling
to 0.081 after fitting one temperature per (question type, option count) β and that fitting
is baked into the checkpoint: rl_agent_config.json carries temperature [1.6369, 1.2514, 1.9834] for choice/score/noul plus per-option-count buckets. So the defaults here are the
calibrated path. The temperature controls use 0 = keep the checkpoint's value as their
sentinel; setting a positive number overrides deliberately.
score is the weakest primitive by the card's own numbers (SST-5 0.372).
High-cardinality choice degrades because options share a fixed token budget: 0.425 on
Banking77 (77 options) vs Jev's 0.870. Fine at our 3β4 options; raise head_max_len or use a
coarse-to-fine split well before 50.
English only at the repo root. laya-multilingual (mmBERT-base) covers 100+ languages
and is ~2.2x faster.
Implementation notes worth keeping
spacesmust be imported beforetorch. The spaces library patches torch's CUDA initialisation so a GPU can be attached per call; import torch first and every decorated call dies insideworker_initwithRuntimeError: No CUDA GPUs are available. Nothing that pulls in torch β gradio, transformers, laya, safetensors β may appear above that guard block. Taken from the model's own demo Space, which documents the same trap.- Assets load at module scope, before the UI is reachable, because network access inside
a
@spaces.GPUfunction is restricted. Warm-up runs at startup so the first click is not paying model construction. - One decorated entry point for every tab, so the start-up warm-up covers all of them instead of each tab paying its own GPU attach.
Apache 2.0 β weights and SDK both.