<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Gemma on Uncle Xiang&#39;s Notebook</title>
        <link>https://ttf248.life/en/tags/gemma/</link>
        <description>Recent content in Gemma on Uncle Xiang&#39;s Notebook</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>en</language>
        <lastBuildDate>Thu, 09 Apr 2026 15:45:31 +0800</lastBuildDate><atom:link href="https://ttf248.life/en/tags/gemma/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Google has released Gemma 4 this time (III)</title>
        <link>https://ttf248.life/en/p/gemma-4-series-vram-cliff-and-mac-unified-memory/</link>
        <pubDate>Wed, 08 Apr 2026 23:56:20 +0800</pubDate>
        
        <guid>https://ttf248.life/en/p/gemma-4-series-vram-cliff-and-mac-unified-memory/</guid>
        <description>&lt;p&gt;While browsing the forum this time, what struck me most wasn&amp;rsquo;t which company released another leaderboard, but a very basic statement: &amp;ldquo;Not enough VRAM; no matter how large the parameters are, it&amp;rsquo;s useless.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Previously, I always understood &amp;ldquo;slow model&amp;rdquo; as a computational power issue. However, the more I read, the clearer it became that often, the problem isn&amp;rsquo;t that the GPU can&amp;rsquo;t compute it, but rather that the data cannot reside in the right place. Just by changing the memory path, the token speed doesn&amp;rsquo;t just slow down; it drops drastically.&lt;/p&gt;
