7 ms·
Gemma 4 QAT models: Optimizing compression for mobile and laptop efficiency
- minimaxir 5mo agoIt's a bit awkward to release Gemma 4 12B (https://news.ycombinator.com/item?id=48385906 https://news.ycombinator.com/item?id=48385906), and then a canonical Q4_0 Gemma 4 12B a couple days later. It's good that this post lists the expected VRAM usage for the models with Q4_0 Gemma 4 12B being 6.7GB, which will indeed fit Google's claims of fitting within 16GB comfortably, altough it confirms that only the quantized version will do so. Relatedly, in Google's newly released Edge Gallery for macOS, Gemma 4 12B is explicitly listed as unsupported due to not enough RAM even on a 16GB machine, but given the expected VRAM usage here the Q4_0 variant definitely should fit and Google should fix that.
- netdur 5mo agonot sure if I understand you, but 4Q and QAT 4Q are different
- refulgentis 5mo agoIt's super annoying when you have products that utilize these because there's...4? releases in 3 weeks? - Gemma 4 2B/4B/27BE3B/31B - Gemma 4 2B/4B/27BE3B/31B x "assistant" / MTP drafter models (i.e. multitoken prediction) - Gemma 4 12B (2 days ago? 1?) - Gemma 4 QAT 2B/4B/12B/27BE3B/31B x "assistant" models (i.e. multitoken prediction) It probably sounds silly and really whiny in the abstract. It just causes a ton of work / confusion downstream that feels unnecessary. Extremely glad for the output, not glad to have to chase it. ex. llama.cpp currently supports the originals but not the MTP predictors but there is a patch for the MTP predictors but not for the small MoE models and I think it supports the 12B but maybe not media for it yet and now we have these too and the blog says there's GGUFs (llama.cpp models) but there isn't in any of the 12? repos I clicked through. and ~every consumer-facing local LLM app is built on llama.cpp or a fork of it. Also if anyone at Google is taking feedback over to b/ or product, pleaseeee stop the "E"2B "E"4B thing, unless it's actually taking up less RAM on Android during CPU inference. I can't tell if I need to treat the 4B like an 8B (i.e. beyond most consumer hardware without a GPU) or a 4B (i.e. will run on most consumer hardware since 2021) EDIT: And, yes, the QAT 12B x mmproj does not work with llama.cpp. I'm glad there's people who have the luxury of not having to, well, actually use these and treat me as whining :) I'll need to schedule another 4-8 hours of work for the 4th time, no fun!
- ddarolfi 5mo agoThese models aren't products? They are open source ish (open weight I guess), research outputs. While the naming scheme may be confusing, it is relevant and important. I believe it's on you to understand it.
- refulgentis 5mo agoI understand it. :) And you're absolutely right to point out they aren't products - I hoped that was clear - when you're building a product with them, you end up having to do the same build loop 4 times, in this instance :)
- overfeed 5mo agoYou can stop after the first one. Choosing to repeat the process is on you, and probably because you see some benefit in using the variant(s) you build on top of.
- ddarolfi 5mo agoYes my framing was a little confusing. You were clear in that you are building products on them. I was more saying that because these gemma models are not products, and instead research outputs, the naming scheme should be more scientific rather than consumer friendly.
- sumedh 5mo ago> I believe it's on you to understand it. This is exactly why Google has 10 messenger Apps.
- nolist_policy 5mo agoGoogle released their latest messenger app 9 years ago. https://en.wikipedia.org/wiki/Google_Chat https://en.wikipedia.org/wiki/Google_Chat
- satvikpendem 5mo agoJust use Unsloth Studio it supports them all.
- Aurornis 5mo agoI'm not sure why you think it's awkward to have multiple releases. It's better to release models and variations as they're ready, not withhold them all until everything is ready to release all at once. The Q4_0 is a quantization aware training checkpoint. It's not a simple quantization of the original Gemma 4 12B.
- deleted 5mo ago[deleted]
- netdur 5mo agohad a good run with Gemma 4 E2B Unsloth 4Q: https://youtube.com/shorts/XLsAnz5aAAI https://youtube.com/shorts/XLsAnz5aAAI The E4B model doesn’t fit on my phone TPU, so it swaps to RAM, the QAT version means more accuracy, good!
- prism56 5mo agoHow do you know it swaps to ram vs on the TPU? Would be interested in testing this on my pixel.
- netdur 5mo agoBecause TPU has 2GB and weight + context needs more
- ComputerGuru 5mo agoHow were you getting anything useful out of that? We found the (unquantized!) E2B model to be completely useless at even the simplest real-world classification tasks.
- refulgentis 5mo ago@google.com'ers, there are no GGUFs (blog says there is)
- minimaxir 5mo agoIsn’t this it? https://huggingface.co/google/gemma-4-12B-it-qat-q4_0-gguf https://huggingface.co/google/gemma-4-12B-it-qat-q4_0-gguf
- refulgentis 5mo agoAh, nice, ty! My excuse is those repos were added to the collection after my comment, but perhaps not :3
- satvikpendem 5mo agoUnsloth's collection as well [0], with their results [1]. Looks like they can get very close to 100% accuracy compared to the BF16 model that is unquantized, and Unsloth's quants are better than the original Google's QAT as posted in the article. Personal I'm using the 2B model for web search and structured JSON output back via Unsloth Studio and its API, works very well for that even with the model embedded on phones. [0] https://huggingface.co/collections/unsloth/gemma-4-qat https://huggingface.co/collections/unsloth/gemma-4-qat [1] https://unsloth.ai/docs/models/gemma-4/qat#qat-analysis https://unsloth.ai/docs/models/gemma-4/qat#qat-analysis
- llmoorator 5mo agoyou misunderstand what that chart shows - it shows BF16 QAT Q4_0, not BF16 regular. meaning Google quantized the model to 4 bit and stored the result in BF16 format for compatibility and convenience to downstream packers. Like storing small 8 bit numbers in full 32 bit integers. So it's not close to 100% of unquantized BF16. I'm curious if anybody can explain why Google released 4 bit QAT Q4_0 is not exactly 100% of BF16 QAT Q4_0? seems like it should be just bit twiddling, no further quantization to convert between these two packings. Unsloth talks about "lattice alignment" being an issue. That being said I hate it that smol model makers, like Google, Qwen, ... only show the BF16 benchmarks when they release a new models, knowing that what people really run are 4-8 bit quantizations, so it's really hard to understand how much you lose when you run 4 bit vs 6 bit...
- satvikpendem 5mo agoAh I see, thanks for the clarification.
- coder543 5mo ago> meaning Google quantized the model to 4 bit and stored the result in BF16 format for compatibility and convenience to downstream packers. You also misunderstand what is happening. Google did not do that. Google further trained the original model with an objective of minimizing error when quantized to 4-bit. The BF16 QAT is not an upscaled 4-bit model. When quantized to 4-bit, it should lose less accuracy than a typical 16-bit model loses when quantized to 4-bit, but the loss is not zero, because it is not based on a 4-bit model. The Gemma 3 QAT report was a bit clearer: https://developers.googleblog.com/en/gemma-3-quantized-aware-trained-state-of-the-art-ai-to-consumer-gpus/ https://developers.googleblog.com/en/gemma-3-quantized-aware... "Instead of just quantizing the model after it's fully trained, QAT incorporates the quantization process during training. QAT simulates low-precision operations during training to allow quantization with less degradation afterwards for smaller, faster models while maintaining accuracy. Diving deeper, we applied QAT on ~5,000 steps using probabilities from the non-quantized checkpoint as targets. We reduce the perplexity drop by 54% (using llama.cpp perplexity evaluation) when quantizing down to Q4_0." The BF16 is just trained to be more resistant to simulated quantization, which helps when it is actually quantized. Google is not doing post-training on the 4-bit model directly.
- cr3cr3 5mo agoFor a moment I got excited thinking QAT is Intel Quick Assist Technology...
- razighter777 5mo agoSame I had to do a double take. Would be pretty humourous if they somehow took advantage of crypto offloading to accelerate ai inference
- somewhatrandom9 5mo agoCould these quantized models make MTP (Multi-Token Prediction) significantly faster when used as drafters for larger regular Gemma 4 models?
- dist-epoch 5mo agoGoogle already released specialized drafters for Gemma 4.
- Havoc 5mo agoThe E2B ones? Or what do you mean by specialized drafters?
- girvo 5mo agoThe “-assistant” models released by Google are specialised tiny MTP draft models :) 31b-it-assistant is what enables MTP
- int_19h 5mo agoThey have -assistant in the name, so e.g.: https://huggingface.co/google/gemma-4-31B-it-assistant https://huggingface.co/google/gemma-4-31B-it-assistant
- Havoc 5mo agoThanks
- comparedge 5mo ago[flagged]
- Pixel-Labs 5mo ago[flagged]
- deleted 5mo ago[deleted]
- simonw 5mo agoI just ran one of these locally on a Mac like this: uvx litert-lm run \ --from-huggingface-repo=litert-community/gemma-4-E2B-it-litert-lm \ gemma-4-E2B-it.litertlm \ --backend=gpu \ --prompt="Generate an SVG of a pelican riding a bicycle" The first time you run that it downloads 3.2GB to ~/.cache/huggingface/hub/models--litert-community--gemma-4-E2B-it-litert-lm It can handle audio and image input too, which is pretty cool for a 3.2GB model. For images: uvx litert-lm run \ --from-huggingface-repo=litert-community/gemma-4-E2B-it-litert-lm \ gemma-4-E2B-it.litertlm \ --backend=gpu --vision-backend gpu \ --attachment image.jpg --prompt describe And for audio: uvx litert-lm run \ --from-huggingface-repo=litert-community/gemma-4-E2B-it-litert-lm \ gemma-4-E2B-it.litertlm \ --backend=gpu --audio-backend cpu \ --attachment audio.wav --prompt transcribe (The pelican is rubbish, but it's only a 3.2GB file so the fact it even outputs valid SVG is impressive to me: https://gist.github.com/simonw/94b318afde4b1ce5ff67d4b5d036212a https://gist.github.com/simonw/94b318afde4b1ce5ff67d4b5d0362... )
- reactordev 5mo agoNot to mention the text-only 0.8GB version. Just crazy. You can have basic real-time conversations on-device that's video and audio aware now.
- simonw 5mo agoHave you seen a 0.8GB model file floating around yet? I couldn't find one earlier.
- reactordev 5mo agoI think this is the one but it’s 0.8GB VRAM not 0.8GB size. https://huggingface.co/google/gemma-4-E2B-it-qat-mobile-ct https://huggingface.co/google/gemma-4-E2B-it-qat-mobile-ct But they could be cooking up a smaller one because the model card lists the Q_4 quants as being bigger than the mobile or text-only so I think we’ll need to wait for the Q_2_Distilled_Mobile_Textformer version. Still, just amazing work.
- yalok 5mo ago
- spacebacon 5mo ago[flagged]
- WhiteDawn 5mo agoOnce someone generates a MTP layer for 26B A4B 4 QAT I'll be singing from the hills with my 5 year old GPU.
- dist-epoch 5mo agoGoogle already did https://huggingface.co/google/gemma-4-26B-A4B-it-qat-q4_0-unquantized-assistant https://huggingface.co/google/gemma-4-26B-A4B-it-qat-q4_0-un...
- dofm 5mo agoThis is safetensors. Is there any way to run these on a Mac paired with the MLX QAT? (Pardon my ignorance; this stuff moves so fast)
- thangalin 5mo agoDid you see this? https://point.free/blog/gemma-4-on-a-2016-xeon/ https://point.free/blog/gemma-4-on-a-2016-xeon/ Xeon, but could be useful for MTP on Mac.
- dofm 5mo agoI hadn't seen this, thanks. I do have the Qwen 3.6 (35B) MTP implementation running (in LM Studio; it doesn't need a separate drafter), along with non-MTP Gemma 4 26B, and I can see that Unsloth Studio can run the new QAT, but I can't see how you can run the assistant/drafter. Yet. It's just a constantly changing landscape. Don't get me wrong, it's fascinating and for various reasons I am pleased I can keep up even slightly, but eeeehhh :-)
- dofm 5mo agoTo briefly follow up, as of yesterday llama.cpp can do Gemma 4's MTP, so I have this working at least initially — details here: https://news.ycombinator.com/item?id=48441450 https://news.ycombinator.com/item?id=48441450
- 5mo ago
- redox99 5mo agoI was just testing Gemma E2B and E4B yesterday, and they are just too dumb to be useful outside of niche use cases. Besides, there's no good agent on Android. Having a model that can't run web searches and browse websites is limited in use, particularly small models that really need to be grounded on search results to be factual, because they can't memorize enough. Edit: I'd like to know what kind of usage the people that seem to disagree and downvoted this are having.
- ilaksh 5mo agoI think that's probably true for the vast majority of Android phones. But if you have a SOTA expensive beast, I wonder if Gemma 4 12B at 4 bit could work? Maybe something like a Redmagic 11 pro or OnePlus 13 running NanoClaw? But also maybe a few Qwen 3.6 or Qwen 3.5 variants can fit and can handle some simple tasks.
- redox99 5mo agoI think Gemma 4 12B is definitely possible to run on high end phones, google claims you need 16GB of memory. But it's probably not very usable, you'll need to swap most stuff other than the LLM. When I tried E2B and E4B with Google Edge Gallery, and added a web search skill from the skill list, E2B would fail (get stuck in a loop), E4B would need a very specific instruction, "weather in [city name]" would not call the web search tool, I'd need "web search weather in [city name]". And the result was completely hallucinated and impossible. It claimed 14c and feels like 4c (which is impossible), and 10% humidity (which is almost impossible in this city) Asking wikipedia level history questions (without any tool use), the results were awful as well.
- satvikpendem 5mo agoI'm running a service in production using Gemma 4 models, to get structured JSON output back from web search tool calls using Unsloth Studio and its API, but it did require a rather large and detailed system prompt and tool call healing if the format wasn't JSON for example (retries, reprompting with feeding the error back into the model, etc, this is also what Unsloth Studio does for its self-healing tool call feature). But once I did that, it's been working quite well and on benchmarks I've made, it's about 97% accurate after the first time and basically 100% accurate after retries. This is running on a server though, not sure how well it'd work on a phone, I should try that. I used AI Edge Gallery on Android and it doesn't seem too good at the web search tool but maybe the web search tool itself, being a community made tool, is pretty bad, because tool calling via Unsloth Studio seems to work just fine with the exact same Gemma models on desktop/server vs the phone.
- zkmon 5mo agoHow can the smaller Unsloth GGUF quant can beat the original google quant? (ref: unsloth/gemma-4-31B-it-qat-GGUF)
- SubiculumCode 5mo agoI may be wrong, but this is what I figured out. Google provided these quantize-ready models, but they do not come pre-quantized. However, to produce their benchmarks, they quantized their model using the standard quantization approach. Unsloth has an advanced quantization method that performs better than the standard quantization, so the evals are better for unsloth quants.
- Catloafdev 5mo agoBeing able to run the 12B on 8gb VRAM is huge. It's crazy to see how fast these small local models have evolved.
- jbarrow 5mo agoVery impressed with how much the Gemma ecosystem has advanced just this week. Gemma 12B, multitoken prediction, and official quants released. Feels like Google is putting real effort into this string of releases, and I'm very excited to see that!
- steno132 5mo agoI don't get this obsession with smaller models. I've been using Claude and GPT models for years and have had zero issues with them. I see absolutely no benefit to me as a end user for a local model which is going to take up more of my CPU and memory and slow down my machine. I almost always have Internet and if I don't then not having access to a AI model is the least of my concerns.
- adam_arthur 5mo agoThe entire universe of automation projects that can be run effectively for free relative to SoTA models? I don't think many realize that most LLM embedded automation, pipelines, products will soon be able to run extremely cheaply on models < 100B parameters. Frontier models will be used for coding/creation use cases, yes. But for all the pseudo-deterministic, pipeline, analysis style things there will be no practical benefit to running frontier models, only additional cost. Gemma 4 26B outperforms most 100-200B models that I've tested for reasoning and structured output. Gemma 4 12B can consistently select where to click on browser images given a minimal prompt, and do so very quickly.
- steno132 5mo agoPractically if you're running a small personal automation project you're not going to want to waste a lot of time configuring and tuning a local model. You want to build the automation and move on. If you're building a automation as a company you definitely won't want to take on the long term maintenance overhead of running your own models for some automation project.
- adam_arthur 5mo agoThese small models exist in the cloud and are/will be priced commensurately to their size. Your claim is effectively that companies don't care about operational/cloud costs. Even pre-LLM, companies regularly assessed and tried to pare down cloud spend.
- dofm 5mo agoThe 26B model is really surprising, and it is impressively concise — it spends a lot less time dithering than Qwen3.6.
- jhatax 5mo agoIt’s the Friday before WWDC during which Apple is going to announce an “improved” Siri based on Google models (a locked partnership, for now). Maybe it’s a coincidence, but this might be Google releasing models that will be showcased next week by Apple? No knowledge, just speculation.
- trollbridge 5mo agoMaybe Siri will become capable of doing what I can do on my Mac with llamafile and a few minutes of work...
- illusive4080 5mo agoAs an amateur app dev using on device AI: If they replace Apple Foundation model with Gemma 4 I would be so happy.
- itake 5mo agoI’m curious like what performance if we met you would expect and why?
- robgough 5mo agoI'm fully expecting an updated foundation model of some kind, but I would bet money they don't utter the words "Google", "Gemini", or "Gemma" even once.
- deleted 5mo ago[deleted]
- jack_pp 5mo agoRan hf.co/google/gemma-4-12B-it-qat-q4_0-gguf:Q4_0 with ollama on a AMD Ryzen 9 8940HX, NVIDIA GeForce RTX 5060 (8 GB), 14 GB RAM laptop and it is suprisingly fast
- Kylejeong21 5mo agogoogle pixel intelligence may beat apple intelligence
- nazgul17 5mo agoI don't see these QAT models on Edge Gallery; just the BF16 models are there. Is there anything I am missing?
- superkuh 5mo agoI wish they would release the base (non instruction tuned) models for use with pattern completion.
- llminthefor 5mo agothey did https://huggingface.co/collections/google/gemma-4 https://huggingface.co/collections/google/gemma-4
- superkuh 5mo agoAh, nice, thanks! https://huggingface.co/google/gemma-4-12B/tree/main https://huggingface.co/google/gemma-4-12B/tree/main No .gguf but I guess I can convert the safetensors myself like it's 2023 again.
- RandyOrion 5mo agoFrom the perspective of a local llm user, I think the qat doesn't solve the major problem of the gemma models. Gemma family (gen 1 to gen 4) is consistent with extreme range of activations, i.e., 600000, essentially forcing people to use bf16 kv cache and accept a short context window, e.g., 31b, iq4_xs quantization, 100k context window on 32gb memory. Or, people use q8 kv cache, 200k context window, and accept a large performance penalty. In contrast, for qwen 3.5 family, the largest activation is below 2000, making q8 or even lower-precision kv cache essentially free estates. Together with linear attention, which doesn't require kv cache, full 262k context window can be easily reached. Qat training with w4a16 target, while improving performance on inference with low-precision weighs, doesn't solve kv cache problem at all. In the end, a qat is a qat, and there are unseen efforts behind qat checkpoints. Thank you gemma team for releasing qat checkpoints.
- RandyOrion 5mo agoMore rants about local inference, consider yourself warned. Together with bf16 related deliberate hardward degrades on consumer-level nvidia gpus, i.e., gtx 10, rtx 20, 30, 40, 50 series, things gets sour really quickly.
- nicman23 5mo agothe new 4 12b model replaced qwen3.6 27b for me. the task i am doing is a bit specific, validating if a stamp has the correct name but the ones that it could not see maybe a 30 percent were easily discerned.
- taffydavid 5mo agoNoob q: can advancements like this targeted at local inference have bonus effects for cloud inference? Presumably if you can get great results on cheaper hardware that also equates to less resource usage on cutting edge hardware, and less power draw? Will advancements like this ultimately reduce the carbon footprint of AI?
- goldenarm 5mo agoConsumer and server hardware are quite different, especially Google's TPUs. They notably have much larger mixture-of-experts ratios and more complex caching systems. At such scale and inference budgets, they are incentivised to optimize as much as possible. Also Google Deepmins has a six month embargo on strategic papers, so I bet the juiciest quantization tech isn't public yet.
- arjun-mavonic 5mo agoYet to try this. But from what I heard from a friend is that Gemma 4 12b calls same tool’s repeatedly. Maybe harness can be made to handle it.
- make3 5mo agoI wonder if they're trying to just kill Anthropic and OpenAI with this, ahah. I assume that Google really doesn't care if the coding model becomes fully overtaken by free models.
- linuxhansl 5mo agoThis is really awesome. I tried my test-task (generate a Python wrapper for a fairly complex C-interface) with gemma4:26b-a4b-it-qat. And for the first time it would just do it, without prodding and without errors. (Of course Claude just did it a heartbeat, too.) My optimal local setup now is gemmma4-qat and Q8_0 K/V cache quantization with 256k context windows. And that runs fine with 12GB VRAM and another 10GB in RAM. Previously I tried with gemma4:26b-a4b-it-q4_K_M and qwen3.6:35b-a3b-q4_K_M, and they both would tie themselves into knots (especially qwen3.6 can take forever with incessant "but wait..." thinking loops.) More often than not, they would not finish the task. It seems true these 4b QAT models are as precise as Q8_0 quantization (which is supposedly indistinguishable from bf16). I am really excited about the prospect of local LLM inference.
- dofm 5mo agollama.cpp has been patched to support Gemma 4 MTP, so thanks to: https://huggingface.co/RachidAR/gemma-4-26B-A4B-it-qat-assistant-q4_0-gguf you can now do this: ./llama-server \ -hf google/gemma-4-26B-A4B-it-qat-q4_0-gguf \ --spec-draft-hf RachidAR/gemma-4-26B-A4B-it-qat-assistant-q4_0-gguf:Q4_0 \ --spec-type draft-mtp \ --spec-draft-n-max 3 Really quick on an M1 Max, definitely seeing a speedup. Though interestingly the oMLX performance with the MLX community MTP models is much worse. I am not really sure why (the parallel model overhead not being worth the speculative gain, I suppose, but I do not understand this stuff anywhere near as much as I would like).