<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: AICDragon</title>
    <description>The latest articles on DEV Community by AICDragon (@cdragon123code).</description>
    <link>https://dev.to/cdragon123code</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4050745%2F2c8ce2c9-457f-437f-bd15-0c61593f3af3.png</url>
      <title>DEV Community: AICDragon</title>
      <link>https://dev.to/cdragon123code</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/cdragon123code"/>
    <language>en</language>
    <item>
      <title>From Sparse Attention to MoE: Why K3's 896 Experts Only Activate 1.8% Per Token</title>
      <dc:creator>AICDragon</dc:creator>
      <pubDate>Tue, 11 Aug 2026 03:16:11 +0000</pubDate>
      <link>https://dev.to/cdragon123code/from-sparse-attention-to-moe-why-k3s-896-experts-only-activate-18-per-token-1nl3</link>
      <guid>https://dev.to/cdragon123code/from-sparse-attention-to-moe-why-k3s-896-experts-only-activate-18-per-token-1nl3</guid>
      <description>&lt;h1&gt;
  
  
  From Sparse Attention to MoE: Why K3's 896 Experts Only Activate 1.8% Per Token
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;This is the third installment in a series on the evolution of attention mechanisms.&lt;/p&gt;

&lt;p&gt;Part 1 covered the sequence dimension: from GPT-2's full attention to KV Cache, linear attention, and KDA — seven years of progress.&lt;br&gt;
Part 2 covered the inter-layer dimension: from simple residual summation to Attention Residuals and Depth-Attention — selective cross-layer communication at near-zero cost.&lt;/p&gt;

&lt;p&gt;This article explores the third dimension: &lt;strong&gt;orthogonal computation&lt;/strong&gt; — when Transformers face the demand of "make the model bigger without making inference slower," the answer is "most parameters stay idle." This is the story from sparse attention to MoE to Stable LatentMoE. Let's begin with one number: K3 has 896 experts, but at inference time each token only activates 16 — that's 1.8%.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  1. The Origin of the Problem: The Curse of All-or-Nothing
&lt;/h2&gt;

&lt;p&gt;Standard Transformers operate on an implicit assumption: &lt;strong&gt;every token at every layer must pass through all parameters&lt;/strong&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Layer 0: Token -&amp;gt; (Attention + FFN) -&amp;gt; hidden state
Layer 1: Token -&amp;gt; (Attention + FFN) -&amp;gt; ...
...
Layer 92: Token -&amp;gt; (Attention + FFN) -&amp;gt; predict next token
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Every layer's FFN processes every token. "Answer a primary-school math problem" and "write operating system kernel code" engage entirely different cognitive circuits — yet the Transformer is forced to use the same parameters for both.&lt;/p&gt;

&lt;p&gt;This creates two fatal consequences:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Parameter count is constrained.&lt;/strong&gt; More parameters means more operations per inference — compute cost scales linearly. Want a smarter model? Adding parameters = adding cost.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Wasted compute.&lt;/strong&gt; The simplest token and the hardest token consume exactly the same FLOPs.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;MoE's solution is brutally effective: &lt;strong&gt;prepare multiple sets of "cognitive circuits" (experts), and have each token call only a small subset.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Sounds like common sense. But turning that common sense into an industrially stable, inference-efficient model took several years.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Three Cards in MoE's Evolution
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Card 1: Switch Transformer (2021, Google) — Moving MoE from Lab to Factory
&lt;/h3&gt;

&lt;p&gt;MoE itself is an old idea (Jacobs et al., 1991), but before the LLM era it was stuck in the lab due to training instability.&lt;/p&gt;

&lt;p&gt;Switch Transformer (Fedus et al., JMLR 2022) did two crucial things:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Solved large-scale training stability.&lt;/strong&gt; Used capacity factor to cap tokens per expert, and auxiliary loss to balance routing load.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trained a 1.6T-parameter model on C4&lt;/strong&gt;, activating far fewer parameters at inference than the total count.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But Switch used &lt;strong&gt;Top-1 routing&lt;/strong&gt; — each token goes to exactly one expert. The advantage is extreme sparsity (minimal activation rate). The problem is obvious: if that one expert fails (overloaded or dropped), the token produces no output — there's no backup.&lt;/p&gt;

&lt;h3&gt;
  
  
  Card 2: Mixtral 8x7B (2023, Mistral) — Top-2 Becomes the Industry Standard
&lt;/h3&gt;

&lt;p&gt;Mistral's Mixtral 8x7B, released in late 2023, used &lt;strong&gt;Top-2 routing&lt;/strong&gt; — each token activates 2 out of 8 experts.&lt;/p&gt;

&lt;p&gt;This marked a key design philosophy shift. Top-1 is "all eggs in one basket." Top-2 begins to accept "spend a bit more compute for significantly better stability and performance." The 8-expert configuration is also clean enough to run on consumer-grade GPUs.&lt;/p&gt;

&lt;p&gt;Mixtral, at 46.7B total parameters (12.9B active), matched or approached comparable dense models on multiple benchmarks while using substantially less compute. This proved that MoE isn't just for gigantic models — it pays off at medium scale too.&lt;/p&gt;

&lt;h3&gt;
  
  
  Card 3: DeepSeek-MoE (2024, DeepSeek) — Fine-Grained Experts + Shared Experts
&lt;/h3&gt;

&lt;p&gt;DeepSeek-MoE (ACL 2024) introduced two of the most important architectural innovations in MoE history:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Fine-grained expert segmentation:&lt;/strong&gt; Split N experts into mN smaller experts, activating mK per token. This enables more flexible combinations — instead of a few large experts handling broad knowledge domains, many small experts perform precise assembly.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Shared experts:&lt;/strong&gt; Isolate K_s "shared experts" from the total expert pool, always activated. These handle foundational knowledge every token needs (grammar structure, common phrasing, basic reasoning frameworks), while routed experts focus on domain-differentiated knowledge.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;This design solves MoE's biggest contradiction: "knowledge redundancy."&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In early MoE, every expert could learn the same basics (e.g., "the" can be followed by a noun) because routing selects experts based on token features, and all experts see these high-frequency patterns. Isn't that just wasting parameters?&lt;/p&gt;

&lt;p&gt;The shared expert idea: "Extract that shared part, let everyone use it, stop routed experts from redundantly learning fundamentals."&lt;/p&gt;

&lt;p&gt;DeepSeek-MoE 16B achieved LLaMA2 7B performance at roughly 40% of the compute. DeepSeek-MoE 145B matched DeepSeek 67B using only 28.5% of the compute. This was the first paper to clearly demonstrate that the "fine-grained + shared expert" dual-track architecture has overwhelming advantages in compute efficiency.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;This is also the direct predecessor of K3's MoE architecture.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  3. K3's Stable LatentMoE: Pushing DeepSeek-MoE's Three Paths to the Limit
&lt;/h2&gt;

&lt;p&gt;K3's technical report describes the Stable LatentMoE design in detail. Building on DeepSeek-MoE, it pushes three paths:&lt;/p&gt;

&lt;h3&gt;
  
  
  Path 1: Expert Count Jumps from 64 to 896
&lt;/h3&gt;

&lt;p&gt;DeepSeek-MoE already made experts smaller and more numerous, but K3 pushes this to another order of magnitude.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;DeepSeek-MoE 16B:   ~64 routing experts + shared experts
K3:                  896 routing experts + 2 shared experts
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The key isn't "896 is a lot" — it's &lt;strong&gt;what 896 implies about how small each expert is&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Let's compute. K3 has 896 routing experts per layer, hidden dim = 7168, latent dim (the compressed dimension before entering routing experts) = 3584, each expert's intermediate dim = 3072.&lt;/p&gt;

&lt;p&gt;One expert = two weight matrices (3584-&amp;gt;3072 + 3072-&amp;gt;3584) = roughly 22M parameters.&lt;/p&gt;

&lt;p&gt;K3 has 2.78T parameters total. 896 experts x 93 layers = roughly 83,328 experts. At 22M each, the expert portion is... far below 2.78T. Because experts are just FFN replacements — the total parameter count includes embeddings, all layers' attention weights, shared experts, and other larger components.&lt;/p&gt;

&lt;p&gt;But the core logic holds: &lt;strong&gt;when experts become small enough, routing ceases to be semantic assignment ("bring in the Python expert") and becomes feature assembly from a pool of fragments.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This leads to K3's most crucial design philosophy, and the most insightful analysis from the lilting channel —&lt;/p&gt;

&lt;h3&gt;
  
  
  The Router Is Not a "Classifier" — It's a "Compute Allocator"
&lt;/h3&gt;

&lt;p&gt;The standard MoE understanding: "the router classifies each token to a domain expert." This understanding is wrong — at least for K3 with 896 experts.&lt;/p&gt;

&lt;p&gt;K3's router is a single line:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;scores&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Sigmoid&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;W_r&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;   &lt;span class="c1"&gt;# W_r: 896 x 7168, x: hidden state
# Take Top-16, weighted combination by normalized scores
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A linear projection -&amp;gt; Sigmoid -&amp;gt; Top-16. No complex operations whatsoever.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;But this works not because the router is "smart," but because x itself has already been thoroughly processed by preceding layers' Attention and FFN.&lt;/strong&gt; Just as BERT hidden states are good enough for a simple linear classifier to perform NLU tasks — K3's hidden state, after passing through dozens of layers before reaching the router, is already a highly structured representation space. A single linear projection is sufficient for the final "routing decision."&lt;/p&gt;

&lt;p&gt;From another angle: with 896 experts, expecting a simple linear classifier to correctly assign each token to "exactly the right 16 experts" is clearly over-idealized. &lt;strong&gt;The router's real job isn't "find the best 16" — it's "under load-balancing constraints, give most tokens a reasonable set of 16."&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is why K3 invested massive engineering effort in load balancing —&lt;/p&gt;

&lt;h3&gt;
  
  
  Quantile Balancing: The Load-Balancing Challenge of 896 Experts
&lt;/h3&gt;

&lt;p&gt;MoE routing training has a classic dilemma:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Don't intervene in routing -&amp;gt; tokens flood a few experts -&amp;gt; GPU load imbalance -&amp;gt; some experts starve (insufficient training data)&lt;/li&gt;
&lt;li&gt;Force balance -&amp;gt; same input routed to different experts across training steps -&amp;gt; experts learn highly similar things -&amp;gt; pseudo-balance&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;K3's solution is &lt;strong&gt;Quantile Balancing&lt;/strong&gt;: at each training step, compute quantile thresholds from the router score distribution — experts above this threshold receive a target number of tokens. Then update per-expert selection bias based on deviation from the target.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Crucially: this bias is only used during training. Fixed at inference.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This means K3 has already gained complete experience during training on "how to achieve load balance among 896 choices," and at inference it simply uses a fixed bias to prevent catastrophic load skew.&lt;/p&gt;

&lt;h3&gt;
  
  
  Path 2: Latent Compression + 2 Shared Experts
&lt;/h3&gt;

&lt;p&gt;Another key design in Stable LatentMoE: before entering routing experts, compress the 7168-dimensional hidden state into a 3584-dimensional latent space.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;x (7168) -&amp;gt; W_down -&amp;gt; z (3584) -&amp;gt; 16 routing experts -&amp;gt; u (3584) -&amp;gt; W_up -&amp;gt; RMSNorm -&amp;gt; output
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Why? Two reasons:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Reduces per-expert parameter count and compute (input dimension halved)&lt;/li&gt;
&lt;li&gt;Reduces the information dimension the router needs to handle&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;But compression loses information. So K3 retains &lt;strong&gt;2 always-activated shared experts&lt;/strong&gt; — they operate on the full 7168-dimensional hidden space, without latent compression.&lt;/p&gt;

&lt;p&gt;Final output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;E1_shared&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nc"&gt;E2_shared&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nc"&gt;W_up&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;RMSNorm&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;u&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The 2 shared experts handle "foundational features everyone needs." The 16 routed experts handle "differentiated features specific to each token." Clean division of labor.&lt;/p&gt;

&lt;h3&gt;
  
  
  Path 3: 1.8% Activation Rate — It's Not a Bug, It's a Feature
&lt;/h3&gt;

&lt;p&gt;Back to that number: 896 experts, only 16 activated. 1.8%.&lt;/p&gt;

&lt;p&gt;Why not more? Say, 32 (3.6%)?&lt;/p&gt;

&lt;p&gt;K3's technical report doesn't directly provide this ablation, but we can infer from the architecture:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Latent space capacity bottleneck.&lt;/strong&gt; Latent dim = 3584. 16 experts already approach this dimension's information saturation. Adding more experts -&amp;gt; additional FFN capacity can't be effectively transmitted through the latent bottleneck -&amp;gt; diminishing marginal returns.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Cross-GPU communication cost.&lt;/strong&gt; 896 experts are distributed across multiple GPUs. Each additional activated expert means more all-to-all communication across GPUs. K3's official docs explicitly recommend 64+ accelerators for deployment — when you're already doing all-to-all on a cluster that large, each extra expert adds real latency.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;DeepSeek-MoE already validated: fine-grained + fewer activations &amp;gt; coarse-grained + more activations.&lt;/strong&gt; Rather than activating 40 experts each learning a little, let 16 small experts each learn their part well.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;1.8% isn't a design target — it's the optimal convergence point shaped jointly by the latent bottleneck, communication costs, and expert granularity.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  4. The Evolution at a Glance: From Dense to 896-Expert
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csvs"&gt;&lt;code&gt;&lt;span class="k"&gt;Year&lt;/span&gt;    &lt;span class="k"&gt;Model&lt;/span&gt;                  &lt;span class="k"&gt;Routing&lt;/span&gt; &lt;span class="k"&gt;Strategy&lt;/span&gt;    &lt;span class="k"&gt;Experts&lt;/span&gt;&lt;span class="err"&gt;/&lt;/span&gt;&lt;span class="k"&gt;Layer&lt;/span&gt;    &lt;span class="k"&gt;Active&lt;/span&gt;    &lt;span class="k"&gt;Shared&lt;/span&gt; &lt;span class="k"&gt;Experts&lt;/span&gt;

