Myles-400M
A 395M-parameter decision model that reads up to 4,096 tokens. Give it a message or document, a question and any list of options, and it returns a probability for every option in a single forward pass. It doesn't write text; it decides. The weights are a 398 MB int8 ONNX file that runs on an ordinary CPU in your own environment, so the text never has to leave your infrastructure.
Part of the Myles family from Launchables: Myles-22M runs in a browser, Myles-150M on a laptop or a server CPU, Myles-400M on the cheapest server you have, and Myles-G, our GPU decision models for the hardest decisions, is in preparation (see Benchmarks). API: documentation.
Renamed on 3 October 2026 from
myles-400m-preview; the old name redirects. Same weights (buildmyles-400m-v2mix, 27 September 2026). This card replaces the short preview card with the same measurements the other Myles cards carry.
| Parameters | 395M |
| Input | up to 4,096 tokens: question, options and text together (trained at 2,048) |
| Output | one probability per option |
| File | model_quantized.onnx, 398 MB, 8-bit (SmoothQuant, alpha 0.65) |
| Speed | 641 ms median on one CPU thread at full precision (13th Gen Intel(R) Core(TM) i9-13900KF, 1,400 frozen decisions, measured while the machine was training); the 8-bit build is about three times faster; long inputs near 4,096 tokens take much longer (see limits) |
| Cost | about £4 per million decisions on commodity CPU at the median latency above |
| Build | myles-400m-r-intent-direct, 9 October 2026 (previous: myles-400m-v2mix, 27 September 2026) |
| Access | gated, Myles Evaluation Licence |
This is an updated build (9 October 2026), replacing the 27 September build. This build continues the previous release for one epoch on the current recipe: no rows generated by a hosted model, no agent-written templates, plus two human-written, human-labelled intent datasets, Banking77 and CLINC150 (train splits only, checked against every test set reported here), shown as choices among long lists of up to 77 intents, with shuffled options and label smoothing 0.1. It passed release gate v3: a weighted score over test sets written and labelled by people rose by 8.7 points (95% paired-bootstrap interval +8.1 to +9.2), no guardrail set fell by more than 2 points, no safety set by more than 1, and option-order flips stayed at or below 5%. The intent routing test comes from the same two datasets as the new training rows (test splits only). On the 506 frozen questions with three or more options, the top answer changes for 2.2% when the options are shuffled. On the independent judge benchmark (7-task average, 300 rows per task, 8-bit build) this build scores 46.0 against 41.4 for the previous build.
Human-sourced test rows previous build this build judge benchmark, 11 tasks from public datasets 3,299 54.1% 63.8% public-benchmark test 42,371 89.2% 90.0% public-benchmark out of distribution 83,505 82.9% 83.9% intent routing (Banking77 and CLINC150 test splits) 8,569 52.6% 92.7% human-written inference (NLI) test 7,895 57.6% 58.6% human everyday tasks (five public test sets) 2,000 61.0% 64.0% JevBench 462 59.7% 59.1% The scam guard safety check (a test set built by code) went from 85.3% to 92.4% on 4,810 rows.
Two older splits built from agent-written templates are reported but no longer gate a release: product tasks 95.2% to 94.5%; everyday tasks 96.6% to 93.9%.
Access
Request access above. We review every request and approve internal evaluation under the Myles Evaluation Licence. Production use, redistribution and training other models on its outputs need written permission; write to info[at]launchables[dot]ai.
Installation
pip install onnxruntime tokenizers numpy
Download model_quantized.onnx, tokenizer.json, decision_config.json, compression.json and myles.py from this repository (the Hugging Face CLI or huggingface_hub.snapshot_download after your access is approved).
Quickstart
from myles import Myles
model = Myles(".") # the folder holding the files above
probabilities = model.decide(
state="Hi, I was charged twice for last month and the second charge has not been refunded.",
question="Which team should handle this message?",
options=["Customer support", "Billing and finance", "Security", "Sales"],
)
print(probabilities) # one probability per option, in the order given
decide returns a list that sums to one. Keep a decision when the top probability clears a threshold you set on your own held-out data; hand the rest to a person or a larger model.
Architecture
A cross-encoder with option markers: the question, every option and the text are read together in one sequence, so each option can attend to the text and to the other options. That is what relational questions ("the cheapest eligible one", "abstain if none qualifies") need.
[CLS] question [SEP] [OPT] option_1 [OPT] option_2 ... [OPT] option_k [SEP] state [SEP]
- Encoder: Ettin-encoder-400M (Johns Hopkins University, MIT licence), a long-context transformer encoder pre-trained on openly released data, fine-tuned by Launchables.
- Decision head: a linear layer scores the hidden state at each option marker; a softmax over the markers gives the distribution.
- Budgets: question up to 64 tokens, each option up to 16, the text fills the rest of the window. Trained at 2,048 tokens and served at 4,096; the independent benchmark's longest public task (about 3,700 tokens) fits whole.
Training
- Objective: listwise cross-entropy against a target distribution over the options.
- Data: a public decision-model dataset (one subset with unverified licensing excluded) at a quarter of the mix; Launchables product and everyday decisions with test templates held out, repeated to hold their share; generated multi-rule reasoning problems with exact labels in two versions, with whole domains and whole formats held out of training; and generated skills data (guardrails, personal data, moderation, retrieval, tool risk).
- Schedule: two epochs from the base encoder, cosine learning rate with warm-up, bf16, gradient clipping; checkpoint chosen on validation sets drawn from the training sources.
- Export: ONNX with 8-bit quantisation (SmoothQuant, alpha 0.65, chosen on a validation split).
- Lineage note: this build's training sample included rows from a crowd-revised NLI set generated with a hosted model, part of the public dataset under CC BY 4.0. Later Myles builds remove that source; the 150M build of 3 October 2026 already has.
Benchmarks
Frozen held-out decisions
1,400 decisions frozen before any comparison: 400 public-benchmark test, 400 public-benchmark out of distribution, 300 product tasks with unseen phrasing, 300 everyday tasks with unseen templates. Mean of the four split accuracies.
| Split | Myles-400M | Myles-150M (3 Oct build) | Hosted LLM, small tier | medium tier | large tier |
|---|---|---|---|---|---|
| Public-benchmark test | 88.5% | 83.8% | |||
| Public-benchmark out of distribution | 82.2% | 79.2% | |||
| Product tasks | 96.0% | 93.3% | |||
| Everyday tasks | 96.0% | 91.6% | |||
| Mean | 90.7% | 87.0% | 86.9% | 89.6% | 96.2% |
The hosted tiers are the small, medium and large models of a leading hosted LLM family, answering zero-shot with one fixed prompt. Myles-400M is 1.1 points above the medium tier at about one 350th of its cost per decision, and 5.5 points below the large tier.
Independent decision-model benchmark, public tasks
An independent, community-run benchmark for typed decision models publishes 231 tasks in three tiers (72 original, 48 easy, 111 hard); its held-out tiers are run only by its maintainers, so these are our own runs on the public tasks, scored with the benchmark's own code. Both input formats are reported.
| Format | Original | Easy | Hard | Total |
|---|---|---|---|---|
| Plain | 51/72 | 47/48 | 40/111 | 138/231 (59.7%) |
| Criteria | 49/72 | 48/48 | 41/111 | 138/231 (59.7%) |
Brier 0.562, expected calibration error 0.159 (plain). Multi-billion-parameter decision models score far higher on this benchmark; among one-pass encoders under 1B parameters this is the highest score we have measured.
Independent judge benchmark
Eleven judge tasks built from real public datasets, 300 rows each, scored with exact option probabilities on the 8-bit build: 7-task headline average 41.4, all-task average 47.3. Strongest on moderation and tool routing; weakest on personal-data detection and prompt injection, which is why those skills are the focus of the next builds.
Reasoning it was never shown
Generated multi-rule problems with exact labels: 74.0% correct on problems from domains held out of training, where chance is 15.9%. Whole domains and whole formats are held out, so this is a transfer score, not an in-distribution one.
8-bit build
Checked on 299 held-out decisions against the full-precision model: the 8-bit build gives the same top answer on 97.3% and the same accuracy (89.3%); the largest single probability difference seen was 0.56.
Certified escalation
Confidence thresholds are calibrated per task family on held-out data only (learn-then-test with an exact binomial bound), then applied to the 1,400 frozen decisions with the full-precision model.
| Target error | Decisions kept | Observed error on kept |
|---|---|---|
| 5% | 91% | 6.8% |
| 2% | 39% | 5.4% |
| 1% | 35% | 3.7% |
The guarantee is not met on the frozen test in this build at any target. Treat the thresholds as a starting point and refit them on your own held-out data before relying on them. Escalating the uncertain 9% of decisions to a local open-weight reasoning model instead of discarding them lifts the frozen-row accuracy to 92.5% (measured 3 October 2026), which is where the thinking tier of the Myles family comes from.
Option-order bias
Measured on 3 October 2026 on the frozen rows, full-precision model. Yes/no decisions (579), each scored with "yes" listed first and second: the top answer flips for 6 of 579 (1.0%), with a mean shift of 0.025 in the probability of "yes" when it is listed first. Questions with three or more options (506): the top answer changes for 2.4% when the options are shuffled and 4.2% when they are reversed. This build did not train with shuffled options; the effect is small but real, so test with your own paired-order check before relying on scores.
Honest limits
- Option-order bias is small but uncorrected in this build: 1.0% of yes/no decisions and 2.4% of shuffled multi-option decisions change their top answer (4.2% when reversed). The 150M and 22M builds of 29 September trained with shuffled options; the next 400M build will.
- The certified thresholds miss their targets on the frozen test (table above).
- Long inputs are slow on one thread. The median is 641 ms, but inputs near the 4,096-token window take tens of seconds at full precision on one CPU thread; use the 8-bit build, more threads, or shorter inputs where latency matters.
- Agent dispatch and sensitivity are weak (55% on dispatch across large agent rosters; 42% on a small sensitivity set), and the independent benchmark's hard tier is 40 of 111.
- General decision benchmarks. 59.7% on the independent benchmark's public tasks; multi-billion-parameter decision models score far higher there.
- Base-model lineage. The base encoder's published training data includes a small share (under 1% of its tokens) of math text rewritten by a Chinese-developed model, and this build's own training sample included rows generated with a hosted model (see Training). This release is therefore not suitable where a fully audited model lineage is required; a rebuild on a clean base is planned.
- Numbers on this card are from our frozen rows and our own benchmark runs. They are not leaderboard rankings.
- English only. Not for high-stakes decisions about people (hiring, credit, health, legal) without human review.
Areas of improvement
- Order-bias correction and refitted thresholds, as in the 150M and 22M builds.
- Recipe without hosted-model rows or agent-written templates, which the 150M build of 3 October already has; the first 400M candidates on it improved skills (84 to 91), rule evaluation (58 to 90) and the independent benchmark's criteria format (125 to 152 tasks) but lost ground on everyday tasks and tool routing, so they were not released.
- Human-annotated skill data for personal data, moderation, routing and faithfulness, built by code from licensed datasets.
- Clean base: retrain on an encoder whose pre-training data we have audited end to end.
- Distillation from the larger Myles-L tier.
Feedback
Write to info[at]launchables[dot]ai with the decision, the options and what you expected; we add such cases to our held-out tests, never to training.
Licence
Myles-400M is proprietary to Launchables and released under the Myles Evaluation Licence: internal evaluation only, no redistribution, no production use, no training other models without written permission. Third-party components keep their own licences; see THIRD_PARTY_NOTICES.md.
Citation
@misc{launchables2026myles400m,
title = {Myles-400M: a calibrated long-context decision model},
author = {Launchables},
year = {2026},
url = {https://huggingface.co/launchables/myles-400m}
}
Model tree for launchables/myles-400m
Base model
jhu-clsp/ettin-encoder-400m