Back to browse
GitHub Repository

26m function call model that runs on incredibly small devices

2,596 starsPython

Needle: We Distilled Gemini Tool Calling into a 26M Model

by HenryNdubuaku·May 12, 2026·776 points·211 comments

AI Analysis

●●●BangerBig BrainWizardry

Distilled Gemini tool-calling into a 26M model that runs at 1200 tok/s on phones.

Strengths
  • Simple Attention Network architecture removes MLPs to fit function-calling in 26M params.
  • Beats larger models like FunctionGemma-270M on single-shot function call benchmarks.
  • Fully open weights and dataset generation scripts allow local fine-tuning on consumer hardware.
Weaknesses
  • Specialized for tool-calling only; lacks general conversational capabilities of larger models.
  • Requires integration with the Cactus runtime for optimal inference performance on edge.
Category
Target Audience

Edge AI developers and mobile app engineers building on-device agents

Similar To

FunctionGemma · Qwen · Granite

Post Description

Hey HN, Henry here from Cactus. We open-sourced Needle, a 26M parameter function-calling (tool use) model. It runs at 6000 tok/s prefill and 1200 tok/s decode on consumer devices.

We were always frustrated by the little effort made towards building agentic models that run on budget phones, so we conducted investigations that led to an observation: agentic experiences are built upon tool calling, and massive models are overkill for it. Tool calling is fundamentally retrieval-and-assembly (match query to tool name, extract argument values, emit JSON), not reasoning. Cross-attention is the right primitive for this, and FFN parameters are wasted at this scale.

Simple Attention Networks: the entire model is just attention and gating, no MLPs anywhere. Needle is an experimental run for single-shot function calling for consumer devices (phones, watches, glasses...).

Training: - Pretrained on 200B tokens across 16 TPU v6e (27 hours) - Post-trained on 2B tokens of synthesized function-calling data (45 minutes) - Dataset synthesized via Gemini with 15 tool categories (timers, messaging, navigation, smart home, etc.)

You can test it right now and finetune on your Mac/PC: https://github.com/cactus-compute/needle

The full writeup on the architecture is here: https://github.com/cactus-compute/needle/blob/main/docs/simp...

We found that the "no FFN" finding generalizes beyond function calling to any task where the model has access to external structured knowledge (RAG, tool use, retrieval-augmented generation). The model doesn't need to memorize facts in FFN weights if the facts are provided in the input. Experimental results to published.

While it beats FunctionGemma-270M, Qwen-0.6B, Granite-350M, LFM2.5-350M on single-shot function calling, those models have more scope/capacity and excel in conversational settings. We encourage you to test on your own tools via the playground and finetune accordingly.

This is part of our broader work on Cactus (https://github.com/cactus-compute/cactus), an inference engine built from scratch for mobile, wearables and custom hardware. We wrote about Cactus here previously: https://news.ycombinator.com/item?id=44524544

Everything is MIT licensed. Weights: https://huggingface.co/Cactus-Compute/needle GitHub: https://github.com/cactus-compute/needle

Similar Projects

Developer Tools●●Solid

Dracula-AI – A lightweight, async SQLite-backed Gemini wrapper

SQLite memory beats JSON bloat; async streaming works—but it's still a Gemini wrapper.

Ship ItSolve My Problem
suleymanibis
203mo ago