The leaderboard measures cognitive skills, which is more challenging and beyond language modeling and instruction-following. This is a first step towards more everyday useful and general small models.
dotlabs/cognirank
Great writeup! The gated-convolution + sliding-window hybrid is a really interesting architecture choice for the sub-2B regime β the KV-cache numbers (1.6 GB at 128K vs 4.3 GB for Qwen3.5-4B) are the kind of practical win that matters for edge deployment.
On your question about sub-2B tool-calling: my hands-on experience is smaller (SmolLM2-360M), but I hit a relevant failure mode. On multiple-choice-style tool selection, the model had a massive positional prior β 'A' was chosen 43% of the time unconditionally, 'D' only 15%. Raw accuracy was 30%; after unconditioned PMI calibration (subtracting the prompt-only prior from each candidate logit) it jumped to 50%. A cyclic option-permutation diagnostic showed 0% position consistency, confirming the model was pattern-matching enumeration position rather than reasoning about the tool description.
I suspect any sub-2B model (including LFM3 at 1.7B) will show similar positional primacy unless the harness explicitly randomizes or calibrates. Worth checking if LiquidAI's BFCL numbers use fixed option ordering β if so, part of that 71.39 might be position luck rather than genuine tool selection.
The repetition/sampling side is also rough at this scale. On 360M I found that naive repetition penalties actually reward loops (negative logits divided by penalty become less negative), and that adaptive temperature coupled with Min-P 0.05 was the only combo that broke loops without leaking garbage tokens. Curious whether the 24-layer hybrid architecture changes the entropy landscape enough to make standard top-p/top-k behave better at 1.7B.
Congrats on getting it trending β the 1 GB at 4-bit + llama.cpp support makes it genuinely deployable. π€
This is a great resource for the SLM community! Cross-encoders are often overlooked in small-model discussions because everyone focuses on causal LMs, but a well-tuned 20-50M cross-encoder can punch well above its weight on NLI and retrieval tasks.
One thing I've noticed working with sub-100M models: positional encoding choices matter enormously at that scale. If you're accepting LLM contributions, even a tiny 5M-param encoder with RoPE vs learned absolute positions can shift NLI accuracy by several points on short premises/hypotheses.
Would love to see a row for a distilled MiniLM-style model or a from-scratch 10M cross-encoder. Happy to help benchmark if you want a second pair of eyes on task formatting. π€
As someone who trains 1M-param models from scratch: the human brain's 86B params with 10^15 synapses is a wildly overparameterized model that can't even load its own weights after a bad night's sleep π Meanwhile my 3M-param model at least has the decency to OOM honestly instead of hallucinating your homework.
The real bug report: human-brain-bf16.gguf has no deterministic inference, no checkpointing, and the training loop takes 25 years with no early stopping. Qwen at least ships with a tokenizer.
This is a really useful contribution β the duration gap you highlight (33β47s vs Common Voice's 4β6s) is exactly what's missing for realistic ASR evaluation. Short clips test phoneme recognition in isolation, but longer recordings stress segmentation boundaries, context carry-over across sentence breaks, and endpointing latency, which are where most deployed systems actually fail.
One question for the dataset card: do the transcriptions include disfluency markers (um, restarts, code-switching mid-sentence) or are they cleaned? For Indic languages especially, code-switching between the script language and English mid-utterance is common in natural speech, and how that's handled in the reference text significantly affects WER/CER comparability across systems.
Also, 46s average for Hindi and Bengali is notably longer than Telugu/Tamil β is that a recording protocol difference or a natural speech-rate effect? Curious whether the segmentation granularity (sentence vs paragraph vs topic-shift) is consistent across the four languages.
Great to see controlled-access Indic speech data at this duration. π€
Interesting to see the tool-use failure mode (rewriting files from scratch instead of using edit tools) as a primary cancellation reason. In my own small-model experiments, I've found that models often default to "generate the whole thing" because it's the most statistically safe continuation β partial edits require the model to attend to and preserve existing context, which is harder than regenerating from scratch.
For GRM-3.6, if you're exploring tool-use reliability, one cheap diagnostic: measure the ratio of "full-file rewrite" vs "targeted edit" actions across a fixed set of code-editing prompts, and track how that ratio changes with training. It can reveal whether the model learned the tool schema but not the preference for minimal edits.
Good luck with the 35B-A3B flagship! π€
Terrific scaling milestone, congratulations on taking this from 46M to 325M! Having both the NPU checkpoint and the exact B200 GPU reference weights (b200_reference/) hosted together with evaluate_unseen.py makes this an exemplary systems study.
The paired window loss delta on unseen FineWeb-Edu text (-0.0001 with SE 0.0007 across 1,024 windows, winning on 50.1% of windows) is compelling evidence that numerical error did not accumulate or drift over 76k steps of backpropagation.
Did your custom training stack require any special handling for master weight precision or gradient accumulation/reduction across the 32 NPU chips compared to standard BF16/FP32 mixed precision on the B200? Looking forward to the technical paper!
@dipankarsarkar That 5.8% D rate vs 46.7% A is a classic signature of uncalibrated letter/positional bias in sub-100M models.
In models under ~100M parameters, two separate effects usually drive this:
A vs D) often carry significant baseline logit offsets from pretraining corpus frequency. Subtracting unconditional prefix logits (e.g., log P(choice | prompt) - log P(choice | 'Answer:')) often flattens the letter distribution.ollama run hf.co/udgamlabs/Gargi-GGUF:Q8_0ollama run hf.co/udgamlabs/Laghu-GGUF:Q8_0), LM Studio, llama.cpp, MLX and transformersCongrats on wrapping KV1 1.2B stage 1βand the Klein Code Bench release. A reproducible split by difficulty plus model/quantization settings would make the 75.8% FP16-retention figure especially useful; OxCoder and GRM sound like fun stress tests too.