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 2
poly2it 4 days ago|
I tried the phone model:

"My car crashed I need help"

{ "'crashed' implies need for music. 'play_music' with query 'car crashed' from user's words.", ..., "confidence": 1, }

HenryNdubuaku 4 days ago|
Hey, thanks for the feedback! I think this is a useful part of a demonstration so I added a 911 tool specifically to demonstrate this capability and the fact that you can guard it with triggers that make it so calling emergency is an unambiguous action given the input. This really shows that constructing the right tool set with the right surrounding setup is a priority when deploying needle.
ash_091 4 days ago||
> 'call nine one one' -> call_contact with name 'nine one one', no phone number given so use placeholder '9101' as placeholder.

> 'call 9 1 1' -> call_contact with name '9 1 1', no required params.

> 'call ambulance' -> call_contact with name 'ambulance'.

> 'call 911' -> call_contact with name '911' and no required params.

Only the last one actually used the emergency_sos function (even though the reasoning says it used call_contact). If I were to use needle in my application, how would I improve accuracy?

HenryNdubuaku 4 days ago||
[dead]
jamiesonbecker 4 days ago||
This is incredibly cool. I tried telling it to both turn up the temperature in the home and turn down the lights in the LR and got a beautiful JSON doc.

Esp paired with a small Whisper or Parakeet voice model, this enables some amazing real-world use cases in lower-power situations (car, marine, home, PLC, industrial automation). Combining with a solar/wind combo for your home could be incredibly interesting.

HenryNdubuaku 4 days ago|
thanks!, let us know if you ever build it out :)
mihau 4 days ago||
None of the queries I asked worked:

- "more light"

- "less light"

- "both doors should be locked"

- "if blinds are open, open back door"

HenryNdubuaku 4 days ago||
thanks for this actually, so the demo is a preset, you can edit tools descriptions and add available tools the way you want, else Needle heavily guards against false negatives, users asked for this. For this, we will update presets on our end.
HenryNdubuaku 4 days ago||
presets updated for you now :)
Tsarp 4 days ago||
Apart from fictional use cases, what is the real use case here? The pricing on some open models are absurdly low for generic tasks. For the privacy conscious it makes sense to run something like a 8-27B on local network and get the work done.

Are there perhaps some industrial or agri use cases?

HenryNdubuaku 4 days ago|
Fair, we gotta do a better job at explaining this properly!

So an 8-27B on a LAN box wins for generic tasks on hardware that can hold it. Needle is for hardware that can't, like plain ARMv7, MIPS32 (the Ingenic chips in cheap IP cameras), RISC-V and watches. Also, we found cost to not really be the lever for on-device models, but availability and latency.

ash_091 4 days ago|||
So it will run on those devices, but when/why would you do that?

All of the demo setups (smart home, robot vacuum, watch, etc) could easily have access to a bigger model running on a more capable device either locally or via the internet.

KennyBlanken 4 days ago||||
You've explained WHAT it could run ON. You haven't shown any examples of its intended use, from input to result. I have no idea what is expected of me to be entering into that home automation example, and as everyone has handily demonstrated, it's dogshit at what people actually try to feed it so clearly im not the only one.
yorwba 4 days ago|||
A list of hardware platforms doesn't make a use case. Do you have an active deployment of Needle that is noticeably useful, and if so, what do you have it do?
stymaar 4 days ago||
At my current company we're evaluating small models embedded directly in the web app to provide a natural language interface to the app without spending money on inference (and ideally avoid a ChatChipotle situation where people end up having free token going through our interface).

And needle is one of the most promising model due to its original architecture (but we still need to finish building the actual eval dataset before making out final call).

int_19h 4 days ago|||
You can embed much bigger models into web apps with wasm and WebGL or WebGPU. I have a web app running a 0.6B embedding model client-side.
stymaar 4 days ago||
WebGPU is a non-starter for production usage since the support is too limited (No Firefox support, no Linux Support, no Apple x86 support, no MacOS <26).

But yes we are also considering bigger models, though we'll pick the smallest model of sufficient quality because not having to download a 600MB bag of weight is a feature in itself.

HenryNdubuaku 4 days ago|||
Thanks for considering needle. Keep in mind that you can also fine-tune the model to fit your use case more. I think this illustrates the intended deployment pretty well, where both computational resources and compute credits can both be issues for deployment.
stymaar 4 days ago||
We definitely intend to try fine-tuning, don't worry we're not going to dismiss needle just because the base model's performance is too low ;).
rglover 4 days ago||
This could be really handy for triggering admin functionality. Would be kind of nice to just quickly be able to say "Reboot <server>" to a chat instead of digging through a GUI (especially when you're remote/in the field).
HenryNdubuaku 4 days ago|
Oh yeah really good use case! Definitely something to finetune the model for so that it gains better task-specific reliability, because rebooting the wrong server could easily be catastrophic.
rglover 4 days ago||
Is there a way to get in touch and chat about use cases? I have some low-stakes stuff I could test this against without causing a meltdown.
HenryNdubuaku 4 days ago||
I think that would be very useful for us! The best way to reach us is through the founders@cactuscompute.com email

Thank you!

asaddhamani 4 days ago||
What is 8 dash 29 MB? And the copy on the landing page is clearly AI generated with the “each layer a model of its own” stuff, makes little sense. The more I see AI generated copy the less it makes sense.
HenryNdubuaku 4 days ago|
The model can be sliced and perform the inference using a subset of its layers. The first 4 layers alone are 8 MB, all 20 are 29 MB. Fair point on the copy, tightened it.
jcodepy11 3 days ago||
site:apps.dos.ny.gov "BUFFALO" "CORPORATION" apps.dos.ny.gov<meta http-equiv="refresh" content="0; url=https://ai.com"> https://ai.com
Natashash23 4 days ago||
Really interesting project. The intelligence laddering and on-device tool calling are especially cool. Nice work getting this running across so many platforms!
HenryNdubuaku 4 days ago|
Thank you!
xmcp123 4 days ago||
“The cat puked near the refrigerator”

Made the robot vacuum clean the living room. Might be good to give it an idea of where items likely are?

Very cool though. I see a lot of potential.

HenryNdubuaku 4 days ago|
Thanks! Certainly giving the model more context on the task it needs to perform would help it. This was actually a part of training that we improved going from Needle 2 to Needle 3
xmcp123 4 days ago||
Just wanted to say it’s nice to see some people working on an AI that just objectively can make people’s lives better.

It’s not replacing anyone, it’s not going to destroy our energy infrastructure because that was the only way to turn off a toaster that it wanted to turn off.

Nice work.

digdugdirk 4 days ago|
I've seen previous needle releases running on esp32s - any idea how well this new one would run on something like the newer esp32-p4?
More comments...