|
Download README.md from jmwri/decide: direct link, hf CLI and curl.
- Browser
- Download file 7.03 kB
-
https://huggingface.co/jmwri/decide/resolve/main/README.md
- Command line
-
hf download hf://jmwri/decide/README.md
-
curl -L -o README.md https://huggingface.co/jmwri/decide/resolve/main/README.md
7.03 kB
| license: apache-2.0 | |
| language: en | |
| base_model: answerdotai/ModernBERT-base | |
| library_name: decide | |
| pipeline_tag: zero-shot-classification | |
| tags: | |
| - modernbert | |
| - decision-model | |
| - zero-shot-classification | |
| - calibrated | |
| # decide-0.2.0 | |
| A small, fast, **non-autoregressive decision model**. Given some state, an instruction and a set of candidate | |
| options, it scores every option in a single forward pass and returns calibrated probabilities. It answers | |
| three kinds of question with the same weights: | |
| - **choice**: a distribution over K mutually exclusive options | |
| - **noul**: the probability that a condition holds (a yes/no question) | |
| - **score**: an expected level on an ordered scale | |
| It is fine-tuned from [ModernBERT-base](https://huggingface.co/answerdotai/ModernBERT-base) (149M parameters). | |
| The packed input is `<instructions> <state> [SEP] [MASK] option0 [MASK] option1 ...`; a small MLP head scores the | |
| encoder state at each `[MASK]`. Each option attends only to the shared prefix and to itself and its position ids restart | |
| after the prefix, so an option's score depends on *(premise, that option)* alone: **permuting the options permutes the | |
| scores and changes nothing else** (measured max logit change under permutation: 8.9e-06). | |
| The model, tokenizer, training loop, evaluation and this card were all produced with the pure-Go toolchain in | |
| [jmwri/decide](https://github.com/jmwri/decide); no Python or PyTorch was used to train it. | |
| ## Usage | |
| ```go | |
| import "github.com/jmwri/decide" | |
| decide.SetDefault(decide.NewLocal("/path/to/this/model")) // or: decide pull --repo jmwri/decide | |
| ans, _ := decide.Decide(ctx, "Replication lag exceeded 45 seconds.", decide.Options{ | |
| {Key: "infrastructure", Description: "Database, hardware, network or server failures"}, | |
| {Key: "billing", Description: "Invoices, payments, refunds"}, | |
| }, "Classify the root cause domain.") | |
| ``` | |
| ## Evaluation | |
| Accuracy is top-option accuracy. ECE is the expected calibration error (15 bins) of the top-option confidence, | |
| after the per-kind temperature scaling shipped in `decide.json`. | |
| ### Held-out validation splits of the training tasks | |
| | task | n | accuracy | NLL | ECE | | |
| | :-- | --: | --: | --: | --: | | |
| | **all** | 8127 | **80.2%** | 0.505 | 0.007 | | |
| | kind: choice | 4745 | 78.7% | 0.569 | 0.011 | | |
| | kind: noul | 2703 | 89.5% | 0.259 | 0.009 | | |
| | kind: score | 679 | 53.5% | 1.041 | 0.034 | | |
| | amazon_polarity | 300 | 94.0% | 0.178 | 0.035 | | |
| | arc | 200 | 49.0% | 1.272 | 0.124 | | |
| | arc_easy | 200 | 66.0% | 0.857 | 0.079 | | |
| | banking77 | 300 | 96.7% | 0.094 | 0.032 | | |
| | bitext_support | 300 | 100.0% | 0.011 | 0.011 | | |
| | boolq | 300 | 83.3% | 0.412 | 0.043 | | |
| | civil_comments | 156 | 76.9% (MAE 0.48 levels) | 0.543 | 0.086 | | |
| | clinc150 | 300 | 98.3% | 0.058 | 0.019 | | |
| | cola | 200 | 79.0% | 0.419 | 0.086 | | |
| | commonsense_qa | 300 | 65.0% | 0.880 | 0.042 | | |
| | dbpedia14 | 300 | 70.0% | 1.027 | 0.163 | | |
| | go_emotions | 256 | 84.4% | 0.463 | 0.079 | | |
| | hellaswag | 300 | 68.7% | 0.818 | 0.065 | | |
| | massive_intent | 300 | 97.0% | 0.113 | 0.037 | | |
| | massive_scenario | 300 | 96.3% | 0.141 | 0.040 | | |
| | mnli | 300 | 87.3% | 0.359 | 0.061 | | |
| | mrpc | 200 | 90.5% | 0.234 | 0.048 | | |
| | newsgroups | 296 | 85.5% | 0.440 | 0.058 | | |
| | openbookqa | 250 | 59.6% | 0.957 | 0.056 | | |
| | qasc | 250 | 49.6% | 1.370 | 0.053 | | |
| | qnli | 200 | 90.5% | 0.228 | 0.059 | | |
| | qqp | 200 | 87.0% | 0.331 | 0.057 | | |
| | rte | 200 | 82.0% | 0.391 | 0.038 | | |
| | sms_spam | 300 | 100.0% | 0.009 | 0.009 | | |
| | snli | 295 | 87.5% | 0.346 | 0.073 | | |
| | sst2 | 300 | 95.0% | 0.177 | 0.048 | | |
| | sst5 | 300 | 54.7% (MAE 0.55 levels) | 1.034 | 0.069 | | |
| | stsb | 300 | 51.3% (MAE 0.60 levels) | 1.093 | 0.049 | | |
| | toxic_conversations | 124 | 91.9% | 0.258 | 0.054 | | |
| | wanli | 300 | 74.7% | 0.583 | 0.042 | | |
| | winogrande | 300 | 66.0% | 0.715 | 0.110 | | |
| Tasks in this second table were **never trained on** (zero-shot to the model): | |
| ### Held-out tasks | |
| | task | n | accuracy | NLL | ECE | | |
| | :-- | --: | --: | --: | --: | | |
| | **all** | 4500 | **47.6%** | 1.268 | 0.133 | | |
| | kind: choice | 2500 | 42.8% | 1.415 | 0.128 | | |
| | kind: noul | 1000 | 58.9% | 1.011 | 0.266 | | |
| | kind: score | 1000 | 48.2% | 1.159 | 0.072 | | |
| | amazon_stars | 1000 | 48.2% (MAE 0.71 levels) | 1.159 | 0.072 | | |
| | emotion | 1000 | 55.1% | 1.244 | 0.084 | | |
| | enron_spam | 1000 | 58.9% | 1.011 | 0.266 | | |
| | mmlu | 1500 | 34.5% | 1.529 | 0.166 | | |
| ## Training data | |
| Fine-tuned on 301661 examples built from the public datasets below (options are re-sampled and verbalised in several | |
| styles; classification tasks are also posed as yes/no verification questions). Licenses are as declared on the | |
| Hugging Face hub; **review them before redistributing or commercialising the weights**, since several datasets | |
| carry share-alike or unspecified terms. | |
| | dataset | train examples | license (as declared) | | |
| | :-- | --: | :-- | | |
| | amazon_polarity | 8000 | apache-2.0 | | |
| | amazon_stars (held out, evaluation only) | 0 | unspecified (mteb/amazon_reviews_multi) | | |
| | arc | 1119 | cc-by-sa-4.0 | | |
| | arc_easy | 2251 | cc-by-sa-4.0 | | |
| | banking77 | 9993 | cc-by-4.0 | | |
| | bitext_support | 8990 | cdla-sharing-1.0 | | |
| | boolq | 9000 | cc-by-sa-3.0 | | |
| | civil_comments | 9391 | cc0-1.0 | | |
| | clinc150 | 15000 | cc-by-3.0 | | |
| | cola | 6000 | other (GLUE) | | |
| | commonsense_qa | 9000 | mit | | |
| | dbpedia14 | 8000 | cc-by-sa-3.0 | | |
| | emotion (held out, evaluation only) | 0 | other (dair-ai) | | |
| | enron_spam (held out, evaluation only) | 0 | unspecified (SetFit/enron_spam) | | |
| | go_emotions | 7520 | apache-2.0 | | |
| | hellaswag | 22000 | mit | | |
| | massive_intent | 11499 | apache-2.0 | | |
| | massive_scenario | 11500 | apache-2.0 | | |
| | mmlu (held out, evaluation only) | 0 | mit | | |
| | mnli | 30000 | cc-by-3.0/cc-by-sa-3.0/mit/other | | |
| | mrpc | 3668 | other (GLUE) | | |
| | newsgroups | 10707 | unspecified (SetFit/20_newsgroups) | | |
| | openbookqa | 4957 | unknown | | |
| | qasc | 8000 | cc-by-4.0 | | |
| | qnli | 8000 | other (GLUE) | | |
| | qqp | 8000 | other (GLUE) | | |
| | rte | 2490 | other (GLUE) | | |
| | sms_spam | 4433 | unknown (UCI) | | |
| | snli | 15976 | cc-by-sa-4.0 | | |
| | sst2 | 8000 | other (GLUE) | | |
| | sst5 | 8500 | unspecified (SetFit/sst5) | | |
| | stsb | 5748 | other (GLUE) | | |
| | toxic_conversations | 6138 | cc-by-4.0 | | |
| | wanli | 16000 | cc-by-4.0 | | |
| | winogrande | 22000 | cc-by-4.0 | | |
| ## Limitations | |
| - English only. Inputs are limited to 8192 tokens; option sets are best kept under ~10 (use a two-stage taxonomy beyond that). | |
| - Trained on public classification, inference and multiple-choice datasets, so it is strongest on those styles of | |
| question. Explicit, descriptive option texts work better than bare labels. Domain-specific jargon or rubrics with | |
| no descriptive criteria fall back to general language priors. | |
| - Probabilities are calibrated on held-out data from the training tasks; on very different distributions they will | |
| be over-confident. Use a confidence gate and route uncertain cases to review. | |
| - Not for decisions that affect people's rights, safety or livelihood without human oversight. | |
| ## License | |
| Weights: Apache-2.0 (ModernBERT-base is Apache-2.0), subject to the training-data terms above. | |