sokudan
Japanese System One decision model on ModernBERT-ja (314.6M) returning typed choice, score and bool distributions with no generation.
Overview
sokudan (即断) is a Japanese-native decision model: send text and typed questions, get typed answers with probabilities, without generating a token. Answers are read from a decision head's logits, so there is nothing to parse and no way to answer outside the options sent. The backbone is sbintuitions/modernbert-ja-310m (314.6M parameters), small enough for CPU; on Apple Silicon it uses MLX, where a five-option choice takes about 13 ms on an M1 Max. Question types are choice, score and noul (bool), with a free schema per request and no retraining. Code is Apache-2.0 and weights are on Hugging Face.
The README says it beats laya-multilingual on Japanese business messages on every reported metric. A list summary cites, for v0.2 (a weight average of eight seeds), 0.880 choice accuracy, 0.075 score RPS and 0.844 bool AUROC on its own synthetic 300-item bench_ja from one run, and notes the project does not call or measure Jev. The README is candid that bool under-predicts true (mean P(true) 0.133 against a 0.297 gold rate) and advises setting thresholds from your own prior. Bool answers get temperature calibration by default; a server offers TypeSafe-compatible /v1/systemone.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Choice | Which department should handle this inquiry? (この問い合わせはどの部署が担当すべきか) | 請求 · 技術 · 営業 · その他 |
| Yes / no | Yes/no (bool) questions about Japanese text | — |
| Score | Ordinal score questions | — |
How it works
- pip install sokudan and load the model
- Pass state as a string with typed questions
- Read probabilities from the decision head
- Set thresholds from your own prior, especially for bool
Strengths
- Japanese-native and small enough for CPU
- Fast on Apple Silicon via MLX
- Jev-compatible server endpoint
Caveats
- Bool under-predicts true
- Benchmark is the author's own synthetic set
- Not measured against Jev
Getting started
pip install sokudan, then sokudan.load("GeneLab/sokudan-ja-310m").predict(text, questions).At a glance
- Type
- Project
- Status
- beta
- Language
- Python
- Runtime
- MLX or PyTorch; optional HTTP server
- Has code
- yes
- License
- Apache-2.0
Use cases and integrations
How curated lists describe it
Apache-2.0 Japanese decision model on a ModernBERT-ja backbone (314.6M parameters) that returns typed choice, score and bool distributions in one forward pass with no generated text; v0.2 is a weight average (model soup) of eight seeds trained as v0.1, and on its own synthetic 300-item `bench_ja` (CC BY 4.0) it reports 0.880 choice accuracy, 0.075 score RPS and 0.844 bool AUROC from one run with no spread, states that bool under-predicts true, and does not call or measure Jev.
cobanov/awesome-jevJapanese System One decision model (Jev-style): typed answers and probabilities in one forward pass, no text generation. Includes bench_ja/bench_en and a Laya position-bias repro.
hellogumbo/awesome-jev
Frequently asked questions
What language does sokudan target?
Japanese, with an English benchmark also included.
Is it compatible with Jev clients?
Its server's /v1/systemone uses the same request and answer shapes as TypeSafe's public API.
Any known weaknesses?
Bool answers under-predict true, so set your own threshold.
Related projects
OEV: 184M-parameter decision engine that scores options in one pass, reporting 0.7705 on typed-decisions and 22 ms per question.
ProjectresearchPythonFastino's 340M Apache-2.0 decision classifier that scores caller-defined labels in one forward pass for routing, intent and scoring.
ModelproductionPythonOpen multilingual System 1 decision engine built on Laya checkpoints with a router that picks the best checkpoint per request.
ModelbetaPythonMangaba AI's local, calibrated typed-decision model for Portuguese text, trained to optimize the Brier score; proprietary since v5.
ProjectproductionPython- blink★ 22
Open one-pass typed-decision model with a dependency-free C99 runtime that also builds to a 66 KB WebAssembly module.
ServicebetaC - Foq★ 11
Local open alternative to Jev using a 1.58-bit ternary 8B model to answer booleans, choices, scores and Pydantic extraction in ~25 ms.
ProjectbetaPython