Zero-Shot Classification
Transformers
Safetensors
Arabic
bert
feature-extraction
arabic
prompt-routing
router
encoder
tiny-model
Instructions to use oddadmix/Nawah-Router-BERT-6M-v2 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use oddadmix/Nawah-Router-BERT-6M-v2 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("zero-shot-classification", model="oddadmix/Nawah-Router-BERT-6M-v2")# pip install -U transformers accelerate # Load model directly from transformers import AutoTokenizer, AutoModel tokenizer = AutoTokenizer.from_pretrained("oddadmix/Nawah-Router-BERT-6M-v2") model = AutoModel.from_pretrained("oddadmix/Nawah-Router-BERT-6M-v2", device_map="auto") - Notebooks
- Google Colab
- Kaggle
|
Download README.md from oddadmix/Nawah-Router-BERT-6M-v2: direct link, hf CLI and curl.
- Browser
- Download file 2.65 kB
-
https://huggingface.co/oddadmix/Nawah-Router-BERT-6M-v2/resolve/main/README.md
- Command line
-
hf download hf://oddadmix/Nawah-Router-BERT-6M-v2/README.md
-
curl -L -o README.md https://huggingface.co/oddadmix/Nawah-Router-BERT-6M-v2/resolve/main/README.md
2.65 kB
| language: [ar] | |
| license: apache-2.0 | |
| library_name: transformers | |
| base_model: oddadmix/Nawah-BERT-6M-v2 | |
| datasets: [oddadmix/arabic-prompt-routing] | |
| tags: [arabic, zero-shot-classification, prompt-routing, router, bert, encoder, tiny-model] | |
| # Nawah-Router-BERT-6M-v2 — موجّه عربي صفري | |
| Give it a text and **any categories in plain Arabic**; it scores all of them in | |
| one forward pass. No fixed taxonomy. **5,977,985 parameters** against | |
| [`Nawah-Router-v3`](https://huggingface.co/oddadmix/Nawah-Router-v3)'s | |
| 52,049,409 — **8.7× smaller**. | |
| ## Results — it beats the 52M on three of four | |
| **All three models scored in one session** by the shipped `eval_router_only.py`; | |
| Router-v3 reproduced its published card (0.9305 / 0.6976 / 0.6130 / 0.9008). | |
| | eval | Router-v3 (Llama, 52M) | BERT-6M **v1** | **this model, v2** | random | | |
| |---|---|---|---|---| | |
| | unseen category sets | 0.9308 | 0.9137 | **0.9327** | 0.2137 | | |
| | unseen domains | 0.6975 | 0.6696 | **0.7009** | 0.2521 | | |
| | unseen axes | **0.6127** | 0.6024 | 0.6000 | 0.2358 | | |
| | deliberately adjacent categories | 0.9017 | 0.8924 | **0.9101** | 0.2109 | | |
| A 6M encoder **outperforms the 52M decoder** on unseen category sets (+0.2), | |
| unseen domains (+0.3) and adjacent categories (+0.8), at **1/8.7 the size**. | |
| **It loses on unseen axes** — 0.6000 against 0.6127 — and that is the column the | |
| original card calls its strongest claim: `tools` and `retrieval` appear nowhere | |
| in training. Note also that v2 is *worse* than v1 there (0.6024), the only | |
| metric across all three tasks where more pretraining hurt. Three of the four | |
| margins are under one point, which is within what a single run can tell you. | |
| ## Why no pooling change was needed | |
| `RouterModel` pools each category's **token span** via `bmm(cat_pool, hidden)` | |
| rather than a fixed position, so it is architecture-agnostic and a BERT backbone | |
| drops in unchanged. The sibling | |
| [`Nawah-Guard-BERT-6M-v2`](https://huggingface.co/oddadmix/Nawah-Guard-BERT-6M-v2) | |
| needed a mean-pooling patch; this did not. | |
| ## Usage | |
| ```python | |
| from transformers import AutoTokenizer | |
| from routing_model import RouterModel, route # ships in this repo | |
| M = "oddadmix/Nawah-Router-BERT-6M-v2" | |
| tok = AutoTokenizer.from_pretrained(M) | |
| model = RouterModel.from_pretrained(M) | |
| route(model, tok, "كم صار سعر صرف الدولار اليوم؟", | |
| ["بحث في الويب", "حاسبة", "تقويم ومواعيد", "لا يحتاج أداة"]) | |
| ``` | |
| Trained on `oddadmix/arabic-prompt-routing` (207,097 rows, 12 axes) with the | |
| dataset's own `train_router_head.py` at its defaults — decoder-tuned. | |
| © KAND CA 2026 — PROJECT NAWAH | |