Article

Needle: 26M Parameter für Tool-Calling auf dem Handy

Needle Cactus Function-Calling AI Mobile Open Source

Cactus Compute hat Needle veröffentlicht: Ein Function-Calling-Modell mit nur 26 Millionen Parametern, das auf Consumer-Geräten läuft - Telefone, Smartwatches, AR-Brillen. Das Modell schafft 6000 Token/Sekunde Prefill und 1200 Token/Sekunde Decode-Speed, und kann lokal auf dem Mac oder PC finetuned werden.

Simple Attention Networks

Die wichtigste Innovation: Needle benötigt keine FFN-Layer. Das gesamte Modell besteht aus Attention und Gating. Die Architektur nutzt Cross-Attention zwischen Encoder und Decoder, wobei der Encoder die Query und Available Tools verarbeitet und der Decoder den Tool-Call generiert.

Warum funktioniert das? Function-Calling ist im Kern Retrieval-and-Assembly: Eine Query wird auf einen Tool-Namen gemappt, Argumente extrahiert, JSON emittiert. Das erfordert kein tiefes Reasoning, sondern vor allem Attention-Mechanismen. Cross-Attention ist genau der richtige Baustein dafür.

Training und Performance

  • Pretraining: 200B Tokens auf 16 TPU v6e (27 Stunden)
  • Post-Training: 2B Tokens synthetisiertes Function-Calling-Dataset (45 Minuten)
  • Dataset wurde mit Gemini generiert, 15 Tool-Kategorien (Timer, Messaging, Navigation, Smart Home)

Needle schlägt FunctionGemma-270M, Qwen-0.6B, Granite-350M und LFM2.5-350M bei Single-Shot Function-Calling. Die größeren Modelle sind aber besser in konversationellen Settings.

Quickstart

git clone https://github.com/cactus-compute/needle.git
cd needle && source ./setup
needle playground

Das öffnet ein Web-UI unter http://127.0.0.1:7860 zum Testen und Finetunen. Die Gewichte werden automatisch heruntergeladen und sind MIT-lizenziert auf HuggingFace verfügbar.

Warum das wichtig ist

Die “kein FFN”-Erkenntnis verallgemeinert über Function-Calling hinaus auf jede Aufgabe, bei der strukturiertes externes Wissen verfügbar ist: RAG, Tool-Use, Retrieval-Augmented Generation. Das Modell muss keine Fakten in FFN-Gewichten speichern, wenn die Fakten im Input bereitgestellt werden.

Original: GitHub - cactus-compute/needle