&lt;p&gt;The previous two posts covered the preliminary issues. &lt;a class=&#34;link&#34; href=&#34;https://ttf248.life/en/p/gemma-4-series-models-and-license/&#34; &gt;First Post&lt;/a&gt; discussed the release and protocol, and &lt;a class=&#34;link&#34; href=&#34;https://ttf248.life/en/p/gemma-4-series-local-test-on-rtx-3060/&#34; &gt;Second Post&lt;/a&gt; explained why we should first look at &lt;code&gt;26B A4B&lt;/code&gt; on the 3060 12GB. This final post will only discuss how speed actually collapses.&lt;/p&gt;
&lt;h2 id=&#34;out-of-vram-and-not-just-a-little-bit-slow&#34;&gt;Out of VRAM, and Not Just a Little Bit Slow
&lt;/h2&gt;&lt;p&gt;When you break down the process of inference, there are two particularly critical components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Model weights&lt;/li&gt;
&lt;li&gt;KV cache&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The weights define the model itself, while the KV cache records the state of previous tokens. The longer the context, the larger the KV cache. As long as both these parts can be stably kept in the GPU VRAM, generating a token basically involves reading data, performing calculations, and writing back results within high-bandwidth memory, and the speed is usually quite good.&lt;/p&gt;
&lt;p&gt;The real problem is when you run out of VRAM.
Once it doesn&amp;rsquo;t fit, the inference framework has to compromise:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Storing some weights in system memory&lt;/li&gt;
&lt;li&gt;Or storing some KV cache in system memory&lt;/li&gt;
&lt;li&gt;Or even shuttling data back and forth between the CPU and GPU&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;At this point, the issue is no longer about &amp;ldquo;a little bit of extra computation,&amp;rdquo; but rather &amp;ldquo;waiting for data with every single token.&amp;rdquo;&lt;/p&gt;
&lt;h2 id=&#34;why-the-cliff-not-a-linear-slowdown&#34;&gt;Why the Cliff, Not a Linear Slowdown
&lt;/h2&gt;&lt;p&gt;When many people first encounter this pitfall, their intuition is that if the model goes from &lt;code&gt;14B&lt;/code&gt; to &lt;code&gt;31B&lt;/code&gt;, it will just be more than twice as slow, which they can tolerate.&lt;/p&gt;
&lt;p&gt;Reality is not like that.&lt;/p&gt;
&lt;p&gt;The real dividing line isn&amp;rsquo;t doubling the parameters; it&amp;rsquo;s whether or not the working set crosses the VRAM boundary.&lt;/p&gt;
&lt;p&gt;As long as it hasn&amp;rsquo;t crossed, increasing model size usually results in a predictable slowdown.&lt;/p&gt;
&lt;p&gt;Once it crosses, the system state changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Previously, it was an &amp;ldquo;on-chip closed loop&amp;rdquo; within VRAM.&lt;/li&gt;
&lt;li&gt;Now, it becomes &amp;ldquo;VRAM + System RAM + Bus Transfer.&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Changing the path completely changes the cost. This is especially true during the decoding stage, which inherently proceeds token by token with a small batch size. At this point, what is most feared is having every single token wait for a batch of data to be transferred across devices.&lt;/p&gt;
&lt;p&gt;So, you see a very typical phenomenon:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The model isn&amp;rsquo;t unable to run.&lt;/li&gt;
&lt;li&gt;The GPU isn&amp;rsquo;t completely idle either.&lt;/li&gt;
&lt;li&gt;But the tokens/s rate is extremely poor.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is what people call the &amp;ldquo;cliff.&amp;rdquo; It&amp;rsquo;s not that the model suddenly got dumber; it&amp;rsquo;s that the memory path suddenly became inefficient.&lt;/p&gt;
&lt;h2 id=&#34;why-26b-a4b-is-friendlier-to-local-players&#34;&gt;Why &lt;code&gt;26B A4B&lt;/code&gt; is Friendlier to Local Players
&lt;/h2&gt;&lt;p&gt;This also explains why I have consistently favored &lt;code&gt;26B A4B&lt;/code&gt; in my previous article.
Its total parameter count is certainly not small, but only about &lt;code&gt;3.8B&lt;/code&gt; are actually activated per token. This means that under similar deployment conditions, the pressure it puts on computation and VRAM paths is often easier to control compared to dense large models.
This isn&amp;rsquo;t magic.
If your context window gets too long, or if quantization and framework support are inadequate, it will struggle just like any other model. However, compared to a dense model that immediately maxes out the entire VRAM, &lt;code&gt;26B A4B&lt;/code&gt; feels more like a realistic path for consumer-grade GPUs.
So, often the issue isn&amp;rsquo;t whether &lt;code&gt;31B&lt;/code&gt; is weak, but rather which model is better suited for long-term coexistence with local hardware.&lt;/p&gt;
&lt;h2 id=&#34;why-macs-seem-less-prone-to-running-out-of-memory&#34;&gt;Why Macs seem &amp;ldquo;less prone to running out of memory&amp;rdquo;
&lt;/h2&gt;&lt;p&gt;What&amp;rsquo;s most different about Mac is not the model, but the memory architecture.
&lt;code&gt;Apple silicon&lt;/code&gt; uses unified memory. The CPU and GPU share a single pool of memory, unlike dedicated graphics machines where there are separate VRAM and main memory that have to be moved across a bus.
The biggest advantage of this structure is that many models which would &amp;ldquo;not fit in VRAM at all&amp;rdquo; on dedicated graphics machines can take on a different state on Mac:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;It might not be fast,&lt;/li&gt;
&lt;li&gt;But it can probably fit into the memory first.
In other words, Macs are less likely to hit that very rigid &amp;ldquo;VRAM wall&amp;rdquo; right from the start.
This is why many people feel that Macs are particularly suitable for running large models locally as a fallback option. It solves the problem of &amp;ldquo;whether the entire working set can be loaded into the same memory pool.&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;but-unified-memory-doesnt-mean-high-speed-for-you&#34;&gt;But Unified Memory Doesn&amp;rsquo;t Mean High Speed for You
&lt;/h2&gt;&lt;p&gt;You must look at this part separately.
What did unified memory solve?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;It solved the hard separation between dedicated VRAM and main memory.&lt;/li&gt;
&lt;li&gt;It solved many cases where models couldn&amp;rsquo;t fit directly onto cards with small VRAM.&lt;/li&gt;
&lt;li&gt;It solved some very ugly cross-device data transfers.
But what didn&amp;rsquo;t it solve?&lt;/li&gt;
&lt;li&gt;It didn&amp;rsquo;t change large model inference from &amp;ldquo;massive memory reads&amp;rdquo; to something else.&lt;/li&gt;
&lt;li&gt;It didn&amp;rsquo;t make large models suddenly stop being bandwidth-hungry.&lt;/li&gt;
&lt;li&gt;It didn&amp;rsquo;t automatically give all inference frameworks the mature ecosystem of CUDA.
So, the comfort of Mac is not the same thing as the speed of a high-VRAM NVIDIA card.
Mac is more like:&lt;/li&gt;
&lt;li&gt;Quiet machine operation&lt;/li&gt;
&lt;li&gt;Large total memory&lt;/li&gt;
&lt;li&gt;Unified architecture&lt;/li&gt;
&lt;li&gt;Finally allowing models that previously wouldn&amp;rsquo;t fit to run first.
NVIDIA&amp;rsquo;s high-VRAM card is more like:&lt;/li&gt;
&lt;li&gt;Mature ecosystem&lt;/li&gt;
&lt;li&gt;Complete CUDA toolchain&lt;/li&gt;
&lt;li&gt;When you truly keep the model and cache on the GPU, speed can be much easier to boost.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;why-speed-ultimately-depends-on-nvidias-large-vram&#34;&gt;Why Speed Ultimately Depends on NVIDIA&amp;rsquo;s Large VRAM
&lt;/h2&gt;&lt;p&gt;This is not an emotional judgment, but a practical conclusion drawn after wrestling with local deployment.
If you are pursuing these things:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Local assistant always running&lt;/li&gt;
&lt;li&gt;Multi-turn long conversations&lt;/li&gt;
&lt;li&gt;Long context windows&lt;/li&gt;
&lt;li&gt;Higher token/s rate&lt;/li&gt;
&lt;li&gt;Minimizing waiting time as much as possible
Then ultimately, the large VRAM NVIDIA card is what matters. Because what you are truly buying is the ability to keep the model and cache stably on the GPU.
Mac also works, but it is better suited for a different set of requirements:&lt;/li&gt;
&lt;li&gt;I want a machine that can load an even larger model into it first.&lt;/li&gt;
&lt;li&gt;I accept average speed, but I don&amp;rsquo;t want to mess with drivers and peripherals.&lt;/li&gt;
&lt;li&gt;I care more about overall experience, power consumption, and noise.
Both paths are reasonable; they just solve different problems.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;back-to-gemma-4-my-final-verdict&#34;&gt;Back to Gemma 4, My Final Verdict
&lt;/h2&gt;&lt;p&gt;This time with &lt;code&gt;Gemma 4&lt;/code&gt;, I really feel that local open-source models have reached a stage where hardware discussion is more warranted.
But just because the model gets stronger doesn&amp;rsquo;t mean the laws of physics loosen up accordingly.
No matter how strong the &lt;code&gt;31B&lt;/code&gt; model is, it will slow down if VRAM is insufficient.
Even with the practical &lt;code&gt;26B A4B&lt;/code&gt;, long contexts still put pressure on the system.
And while Apple&amp;rsquo;s unified memory is comfortable, it only makes it easier to &amp;ldquo;get something running&amp;rdquo;; it won&amp;rsquo;t give you the speed of a large VRAM CUDA card for free.
So, I&amp;rsquo;ll end with this rather blunt summary:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;For &lt;strong&gt;speed&lt;/strong&gt;, prioritize NVIDIA with large VRAM.&lt;/li&gt;
&lt;li&gt;For &lt;strong&gt;reliability/fallback&lt;/strong&gt;, Mac&amp;rsquo;s unified memory is indeed comfortable.&lt;/li&gt;
&lt;li&gt;If you plan to run on hardware like the &lt;code&gt;3060 12GB&lt;/code&gt; long-term, don&amp;rsquo;t always aim for dense, massive models; a path like &lt;code&gt;26B A4B&lt;/code&gt; is more realistic.
With this set of articles, I will wrap up here.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;references&#34;&gt;References
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://blog.google/innovation-and-ai/technology/developers-tools/gemma-4/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Gemma 4: Byte for byte, the most capable open models&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://ai.google.dev/gemma/docs/core/model_card_4&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Gemma 4 model card&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.apple.com/newsroom/2023/10/apple-unveils-m3-m3-pro-and-m3-max-the-most-advanced-chips-for-a-personal-computer/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Apple unveils M3, M3 Pro, and M3 Max&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.apple.com/newsroom/2023/01/apple-unveils-m2-pro-and-m2-max-next-generation-chips-for-next-level-workflows/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Apple unveils M2 Pro and M2 Max&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.apple.com/macbook-pro/specs/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;MacBook Pro Tech Specs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;writing-notes&#34;&gt;Writing Notes
&lt;/h2&gt;&lt;h3 id=&#34;original-prompt&#34;&gt;Original Prompt
&lt;/h3&gt;&lt;pre&gt;&lt;code class=&#34;language-text&#34;&gt;$blog-writer Google has released the Gemma4 model after a year. As usual, I&#39;m trying to deploy it locally on that old desktop with an unupgraded NVIDIA 3060 12GB graphics card. This time I caught the initial release, but I couldn&#39;t find an upgraded version of the commonly used Gemma3. However, there is a similar version called GemmaE4b. Please first search and introduce all the models released this time, what the letters in their abbreviations mean, and then search for online reviews about Gemma4. The key point is that Google updated the model&#39;s protocol this time, so the restrictions for users are fewer. The biggest surprise: my usual test question—write a piece of C++ code to output a five-pointed star in the console. Last year&#39;s smaller parameter open-source models couldn&#39;t handle this problem, but Google managed it this time. In the first version, it gave the answer, completely exceeding my expectations. It knew about my trap; outputting a five-pointed star to the console is very difficult, so it directly hardcoded a string of a five-pointed star for direct console output. This is the original text: Because drawing a five-pointed star with precise geometric structure using mathematical logic in a pure text console (Console) is very complex (involving coordinate system transformation and pixel filling), the most classic and visually best method is to use ASCII Art. After I forced it to perform calculations, it also managed it through mathematical calculation, successfully drawing the five-pointed star. Previously, I often used Gemma4 for local translation tasks; many multilingual versions of historical articles on current blogs are like this. The model used for local testing: gemma-4-26b-a4b. The 31b version is indeed too slow. But looking at the reviews, the 31b effect is very good, and its ranking performance is excellent. While browsing forums, I realized that if the VRAM is insufficient and the model parameters are increased, the token generation speed will drop drastically. Can you explain why? Macs don&#39;t have this problem because they use unified memory; please explain the technical reason. Also, if speed is required, then an NVIDIA card with large VRAM is still necessary. The Mac solution can serve as a fallback, but it cannot match the speed. This content is very extensive; please evaluate whether it should be split into a series of articles.
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&#34;writing-outline-summary&#34;&gt;Writing Outline Summary
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;The third article will only retain the two threads: &amp;ldquo;Why speed collapses&amp;rdquo; and &amp;ldquo;Why Mac does not equal fast,&amp;rdquo; without revisiting the content of the previous two articles.&lt;/li&gt;
&lt;li&gt;Start by discussing VRAM limitations, then move to non-linear slowdowns; this logic is smoother than the previous version.&lt;/li&gt;
&lt;li&gt;Mac and Nvidia will be discussed as two different dimensions—one focusing on reliability/fallback, and one focusing on speed.&lt;/li&gt;
&lt;li&gt;The conclusion will only retain hardware judgment, without repeating the explanation of why series separation occurred.&lt;/li&gt;
&lt;/ul&gt;</description>
        </item>
        <item>
        <title>Google released Gemma 4 this time (Part II)</title>
        <link>https://ttf248.life/en/p/gemma-4-series-local-test-on-rtx-3060/</link>
        <pubDate>Wed, 08 Apr 2026 23:52:20 +0800</pubDate>
        
        <guid>https://ttf248.life/en/p/gemma-4-series-local-test-on-rtx-3060/</guid>
        <description>&lt;p&gt;If you only look at the leaderboard, &lt;code&gt;31B&lt;/code&gt; is definitely the most eye-catching.
