Instructions to use Lukitaduarte/dinah-0-apache with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use Lukitaduarte/dinah-0-apache with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-classification", model="Lukitaduarte/dinah-0-apache")# pip install -U transformers accelerate # Load model directly from transformers import AutoTokenizer, AutoModel tokenizer = AutoTokenizer.from_pretrained("Lukitaduarte/dinah-0-apache") model = AutoModel.from_pretrained("Lukitaduarte/dinah-0-apache", device_map="auto") - Notebooks
- Google Colab
- Kaggle
Dinah-0 Apache
The same Dinah-0, retrained without non-commercial data and released under Apache-2.0: a 150M-parameter encoder that makes typed decisions, in English and Portuguese, on a CPU.
This is not a new version. It is Dinah-0 rebuilt for commercial use. Dinah-0 was trained on a few thousand items from RACE and MCTest and is therefore released under CC BY-NC 4.0. Dinah-0 Apache starts from a lineage with no non-commercial source and drops those items. Same architecture, same question format (choice, noul, score, with probabilities and confidence), same 8,192-token context. It scores about 0.2 points lower on the Decision Index than Dinah-0, which is the price of the clean license. Not affiliated with TypeSafe.
- Apache-2.0 weights, ONNX files (int8 and 8-bit) and inference code
- Decision Index 0.3 public index 25.86 (official kit run), against 26.06 for Dinah-0
- On par with Dinah-0 on English, Portuguese and chess guard sets
What it does
It reads a question (instructions, state and a set of options) and returns a probability distribution over the options. The same model answers three question types:
| Type | Output |
|---|---|
choice |
the chosen label, a confidence and the probability of every label |
noul |
the probability that a statement is true |
score |
the expected value on an ordered rubric, plus confidence and probabilities |
It does not generate text. It is built for classification, routing, tool selection, extraction checks and similar decisions where a small, fast and cheap model is enough.
Results
Decision Index 0.3
Official run of the Decision Index kit with the engine in this repository (decision_index_engine.py), edition 0.3, on one NVIDIA RTX 5090, one process per variant. 140,620 requests run; 140,178 are scoreable after the kit's exclusions, all with a result except 8 refused as unsupported. In total 324 requests do not fit in 8,192 tokens and are refused (nothing is truncated).
| Public index (balanced skill) | Raw index | |
|---|---|---|
| Dinah-0 Apache | 25.86 | 44.50 |
| Dinah-0 (CC BY-NC 4.0, from the live board) | 26.06 | n/d |
The calibration described below changes probabilities and confidence but not a single chosen option, so the index is identical with and without it (25.86 both ways, checked on all 314,940 answers).
The raw results of this run are published for auditing in Lukitaduarte/dinah-0-decision-index-results under runs/dinah-0-apache/.
Guard sets
Held-out sets of 1,000 items each, accuracy:
| Set | Dinah-0 | Dinah-0 Apache |
|---|---|---|
| Typed decisions, English | 0.78 | 0.789 |
| Typed decisions, Portuguese | 0.784 | 0.786 |
| Chess puzzles | 0.59 | 0.587 |
Dinah-0 Apache is a weight average (50/50) of two checkpoints trained in sequence from the same starting point, one favoring tools and new domains and one restoring Portuguese. No benchmark test row was used for training.
Calibration
Two numbers come out of each answer and they mean different things:
probabilitiesestimate the distribution of the label. The typed-decision labels are distributions (the mean mass of the top option is about 0.66), so the top probability is not the chance of being right and is usually lower than the accuracy.confidenceestimates the chance that the chosen option is right.
Both are calibrated inside dinah.py (settings in config.json, key dinah.calibration): one temperature per question type and number of options (2 to 9) for the probabilities, and a Platt map for the confidence. They were fit on the even-indexed half of the English and Portuguese typed-decision test sets. On the other half, which was not used for fitting, the expected calibration error of confidence is 0.069 (English) and 0.060 (Portuguese). Treat that as the figure for in-distribution questions and measure again on your own domain before relying on it.
Usage
from dinah import Dinah, DinahONNX
model = Dinah.from_pretrained("Lukitaduarte/dinah-0-apache") # PyTorch, fp32 weights
model = DinahONNX.from_pretrained("Lukitaduarte/dinah-0-apache") # onnxruntime, int8, CPU
model.choice(state="The package arrived broken.",
criteria={"refund": "Customer wants money back", "replace": "Customer wants a new unit"},
instructions="What does the customer want?")
Files:
| File | What it is |
|---|---|
model.safetensors |
fp32 weights for the PyTorch backend |
onnx/model_int8.onnx |
int8, 151 MB, the default CPU backend of dinah.py |
onnx/model_8bit.onnx |
8-bit weights, 165 MB, listed in decision_ai.json |
dinah.py |
minimal inference code (PyTorch and ONNX backends) |
decision_index_engine.py |
engine used to run the Decision Index kit |
decision_ai.json |
manifest for the Decision AI runtime |
ONNX parity with PyTorch on real items: identical argmax in 100% of 64 items, maximum probability difference 2e-5.
Training data and licenses
Dinah-0 Apache was trained in stages from Tropic-AI/moBERTo (Apache-2.0). Each dataset is listed with the license its own card declares.
| Source | License |
|---|---|
| ZefanCai/Open-Jev | CC0-1.0 |
| LocalLLaMA/typed-decisions | Apache-2.0 |
| typed-decisions-pt (translated with Qwen3-4B, Apache-2.0) | Apache-2.0 |
| Lichess puzzles | CC0-1.0 |
| google-deepmind/searchless_chess (ChessBench) | Apache-2.0 |
| AmazonScience/massive | CC BY 4.0 |
| Bitext customer support | CDLA-Sharing-1.0 |
| ESCI | Apache-2.0 |
| WANLI | CC BY 4.0 |
| SNLI | CC BY-SA 4.0 |
| HoVer | CC BY-SA 4.0 |
| CommonsenseQA | MIT |
| Cosmos QA | CC BY 4.0 |
| BoolQ | CC BY-SA 3.0 |
| HellaSwag | MIT |
| WinoGrande | Apache-2.0 |
| ARC (train split) | CC BY-SA 4.0 |
| QASC | CC BY 4.0 |
| StrategyQA | MIT |
| bAbI-NLI | BSD |
| BIG-bench tasks (tasksource, BBH tasks excluded) | Apache-2.0 |
| MMLU auxiliary train (ARC and OpenBookQA parts only) | MIT |
| PubMedQA | MIT |
| MedMCQA | Apache-2.0 |
| GoEmotions | Apache-2.0 |
| Civil Comments | CC0-1.0 |
| twitter-financial-news-sentiment | MIT |
| financial-tweets-sentiment | MIT |
| NOSIBLE financial-sentiment | ODC-By |
| FinQA hallucination detection | MIT |
| CUAD | CC BY 4.0 |
| BANKING77 | CC BY 4.0 |
| CLINC150 | CC BY 3.0 |
| ContractNLI | CC BY 4.0 |
| IBM Claim Stance | CC BY 3.0 |
| HaluEval | Apache-2.0 |
| GSM8K | MIT |
| CLadder | MIT |
| iSarcasmEval | MIT |
| B2W-Reviews01 | CC BY 4.0 |
| multilingual-sentiments (pt) | Apache-2.0 |
| jurisprudencias_br | CC BY 4.0 |
| FaQuAD-NLI | CC BY 4.0 |
| FAQ_BACEN | Apache-2.0 |
| ExtraGLUE (RTE and COPA, pt) | MIT |
| glaiveai/glaive-function-calling-v2 | Apache-2.0 |
| Team-ACE/ToolACE | Apache-2.0 |
| NousResearch/hermes-function-calling-v1 | Apache-2.0 |
| nvidia/When2Call | CC BY 4.0 |
| Dizzzy0x00/LLMGen-Phishing-Email-Dataset | Apache-2.0 |
| kudzaiprichard/aura-phishing-email-corpus (SpamAssassin part) | CC BY 4.0 |
| Synthetic phishing emails, written with openai/gpt-oss-120b (signals and labels set by code) | Apache-2.0 |
| English to Portuguese translations of NLI, HellaSwag, Cosmos QA, CommonsenseQA and BoolQ items, made with Helsinki-NLP/opus-mt-tc-big-en-pt | CC BY 4.0 |
| Programmatic skills (arithmetic, dates, units, sorting, graphs, code output): generated by our own scripts | Apache-2.0 |
Datasets under CC BY-SA and CDLA-Sharing are used for training only and are not redistributed here.
Limits
- 8,192-token context. Nothing is truncated: a longer request raises
RequestTooLong. - English and Portuguese only. Other languages work to the extent the base model saw them, and were not evaluated.
- It does not generate text and it does not know facts beyond its training: on knowledge-heavy benchmarks (MMLU, GPQA, HLE) it is far behind decoder models with billions of parameters.
- Confidence is calibrated on the training distribution. On a new domain, measure it before trusting it.
License
Apache-2.0. See LICENSE.
- Downloads last month
- 18