s1d1-router, six sources, full, MLX 8-bit (Apple Silicon)

A "System 1" router: it reads a user prompt and returns its complexity score (0.01 to 1.00), its task type (19 classes) and whether it needs tools. It never picks a model; the deployer maps these outputs to models with rules. The method, the training data, the full results and the limitations are in the card of the main repository, scombat/s1d1-router.

  • Variant: mmbert_full-mlx-8bit, full model, mmBERT-base fine-tuned (22 layers x 768, 256k vocabulary).
  • Format: MLX 8-bit (Apple Silicon), 362 MB.
  • Outputs: 21 logits. Output 0 is the complexity in tier units (score = 0.5 + 0.25 x output, clipped to 0.01..1.00), outputs 1 to 19 are the task logits (order in task_names of config.json), output 20 is the needs_tools logit.
  • Pruned vocabulary variants ship vocab_map.npy (full tokenizer id -> pruned id); the loader below applies it.
  • Do not read it through pipeline("text-classification") with its defaults, nor through Text Embeddings Inference: both apply one softmax over the 21 outputs. config.json declares problem_type: regression, so pipeline(..., top_k=None) returns the raw outputs; decode them as the main card shows.

Measures (validation, 4,914 rows, six sources, unweighted)

complexity QWK complexity MAE task accuracy task macro-F1 needs_tools F1 needs_tools AUROC
0.766 0.073 0.856 0.786 0.634 0.965

Agreement with the full fp32 model on validation: same complexity tier 99.2%, same task 99.3%, same needs_tools 99.8%. Latency, batch 1, mlx backend on an Apple M4 Max: p50 4.5 ms, p95 47.6 ms. Full results and method: docs/15-catalog-v4-v7.md in the project; eval.json in this repo.

Use

s1d1_router.py from scombat/s1d1-router loads this repository directly (Python >= 3.10, tokenizers, huggingface_hub and mlx-embeddings):

from s1d1_router import Router
router = Router("scombat/s1d1-router-6src-full-mlx-8bit")
router.route(["Quelle est la capitale de l'Australie ?"])

License

Apache-2.0. The base model, mmBERT-base, is MIT-licensed; its notice is kept in NOTICE. The license requires you to keep LICENSE and NOTICE when you redistribute the weights or a derivative; it does not require attribution when you merely use the model in a product or behind an API. If you use it in published work or a product, a mention of the author and the citation below are appreciated (a request, not a condition).

Citation

@misc{s1d1_router_2026,
  title  = {s1d1-router: a one-pass multilingual router for LLM requests},
  author = {scombat},
  year   = {2026},
  howpublished = {\url{https://huggingface.co/scombat/s1d1-router}}
}
Downloads last month
23
Safetensors
Model size
0.3B params
Tensor type
BF16
·
U32
·
MLX
Hardware compatibility
Log In to add your hardware

Quantized

Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Collection including scombat/s1d1-router-6src-full-mlx-8bit