AI/TLDR

Needle 3

Cactus Compute's September 2026 on-device automation model: one 8–29 MB file that does tool calls, structured extraction and text embeddings, from phones down to microcontrollers.

NeedleOpen weightsGenerally available
Released
17 Sep 2026
Parameters
121M at 20 layers; every depth from 2 to 20 layers ships as a deployable subnetwork (29M at 4 layers)
License
Apache-2.0
Coverage
1 story

Overview

Needle 3 is Cactus Compute's automation foundation model, published on September 17, 2026 under Apache-2.0. It gives up general chat capacity on purpose and keeps three jobs that it runs entirely on the device: picking and filling tool calls from the functions an app exposes, pulling typed fields out of messy text against a declared shape, and returning a sentence embedding so an app can search, match and route locally.

The whole model is a single file of 8 to 29 MB. Cactus calls the architecture a Laddered Simple Attention Network: a Monarch Hadamard MLP replaces the FFN, attention is GQA with causal conv taps, and an engram n-gram memory holds most of the parameters, so the 121M model does the arithmetic of a 50M one. It is trained so that every depth from 2 to 20 layers is itself a deployable model, and the weights are compressed to CQ2-bit with Cactus Quants at 2.125 bits per weight.

Outputs are constrained rather than hoped for: a byte-level grammar compiled from the caller's schemas gates every token, so extraction output parses by construction, and each response carries a calibrated confidence score from a learned head. A request no tool covers returns an empty list instead of a guess. The repo ships the 20-layer needle3.cact, the needle3.safetensors checkpoint for fine-tuning, and a sub-1 MB engine per platform covering macOS, Linux (x86_64, ARM64, ARMv7, RISC-V64, MIPSEL), Windows, Android, iOS, tvOS, watchOS and WebAssembly.

Released2026-09-17
LicenseApache-2.0
WeightsOpen weights
Parameters121M at 20 layers; every depth from 2 to 20 layers ships as a deployable subnetwork (29M at 4 layers)
ArchitectureLaddered Simple Attention Network — Monarch Hadamard MLP in place of the FFN, GQA attention with causal conv taps, engram n-gram memory read by gather, and multi-lane hyper-connections
ModalitiesText
StatusGenerally available

Benchmarks

Cactus Compute's bar chart of Needle 3 subnetworks against DeepSeek V4 Flash, LFM2.5, Qwen3.5 0.8B, FunctionGemma 270M, Apple FM and Needle 2 on Mobile Actions, DroidCall, BFCL v4, DSTC8, SNIPS gold and SNIPS 7-way
Needle 3 through the shipped CQ2 binary with the confidence gate on; baselines at f16 under vLLM; DeepSeek V4 Flash via its cloud API. — Cactus Compute

Needle 3 at 20 layers (121M) against the baselines Cactus published, on six tool-calling and extraction benchmarks

BenchmarkDeepSeek V4 FlashNeedle 3 (20L · 121M)LFM2.5 1.2BQwen3.5 0.8BLFM2.5 350MLFM2.5 230MFunctionGemma 270MApple FM (3.0B)
Mobile Actions (exact call)88.4%86%82.4%76%72.8%69.3%65.1%57.6%
DroidCall (exact calls in order)60.5%47%35.5%28%32.5%11.5%16.5%
BFCL v4 (AST match)77.2%50.2%62%56.8%59.1%46.3%46.6%
DSTC8 (field F1)80%40.7%48%49%20%53%27%
SNIPS gold (field F1)69.4%30.2%43%35%34%27%29%
SNIPS 7-way (field F1)66.7%24.7%38%34%29%22%14%

Comparison source ↗

This model's scores

  1. Mobile Actions (exact call, 961 rows)86%
  2. BFCL v4 (AST match, 3,641 rows)50.2%
  3. DroidCall (exact calls in order, 200 rows)47%
  4. DSTC8 (field F1, 1,813 turns)40.7%
  5. SNIPS gold (field F1, 700 rows)30.2%
  6. SNIPS 7-way (field F1, 700 rows)24.7%

Scores on a 0–100 scale (25-point gridlines); higher is better. Each benchmark links to its published source.

Strengths

  • 86.0% exact-call accuracy on Mobile Actions at 121M parameters, against 88.4% for the cloud-hosted DeepSeek V4 Flash
  • Ships as one 8–29 MB file with a sub-1 MB engine per platform, down to RISC-V and MIPSEL microcontrollers
  • Byte-level decode grammar compiled from the caller's schemas, so structured output parses by construction
  • Calibrated per-response confidence score, and an empty call list rather than a guess when no tool fits
  • Ladder training: any depth from 2 to 20 layers is deployable, and LoRA fine-tuning on DroidCall lifts every subnetwork by 18 to 36 points

Best for

  • Reach for it when an app has to turn speech or text into tool calls on a phone, wearable or smart-home hub with no network round trip.
  • Reach for it when you need typed JSON out of messy text — an invoice, a booking, a notification — and the output must parse every time.
  • Reach for it when local search or routing needs embeddings from the same binary that already does the tool calling.
  • Reach for it when one product's tool set is narrow enough to fine-tune a 2–8 layer subnetwork onto very small hardware.

FAQ

How big is Needle 3 and what hardware does it run on?

Needle 3 ships as a single file of 8 to 29 MB, depending on how many of its 2-to-20 layers you deploy, with a separate engine under 1 MB per platform. Cactus publishes engines for macOS ARM64, Linux (x86_64, ARM64, ARMv7, RISC-V64, MIPSEL), Windows (x86_64, ARM64), Android, iOS, tvOS, watchOS and WebAssembly.

What can Needle 3 actually do?

Three things, all on the device: it picks tool calls from the functions your app exposes and fills their arguments, it extracts typed fields from messy text against a schema you declare, and it returns text embeddings for local search and routing. It deliberately has no general chat capability.

How does Needle 3 score against larger models?

On Cactus Compute's published benchmarks, the 20-layer 121M Needle 3 reaches 86.0% exact-call accuracy on Mobile Actions against 88.4% for the cloud-hosted DeepSeek V4 Flash, 82.4% for LFM2.5 1.2B and 57.6% for Apple FM. On BFCL v4 it scores 50.2% against 62.0% for LFM2.5 1.2B, and on DSTC8 field F1 it scores 40.7%.

Is Needle 3 open weights?

Yes. The needle3.cact binary and the needle3.safetensors fine-tuning checkpoint are published on Hugging Face under Apache-2.0, and the Python package installs with pip install cactus-needle.