OpenDecider nano¶
- Status:
m0(official build; prompt/readout ported from pinned code) - Adapter:
opendecider— single graph, softmax over[MASK]marker logits - License: Apache-2.0
- Parameters: 395M · Architecture: Ettin encoder 400M
Default variant¶
| Repo | manjunathshiva/opendecider-nano-ONNX |
| Files | onnx/model_q8f16.onnx, tokenizer.web.json, opendecider.json |
| Quantization | q8f16 |
| Download | 468.8 MB |
| Role | default; fp16 is a quality variant |
Variants¶
| Variant | Quantization | Size | Role | Install |
|---|---|---|---|---|
q8f16 * |
int8/fp16 | 468.8 MB | default | dtk models download opendecider-nano --variant q8f16 |
fp16 |
fp16 | 791.9 MB | quality | dtk models download opendecider-nano --variant fp16 |
dtk models download opendecider-nano gets q8f16; --variant fp16 downloads
the quality build. Select one with
dtk models use opendecider-nano --variant <name>. See
Variants and quantization.
Reproducibility¶
- Revision:
5137ae7b4f1cf8c55f1d05d3f5cdd3694d92da3e - Default file hashes (SHA256):
onnx/model_q8f16.onnx—80436dbed1a284548b5e6c3975bb26df81fb493fc4e64629e5a6ef490bf0e0aetokenizer.web.json—fd4146f0082d98fd1fc03bf41349f4d1eed478987ce9a64addc1654dfcad14eeopendecider.json—28eea9d70afba02740fdd871b148004437cd4f8c31b416776bb864d7895cf83f- Verify:
dtk models verify opendecider-nano --variant q8f16 - Bench:
uv run python bench/run.py --suite bench/suites/smoke.jsonl --models opendecider-nano - The
fp16variant is pinned to the same revision; its hashes live incatalog.py.
Evidence (2026-10-19)¶
- Example: charged-twice ticket → billing 0.907, urgent 0.572, tone 1.235.
- 530 ms/decision on CPU.
- The prompt/readout are a literal port of the pinned packaging code (
opendecider/prompt.py::nano_ids) andopendecider.json(special ids, max_len, readout definition). - The official benchmark inputs are hashed, so no per-case torch parity is possible from the published artifacts.
Contract notes¶
- Sequence:
[CLS] question: <instructions> [SEP] ([MASK] opt)… [SEP] input: <state> [SEP]. special_idscome fromopendecider.json(cls 50281, sep 50282, mask 50284);max_len2048.- The answer is
softmax(logits at [MASK] positions); no temperature.
Known limitations¶
- q8f16 build; quality vs fp16 was not measured.
- No independent parity dataset (the official benchmark inputs are hashed).
- The export's tokenizer is a web tokenizer (
tokenizer.web.json), loaded through thetokenizersfallback.
Usage¶
dtk models download opendecider-nano # q8f16 default
dtk models download opendecider-nano --variant fp16 # quality variant
dtk decide --model opendecider-nano --state "I was charged twice…" \
--q team='choice:billing|technical|other' --q urgent='noul:Needs a reply today?'
dtk decide --model opendecider-nano --variant fp16 \
--state "I was charged twice…" \
--q team='choice:billing|technical|other' --q urgent='noul:Needs a reply today?'
Provenance¶
Official ONNX build by the OpenDecider author; base model manjunathshiva/opendecider-nano at revision beeeb640….