News for hackers. Stuff that matters.

Show HN: Cactus Hybrid: We taught Gemma 4 to know when it's wrong

https://github.com/cactus-compute/cactus-hybrid

Hey HN, Henry & Roman here from Cactus.

A small, on-device model is fast and private, but sometimes wrong, but frontier models are getting expensive pretty fast. So, we post-trained Gemma 4 E2B post-trained to know when it's wrong. Every response comes with a confidence score between 0 and 1. Developers can accept the on-device when it's high, hand off to a bigger cloud model when it's low. By routing only 15-35% of queries to Gemini 3.1 Flash-Lite, Gemma-4-E2B matches Gemini 3.1 Flash-Lite on most benchmarks.

- ChartQA: 15-20%

- LibriSpeech: 25-30%

- MMBench, GigaSpeech, MMAU: 30-35%

- MMLU-Pro: 45-55%

We were always frustrated by the routing signals hybrid apps rely on: asking the model to rate itself in text (unreliable, and you're parsing prose), or token entropy heuristics (barely better than a coin flip in our tests). So we did mechanistic studies on small models, Gemma 4 particularly, and found the hidden state for different layers carry meaningful self-awareness signal for various situations.

SO we extended the model with a 68k params probe layer (LayerNorm, low-rank projection, attention pooling, small MLP head) reads one intermediate layer during decoding and predicts p(wrong); confidence = 1 - p(wrong), returned as structured data, never parsed out of the answer text.

Across 12 hold-out benchmarks spanning text, vision and audio, the probe averages 0.814 AUROC vs 0.549 for token entropy. The result that convinced us this is real: the probe was trained on zero audio data, yet scores 0.79-0.88 AUROC on four audio benchmarks where entropy is near-random or worse (0.32-0.52). It's reading a modality-independent correctness signal from the hidden state, not memorizing patterns from its training data.

We published all weights on HuggingFace and provide copy-pase codes to run it on Transformers, MLX, Llama.cpp or Cactus. With Ollama, vLLM, SGLang etc in the works. For llama.cpp we ship a patch series you compile in once (upstreaming is planned). The code is MIT licensed; Gemma model use remains subject to the Gemma terms.

GitHub: https://github.com/cactus-compute/cactus-hybrid

Weights: https://huggingface.co/collections/Cactus-Compute/cactus-hyb...

Some caveats:

- The probe scores single-sequence decoding only, up to the first 1024 generated tokens.

- Handoff works best when routing per task in a multi-step process, not per step.

- Hierarchical routing is still in the works: try on-device, then DeepSeek v4 Flash, before Fable/GPT5.5/Gemini/Muse/Grok.

- The technique is boutique for each model, we will share each weights as they roll out.

These issues are currently being tackled at Cactus and updated weights will be shipped directly into the HuggingFace collection and GitHub repository straight up. Please let us know your thoughts, it helps us find ways to improve the design progressively.

Thanks a million!

( 44 comments | 2 points | on HN )
Re:Show HN: Cactus Hybrid: We taught Gemma 4 to know when it... by cacio-e-pepe on Wednesday July 22, 2026 @02:43PM (#49011476)
> So we did mechanistic studies on small models, Gemma 4 particularly, and found the hidden state for different layers carry meaningful self-awareness signal for various situations.

Neat! Just to make sure I understand - you trained your probe layer to take this hidden state and predict p(wrong)?

Curious to learn more. Any more info on your approach (esp the mechanistic study)?

Re:Show HN: Cactus Hybrid: We taught Gemma 4 to know when it... by HenryNdubuaku on Wednesday July 22, 2026 @04:39PM (#49013096)
Correct, the study is verbose, we will compile into a neat shareable report and publish once we solve the pending caveats. Interesting username btw haha.
Re:Show HN: Cactus Hybrid: We taught Gemma 4 to know when it... by cacio-e-pepe on Wednesday July 22, 2026 @05:46PM (#49013906)
Nice, looking forward to the report.

And thanks, huge pasta fan :)

Re:Show HN: Cactus Hybrid: We taught Gemma 4 to know when it... by HenryNdubuaku on Wednesday July 22, 2026 @07:08PM (#49014691)
anytime!
Re:Show HN: Cactus Hybrid: We taught Gemma 4 to know when it... by astrobiased on Wednesday July 22, 2026 @07:28PM (#49014892)
Is this in any way similar to Goodfire's work? https://www.goodfire.ai/research/rlfr#
Re:Show HN: Cactus Hybrid: We taught Gemma 4 to know when it... by HenryNdubuaku on Wednesday July 22, 2026 @07:34PM (#49014942)
Thats an interesting outlook, loosely similar.
Re:Show HN: Cactus Hybrid: We taught Gemma 4 to know when it... by zdw on Wednesday July 22, 2026 @08:19PM (#49015274)
Have you benched this for coding tasks, with a fallback to a larger local model, for example Qwen-3.6-27B?

Or using it for sub-tasks, where a framework with a larger primary model dispatches simpler jobs ("summarize ...", etc.) to it?

Re:Show HN: Cactus Hybrid: We taught Gemma 4 to know when it... by HenryNdubuaku on Thursday July 23, 2026 @04:10AM (#49018327)
We are currently working on larger models atm! your suggestion is cool btw
Re:Show HN: Cactus Hybrid: We taught Gemma 4 to know when it... by mncharity on Wednesday July 22, 2026 @09:16PM (#49015640)
> the hidden state for different layers carry meaningful self-awareness signal for various situations.

Is it plausible to wonder if some developer judgement feels, like maybe "the code I just wrote is clean/crufty", or "things came together smoothly/janky", might have extractable signals in some models?

If so, might one create a shopping list of desired signals to check for in a model, as with activation steering concepts, where one checks whether and how hard each concept can usefully be nudged?

Re:Show HN: Cactus Hybrid: We taught Gemma 4 to know when it... by HenryNdubuaku on Thursday July 23, 2026 @04:12AM (#49018345)
YOu are thinking along the right direction, we are going deeper into the signals.
Re:Show HN: Cactus Hybrid: We taught Gemma 4 to know when it... by olafura on Wednesday July 22, 2026 @09:17PM (#49015646)
Was actually pulling on a similar thread as I saw announcement so I integrated it just for fun. Have been only running this on my Framework Desktop but should be runnable elsewhere https://github.com/olafura/gemma-4-mic-transcribe
Re:Show HN: Cactus Hybrid: We taught Gemma 4 to know when it... by BugsJustFindMe on Wednesday July 22, 2026 @09:25PM (#49015694)
> "post-trained to know when it's wrong"

Is it also post-trained to know when it's wrong about when it's wrong?

> "Every response comes with a confidence score between 0 and 1"

How confident is it in its confidence?

Please, I'm sure that what you're doing is very neat and useful, but use other language to describe it. I beg you. You can't know when you're wrong. You can only know when you're unsure or inconsistent. You can be absolutely certain and still wrong and uncertain and still correct.

Re:Show HN: Cactus Hybrid: We taught Gemma 4 to know when it... by mistrial9 on Wednesday July 22, 2026 @09:34PM (#49015744)
IMHO this also depends on the type of assertion.. For example, one system defines three broad classes of assertion : pure opinion (I like green); factual references (the current temperature here is 20c) ; and the rest in a catch-all about "reasoned judgements"

Complex assertions and their compounded forms can be filtered by these classes fairly easily. I rarely see this referenced in general comments.

Re:Show HN: Cactus Hybrid: We taught Gemma 4 to know when it... by BugsJustFindMe on Wednesday July 22, 2026 @10:32PM (#49016135)
> pure opinion (I like green)

"I like green" is a statement of fact about what you like. "Green is good" would be an opinion. It's funny to me how often people mix the two.

> forms can be filtered by these classes fairly easily

Obviously not so easily. :)

Re:Show HN: Cactus Hybrid: We taught Gemma 4 to know when it... by mistrial9 on Wednesday July 22, 2026 @11:23PM (#49016519)
opinion is ephemeral, cannot be independently confirmed or denied; purely single viewer information sounds like not-a-fact to me

Opinion is a ghost in the machine—fleeting, unanchored, and vanishing upon inspection. It leaves no footprint for another mind to verify, no independent trail of evidence to confirm or deny its existence. To rely on such solitary perception is to drift in a void where facts do not exist; it is not merely uncertainty, but an absence of reality itself—a whisper that the universe refuses to echo back. --AI Carl Sagan

Re:Show HN: Cactus Hybrid: We taught Gemma 4 to know when it... by jurgenburgen on Thursday July 23, 2026 @02:30AM (#49017634)
It seems to me trivial to verify: just ask.
Re:Show HN: Cactus Hybrid: We taught Gemma 4 to know when it... by somenameforme on Thursday July 23, 2026 @04:03AM (#49018286)
Exactly. A fact is something that can be objectively confirmed or rejected. Exactly what a specific person likes is a fact, because it can be verified/falsified by simply asking them. An opinion, by contrast is 'Elephants are large.' The reason that's an opinion is because while it seems obviously true, it's subjective. Similarly, grass is purple with pink polka-dots is a fact. It's obviously false, but of course right/wrong has nothing to do with fact/opinion.
Re:Show HN: Cactus Hybrid: We taught Gemma 4 to know when it... by naasking on Thursday July 23, 2026 @04:43AM (#49018588)
Opinions can only be seen as facts when modelled as time series data. Verifying an opinion X at time T does not entail X at time T+1.
Re:Show HN: Cactus Hybrid: We taught Gemma 4 to know when it... by BugsJustFindMe on Thursday July 23, 2026 @12:05PM (#49023879)
What you've said is both profound and also uninteresting. _All_ statements are only valid inside the window within which their understandable context stays constant, facts or otherwise.

> "Verifying an opinion X at time T does not entail X at time T+1."

"My cat weighs 9.5 lbs" is only true within a context of a particular moment.

"1+1=2" is only true within a context of what "1" and "2" and "+" and "=" mean.

Re:Show HN: Cactus Hybrid: We taught Gemma 4 to know when it... by naasking on Friday July 24, 2026 @01:40PM (#49039145)
This seems like a very long winded way to agree with my statement that opinions can only be considered facts when modelled as time series data.
Re:Show HN: Cactus Hybrid: We taught Gemma 4 to know when it... by BugsJustFindMe on Friday July 24, 2026 @03:43PM (#49040702)
> "This seems like a very long winded way"

I think you could do without the invective.

My view is specifically thus:

> "Opinions can only be seen as facts when modelled as time series data."

Opinions can never be seen as facts, timestamps or otherwise. Only facts about opinions can be seen as facts, not the opinions themselves.

"Green is good" is never a fact regardless of whether you timestamp it. "Green is good right now" is not a fact. "Green was good yesterday" is not a fact. "BugsJustFindMe thinks green is good" is a (false) fact, "BugsJustFindMe said green is good" is a (true) fact, and neither one is an opinion at any time.

> "Verifying an opinion X at time T does not entail X at time T+1."

A constraint binding timeliness specifically to opinions is misplaced and also not extremely relevant in the context of whether something is a statement of opinion or fact.

Re:Show HN: Cactus Hybrid: We taught Gemma 4 to know when it... by naasking on Friday July 24, 2026 @04:40PM (#49041309)
An opinion is a particular subject's belief [1]. That's literally the definition. "X believes Y at time T", is a fully specified fact and completely follows from the definitions of all terms involved.

[1] a view, judgment, or appraisal formed in the mind about a particular matter, https://www.merriam-webster.com/dictionary/opinion

Re:Show HN: Cactus Hybrid: We taught Gemma 4 to know when it... by BugsJustFindMe on Friday July 24, 2026 @05:25PM (#49041763)
None of that has anything to do with whether opinions can ever be considered facts. X believes Y at T is not the same as Y at T, and a statement about an opinion is not the opinion itself. Anyway, we're going in circles now and that's uninteresting to me.
Re:Show HN: Cactus Hybrid: We taught Gemma 4 to know when it... by antonvs on Thursday July 23, 2026 @04:38AM (#49018526)
"Ephemeral" isn't relevant - a statement of fact can be true at one time and false at another.

Confirmation also is somewhat orthogonal: there can be true facts that we can't confirm.

Conventionally, "I like green" is considered a factual claim about the speaker's preferences. Even if you refuse to acknowledge it as a fact because of the restrictions you've given, that doesn't make it an opinion. It's subjective, but it's not an opinion.

Would you say that if someone is experiencing a headache, and they say "I have a headache", that that's also merely an opinion?

Re:Show HN: Cactus Hybrid: We taught Gemma 4 to know when it... by shakna on Thursday July 23, 2026 @06:20AM (#49019319)
The catch-all is a problem. We've been studying fallacies in arguments since before the time of Plato, and do not have a complete answer that always works, to prevent the logical failure.

Complex assertions and compounding arguments, can still result in circular reasoning - the petitio principii, or worse.

Most LLMs are guided by strong statements like it must do this or that. Which assumes that it won't apply the fallacy of accident, even though people regularly do. (Don't agree? Argue a definition with a BA for a day and come back to me.)

Re:Show HN: Cactus Hybrid: We taught Gemma 4 to know when it... by baq on Thursday July 23, 2026 @03:25AM (#49018009)
Interesting question and I don’t share your pessimism. Feels like it’s a matter of some plain old Bayesian stats, almost a homework assignment given all experimental data is available and known.
Re:Show HN: Cactus Hybrid: We taught Gemma 4 to know when it... by NitpickLawyer on Thursday July 23, 2026 @03:52AM (#49018206)
A few years ago, before RLVR became ubiquitous, people were using generate -> classify loops to get models to improve math reasoning. Turns out classification is sometimes easier to do and more accurate than generating coherent traces. So you'd get a model to "think step by step", then run each step (.split('/n/n')) through a classifier, and tell the model "this step might be wrong, re-check". If you're interested I could probably dig up some papers on this.

Now there might be even better ways of getting feedback, I saw some interesting trials using "J-spaces" (from Anthropic's latest research in this area). Turns out you can kinda see when the model uses deep seeded concepts in early layers, or it's "riffing on an idea" with shallow signals in those same layers. And youc an get some signal out of it, and have it re-do a step.

It's also worth mentioning that LMs are wrong in different ways from humans. It's not impossible that we'll eventually find ways of better understanding this (through mechanistic interpretation or something else) and have easy "classifiers" for "this comes from the training data" vs. "this comes from early context" (i.e. supplied materials from prompts/discovery) vs. "this comes from later tokens, likely the model doom-looped itself".

Re:Show HN: Cactus Hybrid: We taught Gemma 4 to know when it... by cmrdporcupine on Thursday July 23, 2026 @06:54AM (#49019554)
> And youc an get some signal out of it, and have it re-do a step.

Or the opposite https://arxiv.org/abs/2606.06574v1

Re:Show HN: Cactus Hybrid: We taught Gemma 4 to know when it... by htrp on Thursday July 23, 2026 @09:43AM (#49021474)
I always thought it was a pretty noisy signal, was there any empirical work showing what the SNR was in these step by step classification loops?
Re:Show HN: Cactus Hybrid: We taught Gemma 4 to know when it... by BugsJustFindMe on Thursday July 23, 2026 @10:44AM (#49022478)
None of what you've said has anything to do with correctness, only certainty. And it's funny to me in context if you're certain that the opposite is true.

> "It's also worth mentioning that LMs are wrong in different ways from humans."

This to me only shows a poor and incomplete knowledge of humans and of wrongness and its causes. If you look at all of the humans and all of the times, you find exhibitions of all the same ways of being wrong. At best you can say that some (<all) LMs are wrong in different ways than some (<all) humans at some (<all) times, but that's as good as saying that different humans are wrong in different ways than different other humans at different times.

Re:Show HN: Cactus Hybrid: We taught Gemma 4 to know when it... by pjc50 on Thursday July 23, 2026 @05:40AM (#49019018)
This is an old problem in philosophy, one that the pre-LLM systems were interested in, which got completely bypassed by the present approach. What is knowledge? It's not a simple question even for humans, we don't have a magic truth detector in the brain.

https://plato.stanford.edu/entries/knowledge-analysis/

This is why LLMs are more successful in programming than other disciplines: it's easier to assess correctness of results, through proofs, typechecking, and testing. Similarly for maths and applied maths. Much harder in the humanities.

Re:Show HN: Cactus Hybrid: We taught Gemma 4 to know when it... by embedding-shape on Thursday July 23, 2026 @06:48AM (#49019495)
> successful in programming than other disciplines

It seems successful specifically in "computer science", for "programming" which encompasses a much wider field, "successful" is still up for debate. Also, we haven't even figured out yet what "success" even means in a software development process, for some it's that the program does everything the users want, in the way they expect, for other's, it's about correctness, reliability, performance, composability, maintainability and/or a whole host of other "measures".

Re:Show HN: Cactus Hybrid: We taught Gemma 4 to know when it... by robrenaud on Wednesday July 22, 2026 @09:40PM (#49015777)
Does the model quality become degraded in other ways?
Re:Show HN: Cactus Hybrid: We taught Gemma 4 to know when it... by HenryNdubuaku on Thursday July 23, 2026 @04:10AM (#49018333)
no because we freeze the main weights and only train our added weights.
Re:Show HN: Cactus Hybrid: We taught Gemma 4 to know when it... by zamadatix on Thursday July 23, 2026 @06:23AM (#49019352)
It's impossible to add weights which degrade the quality?
Re:Show HN: Cactus Hybrid: We taught Gemma 4 to know when it... by jstanley on Thursday July 23, 2026 @06:52AM (#49019534)
Not if the new weights don't influence the old outputs.
Re:Show HN: Cactus Hybrid: We taught Gemma 4 to know when it... by zamadatix on Thursday July 23, 2026 @02:25PM (#49026010)
Aha! I thought this was feeding the confidence info back to Gemma for some reason.
Re:Show HN: Cactus Hybrid: We taught Gemma 4 to know when it... by jstummbillig on Thursday July 23, 2026 @04:17AM (#49018377)
Interesting how that once again matches human intuition: It's easier to know what you don't know, than to know what is true.
Re:Show HN: Cactus Hybrid: We taught Gemma 4 to know when it... by HenryNdubuaku on Thursday July 23, 2026 @07:57AM (#49020167)
haha, interesting analogy
Re:Show HN: Cactus Hybrid: We taught Gemma 4 to know when it... by dmrivers on Thursday July 23, 2026 @06:16AM (#49019286)
Cool idea, some feedback:

1. Consider using conformal prediction to calibrate the cutoff. Conformal prediction provides a distribution-free guarantee under exchangeability. This would let you turn your raw probe score into a threshold with a guaranteed bound on the rate of wrongly-kept on-device answers. Source: https://en.wikipedia.org/wiki/Conformal_prediction

2. The best indicators of confidence in ML come from multiple independent methods. What was the result if you combine the token entropy and verbal confidence reporting methods? Does this improve the result?

3. I noticed you didn't mention the assessment method of rerunning the model and judging whether outputs are consistent. How does that method compare in terms of AUROC?

Re:Show HN: Cactus Hybrid: We taught Gemma 4 to know when it... by HenryNdubuaku on Thursday July 23, 2026 @07:57AM (#49020163)
1. Thanks for this!

2. We combine both on Cactus; rolling entropy method helps with per-token signal for early exit, while the probe runs on complete output.

3. Users hate this in production, drains battery on edge devices, but ultimately primarily works ok-ish on 7B+ models, we will share the results too.

Re:Show HN: Cactus Hybrid: We taught Gemma 4 to know when it... by maxgashkov on Thursday July 23, 2026 @07:39AM (#49019984)
I don't really get why you need handoff if your score is accurate. If it is, and it is low for a given response, just let the harness re-run the prompt with a different seed until the score is high enough. If this approach doesn't work, your score is most likely garbage.
Re:Show HN: Cactus Hybrid: We taught Gemma 4 to know when it... by HenryNdubuaku on Thursday July 23, 2026 @07:52AM (#49020110)
Smaller models in production can produce quite interesting outputs.
Re:Show HN: Cactus Hybrid: We taught Gemma 4 to know when it... by asar on Thursday July 23, 2026 @04:27PM (#49027579)
Love what you're doing at cactus, keep it up!!