Instructions to use scombat/s1d1-router-6src-compact with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use scombat/s1d1-router-6src-compact with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-classification", model="scombat/s1d1-router-6src-compact")# pip install -U transformers accelerate # Load model directly from transformers import AutoTokenizer, AutoModelForSequenceClassification tokenizer = AutoTokenizer.from_pretrained("scombat/s1d1-router-6src-compact") model = AutoModelForSequenceClassification.from_pretrained("scombat/s1d1-router-6src-compact", device_map="auto") - Notebooks
- Google Colab
- Kaggle
s1d1-router, six sources, compact, 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:
v4_vocab32k-fp16, full model with its vocabulary pruned to 32k tokens and a distillation pass. - Format: PyTorch fp16 (safetensors), 308 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.752 | 0.076 | 0.840 | 0.750 | 0.618 | 0.948 |
Agreement with the full fp32 model on validation: same complexity tier 90.9%, same task
91.7%, same needs_tools 98.2%.
Latency, batch 1, transformers backend on an Apple M4 Max: p50 10.0 ms, p95 38.7 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-compact")
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
- 21