Top
Best
New

Posted by HenryNdubuaku 5 days ago

Show HN: Cactus Needle 3: 8-29MB automation models can match DeepSeek V4 Flash(cactuscompute.com)
Hey HN, Henry from Cactus here.

We submitted Needle 2 here a few weeks ago, and the feedback in the discussion thread was incredibly valuable, thanks! Thanks to all that feedback, we’ve been able to move quickly to release Needle 3 and I'd love to hear what you think again.

The key features:

1) Automation (tool calls & structured JSON output): Needle still doesn't chat by design, its quite challenging to pack general capacity into such small models, so we focus on tool calls and structured JSON. If no tool you declared fits the request, you get an empty list back (note for when playing with the demo).

2) Intelligence Laddering: Every layer (2 to 20) is a deployable subnetwork, so one set of weights, 25 to 121 million parameters at 2-bit, shipping as 8-29MB binaries. On a Raspberry Pi 5 it decodes at up to 4k tokens/sec and prefills at up to 10k.

3) Monarch Hadamard MLP: replaces the dense FFN with three learnable Walsh-Hadamard-initialized Kronecker (Monarch) factor pairs interleaved with per-channel diagonal scales, fixed permutations, a SiLU nonlinearity, and a rank-8 input-conditioned gate, so each token gets a fully mixed nonlinear transform of its d_model channels at O(d√d) parameters and compute instead of the O(d²) a dense 4x-expansion MLP would cost.

4) Performance: On Mobile Actions (phone commands, scored on the exact call) the 20-layer model gets 86.0 through the shipped 2-bit binary; LFM2.5 1.2B is at 82.4, Qwen3.5 0.8B at 76.0, Apple's on-device model at 57.6, all at f16. More results on the link, we do not win everywhere ofc.

5) Multilingual: Needle 3 now supports English, French, Spanish, German, Dutch, Italian, Polish, with more languages coming.

6) Finetuning: You can achieve DeepSeek v4 Flash grade performance on a narrow task with just 4L, stress on "narrow task", we found that production users often prefer tuning before production.

7) Triggers: Grounding is a common challenge for tool call, at least for Needle 2, so we added support case-insensitive regular expressions matched against each request to gate false negatives.

8) Confidence: Every response also carries a calibrated confidence score, the minimum of a judgement on the finished call and its decode probability. Act above your threshold, show the call and ask below it, or escalate to a bigger model.

9) Supported Platforms: macOS, Linux on x86-64, ARM64, ARMv7, RISC-V and MIPS32, Windows x64 and ARM, Android, iOS, watchOS, tvOS, the browser as WebAssembly, and a WASI component.

Thanks for reading and as always, thoughts appreciated!

236 points | 92 commentspage 3
eriwang915 4 days ago|
Tool-call + structured JSON at 8–29MB is the right bet. Returning an empty list when nothing fits beats inventing a fake tool.
HenryNdubuaku 4 days ago|
thanks, we improved on False Negatives this time :)
dizzard 4 days ago||
Anyone know if the model architecture overlaps with Jev, or is it just coincidence these are releasing at similar times?
HenryNdubuaku 4 days ago|
As far as I know Jev's architecture isn't public (though I might be mistaken!), but it is a coincidence :)

Needle 3 has been in the making since Needle 2 launched early august, but we are very excited that Jev is bringing more attention to the problem we are trying to solve.

razster 4 days ago||
"Illuminate (roomname), de-illuminate (roomname)" works well. Harden perimeter, locks doors and sets alarm.

Neat stuff.

HenryNdubuaku 4 days ago|
Thanks!
monster_truck 4 days ago||
I told the "car" to close the garage door and turn the car on and it didn't immediately refuse
HenryNdubuaku 4 days ago|
haha i think that's a good demonstration of how external guardrails could help ground tiny models like these to prevent issues from coming up. I wouldn't trust needle to be my autopilot either (:
monster_truck 4 days ago||
I don't think you're taking this seriously enough if you think external guardrails are sufficient.
HenryNdubuaku 4 days ago||
well certainly the environment on the website cannot be a full product, and it isn't claiming to be that. The model, while capable in many dimensions, is also limited by its size. The website is meant to show both the capabilities and the limitations! A real deployment would absolutely need external guardrails, more thoroughly thought out tool sets with better task-specific triggers, perhaps also task-specific finetuning for better confidence grounding. And in my view that's the point of small open models! You can take it and run with it as far as you want.
sroussey 4 days ago||
Would love to see this implemented with @huggingface/kernels for shader compilation for Webgpu.
HenryNdubuaku 4 days ago|
noted, we'd look into this, thanks
sroussey 4 days ago||
For reference: https://huggingface.co/blog/webgpu-kernels

I think it will be the basis for a rewrite of transformers.js v5, but no need for you to wait as you would likely want direct access. It is also way better than loading WASM, and faster to boot!

hypfer 4 days ago||
"Turn the kitchen to 230°C" was executed with "confidence": 0.9015
HenryNdubuaku 4 days ago|
lol well i guess you can turn the whole kitchen into an oven with needle :)

But for real usecases you are able to set explicit minimum and maximum values on the output range of numeric arguments, so that you can avoid situations like these. In this case it was hard for us to do that while keeping a broadly appealing demo since celsius and fahrenheit have different "reasonable" output ranges.

takenatured 4 days ago||
Why are you out here swinging against DeepSeek V4 Flash? Jev is your opponent here.
HenryNdubuaku 4 days ago|
True! We finished Needle 3 before Jev launched. Also, we are merely chasing one DeepSeek v4 Flash capacity with a small model, DeepSeek models are really good.
neilellis 4 days ago||
Also FYI doesn't run inference on Apple GPU (only for training)
HenryNdubuaku 4 days ago|
Hey there, yep we found that on Apple devices specifically running on CPU is fast enough that Metal support is not needed. Thanks for flagging this though, and if usecases that would benefit from Metal support come up we will be adding it to the binaries.
sourcecodeplz 4 days ago||
from my limited tests, it can work with up to 10 tools/definitions.

over that and it gets confused

HenryNdubuaku 4 days ago|
Hi, thanks for the feedback! And yes absolutely less tools and better tool descriptions make a huge difference for this model.
mentalgear 4 days ago|
Feels like Jev, no?
More comments...