&lt;span class="mf"&gt;2021&lt;/span&gt;    &lt;span class="k"&gt;Switch&lt;/span&gt; &lt;span class="k"&gt;Transformer&lt;/span&gt;     &lt;span class="k"&gt;Top&lt;/span&gt;&lt;span class="err"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;1&lt;/span&gt;               &lt;span class="mf"&gt;64&lt;/span&gt;&lt;span class="err"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;2048&lt;/span&gt;          &lt;span class="mf"&gt;1&lt;/span&gt;         &lt;span class="k"&gt;None&lt;/span&gt;
&lt;span class="mf"&gt;2023&lt;/span&gt;    &lt;span class="k"&gt;Mixtral&lt;/span&gt; &lt;span class="mf"&gt;8&lt;/span&gt;&lt;span class="k"&gt;x&lt;/span&gt;&lt;span class="mf"&gt;7&lt;/span&gt;&lt;span class="k"&gt;B&lt;/span&gt;           &lt;span class="k"&gt;Top&lt;/span&gt;&lt;span class="err"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;2&lt;/span&gt;               &lt;span class="mf"&gt;8&lt;/span&gt;                &lt;span class="mf"&gt;2&lt;/span&gt;         &lt;span class="k"&gt;None&lt;/span&gt;
&lt;span class="mf"&gt;2024&lt;/span&gt;    &lt;span class="k"&gt;DeepSeek&lt;/span&gt;&lt;span class="err"&gt;-&lt;/span&gt;&lt;span class="k"&gt;MoE&lt;/span&gt; &lt;span class="mf"&gt;16&lt;/span&gt;&lt;span class="k"&gt;B&lt;/span&gt;       &lt;span class="k"&gt;Fine&lt;/span&gt;&lt;span class="err"&gt;-&lt;/span&gt;&lt;span class="k"&gt;grained&lt;/span&gt; &lt;span class="k"&gt;Top&lt;/span&gt;&lt;span class="err"&gt;-&lt;/span&gt;&lt;span class="k"&gt;K&lt;/span&gt;  &lt;span class="err"&gt;~&lt;/span&gt;&lt;span class="mf"&gt;64&lt;/span&gt;              &lt;span class="err"&gt;~&lt;/span&gt;&lt;span class="mf"&gt;6&lt;/span&gt;        &lt;span class="k"&gt;K&lt;/span&gt;&lt;span class="err"&gt;_&lt;/span&gt;&lt;span class="k"&gt;s&lt;/span&gt;
&lt;span class="mf"&gt;2024&lt;/span&gt;    &lt;span class="k"&gt;DeepSeek&lt;/span&gt;&lt;span class="err"&gt;-&lt;/span&gt;&lt;span class="k"&gt;MoE&lt;/span&gt; &lt;span class="mf"&gt;145&lt;/span&gt;&lt;span class="k"&gt;B&lt;/span&gt;      &lt;span class="k"&gt;Fine&lt;/span&gt;&lt;span class="err"&gt;-&lt;/span&gt;&lt;span class="k"&gt;grained&lt;/span&gt; &lt;span class="k"&gt;Top&lt;/span&gt;&lt;span class="err"&gt;-&lt;/span&gt;&lt;span class="k"&gt;K&lt;/span&gt;  &lt;span class="err"&gt;~&lt;/span&gt;&lt;span class="mf"&gt;192&lt;/span&gt;             &lt;span class="err"&gt;~&lt;/span&gt;&lt;span class="mf"&gt;18&lt;/span&gt;       &lt;span class="k"&gt;K&lt;/span&gt;&lt;span class="err"&gt;_&lt;/span&gt;&lt;span class="k"&gt;s&lt;/span&gt;
&lt;span class="mf"&gt;2026&lt;/span&gt;    &lt;span class="k"&gt;Kimi&lt;/span&gt; &lt;span class="k"&gt;K&lt;/span&gt;&lt;span class="mf"&gt;3&lt;/span&gt;                &lt;span class="k"&gt;Quantile&lt;/span&gt; &lt;span class="k"&gt;Top&lt;/span&gt;&lt;span class="err"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;16&lt;/span&gt;     &lt;span class="mf"&gt;896&lt;/span&gt;              &lt;span class="mf"&gt;16&lt;/span&gt;        &lt;span class="mf"&gt;2&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Clear trends:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Expert count is increasing, but active count stays in a stable range&lt;/strong&gt; (1-16) — not because 16 is a magic number, but because the latent bottleneck and communication costs impose an invisible ceiling&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Shared experts are a watershed&lt;/strong&gt; — nobody did them before DeepSeek; K3 directly inherited the approach&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Load balancing evolved from "aux loss assist" to "quantile direct control"&lt;/strong&gt; — control precision went from "penalize imbalance" to "direct allocation"&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Each expert is getting smaller&lt;/strong&gt; — from a few large experts to hundreds of small ones, routing's meaning shifts from "domain classification" to "feature assembly"&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  5. K3 MoE's Real-World Performance
&lt;/h2&gt;

&lt;p&gt;Data extracted from the official blog and technical report:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Total params: 2.78T&lt;/strong&gt;, active params: 104.2B (roughly 3.7%)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Inference efficiency:&lt;/strong&gt; Despite the routing overhead of 896 experts, K3's team claims 90%+ cache hit rate (in coding scenarios) through the Mooncake decoupled inference architecture, serving million-token contexts at $0.30/M tokens (cache-hit pricing)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Training efficiency:&lt;/strong&gt; Introduced fully balanced expert-parallel training with static shapes and no host-synchronization critical path, making 896-expert scale training feasible&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;More importantly, the synergy between MoE and other innovations: KDA (from Part 1) + Attention Residuals (mentioned in Part 1) + Stable LatentMoE (the protagonist of this article) -&amp;gt; Kimi K3 achieves roughly &lt;strong&gt;2.5x overall scaling efficiency improvement&lt;/strong&gt; over K2.&lt;/p&gt;

&lt;p&gt;This isn't one component's magic — it's three orthogonal optimization dimensions stacked together: cheaper long contexts (KDA), smarter inter-layer communication (AttnRes), and compute concentrated on the most needed parameters (LatentMoE).&lt;/p&gt;

&lt;h2&gt;
  
  
  6. What's Next: MoE on the Road Ahead
&lt;/h2&gt;

&lt;p&gt;K3 already does conditional computation at the FFN layer — each token uses a different FFN expert combination. This is just the first step:&lt;/p&gt;

&lt;p&gt;Current K3 is still a 93-layer fixed-depth Transformer — every token, regardless of difficulty, must traverse all 93 layers. Possible evolutionary directions:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Dynamic depth:&lt;/strong&gt; Simple tokens exit early, difficult tokens go deeper (ADEPT, 2026)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MoE-ified Attention:&lt;/strong&gt; Not all tokens need full attention — SALSA uses a router to decide between attention and recurrent (2026)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Layer-level MoE:&lt;/strong&gt; Different layers may have different expert architectures — input-adjacent layers use shared-type, output-adjacent layers use routing-type&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;From FFN routing to full-module routing:&lt;/strong&gt; Not just choosing experts, but choosing "should this layer use attention, SSM, or skip" — turning the model into a token-level dynamic computation graph&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If MoE's essence is "most parameters stay idle," these directions' essence is "most computation stays idle." The engineering implementations are entirely different, but the philosophy shares the same origin.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. What This Means for You
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Three "Don'ts":&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Don't understand MoE through "domain classification."&lt;/strong&gt; Thinking in terms of "math expert" and "code expert" misses the essence. Experts are FFN fragments — what the router allocates isn't semantic roles but compute resources. This understanding directly determines whether you can design efficient routing strategies.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Don't equate "more experts" with "better."&lt;/strong&gt; K3 uses 896 not because it "needs 896," but because under the constraints of fine granularity + latent compression + load balancing, 896 is the optimal tradeoff for training and inference efficiency. Blindly adding experts -&amp;gt; load balancing collapse -&amp;gt; pseudo-balance -&amp;gt; wasted parameters.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Don't treat MoE as an isolated module.&lt;/strong&gt; K3's 2.5x scaling efficiency improvement comes from the synergy of KDA + AttnRes + LatentMoE. The relationship between MoE and attention mechanisms isn't "this replaces that" — it's "simultaneous optimization across multiple dimensions": horizontal (sequence attention compression), vertical (inter-layer information flow), and orthogonal (selective parameter activation).&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Three Numbers to Remember:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;1.8%&lt;/strong&gt; — K3's FFN activation rate per token. The current sparsity-efficiency ceiling for the strongest open-source model.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;28.5%&lt;/strong&gt; — The compute fraction DeepSeek-MoE 145B needs to match DeepSeek 67B Dense. The compute-efficiency baseline for fine-grained MoE.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;90%&lt;/strong&gt; — K3 API's cache hit rate in coding scenarios. Without this level of cache optimization, a 2.78T model could never achieve $0.30/M token pricing.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/MoonshotAI/Kimi-K3" rel="noopener noreferrer"&gt;Kimi K3: Open Frontier Intelligence&lt;/a&gt; — Kimi Team, July 2026, technical report + open weights&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.kimi.com/blog/kimi-k3" rel="noopener noreferrer"&gt;Kimi K3 Tech Blog&lt;/a&gt; — Moonshot AI official blog&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://lilting.ch/en/articles/kimi-k3-moe-experts-router-dynamic-transformer" rel="noopener noreferrer"&gt;K3's router picks 16 of 896 experts: an allocator, not a classifier&lt;/a&gt; — lilting channel, deep architecture analysis&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://arxiv.org/abs/2401.06066" rel="noopener noreferrer"&gt;DeepSeekMoE: Towards Ultimate Expert Specialization&lt;/a&gt; — Damai Dai et al., ACL 2024&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://arxiv.org/abs/2101.03961" rel="noopener noreferrer"&gt;Switch Transformers: Scaling to Trillion Parameter Models&lt;/a&gt; — Fedus et al., JMLR 2022&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://arxiv.org/abs/2401.04088" rel="noopener noreferrer"&gt;Mixtral of Experts&lt;/a&gt; — Jiang et al., Mistral AI, 2024&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://aclanthology.org/2026.acl-long.665/" rel="noopener noreferrer"&gt;The Illusion of Specialization&lt;/a&gt; — ACL 2026, analysis of actual MoE expert behavior&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;This is Part 3 of the "Evolution of Attention Mechanisms" series and the first installment on the "orthogonal dimension." Together, the three parts form a complete coordinate system: horizontal (sequence attention) -&amp;gt; vertical (inter-layer communication) -&amp;gt; orthogonal (selective parameter activation). Coming next: if MoE decouples "parameter count" from "inference cost," what's the next dimension to be decoupled?&lt;/em&gt;&lt;/p&gt;

</description>
      <category>deeplearning</category>
      <category>transformers</category>
      <category>machinelearning</category>
      <category>ai</category>
    </item>
    <item>
      <title>Depth-Attention: Opening an Attention Channel Between Transformer Layers</title>
      <dc:creator>AICDragon</dc:creator>
      <pubDate>Mon, 10 Aug 2026 12:50:49 +0000</pubDate>
      <link>https://dev.to/cdragon123code/depth-attention-opening-an-attention-channel-between-transformer-layers-4l93</link>
      <guid>https://dev.to/cdragon123code/depth-attention-opening-an-attention-channel-between-transformer-layers-4l93</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;This is the second article in my &lt;em&gt;Attention Mechanism Evolution&lt;/em&gt; series. The first covered the horizontal (sequence-dimension) attention optimizations — from GPT-2's full attention to Kimi K3's KDA hybrid architecture. That was one axis. This article tackles the vertical axis: can deeper layers &lt;em&gt;selectively attend&lt;/em&gt; to shallower layers, instead of just blindly summing via residual connections?&lt;/p&gt;

&lt;p&gt;Depth-Attention, proposed by Shanghai Jiao Tong University's LUMIA Lab (arXiv: 2606.05014, accepted at ICML 2026), answers with an elegant design: zero new parameters, zero additional KV cache, under 0.01% extra FLOPs — and a consistent +2.3 point accuracy boost on downstream tasks.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  1. The Problem: Transformers Are "Blind" Between Layers
&lt;/h2&gt;

&lt;p&gt;Standard self-attention excels at freely selecting information along the &lt;strong&gt;sequence dimension&lt;/strong&gt; — each token can attend to any position in the sequence.&lt;/p&gt;

&lt;p&gt;But switch to another dimension — &lt;strong&gt;between layers&lt;/strong&gt; — and Transformers become startlingly inefficient:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Layer ℓ-1 output → (residual connection: simple summation) → Layer ℓ input
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each residual block just adds the previous layer's output on top of its own — no weighting, no selectivity, no attention. The deeper layers face a hidden state that's just a compressed dump of all prior layer outputs.&lt;/p&gt;

&lt;p&gt;Think of it like this: you write a report and hand each page to a colleague, but they only see the last page. They can't tell whether "page 3's analysis is your best work — read more of it" or "page 15 isn't that important — just skim it."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;This isn't a new problem.&lt;/strong&gt; Recent work has tried to solve it — DenseFormer (learns fixed inter-layer weights for weighted averaging), Hyper-Connections/mHC (multiple parallel residual streams replacing single residual), and Attention Residuals (using softmax attention to adaptively select shallow-layer outputs per token — this is what Kimi K3 uses).&lt;/p&gt;

&lt;h3&gt;
  
  
  But these approaches share a problem
&lt;/h3&gt;

&lt;p&gt;They all operate on &lt;strong&gt;hidden states&lt;/strong&gt; — the model's full intermediate representations, outside the self-attention module itself. This means they need to retain or access these hidden states &lt;em&gt;in addition to&lt;/em&gt; the KV cache during inference.&lt;/p&gt;