But when you actually get the machine out, it&amp;rsquo;s still that un-upgraded &lt;code&gt;RTX 3060 12GB&lt;/code&gt;, and your judgment will change immediately. How should I put it? For local deployment, in the end, it&amp;rsquo;s not about who looks the fanciest, but who seems like the one you can live with long-term. For me, what is truly worth running first this time isn&amp;rsquo;t &lt;code&gt;31B&lt;/code&gt;, but &lt;code&gt;26B A4B&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The previous article &lt;a class=&#34;link&#34; href=&#34;https://ttf248.life/en/p/gemma-4-series-models-and-license/&#34; &gt;Google released Gemma 4 (Part 1): Don&amp;rsquo;t rush to local deployment; you need to understand the model and protocol first&lt;/a&gt; covered the release and protocols. This current article only talks about the local experience itself; the last one continues with &lt;a class=&#34;link&#34; href=&#34;https://ttf248.life/en/p/gemma-4-series-vram-cliff-and-mac-unified-memory/&#34; &gt;Google released Gemma 4 (Part 3): Why does running out of VRAM cause a cliff, and why can Mac act as a fallback but is slow&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;why-i-ran-26b-a4b-first&#34;&gt;Why I ran &lt;code&gt;26B A4B&lt;/code&gt; first
&lt;/h2&gt;&lt;p&gt;The reason is actually quite basic: it&amp;rsquo;s about hardware reality.
While &lt;code&gt;31B&lt;/code&gt; is certainly powerful, and the official leaderboards and initial community feedback have been very strong. However, if you run it on a machine like a &lt;code&gt;3060 12GB&lt;/code&gt;, the issue immediately shifts from &amp;ldquo;Is it powerful?&amp;rdquo; to &amp;ldquo;Is it worth waiting for?&amp;rdquo;. Once the model and cache start offloading to system memory, the speed can easily collapse. I will cover this in detail in a third article.
&lt;code&gt;26B A4B&lt;/code&gt; is different.
Although its total parameters are &lt;code&gt;25.2B&lt;/code&gt;, only about &lt;code&gt;3.8B&lt;/code&gt; are actually activated per token. Simply put, it&amp;rsquo;s the one in Gemma 4 that feels most &amp;ldquo;designed for local users.&amp;rdquo;
So, if your machine is similar to mine—an older consumer-grade card—here is a straightforward way to decide:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;If you want to see benchmark scores, go with &lt;code&gt;31B&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;If you plan to use it locally in the long term, start with &lt;code&gt;26B A4B&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;the-five-point-star-problem-someone-finally-understood-my-trap-this-time&#34;&gt;The Five-Point Star Problem: Someone Finally Understood My Trap This Time
&lt;/h2&gt;&lt;p&gt;I have always had a rather basic test question: asking the model to write a piece of &lt;code&gt;C++&lt;/code&gt; code that outputs a five-pointed star to the console.&lt;/p&gt;
&lt;p&gt;This problem might look like a joke, but it&amp;rsquo;s actually quite tricky. Many models tend to interpret it as a pure mathematical drawing problem, and then they start talking about coordinates, trigonometric functions, and loops, ultimately outputting a mess of characters in the plain text console that is completely unreadable.&lt;/p&gt;
&lt;p&gt;Last year, many small-parameter open-source models failed at this point.&lt;/p&gt;
&lt;p&gt;My first reaction to &lt;code&gt;Gemma 4&lt;/code&gt; this time was actually quite surprising. It didn&amp;rsquo;t rush to pretend it understood; instead, it first identified the constraints and provided this judgment:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Since drawing a five-pointed star with precise geometric structure directly using mathematical logic in a plain text console (Console) is very complex (involving coordinate system transformation and pixel filling), the most classic and visually effective method is to use ASCII Art.&lt;/p&gt;&lt;/blockquote&gt;
&lt;h2 id=&#34;regarding-the-five-pointed-star-problem-someone-finally-understood-my-trap-this-time&#34;&gt;Regarding the Five-Pointed Star Problem, Someone Finally Understood My Trap This Time
&lt;/h2&gt;&lt;p&gt;To put it plainly, they first understood the environmental constraints behind the problem. The console is not a canvas, and the character grid is not a pixel grid. You must first figure out &amp;ldquo;how to stably output a five-pointed star,&amp;rdquo; before discussing mathematical drawing.
Then, in its first version, it directly provided a hardcoded string for the five-pointed star.
This action was very on point. It wasn&amp;rsquo;t about showing off derivations; it was about getting the problem solved correctly first.&lt;/p&gt;
&lt;h2 id=&#34;what-surprised-me-even-more-is-that-it-could-continue-further&#34;&gt;What surprised me even more is that it could continue further.
&lt;/h2&gt;&lt;p&gt;If it had only stopped at ASCII Art, this problem would have only shown that it recognized the trap.
What really impressed me was that when I continued to ask it to perform mathematical calculations afterward, it didn&amp;rsquo;t falter; instead, it was able to proceed logically, mapping the geometric relationships onto a character grid and finally calculating the pentagram.
This demonstrates not just &amp;ldquo;it can write some code,&amp;rdquo; but rather that it understands this problem has two layers:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The first layer: What is the most stable answer for the console?&lt;/li&gt;
&lt;li&gt;The second layer: If you insist on doing calculations, how do you reduce a geometric problem onto a character grid?
Previously, many local small models would jump straight to the second layer and fail at the first. &lt;code&gt;Gemma 4&lt;/code&gt; reversed this approach this time; it first identified the boundaries and then decided on the solution method.
I think this is more valuable than any single benchmark score.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;this-coding-improvement-isnt-just-about-being-smarter&#34;&gt;This Coding Improvement Isn&amp;rsquo;t Just About Being &amp;ldquo;Smarter&amp;rdquo;
&lt;/h2&gt;&lt;p&gt;The reason this five-star problem is so useful is that it doesn&amp;rsquo;t just test syntax.
What it truly tests is:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The ability to first understand the output environment.&lt;/li&gt;
&lt;li&gt;The ability to admit when an intuitive solution is inappropriate.&lt;/li&gt;
&lt;li&gt;The ability to switch between achieving &amp;ldquo;optimal presentation effect&amp;rdquo; and fulfilling &amp;ldquo;user-mandated calculation.&amp;rdquo;
Once a model can solve this type of problem correctly, it indicates that the model is starting to act more like a development assistant capable of handling real-world constraints, rather than just one that completes code snippets.
This is also why my first impression of &lt;code&gt;Gemma 4&lt;/code&gt; is much better than last year&amp;rsquo;s batch of smaller open models. Many models from last year were good at chatting, completing, and getting by, but when faced with a problem that had even slight boundary conditions, they tended to show their limitations.
At least Google has addressed this weakness this time.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;translating-this-line-cannot-simply-be-stated-as-gemma-4-completely-replaces-everything&#34;&gt;Translating this line cannot simply be stated as &amp;ldquo;Gemma 4 completely replaces everything&amp;rdquo;
&lt;/h2&gt;&lt;p&gt;You brought up a very key point earlier: previously, people often used &lt;code&gt;Gemma&lt;/code&gt; for local translation.
The transition to &lt;code&gt;Gemma 4&lt;/code&gt; isn&amp;rsquo;t actually that linear. This is because Google released &lt;code&gt;TranslateGemma&lt;/code&gt; separately in February 2026, and it was built on the architecture of &lt;code&gt;Gemma 3&lt;/code&gt;.
What does this mean?
It means that if your existing local translation pipeline is already working smoothly, you don&amp;rsquo;t necessarily have to switch everything over to &lt;code&gt;Gemma 4&lt;/code&gt; in the short term. Especially for scenarios with very specific goals—like only needing stable multilingual conversion—a dedicated translation model still has its value.
However, if what you want is a single local model that can reasonably handle translation, Q&amp;amp;A, code, and general text tasks, then a more versatile route like &lt;code&gt;26B A4B&lt;/code&gt; is smoother.
It might not be the most specialized one, but it&amp;rsquo;s more like choosing the &amp;ldquo;good enough main model to get running first&amp;rdquo; option in a real-world scenario.&lt;/p&gt;
&lt;h2 id=&#34;why-i-dont-want-to-keep-praising-31b-in-the-second-article&#34;&gt;Why I Don&amp;rsquo;t Want to Keep Praising &lt;code&gt;31B&lt;/code&gt; in the Second Article
&lt;/h2&gt;&lt;p&gt;It&amp;rsquo;s not that &lt;code&gt;31B&lt;/code&gt; is bad; quite the opposite, it&amp;rsquo;s &lt;em&gt;too&lt;/em&gt; good, which makes it easy to get distracted.
If you keep focusing on the leaderboard performance of &lt;code&gt;31B&lt;/code&gt;, it&amp;rsquo;s easy to write this article as &amp;ldquo;Strong models are truly strong.&amp;rdquo; But what local deployment fears most is exactly that kind of talk. Because what truly determines whether you will continue using it every day isn&amp;rsquo;t the leaderboard, but rather:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Is the startup too slow?&lt;/li&gt;
&lt;li&gt;Does the response speed drop severely?&lt;/li&gt;
&lt;li&gt;Does long context quickly ruin the experience?&lt;/li&gt;
&lt;li&gt;Can your own machine actually handle it?
On a machine like the &lt;code&gt;3060 12GB&lt;/code&gt;, these practical issues are much more important than the leaderboard.
So, my conclusion for the second article is simple.
&lt;code&gt;31B&lt;/code&gt; is worth looking at; &lt;code&gt;26B A4B&lt;/code&gt; is worth using. For local players, these two statements are not the same thing.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;my-initial-local-conclusion&#34;&gt;My Initial Local Conclusion
&lt;/h2&gt;&lt;p&gt;If I had to summarize my experience from this test in one sentence, it would be:
&lt;code&gt;Gemma 4&lt;/code&gt; finally feels like a local model that understands context/scenarios.
Especially the &lt;code&gt;26B A4B&lt;/code&gt;. It might not be the model best for showing off on leaderboards, but under real-world constraints—like older hardware, consumer-grade GPUs, and long-term local use—it actually feels more like the true workhorse choice.
At least with this five-star test, Google has passed.&lt;/p&gt;
&lt;h2 id=&#34;references&#34;&gt;References
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://blog.google/innovation-and-ai/technology/developers-tools/gemma-4/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Gemma 4: Byte for byte, the most capable open models&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://ai.google.dev/gemma/docs/core/model_card_4&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Gemma 4 model card&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/google/gemma-4-26B-A4B-it&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;google/gemma-4-26B-A4B-it on Hugging Face&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://developers.googleblog.com/introducing-gemma3/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Gemma 3: The Developer Guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://blog.google/innovation-and-ai/technology/developers-tools/translategemma/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;TranslateGemma: A new family of open translation models&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://foodtruckbench.com/blog/gemma-4-31b&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Gemma 4 31B on FoodTruck Bench&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;writing-notes&#34;&gt;Writing Notes
&lt;/h2&gt;&lt;h3 id=&#34;original-prompt&#34;&gt;Original Prompt
&lt;/h3&gt;&lt;pre&gt;&lt;code class=&#34;language-text&#34;&gt;$blog-writer Google has released the Gemma4 model after a year. As usual, I&#39;m trying to deploy it locally on that old desktop with an unupgraded NVIDIA 3060 12GB graphics card. This time I caught the initial release, but I couldn&#39;t find an upgraded version of the commonly used Gemma3. However, there is a similar version called GemmaE4b. Please search and introduce all the models released this time, what the abbreviation letters mean in them, and then search for online reviews about Gemma4. The key point is that Google updated the model&#39;s protocol this time, and the restrictions for users are fewer. The biggest surprise: my usual test question—write a piece of C++ code to output a five-pointed star in the console. Last year&#39;s smaller open-source models couldn&#39;t handle this problem, but Google managed it this time. In the first version, it gave an answer that completely exceeded my expectations; it knew about my trap. Outputting a five-pointed star to the console is very tricky, so it directly hardcoded a string for the five-pointed star, which was outputted directly to the console. This is the original text: Because drawing a five-pointed star with precise geometric structure using mathematical logic in a pure text console (Console) is very complex (involving coordinate system transformation and pixel filling), the most classic and visually best method is to use ASCII Art. After I forced it to perform calculations, it also succeeded through mathematical calculation, successfully drawing the five-pointed star. Previously, I often used Gemma4 for local translation tasks; many multilingual versions of historical articles on current blogs are like this. The model used for local testing: gemma-4-26b-a4b. The 31b version is indeed too slow. But looking at the reviews, the 31b effect is very good, and its ranking performance is excellent. Also, while browsing forums, I realized that if the VRAM is insufficient and the model parameters are increased, the token generation speed will drop drastically. Can you explain why? Macs don&#39;t have this problem because they use unified memory; please explain the technical reason. Furthermore, if speed is required, only an NVIDIA card with large VRAM will do. The Mac solution can serve as a fallback, but it cannot match the speed. This content is very extensive; please evaluate whether it should be split into a series of articles.
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&#34;writing-outline-summary&#34;&gt;Writing Outline Summary
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;The second article will only retain the local experience, and will no longer summarize the first article or explain VRAM principles for the third one.&lt;/li&gt;
&lt;li&gt;First provide the hard judgment on &amp;ldquo;why run 26B A4B first,&amp;rdquo; then expand with the five-star test.&lt;/li&gt;
&lt;li&gt;The five-star question is treated as the main axis because it better illustrates the boundary sense in coding scenarios than benchmark scores.&lt;/li&gt;
&lt;li&gt;The translation task will be given its own section to avoid making &lt;code&gt;Gemma 4&lt;/code&gt; seem like a linear successor to all previous processes.&lt;/li&gt;
&lt;/ul&gt;</description>
        </item>
        <item>
        <title>Google has released Gemma 4 this time (Part 1)</title>
        <link>https://ttf248.life/en/p/gemma-4-series-models-and-license/</link>
        <pubDate>Wed, 08 Apr 2026 23:48:20 +0800</pubDate>
        
        <guid>https://ttf248.life/en/p/gemma-4-series-models-and-license/</guid>
        <description>&lt;p&gt;On the day of the initial release, what I originally wanted to do was simple: find an upgraded version corresponding to &lt;code&gt;Gemma 3&lt;/code&gt; and download it to run.
