Instructions to use scombat/s1d1-router-6src-tiny with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use scombat/s1d1-router-6src-tiny with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-classification", model="scombat/s1d1-router-6src-tiny")# pip install -U transformers accelerate # Load model directly from transformers import AutoTokenizer, AutoModelForSequenceClassification tokenizer = AutoTokenizer.from_pretrained("scombat/s1d1-router-6src-tiny") model = AutoModelForSequenceClassification.from_pretrained("scombat/s1d1-router-6src-tiny", device_map="auto") - Notebooks
- Google Colab
- Kaggle
s1d1-router, six sources, tiny, PyTorch fp16 (safetensors)
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:
v7_small_l6-fp16, mmBERT-small cut to 6 layers, 32k vocabulary, distilled from the full model. - Format: PyTorch fp16 (safetensors), 85 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_namesofconfig.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.jsondeclaresproblem_type: regression, sopipeline(..., 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.649 | 0.091 | 0.782 | 0.662 | 0.484 | 0.904 |
Agreement with the full fp32 model on validation: same complexity tier 79.6%, same task
81.3%, same needs_tools 96.7%.
Latency, batch 1, transformers backend on an Apple M4 Max: p50 3.1 ms, p95 8.0 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 torch):
from s1d1_router import Router
router = Router("scombat/s1d1-router-6src-tiny")
router.route(["Quelle est la capitale de l'Australie ?"])
License
Apache-2.0. The base model, mmBERT-small, 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
- 21