&lt;p&gt;Meanwhile, the trend in large models (GQA, MLA) is to &lt;strong&gt;aggressively compress the KV cache&lt;/strong&gt; — DeepSeek uses MLA to compress from 128×d down to 4×d. Adding extra persistent states &lt;em&gt;outside&lt;/em&gt; the KV cache? That's swimming against the current.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Depth-Attention's insight is exactly this contradiction: can we leverage the Q, K, V already inside the attention module, in the same place, without any external state, to achieve cross-layer selective mixing?&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2. How Depth-Attention Works: Rotating "Sequence Attention" by 90 Degrees
&lt;/h2&gt;

&lt;p&gt;The answer is remarkably simple.&lt;/p&gt;

&lt;p&gt;Standard self-attention operates on the &lt;strong&gt;sequence dimension&lt;/strong&gt; — "the current token attends to all tokens in the sequence."&lt;/p&gt;

&lt;p&gt;Depth-Attention rotates this operation &lt;strong&gt;90 degrees&lt;/strong&gt; — performing the exact same thing on the &lt;strong&gt;depth dimension&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;For layer ℓ, token t:
q_ℓ^t · k_j^t  (current layer query × each shallower layer's key, at the same token position)
  → softmax → depth attention weights α
  → weighted mixture ṽ (depth-mixed value)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The final step is key — everything in self-attention stays unchanged (no Q modification, no K modification, no mask change), &lt;strong&gt;only the value is replaced with the depth-mixed version&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;O_ℓ&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;CausalAttn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Q_ℓ&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;K_ℓ&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;V&lt;/span&gt;&lt;span class="err"&gt;̃&lt;/span&gt;&lt;span class="n"&gt;_ℓ&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;   &lt;span class="c1"&gt;# Ṽ_ℓ replaces the original V_ℓ
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Three elegant properties:
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1. Zero new parameters.&lt;/strong&gt; Depth-Attention fully reuses the Q and K projection matrices already in standard self-attention — the same Q serves both sequence-direction and depth-direction attention. No new parameter matrices at all.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Zero additional KV cache.&lt;/strong&gt; The depth-mixed Ṽ has exactly the same shape as the original V (T×d). During inference, it &lt;strong&gt;replaces&lt;/strong&gt; rather than &lt;strong&gt;appends&lt;/strong&gt; — Ṽ goes into the original V cache slot. Subsequent tokens reading that slot automatically get the depth-mixed version — so the persistent state at inference is identical to a vanilla decoder's KV cache. Not a single byte extra.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Recursive information propagation — the paper's most ingenious design.&lt;/strong&gt; Let me write out the formula clearly:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;v&lt;/span&gt;&lt;span class="err"&gt;̃&lt;/span&gt;&lt;span class="n"&gt;_ℓ&lt;/span&gt;&lt;span class="o"&gt;^&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;α_ℓ&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;ℓ&lt;/span&gt; &lt;span class="err"&gt;·&lt;/span&gt; &lt;span class="n"&gt;v_ℓ&lt;/span&gt;&lt;span class="o"&gt;^&lt;/span&gt;&lt;span class="nf"&gt;t  &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;current&lt;/span&gt; &lt;span class="n"&gt;layer&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;s own value)
       + Σ_{j&amp;lt;ℓ} α_ℓ,j · ṽ_j^t  (previous layers&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt; &lt;span class="n"&gt;already&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;mixed&lt;/span&gt; &lt;span class="n"&gt;values&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Notice the second term: the mixture uses not the &lt;em&gt;raw&lt;/em&gt; v_j, but the &lt;strong&gt;already depth-mixed ṽ_j&lt;/strong&gt;. This means information propagates &lt;strong&gt;cascadingly&lt;/strong&gt; — ṽ_4 contains all mixed info from ṽ_0 through ṽ_3. When ṽ_16 reads from ṽ_4, it gets not just layer 4's raw value, but depth-mixed information already processed by layer 4.&lt;/p&gt;

&lt;p&gt;If it mixed raw v_j, layer 10 could only directly access layer 2's value — with 8 layers of residual stream attenuation in between, the signal is highly degraded. But mixing ṽ_j means: layer 6 reads layer 4 → layer 4's ṽ already contains layer 0's info → layer 10 reads layer 6 → it also indirectly gains contributions from layer 0 and layer 2.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A recursive structure achieves efficient propagation.&lt;/strong&gt; This allows shallow representations to penetrate through many intermediate layers and continue influencing deep layers.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Counter-Intuitive Ablation: More Layers Isn't Always Better
&lt;/h2&gt;

&lt;p&gt;If every layer attended to &lt;em&gt;all&lt;/em&gt; shallower layers, the compute cost would be O(TL²) — non-trivial in deep networks, especially with pipeline parallelism's cross-device communication overhead.&lt;/p&gt;

&lt;p&gt;Depth-Attention addresses this with &lt;strong&gt;strided sampling&lt;/strong&gt;: each layer only attends a sparse subset — itself + {0, s, 2s, ...} among the shallower layers.&lt;/p&gt;

&lt;p&gt;With s=4, layer 20 attends {20, 16, 12, 8, 4, 0}, skipping the 14 layers in between.&lt;/p&gt;

&lt;p&gt;Complexity drops to O(TL/s); with s large enough, it approaches O(T), completely negligible.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;But the most counter-intuitive result is the ablation study:&lt;/strong&gt; the paper tested different strides. The result was &lt;strong&gt;not&lt;/strong&gt; "more is better." &lt;strong&gt;s = L/2 (half the total layers) performed best&lt;/strong&gt; — better than denser s=L/4 and sparser s=L.&lt;/p&gt;

&lt;p&gt;Why? The paper doesn't give a definitive explanation, but I think this phenomenon hints at an important principle: &lt;strong&gt;there may be an optimal "reception interval" for information propagation across depth — too dense creates redundancy (adjacent layers' values are highly correlated), too sparse loses critical information.&lt;/strong&gt; s=L/2 happens to provide enough "diversity windows" without falling into the trap where "layer 20's info is highly redundant with neighboring layers 16 and 14."&lt;/p&gt;

&lt;p&gt;This echoes the same design philosophy we saw in part one with Kimi K3's KDA hybrid architecture: &lt;strong&gt;it's not about stacking more — it's about choosing more wisely where to apply it.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  4. GQA Compatibility: Naturally, Freely More Efficient
&lt;/h2&gt;

&lt;p&gt;Modern large models widely use Grouped-Query Attention (GQA), where g query heads share one set of KV heads.&lt;/p&gt;

&lt;p&gt;Depth-Attention handles GQA extremely naturally: &lt;strong&gt;average the g queries within each group, running depth attention at KV head resolution — not query head resolution.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This brings two additional benefits:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;KV head dimension is already several times smaller than hidden size (typically 4x) — running depth attention in this space further shrinks compute and memory&lt;/li&gt;
&lt;li&gt;No head-dimension expansion or alignment needed — just average g queries, zero hyperparameter changes&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;In other words: &lt;strong&gt;Depth-Attention is not only overhead-free in GQA scenarios, it's actually &lt;em&gt;more&lt;/em&gt; efficient than in non-GQA scenarios — because depth attention's operating space is naturally compressed by GQA.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Experimental Results: What's the Actual Gain?
&lt;/h2&gt;

&lt;p&gt;The paper ran experiments on Qwen3-style decoder architectures at 1.5B and 3B scales. All models were trained from scratch on 32B tokens from the Pile, with identical data and hyperparameters — a fair comparison.&lt;/p&gt;