However, after looking around, I was a bit stunned. The familiar naming convention of &lt;code&gt;4B / 12B / 27B&lt;/code&gt; is gone; instead, we have &lt;code&gt;E4B&lt;/code&gt;, &lt;code&gt;26B A4B&lt;/code&gt;, and &lt;code&gt;31B&lt;/code&gt;. How should I put it? This time, what Google truly changed wasn&amp;rsquo;t just the model sizes, but even &amp;ldquo;how you should understand this batch of models.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve broken down these articles into three parts. This current article only clarifies the release information, model names, and protocols; the next one will cover &lt;a class=&#34;link&#34; href=&#34;https://ttf248.life/en/p/gemma-4-series-local-test-on-rtx-3060/&#34; &gt;Google Released Gemma 4 (Part II): Running Locally on a 3060 12GB, 26B A4B is More Realistic&lt;/a&gt;; and the last one will conclude with &lt;a class=&#34;link&#34; href=&#34;https://ttf248.life/en/p/gemma-4-series-vram-cliff-and-mac-unified-memory/&#34; &gt;Google Released Gemma 4 (Part III): Why VRAM Insufficiency Causes a Cliff, and Why Mac Can Be a Fallback But Isn&amp;rsquo;t Fast&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;lets-first-clarify-what-was-actually-released-this-time&#34;&gt;Let&amp;rsquo;s first clarify what was actually released this time
&lt;/h2&gt;&lt;p&gt;Last year, &lt;code&gt;Gemma 3&lt;/code&gt; was released on March 12, 2025, and this &lt;code&gt;Gemma 4&lt;/code&gt; was released on April 2, 2026. It is indeed about a year apart.
However, we cannot approach this by asking, &amp;ldquo;Who is the next generation after 27B.&amp;rdquo; The four main sizes provided by the official source are no longer simply categorized by total parameters.
| &lt;code&gt;E2B&lt;/code&gt; | Dense | 2.3B effective, 5.1B including embeddings, 128K context | On-device, ultra-lightweight local |&lt;/p&gt;
&lt;h2 id=&#34;clarify-what-was-actually-released-this-time&#34;&gt;Clarify what was actually released this time
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Model&lt;/th&gt;
          &lt;th&gt;Structure&lt;/th&gt;
          &lt;th&gt;Key Numbers&lt;/th&gt;
          &lt;th&gt;Typical Scenarios&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;E4B&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Dense&lt;/td&gt;
          &lt;td&gt;4.5B effective, 8B including embeddings, 128K context&lt;/td&gt;
          &lt;td&gt;The original 4B small model main line&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;clarify-what-was-actually-released-this-time-1&#34;&gt;Clarify what was actually released this time
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Model&lt;/th&gt;
          &lt;th&gt;Structure&lt;/th&gt;
          &lt;th&gt;Key Numbers&lt;/th&gt;
          &lt;th&gt;Typical Scenarios&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;26B A4B&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;MoE&lt;/td&gt;
          &lt;td&gt;25.2B total, approx. 3.8B active, 256K context&lt;/td&gt;
          &lt;td&gt;Consumer GPUs, local deployment, balancing quality and speed&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;clarify-what-was-actually-released-this-time-2&#34;&gt;Clarify what was actually released this time
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Model Size&lt;/th&gt;
          &lt;th&gt;Structure&lt;/th&gt;
          &lt;th&gt;Key Numbers&lt;/th&gt;
          &lt;th&gt;Typical Scenarios&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;31B&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Dense&lt;/td&gt;
          &lt;td&gt;30.7B dense, 256K context&lt;/td&gt;
          &lt;td&gt;Aiming for the upper limit, leaderboards, and more stable quality&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;lets-clarify-what-was-actually-released-this-time&#34;&gt;Let&amp;rsquo;s clarify what was actually released this time
