Needle demonstrates that useful function-call behavior can be distilled into a millimeter-scale LLM suitable for phones, watches and other constrained devices. Instead of chasing conversational SOTA, its design and training focus on producing accurate tool-call outputs and fast local inference while keeping weights and finetuning workflows fully open.
What Sets It Apart
- Extremely small, task-focused model: a 26M-parameter Simple Attention Network distilled from Gemini 3.1 and optimized for single-shot function-call tasks — so what: you can run and finetune a model for tool invocation on commodity consumer hardware.
- Production throughput on lightweight infra: measured production speeds on Cactus are 6000 toks/sec prefill and 1200 toks/sec decode — so what: real-time tool integrations and low-latency local inference become feasible on constrained hosts.
- Open weights and training artifacts: pretrained on ~200B tokens (16 TPU v6e, ~27 hrs) and post-trained on 2B tokens of a function-call dataset; weights and dataset generation are published — so what: reproducible experiments and easy finetuning for custom tools or domains.
- Architecture choices tailored for low compute: encoder×12 + decoder×8 layout, ZCRMSNorm, GQA+RoPE, encoder without FFN and tied embedding/linear layers to reduce footprint — so what: lower memory and compute per token while retaining cross-attention for tool grounding.
Who It's For and Trade-offs
Great fit if you need an on-device tool-oriented LLM for smart devices, want open weights and data to finetune locally, or need a compact model for embedded inference and fast tool-call integration. Look elsewhere if you require broad conversational capability, long-context reasoning, or state-of-the-art open-domain chat — larger models typically outperform Needle on general chat despite its function-call strengths. Small models can be finicky: expect to invest in targeted finetuning (the project recommends ~120 examples per tool) and validation to avoid overfitting.
Where It Fits
Needle claims better single-shot function-call accuracy than several larger tiny baselines (examples listed in the repo) while remaining orders of magnitude smaller. Use it when deployment constraints or privacy/latency needs rule out larger foundation models; use larger LLMs for broader conversational coverage.