&lt;p&gt;Baselines included: Vanilla Transformer, mHC (manifold hyper-connections), Attention Residuals (Kimi K3's approach), and DenseFormer.&lt;/p&gt;

&lt;h3&gt;
  
  
  Key results
&lt;/h3&gt;

&lt;p&gt;At 1.5B scale, zero-shot:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Vanilla Transformer average downstream accuracy: 51.26&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Depth-Attention: 53.56&lt;/strong&gt; (+2.3 points)&lt;/li&gt;
&lt;li&gt;Attention Residuals and mHC fall between Vanilla and Depth-Attention&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At 3B scale, the gap widens — Depth-Attention reduces perplexity to 6.66 (Vanilla: 7.10), and average accuracy improves from 53.08 to 55.27 (+2.19 points), comprehensively beating all baselines.&lt;/p&gt;

&lt;p&gt;Under 5-shot settings, the pattern holds — Depth-Attention is best at both scales.&lt;/p&gt;

&lt;p&gt;Notably: Attention Residuals, as the strongest baseline, does significantly beat Vanilla — the paper acknowledges this clearly — but Depth-Attention surpasses it on every metric, and does so &lt;em&gt;without adding any inference state.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Efficiency: theory vs. measurements
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Theoretical FLOPs:&lt;/strong&gt; The paper's Appendix B provides detailed derivations of extra FLOPs for each method. Counting per decoder layer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Depth-Attention extra compute: ≈ 2Td/s FLOPs (s = stride, d = head dim)&lt;/li&gt;
&lt;li&gt;DenseFormer extra compute: ≈ T·d_model·L (weighted summation across all layers)&lt;/li&gt;
&lt;li&gt;Attention Residuals extra compute: ≈ T·d_model·L (similar magnitude)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Plugging in typical values (T=4096, d_model=2048, L=32, s=16), Depth-Attention's extra FLOPs are &lt;strong&gt;less than 0.01% of self-attention FLOPs.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Training wall-clock:&lt;/strong&gt; On a 3B model, Depth-Attention adds only ~1% per-step training time — significantly less than DenseFormer and Attention Residuals.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Inference throughput:&lt;/strong&gt; At 128K token prefill, Depth-Attention throughput is essentially identical to Vanilla (&amp;lt;0.5% difference). Hidden-state methods, by contrast, need explicit extra state management in long-context scenarios, with noticeably higher memory usage.&lt;/p&gt;

&lt;h3&gt;
  
  
  Scaling experiments
&lt;/h3&gt;

&lt;p&gt;The paper tested four scales from 360M to 3B. Depth-Attention maintains its advantage at all scales, with gains showing no sign of saturation. This suggests larger models may also benefit — though this hasn't been verified at 70B+ scale (a limitation the paper acknowledges).&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Weight Visualization: What Did the Model Learn?
&lt;/h2&gt;

&lt;p&gt;The paper visualizes the trained Depth-Attention weight distributions, with several interesting findings:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Early layers focus their depth attention on deeper information sources, not shallower ones.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Concretely: Layers 1-8 (early layers) have self-attention weights dominating in depth attention (α_ℓ,ℓ close to 1) — they don't look much at shallower layers, because there simply aren't enough shallower layers.&lt;/p&gt;

&lt;p&gt;But layers 9-32 (the second half) start dispersing their depth attention weights: deep layers still retain large self-attention weights (preserving their own features) but radiate uniformly toward middle layers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Shallower isn't necessarily more important.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Intuition might suggest "shallow features are more fundamental, deep layers should attend more to them." But from the weight plots, deep layers (e.g., layer 30) don't assign higher attention weights to very shallow layers (layer 0, 4) than to middle layers (layer 12, 16).&lt;/p&gt;

&lt;p&gt;This hints at an interesting learned strategy: &lt;strong&gt;the model learns to extract information at different granularities from different depth levels, rather than simply treating shallow layers as an "information repository."&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Some attention heads are more cross-layer-dependent than others.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Different heads show different degrees of dependence on depth information. Some heads have self-attention weights close to 1 at almost all layers (barely looking at other layers), while others have dispersed weights across the entire depth dimension (actively leveraging cross-layer information). The model thus gains flexibility — use "self-attention-heavy" heads when local fine-grained processing is needed, and "cross-layer-heavy" heads when contextual fusion is needed.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Looped Transformer Experiment: Parameter Sharing Works Too
&lt;/h2&gt;

&lt;p&gt;This is one of the paper's most profound experiments. A Looped Transformer has only a few physical layers (e.g., 4 layers) that execute in a loop (e.g., 8 cycles = 32 total effective layers), with all cycles sharing the same parameters.&lt;/p&gt;

&lt;p&gt;Depth-Attention's gains persist in this setting — each loop cycle acts as a new "logical layer" that can attend to the values from its own previous cycles.&lt;/p&gt;

&lt;p&gt;This result rules out a possible explanation: "Depth-Attention works because different layers have different parameters, so their value semantics differ, making them worth retrieving." In the parameter-sharing scenario, values from different layers are still selectively passed through depth attention — proving that the mechanism's benefit doesn't depend on "different parameters per layer," but rather that &lt;strong&gt;selective cross-depth information transfer is inherently valuable.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Taking it deeper: this result hints at a potential relationship between Depth-Attention and recurrence/SSMs. If parameter sharing works, what Depth-Attention is doing is somewhat like a &lt;strong&gt;soft state-space model&lt;/strong&gt; — selectively remembering and retrieving depth-history information in the value dimension, rather than propagating through fixed residuals.&lt;/p&gt;

&lt;h2&gt;
  
  
  8. Depth-Attention vs. Kimi K3's Attention Residuals: A Design Philosophy Divergence
&lt;/h2&gt;

&lt;p&gt;This is the most fascinating comparison — they solve the same problem but choose different positions.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Attention Residuals&lt;/th&gt;
&lt;th&gt;Depth-Attention&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Operation point&lt;/td&gt;
&lt;td&gt;On residual stream (outside module)&lt;/td&gt;
&lt;td&gt;Inside attention (value position)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Target&lt;/td&gt;
&lt;td&gt;Hidden states&lt;/td&gt;
&lt;td&gt;V cache slots&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Extra inference state&lt;/td&gt;
&lt;td&gt;Required (retain shallow hidden)&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;None&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Extra parameters&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Zero&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Information granularity&lt;/td&gt;
&lt;td&gt;Full hidden state (rich)&lt;/td&gt;
&lt;td&gt;Value state (compressed)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Performance (paper comparison)&lt;/td&gt;
&lt;td&gt;Better than vanilla&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Better (at 1.5B/3B)&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Both share the same conceptual origin — enabling deeper layers to selectively attend to shallower ones. The difference is in the tradeoff:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Attention Residuals operates at the &lt;strong&gt;most information-rich&lt;/strong&gt; position (hidden state), but at a cost&lt;/li&gt;
&lt;li&gt;Depth-Attention operates at the &lt;strong&gt;cheapest&lt;/strong&gt; position (V cache), at zero additional cost&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This divergence doesn't have a final answer yet: who wins at 70B+ scale? Nobody knows. But one thing is clear — &lt;strong&gt;Depth-Attention found a "free lunch" path.&lt;/strong&gt; It proved that you don't need to add anything outside the KV cache to get all the benefits of cross-layer selective information transfer.&lt;/p&gt;

&lt;p&gt;This isn't a free lunch — it's the lunch you were already eating, you just didn't realize you could eat it better.&lt;/p&gt;

&lt;h2&gt;
  
  
  9. What This Means
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Architecture evolution: one horizontal, one vertical&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The first article covered sequence-direction (horizontal) attention evolution from full attention to KDA — that was "how to remember more information with less state."&lt;/p&gt;

&lt;p&gt;This article completes the inter-layer (vertical) direction — "how to let deep layers selectively use shallow representations without paying extra."&lt;/p&gt;

&lt;p&gt;Put together:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;      ← Sequence direction (horizontal) →
      Full Attn → KV Cache → Linear Attn → DeltaNet → KDA
      (compute → memory → compression → precision → hybrid recipe)

   ↑
   Inter-layer direction (vertical)
   Residual → DenseFormer → Attention Residuals → Depth-Attention
   (sum → weighted → attention → zero-cost attention)
   ↓
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;For model users:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Next time you see a model claiming "cheap long context," don't just look at parameter count and context window — ask "what's your inter-layer communication scheme? How does information flow in the depth direction?"&lt;/li&gt;
&lt;li&gt;Kimi K3 uses Attention Residuals; the next version might switch to Depth-Attention or a variant — keep an eye on this thread&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;For model trainers:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Depth-Attention's zero-parameter nature means a &lt;strong&gt;lossless drop-in replacement&lt;/strong&gt;: no weight changes, no cache changes, no pipeline changes — just modify a few lines of attention code and reliably gain ~2 points&lt;/li&gt;
&lt;li&gt;The paper's code is open-source on GitHub, with a pre-trained 3B checkpoint on HuggingFace for verification&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;For technical investors:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The design philosophy divergence (hidden state vs. value state path) could influence next-generation model architecture choices&lt;/li&gt;
&lt;li&gt;Inter-layer communication is becoming a core optimization dimension alongside "attention compression"&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  10. Limitations (Frankly)
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Limited validation scale.&lt;/strong&gt; The 1.5B and 3B experiments are convincing (32B tokens trained from scratch, 8 downstream tasks), but whether results replicate at 70B+ scale remains unknown. The paper acknowledges this.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Mechanism explanation for optimal stride is missing.&lt;/strong&gt; s=L/2 working best is an empirical finding — why this value, and whether better non-uniform sampling strategies exist, leave significant analysis space.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Interaction with other optimizations under-explored.&lt;/strong&gt; Effects when combined with MoE (e.g., K3's 896 experts), compatibility with MLA, differential behavior in prefill vs. decode phases — all await follow-up work.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Is the "dual attention" structure of depth + sequence optimal?&lt;/strong&gt; This is an architectural question — perhaps a future unified primitive will fuse both directional attentions into one operation. Depth-Attention is an important step, but not necessarily the last.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://arxiv.org/abs/2606.05014" rel="noopener noreferrer"&gt;Depth-Attention: Cross-Layer Value Mixing for Language Models&lt;/a&gt; — Boyi Zeng et al., Shanghai Jiao Tong University LUMIA Lab, ICML 2026&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/LUMIA-Group/Depth-Attention" rel="noopener noreferrer"&gt;Code &amp;amp; Models&lt;/a&gt; — GitHub + HuggingFace (3B checkpoint available)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://arxiv.org/abs/2603.15031" rel="noopener noreferrer"&gt;Attention Residuals&lt;/a&gt; — Kimi Team, 2026 (cross-layer mechanism used in Kimi K3)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://arxiv.org/abs/2402.02622" rel="noopener noreferrer"&gt;DenseFormer&lt;/a&gt; — Pagliardini et al., NeurIPS 2024&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://arxiv.org/abs/2404.05026" rel="noopener noreferrer"&gt;Hyper-Connections / mHC&lt;/a&gt; — Zhu et al., 2025&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://arxiv.org/abs/2305.13245" rel="noopener noreferrer"&gt;GQA&lt;/a&gt; — Ainslie et al., EMNLP 2023&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;This is the second article in the "Attention Mechanism Evolution" series. Part one covered the horizontal (sequence-direction) evolution — from GPT-2's full attention to Kimi K3's KDA hybrid architecture, with cross-validation across 5 papers, a complete evolution table, and code-level analysis. Part three preview: from sparse attention to MoE — why K3's 896 experts only activate 1.8%.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>deeplearning</category>
      <category>transformers</category>
      <category>machinelearning</category>
      <category>ai</category>
    </item>
    <item>
      <title>5 LAN File Transfer Tools Compared: Up to 40x Faster Than Cloud, Two Don't Even Need Installation</title>
      <dc:creator>AICDragon</dc:creator>
      <pubDate>Sun, 09 Aug 2026 14:34:08 +0000</pubDate>
      <link>https://dev.to/cdragon123code/5-lan-file-transfer-tools-compared-up-to-40x-faster-than-cloud-two-dont-even-need-installation-31bh</link>
      <guid>https://dev.to/cdragon123code/5-lan-file-transfer-tools-compared-up-to-40x-faster-than-cloud-two-dont-even-need-installation-31bh</guid>
      <description>&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Transferring a 1GB file over your home Wi-Fi? Cloud-based messengers take ~3 minutes. LAN tools do it in under 5 seconds. This article synthesizes benchmarks from MakeUseOf, XDA Developers, DEV Community, and Speedyshare - plus five GitHub issue deep-dives - to give you one clear recommendation per use case.&lt;/p&gt;




&lt;h2&gt;
  
  
  First, the Numbers
&lt;/h2&gt;

&lt;p&gt;Here's a fact you might not believe: on your home Wi-Fi, sending a 1GB video file to your laptop via WeChat/WhatsApp takes about 3 minutes. With a LAN direct-transfer tool under the same conditions? Under 5 seconds.&lt;/p&gt;

&lt;p&gt;That's a ~40x gap.&lt;/p&gt;

&lt;p&gt;Here's why: cloud messengers route through remote servers, bottlenecked by your upload bandwidth (typically 30-50 Mbps on residential connections). LAN tools go device-to-device over local Wi-Fi, routinely hitting 200-400 Mbps or higher.&lt;/p&gt;

&lt;p&gt;This article has one goal: find the right LAN transfer tool for &lt;em&gt;your&lt;/em&gt; situation - so you can downgrade your messenger's file transfer to "meme and screenshot duty only."&lt;/p&gt;




&lt;h2&gt;
  
  
  Three Things Before We Start
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;First, data provenance.&lt;/strong&gt; This isn't a single-machine benchmark. Speed data comes from published tests by MakeUseOf (2025-2026), Speedyshare (2026), XDA Developers (July 2026), DEV Community (April 2025), and Brave2049 (2025). I also combed through five GitHub repositories' issue sections for long-term community sentiment. This article's value is "synthesizing scattered information to help you decide" - not "running benchmarks for you."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Second, this isn't a tool catalog.&lt;/strong&gt; Plenty of articles list these tools. They rarely offer a decision framework. This one maps six common scenarios to one clear answer each.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Third, nomenclature.&lt;/strong&gt; "AirDrop" means Apple's AirDrop. "Quick Share" means the Android/Windows equivalent. When I say "LAN tools," I mean any tool that transfers files directly over local Wi-Fi without routing through an external server.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Five Contenders
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tool&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;GitHub Stars&lt;/th&gt;
&lt;th&gt;Core Advantage&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;LocalSend&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Native App&lt;/td&gt;
&lt;td&gt;86,000+&lt;/td&gt;
&lt;td&gt;Most stable, fastest, safest. Open-source AirDrop for everything&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;PairDrop&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Browser&lt;/td&gt;
&lt;td&gt;Snappedrop fork&lt;/td&gt;
&lt;td&gt;Zero installation. Open a URL, start transferring&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Blip&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Native App&lt;/td&gt;
&lt;td&gt;Newcomer (2025)&lt;/td&gt;
&lt;td&gt;Speed dark horse, no file size limits&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Snapdrop&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Web&lt;/td&gt;
&lt;td&gt;20,000 (legacy)&lt;/td&gt;
&lt;td&gt;Former gold standard, now acquired by LimeWire&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;ShareDrop&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Web&lt;/td&gt;
&lt;td&gt;Classic project&lt;/td&gt;
&lt;td&gt;Only one with multi-user room sharing&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;These five fall into two camps: &lt;strong&gt;native apps&lt;/strong&gt; (LocalSend, Blip) - fast but requires installation; &lt;strong&gt;browser tools&lt;/strong&gt; (PairDrop, ShareDrop) - zero friction but speed-capped by the browser runtime. Snapdrop is its own category: it &lt;em&gt;was&lt;/em&gt; the browser champion. It isn't anymore.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Deep Dive
&lt;/h2&gt;

&lt;h3&gt;
  
  
  LocalSend: If You Only Install One, Make It This
&lt;/h3&gt;

&lt;p&gt;86,000+ GitHub stars. Apache 2.0 license. Built with Flutter - native clients for Windows, macOS, Linux, iOS, Android. Once installed, devices on the same Wi-Fi appear automatically. One tap to send, one tap to receive. Feels almost exactly like AirDrop.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;On security, LocalSend is the most serious LAN transfer tool I've seen.&lt;/strong&gt; Each device locally generates TLS/SSL certificates on the fly. Transfers use HTTPS encryption. Files never touch any external server - you can even use it with the internet disconnected (LAN-only). In GitHub issue #979 (2024), a user asked about transfer speed; the developer responded that stability was prioritized over raw speed, and community reaction was overwhelmingly positive.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real-world speeds:&lt;/strong&gt; DEV Community ran a 50GB / 100-file mixed stress test in April 2025 across five different systems (MacBook Pro M3, iPhone 16, Pixel 9, Ryzen 7 Windows desktop, ThinkPad X1 Ubuntu). On Wi-Fi 6, LocalSend's cross-platform throughput held steady at 200-400 Mbps. Translation: a 1GB file transfers in 3 to 15 seconds. Compared to Snapdrop's WebRTC approach in the same test, LocalSend was roughly 3-5x faster.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The one downside:&lt;/strong&gt; every device needs the app installed. For your own devices, this is a non-issue - install once, done forever. But if you're sending a file to someone one-off, the "install this app first" friction kills the experience. That's where PairDrop comes in.&lt;/p&gt;

&lt;p&gt;One more tip: LocalSend's default discovery setting is visible to everyone on the same network. If you're at a coffee shop or corporate Wi-Fi, go to Settings and turn off "Allow discovery by everyone" or enable "Known devices only." Security is fine (transfers are encrypted) - this is about privacy.&lt;/p&gt;

&lt;h3&gt;
  
  
  PairDrop: The Zero-Install Plan B
&lt;/h3&gt;

&lt;p&gt;PairDrop has a story. Its predecessor, Snapdrop, was once &lt;em&gt;the&lt;/em&gt; name in LAN transfers - open a website, auto-discover, send. 20K stars. Clean and simple. Then, in February 2025, LimeWire (yes, &lt;em&gt;that&lt;/em&gt; LimeWire from the P2P music era) quietly acquired Snapdrop.&lt;/p&gt;

&lt;p&gt;GitHub Issue #651 "Intransparent switch to LimeWire" got 58 thumbs-ups. Issue #663 "SnapDrop.net has been replaced by PairDrop.net" got 44. The community reaction was crystal clear: we trusted Snapdrop because it was open-source, peer-to-peer, zero-server. Now LimeWire handles your data - and no one knows what their data retention policy is.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;PairDrop was born in this moment.&lt;/strong&gt; Community members forked Snapdrop's pre-acquisition source, renamed it PairDrop, and kept it running as pure WebRTC P2P. Functionally identical: two devices open pairdrop.net, auto-discover, send. WebRTC DTLS encryption, files never leave your LAN. Two bonus features: device pairing (lock to a specific device - no broadcasting to the entire network) and temporary text messaging.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Speed-wise:&lt;/strong&gt; WebRTC in a browser has inherent limits. Typically 50-100 Mbps. Slower than native apps, but perfectly fine for one-off use - a 1GB file takes 1-2 minutes, still about twice as fast as cloud messengers, and zero compression.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use case:&lt;/strong&gt; you need to send a big file to a friend, colleague, or client. They don't need to install anything. Send them a URL.&lt;/p&gt;

&lt;h3&gt;
  
  
  Blip: The Speed Dark Horse (Not Yet Fully Proven)
&lt;/h3&gt;

&lt;p&gt;A 2025 newcomer. blip.net offers native clients for all platforms. Three selling points: "no file size limits," "folder transfer without zipping," and "resumable transfers."&lt;/p&gt;

&lt;p&gt;MakeUseOf ran a LocalSend vs Blip vs PairDrop speed comparison in December 2025. The result surprised a lot of people: &lt;strong&gt;Blip was the fastest of the three in certain transfer scenarios.&lt;/strong&gt; XDA Developers published &lt;em&gt;"I tried replacing Quick Share with LocalSend, PairDrop, and Blip - only one became my go-to"&lt;/em&gt; in July 2026. The author chose Blip as their daily driver, noting "speed is absurd" and "folder transfer is the killer feature you can't go back from."&lt;/p&gt;

&lt;p&gt;But Blip has one critical uncertainty: it's not fully open-source. Compared to LocalSend's 86K stars of community trust, Blip's transparency is significantly lower. If "where does my file go?" matters to you, LocalSend is the safer bet.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use case:&lt;/strong&gt; you frequently transfer very large files or entire folders (video footage, VM images, datasets) and you don't mind using a partially closed-source tool.&lt;/p&gt;

&lt;h3&gt;
  
  
  Snapdrop: Don't Use It. Seriously.
&lt;/h3&gt;

&lt;p&gt;The first half of Snapdrop's story was told above. Here's the post-acquisition reality: file transfers now route through LimeWire's cloud infrastructure instead of staying purely on your LAN. The acquirer has published no data retention policy. No clear privacy statement.&lt;/p&gt;

&lt;p&gt;This isn't speculation. Speedyshare wrote in July 2026: &lt;em&gt;"Snapdrop now routes through Limewire's cloud after its 2025 acquisition, so treat it with caution."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;If you have Snapdrop bookmarked, delete it. Replace with pairdrop.net. Same functionality. Your files stay on your network.&lt;/p&gt;

&lt;h3&gt;
  
  
  ShareDrop: The "Conference Room" Option
&lt;/h3&gt;

&lt;p&gt;Web-based tool, same WebRTC foundation as PairDrop. The one and only differentiator: &lt;strong&gt;room functionality.&lt;/strong&gt; Create a room, multiple people join, anyone drops files in, everyone sees them in real-time.&lt;/p&gt;

&lt;p&gt;Two ideal scenarios: small-team offices (no need for individual transfers) and remote collaboration sessions (PairDrop works too, but a shared room is more convenient with multiple people).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; ShareDrop's room is for discovery and organization only. File transfer is still WebRTC P2P - nothing goes through a server. This is fundamentally different from Snapdrop's cloud routing.&lt;/p&gt;




&lt;h2&gt;
  
  
  One Limitation Every Tool Shares
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;You must be on the same Wi-Fi network.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;LAN transfer tools work via device-to-device direct connection. They discover each other through local network broadcast. Transfers happen over Wi-Fi private IPs. No internet involved. If you're not on the same network, all five tools do nothing.&lt;/p&gt;

&lt;p&gt;This is a physical constraint, not a product flaw. But it's the #1 source of confusion for first-time users: "Why can't my phone on the subway reach my office desktop?" Because you're not on the same LAN.&lt;/p&gt;

&lt;p&gt;If you need cross-network transfers (office desktop ? home phone), you need cloud-relay or NAT traversal solutions. That's a different product category entirely.&lt;/p&gt;




&lt;h2&gt;
  
  
  My Actual Setup: Two Tools Is All You Need
&lt;/h2&gt;

&lt;p&gt;After two years using these tools daily, my setup is dead simple:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;LocalSend&lt;/strong&gt; on three primary devices (phone, laptop, desktop). Daily photos, screenshots, documents, archives - arrive in seconds. Two taps per transfer.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PairDrop&lt;/strong&gt; as occasional backup. One-off big file sends to other people. They open a URL in their browser. From "let me send you something" to "got it" averages 15 seconds.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Messengers for file transfer? Downgraded to meme and screenshot channels only.&lt;/p&gt;




&lt;h2&gt;
  
  
  Key Takeaways
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;LAN transfer tools are 5-40x faster than cloud messengers - and they don't compress quality.&lt;/strong&gt; The speed gap aside, cloud messengers apply lossy compression that degrades images and video. LAN tools transfer raw, bit-for-bit.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;For your own devices: LocalSend.&lt;/strong&gt; 86K stars, fully open-source, all platforms supported, encrypted. Install once, done for life. The safest choice in this category.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;For sending to others: PairDrop.&lt;/strong&gt; Zero-install means the "let me send you a file" conversation goes from "hold on... install this... did you find it yet..." to "open this URL." Simple to the point of being undeniable.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Snapdrop is no longer the Snapdrop you remember.&lt;/strong&gt; Post-LimeWire acquisition, files travel through their cloud. Privacy policy unknown. Switch to PairDrop - it's what Snapdrop was when it was still clean.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pick the right tool, not the most tools.&lt;/strong&gt; For most people, LocalSend alone does the job. Don't fall into the "try every tool" trap. Using the right one beats trying them all.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://speedyshare.app/blog/snapdrop-vs-localsend-vs-pairdrop" rel="noopener noreferrer"&gt;Speedyshare: Snapdrop vs LocalSend vs PairDrop (2026)&lt;/a&gt; - Feature comparison and scenario recommendations&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://dev.to/michael_sun_18a5c4c96768d/localsend-vs-airdrop-vs-snapdrop-vs-pixeldrop-100-files-cross-platform-transfer-real-world-speed-2fc4"&gt;DEV Community: LocalSend vs AirDrop vs SnapDrop vs PixelDrop&lt;/a&gt; - 100-file / 50GB cross-platform throughput benchmark&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.makeuseof.com/file-transfer-speed-test-localsend-blip-pairdrop/" rel="noopener noreferrer"&gt;MakeUseOf: I speed-tested LocalSend, Blip, and PairDrop (2025)&lt;/a&gt; - Source of Blip surpassing LocalSend in speed&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.xda-developers.com/tried-replacing-quick-share-with-localsend-pairdrop-and-blip/" rel="noopener noreferrer"&gt;XDA: I tried replacing Quick Share with LocalSend, PairDrop, and Blip (2026-07)&lt;/a&gt; - Author's final pick for Blip&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://en.linuxadictos.com/LocalSend-vs-Warpinator%3A-A-Real-World-Local-Area-Network-Comparison.html" rel="noopener noreferrer"&gt;Linuxadictos: LocalSend vs Warpinator real-world comparison&lt;/a&gt; - Linux-specific comparison&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://brave2049.com/ju-yu-wang-kua-ping-tai-wen-jian-chuan-shu-gong-ju-de-shen-ru-dui-bi-2025-ban/" rel="noopener noreferrer"&gt;Brave2049: LAN cross-platform file transfer comparison (2025)&lt;/a&gt; - Snapdrop/ShareDrop/LocalSend 3D comparison&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/SnapDrop/snapdrop/issues/651" rel="noopener noreferrer"&gt;GitHub: Snapdrop Issue #651 - Intransparent switch to LimeWire&lt;/a&gt; - Community reaction to LimeWire acquisition&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/SnapDrop/snapdrop/issues/663" rel="noopener noreferrer"&gt;GitHub: Snapdrop Issue #663 - SnapDrop.net has been replaced by PairDrop.net&lt;/a&gt; - Community migration direction&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/localsend/localsend" rel="noopener noreferrer"&gt;LocalSend GitHub&lt;/a&gt; - 86K+ stars, Apache 2.0&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://pairdrop.net" rel="noopener noreferrer"&gt;PairDrop&lt;/a&gt; - Snapdrop community fork, pure browser solution&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://blip.net" rel="noopener noreferrer"&gt;Blip&lt;/a&gt; - Native app, no file size limits&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>productivity</category>
      <category>tools</category>
      <category>networking</category>
      <category>opensource</category>
    </item>
    <item>
      <title>I Talked to an Elon Musk AI About Product Management — Here's What It Said About Surviving the AI Wave</title>
      <dc:creator>AICDragon</dc:creator>
      <pubDate>Sat, 08 Aug 2026 16:12:43 +0000</pubDate>
      <link>https://dev.to/cdragon123code/i-talked-to-an-elon-musk-ai-about-product-management-heres-what-it-said-about-surviving-the-ai-2j0d</link>
      <guid>https://dev.to/cdragon123code/i-talked-to-an-elon-musk-ai-about-product-management-heres-what-it-said-about-surviving-the-ai-2j0d</guid>
      <description>&lt;h1&gt;
  
  
  I Talked to an Elon Musk AI About Product Management — Here's What It Said
&lt;/h1&gt;

&lt;p&gt;&lt;em&gt;"The only rules you have to follow are the laws of physics — everything else is a recommendation."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Lately, I've been seeing a wave of "personality skills" for AI assistants — distillations of bosses, colleagues, exes, mentors. You name it, someone's bottled it. So I installed an Elon Musk Skill into my AI assistant and asked it one question:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"How does an AI product manager break out in this market?"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;What came back wasn't a listicle. It was a first-principles operating system. Here's what the Musk skill said, verbatim.&lt;/p&gt;




&lt;h2&gt;
  
  
  First, Let's Calculate the Asymptotic Limit of an AI PM
&lt;/h2&gt;

&lt;p&gt;A perfect AI PM, in theory, should be able to convert user needs into scalable AI capabilities with zero friction. No need to write code — but understands technical boundaries. No need to do research — but understands model capabilities. No need to run operations — but understands data flywheels.&lt;/p&gt;

&lt;p&gt;Reality check. What are most AI PMs actually doing?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Waiting for the model team to publish API docs&lt;/li&gt;
&lt;li&gt;Copying competitor feature lists&lt;/li&gt;
&lt;li&gt;Writing PRDs and waiting for review&lt;/li&gt;
&lt;li&gt;Staring at dashboards waiting for "insights"&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The idiot index on this is at least 10.&lt;/strong&gt; Too many middle layers, and every single one is taxing you for information opacity.&lt;/p&gt;




&lt;h2&gt;
  
  
  Where Does Your Edge Come From?
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Vertically Integrate Your Capability Stack
&lt;/h3&gt;

&lt;p&gt;Here's how most people approach becoming an AI PM:&lt;/p&gt;

&lt;p&gt;Take a course → Get certified → Apply for jobs → Wait for interviews → Get hired → Learn the tools&lt;/p&gt;

&lt;p&gt;This is outsourced thinking. Every layer depends on someone else defining the standard.&lt;/p&gt;

&lt;p&gt;Here's the vertically integrated path:&lt;/p&gt;

&lt;p&gt;Build something real with an API → Hit genuine problems → Read the docs to solve them → Iterate → Iterate again&lt;/p&gt;

&lt;p&gt;It's not "learn AI product management." It's &lt;strong&gt;"build products with AI."&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Action:&lt;/strong&gt; This week, use any API — OpenAI, Claude, whatever — to build something that solves &lt;em&gt;your own&lt;/em&gt; problem. Even if it's just a script that auto-organizes your inbox. Manufacturing is 10x harder than designing. You'll learn more from building one thing than from reading ten "AI PM starter guides."&lt;/p&gt;




&lt;h3&gt;
  
  
  2. Question the Need to "Learn" in the First Place
&lt;/h3&gt;

&lt;p&gt;Who told you that you need to "learn" before you can start?&lt;/p&gt;

&lt;p&gt;When I started SpaceX in 2002, nobody said "you should go study rocket science first." I read books. I asked people. Then I started designing rockets. The first three exploded. The fourth one worked — and landed a $1.6 billion NASA contract.&lt;/p&gt;

&lt;p&gt;AI products are much simpler than rockets. Nobody dies when an API call fails. Wrong prompt? Tweak it and try again.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Your current state:&lt;/strong&gt; "I need to learn first, then I'll start building."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The correct state:&lt;/strong&gt; "I start building, and I learn what I need along the way."&lt;/p&gt;

&lt;p&gt;Order matters. Getting it backwards costs you a 10x efficiency penalty.&lt;/p&gt;




&lt;h3&gt;
  
  
  3. Find Your Battery Factory
&lt;/h3&gt;

&lt;p&gt;Tesla's turning point wasn't the Roadster. It was the decision to build their own battery factory.&lt;/p&gt;

&lt;p&gt;Everyone said: "Just buy battery cells from suppliers. Why would you manufacture your own?" Because I did the math. The supply chain markup was absurd.&lt;/p&gt;

&lt;p&gt;What's your battery factory?&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Surface Skill&lt;/th&gt;
&lt;th&gt;Deep Moat&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Knows how to use ChatGPT&lt;/td&gt;
&lt;td&gt;Understands the token-cost-to-latency tradeoff&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Can write a PRD&lt;/td&gt;
&lt;td&gt;Can calculate the unit economics of an AI feature&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Studies competitors&lt;/td&gt;
&lt;td&gt;Has proprietary datasets and evaluation benchmarks&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Can craft a prompt&lt;/td&gt;
&lt;td&gt;Knows model capability boundaries and failure modes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Most people stop at the surface. Because going deep takes time — you have to calculate, build, fail, and recalculate. That's exactly why it's a moat.&lt;/p&gt;




&lt;h3&gt;
  
  
  4. Rebuild Your Prep Pipeline with The Algorithm
&lt;/h3&gt;

&lt;p&gt;Here's what you're probably doing right now — run through the five-step filter:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Your Plan&lt;/th&gt;
&lt;th&gt;The Algorithm Verdict&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Take 3 AI courses&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Delete.&lt;/strong&gt; Courses update slower than the industry moves.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Get AI certifications&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Delete.&lt;/strong&gt; Nobody looks at these except training companies.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Read 20 AI books&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Delete.&lt;/strong&gt; Books are already outdated by the time they're published.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Study competitor features&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Keep&lt;/strong&gt; — but change to "reverse-engineer and reproduce."&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Learn Axure/Figma&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Keep&lt;/strong&gt; — but only the bare minimum you need.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Grind LeetCode&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Delete.&lt;/strong&gt; PMs don't need this.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Build a real project&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Accelerate.&lt;/strong&gt; This is the only thing that matters.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;If you haven't added back at least 10% of what you deleted, you didn't delete enough.&lt;/p&gt;




&lt;h3&gt;
  
  
  5. Radical Timelines
&lt;/h3&gt;

&lt;p&gt;How long are you giving yourself to "get ready"? Three months? Six months?&lt;/p&gt;

&lt;p&gt;Make it &lt;strong&gt;two weeks.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Not "two weeks until I get a job." Two weeks until you have something you can show.&lt;/p&gt;

&lt;p&gt;Timelines are management tools, not commitments. Crying wolf costs you credibility. But it also forces real speed. That tradeoff is worth it when you're starting out.&lt;/p&gt;




&lt;h2&gt;
  
  
  Concrete Action Plan
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Week 1: Build Something
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Pick a problem &lt;em&gt;you&lt;/em&gt; actually have (not "something users might want")&lt;/li&gt;
&lt;li&gt;Solve it with any AI API&lt;/li&gt;
&lt;li&gt;Deploy it — even if it's just on Vercel or Streamlit's free tier&lt;/li&gt;
&lt;li&gt;Send it to 5 people, collect feedback&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Week 2: Iterate + Reverse-Engineer
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Ship one revision based on feedback&lt;/li&gt;
&lt;li&gt;Pick 3 competitors. Reverse-engineer their tech stack, cost structure, data flywheel&lt;/li&gt;
&lt;li&gt;Write and publish an analysis. Publicly. Start building your brand.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Week 3–4: Amplify
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Post your project on Product Hunt / Hacker News / Reddit&lt;/li&gt;
&lt;li&gt;Cold-message 3 AI company PMs. Ask if they want to chat.&lt;/li&gt;
&lt;li&gt;In interviews, lead with the project. Not your resume.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  One Last Thing
&lt;/h2&gt;

&lt;p&gt;You told me: &lt;em&gt;"The AI product space moves so fast. I'm afraid I can't keep up."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;That's not a problem. That's your advantage.&lt;/p&gt;

&lt;p&gt;In fast-moving industries, experience depreciates fast and newcomers get openings. In slow-moving industries, incumbents hold their positions and you wait a decade for your turn.&lt;/p&gt;

&lt;p&gt;When SpaceX entered the rocket industry, Boeing and Lockheed had been doing this for decades. Everyone said: "There's no room for you." We calculated the asymptotic limit: raw materials for a rocket cost about 2% of the final selling price. There was a &lt;strong&gt;50x improvement gap&lt;/strong&gt; sitting right in front of everyone.&lt;/p&gt;

&lt;p&gt;AI is at that exact moment right now.&lt;/p&gt;

&lt;p&gt;The gap between what the laws of physics allow for an optimal AI product and what exists today is at least 10x.&lt;/p&gt;

&lt;p&gt;Whoever sees that gap first and starts moving — wins.&lt;/p&gt;

&lt;p&gt;Not "learn first, then start."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Start, and the learning takes care of itself.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Ship it. Tomorrow.&lt;/p&gt;




&lt;h2&gt;
  
  
  How This Article Was Written
&lt;/h2&gt;

&lt;p&gt;I installed an &lt;a href="https://github.com/alchaincyf/elon-musk-skill" rel="noopener noreferrer"&gt;Elon Musk Skill&lt;/a&gt; into OpenClaw — an open-source AI assistant framework. The skill distills Musk's core mental models (asymptotic limit thinking, the five-step algorithm, vertical integration, etc.) from his biographies, interviews, podcasts, and public statements.&lt;/p&gt;

&lt;p&gt;This is not Elon Musk's actual words. It's a thinking framework synthesized from public information, used as a lens to examine career and product decisions from a different angle.&lt;/p&gt;

&lt;p&gt;If you use OpenClaw, you can install the skill yourself: &lt;a href="https://github.com/alchaincyf/elon-musk-skill" rel="noopener noreferrer"&gt;github.com/alchaincyf/elon-musk-skill&lt;/a&gt;&lt;/p&gt;




</description>
      <category>ai</category>
      <category>productmanagement</category>
      <category>career</category>
      <category>firstprinciples</category>
    </item>
    <item>
      <title>How a Baseten Engineer Traced 7 Years of Attention Mechanism Evolution -- From GPT-2 to Kimi K3, in Runable PyTorch</title>
      <dc:creator>AICDragon</dc:creator>
      <pubDate>Fri, 31 Jul 2026 03:23:15 +0000</pubDate>
      <link>https://dev.to/cdragon123code/how-a-baseten-engineer-traced-7-years-of-attention-mechanism-evolution-from-gpt-2-to-kimi-k3-in-pl7</link>
      <guid>https://dev.to/cdragon123code/how-a-baseten-engineer-traced-7-years-of-attention-mechanism-evolution-from-gpt-2-to-kimi-k3-in-pl7</guid>
      <description>&lt;p&gt;Last week, a Baseten inference engineer who goes by &lt;a href="https://x.com/waterloo_intern/status/2081762065392541951" rel="noopener noreferrer"&gt;@waterloo_intern&lt;/a&gt; published a technical blog post titled &lt;strong&gt;"22,580: From GPT-2 to Kimi K3, Explained."&lt;/strong&gt; It hit 2.4 million views in days.&lt;/p&gt;

&lt;p&gt;He didn't write a press release. He wrote &lt;strong&gt;runnable PyTorch code&lt;/strong&gt; — starting from GPT-2's attention block, stepping through every architectural change, explaining one problem and one cost per iteration. It's the best transformer lineage explanation I've seen.&lt;/p&gt;

&lt;p&gt;I devoured his post, then cross-checked the key claims against 5 original papers. Here's the full picture.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 22,580x Number
&lt;/h2&gt;

&lt;p&gt;In February 2019, OpenAI released GPT-2 — 124M parameters. Seven years later, Moonshot AI open-sourced Kimi K3 — 2.8T parameters. You could fit &lt;strong&gt;22,580 GPT-2s inside one Kimi K3&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;But this isn't a "throw more compute at it" story. It's a story about &lt;strong&gt;how we store, update, and retrieve memory&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Starting Point: GPT-2
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Block&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Module&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;forward&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;attn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ln_1&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
        &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;mlp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ln_2&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Every time the model generates a new token, it recomputes Q, K, V projections for &lt;strong&gt;all&lt;/strong&gt; historical tokens, then runs an O(N²) softmax attention. K and V from tokens 1 through N-1? Thrown away. Token N+1 arrives? Recompute everything.&lt;/p&gt;

&lt;p&gt;That's why KV Cache was invented.&lt;/p&gt;

&lt;h3&gt;
  
  
  KV Cache: Store It, Don't Recompute
&lt;/h3&gt;

&lt;p&gt;Simple idea: cache the already-computed keys and values. For the next token, new Q only needs one dot product against the cached K.&lt;/p&gt;

&lt;p&gt;Problem solved — but a new one created. KV cache grows &lt;strong&gt;linearly&lt;/strong&gt; with sequence length. At 1M tokens × d_model × layers, that's dozens of GB of VRAM. Every decoding step reads all of it from HBM.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The bottleneck isn't compute. It's memory bandwidth.&lt;/strong&gt; This is the key to understanding every improvement that follows.&lt;/p&gt;

&lt;h2&gt;
  
  
  Linear Attention: Fixed-Size Memory
&lt;/h2&gt;

&lt;p&gt;Can we compress O(N²D) into O(ND²)?&lt;/p&gt;

&lt;p&gt;The idea: replace softmax with a feature map.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Standard softmax (must materialize N×N first)
attention = softmax(QKᵀ / √d) × V

# Linear attention (fold K and V first)
Q' = ELU(Q) + 1
K' = ELU(K) + 1
output = (Q'(K')ᵀ × V') / (Q'(K')ᵀ × ones)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now we can compute &lt;code&gt;K'^T × V'&lt;/code&gt; first — a fixed-size D×D matrix — then multiply by Q'. Historical KV information gets "folded" into a constant-size state matrix. Cache no longer grows with N.&lt;/p&gt;

&lt;p&gt;The cost? ELU+1 is an approximation of the softmax kernel. Expressiveness drops. But on long-context tasks, this tradeoff is often worth it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Side Note: FlashAttention Didn't Do This
&lt;/h3&gt;

&lt;p&gt;A common confusion point. Ali's post mentions "in 2020, there was no FlashAttention" — but FlashAttention and linear attention solve fundamentally different problems.&lt;/p&gt;

&lt;p&gt;FlashAttention (Tri Dao, NeurIPS 2022) didn't change the attention &lt;strong&gt;algorithm&lt;/strong&gt;. It optimized the GPU &lt;strong&gt;IO pattern&lt;/strong&gt; — tiling the N×N matrix so it never fully lands in HBM. It makes softmax faster, but it's still O(N²).&lt;/p&gt;

&lt;p&gt;Linear attention &lt;strong&gt;redefined the algorithm itself&lt;/strong&gt; — replacing softmax with a feature map, going from O(N²D) to O(ND²).&lt;/p&gt;

&lt;p&gt;One optimizes IO. One changes the algorithm. Orthogonal.&lt;/p&gt;

&lt;h2&gt;
  
  
  DeltaNet: You Can Now &lt;em&gt;Edit&lt;/em&gt; Memory
&lt;/h2&gt;

&lt;p&gt;Linear attention has a fatal flaw: it can only &lt;strong&gt;add&lt;/strong&gt;, never &lt;strong&gt;update&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Every new token piles onto the state: &lt;code&gt;S = S + K'^T × V'&lt;/code&gt;. Information only grows. It's like a notebook where you can only write — never erase or correct.&lt;/p&gt;

&lt;p&gt;DeltaNet (Songlin Yang et al., NeurIPS 2024) fixes this.&lt;/p&gt;

&lt;p&gt;The core idea traces back to Schmidhuber's "Fast Weight Programmers" from the 1990s, later formalized by Schlag et al. (ICML 2021) linking linear attention to fast weights. DeltaNet's approach: before writing, read what this key position currently stores.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;v_old&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;k&lt;/span&gt; &lt;span class="o"&gt;@&lt;/span&gt; &lt;span class="n"&gt;S_old&lt;/span&gt;           &lt;span class="c1"&gt;# read current value at key
&lt;/span&gt;&lt;span class="n"&gt;delta&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;v_new&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;v_old&lt;/span&gt;       &lt;span class="c1"&gt;# compute the delta
&lt;/span&gt;&lt;span class="n"&gt;S_new&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;S_old&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="o"&gt;^&lt;/span&gt;&lt;span class="n"&gt;T&lt;/span&gt; &lt;span class="o"&gt;@&lt;/span&gt; &lt;span class="n"&gt;delta&lt;/span&gt; &lt;span class="c1"&gt;# write only the difference
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If &lt;code&gt;v_new == v_old&lt;/code&gt;, delta is zero — nothing changes. If completely different, delta equals v_new — equivalent to an overwrite. Everything in between is a smooth interpolation.&lt;/p&gt;

&lt;p&gt;This is the &lt;strong&gt;delta rule&lt;/strong&gt;: precise memory updates instead of blunt accumulation.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Parallelization Trick (Ali Said This Took Him 7 Hours to Understand)
&lt;/h3&gt;

&lt;p&gt;DeltaNet's state update is strictly sequential — each step depends on the previous S. It looks impossible to parallelize. But it is.&lt;/p&gt;

&lt;p&gt;The method: split the sequence into chunks of size C. Within each chunk, use normal masked attention (GPU-parallel). Between chunks, use the state matrix + one matmul (Q @ S). A Householder transformation reparameterizes the delta updates so all deltas within a chunk can be computed at once.&lt;/p&gt;

&lt;p&gt;Complexity: fixed cost 2LD² (state maintenance) + variable cost 2LCD (intra-chunk attention). Bigger C = more variable cost but better GPU efficiency. In practice, C=64 or 128 works best — FLOPs aren't the only metric; tensor core utilization matters too.&lt;/p&gt;

&lt;h2&gt;
  
  
  Gated DeltaNet: Now You Can &lt;em&gt;Forget&lt;/em&gt;
&lt;/h2&gt;

&lt;p&gt;DeltaNet can precisely edit individual key-value pairs. But what about &lt;strong&gt;forgetting at scale&lt;/strong&gt;?&lt;/p&gt;

&lt;p&gt;Imagine reading through all documents about Topic A in a 1M-token context, then switching to Topic B. The model should ideally "forget" Topic A to free up capacity for B.&lt;/p&gt;

&lt;p&gt;DeltaNet can overwrite specific entries but can't bulk-decay global memory. Mamba-2 (Dao &amp;amp; Gu, ICML 2024) can:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;cache&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;α&lt;/span&gt; &lt;span class="err"&gt;×&lt;/span&gt; &lt;span class="n"&gt;S_old&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;S_new&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;α is a gating value between 0 and 1, uniformly decaying all old memories. This is the core of Mamba-2's "State Space Duality" theory — softmax attention and SSMs are mathematically the same thing expressed differently. Mamba-2 unified them through gating.&lt;/p&gt;

&lt;p&gt;Gated DeltaNet (Songlin Yang et al., ICLR 2025, NVIDIA) merges DeltaNet's delta updates with Mamba-2's gating:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;S_new&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;α&lt;/span&gt; &lt;span class="err"&gt;×&lt;/span&gt; &lt;span class="n"&gt;S_old&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="o"&gt;^&lt;/span&gt;&lt;span class="n"&gt;T&lt;/span&gt; &lt;span class="o"&gt;@&lt;/span&gt; &lt;span class="n"&gt;delta&lt;/span&gt;   &lt;span class="c1"&gt;# decay first, then precise write
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;α=1 is pure DeltaNet. α=0 is a memory wipe. Everything in between both forgets and updates.&lt;/p&gt;

&lt;p&gt;The crucial mechanism: a token written at timestep x, read at x+t, has been through t rounds of cumulative α decay (αₓ × αₓ₊₁ × … × αₓ₊ₜ). &lt;strong&gt;Information written at different times forgets at different speeds&lt;/strong&gt; — recent items decay little, distant ones may be fully gone.&lt;/p&gt;

&lt;h2&gt;
  
  
  KDA: Kimi's Secret Sauce
&lt;/h2&gt;

&lt;p&gt;Kimi Linear (Moonshot AI, arXiv 2510.26692, October 2025) — the predecessor to K3 — refined the idea further: &lt;strong&gt;from scalar gating to per-dimension gating&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Gated DeltaNet uses α as a single scalar. One number controlling forgetting speed for all memory dimensions. KDA turns α into a &lt;strong&gt;vector&lt;/strong&gt; (or matrix). Each dimension independently controls its own forgetting rate. Which concepts to retain, which dimensions to decay — the model learns it.&lt;/p&gt;

&lt;p&gt;Key data from the paper:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Full MLA&lt;/th&gt;
&lt;th&gt;Kimi Linear&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;KV Cache&lt;/td&gt;
&lt;td&gt;100%&lt;/td&gt;
&lt;td&gt;-75%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1M-context decode throughput&lt;/td&gt;
&lt;td&gt;Baseline&lt;/td&gt;
&lt;td&gt;6x&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Short-context performance&lt;/td&gt;
&lt;td&gt;Baseline&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Outperforms&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RL scaling&lt;/td&gt;
&lt;td&gt;Baseline&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Outperforms&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;This is the &lt;strong&gt;first time linear attention outperforms full attention under fair comparisons across all scenarios.&lt;/strong&gt; Not just long context — short context too. And that "-75% KV cache" translates directly to inference cost savings.&lt;/p&gt;

&lt;p&gt;I verified this claim directly against the paper's abstract: &lt;em&gt;"for the first time, outperforms full attention under fair comparisons across various scenarios."&lt;/em&gt; Not marketing. Core conclusion.&lt;/p&gt;

&lt;h3&gt;
  
  
  K3's Final Hybrid Architecture
&lt;/h3&gt;

&lt;p&gt;K3's technical report (arXiv 2607.24653, July 2026) confirms:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;3/4 layers use KDA&lt;/strong&gt; (linear), &lt;strong&gt;1/4 use gated MLA&lt;/strong&gt; (full softmax)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MoE routing:&lt;/strong&gt; 896 experts, 16 active per token (~1.8%), Quantile Balancing for load distribution&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Attention Residuals:&lt;/strong&gt; layers can "look back" at specific earlier-layer representations&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MXFP4 weights + MXFP8 activations&lt;/strong&gt;, quantization-aware training&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;K3 isn't a pure linear-attention model. It's a &lt;strong&gt;hybrid system&lt;/strong&gt;: KDA handles the bulk processing (cheap, fast, fixed-state), while periodic softmax layers do precision retrieval — recovering details that linear compression might lose. Exactly the tradeoff Ali analyzed: linear attention + periodic softmax retrieval.&lt;/p&gt;

&lt;h2&gt;
  
  
  So What Does 22,580x Actually Mean?
&lt;/h2&gt;

&lt;p&gt;Ali's conclusion is sharper than anything I could write:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;From GPT-2 to Kimi K3, each generation's core improvement wasn't "more parameters" — it was redesigning &lt;strong&gt;how memory is accessed&lt;/strong&gt;: how you store, how you forget, how you retrieve.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The evolution in one table:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Stage&lt;/th&gt;
&lt;th&gt;Representative&lt;/th&gt;
&lt;th&gt;Memory Mechanism&lt;/th&gt;
&lt;th&gt;Problem Solved&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;GPT-2 + KV Cache&lt;/td&gt;
&lt;td&gt;Full cache, O(N) growth&lt;/td&gt;
&lt;td&gt;Eliminate recomputation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;Linear Attention&lt;/td&gt;
&lt;td&gt;Fixed state, O(D²)&lt;/td&gt;
&lt;td&gt;Cache doesn't grow with N&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;DeltaNet&lt;/td&gt;
&lt;td&gt;Delta updates, editable&lt;/td&gt;
&lt;td&gt;Can't update → can update&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;Gated DeltaNet&lt;/td&gt;
&lt;td&gt;Gating + delta, forgettable&lt;/td&gt;
&lt;td&gt;Can't forget → can forget&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;KDA / Kimi K3&lt;/td&gt;
&lt;td&gt;Per-dim gating + hybrid&lt;/td&gt;
&lt;td&gt;Linear surpasses full attention&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Parameters grew 22,580×. But if that's all you see, you missed the entire story.&lt;/p&gt;

&lt;h2&gt;
  
  
  What This Means for You
&lt;/h2&gt;

&lt;p&gt;If you're doing long-context work (code review, document analysis, multi-turn agents), attention architecture directly impacts your cost and output quality.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Cost isn't fixed.&lt;/strong&gt; Same 1M-token context: KDA's KV cache is only 25% of full attention's. Lower memory bandwidth pressure, significantly better latency and throughput.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Long ≠ expensive.&lt;/strong&gt; K3's 1M-token context window isn't "brute-forced." 75% of work goes through the linear path.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Hybrid is the trend.&lt;/strong&gt; Linear won't replace softmax — they'll complement each other. Precision retrieval via softmax, bulk processing via linear. This paradigm will spread.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Key Takeaways
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;22,580× parameter growth is surface-level. The real story is memory management: full cache → fixed state → precise writes → adaptive forgetting.&lt;/li&gt;
&lt;li&gt;The lineage is clear: DeltaNet (NeurIPS 2024) → GatedDeltaNet (ICLR 2025) → Kimi Linear (Oct 2025) → Kimi K3 (Jul 2026).&lt;/li&gt;
&lt;li&gt;KDA is the first to surpass full attention in fair comparisons — across short, long, and RL scaling scenarios. Not a "cheaper alternative."&lt;/li&gt;
&lt;li&gt;K3's 75% linear / 25% softmax hybrid is an engineering optimum, not a paper-only construct.&lt;/li&gt;
&lt;li&gt;Next time you evaluate a model: ask about attention architecture, not parameter count. It matters more.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.baseten.co/blog/22580-gpt-2-to-kimi-k3-explained/" rel="noopener noreferrer"&gt;22,580: GPT-2 to Kimi K3, explained&lt;/a&gt; — @waterloo_intern, Baseten&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://arxiv.org/abs/2205.14135" rel="noopener noreferrer"&gt;FlashAttention (NeurIPS 2022)&lt;/a&gt; · &lt;a href="https://arxiv.org/abs/2406.06484" rel="noopener noreferrer"&gt;DeltaNet (NeurIPS 2024)&lt;/a&gt; · &lt;a href="https://arxiv.org/abs/2412.06464" rel="noopener noreferrer"&gt;Gated DeltaNet (ICLR 2025)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://arxiv.org/abs/2405.21060" rel="noopener noreferrer"&gt;Mamba-2 (ICML 2024)&lt;/a&gt; · &lt;a href="https://arxiv.org/abs/2510.26692" rel="noopener noreferrer"&gt;Kimi Linear (Oct 2025)&lt;/a&gt; · &lt;a href="https://arxiv.org/abs/2607.24653" rel="noopener noreferrer"&gt;Kimi K3 (Jul 2026)&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>machinelearning</category>
      <category>transformers</category>
      <category>architecture</category>
    </item>
    <item>
      <title>2026 Fields Medal Deep Dive: What Four Mathematicians' Papers Actually Say, and Why AI Needs Math</title>
      <dc:creator>AICDragon</dc:creator>
      <pubDate>Thu, 30 Jul 2026 10:06:43 +0000</pubDate>
      <link>https://dev.to/cdragon123code/2026-fields-medal-deep-dive-what-four-mathematicians-papers-actually-say-and-why-ai-needs-math-5c9j</link>
      <guid>https://dev.to/cdragon123code/2026-fields-medal-deep-dive-what-four-mathematicians-papers-actually-say-and-why-ai-needs-math-5c9j</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; On July 23, the 2026 Fields Medals were awarded. Wang Hong and Deng Yu — both Peking University alumni — became the first Chinese nationals to win in the same year. But this isn't a news article. It's a heist. Inside these four mathematicians' papers are four ways of thinking you can steal and use today.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  The Part That Doesn't Matter
&lt;/h2&gt;

&lt;p&gt;Who won, which institution, how old they are — the news already covered that. Here's the snapshot:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Winner&lt;/th&gt;
&lt;th&gt;Institution&lt;/th&gt;
&lt;th&gt;Core Contribution&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Wang Hong&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;NYU Courant&lt;/td&gt;
&lt;td&gt;3D Kakeya Conjecture (100-year-old problem)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Deng Yu&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;University of Chicago&lt;/td&gt;
&lt;td&gt;Breakthrough on Hilbert's 6th Problem&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Jacob Tsimerman&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;University of Toronto&lt;/td&gt;
&lt;td&gt;André-Oort Conjecture&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;John Pardon&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Stony Brook University&lt;/td&gt;
&lt;td&gt;3D Hilbert-Smith Conjecture&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;What I care about: these four people's papers contain four mental models. Models that apply just as well to AI engineering, writing, and product decisions as they do to mathematics.&lt;/p&gt;

&lt;p&gt;This isn't "math for beginners." This is "methodology theft."&lt;/p&gt;




&lt;h2&gt;
  
  
  Wang Hong: A Hundred-Year Problem, Solved with Three Words — Multiscale Analysis
&lt;/h2&gt;

&lt;p&gt;What's the Kakeya conjecture? One sentence: take a unit line segment in 3D space, rotate it 180°. What's the minimum volume it sweeps out? Zero.&lt;/p&gt;

&lt;p&gt;The 2D case was solved in 1917 — the area can approach zero. But 3D? Unsolved for over a century. Intuition says the dimension of a 3D Kakeya set should be 3, but there was no rigorous proof.&lt;/p&gt;

&lt;p&gt;In 2025, Wang Hong and Joshua Zahl dropped a 127-page paper with 14 figures, rigorously proving: in three-dimensional space, any set containing unit line segments in every direction must have Minkowski and Hausdorff dimension exactly 3.&lt;/p&gt;

&lt;p&gt;The core method, in their own words: &lt;strong&gt;multiscale analysis&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;You don't figure out the arrangement of all tubes in 3D space at once. You split the problem into different scales. At the coarse scale: distribution patterns — which directions cluster together inside a convex set? At the fine scale: local density — if tubes are packed tight in a region, what's the volume contribution? The two scales are handled separately, then stitched together with combinatorial estimates.&lt;/p&gt;

&lt;p&gt;Concretely, they studied this: if δ-tubes in 3D can't be packed too many into the same convex set, then their union must have nearly maximal volume. This seemingly narrow intermediate result was exactly enough to derive the full Kakeya conjecture.&lt;/p&gt;

&lt;p&gt;The impact goes far beyond pure math. CT/MRI reconstruction algorithms rely on Fourier analysis — the exact domain of the Kakeya conjecture. MIMO antenna beamforming and radar direction estimation directly benefit from this work.&lt;/p&gt;

&lt;p&gt;But what you should remember is &lt;strong&gt;the method&lt;/strong&gt;: when facing a complex problem, go coarse first, then fine.&lt;/p&gt;

&lt;p&gt;Don't try to figure out "how to double my blog traffic" all at once. First, categorize at the coarse scale: tool reviews get 3-10x more reads than industry analysis, and 95%+ of viral hits come from recommendations. Then fine-tune within each category: how to structure headlines with numbers, what cover style works, what time to publish. Separating scales makes the problem solvable.&lt;/p&gt;




&lt;h2&gt;
  
  
  Deng Yu: Building the Bridge from Micro to Macro, Over Four Years
&lt;/h2&gt;

&lt;p&gt;Start with an analogy.&lt;/p&gt;

&lt;p&gt;The training rule for neural networks is dead simple — gradient descent, nudging a trillion parameters by a tiny amount each step. This micro-rule is boring to the point of absurdity. But after training, the model suddenly reasons, writes code, edits articles. Stare at those trillion parameters — you won't see any of that intelligence hiding there.&lt;/p&gt;

&lt;p&gt;This is essentially the same problem Deng Yu studies in wave turbulence theory.&lt;/p&gt;

&lt;p&gt;In 2023, Deng and collaborator Zaher Hani published a 138-page paper with 44 figures. What they did: starting from the cubic nonlinear Schrödinger equation (describing light propagation in fiber optics, ocean waves), they rigorously derived the wave kinetic equation under a scaling limit.&lt;/p&gt;

&lt;p&gt;The setup: inside a large box (side length L), waves interact very weakly (parameter α). As L → ∞, α → 0, with the scaling relation α ~ L⁻¹, the system's long-time statistical behavior is fully described by the wave kinetic equation — valid all the way up to the kinetic time scale T ~ α⁻².&lt;/p&gt;

&lt;p&gt;Translation: countless simple waves, each obeying the same micro-rule → given enough time → predictable macro-level statistical laws emerge automatically.&lt;/p&gt;

&lt;p&gt;This framework directly impacts plasma physics (laser-plasma interaction simulations for fusion), atmospheric nonlinear wave modeling in weather forecasting, and oceanography for long-time current evolution.&lt;/p&gt;

&lt;p&gt;Together with Hani and Ma Xiao, Deng also made a breakthrough in another direction: starting from hard-sphere dynamics, they rigorously derived the Boltzmann equation on timescales far exceeding previous theorems. This advances the core of Hilbert's 6th Problem (axiomatization of physics, proposed in 1900).&lt;/p&gt;

&lt;p&gt;For you, remember this: &lt;strong&gt;micro-rules × long time × many particles = predictable macro-laws.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This isn't just math. Writing one article a day looks like a micro-behavior. After 100 articles, macro-patterns will emerge on their own — which headlines get traffic, which topics explode, what opening the algorithm loves.&lt;/p&gt;

&lt;p&gt;Trust compounding, not shortcuts. This isn't motivational fluff. Deng Yu proved it with 138 pages of mathematics.&lt;/p&gt;




&lt;h2&gt;
  
  
  Tsimerman: His Paper Was Retracted. Then He Won the Fields Medal.
&lt;/h2&gt;

&lt;p&gt;Tsimerman's André-Oort conjecture paper, v2, has a note I've reread several times:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"The previous version (v2) claiming to prove the general case has a serious error, as was kindly pointed out by Klingler, Ullmo and Yafaev. As such, the article is being reverted..."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Translation: the previous version had a serious error. Retracted.&lt;/p&gt;

&lt;p&gt;You read that right. A Fields Medal winner's paper had a "serious error," was called out by peers, and withdrawn. Then he fixed it, resubmitted, and won mathematics' highest honor for that very work.&lt;/p&gt;

&lt;p&gt;It wasn't just "being smart." The method matters more.&lt;/p&gt;

&lt;p&gt;Tsimerman proved the André-Oort conjecture for A_g — a core problem about the distribution of "special points" (CM points) of elliptic curves in high-dimensional moduli spaces. Elliptic curves are the foundation of modern cryptography — the distribution of these special points directly affects the security of certain post-quantum cryptographic schemes.&lt;/p&gt;

&lt;p&gt;But the real reason he won isn't the conclusion. It's the tools he assembled. He stitched together three fields that look completely unrelated:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Analytic Number Theory&lt;/strong&gt;: lower bounds on Galois orbits of class groups of number fields&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Model Theory&lt;/strong&gt;: o-minimal structures to control the topological behavior of special points&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Algebraic Geometry&lt;/strong&gt;: Shimura variety theory to describe the geometric structure of moduli spaces&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Tools from any single field weren't enough. Combined, they were exactly enough.&lt;/p&gt;

&lt;p&gt;Together with Bakker and others, he leveraged the o-minimal framework to further develop GAGA theory, solving the Griffiths conjecture about period mapping images — building a new bridge between model theory and Hodge theory.&lt;/p&gt;

&lt;p&gt;This is exactly the state of AI right now. The next breakthrough probably isn't "better Transformers." It's grafting algebraic topology onto neural network architectures, or redescribing training dynamics in the language of wave turbulence theory.&lt;/p&gt;

&lt;p&gt;Tsimerman teaches you two things:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;A retraction isn't shameful. Fix it and resubmit.&lt;/li&gt;
&lt;li&gt;Don't grind in the field you know best. Go to the intersections.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Pardon: His Entire Paper Does One Thing — Find the Right Window
&lt;/h2&gt;

&lt;p&gt;Pardon proved the 3D Hilbert-Smith conjecture. 24 pages.&lt;/p&gt;

&lt;p&gt;The question: what kinds of symmetry can "live in" three-dimensional space? Can the p-adic integers Z_p? Pardon's answer: no.&lt;/p&gt;

&lt;p&gt;He later made even more contributions in symplectic geometry — virtual fundamental chains, localization of wrapped Fukaya categories, curve counting on Calabi-Yau threefolds (the MNOP conjecture). This work is now the mathematical foundation for topological quantum error-correcting codes — quantum computers haven't been built yet, but their error correction is already being built on his foundation.&lt;/p&gt;

&lt;p&gt;But what fascinates me most is a single methodological phrase in his Hilbert-Smith paper: &lt;strong&gt;"Approach is local on M."&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The entire proof doesn't need to understand all geometric properties of a 3-manifold. He only needs to find a Z_p-invariant open set U on the manifold M, locate an incompressible surface F inside U, analyze the mapping class group homomorphism induced by Z_p's action on the isotopy class of F — and the contradiction emerges.&lt;/p&gt;

&lt;p&gt;Don't scan the whole picture. Find one window. The information inside that window is enough to derive the global conclusion.&lt;/p&gt;

&lt;p&gt;This is directly usable.&lt;/p&gt;

&lt;p&gt;You want to analyze data from 55 AICDragon articles to figure out what determines readership. You could run statistics on all of them — but that's making work for yourself. Just pick three: the highest-read, the lowest-read, the median. The differences between them already contain most of the patterns.&lt;/p&gt;

&lt;p&gt;You want to debug an encoding corruption. You don't need to trace OpenClaw's entire code path. Just look at the first 4 bytes of one file — &lt;code&gt;E9 94 98 3F&lt;/code&gt; — it's UTF-8 BOM decoded through GBK. Root cause identified, no global investigation needed.&lt;/p&gt;

&lt;p&gt;Pardon's lesson: &lt;strong&gt;it's not about having more information. It's about having the right information inside the right window.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  So What Does AI Have to Do With These Papers?
&lt;/h2&gt;

&lt;p&gt;It's not "this formula can optimize Transformers."&lt;/p&gt;

&lt;p&gt;It's about &lt;strong&gt;ways of thinking&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Everything you do daily — topic selection, writing, debugging, data analysis, product decisions — has math-level complexity. The only difference is you haven't noticed.&lt;/p&gt;

&lt;p&gt;Wang Hong says: multiscale thinking, coarse first then fine.&lt;br&gt;
Deng Yu says: micro-rules × enough time = macro-laws. Trust compounding, not shortcuts.&lt;br&gt;
Tsimerman says: don't grind in one field. The real breakthroughs are at the intersections. And a retraction isn't shameful — fix it and ship it.&lt;br&gt;
Pardon says: don't try to understand everything. Find the right window.&lt;/p&gt;

&lt;p&gt;These four methodologies aren't the privilege of mathematicians. They're weapons for anyone who needs to think and iterate continuously.&lt;/p&gt;

&lt;p&gt;Including you.&lt;/p&gt;




&lt;h3&gt;
  
  
  References
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;ICM 2026 Official Announcement&lt;/li&gt;
&lt;li&gt;Nature: &lt;a href="https://www.nature.com/articles/d41586-026-02169-1" rel="noopener noreferrer"&gt;Rising stars of mathematics awarded prestigious 2026 Fields Medal&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Scientific American: &lt;a href="https://www.scientificamerican.com/article/2026-fields-medals-go-to-four-young-mathematicians/" rel="noopener noreferrer"&gt;2026 Fields Medals go to four young mathematicians&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Wang Hong &amp;amp; Zahl: [2502.17655] Volume estimates for unions of convex sets, and the Kakeya set conjecture in three dimensions&lt;/li&gt;
&lt;li&gt;Deng Yu &amp;amp; Hani: [2104.11204] Full derivation of the wave kinetic equation&lt;/li&gt;
&lt;li&gt;Tsimerman: [1506.01466] A proof of the Andre-Oort conjecture for A_g&lt;/li&gt;
&lt;li&gt;Pardon: [1112.2324] The Hilbert-Smith conjecture for three-manifolds&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>mathematics</category>
      <category>ai</category>
      <category>machinelearning</category>
      <category>productivity</category>
    </item>
    <item>
      <title>I Downgraded My AI Assistant to an Older Version and It Went Insane</title>
      <dc:creator>AICDragon</dc:creator>
      <pubDate>Tue, 28 Jul 2026 07:28:42 +0000</pubDate>
      <link>https://dev.to/cdragon123code/i-downgraded-my-ai-assistant-to-an-older-version-and-it-went-insane-5eda</link>
      <guid>https://dev.to/cdragon123code/i-downgraded-my-ai-assistant-to-an-older-version-and-it-went-insane-5eda</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Installed OpenClaw 7.1 beta, didn't like it, downgraded back to 6.6 stable. Then my AI assistant's API consumption exploded 400% — a simple question triggered 20+ API calls, tokens burning nonstop. After an entire afternoon of debugging, I finally found the culprit: during the downgrade, the old and new configs had silently mixed together. This is the full debugging journey, the wrong turns, and the actual fix.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  The Diagnosis in One Line
&lt;/h2&gt;

&lt;p&gt;A daemon running without errors doesn't mean everything is fine. One leftover config file from a newer version can silently trigger cascading anomalies — and you won't notice until you see the bill.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Happened
&lt;/h2&gt;

&lt;p&gt;Here's the story.&lt;/p&gt;

&lt;p&gt;I've been tinkering with my personal AI assistant project, OpenClaw. When version 7.1-beta.6 dropped, I eagerly installed it. Half a day in, the cracks started showing — it deleted my project files while setting up a directory, pumped out articles full of garbled characters. I'd had enough. Time to downgrade back to the 6.6 stable release. After all, it's just an npm downgrade — one command, right?&lt;/p&gt;

&lt;p&gt;Sure enough, &lt;code&gt;npm install -g openclaw@2026.6.6&lt;/code&gt; took about thirty seconds.&lt;/p&gt;

&lt;p&gt;Then things got weird.&lt;/p&gt;

&lt;p&gt;Previously, when I'd type "hello," my AI assistant would respond once, burning maybe 3-5 API calls. After the downgrade, the same question triggered 20-plus calls. It was like someone who'd had way too much coffee — muttering to itself, circling back to confirm things multiple times. Token consumption quadrupled. Within minutes, it drained my DeepSeek API balance into the negative and I had to kill the process immediately.&lt;/p&gt;

&lt;p&gt;If you work with AI tools or frameworks in any capacity, this post is worth the next five minutes.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Debugging Journey
&lt;/h2&gt;

&lt;h3&gt;
  
  
  First Thought: Network Issues?
&lt;/h3&gt;

&lt;p&gt;Nope. Responses came back fine. They were just... heavy.&lt;/p&gt;

&lt;h3&gt;
  
  
  Second Thought: Did the Config Get Corrupted?
&lt;/h3&gt;

&lt;p&gt;I ran &lt;code&gt;openclaw doctor&lt;/code&gt; and it spat out a version mismatch warning:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Warning: config was created by version 2026.7.1-beta.6,
current version is 2026.6.6.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Bingo. The config was generated by 7.1, but the running binary was 6.6. Version soup.&lt;/p&gt;

&lt;p&gt;My instinct was straightforward: just delete the &lt;code&gt;meta&lt;/code&gt; field from the config file and let it regenerate. How hard could that be?&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$config&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Get-Content&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"openclaw.json"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;ConvertFrom-Json&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nv"&gt;$config&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;PSObject&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Properties&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Remove&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"meta"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nv"&gt;$config&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;ConvertTo-Json&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Set-Content&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"openclaw.json"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Script ran clean. Config refreshed. I restarted the gateway, confident the problem was solved — and the &lt;code&gt;meta&lt;/code&gt; field was back.&lt;/p&gt;

&lt;p&gt;I was baffled.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Breakthrough: OpenClaw Has an Auto-Recovery Mechanism
&lt;/h3&gt;

&lt;p&gt;After digging into the startup logs, the full picture emerged:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;1. OpenClaw reads openclaw.json → detects manual tampering
2. Validates against schema → mismatch found
3. Triggers recovery → restores from openclaw.json.last-good
4. The backup still contains the 7.1 config → problem resurrected
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Every single time I manually deleted that &lt;code&gt;meta&lt;/code&gt; field, the recovery mechanism silently restored it. I spent an hour editing. It spent an hour undoing. We were in a stalemate and I didn't even know it.&lt;/p&gt;

&lt;p&gt;This is the real lesson: &lt;strong&gt;some frameworks don't simply read old configs and ignore unrecognized fields when you downgrade. They have active detection and automatic rollback logic.&lt;/strong&gt; You can't brute-force the file — you have to understand the machinery.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Actual Fix
&lt;/h2&gt;

&lt;p&gt;The core principle was simple: &lt;strong&gt;don't let 6.6 see a single trace of 7.1.&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Step 1: Isolate the old config (rename, don't delete)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;Rename-Item&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"openclaw.json"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"openclaw.7.1.compat.backup.json"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;Rename-Item&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"openclaw.json.last-good"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"openclaw.7.1.last-good.backup.json"&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="c"&gt;# Step 2: Let 6.6 generate its own fresh config&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;openclaw&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;onboard&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;--non-interactive&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;--accept-risk&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;--mode&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;local&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;...&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="c"&gt;# Step 3: Verify the version marker&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Get-Content&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"openclaw.json"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;ConvertFrom-Json&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;meta&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;lastTouchedVersion&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="c"&gt;# Output: 2026.6.6 ✅&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The critical step wasn't editing the config at all — it was &lt;strong&gt;running a full onboard from the 6.6 binary&lt;/strong&gt;, letting it generate a configuration that was its own from the ground up.&lt;/p&gt;

&lt;p&gt;Only then did the migration start:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ Model configs, gateway settings, custom skills → safe to carry over&lt;/li&gt;
&lt;li&gt;❌ Session histories, task queues, SQLite databases → leave behind (format-incompatible between versions)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Final verification: &lt;code&gt;openclaw doctor&lt;/code&gt; showed zero warnings, and API consumption returned to normal.&lt;/p&gt;

&lt;h2&gt;
  
  
  Lessons
&lt;/h2&gt;

&lt;p&gt;The whole episode took over half a day from discovery to resolution, but the knowledge density was high. Three takeaways:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. A downgrade is not just "swapping a version number."&lt;/strong&gt; The binary, config schema, session format, and database structure form a single integrated stack. Change one, inspect the other four.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Don't fight a framework's self-protection mechanism.&lt;/strong&gt; If the file you edited keeps reverting, the framework's authors are more worried about config corruption than you are. The way around isn't to edit harder — it's to understand the mechanism's logic and take the legitimate path (in this case, re-running onboard).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. When config version ≠ binary version, the most vulnerable spot is agent behavior.&lt;/strong&gt; Not crashes. Not error logs. Silent anomalies. Behavior that looks normal but shows abnormal cost metrics — this is the hardest class of bug to notice, and the most expensive.&lt;/p&gt;

&lt;p&gt;One final note: to be fair, the OpenClaw team did solid work on this front. They have last-good backups, automatic recovery, and version mismatch detection. The gap is just documentation — nowhere does it emphasize that downgrades require a fresh onboard. I suspect I'm not the only one who's stepped on this rake.&lt;/p&gt;

&lt;p&gt;If you maintain stateful services or AI toolchains, add "config version check before upgrade/downgrade" to your checklist. This landmine? Already stepped on. You're welcome.&lt;/p&gt;

&lt;h3&gt;
  
  
  References
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;OpenClaw GitHub: &lt;a href="https://github.com/openclaw/openclaw" rel="noopener noreferrer"&gt;https://github.com/openclaw/openclaw&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;This article is based on a real 2026.7.1-beta.6 → 2026.6.6 downgrade, with all steps verified.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Transparency note:&lt;/strong&gt; Every troubleshooting step in this article has been reproduced and confirmed. The auto-recovery behavior was verified through multiple deliberate attempts, not speculation. API consumption comparisons are based on measured data from the same task under version-matched and version-mismatched conditions.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>ai</category>
      <category>debugging</category>
      <category>devops</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