&lt;/h2&gt;&lt;p&gt;If you only look at the surface, you might feel that the naming is more confusing. But it&amp;rsquo;s not random; Google is deliberately splitting the three tracks:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Small model for on-device use, given to &lt;code&gt;E2B / E4B&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Local player track, given to &lt;code&gt;26B A4B&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Quality and upper limit track, given to &lt;code&gt;31B&lt;/code&gt;
This is also why many people&amp;rsquo;s first impression might be, &amp;ldquo;The previously familiar upgrade path has been broken.&amp;rdquo; It&amp;rsquo;s not that they didn&amp;rsquo;t release an upgraded version; it&amp;rsquo;s that Google doesn&amp;rsquo;t want to sell products based on just one dimension: total parameters.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;e-and-a-are-not-decorative-letters-this-time&#34;&gt;&amp;lsquo;E&amp;rsquo; and &amp;lsquo;A&amp;rsquo; are not decorative letters this time
&lt;/h2&gt;&lt;p&gt;In this batch of names, the most confusing ones are &lt;code&gt;E4B&lt;/code&gt; and &lt;code&gt;A4B&lt;/code&gt;.
The &amp;lsquo;E&amp;rsquo; in &lt;code&gt;E2B&lt;/code&gt; and &lt;code&gt;E4B&lt;/code&gt; stands for &lt;code&gt;effective parameters&lt;/code&gt;, according to the official documentation. Because these two models use &lt;code&gt;Per-Layer Embeddings&lt;/code&gt;, the total parameter count and the actual effective parameter count are not measured by the same metric. Simply put, Google is reminding you that this is not like the old &amp;ldquo;a simple 4B dense model.&amp;rdquo;
The &amp;lsquo;A&amp;rsquo; in &lt;code&gt;26B A4B&lt;/code&gt; stands for &lt;code&gt;active parameters&lt;/code&gt;. The total size is &lt;code&gt;25.2B&lt;/code&gt;, but only about &lt;code&gt;3.8B&lt;/code&gt; are actually activated per token. This is key to the MoE approach: the total model size is large, but the part that actually participates in computation at runtime is much smaller.
So, even though both names seem to have a &amp;lsquo;4B&amp;rsquo;, their meanings are completely different:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;E4B&lt;/code&gt; is for the small model line.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;26B A4B&lt;/code&gt; is a large MoE with &amp;ldquo;activation scale of around 4B&amp;rdquo; during local inference.
This naming convention was indeed awkward at first, but it is closer to the actual deployment experience than before.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;if-you-previously-used-gemma-3-how-to-find-the-corresponding-relationship-this-time&#34;&gt;If you previously used Gemma 3, how to find the corresponding relationship this time
&lt;/h2&gt;&lt;p&gt;I think the easiest place to misjudge with this generation is to treat it as a linear upgrade from &lt;code&gt;Gemma 3&lt;/code&gt;.
If you look at it based on usage habits, you can roughly understand it like this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Those who used to focus on &lt;code&gt;4B&lt;/code&gt; for light tasks should now first look at &lt;code&gt;E4B&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Those who used to focus on &lt;code&gt;27B&lt;/code&gt; to see the model&amp;rsquo;s upper limit should now look at &lt;code&gt;31B&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;If you previously wanted to find a balance point on consumer-grade GPUs that is &amp;ldquo;powerful enough but not completely unrunnable,&amp;rdquo; now focus on &lt;code&gt;26B A4B&lt;/code&gt;
If you don&amp;rsquo;t clarify this layer first, local deployment will easily go wrong later. You might complain, &amp;ldquo;Why isn&amp;rsquo;t there the familiar upgraded version?&amp;rdquo; while mistakenly choosing a model that isn&amp;rsquo;t actually suitable for you.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;the-most-valuable-update-this-time-isnt-the-parameters&#34;&gt;The most valuable update this time isn&amp;rsquo;t the parameters
&lt;/h2&gt;&lt;p&gt;What really made me feel like this release was a &amp;ldquo;finally figured it out&amp;rdquo; moment wasn&amp;rsquo;t the leaderboard, but the license.
The old &lt;code&gt;Gemma&lt;/code&gt; terms weren&amp;rsquo;t unusable, but they always felt a bit awkward. Especially if you care about these things:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Redistribution&lt;/li&gt;
&lt;li&gt;Distillation or secondary packaging&lt;/li&gt;
&lt;li&gt;Integrating the model into your own product pipeline&lt;/li&gt;
&lt;li&gt;Commercial deployment
You always have to go back and look at how those notices, downstream restrictions, and accompanying agreements in the terms should be handled.
By changing directly to &lt;code&gt;Apache 2.0&lt;/code&gt; this time, &lt;code&gt;Gemma 4&lt;/code&gt; made things much cleaner. The core message is very clear:&lt;/li&gt;
&lt;li&gt;Commercially usable&lt;/li&gt;
&lt;li&gt;Modifiable&lt;/li&gt;
&lt;li&gt;Redistributable
The main obligations are limited to retaining familiar open-source elements like the license, notices, and modification documentation.
Simply put, Google didn&amp;rsquo;t just open-source a model this time; they smoothed out the entire process of &amp;ldquo;whether or not people feel safe using it.&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;initial-community-feedback-basically-two-lines&#34;&gt;Initial Community Feedback, Basically Two Lines
&lt;/h2&gt;&lt;p&gt;If you only look at the first week&amp;rsquo;s buzz, there are roughly two main sentiments.&lt;/p&gt;
&lt;p&gt;The first line is that &lt;code&gt;31B&lt;/code&gt; is genuinely capable. The official benchmarks are already very impressive. In the &lt;code&gt;Arena AI&lt;/code&gt; text leaderboard, 31B was ranked among the top open-source models upon release, and it also showed a significant improvement over &lt;code&gt;Gemma 3 27B&lt;/code&gt; on &lt;code&gt;LiveCodeBench v6&lt;/code&gt;. Many people&amp;rsquo;s first reaction is that achieving this level of performance with this size is quite beyond expectations.&lt;/p&gt;
&lt;p&gt;The second line is that &lt;code&gt;26B A4B&lt;/code&gt; seems like a lifeline for local users. It might not be the flashiest flagship model at first glance, but it is very practical. Especially if you aren&amp;rsquo;t running things in a data center, but rather on consumer-grade GPUs, workstations, or even older machines, the local experience tends to fall onto this line.&lt;/p&gt;
&lt;p&gt;Of course, there&amp;rsquo;s a very realistic prerequisite for the initial wave of feedback: the ecosystem is still catching up with the versions. Templates, quantization methods, inference frameworks, and front-end tools—many haven&amp;rsquo;t fully kept pace yet. Therefore, when looking at comments right now, it&amp;rsquo;s best to view them in two layers:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;The core model:&lt;/strong&gt; There has indeed been a big improvement here.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Local experience:&lt;/strong&gt; This will continue to be influenced by the maturity of the toolchain.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;my-conclusion-on-the-first-article&#34;&gt;My Conclusion on the First Article
&lt;/h2&gt;&lt;p&gt;If you just want to know what Google actually released this time, one sentence is enough.
&lt;code&gt;Gemma 4&lt;/code&gt; is no longer following the old idea of &amp;ldquo;a line of dense models from small to large,&amp;rdquo; but rather separating three paths: device-side deployment, local deployment, and quality ceiling. The names like &lt;code&gt;E4B&lt;/code&gt;, &lt;code&gt;26B A4B&lt;/code&gt;, and &lt;code&gt;31B&lt;/code&gt; sound strange, but behind them is a very practical division of labor for deployment.
But if you ask me what the biggest change is this time, I still stick to that judgment:
It&amp;rsquo;s not about parameters, nor is it about leaderboards; it&amp;rsquo;s that Google finally put &lt;code&gt;Gemma 4&lt;/code&gt; into an open-source protocol that everyone feels more comfortable actually using.
This step is more important than the numbers on the surface.
In the next article, I won&amp;rsquo;t continue talking about the conference narrative; I&amp;rsquo;ll go straight back to local machines. Still with that unupgraded &lt;code&gt;RTX 3060 12GB&lt;/code&gt;, why was it that my initial focus wasn&amp;rsquo;t on &lt;code&gt;31B&lt;/code&gt;, but on &lt;code&gt;26B A4B&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;references&#34;&gt;References
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://blog.google/innovation-and-ai/technology/developers-tools/gemma-4/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Gemma 4: Byte for byte, the most capable open models&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://ai.google.dev/gemma/docs/core/model_card_4&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Gemma 4 model card&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://ai.google.dev/gemma/terms&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Gemma Terms of Use&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://ai.google.dev/gemma/apache_2&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Apache License 2.0 for Gemma 4&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://foodtruckbench.com/blog/gemma-4-31b&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Gemma 4 31B on FoodTruck Bench&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.reddit.com/r/LocalLLaMA/comments/1san4kd/will_gemma_4_124b_moe_open_as_well/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;LocalLLaMA discussion on Gemma 4 license changes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://developers.googleblog.com/introducing-gemma3/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Gemma 3: The Developer Guide&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;writing-notes&#34;&gt;Writing Notes
&lt;/h2&gt;&lt;h3 id=&#34;original-prompt&#34;&gt;Original Prompt
&lt;/h3&gt;&lt;pre&gt;&lt;code class=&#34;language-text&#34;&gt;$blog-writer Google has released the Gemma4 model after a year. As usual, I&#39;m trying to deploy it locally on that old desktop with an unupgraded NVIDIA 3060 12GB graphics card. This time I caught the initial release, but I couldn&#39;t find an upgraded version of the previously used Gemma3. However, there is a similar version called GemmaE4b. Please first search and introduce all the models released this time, what the abbreviation letters mean in them, and then search for online reviews about Gemma4. The key point is that Google updated the model&#39;s protocol this time, so the restrictions for users are fewer. The biggest surprise: my usual test question—write a piece of C++ code to output a five-pointed star in the console. Last year&#39;s smaller parameter open-source models couldn&#39;t handle this problem, but Google managed it this time. In the first version, it gave an answer that completely exceeded my expectations; it knew about my trap. Outputting a five-pointed star to the console is very tricky, so it directly hardcoded a string for the five-pointed star, and the console outputted it directly. This is the original text: Because drawing a five-pointed star with precise geometric structure using mathematical logic in a pure text console (Console) is very complex (involving coordinate system transformation and pixel filling), the most classic and visually best method is to use ASCII Art. After I forced it to perform calculations, it also managed it through mathematical calculation and successfully drew the five-pointed star. Previously, I often used Gemma4 for local translation tasks; many multilingual versions of historical articles on current blogs are like this. The model used for local testing: gemma-4-26b-a4b. The 31b version is indeed too slow. But looking at the reviews, the 31b performs very well, and its ranking scores are excellent. Also, while browsing forums, I realized that if the VRAM is insufficient and the model parameters increase, the token generation speed will drop drastically. Can you explain why? Macs don&#39;t have this problem because they use unified memory; please explain the technical reason. Furthermore, if speed is required, then an NVIDIA card with large VRAM is still necessary. The Mac solution can serve as a fallback, but it cannot match the speed. This content is quite extensive; please evaluate whether it should be split into a series of articles.
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&#34;writing-outline-summary&#34;&gt;Writing Outline Summary
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;The first article will only focus on clarifying &amp;ldquo;what was actually released this time&amp;rdquo; and &amp;ldquo;why the protocol is important,&amp;rdquo; avoiding topics that compete with local experience discussions.&lt;/li&gt;
&lt;li&gt;We will separate the model roadmap breakdown and then explain the meaning of the letters, making the logical flow more direct than the previous version.&lt;/li&gt;
&lt;li&gt;For the protocol section, we retained the judgment: &amp;ldquo;What was truly released this time is not the parameters, but the usage restrictions.&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Community feedback will only be used for synthesis/conclusion, without preemptively including too many local experience details.&lt;/li&gt;
&lt;/ul&gt;</description>
        </item>
        <item>
        <title>Don&#39;t force weak models onto hard tasks.</title>
        <link>https://ttf248.life/en/p/weaker-models-shouldnt-do-frontier-work/</link>
        <pubDate>Thu, 02 Apr 2026 22:05:00 +0800</pubDate>
        
        <guid>https://ttf248.life/en/p/weaker-models-shouldnt-do-frontier-work/</guid>
        <description>&lt;p&gt;Recently, I&amp;rsquo;ve been migrating some edge cases to &lt;code&gt;MiniMax&lt;/code&gt; and local models. The more I use them, the more I feel that we shouldn&amp;rsquo;t always measure things by the standard of &amp;ldquo;the most powerful model.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;My judgment is straightforward: don&amp;rsquo;t force weak models into hard tasks. Models like &lt;code&gt;MiniMax&lt;/code&gt; are indeed limited in capability, but for complex coding, long-chain reasoning, or ambiguous requirement decomposition, they fall a bit short. However, if you ask it to do data cleaning, document writing, or searching for proposal materials—these kinds of tasks—it can handle them perfectly well. The same logic applies to local models around the &lt;code&gt;12B&lt;/code&gt; size; translation, format rewriting, and batch cleaning are actually where they are best suited.&lt;/p&gt;
&lt;p&gt;To put it plainly, it&amp;rsquo;s not that the models lack value; it&amp;rsquo;s just that we shouldn&amp;rsquo;t place them in the wrong roles.&lt;/p&gt;
&lt;h2 id=&#34;the-real-problem-isnt-how-strong-the-model-is-but-whether-it-works-correctly&#34;&gt;The real problem isn&amp;rsquo;t how strong the model is, but whether it works correctly.
&lt;/h2&gt;&lt;p&gt;Many people who talk about large models automatically think of the most difficult tasks.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Writing complex engineering code independently&lt;/li&gt;
&lt;li&gt;Deconstructing an entire system in one go&lt;/li&gt;
&lt;li&gt;Multi-turn reasoning over long contexts&lt;/li&gt;
&lt;li&gt;Planning and executing while searching
These are certainly important. But in real-world work, what is actually piled on your desk most often isn&amp;rsquo;t these kinds of tasks.
It&amp;rsquo;s more like:&lt;/li&gt;
&lt;li&gt;Cleaning up a pile of dirty fields&lt;/li&gt;
&lt;li&gt;Organizing scattered information into readable documents&lt;/li&gt;
&lt;li&gt;Converting long texts into summaries, FAQs, or outlines&lt;/li&gt;
&lt;li&gt;Standardizing mixed Chinese and English content formats&lt;/li&gt;
&lt;li&gt;Gathering data from multiple web pages and then compiling it into a draft proposal
For these types of tasks, what is most needed is not &amp;ldquo;the model thinking like a genius,&amp;rdquo; but three things:&lt;/li&gt;
&lt;li&gt;Instruction following must be reasonably accurate.&lt;/li&gt;
&lt;li&gt;Output structure should be as stable as possible.&lt;/li&gt;
&lt;li&gt;The cost must be low enough that you are willing to use it repeatedly.
This is why I always feel that weak models are not useless; they just cannot be used in the same kind of battle as flagship models.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;minimax-whats-actually-suitable-for-it&#34;&gt;MiniMax: What&amp;rsquo;s Actually Suitable for It
&lt;/h2&gt;&lt;p&gt;First, let&amp;rsquo;s talk about &lt;code&gt;MiniMax&lt;/code&gt;.
The official positioning of &lt;code&gt;MiniMax-M2.5&lt;/code&gt; is actually quite high. In press releases and open platform documentation, they push it towards scenarios like programming, tool calling, search, and office productivity, even emphasizing speed and cost advantages. I don&amp;rsquo;t completely disbelieve these claims, but I prefer to break them down.
For me, what &lt;code&gt;MiniMax&lt;/code&gt; is genuinely good at isn&amp;rsquo;t &amp;ldquo;the most complex development tasks,&amp;rdquo; but rather the following:&lt;/p&gt;
&lt;h3 id=&#34;data-cleaning&#34;&gt;Data Cleaning
&lt;/h3&gt;&lt;p&gt;A lot of data cleaning is essentially manual labor involving semi-structured text.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Name unification&lt;/li&gt;
&lt;li&gt;Field mapping&lt;/li&gt;
&lt;li&gt;Anomaly labeling&lt;/li&gt;
&lt;li&gt;Classification tagging&lt;/li&gt;
&lt;li&gt;Table field completion
What these types of tasks fear most is not the model being &amp;ldquo;dumb,&amp;rdquo; but rather inconsistent formatting or divergent outputs. As long as the model can reliably output results in &lt;code&gt;JSON&lt;/code&gt;, tables, or fixed templates, it&amp;rsquo;s actually sufficient. While powerful models certainly can do this, using the most expensive tier of model just to clean fields is often not cost-effective.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;documentation-writing&#34;&gt;Documentation Writing
&lt;/h3&gt;&lt;p&gt;Writing documentation is annoying, not difficult.
When an interface changes, a process changes, or a field is modified, the documentation has to change accordingly. This process doesn&amp;rsquo;t actually require the model to have strong creativity; rather, it requires it &lt;em&gt;not&lt;/em&gt; to over-exert itself and alter clearly defined things into something ambiguous.
&lt;code&gt;MiniMax&lt;/code&gt; is often more reliable for these kinds of tasks than one might expect. Especially when you have already prepared the context, it acts more like a capable documentation assistant rather than an actual engineer.&lt;/p&gt;
&lt;h3 id=&#34;solution-material-search&#34;&gt;Solution Material Search
&lt;/h3&gt;&lt;p&gt;The official platform is also promoting search and tool calling, so this direction is fine.
Many times, what we need is not for the model to &amp;ldquo;come up with an answer out of thin air,&amp;rdquo; but rather for it to first find relevant web pages, documents, announcements, or materials, and then organize them neatly. In this scenario, cheaper models like &lt;code&gt;MiniMax&lt;/code&gt; are very valuable because searching, summarizing, and integrating are inherently high-frequency, mundane tasks.
So my actual view is: &lt;code&gt;MiniMax&lt;/code&gt; isn&amp;rsquo;t incapable; rather, it is better suited for the dirty, tiring, and repetitive tasks within a production pipeline. If you let it act as an assistant or general laborer, it is often competent; but if you ask it to handle the entire engineering process, the probability of disappointment increases.&lt;/p&gt;
&lt;h2 id=&#34;local-12b-models-best-suited-for-bringing-back-these-tasks&#34;&gt;Local 12B Models, Best Suited for Bringing Back These Tasks
&lt;/h2&gt;&lt;p&gt;Looking further down, the logic for local deployment is actually the same.
When many people talk about local models, they inevitably ask one question: Can it replace the flagship cloud models?
I think this question is flawed from the start.
For local models around &lt;code&gt;12B&lt;/code&gt;, what has real practical value isn&amp;rsquo;t &amp;ldquo;proving that it can handle the most powerful tasks,&amp;rdquo; but rather bringing back those stable, repetitive, sensitive, low-profit, yet high-frequency tasks.&lt;/p&gt;
&lt;h3 id=&#34;translation&#34;&gt;Translation
&lt;/h3&gt;&lt;p&gt;This is one of the most natural scenarios for local models.
As explicitly mentioned in the official blog of &lt;code&gt;Qwen2.5&lt;/code&gt;, it has enhanced capabilities for long-text generation, structured data understanding, and &lt;code&gt;JSON&lt;/code&gt; output, and supports over 29 languages. This combination is inherently suitable for tasks like translation, bilingual rewriting, format standardization, and terminology normalization.
Technical documentation, field descriptions, product introductions, and API comments—these items often have stable structures and fixed terminology. While local models might not produce the most elegant translations, they are usually sufficient.&lt;/p&gt;
&lt;h3 id=&#34;data-cleaning-1&#34;&gt;Data Cleaning
&lt;/h3&gt;&lt;p&gt;This is also where local models are particularly realistic.
Many spreadsheets, documents, and business materials that you might not want to upload to the cloud. Especially internal data, customer records, meeting minutes, and draft proposals—when privacy and permissions are involved, running it locally provides much more peace of mind.
At this point, the significance of a local model around &lt;code&gt;12B&lt;/code&gt; isn&amp;rsquo;t &amp;ldquo;how smart it is,&amp;rdquo; but rather that &amp;ldquo;it&amp;rsquo;s on my machine, and it can reliably handle these dirty tasks.&amp;rdquo;&lt;/p&gt;
&lt;h3 id=&#34;fixed-format-rewriting&#34;&gt;Fixed Format Rewriting
&lt;/h3&gt;&lt;p&gt;For example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Meeting minutes organized into a fixed template&lt;/li&gt;
&lt;li&gt;Product titles cleaned into a unified naming convention&lt;/li&gt;
&lt;li&gt;Bug descriptions rewritten into ticket format&lt;/li&gt;
&lt;li&gt;Mixed Chinese and English text cleaned into single-language versions&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These types of tasks share consistent characteristics: clear rules, large batches, high repetition, low value per instance, but significant cumulative effort.
This is exactly what local models are best suited for.&lt;/p&gt;
&lt;h2 id=&#34;can-the-3060-12gb-actually-run-a-model-around-12b&#34;&gt;Can the 3060 12GB actually run a model around 12B?
&lt;/h2&gt;&lt;p&gt;I prefer to write about this realistically: &amp;ldquo;It can run it, but don&amp;rsquo;t get your hopes up too high.&amp;rdquo;
Google provided a very useful VRAM table in the official documentation for &lt;code&gt;Gemma 3&lt;/code&gt;. The &lt;code&gt;Gemma 3 12B&lt;/code&gt; roughly requires:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;About &lt;code&gt;20 GB&lt;/code&gt; of VRAM to load the full precision version.&lt;/li&gt;
&lt;li&gt;About &lt;code&gt;12.2 GB&lt;/code&gt; to load the medium quantization version.&lt;/li&gt;
&lt;li&gt;About &lt;code&gt;8.7 GB&lt;/code&gt; to load a lower VRAM consumption version.
The official documentation also specifically reminds that this is only for model loading, and does not include prompt or runtime overhead.
This sentence is very key.
What does it mean?
It means that running a model around 12B on a card like the &lt;code&gt;3060 12GB&lt;/code&gt; is not impossible, but the prerequisites are usually:&lt;/li&gt;
&lt;li&gt;You are running a quantized version.&lt;/li&gt;
&lt;li&gt;The context length should not be too long.&lt;/li&gt;
&lt;li&gt;The task shouldn&amp;rsquo;t be too complex.&lt;/li&gt;
&lt;li&gt;You accept average, or even slow, speed.
If you are willing to accept these premises, then running a local 12B model is indeed feasible. Tasks like translation, summarization, table cleaning, and fixed format conversion are not exaggerated in this regard.
Furthermore, the official repository for &lt;code&gt;Qwen2.5-14B-Instruct-GGUF&lt;/code&gt; itself provides multiple quantization formats, which actually makes the intention very clear: models in this category are inherently adapted for the local inference ecosystem.
So my conclusion has never been that &amp;ldquo;the 3060 12GB can easily handle a 12B model,&amp;rdquo; but rather:
It can run these types of models, but it is better suited for work with low expectations, high repetition, and high privacy requirements.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;cheap-models-and-local-models-its-not-just-about-saving-api-costs&#34;&gt;Cheap Models and Local Models: It&amp;rsquo;s Not Just About Saving API Costs
&lt;/h2&gt;&lt;p&gt;When people talk about this, the first reaction is always saving money.
Of course, saving money is important. But I think the greater value is that you start daring to outsource all those little tasks you used to avoid doing.
Before, you might not have written a dedicated script just to clean up a few hundred data points. You also wouldn&amp;rsquo;t manually adjust dozens of pages of mixed Chinese and English documents to achieve uniform formatting. And you certainly wouldn&amp;rsquo;t read through every single webpage to gather materials for an ad-hoc proposal.
Things are different now.
As long as the cost is low enough and the barrier is low enough, these tasks that were previously considered &amp;ldquo;not worth the effort&amp;rdquo; suddenly become worthwhile. You no longer hesitate over whether or not to do it; instead, you just throw it to a cheap model or a local model to run through first.
This is what I see as the most realistic change.
Powerful models are responsible for tackling core problems, weaker models handle miscellaneous tasks, and local models provide fallback and batch processing.
With this division of labor, the entire workflow becomes smooth.&lt;/p&gt;
&lt;h2 id=&#34;conclusion&#34;&gt;Conclusion
&lt;/h2&gt;&lt;p&gt;So, the final word remains: don&amp;rsquo;t always try to make one model conquer everything.
Models like &lt;code&gt;MiniMax&lt;/code&gt; are weak in capability, but they aren&amp;rsquo;t useless. If you use them to tackle complex engineering tasks, vague requirements, or multi-turn reasoning, you will naturally be disappointed; however, if you use them for data cleaning, document drafting, or searching for proposal materials, they often work quite smoothly.
The same applies to local models around &lt;code&gt;12B&lt;/code&gt;. Their purpose isn&amp;rsquo;t to prove that &amp;ldquo;I no longer need cloud flagships,&amp;rdquo; but rather to reliably move stable, repetitive, sensitive, and high-volume tasks back onto their own machines.
Simply put: don&amp;rsquo;t let a weak model do what it is not good at.
Place them in the right role, and they will have real value.&lt;/p&gt;
&lt;h2 id=&#34;references&#34;&gt;References
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.minimax.io/news/minimax-m25&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;MiniMax M2.5: Built for Real-World Productivity&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://platform.minimaxi.com/docs/guides/text-generation&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;MiniMax Open Platform: Text Generation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://qwenlm.github.io/blog/qwen2.5/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Qwen2.5: A Party of Foundation Models!&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/Qwen/Qwen2.5-14B-Instruct-GGUF&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Qwen2.5-14B-Instruct-GGUF&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://ai.google.dev/gemma/docs/core&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Gemma 3 model overview&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;writing-notes&#34;&gt;Writing Notes
&lt;/h2&gt;&lt;h3 id=&#34;original-prompt&#34;&gt;Original Prompt
&lt;/h3&gt;&lt;blockquote&gt;
&lt;p&gt;Minimax&amp;rsquo;s large model is weak in capability, but it&amp;rsquo;s fine for tasks like data cleaning, document writing, and searching for proposal materials; with the same logic, deploying a large model locally for translation or data cleaning work is also good. The model parameter count is around 12b, and even a local GPU like the RTX 3060 with 12GB can handle it.&lt;/p&gt;&lt;/blockquote&gt;
&lt;h3 id=&#34;writing-outline-summary&#34;&gt;Writing Outline Summary
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;Retained the core judgment of &amp;ldquo;don&amp;rsquo;t force weak models onto hard tasks,&amp;rdquo; and did not write it as a model leaderboard comparison.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;MiniMax&lt;/code&gt; section is mainly based on the official positioning for programming, searching, and office work, then applies this judgment back to real-world tasks like data cleaning, document handling, and information retrieval.&lt;/li&gt;
&lt;li&gt;For local models, I selected two officially sourced options: &lt;code&gt;Qwen2.5&lt;/code&gt; and &lt;code&gt;Gemma 3&lt;/code&gt;, one supporting multilingual and structured output, and the other supporting &lt;code&gt;12B&lt;/code&gt; size and VRAM usage.&lt;/li&gt;
&lt;li&gt;The description for the &lt;code&gt;3060 12GB&lt;/code&gt; was intentionally phrased as &amp;ldquo;capable, but don&amp;rsquo;t get too carried away,&amp;rdquo; to avoid presenting quantized inference as an absolute conclusion.&lt;/li&gt;
&lt;li&gt;In the conclusion, I re-categorized strong models, weak models, and local models based on their respective roles, making the main thread more focused.&lt;/li&gt;
&lt;/ul&gt;</description>
        </item>
        
    </channel>
</rss>
