<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://jinyansu1.github.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://jinyansu1.github.io/" rel="alternate" type="text/html" /><updated>2026-10-24T05:35:20+00:00</updated><id>https://jinyansu1.github.io/feed.xml</id><title type="html">Jinyan Su</title><subtitle>PhD Student at Cornell University — RL Environments, Post-Training &amp; Agent Learning</subtitle><author><name>Jinyan Su</name><email>jinyansu6@gmail.com</email></author><entry><title type="html">Event Recap, Part 3 | Looped LM Panel, Second Half: Loops and CoT, Expressiveness, MoE, Extrapolation and Speedups / 活动回顾（三）｜Looped LM 圆桌（下）：Loop 与 CoT、表达力、MoE、外推与加速</title><link href="https://jinyansu1.github.io/blog/2026/10/looped-lm-recap-3-panel-second-half/" rel="alternate" type="text/html" title="Event Recap, Part 3 | Looped LM Panel, Second Half: Loops and CoT, Expressiveness, MoE, Extrapolation and Speedups / 活动回顾（三）｜Looped LM 圆桌（下）：Loop 与 CoT、表达力、MoE、外推与加速" /><published>2026-10-24T00:00:00+00:00</published><updated>2026-10-24T00:00:00+00:00</updated><id>https://jinyansu1.github.io/blog/2026/10/looped-lm-recap-3-panel-second-half</id><content type="html" xml:base="https://jinyansu1.github.io/blog/2026/10/looped-lm-recap-3-panel-second-half/"><![CDATA[<div class="lang-switcher">
  <button type="button" class="lang-btn active" data-lang="en">English</button>
  <button type="button" class="lang-btn" data-lang="zh">中文</button>
</div>

<div class="lang-content lang-en" lang="en">

  <p>This is the third and final part of the recap of NICE’s event “Looped Language Model: Rethinking Model Depth and Parameters,” covering the second half of the panel discussion. The panel was hosted by Wenyue Hua, with Chunyuan Deng and Benhao Huang as panelists.</p>

  <p>The second half ranged more widely: Is looping along depth the same thing as looping along time (that is, CoT)? Do expressiveness proofs still mean anything? How should loops be combined with MoE? And finally, a set of questions about “how to use loops at inference”: extrapolation, adaptive computation (ACT) and parallel decoding.</p>

  <h2 id="key-takeaways">Key takeaways</h2>

  <ul>
    <li><strong>Looping along depth and looping along time look much alike from the standpoint of computational depth.</strong> Chunyuan thinks that in both cases “you have to take that many sequential steps in total; the only difference is how you take them.” One difference he sees lies in the data: explicit CoT can be synthesized, whereas it is unclear how to construct supervision for latent CoT.</li>
    <li><strong>The difference between loops and soft tokens lies in how the KV cache is used.</strong> Over the lifetime of a single token, looping twice and generating one extra soft token reach similar depths. Letting the previous token’s deep-layer state flow back into the next token’s shallow layers is exactly the starting point of the Full-Bandwidth Transformer.</li>
    <li><strong>RL brings a new opportunity, and an underlying concern.</strong> Looping itself does not get in the way of RL; the opportunity lies in assigning credit to the intermediate loops. The concern is that looping may itself already be doing something similar to RL, so the gains from RL may shrink.</li>
    <li><strong>Expressiveness proofs are not pointless.</strong> Inductive bias determines how quickly a model learns. Chunyuan’s conclusion is that “It’s all about the computational depth,” and that learnability matters more at present.</li>
    <li><strong>Loop × MoE: different loops should choose different experts.</strong> Several works find that looping twice is the sweet spot, though Benhao would like people to “loop at least three times.”</li>
    <li><strong>Extrapolation is hard for natural language, and ACT looks reasonable but is hard to make work.</strong> Both aim to change the number of loops at inference: extrapolation loops more times than in training, while ACT lets each token decide for itself how many times to loop. Both run into a mismatch between training and inference, and ACT also faces infrastructure difficulties. Benhao believes a more realistic direction for speedups is to keep the number of loops unchanged and instead, borrowing from Diffusion Forcing, stagger the different loops of different tokens and decode them in parallel.</li>
  </ul>

  <h2 id="glossary">Glossary</h2>

  <p>The table below explains several terms that recur in this article. Readers familiar with them can skip it.</p>

  <table>
    <thead>
      <tr>
        <th>Term</th>
        <th>Plain-language explanation</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>Soft token / Coconut</td>
        <td>Coconut feeds the model’s last-layer hidden state directly back in as the input for the next step, without decoding it into text; this “continuous thought” is a soft token</td>
      </tr>
      <tr>
        <td>Teacher forcing</td>
        <td>In training, the ground-truth text is fed in directly as the preceding context (rather than tokens the model generated itself), so all positions can be computed in parallel. To preserve this parallelism, in the standard architecture each position can see, at a given layer, only the information of earlier positions at that same layer, not their deeper states. So a result that an earlier token reaches in a deep layer can be used by later tokens only once they reach an equally deep layer, which leaves few layers for further processing</td>
      </tr>
      <tr>
        <td>State tracking</td>
        <td>Continuously keeping track of a state that changes with the input, for example determining where each item ends up after a sequence of swaps is carried out in order</td>
      </tr>
      <tr>
        <td>TC⁰ / NC¹</td>
        <td>Two classes in circuit complexity: TC⁰ corresponds to constant-depth, highly parallel computation; NC¹ allows depth to grow logarithmically with input length and is generally believed to be strictly more powerful (though this has not been proven). Some state-tracking problems are NC¹-complete</td>
      </tr>
      <tr>
        <td>Extrapolation</td>
        <td>Looping more times at inference than in training, with the model still working or even doing better</td>
      </tr>
      <tr>
        <td>ACT</td>
        <td>Adaptive Computation Time: letting each token decide for itself how many times to loop, according to its difficulty</td>
      </tr>
      <tr>
        <td>Mixture-of-Depths</td>
        <td>A router decides whether each token skips a given layer, dynamically allocating compute along depth</td>
      </tr>
      <tr>
        <td>HRM / TRM</td>
        <td>Two models that solve puzzles by applying a very small network recursively (about 27M and 7M parameters, respectively), commonly used on Sudoku, mazes and ARC-AGI</td>
      </tr>
      <tr>
        <td>Diffusion Forcing</td>
        <td>A training method for diffusion models in which each token in a sequence has its own independent noise level, so the model can keep denoising older frames while starting to generate new ones</td>
      </tr>
      <tr>
        <td>Speculative decoding</td>
        <td>Drafting upcoming tokens cheaply first and then verifying them in parallel with the full model, to reduce the number of sequential steps</td>
      </tr>
    </tbody>
  </table>

  <h2 id="panelists">Panelists</h2>

  <p><strong>Chunyuan Deng:</strong> PhD student at Rice University, advised by Prof. Hanjie Chen. His research focuses on the design and optimization of LLM pretraining architectures, as well as the interpretability of language models. His representative work is LT2: Linear-Time Looped Transformers [1]; his talk at the event is covered in part one of this series.</p>

  <p><strong>Benhao Huang:</strong> Master’s student at CMU, advised by Prof. Zico Kolter. He works mainly on looped LMs and fixed points, with the aim of improving the reasoning ability and efficiency of foundation models. His representative work includes Equilibrium Reasoners [2] and the blog series Towards Looped Models Done Right [3].</p>

  <p><strong>Wenyue Hua (host):</strong> Member of Technical Staff at Microsoft AI (MAI). PhD from Rutgers University, advised by Prof. Yongfeng Zhang, followed by a postdoc at UCSB. Research focuses on LLM reasoning and LLM-based agents, with many papers at top NLP and machine learning venues, including ACL, EMNLP, ICLR, NeurIPS and TACL. Serves as an Area Chair for ACL.</p>

  <h2 id="is-looping-along-depth-the-same-as-looping-along-time">1. Is looping along depth the same as looping along time?</h2>

  <p>The host, Wenyue Hua, wanted to hear the two panelists’ thoughts: Why has there been such a surge of papers on looping recently (though it could also be a coincidence)? Are looping along depth and looping along time essentially the same thing? How does this kind of implicit reasoning relate to explicit CoT? And does it affect credit assignment in RL?</p>

  <h3 id="chunyuan-it-depends-on-how-you-define-essentially">Chunyuan: it depends on how you define “essentially”</h3>

  <p>Chunyuan said it depends on how we define “essentially.” One could first ask: are RNNs and Transformers essentially the same thing? A Transformer can also be trained step by step like an RNN, instead of in parallel with teacher forcing. Architecturally, what matters most is the operations: an architecture is, in the end, a collection of operators. If “essentially” refers to computational depth from the perspective of expressiveness, then he personally thinks the two are indeed fairly similar: in total, you have to take that many sequential steps, and the only difference is how you take them.</p>

  <p>As for whether explicit CoT is needed, he sees one difference between explicit CoT and latent CoT in the training data: the former can be written by hand, or synthesized by people or models; for the latter, he cannot yet think of a workable way to synthesize the data or construct the supervision.</p>

  <p>For today’s looped architectures, if you only do SFT or pretraining, there is no major conflict between looping and CoT: the model simply uses greater depth to learn CoT, rather than doing away with it. In RL, however, greater depth (or an architecture like the Full-Bandwidth Transformer) may indeed have an effect. RL requires sampling; in agentic settings, the model needs many intermediate variables for state tracking, and it has to rely on either CoT or depth for that. With greater depth, the CoT may become shorter, and RL itself also demands token efficiency. Likewise, with latent reasoning methods such as Coconut [4], the CoT may also get shorter. He thinks these two things really do lead to differences in RL.</p>

  <blockquote>
    <p><strong>Note:</strong> Coconut (Chain of Continuous Thought) feeds the model’s last-layer hidden state directly back in as the input embedding for the next step, without decoding it into text, so that reasoning takes place in a continuous latent space.</p>
  </blockquote>

  <h2 id="loop-vs-coconut-seen-through-the-lifetime-of-a-token">2. Loop vs. Coconut, seen through the lifetime of a token</h2>

  <h3 id="similar-depth-the-difference-is-in-how-the-kv-cache-is-used">Similar depth; the difference is in how the KV cache is used</h3>

  <p>Suppose you draw out the topology, follow the concrete lifetime of a single token and write out a loop and a Coconut-style soft token side by side: for example, a model that loops twice, versus an L-layer model that does not loop but generates one extra soft token. The two look very similar in depth. The difference lies in the details: how the KV cache is used.</p>

  <p>When looping, it helps if the previous token’s final hidden state can be injected into the shallow layers of the next token; this is precisely the motivation for the Full-Bandwidth Transformer [5]. In an ordinary loop, because training uses teacher forcing, the deep-layer information has not yet been formed when the later token’s shallow layers are computed, so naturally it is unavailable. Soft tokens are similar: whether the previous token is a soft token or an ordinary explicit token changes which of its layers’ KVs the later tokens can see.</p>

  <blockquote>
    <p><strong>Note:</strong> The Full-Bandwidth Transformer takes the top-layer hidden state at the previous position, fuses it through a gating unit with the embedding of the currently sampled token, and uses the result as the bottom-layer input at the next position; the rest of the architecture, the KV cache and the training objective are the same as in a standard model. Because this dependency cannot be parallelized directly, training uses multiple forward passes: each additional pass shifts the previous pass’s hidden states one position to the right and runs the whole network again, and this feedback is added only late in training (for example, only a single pass is run for roughly the first 75% of training). In experiments at the 1B scale with up to 400B tokens, the paper reports that it can match or approach a standard model trained on about 1.5× as many tokens; by the paper’s estimate, the added compute per token at decoding time is under 1%, and the model runs about 2.3% slower when measured in vLLM.</p>
  </blockquote>

  <h3 id="what-makes-rnns-special">What makes RNNs special</h3>

  <p>Benhao raised a point he found very interesting. Picking up on Chunyuan’s mention of RNNs and Transformers a moment earlier, he noted that within frameworks that measure model capability, such as complexity classes and circuit complexity, RNNs have something special about them, for example state tracking. Soft tokens can “inject” this ability back into Transformer-style architectures; looping alone, without any other mechanism, may not be able to do so.</p>

  <blockquote>
    <p><strong>Note:</strong> Fixed-depth Transformers and many state-space models fall into the complexity class TC⁰, so they are generally believed to be unable to solve NC¹-complete state-tracking problems such as composing permutations [6]; each additional step of CoT or soft tokens, by contrast, amounts to letting the model perform one more step of sequential computation.</p>
  </blockquote>

  <h2 id="what-looping-means-for-rl">3. What looping means for RL</h2>

  <h3 id="the-extra-cost-is-mainly-in-prefill">The extra cost is mainly in prefill</h3>

  <p>Benhao mentioned that designs like the Full-Bandwidth Transformer, which send deep-layer states back to shallow layers, may carry some extra cost when used for RL: getting the deep-layer hidden states requires additional iterations or forward passes. In settings with a lot of prefill (the stage in which the model reads in the entire input at once and builds the KV cache), such as agentic tasks, this could become a problem, and RL training would also cost somewhat more.</p>

  <h3 id="a-new-opportunity-assigning-credit-to-intermediate-loops">A new opportunity: assigning credit to intermediate loops</h3>

  <p>As for credit assignment, Benhao’s view is that, looking at looping alone, nothing stands in the way of RL: you do RL on a looped Transformer the same way you do on a Transformer, with no difference. But if you want to assign credit to the intermediate steps of the loop (for example, when looping four times, giving some credit to the 1st, 2nd and 3rd loops as well), then it is worth thinking about whether there are interesting ways to do so. For instance, during RL, could some of the intermediate loops take on tasks such as tool calling?</p>

  <h3 id="an-underlying-concern-looping-may-already-be-doing-something-like-rl">An underlying concern: looping may already be doing something like RL</h3>

  <p>Beyond that, he also has a worry he is not entirely sure about: when RL is done on top of a looped model, will the gains be as large as before? A looped model may itself already be doing something similar to RL.</p>

  <p>The host followed up: what does it mean that “looping itself is doing RL”? Benhao explained:</p>

  <blockquote>
    <p>RL is a kind of distribution sharpening: it makes the distribution sharper, a bit like mode seeking. Looping, on the other hand, can be seen as a kind of power iteration: it keeps the more stable modes, like keeping the directions corresponding to the largest and second-largest eigenvalues.</p>
  </blockquote>

  <blockquote>
    <p><strong>Note:</strong> Power iteration is a classic method for finding a matrix’s dominant eigenvector: repeatedly multiply a vector by the matrix and normalize it, and the components along other directions gradually decay, leaving the direction corresponding to the largest eigenvalue. Benhao’s analogy is that both make the model contract toward a few dominant modes, so the two may overlap.</p>
  </blockquote>

  <h2 id="do-expressiveness-proofs-still-mean-anything">4. Do expressiveness proofs still mean anything?</h2>

  <p>On the looping side, there is work such as the Universal Transformer (UT) [8], which seemingly can approximate any function; other papers say that with unbounded CoT or infinite numerical precision, Transformers come close to being Turing complete. Many architectures can be proven to be fairly general once certain conditions are relaxed. So do expressiveness proofs have little to do with how architectures are designed?</p>

  <blockquote>
    <p><strong>Note:</strong> The Universal Transformer paper shows that, given enough memory and a number of recurrent steps that grows with input length, it is computationally universal. Pérez et al. proved that Transformers are Turing complete under the assumption that weights and activations can take arbitrary precision, but not with fixed precision [9]. Merrill and Sabharwal proved that with a linear number of CoT steps, Transformers can recognize all regular languages, and with a polynomial number of steps they recognize exactly the class P [10], that is, the decision problems an ordinary algorithm can solve in polynomial time.</p>
  </blockquote>

  <h3 id="benhao-inductive-bias-determines-how-fast-a-model-learns">Benhao: inductive bias determines how fast a model learns</h3>

  <p>Benhao said some architectures have their own inductive biases and learn certain tasks faster. For example, a looped model can learn Sudoku very quickly, while a Transformer of the same depth has a somewhat harder time, because it lacks a suitable inductive bias. Beyond that, though, if depth is not limited, and instead of training you could know, like a god, exactly which weights to use and set them directly, then the solution certainly exists within the Transformer’s function class.</p>

  <h3 id="chunyuan-its-all-about-the-computational-depth">Chunyuan: It’s all about the computational depth</h3>

  <p>Chunyuan went on to say that there is actually a lot of discussion about expressiveness in the linear attention community. For example, the Transformer belongs to TC⁰, while GDN (Gated DeltaNet, a kind of linear attention) is an NC¹ structure. He has read a dozen or so papers discussing such questions, including the Universal Transformer, “but UT needs ACT to have that property.” After reading so many, his final conclusion is:</p>

  <blockquote>
    <p>It’s all about the computational depth.</p>
  </blockquote>

  <p>You can do it in depth, or you can use a lot of CoT; essentially, there really is not much of a difference.</p>

  <blockquote>
    <p><strong>Note:</strong> Fixed-depth, log-precision Transformers can be simulated by TC⁰ circuit families [11]. On linear RNNs, research has proven that when the eigenvalues of the transition matrices are allowed to be negative (lying in [−1, 1]), linear RNNs whose transition matrices are products of “identity minus outer product” matrices, including models such as DeltaNet, can recognize any regular language [12] (the eigenvalues of standard GDN are all positive, so strictly speaking this relaxation is needed); and some regular languages (such as the word problem for the symmetric group S5) are NC¹-complete. As for UT and ACT, strictly speaking, the universality proof in the UT paper requires the number of recurrent steps to grow with input length, and ACT is one way to make the number of steps vary with the input.</p>
  </blockquote>

  <p>In Chunyuan’s view, architecture design basically comes down to two lines of thinking: either improve expressiveness, so that the architecture can express more and has a stronger function class; or improve learnability, so that the model can learn that function class more easily. He thinks that, for now, learnability may matter more; expressiveness is discussed more by people on the linear attention side.</p>

  <h2 id="loops-and-moe-should-different-loops-choose-the-same-experts">5. Loops and MoE: should different loops choose the same experts?</h2>

  <p>The host noted that MoE is now a fairly mainstream architecture, but as far as she knows, there is still little work on looping in MoE models. Benhao’s blog [3] converted both Ouro-style [13] and Huginn-style [14] architectures to MoE for comparison, and ByteDance Seed and other institutions recently released a paper, SMELT [15]. Her questions: MoE adds parameters, while looping adds FLOPs; MoE also brings issues such as dynamic top-k routing (different loops may select different experts) and communication costs. When loops are added to MoE models, the number of loops seems to be small; SMELT appears to loop only twice (R = 2). Does looping many times not work well with MoE? Or do looped LMs simply not need many loops? Also, could communication costs and the KV cache become a bigger burden with MoE?</p>

  <blockquote>
    <p><strong>Note:</strong> SMELT is a collaboration among Tsinghua University, ByteDance Seed, M-A-P and TokenWave.AI. It loops the middle half of the layers twice, and by making the model narrower and adding experts, it matches the baseline in per-token FLOPs, non-embedding parameter count and KV cache. The paper reports that at scales of up to 54B non-embedding parameters (1.6B active), it saves 6.8%–18.0% of training FLOPs along the compute-optimal frontier.</p>
  </blockquote>

  <h3 id="benhao-the-cost-must-be-paid-and-the-router-may-favor-a-few-experts">Benhao: the cost must be paid, and the router may favor a few experts</h3>

  <p>Benhao stressed that he has not run related experiments, so what follows is only a hypothesis: the logic is the same as with KV sharing. The hidden states of different loops are already very similar, and they sit at the same position, which reinforces the similarity, so the router may end up with a few experts that are always especially active. This is also why many works tell us that the redundancy between different loops of a looped model is still large, which is what makes KV sharing, quantization, KV eviction (discarding some of the KVs) and even router reuse possible.</p>

  <p>He thinks a router that always picks exactly the same experts would be a problem; if there are a few very active experts while several others vary across loops, that is still acceptable. Perhaps some special designs could be built around this property.</p>

  <blockquote>
    <p><strong>Note:</strong> Benhao’s blog [3] has a related result: in the MoE setting, forcing later loops to reuse the experts selected by the first loop lowered accuracy on all six test tasks.</p>
  </blockquote>

  <h3 id="chunyuan-different-loops-should-choose-different-experts">Chunyuan: different loops should choose different experts</h3>

  <p>Chunyuan largely agreed. He said looping has only two properties: depth and weight sharing. Without extrapolation, and when comparing against a model of the same depth, only weight sharing remains, and every question can be approached from there. For example, in a 12-layer MoE model, let layers 3 and 7 share the router weights W. The router’s logits are the input representation x multiplied by W; when W is the same, which experts each layer selects depends only on its own x. So if the two layers select the same experts, that shows their representations look similar to the router; it is not caused by the shared weights.</p>

  <h3 id="how-many-loops-are-right">How many loops are right?</h3>

  <p>The host then asked: are there any current looped LMs that loop fairly deeply? The depth of looping should have nothing to do with whether MoE is used.</p>

  <p>Benhao said that looping twice is quite a good sweet spot, as seen in Loopie [16] as well as SMELT, mentioned earlier.</p>

  <blockquote>
    <p><strong>Note:</strong> Loopie (Loop the Loopies!) follows the Qwen3-MoE architecture and pretrains two models from scratch, Loopie-20B-A2B and Loopie-6B-A0.6B; it uses “intra-layer looping,” in which each layer is executed twice before moving on to the next. Comparing 2, 3 and 4 loops, the paper finds that the marginal benefit of looping is largest at R = 2, while cautioning that this does not mean more loops are ineffective in themselves. SMELT likewise finds 2 loops to be best in ablations at the 200M scale; the paper’s explanation is that, to match FLOPs, the more loops there are, the narrower the model has to be.</p>
  </blockquote>

  <h2 id="extrapolation-feasible-on-toy-tasks-hard-for-natural-language">6. Extrapolation: feasible on toy tasks, hard for natural language</h2>

  <p>The host asked two things: first, why is extrapolation unlikely? Second, is extrapolation, that is, looping more times at inference than in training, even necessary? Especially now that the number of loops is generally small, basically two or three, how should we think about extrapolation?</p>

  <h3 id="benhao-it-depends-on-the-task">Benhao: it depends on the task</h3>

  <p>Benhao thinks the answer depends on what the task is; it is highly dependent on the data and the task. Fairly toy problems such as Sudoku, mazes or, somewhat more generally, 3-SAT are actually very well suited to looping, and training a looped model on them can yield the ability to extrapolate.</p>

  <blockquote>
    <p><strong>Note:</strong> Benhao’s Equilibrium Reasoners [2] is one such example: the paper reports that on Sudoku, unrolling the model to a depth equivalent to 40,000 layers raises accuracy from 2.6% for a feed-forward model to over 99%.</p>
  </blockquote>

  <p>But if the task becomes natural language, and a very general task at that, with essentially the same distribution as current pretraining data, it becomes very hard, because this is fundamentally a problem of mismatch between training and inference. Toy tasks can reduce this mismatch because in tasks like Sudoku, even intermediate reasoning states are valid inputs: the same set of rules is applied repeatedly to a state, and the rules themselves do not change. Real language settings are not that simple, and the mismatch between training and inference will be severe.</p>

  <p>So he thinks that training with only 8 steps and running 16 steps at inference is very hard. Staying stable may already be a good outcome; more often, performance degrades. And as discussed earlier, if the model has not learned a fixed point, using more steps may not work particularly well, all the more so beyond the training distribution.</p>

  <h3 id="chunyuan-it-may-also-be-a-data-problem">Chunyuan: it may also be a data problem</h3>

  <p>Chunyuan said that extrapolation is not only an algorithmic problem; it may also be a data problem: algorithms alone cannot make extrapolation stable, and what helps is finding a recipe that works in certain settings.</p>

  <h2 id="act-reasonable-on-paper-hard-in-practice">7. ACT: reasonable on paper, hard in practice</h2>

  <p>The host asked: is ACT feasible from an engineering standpoint?</p>

  <h3 id="chunyuan-the-infrastructure-is-too-hard-and-the-gains-are-unproven">Chunyuan: the infrastructure is too hard, and the gains are unproven</h3>

  <p>Chunyuan said he has no idea at all how to build the infrastructure. He had previously tried something similar to Mixture-of-Depths [18] himself, that is, MoE along depth. If you route along depth, the first token might want to go through layers 1, 3 and 7, and the second token through layers 1, 4 and 6, and then the problems start: how do you batch? How do you train? He has no idea how such an ML system should be built.</p>

  <blockquote>
    <p><strong>Editor’s note:</strong> ACT was proposed by Graves in 2016, originally for RNNs: at each step the model additionally outputs a halting probability, and computation stops once the cumulative probability exceeds a threshold. Mixture-of-Depths uses a router to score each token and lets only the top-scoring fraction of tokens (for example, 12.5%) pass through a layer’s attention and MLP, while the remaining tokens skip it via the residual connection; because the number of tokens each layer processes is fixed in advance, the computation graph remains static.</p>
  </blockquote>

  <p>Suppose a fairly good scenario: ACT works, and people first discover that letting each token take a different number of steps brings very large gains; that would in turn push the ML systems community to come up with better solutions. But he has not seen any recent evidence that token-level ACT brings much benefit; it may instead bring more instability, and training at different depths is also hard.</p>

  <h3 id="benhao-it-looks-reasonable-but-is-not-worth-pursuing-further">Benhao: it looks reasonable, but is not worth pursuing further</h3>

  <p>Benhao agreed with Chunyuan. He sees ACT as a path that seems to make a lot of sense but in practice may not be worth pursuing further; some people have spent a long time on it and found that it still does not really work. One reason is the ML-system problem Chunyuan mentioned; a more fundamental reason, in his view, is that the number of loops is small to begin with: with so few loops, how much room is there for adaptivity?</p>

  <p>Moreover, from the perspective of fixed points, the hidden states produced by very shallow loops are still quite unstable, so ACT would aggravate the mismatch between training and inference. The results he has seen are basically all performance drops in exchange for a tiny bit of inference speedup, so he does not think ACT suits the language setting well. However, in the HRM [19] and TRM [20] line of work, which was very popular a while back, ACT is very well motivated, and he sees no problem with those approaches.</p>

  <blockquote>
    <p><strong>Note:</strong> HRM (Hierarchical Reasoning Model) has only 27M parameters and achieved strong results on Sudoku-Extreme, Maze-Hard and ARC-AGI with about 1,000 training examples; it implements ACT with a “halt / continue” head trained by Q-learning. TRM recursively applies just a single 2-layer network of about 7M parameters and further simplifies ACT to a single halting head that judges whether the current answer is correct, removing the extra forward pass previously required. On such puzzles, difficulty varies greatly from one puzzle to another, and intermediate states are themselves valid inputs, which may be one reason ACT is well motivated here but hard to make work in language modeling.</p>
  </blockquote>

  <h2 id="more-realistic-speedups-parallel-and-speculative-decoding">8. More realistic speedups: parallel and speculative decoding</h2>

  <p>Benhao said that, as for the best engineering solution, speculative decoding and parallel generation for looped LMs are a very interesting direction.</p>

  <p>Diffusion Forcing [21] from video generation, and the techniques commonly used for real-time game generation in world models, can all be used in looped models. The reason is precisely weight sharing: in diffusion, the same model is fed different diffusion time steps; in looping, the same model is applied repeatedly across different loops. The two are structurally very similar, so a similar kind of parallelism is possible. Rather than doing adaptive looping, it is better to put the effort here, where the speedup will be large.</p>

  <blockquote>
    <p><strong>Note:</strong> Diffusion Forcing trains a diffusion model to denoise a set of tokens that each carry an independent noise level, so that, like a causal model, it can start generating later tokens before earlier ones are fully denoised.</p>
  </blockquote>

  <p>He also recommended a paper by the authors of Huginn [14]: Efficient Parallel Samplers for Recurrent-Depth Models [22].</p>

  <blockquote>
    <p><strong>Note:</strong> The paper has been accepted at ICML 2026. It proposes a diffusion-forcing-style sampler: every forward pass decodes at least one new token from the intermediate hidden states, while several earlier tokens continue to be refined in parallel within the loop, forming a “wavefront” that moves forward (new tokens have just started looping while older ones have already looped many rounds; within one forward pass, the tokens are at different rounds, like a diagonal line advancing step by step). Total compute stays the same, and the speedup comes from making fuller use of the GPU; on the 3.5B Huginn model, the paper reports speedups of up to about 5× on tasks such as GSM8K, MATH500, HumanEval and MBPP, with very little change in accuracy.</p>
  </blockquote>

  <h2 id="references">References</h2>

  <p>[1] <a href="https://arxiv.org/abs/2605.20670">LT2: Linear-Time Looped Transformers</a>. arXiv:2605.20670, 2026.</p>

  <p>[2] <a href="https://arxiv.org/abs/2605.21488">Equilibrium Reasoners: Learning Attractors Enables Scalable Reasoning</a>. arXiv:2605.21488, 2026.</p>

  <p>[3] <a href="https://ifm-research.notion.site/Towards-Looped-Models-Done-Right-3ade511912ec8128987dfeb7a5580043">Towards Looped Models Done Right</a>. Blog series, 2026.</p>

  <p>[4] <a href="https://arxiv.org/abs/2412.06769">Training Large Language Models to Reason in a Continuous Latent Space</a> (Coconut). arXiv:2412.06769, 2024.</p>

  <p>[5] <a href="https://arxiv.org/abs/2608.08888">Full-bandwidth transformer</a>. arXiv:2608.08888, 2026.</p>

  <p>[6] <a href="https://arxiv.org/abs/2404.08819">The Illusion of State in State-Space Models</a>. ICML 2024, arXiv:2404.08819.</p>

  <p>[7] <a href="https://arxiv.org/abs/2607.15178">T²MLR: Transformer with Temporal Middle-Layer Recurrence</a>. arXiv:2607.15178, 2026.</p>

  <p>[8] <a href="https://arxiv.org/abs/1807.03819">Universal Transformers</a>. ICLR 2019, arXiv:1807.03819.</p>

  <p>[9] <a href="https://jmlr.org/papers/volume22/20-302/20-302.pdf">Attention is Turing Complete</a>. JMLR 22(75), 2021.</p>

  <p>[10] <a href="https://arxiv.org/abs/2310.07923">The Expressive Power of Transformers with Chain of Thought</a>. ICLR 2024, arXiv:2310.07923.</p>

  <p>[11] <a href="https://arxiv.org/abs/2207.00729">The Parallelism Tradeoff: Limitations of Log-Precision Transformers</a>. TACL 2023, arXiv:2207.00729.</p>

  <p>[12] <a href="https://arxiv.org/abs/2411.12537">Unlocking State-Tracking in Linear RNNs Through Negative Eigenvalues</a>. ICLR 2025, arXiv:2411.12537.</p>

  <p>[13] <a href="https://arxiv.org/abs/2510.25741">Scaling Latent Reasoning via Looped Language Models</a> (Ouro). arXiv:2510.25741, 2025.</p>

  <p>[14] <a href="https://arxiv.org/abs/2502.05171">Scaling up Test-Time Compute with Latent Reasoning: A Recurrent Depth Approach</a> (Huginn). NeurIPS 2025, arXiv:2502.05171.</p>

  <p>[15] <a href="https://arxiv.org/abs/2609.01343">SMELT: Scaling Laws for Compute-Matched MoE Looped Transformers</a>. arXiv:2609.01343, 2026.</p>

  <p>[16] <a href="https://arxiv.org/abs/2607.16051">Loop the Loopies!</a> (Loopie). arXiv:2607.16051, 2026.</p>

  <p>[17] <a href="https://arxiv.org/abs/1603.08983">Adaptive Computation Time for Recurrent Neural Networks</a> (ACT). arXiv:1603.08983, 2016.</p>

  <p>[18] <a href="https://arxiv.org/abs/2404.02258">Mixture-of-Depths: Dynamically allocating compute in transformer-based language models</a>. arXiv:2404.02258, 2024.</p>

  <p>[19] <a href="https://arxiv.org/abs/2506.21734">Hierarchical Reasoning Model</a> (HRM). arXiv:2506.21734, 2025.</p>

  <p>[20] <a href="https://arxiv.org/abs/2510.04871">Less is More: Recursive Reasoning with Tiny Networks</a> (TRM). arXiv:2510.04871, 2025.</p>

  <p>[21] <a href="https://arxiv.org/abs/2407.01392">Diffusion Forcing: Next-token Prediction Meets Full-Sequence Diffusion</a>. NeurIPS 2024, arXiv:2407.01392.</p>

  <p>[22] <a href="https://arxiv.org/abs/2510.14961">Efficient Parallel Samplers for Recurrent-Depth Models and Their Connection to Diffusion Language Models</a>. ICML 2026, arXiv:2510.14961.</p>

  <hr />

  <p><em>This series: <a href="/blog/2026/10/looped-lm-recap-1-lt2/">Part 1｜LT2 and Historical KV Replay</a> · <a href="/blog/2026/10/looped-lm-recap-2-panel-first-half/">Part 2｜Panel, First Half</a> · Part 3｜Panel, Second Half (this post)</em></p>

</div>

<div class="lang-content lang-zh" lang="zh" style="display: none;">

  <p>本文是 NICE 举办的「Looped Language Model：重新思考模型的深度与参数」活动回顾的第三篇，也是最后一篇，整理圆桌讨论的下半场。圆桌由华文越主持，邓淳远和黄奔皓两位嘉宾参与讨论。</p>

  <p>下半场的话题更发散：沿深度循环和沿时间循环（也就是 CoT）是不是一回事？表达力证明还有没有意义？loop 和 MoE 怎么结合？以及外推、自适应计算（ACT）和并行解码这几个关于“推理时怎么用 loop”的问题。</p>

  <h2 id="section">本文要点</h2>

  <ul>
    <li><strong>沿深度循环与沿时间循环，从计算深度看很像</strong>。淳远认为两者都“总共要走那么多 sequential step，区别只是怎么走”；他觉得一个不同之处在数据：显式 CoT 可以合成，latent CoT 的监督则不知道该怎么构造。</li>
    <li><strong>Loop 与 soft token 的差别在 KV cache 怎么用</strong>。从一个 token 的生命周期看，loop 两次和多生成一个 soft token 深度相近；让上一个 token 的深层状态流回下一个 token 的浅层，正是 Full-Bandwidth Transformer 的出发点。</li>
    <li><strong>RL 是新机会，也有隐忧</strong>。Loop 本身不妨碍 RL，机会在于给中间的 loop 分配 credit；隐忧是 loop 可能本身就在做类似 RL 的事，RL 的增幅可能变小。</li>
    <li><strong>表达力证明并非“鸡肋”</strong>。归纳偏置决定学得快慢；淳远的结论是 “It’s all about the computational depth”，当下更重要的是可学习性。</li>
    <li><strong>Loop × MoE：不同 loop 选不同 expert 才对</strong>。多项工作发现 loop 两次是 sweet spot，奔皓希望大家“好歹 loop 三次”。</li>
    <li><strong>外推在自然语言上很难，ACT 看起来合理却难走</strong>。两者都想在推理时改变 loop 次数：外推是比训练时 loop 更多次，ACT 是让每个 token 自己决定 loop 几次；两者都会遇到训练与推理不匹配的问题，ACT 还面临 infra 上的困难。奔皓认为，更现实的加速方向是不改变 loop 次数，而是借鉴 Diffusion Forcing，把不同 token 的不同 loop 错开并行解码。</li>
  </ul>

  <h2 id="section-1">读前速查</h2>

  <p>下表解释本文反复出现的几个术语，熟悉的读者可以直接跳过。</p>

  <table>
    <thead>
      <tr>
        <th>术语</th>
        <th>白话解释</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>Soft token / Coconut</td>
        <td>Coconut 把模型最后一层的隐状态直接当作下一步的输入，而不解码成文字，这种“连续思维”就是 soft token</td>
      </tr>
      <tr>
        <td>Teacher forcing</td>
        <td>训练时直接用真实文本作为前文输入（而不是模型自己生成的 token），因此所有位置可以并行计算。为了保持这种并行，标准结构里每个位置在某一层只能看到前面位置同一层的信息，看不到它们更深层的状态；所以前一个 token 在深层得出的结果，后面的 token 要到同样深的层才能用上，留给继续加工的层数很少</td>
      </tr>
      <tr>
        <td>State tracking</td>
        <td>状态追踪：持续跟踪一个随输入变化的状态，例如依次执行一串交换操作后判断每个物品在哪</td>
      </tr>
      <tr>
        <td>TC⁰ / NC¹</td>
        <td>电路复杂度中的两个类别：TC⁰ 对应固定深度、高度并行的计算；NC¹ 允许深度随输入长度对数增长，一般认为严格更强（尚未被证明），某些状态追踪问题就是 NC¹ 完全的</td>
      </tr>
      <tr>
        <td>外推</td>
        <td>推理时 loop 次数超过训练时，模型仍然有效甚至更好</td>
      </tr>
      <tr>
        <td>ACT</td>
        <td>Adaptive Computation Time，自适应计算：让每个 token 按难度自己决定 loop 几次</td>
      </tr>
      <tr>
        <td>Mixture-of-Depths</td>
        <td>由路由器决定每个 token 是否跳过某一层，在深度上动态分配计算</td>
      </tr>
      <tr>
        <td>HRM / TRM</td>
        <td>两个用很小的网络反复递归来解谜题的模型（参数分别约 27M 和 7M），常用于数独、迷宫、ARC-AGI</td>
      </tr>
      <tr>
        <td>Diffusion Forcing</td>
        <td>一种扩散模型训练方法：序列里每个 token 有各自独立的噪声水平，因而可以一边继续去噪旧的帧、一边开始生成新的帧</td>
      </tr>
      <tr>
        <td>投机解码</td>
        <td>先用便宜的方式草拟后续 token，再用完整模型并行验证，以减少串行步数</td>
      </tr>
    </tbody>
  </table>

  <h2 id="section-2">参与嘉宾</h2>

  <p><strong>邓淳远</strong>：Rice University 博士生，导师为 Hanjie Chen 教授。研究聚焦 LLM 预训练架构设计与优化，也关注语言模型的可解释性。代表工作为 LT2: Linear-Time Looped Transformers [1]，他在活动中的主题分享见本系列第一篇。</p>

  <p><strong>黄奔皓</strong>：CMU 硕士生，导师为 Zico Kolter 教授。主要研究 looped LM 与不动点（fixed point），致力于提升基础模型的推理能力与效率。代表工作包括 Equilibrium Reasoners [2] 和博客系列 Towards Looped Models Done Right [3]。</p>

  <p><strong>华文越（主持）</strong>：微软 MAI 研究员（Member of Technical Staff）。博士毕业于 Rutgers University，导师为张永锋教授，之后在 UCSB 从事博士后研究。主要研究方向为 LLM reasoning 与 LLM-based agent，在 ACL、EMNLP、ICLR、NeurIPS、TACL 等 NLP 与机器学习领域的顶级会议和期刊发表多篇论文，并担任 ACL Area Chair。</p>

  <h2 id="section-3">一、沿深度循环与沿时间循环是一回事吗？</h2>

  <p>主持人华文越想听两位谈谈：为什么最近 loop 方向的论文像井喷一样多（当然也可能是偶然）？沿深度的循环和沿时间的循环，本质上是一回事吗？这些隐式推理与显式 CoT 是什么关系？对 RL 的 credit assignment 会有影响吗？</p>

  <h3 id="section-4">淳远：取决于怎么定义“本质”</h3>

  <p>淳远说，这取决于我们怎么定义“本质”。可以先问一个问题：RNN 和 Transformer 本质上是一回事吗？Transformer 训练时也可以不用 teacher forcing 并行计算，而是像 RNN 那样一步一步地走。从架构上说，最重要的是看 operation：架构归根结底是一堆 operator。如果“本质”指的是从表达力的角度谈计算深度，那他个人觉得两者确实比较像：总共就是要走那么多 sequential step（串行步骤），区别只是怎么走。</p>

  <p>至于是否需要显式 CoT，他认为显式 CoT 与 latent CoT 的一个区别在于训练数据：前者可以人工编写，也可以由人或模型合成；后者该如何合成数据、构造监督，他目前还想不到可行的办法。</p>

  <p>对现在的 loop 结构来说，如果只是做 SFT 或预训练，loop 和 CoT 并没有什么大的冲突：模型只是用更深的深度去学 CoT，而不是把 CoT 消解掉了。但在 RL 这里，更深的深度（或者像 Full-Bandwidth Transformer 这样的结构）确实可能产生影响。RL 需要采样；在 agentic 场景下，模型需要很多中间变量来做 state tracking，这时它必须借助 CoT 或深度。有了更深的深度，CoT 的长度可能会被削减，而 RL 本身也要求 token 效率。同样，如果用 Coconut [4] 这类 latent reasoning 的方法，CoT 也可能变短。他认为这两种东西在 RL 上确实会产生差异。</p>

  <blockquote>
    <p><strong>注</strong>：Coconut（Chain of Continuous Thought）把模型最后一层的隐状态直接作为下一步的输入 embedding，而不解码成文字，让推理在连续的隐空间中进行。</p>
  </blockquote>

  <h2 id="loop-vs-coconut-token-">二、Loop vs Coconut：从一个 token 的生命周期看</h2>

  <h3 id="kv-cache-">深度相近，差别在 KV cache 怎么用</h3>

  <p>如果把拓扑结构画出来，看一个 token 具体的生命周期，把 loop 和 Coconut 式的 soft token 分别写出来：比如一个 loop 两次的模型，和一个不 loop 的 L 层模型、但多生成一个 soft token，两者的深度看起来很像。区别在细节上：怎么利用 KV cache。</p>

  <p>做 loop 时，如果能让上一个 token 的最终 hidden state 注入到下一个 token 的浅层，是有好处的，这正是 Full-Bandwidth Transformer [5] 的动机。而在一般的 loop 里，由于用 teacher forcing 训练，深层的信息在后面 token 的浅层计算时还没有形成，自然是拿不到的。Soft token 也类似：前一个 token 是 soft token 还是普通的显式 token，后面的 token 能看到它哪些层的 KV，情况也不一样。</p>

  <blockquote>
    <p><strong>注</strong>：Full-Bandwidth Transformer 把上一个位置最顶层的隐状态，经门控单元与当前采样出的 token embedding 融合，作为下一个位置在最底层的输入；其余架构、KV cache 和训练目标都与标准模型相同。由于这种依赖无法直接并行，训练时采用多遍前向：每多一遍，就把上一遍的隐状态右移一位再跑一次整个网络，并且只在训练后期加入这种反馈（例如前约 75% 的训练只跑单遍）。论文在 1B 规模、最多 400B token 的实验中报告，它可以匹配或接近用约 1.5 倍 token 训练的标准模型；按论文估算，解码时每个 token 增加的计算量不到 1%，在 vLLM 中实测约慢 2.3%。</p>
  </blockquote>

  <h3 id="rnn-">RNN 的独特之处</h3>

  <p>奔皓认为一个很有意思的点是：刚才淳远提到 RNN 和 Transformer，在复杂度类、电路复杂度这类衡量模型能力的框架下，RNN 有它的独特之处，比如 state tracking。Soft token 可以把这种能力“注入回” Transformer 类架构；只做 loop、不引入其他机制，则未必能做到。</p>

  <blockquote>
    <p><strong>注</strong>：固定深度的 Transformer 和不少状态空间模型都落在 TC⁰ 这一复杂度类中，因此一般认为它们无法完成置换复合这类 NC¹ 完全的状态追踪问题 [6]；而 CoT 或 soft token 每多生成一步，就相当于让模型多做一步串行计算。</p>
  </blockquote>

  <h2 id="loop--rl-">三、Loop 对 RL 意味着什么</h2>

  <h3 id="prefill">额外代价主要在 prefill</h3>

  <p>奔皓提到，Full-Bandwidth Transformer 这类把深层状态送回浅层的设计用于 RL 时，可能会有一些额外代价：想拿到深层的 hidden state，就需要额外的迭代或前向。在 prefill（模型先把整段输入一次性读进来、建好 KV cache 的阶段）很多的场景，比如 agentic 任务，这可能会成为问题，RL 训练也会多一些代价。</p>

  <h3 id="loop--credit">新机会：给中间的 loop 分配 credit</h3>

  <p>至于 credit assignment，奔皓认为：只看 loop 本身，没有什么会阻止它做 RL，Transformer 怎么做，looped Transformer 就怎么做，没什么区别。但如果想给 loop 中间的步骤分配 credit，比如 loop 四次，想给第 1、2、3 次也分配一些 credit，就可以思考有没有一些有意思的做法了。举个例子：做 RL 时，能不能让中间几个 loop 去承担 tool calling 之类的任务？</p>

  <h3 id="loop--rl--1">隐忧：loop 本身可能就在做类似 RL 的事</h3>

  <p>除此之外，他也有一个不太确定的担心：loop 之后再做 RL，增幅会不会没有之前那么大？因为 loop 模型本身可能也在做一些类似 RL 的事情。</p>

  <p>主持人追问：“loop 本身在做 RL”是什么意思？奔皓的解释是：</p>

  <blockquote>
    <p>RL 是一种 distribution sharpening，让分布更尖锐，有点 mode seeking 的感觉；loop 则可以看作一种 power iteration，它会把比较稳定的模式留下来，就像留下最大、次大特征值对应的方向。</p>
  </blockquote>

  <blockquote>
    <p><strong>注</strong>：幂迭代（power iteration）是求矩阵主特征向量的经典方法：反复用矩阵去乘一个向量并归一化，其他方向的分量会逐渐衰减，最后留下最大特征值对应的方向。奔皓的类比是：两者都会让模型向少数主导模式收缩，所以可能有重叠。</p>
  </blockquote>

  <h2 id="section-5">四、表达力证明还有意义吗？</h2>

  <p>loop 方向有 Universal Transformer（UT）[8] 这类工作，好像能逼近所有函数；还有论文说，在无限 CoT 或无限数值精度的条件下，Transformer 接近图灵完备。很多架构在放宽某些条件后，都能证明自己是比较通用的。那么，表达力证明是不是和架构怎么设计关系不大？</p>

  <blockquote>
    <p><strong>注</strong>：Universal Transformer 论文表明，在内存足够、循环步数随输入长度增长时，它是计算通用的。Pérez 等人证明，在权重和激活可以取任意精度的假设下，Transformer 是图灵完备的，而固定精度时则不是 [9]。Merrill 和 Sabharwal 证明，允许线性步数的 CoT 时，Transformer 能识别所有正则语言，允许多项式步数时恰好能识别 P 类问题 [10]，即用普通算法在多项式时间内就能解决的那类判定问题。</p>
  </blockquote>

  <h3 id="section-6">奔皓：归纳偏置决定学得快慢</h3>

  <p>奔皓说，有些架构有自己的归纳偏置，对某些任务学得更快。比如 loop 模型在数独任务上可以学得很快，而同样深度的 Transformer 学起来就有点困难，因为它没有合适的归纳偏置。但除此之外，如果不限制深度，又不通过训练，而是像神一样知道该用什么权重并直接设置好，那 Transformer 的函数类里肯定是有这个解的。</p>

  <h3 id="its-all-about-the-computational-depth">淳远：It’s all about the computational depth</h3>

  <p>淳远接着说，线性注意力社区其实有很多关于表达力的讨论。比如 Transformer 属于 TC⁰，GDN（Gated DeltaNet，一种线性注意力）则是一个 NC¹ 的结构。他大概看过十几篇讨论这类问题的文章，包括 Universal Transformer，“但 UT 得配合 ACT 才有这种性质”。看了这么多，他最后的结论是：</p>

  <blockquote>
    <p>It’s all about the computational depth.</p>
  </blockquote>

  <p>你可以在深度上做，也可以用很多 CoT，本质上确实不会有特别大的区别。</p>

  <blockquote>
    <p><strong>注</strong>：固定深度、对数精度的 Transformer 可以被 TC⁰ 电路族模拟 [11]。关于线性 RNN，有研究证明，允许转移矩阵特征值取负（落在 [−1, 1]）、由“单位阵减外积”的矩阵连乘构成的线性 RNN，包括 DeltaNet 这类模型，可以识别任意正则语言 [12]（标准 GDN 的特征值都是正的，严格说需要做这一放宽）；而某些正则语言（如 S5 置换群上的字问题）是 NC¹ 完全的。至于 UT 与 ACT，严格来说，UT 论文的通用性证明要求循环步数随输入长度增长，ACT 是让步数随输入变化的一种方式。</p>
  </blockquote>

  <p>在淳远看来，架构设计基本就是这两个逻辑：要么提升表达力，让它能表达更多、函数类更强；要么提升可学习性（learnability），让模型更容易把这个函数类学出来。他觉得就当下而言，可学习性可能更重要；表达力则是线性注意力那边的人讨论得多一些。</p>

  <h2 id="loop--moe-loop--expert-">五、Loop 与 MoE：不同 loop 该选同样的 expert 吗？</h2>

  <p>主持人说，MoE 现在是比较主流的架构，但据她的了解，在 MoE 上做 loop 的工作还不多。奔皓的博客 [3] 里把 Ouro [13] 和 Huginn [14] 式的结构都改成了 MoE 做对比，字节跳动 Seed 等机构最近也有一篇 SMELT [15]。她的疑问是：MoE 增加的是参数，loop 增加的是 FLOPs；MoE 还有不固定的 top-k routing（不同 loop 选中的 expert 可能不同）、通信成本等问题。在 MoE 上加 loop，loop 次数似乎都比较少，SMELT 好像只 loop 两次（R = 2），是不是在 MoE 上 loop 很多次不太行？还是说 looped LM 本来就不需要 loop 太多次？另外，通信成本和 KV cache 在 MoE 上会不会成为更大的负担？</p>

  <blockquote>
    <p><strong>注</strong>：SMELT 由清华大学、字节跳动 Seed、M-A-P 和 TokenWave.AI 合作完成。它让中间一半的层 loop 两次，并通过把模型做窄、增加 expert，使每个 token 的 FLOPs、非 embedding 参数量和 KV cache 都与 baseline 对齐。据论文报告，在最大 54B 非 embedding 参数（1.6B 激活）的规模上，它在计算最优前沿上节省了 6.8%–18.0% 的训练 FLOPs。</p>
  </blockquote>

  <h3 id="router--expert">奔皓：成本要付，router 可能偏爱少数 expert</h3>

  <p>奔皓强调自己没有做过相关实验，以下都只是假设：这和 KV sharing 是一个道理。不同 loop 的 hidden state 本来就很像，位置也一样，这会加剧相似性，router 可能出现几个 expert 一直特别活跃的情况。这也是为什么很多工作都告诉我们，looped 模型不同 loop 之间的冗余还是很大，所以才能做 KV sharing、量化、KV eviction（淘汰部分 KV），甚至 router 复用。</p>

  <p>他觉得，如果一个 router 始终选完全一样的 expert，是有问题的；如果有几个非常活跃的 expert，同时有好几个 expert 在不同 loop 之间变化，那还可以接受。也许可以针对这种特性做一些特殊设计，</p>

  <blockquote>
    <p><strong>注</strong>：奔皓博客 [3] 中有一个相关结果：在 MoE 设置下，强制后面的 loop 复用第一个 loop 选中的 expert，六项测试任务的准确率全部下降。</p>
  </blockquote>

  <h3 id="loop--expert-">淳远：不同 loop 选不同 expert 才对</h3>

  <p>淳远也比较同意。他说：loop 只有两个性质，深度和 weight sharing。如果没有外推，又要和同等深度的模型比，那就只剩下 weight sharing，所有问题都可以从这里出发。比如在一个 12 层的 MoE 里，让第 3 层和第 7 层共享 router 权重 W。router 的 logits 是输入表示 x 乘以 W，W 相同时，两层选哪些 expert 只取决于各自的 x。所以两层若选中相同的 expert，说明的是两层的表示在 router 看来相近，而不是共享权重造成的。</p>

  <h3 id="loop-">Loop 几次合适？</h3>

  <p>主持人又问：目前的 looped LM 有没有 loop 得比较深的？loop 的深度和用不用 MoE 应该没有关系。</p>

  <p>奔皓说， loop 两次是一个挺好的 sweet spot，包括 Loopie [16]，以及刚才提到的 SMELT。</p>

  <blockquote>
    <p><strong>注</strong>：Loopie（Loop the Loopies!）沿用 Qwen3-MoE 架构，从头预训练了 Loopie-20B-A2B 和 Loopie-6B-A0.6B 两个模型；它采用“层内 loop”，每一层先重复执行两次再进入下一层。论文在 2、3、4 次 loop 的对比中发现，loop 的边际收益在 R = 2 时最大，同时也提醒这不代表更多次 loop 本身无效。SMELT 在 200M 规模的消融中同样发现 2 次最好，论文给出的解释是：为了匹配 FLOPs，loop 次数越多，模型就必须做得越窄。</p>
  </blockquote>

  <h2 id="toy-task-">六、外推：toy task 可以，自然语言很难</h2>

  <p>主持人问了两件事：一是为什么外推不太可能？二是有没有外推的必要，也就是让推理时的 loop 次数超过训练时？尤其在目前 loop 次数都比较少、基本是两三次的情况下，该怎么看待外推？</p>

  <h3 id="section-7">奔皓：取决于任务</h3>

  <p>奔皓认为这个问题要看任务是什么，和数据、任务的相关性非常大。如果是数独、迷宫，或者更一般一点的 3-SAT 这类比较 toy 的问题，它们其实非常适合 loop，在上面训练 loop 模型是有可能得到外推能力的。</p>

  <blockquote>
    <p><strong>注</strong>：奔皓的 Equilibrium Reasoners [2] 就是这类任务上的一个例子：据论文报告，在数独任务上把模型展开到相当于 4 万层的深度，准确率从前馈模型的 2.6% 提升到 99% 以上。</p>
  </blockquote>

  <p>但如果把任务换成自然语言，而且是非常通用的任务，基本上和当前预训练数据的分布一样，就很难做了，因为这本质上是一个训练和推理不匹配（mismatch）的问题。Toy task 之所以能减少这种 mismatch，是因为在数独这类任务里，即使是中间的推理状态，也可以作为合法的输入：同一套规则在一个状态上反复应用，规则本身不会变。真实的语言场景没有那么简单，训练和推理的 mismatch 会很严重。</p>

  <p>所以他觉得，训练时只训 8 步、推理时推 16 步，非常难。能保持稳定，可能就已经不错了；更多情况下会看到性能衰减。再加上前面讲的，如果没有学到不动点，即使用了更多步，效果也可能没有特别好；超出训练分布的话，就更是如此。</p>

  <h3 id="section-8">淳远：可能也是数据问题</h3>

  <p>淳远说，外推不只是一个算法问题，可能还是一个数据问题：没法只靠算法把外推稳定下来，而是要在某些场景下找到一套 recipe（配方）才会有帮助。</p>

  <h2 id="act">七、ACT：看起来合理，实际难走</h2>

  <p>主持人问： ACT 在工程上可行吗？</p>

  <h3 id="infra-">淳远：infra 太难，收益也未被证明</h3>

  <p>淳远说，infra 完全不知道怎么做。他之前自己做过类似 Mixture-of-Depths [18] 的尝试，也就是在深度上做 MoE。如果在深度上做路由，可能第一个 token 想走第 1、3、7 层，第二个 token 要走第 1、4、6 层，问题就来了：怎么 batching？怎么训练？完全不知道这样的 ML system 该怎么做。</p>

  <blockquote>
    <p><strong>编者注</strong>：ACT 由 Graves 在 2016 年提出，最初用于 RNN：模型在每一步额外输出一个“停止”概率，累计超过阈值就停止计算。Mixture-of-Depths 则用路由器为每个 token 打分，只让得分最高的一部分 token（例如 12.5%）经过某一层的 attention 和 MLP，其余 token 直接通过残差连接跳过；由于每层处理的 token 数事先固定，计算图仍是静态的。</p>
  </blockquote>

  <p>假设一种比较好的情况：ACT 做成了，大家先发现让每个 token 走不同的步数能带来非常大的收益，那反而会推动 ML system 去给出更好的解决方案。但他最近也没有看到证据说明 token 级 ACT 能带来多大收益，反而可能带来更多不稳定，不同深度的训练也很难。</p>

  <h3 id="section-9">奔皓：看着合理，实际不适合继续走</h3>

  <p>奔皓同意淳远的看法。他认为ACT是一条看起来很 make sense、但实际可能不太适合继续走的路，有些人花了很久时间，发现还是不太 work。一方面是淳远说的 ML system 问题；他觉得更本质的原因是，现在 loop 次数本来就不多，loop 这么少，还能有多少自适应的空间？</p>

  <p>另外，如果从不动点的角度考虑，很浅的 loop 得到的 hidden state 其实还很不稳定，ACT 会加剧训练和推理的 mismatch。他看到的结果基本都是性能下降，换来一点点推理加速，所以他不认为 ACT 很适合语言的设定。不过在之前很火的 HRM [19]、TRM [20] 这类工作里，做 ACT 是非常有动机的，那些做法他觉得没什么问题。</p>

  <blockquote>
    <p><strong>注</strong>：HRM（Hierarchical Reasoning Model）只有 27M 参数，用约 1000 个训练样例在 Sudoku-Extreme、Maze-Hard 和 ARC-AGI 上取得了很强的结果，它用一个经 Q-learning 训练的“停止 / 继续”头来实现 ACT。TRM 只用一个 2 层、约 7M 参数的网络反复递归，并进一步简化了 ACT：只训练一个判断当前答案是否正确的停止头，省掉了原先需要的额外一次前向。在这类谜题上，不同题目的难度差异很大，中间状态本身也是合法的输入，这或许是 ACT 在这里有动机、在语言建模中却难以奏效的原因之一。</p>
  </blockquote>

  <h2 id="section-10">八、更现实的加速：并行与投机解码</h2>

  <p>奔皓说：关于工程上的最优解，looped LM 的投机解码（speculative decoding）和并行生成，是一个很有意思的方向。</p>

  <p>视频生成里的 Diffusion Forcing [21]，或者 world model 中实时游戏生成常用的技巧，在 loop 模型里都是可以用的。原因正是 weight sharing：在 diffusion 里，是同一个模型被注入不同的 diffusion time step；在 loop 里，是同一个模型被反复用于不同的 loop。两者在结构上很像，所以可以做类似的并行。与其做 adaptive loop，不如把精力放在这上面，加速会很大。</p>

  <blockquote>
    <p><strong>注</strong>：Diffusion Forcing 训练扩散模型去噪一组各自带有独立噪声水平的 token，因此可以像因果模型一样，在前面的 token 还没有完全去噪时就开始生成后面的 token。</p>
  </blockquote>

  <p>他还推荐了 Huginn [14] 作者的一篇工作 Efficient Parallel Samplers for Recurrent-Depth Models [22]。</p>

  <blockquote>
    <p><strong>注</strong>：这篇论文已被 ICML 2026 接收。它提出一种 diffusion forcing 式的采样器：每次前向都从中间的隐状态解码出至少一个新 token，同时之前的若干 token 继续在循环中并行精炼，形成一个向前推进的“波前”（新 token 刚开始循环，旧 token 已循环多轮；同一次前向里各 token 处在不同轮次，像一道斜线逐步向前推进）。总计算量不变，加速来自更充分地利用 GPU；据论文报告，在 3.5B 的 Huginn 模型上，GSM8K、MATH500、HumanEval、MBPP 等任务最高可加速约 5 倍，准确率变化很小。</p>
  </blockquote>

  <h2 id="section-11">参考文献</h2>

  <p>[1] <a href="https://arxiv.org/abs/2605.20670">LT2: Linear-Time Looped Transformers</a>. arXiv:2605.20670, 2026.</p>

  <p>[2] <a href="https://arxiv.org/abs/2605.21488">Equilibrium Reasoners: Learning Attractors Enables Scalable Reasoning</a>. arXiv:2605.21488, 2026.</p>

  <p>[3] <a href="https://ifm-research.notion.site/Towards-Looped-Models-Done-Right-3ade511912ec8128987dfeb7a5580043">Towards Looped Models Done Right</a>. Blog series, 2026.</p>

  <p>[4] <a href="https://arxiv.org/abs/2412.06769">Training Large Language Models to Reason in a Continuous Latent Space</a> (Coconut). arXiv:2412.06769, 2024.</p>

  <p>[5] <a href="https://arxiv.org/abs/2608.08888">Full-bandwidth transformer</a>. arXiv:2608.08888, 2026.</p>

  <p>[6] <a href="https://arxiv.org/abs/2404.08819">The Illusion of State in State-Space Models</a>. ICML 2024, arXiv:2404.08819.</p>

  <p>[7] <a href="https://arxiv.org/abs/2607.15178">T²MLR: Transformer with Temporal Middle-Layer Recurrence</a>. arXiv:2607.15178, 2026.</p>

  <p>[8] <a href="https://arxiv.org/abs/1807.03819">Universal Transformers</a>. ICLR 2019, arXiv:1807.03819.</p>

  <p>[9] <a href="https://jmlr.org/papers/volume22/20-302/20-302.pdf">Attention is Turing Complete</a>. JMLR 22(75), 2021.</p>

  <p>[10] <a href="https://arxiv.org/abs/2310.07923">The Expressive Power of Transformers with Chain of Thought</a>. ICLR 2024, arXiv:2310.07923.</p>

  <p>[11] <a href="https://arxiv.org/abs/2207.00729">The Parallelism Tradeoff: Limitations of Log-Precision Transformers</a>. TACL 2023, arXiv:2207.00729.</p>

  <p>[12] <a href="https://arxiv.org/abs/2411.12537">Unlocking State-Tracking in Linear RNNs Through Negative Eigenvalues</a>. ICLR 2025, arXiv:2411.12537.</p>

  <p>[13] <a href="https://arxiv.org/abs/2510.25741">Scaling Latent Reasoning via Looped Language Models</a> (Ouro). arXiv:2510.25741, 2025.</p>

  <p>[14] <a href="https://arxiv.org/abs/2502.05171">Scaling up Test-Time Compute with Latent Reasoning: A Recurrent Depth Approach</a> (Huginn). NeurIPS 2025, arXiv:2502.05171.</p>

  <p>[15] <a href="https://arxiv.org/abs/2609.01343">SMELT: Scaling Laws for Compute-Matched MoE Looped Transformers</a>. arXiv:2609.01343, 2026.</p>

  <p>[16] <a href="https://arxiv.org/abs/2607.16051">Loop the Loopies!</a> (Loopie). arXiv:2607.16051, 2026.</p>

  <p>[17] <a href="https://arxiv.org/abs/1603.08983">Adaptive Computation Time for Recurrent Neural Networks</a> (ACT). arXiv:1603.08983, 2016.</p>

  <p>[18] <a href="https://arxiv.org/abs/2404.02258">Mixture-of-Depths: Dynamically allocating compute in transformer-based language models</a>. arXiv:2404.02258, 2024.</p>

  <p>[19] <a href="https://arxiv.org/abs/2506.21734">Hierarchical Reasoning Model</a> (HRM). arXiv:2506.21734, 2025.</p>

  <p>[20] <a href="https://arxiv.org/abs/2510.04871">Less is More: Recursive Reasoning with Tiny Networks</a> (TRM). arXiv:2510.04871, 2025.</p>

  <p>[21] <a href="https://arxiv.org/abs/2407.01392">Diffusion Forcing: Next-token Prediction Meets Full-Sequence Diffusion</a>. NeurIPS 2024, arXiv:2407.01392.</p>

  <p>[22] <a href="https://arxiv.org/abs/2510.14961">Efficient Parallel Samplers for Recurrent-Depth Models and Their Connection to Diffusion Language Models</a>. ICML 2026, arXiv:2510.14961.</p>

  <hr />

  <p><em>本系列：<a href="/blog/2026/10/looped-lm-recap-1-lt2/">第一篇｜LT2 与 Historical KV Replay</a> · <a href="/blog/2026/10/looped-lm-recap-2-panel-first-half/">第二篇｜圆桌（上）</a> · 第三篇｜圆桌（下）（本篇）</em></p>

</div>

<script>
(function() {
  var buttons = document.querySelectorAll('.lang-switcher .lang-btn');
  var contents = document.querySelectorAll('.lang-content');
  buttons.forEach(function(btn) {
    btn.addEventListener('click', function() {
      var lang = btn.getAttribute('data-lang');
      buttons.forEach(function(b) { b.classList.remove('active'); });
      btn.classList.add('active');
      contents.forEach(function(c) {
        if (c.classList.contains('lang-' + lang)) {
          c.style.display = '';
        } else {
          c.style.display = 'none';
        }
      });
    });
  });
})();
</script>]]></content><author><name>Jinyan Su</name><email>jinyansu6@gmail.com</email></author><category term="technical" /><category term="ai" /><category term="llm" /><category term="architecture" /><category term="looped-lm" /><category term="moe" /><category term="event-recap" /><summary type="html"><![CDATA[The third and final part of the recap of NICE's event "Looped Language Model: Rethinking Model Depth and Parameters": whether looping along depth is the same thing as CoT, whether expressiveness proofs still mean anything, how loops should be combined with MoE, and a set of questions about using loops at inference — extrapolation, ACT and parallel decoding.]]></summary></entry><entry><title type="html">Event Recap, Part 2 | Looped LM Panel, First Half: Bottlenecks, Fair Comparisons and Fixed Points / 活动回顾（二）｜Looped LM 圆桌（上）：瓶颈在哪、怎么比才公平、要不要学不动点</title><link href="https://jinyansu1.github.io/blog/2026/10/looped-lm-recap-2-panel-first-half/" rel="alternate" type="text/html" title="Event Recap, Part 2 | Looped LM Panel, First Half: Bottlenecks, Fair Comparisons and Fixed Points / 活动回顾（二）｜Looped LM 圆桌（上）：瓶颈在哪、怎么比才公平、要不要学不动点" /><published>2026-10-23T00:00:00+00:00</published><updated>2026-10-23T00:00:00+00:00</updated><id>https://jinyansu1.github.io/blog/2026/10/looped-lm-recap-2-panel-first-half</id><content type="html" xml:base="https://jinyansu1.github.io/blog/2026/10/looped-lm-recap-2-panel-first-half/"><![CDATA[<div class="lang-switcher">
  <button type="button" class="lang-btn active" data-lang="en">English</button>
  <button type="button" class="lang-btn" data-lang="zh">中文</button>
</div>

<div class="lang-content lang-en" lang="en">

  <p>This is the second part of the recap of NICE’s event “Looped Language Model: Rethinking Model Depth and Parameters,” covering the first half of the panel discussion. The panel was hosted by Wenyue Hua, with Chunyuan Deng and Benhao Huang as panelists.</p>

  <p>The first half started from a general question, “Where are the bottlenecks in LLM architecture?”, and gradually narrowed down to looping itself: What does it cost? Do its gains really come from the architecture, or just from spending more compute? And a more technical question: Should looped models learn fixed points?</p>

  <h2 id="key-takeaways">Key takeaways</h2>

  <ul>
    <li><strong>FLOPs are relatively cheap; memory and bandwidth are more expensive and grow more slowly.</strong> Benhao prefers architectures that “add only FLOPs, not memory” (improving performance by adding compute without adding memory footprint such as parameters and KV cache), and the ideal latent CoT is exactly that. Chunyuan thinks the Transformer has no particularly big bottleneck and is more optimistic about architectures for settings where training data is repeated. Benhao added that the data wall (the total amount of high-quality training data is limited and will eventually fail to keep up with the growth of models and compute) may matter more than architecture.</li>
    <li><strong>Looping is not a free lunch.</strong> Without KV sharing or compression, a looped LM offers little beyond some inductive bias; almost everything else is a cost: more KV cache, and performance that cannot catch up with a standard Transformer of the same logical depth without weight sharing. Many papers compare only against models with the same number of parameters, not against this “upper bound.”</li>
    <li><strong>MoE may make up for having fewer parameters.</strong> Parameters determine how much knowledge a model can store. Benhao observed that in looped MoE models, different loops do activate different experts, and adding MoE narrows the gap to the upper bound.</li>
    <li><strong>Fair comparisons look at entire scaling curves.</strong> Looping spends extra compute. When comparing with a model that does not loop (the baseline), Chunyuan argues that one should not change the baseline’s architecture just to equalize FLOPs, for example by changing the size of the feed-forward layers (FFN) or the dimension of the attention heads (head dim). A more sensible approach is to train a set of models from small to large (a scaling ladder) and compare the entire curve of “loss versus compute.” Benhao added that the baseline should be tuned to its best, and its width-to-depth ratio should not be changed arbitrarily just to match compute; spending more compute in training without adding cost at inference is, in his view, acceptable.</li>
    <li><strong>Whether to learn fixed points depends on the goal.</strong> “Learning fixed points” means training the model so that its hidden state essentially stops changing after a certain number of loops, and looping a few more times does not make it worse. Benhao argues that if you only want the best performance at a fixed number of loops (say, 4), there is no need to learn fixed points. If you do want to, the common method is depth sampling: during training, a number of loops is drawn at random for each batch, the model loops that many times and the loss is computed at the last step. The benefit is stability: every depth may be drawn and have a loss computed on it, so the model learns not to let the loss rise when it takes a few more steps. The cost is that supervision is spread across depths, so less supervision falls on the number of loops actually used at inference, which may lower performance.</li>
    <li><strong>Path independence is key.</strong> Path independence means that no matter which initial state the model starts from and how many steps it iterates, it ends up at the same fixed point. Benhao believes that Huginn (a looped language model that loops only its middle layers, introduced in Section 4) learns fairly good fixed points mainly thanks to two training techniques, each corresponding to one half of path independence: random depth sampling makes the result independent of the number of iteration steps, and truncated backpropagation (computing gradients only through the last few loops during training, while earlier loops run only the forward pass) makes the result independent of the starting point. At the same time, suitable normalization and input injection can better guide how fixed points form.</li>
  </ul>

  <h2 id="glossary">Glossary</h2>

  <p>The table below explains several terms that recur in this article. Readers familiar with them can skip it.</p>

  <table>
    <thead>
      <tr>
        <th>Term</th>
        <th>Plain-language explanation</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>Loop / Looped LM</td>
        <td>Running the same set of layers (or the whole model) several times with the same parameters each time</td>
      </tr>
      <tr>
        <td>Logical depth</td>
        <td>The number of layers a token actually passes through: the number of looped layers × the number of loops, plus the layers that are not looped</td>
      </tr>
      <tr>
        <td>Upper bound / lower bound</td>
        <td>Two reference points for evaluating a looped model: the lower bound is a model with the same number of parameters that does not loop; the upper bound is a standard Transformer of the same logical depth in which no layer shares parameters</td>
      </tr>
      <tr>
        <td>KV cache</td>
        <td>The keys and values that standard attention caches for every past token during generation; looping n times usually means storing n copies</td>
      </tr>
      <tr>
        <td>FLOPs</td>
        <td>Floating-point operations, commonly used to measure a model’s compute; “adding FLOPs” means making the model compute more</td>
      </tr>
      <tr>
        <td>Memory wall</td>
        <td>The trend of hardware compute growing much faster than memory bandwidth, which leaves many models bottlenecked on “moving data” rather than on “computing”</td>
      </tr>
      <tr>
        <td>Data wall</td>
        <td>The total amount of high-quality data available for pretraining (mainly public human-written text) is limited, while model scale and compute keep growing quickly, so data will sooner or later fall behind and become the bottleneck to further scaling</td>
      </tr>
      <tr>
        <td>MoE</td>
        <td>Mixture of experts: each layer has many expert subnetworks, and a router picks only a few of them to compute for each token, so the parameter count grows greatly while compute stays the same</td>
      </tr>
      <tr>
        <td>Scaling ladder</td>
        <td>Training a series of models from small to large with the same recipe, fitting the curve of “loss versus compute,” and then comparing different architectures’ entire curves</td>
      </tr>
      <tr>
        <td>Ouro / Huginn</td>
        <td>Two representative looped language models: Ouro loops the whole model, while Huginn loops only its middle part</td>
      </tr>
      <tr>
        <td>Prelude / core / coda</td>
        <td>Huginn’s three-part structure: the first part encodes the input into the latent space, the middle part loops repeatedly, and the last part decodes the hidden state into the output</td>
      </tr>
      <tr>
        <td>Input injection</td>
        <td>Re-injecting the encoding of the original input into the hidden state in every loop, so the model does not “forget” the input after many loops</td>
      </tr>
      <tr>
        <td>Fixed point / attractor</td>
        <td>A state that barely changes when iterated once more. An attractor is a fixed point that nearby states are drawn into as they keep iterating</td>
      </tr>
      <tr>
        <td>Depth sampling</td>
        <td>During training, a number of loops is drawn at random for each batch, and the loss is computed at that depth</td>
      </tr>
      <tr>
        <td>DEQ</td>
        <td>Deep Equilibrium Models: solve directly for the network’s fixed point and compute gradients with implicit differentiation, equivalent to an “infinitely deep” weight-sharing network</td>
      </tr>
      <tr>
        <td>Truncated backpropagation</td>
        <td>Backpropagating gradients only through the last few iterations, with earlier steps running only the forward pass; a common practice in training RNNs that saves GPU memory</td>
      </tr>
      <tr>
        <td>CKA</td>
        <td>A metric of how similar two sets of neural network representations are</td>
      </tr>
      <tr>
        <td>Jacobian and contraction</td>
        <td>The Jacobian describes how small changes in the input affect the output; when all its eigenvalues have absolute value less than 1, the iteration contracts near the fixed point and converges to it</td>
      </tr>
    </tbody>
  </table>

  <h2 id="panelists">Panelists</h2>

  <p><strong>Chunyuan Deng:</strong> PhD student at Rice University, advised by Prof. Hanjie Chen. His research focuses on the design and optimization of LLM pretraining architectures, as well as the interpretability of language models. His representative work is LT2: Linear-Time Looped Transformers [1]; his talk at the event is covered in part one of this series.</p>

  <p><strong>Benhao Huang:</strong> Master’s student at CMU, advised by Prof. Zico Kolter. He works mainly on looped LMs and fixed points, with the aim of improving the reasoning ability and efficiency of foundation models. His representative work includes Equilibrium Reasoners [2] and the blog series Towards Looped Models Done Right [3].</p>

  <p><strong>Wenyue Hua (host):</strong> Member of Technical Staff at Microsoft AI (MAI). PhD from Rutgers University, advised by Prof. Yongfeng Zhang, followed by a postdoc at UCSB. Research focuses on LLM reasoning and LLM-based agents, with many papers at top NLP and machine learning venues, including ACL, EMNLP, ICLR, NeurIPS and TACL. Serves as an Area Chair for ACL.</p>

  <h2 id="bottlenecks-in-llm-architecture-compute-memory-and-data">1. Bottlenecks in LLM architecture: compute, memory and data</h2>

  <p>What are the main bottlenecks of today’s large models? Have they driven most current architecture design? And what are the main solutions to them?</p>

  <h3 id="benhao-flops-will-always-be-cheaper">Benhao: FLOPs will always be cheaper</h3>

  <p>Benhao thinks that GPU memory, bandwidth and FLOPs are certainly all problems. Architecture design usually takes alignment with hardware into account, and a well-known trend line tells us that as hardware develops, memory and bandwidth grow more slowly and are bound to be more expensive, while FLOPs will always be cheaper.</p>

  <blockquote>
    <p><strong>Note:</strong> This trend is often called the “memory wall.” According to statistics compiled by Gholami et al. [4], over the past 20 years the peak compute of server hardware grew by about 3.0× every two years, while DRAM bandwidth grew by only about 1.6× and interconnect bandwidth by about 1.4× every two years; over 20 years, that adds up to roughly 60,000×, 100× and 30×, respectively.</p>
  </blockquote>

  <p>So Benhao generally prefers architectures that get better results by scaling up FLOPs alone, without enlarging memory. This of course has a cost, namely latency: the more FLOPs, the slower it naturally gets. “FLOPs are cheap” is about cost, while “slow” here refers to the time it takes to generate each token. Take looping as an example: the next loop for a given token has to wait until the previous one finishes, so the extra computation can only run sequentially, and the more loops there are, the longer each token takes to generate. But this is still acceptable for now, especially assuming that frontier labs have nearly unlimited FLOPs.</p>

  <p>What he likes about one of his own recent papers is precisely that it explores whether there is a way to get better performance purely by adding FLOPs, without increasing memory overhead. He sees this as perhaps the ultimate form of latent CoT (reasoning in the latent space without writing out the intermediate steps as text):</p>

  <blockquote>
    <p>You don’t externalize your thought tokens, you don’t have extra KV cache, and you don’t have any extra parameters. You just have more FLOPs: you think more in your head, spend more energy, and then come up with a better method, a better idea.</p>
  </blockquote>

  <h3 id="chunyuan-the-transformer-has-no-particularly-big-bottleneck">Chunyuan: the Transformer has no particularly big bottleneck</h3>

  <p>Chunyuan said he does not think the Transformer has any particularly big bottleneck; in architecture design, we can always do better: be more efficient, use less memory, compute more efficiently.</p>

  <p>One direction he finds fairly promising: many labs have recently been studying architectures for the data-repetition setting. Data is becoming scarcer, and training on repeated data has become common. So what kind of architecture can provide regularization and avoid overfitting when trained on repeated data? And what kind of optimization method should go with it?</p>

  <blockquote>
    <p><strong>Note:</strong> A frequently cited result on data repetition comes from Muennighoff et al. [5]: with a fixed compute budget, training on the same data for up to about 4 epochs yields almost the same loss as using fresh data; but with more repetitions, the returns from additional compute eventually decay to zero.</p>
  </blockquote>

  <h3 id="benhao-the-data-wall-matters-more">Benhao: the data wall matters more</h3>

  <p>Benhao added that the data-efficiency and data-repetition questions Chunyuan raised are very interesting. The data wall is also a bottleneck, but he thinks it matters more than architecture: “Data always comes first.” If data is a first-class citizen, then finding architectures that can adapt as data becomes scarcer would be a very valuable direction.</p>

  <h2 id="the-cost-of-looping-kv-cache-the-performance-upper-bound-and-moe">2. The cost of looping: KV cache, the performance upper bound and MoE</h2>

  <p>Looping does not reduce the memory taken up by KVs. It adds FLOPs under a parameter constraint, but the demands on memory and bandwidth also seem to go up. How should we think about this?</p>

  <h3 id="apart-from-a-bit-of-inductive-bias-its-almost-all-cost">Apart from a bit of inductive bias, it’s almost all cost</h3>

  <p>Benhao’s answer was quite blunt: following the usual practice so far, without any KV sharing or compression techniques, a looped LM may offer a bit of inductive bias (a preference for certain kinds of solutions that comes from the architecture itself), and everything else is basically a cost: it has more KV cache, and its performance cannot catch up with a vanilla Transformer of the same logical depth.</p>

  <p>He also pointed out that most papers do not compare against the upper bound and usually report only the lower bound: they compare only with a model that has the same number of parameters and does not loop, not with a standard Transformer of the same logical depth without weight sharing. “I haven’t seen one that really beats that upper bound, and I think it may simply be impossible to beat.” Chunyuan added: “It can’t beat it.” Benhao went on to say that some might argue it could win at a large enough scale, but in his view this resembles the debate over whether diffusion language models can beat autoregressive models, and his judgment is that it cannot.</p>

  <p>Chunyuan agreed, and admitted that his own work also did not compare against models of the same depth. He had tried it himself, and the looped model really did fall short, especially in pretraining; if there is no extrapolation and it still falls short, that is a real problem. One argument he could think of: if extremely sparse, very large MoE models appear in the future, say with 1000T parameters that cannot fit in GPU memory, weight sharing might help. “Other than that… it gets a bit tricky.”</p>

  <h3 id="can-moe-make-up-for-having-fewer-parameters">Can MoE make up for having fewer parameters?</h3>

  <p>The host then turned to MoE: since Chunyuan said architecture has no particular bottleneck, why has MoE become mainstream? As she understands it, MoE adds parameters without adding FLOPs to the same extent, while still keeping fairly good results. Is this choice mainly driven by latency?</p>

  <p>Benhao’s take is that a major problem for looped LMs is still parameters, and parameters determine how much knowledge a model can store. MoE is a good way to alleviate this: different activations lead the router to choose different experts and thus draw on different knowledge. In looped MoE models, different loops do activate different experts, which amounts to retrieving different knowledge at each step.</p>

  <p>Conversely, without MoE, the hidden states of different loops are quite similar, which hurts performance. In his earlier blog [3], he found that without MoE the gap between a looped model and the upper bound is fairly large; once both the looped model and the standard Transformer use MoE, the gap becomes smaller.</p>

  <blockquote>
    <p><strong>Note:</strong> According to the first part of the blog, the comparison is with a 112-layer model that has the same logical depth and the same active compute as the looped model but does not share weights across layers. Switching from dense to MoE narrows the looped model’s average gap to it from 4.96 points to 1.71 points, while the looped model has 75% fewer resident parameters. The blog also found that forcing later loops to reuse the experts selected by the first loop lowered accuracy on all six test tasks.</p>
  </blockquote>

  <h2 id="gains-from-architecture-or-from-compute-what-makes-a-fair-comparison">3. Gains from architecture or from compute: what makes a fair comparison</h2>

  <p>Do the gains of looping really come from the architecture, or just from spending more compute? What is a fair way to test this?</p>

  <h3 id="chunyuan-one-approach-is-definitely-wrong">Chunyuan: one approach is definitely wrong</h3>

  <p>Chunyuan began by saying that comparing looped models is “really tricky.” First of all, one approach is definitely wrong: since looping adds FLOPs, people change the vanilla Transformer’s FFN, head dim or other parts of its architecture so that its FLOPs match those of the looped model. Changing a lot of the original architecture just to reach equal FLOPs “definitely doesn’t work.”</p>

  <p>He thinks the most standard way to compare is with a scaling ladder in pretraining. For example, train a set of standard Transformers from small to large in the usual way, with the third rung being, say, a 300M model. Looping adds FLOPs, so every point of the looped version shifts to the right along the horizontal axis (compute). “Isn’t that the whole point of a scaling ladder?” A scaling ladder is meant to fit a power law and compare two curves anyway, so there is no need to worry about whether each rung lines up exactly with the baseline.</p>

  <p>As for comparing wall-clock time (actual running time), he thinks it is just too hard for academia: the various GPU setups are hard to compare with real 10,000-GPU clusters.</p>

  <h3 id="benhao-tune-the-baseline-well-and-look-at-training-and-inference-separately">Benhao: tune the baseline well, and look at training and inference separately</h3>

  <p>Benhao added two points:</p>

  <ul>
    <li><strong>Always tune the baseline to its best, and never compare against a weak baseline.</strong> He gave the example that some recent work widens or narrows the model’s dimension in order to match FLOPs. But there is a relatively optimal range for the balance between width and depth, which cannot be adjusted arbitrarily; going outside that range makes the comparison unfair.</li>
    <li><strong>Training and inference costs can be considered separately.</strong> If paying some extra cost in training (usually compute) buys a performance gain with no extra cost at decoding time, he considers that acceptable. In his view, a major difference between academia and industry is that academia is very preoccupied with fair settings, while industry cares more about what gains a model brings when it is actually served.</li>
  </ul>

  <p>The host remarked that this means many points are needed to compare two curves properly, which is expensive. Benhao said: “That’s the brutal part of pretraining.” It is genuinely hard for academia: even with a ladder, getting the hyperparameters right (including the width and depth just mentioned) is very difficult. As a result, many papers do claim some benefits, but benefits that hold up are rare.</p>

  <h3 id="follow-up-what-does-no-extra-cost-at-decoding-time-mean">Follow-up: what does “no extra cost at decoding time” mean?</h3>

  <p>The host followed up: when Benhao said earlier “no extra cost at decoding time,” did he mean that inference speed is unaffected? Could this be achieved with pipelined looping (staggering different loops of different tokens so that they compute in parallel, like a pipeline) and with how the KV cache is handled?</p>

  <p>Benhao replied that he mainly had in mind approaches like the Full-Bandwidth Transformer [6]: add a side path to the model that costs some extra compute in training but adds almost no overhead at decoding time. In his view, this is a more typical example than pipelining; the pipelined approach also makes sense, but it has some subtleties, which he would come back to later (see Section 8 of part three of this series).</p>

  <blockquote>
    <p><strong>Editor’s note:</strong> The side path in the Full-Bandwidth Transformer takes the top-layer hidden state at the previous position, fuses it with the next token’s embedding through a gate, and uses the result as the input at the next position. Training requires a few extra forward passes, but by the paper’s estimate, the added compute per token at decoding time is under 1% (about 2.3% slower when measured in vLLM). See part three of this series for details.</p>
  </blockquote>

  <h2 id="two-representative-architectures-ouro-and-huginn">4. Two representative architectures: Ouro and Huginn</h2>

  <p>Before moving on to fixed points, the host asked the two panelists to give some background on two architectures, Ouro and Huginn.</p>

  <h3 id="chunyuan-the-core-difference-is-whole-model-looping-versus-middle-looping">Chunyuan: the core difference is whole-model looping versus middle looping</h3>

  <p>Chunyuan summed it up: Ouro [7] is a whole-model loop: it loops the entire model and uses early exit, so it can stop early; Huginn [8] is a middle loop: it loops a middle part of the model and uses a latent state and input injection. In his view, the main difference between the two is whole-model looping versus middle looping; the other components (such as input injection) can be borrowed by either.</p>

  <blockquote>
    <p><strong>Note:</strong> The table below summarizes details reported in the two models’ papers.</p>
  </blockquote>

  <table>
    <thead>
      <tr>
        <th> </th>
        <th>Ouro [7]</th>
        <th>Huginn [8]</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>How it loops</td>
        <td>The whole model loops</td>
        <td>Only the recurrent core in the middle loops, with a prelude before it and a coda after it</td>
      </tr>
      <tr>
        <td>Scale</td>
        <td>1.4B (24 layers) and 2.6B (48 layers)</td>
        <td>3.5B; the prelude, core and coda have 2, 4 and 2 layers, respectively</td>
      </tr>
      <tr>
        <td>Training data</td>
        <td>About 7.7T tokens</td>
        <td>About 800B tokens</td>
      </tr>
      <tr>
        <td>Number of loops in training</td>
        <td>Fixed at 4</td>
        <td>Randomly sampled for each micro-batch, with a mean of 32 and a long-tailed distribution</td>
      </tr>
      <tr>
        <td>Training details</td>
        <td>A language-modeling loss at every step, plus a learned early-exit distribution</td>
        <td>Gradients are backpropagated only through the last 8 iterations; in each loop, the input embedding is concatenated with the current state and mapped through a linear layer</td>
      </tr>
      <tr>
        <td>Inference</td>
        <td>After each loop, an exit gate gives the probability of “stopping here”; looping stops once the cumulative exit probability reaches a set threshold, so easier tokens can use fewer loops</td>
        <td>The number of loops can be chosen freely; the paper reports results up to 64</td>
      </tr>
    </tbody>
  </table>

  <h3 id="benhaos-three-additions">Benhao’s three additions</h3>

  <p><strong>First, input injection helps somewhat with middle looping.</strong> For a middle-looping architecture like Huginn, input injection does help to some extent, especially with somewhat more loops; without it, a Huginn-style architecture tends to lose to Ouro at the same logical depth.</p>

  <p><strong>Second, Ouro “grows” a middle loop inside itself.</strong> If you match the two models’ logical depth, unroll the looped parts and compare similarity metrics such as CKA [9] for the hidden states at the same layer, you find that Ouro has learned on its own a structure very similar to middle looping: it has layers that correspond to a prelude and a coda. The prelude and coda can be understood as encoding and decoding, with step-by-step refinement of the hidden representation in between.</p>

  <p>He also mentioned that similar phenomena may exist in other looped models, so this is not necessarily a new finding; but Huginn’s approach of looping in the middle may happen to fit this inductive bias. He further mentioned that some papers argue that RL mainly changes a small part in the middle of the model, which he guesses may be responsible for abilities such as reasoning.</p>

  <blockquote>
    <p><strong>Note:</strong> One example is a July 2026 preprint [10]: it found that the gains from RL are highly concentrated in a few layers, that training a single layer alone can often come close to the effect of full-parameter RL, and that the layers contributing most are concentrated in the middle of the network.</p>
  </blockquote>

  <p><strong>Third, Huginn’s random depth sampling is very important.</strong> It is crucial both for shaping fixed points and for adjusting compute at inference. Benhao thinks the term “test-time scaling” is somewhat ambiguous: in his view, what it really means is extrapolation, for example having seen only 16 loops in training and wanting to loop 64 times at inference. “Unfortunately, I don’t think that’s very likely,” especially for language models. What random depth sampling really supports is elastic compute: loop at most 16 times in training, and at inference you can freely choose how many times to loop, as long as it does not exceed 16.</p>

  <h2 id="whether-to-learn-fixed-points-the-pros-and-cons-of-depth-sampling">5. Whether to learn fixed points: the pros and cons of depth sampling</h2>

  <p>With the architectures laid out, the host put the question to Benhao. He gave his conclusion first: <strong>if you only want the best performance at a fixed number of loops (say, 4 or 5), using the model as an ordinary Transformer and ignoring other costs such as memory, then you should not try to learn fixed points</strong>, and performance will be better that way.</p>

  <h3 id="the-common-approach-depth-sampling">The common approach: depth sampling</h3>

  <p>If you do want to learn fixed points, you need some additional algorithms, the best known of which is depth sampling: during training, sample a depth for each batch (or even each micro-batch), run that many steps forward, and then apply the loss at that step.</p>

  <p>One of Benhao’s core points is that supervision itself is a resource. Suppose the target budget is 5 loops. Depth sampling puts part of the supervision on steps 1 to 4, or at deeper steps, so step 5 gets correspondingly less supervision, and the model’s performance at 5 steps drops.</p>

  <p>The benefit it brings is stability: it requires that the loss not rise with each additional step. This does not necessarily improve performance, but it makes the model more stable. There may be some math behind this: from the perspective of the Jacobian and its eigenvalues, for the iteration to contract, the eigenvalues need to be less than 1, which can be proven. But the most intuitive way to see it is this: if every depth has a loss and the loss is not allowed to go up, then the simplest shortcut the model can learn is to stay put in a stable state, which is what we call a fixed point, or attractor.</p>

  <h3 id="a-counterintuitive-experimental-result">A counterintuitive experimental result</h3>

  <p>But his own experiments found that even when the target budget is 5, the mean of the depth distribution is also set to 5, the long tail extends all the way to 64, and the model is unrolled to 64 steps at test time, it does not necessarily beat a control model trained at a fixed depth of 5 without learning fixed points.</p>

  <p>His conclusion: this may be a problem with the algorithms for learning fixed points, not with fixed points themselves. Depth sampling is just one way to learn fixed points. DEQ (Deep Equilibrium Models) [11], for example, makes training and inference fully consistent: in the forward pass during training, it iterates with a fixed-point solver until convergence reaches a certain threshold; in the backward pass, it uses the implicit gradient, which in the ideal case corresponds exactly to the mathematical solution of backpropagation. In this case, it may be possible to reach very good performance without necessarily running into the problem above; the difficulty is that it is very hard to train: DEQ is notoriously unstable and needs tricks such as warm-up. Depth sampling is a compromise.</p>

  <blockquote>
    <p><strong>Note:</strong> DEQ was proposed in 2019 by Shaojie Bai, Zico Kolter and Vladlen Koltun. It can be seen as an infinitely deep weight-sharing network: instead of computing layer by layer, the forward pass uses a root-finding algorithm (Broyden’s method in the original paper) to solve directly for the fixed point satisfying z* = f(z*, x); the backward pass computes gradients with the implicit function theorem at the fixed point, without storing intermediate steps.</p>
  </blockquote>

  <h2 id="are-fixed-points-ideal-solutions-or-degenerate-states">6. Are fixed points ideal solutions or degenerate states?</h2>

  <p>The host asked: is a learned fixed point the solution we want, or might it be a degenerate state?</p>

  <h3 id="fixed-points-and-performance-are-decoupled">Fixed points and performance are decoupled</h3>

  <p>Benhao said that the argument of one of his earlier papers [2] is that fixed points themselves are actually decoupled from model performance. A model may well have many fixed points (or attractors), and what training does is align these attractors with the correct task objective as much as possible; that is, we want the hidden state corresponding to an attractor to decode into exactly the correct tokens, the correct answer. So fixed points are not necessarily degenerate.</p>

  <blockquote>
    <p><strong>Note:</strong> The paper is Equilibrium Reasoners. It argues that reasoning generalizes because the model learns “task-conditioned attractors”: the stable fixed points of the latent dynamics correspond exactly to valid solutions. On tasks such as Sudoku and mazes, the paper scales test-time compute by increasing the number of iteration steps and using multiple random restarts; it reports that when unrolled to a depth equivalent to 40,000 layers, accuracy on Sudoku-Extreme rises from 2.6% for a feed-forward model to over 99%.</p>
  </blockquote>

  <p>If degeneration really does occur, it may be because the model had not yet reached the attractor when supervision was applied, so the supervision was placed on the path before the attractor. In that case, after a few more iterations, the model may indeed converge, but to a bad point.</p>

  <h3 id="why-ouro-gets-worse-with-more-iterations">Why Ouro gets worse with more iterations</h3>

  <p>He thinks this may also be why Ouro’s performance drops markedly when it runs more iterations than in training. The host asked: does Ouro’s design simply never reach a fixed point? Benhao’s view is that Ouro may not do enough to “push” supervision onto the fixed point, but having a loss at every loop helps to some extent, and iterating further is unlikely to diverge. The problem is that it loops only 4 times in training and has no depth sampling, so nothing encourages the model to stay near its step-4 state after looping more than 4 times; it may therefore keep moving until it reaches a degenerate place. By comparison, Huginn should be fine as long as it stays within 64 steps, with only a slight decline beyond 64.</p>

  <blockquote>
    <p><strong>Note:</strong> Ouro loops a fixed 4 times in training (it initially tried 8, but switched to 4 because of loss spikes and gradient oscillations), with a language-modeling loss at every step. The paper reports that increasing the number of loops to 5–8 leads to a “moderate degradation” in the base models’ performance: at 8 loops, MMLU drops from 67.45 to 64.49 for the 1.4B model and from 74.60 to 72.24 for the 2.6B model; the reasoning versions drop more on hard problems, for example AIME25 for the 2.6B reasoning model falls from 50.30 to 24.33. As for Huginn, performance keeps improving up to about 64 steps and stops improving after that, but usually does not get worse either.</p>
  </blockquote>

  <h3 id="decoupled-but-also-coupled">Decoupled, but also coupled</h3>

  <p>The host summarized that it sounds as if there is no necessary connection between fixed points and performance. Benhao agreed with this way of thinking, but pointed out some subtleties: some methods couple the two. Take depth sampling: on the one hand, it places supervision at very large depths, which amounts to aligning the fixed point with the task objective; on the other hand, it can also shape fixed points itself, as a technique for achieving “path independence,” which the next section covers in detail. “So it solves two problems at once.” The two are coupled and not so cleanly separated, but thinking about them separately like this is helpful.</p>

  <blockquote>
    <p><strong>Note:</strong> Fixed points have a very practical use as well. In the second part of their blog series [13], Benhao’s team reports that keeping only each token’s KVs from its last loop during decoding (terminal KV sharing) can shrink the KV cache of a 1.6B model to one third. A model trained at a fixed depth loses a lot of accuracy when doing this (GSM8K drops from 50.6 to 21.2), while a model trained with a learned depth prior (the distribution of loop depths in training is no longer set by hand but learned from predictive performance, with an entropy term that keeps the distribution wide enough) is essentially unaffected.</p>
  </blockquote>

  <h2 id="how-architecture-and-algorithms-affect-convergence-path-independence">7. How architecture and algorithms affect convergence: path independence</h2>

  <p>The host then asked: how do architecture design and algorithm design affect convergence, including what kind of point the model ultimately converges to? Benhao listed three kinds of approaches:</p>

  <ul>
    <li><strong>Residual scaling:</strong> architecturally, an important factor is scaling the residual connections; some papers multiply the residual by a scaling coefficient so that later layers contribute less [14].</li>
    <li><strong>Input injection:</strong> well-designed input injection can aid convergence, but injection by itself does not guarantee it; its bigger role is to make the point the model converges to depend on the original input context. If you iterate to infinity without continually injecting the context, you get a degenerate attractor that has nothing to do with the prompt and is therefore meaningless. This is how the DEQ line of work understands the value of input injection.</li>
    <li><strong>Jacobian regularization on the loss side:</strong> this is no longer architecture design but an algorithm: imposing some constraints on the Jacobian [12] can directly promote convergence. He mentioned that the recently popular Fixed-Point Reasoners [14] also uses a similar technique.</li>
  </ul>

  <blockquote>
    <p><strong>Note:</strong> Fixed-Point Reasoners does not use Jacobian regularization directly. Instead, it keeps the state bounded with pre-norm plus a shared, learnable residual scaling coefficient (also applied to the input re-injected in each loop), and promotes convergence with a contraction condition encouraged through initialization and with damped updates; at inference, it stops looping once the fixed-point residual is small enough. Its goal (making the iteration contract) is the same as that of Jacobian regularization, but its specific means are closer to the first category above.</p>
  </blockquote>

  <h3 id="in-huginns-case-depth-sampling-and-truncated-backpropagation">In Huginn’s case: depth sampling and truncated backpropagation</h3>

  <p>The host followed up: does Huginn converge to a relatively good fixed point because it has input injection and uses normalization, plus depth sampling?</p>

  <p>Benhao thinks that, at least in the Huginn paper, normalization and input injection are not the most important factors. Two things matter more: one is depth sampling, and the other is truncated backpropagation, which has not come up yet. Truncated backpropagation means not backpropagating gradients all the way: for example, once the number of loops exceeds a certain number of steps, you always backpropagate through only a fixed number of final steps, so memory does not keep growing with the number of steps. This is a very common practice in training RNNs, and it also helps shape fixed points.</p>

  <p>People may think of both from the perspective of efficiency, and both are indeed economical. Depth sampling does not bet a lot of resources on very large depths, which makes sense because not every token needs such deep computation. The same goes for truncated backpropagation: if the memory and activations for backpropagation grow linearly with the number of forward steps, training can easily blow up. But beyond efficiency, both also help shape fixed points.</p>

  <h3 id="path-independence">Path independence</h3>

  <p>Benhao said this can be understood from the perspective of path independence. A well-known paper in the DEQ line of work [15] argues that for attractors to perform well enough, or in its words to generalize well enough, path independence must be ensured. Path independence means that no matter which point you start from and how many steps you take, you end up at the same fixed point or attractor.</p>

  <blockquote>
    <p><strong>Note:</strong> The paper found that whether an equilibrium model can solve harder problems by increasing the number of iterations at test time is highly correlated with how path-independent the system is.</p>
  </blockquote>

  <p>In his view, the two techniques correspond exactly to the two halves of path independence:</p>

  <ul>
    <li><strong>Depth sampling makes the result independent of the number of steps.</strong> The number of steps taken in training is random, so the model has to learn to reach the same state for any number of steps.</li>
    <li><strong>Truncated backpropagation makes the result independent of the starting point.</strong> The states of the early steps contribute no gradient, so the model “doesn’t know where it came from, but knows where it is heading in the end.”</li>
  </ul>

  <p>So he concluded that, for Huginn, these two are the more important factors in shaping fixed points; suitable normalization and input injection are also important design choices for preventing divergence.</p>

  <h2 id="closing-and-whats-next">Closing and what’s next</h2>

  <p>The first half of the discussion follows a clear thread: the costs of looping are real, namely more KV cache and performance that struggles to reach the upper bound set by a standard Transformer of the same logical depth without weight sharing; its benefits have to be validated with complete scaling curves and well-tuned baselines. “Whether to learn fixed points” is essentially a trade-off between the best performance at a fixed depth and stability over more iterations. Benhao also offered a very useful perspective: depth sampling and truncated backpropagation make the result independent of the number of steps and of the starting point, respectively.</p>

  <p>The next part covers the second half of the panel: whether looping along depth is the same thing as CoT, whether expressiveness proofs still mean anything, how loops can be combined with MoE, and extrapolation, ACT and parallel decoding.</p>

  <h2 id="references">References</h2>

  <p>[1] <a href="https://arxiv.org/abs/2605.20670">LT2: Linear-Time Looped Transformers</a>. arXiv:2605.20670, 2026.</p>

  <p>[2] <a href="https://arxiv.org/abs/2605.21488">Equilibrium Reasoners: Learning Attractors Enables Scalable Reasoning</a>. arXiv:2605.21488, 2026.</p>

  <p>[3] <a href="https://ifm-research.notion.site/Towards-Looped-Models-Done-Right-3ade511912ec8128987dfeb7a5580043">Towards Looped Models Done Right</a>. Blog series, 2026.</p>

  <p>[4] <a href="https://arxiv.org/abs/2403.14123">AI and Memory Wall</a>. IEEE Micro; arXiv:2403.14123, 2024.</p>

  <p>[5] <a href="https://arxiv.org/abs/2305.16264">Scaling Data-Constrained Language Models</a>. NeurIPS 2023, arXiv:2305.16264.</p>

  <p>[6] <a href="https://arxiv.org/abs/2608.08888">Full-bandwidth transformer</a>. arXiv:2608.08888, 2026.</p>

  <p>[7] <a href="https://arxiv.org/abs/2510.25741">Scaling Latent Reasoning via Looped Language Models</a> (Ouro). arXiv:2510.25741, 2025.</p>

  <p>[8] <a href="https://arxiv.org/abs/2502.05171">Scaling up Test-Time Compute with Latent Reasoning: A Recurrent Depth Approach</a> (Huginn). NeurIPS 2025, arXiv:2502.05171.</p>

  <p>[9] <a href="https://arxiv.org/abs/1905.00414">Similarity of Neural Network Representations Revisited</a> (CKA). ICML 2019, arXiv:1905.00414.</p>

  <p>[10] <a href="https://arxiv.org/abs/2607.01232">Is One Layer Enough? Training A Single Transformer Layer Can Match Full-Parameter RL Training</a>. arXiv:2607.01232, 2026.</p>

  <p>[11] <a href="https://arxiv.org/abs/1909.01377">Deep Equilibrium Models</a> (DEQ). NeurIPS 2019, arXiv:1909.01377.</p>

  <p>[12] <a href="https://arxiv.org/abs/2106.14342">Stabilizing Equilibrium Models by Jacobian Regularization</a>. ICML 2021, arXiv:2106.14342.</p>

  <p>[13] <a href="https://arxiv.org/abs/2610.06833">Towards Looped Models Done Right, Part II: Rethinking at Fixed Points</a>. arXiv:2610.06833, 2026.</p>

  <p>[14] <a href="https://arxiv.org/abs/2606.18206">Fixed-Point Reasoners: Stable and Adaptive Deep Looped Transformers</a>. arXiv:2606.18206, 2026.</p>

  <p>[15] <a href="https://arxiv.org/abs/2211.09961">Path Independent Equilibrium Models Can Better Exploit Test-Time Computation</a>. NeurIPS 2022, arXiv:2211.09961.</p>

  <hr />

  <p><em>This series: <a href="/blog/2026/10/looped-lm-recap-1-lt2/">Part 1｜LT2 and Historical KV Replay</a> · Part 2｜Panel, First Half (this post) · <a href="/blog/2026/10/looped-lm-recap-3-panel-second-half/">Part 3｜Panel, Second Half</a></em></p>

</div>

<div class="lang-content lang-zh" lang="zh" style="display: none;">

  <p>本文是 NICE 举办的「Looped Language Model：重新思考模型的深度与参数」活动回顾的第二篇，整理圆桌讨论的上半场。圆桌由华文越主持，邓淳远和黄奔皓两位嘉宾参与讨论。</p>

  <p>上半场从“大模型架构的瓶颈在哪里”这个一般性问题出发，逐步收窄到 loop 本身：它的代价是什么？收益到底来自架构，还是只是多花了算力？以及一个更技术性的问题：looped 模型要不要学成不动点？</p>

  <h2 id="section">本文要点</h2>

  <ul>
    <li><strong>FLOPs 相对更便宜，内存和带宽更贵、增长更慢</strong>。奔皓偏好“只加 FLOPs、不加内存”的架构（靠增加计算量来提升性能，同时不增加参数和 KV cache 这类内存占用），理想的 latent CoT 就是如此；淳远认为 Transformer 没有特别大的瓶颈，更看好数据重复训练场景下的架构。奔皓还补充，数据墙（data wall，即高质量训练数据总量有限，终将跟不上模型和算力的增长）可能比架构更关键。</li>
    <li><strong>Loop 不是免费午餐</strong>。不做 KV 共享或压缩时，looped LM 除了一点归纳偏置，其余几乎都是代价：KV cache 更多，性能也追不上同等逻辑深度、不共享权重的标准 Transformer。许多论文只和同参数量的模型比，不和这个“上限”比。</li>
    <li><strong>MoE 或许能补上参数少的短板</strong>。参数决定了模型能存多少知识；奔皓观察到，在 looped MoE 模型里，不同 loop 激活的 expert 确实不同，加上 MoE 后与上限的差距会缩小。</li>
    <li><strong>公平比较要比整条 scaling 曲线</strong>。Loop 会多花计算量，和不 loop 的模型（baseline）比较时，淳远认为不能为了让两边 FLOPs 相等，就去改 baseline 的结构，比如改前馈层（FFN）的大小或注意力头的维度（head dim）；更合理的是训练一组由小到大的模型（scaling ladder），比较“loss 随计算量变化”的整条曲线。奔皓补充：baseline 要调到最好，宽深比也不能为凑计算量而随意改；训练时多花计算、推理时不增加代价的做法，他认为可以接受。</li>
    <li><strong>要不要学不动点，取决于目标</strong>。“学不动点”指训练模型，让隐状态在 loop 到一定次数后基本不再变化，多 loop 几次也不会变差。奔皓认为，如果只想在固定的 loop 次数（比如 4 次）下性能最好，就不必学。如果要学，常用的方法是 depth sampling：训练时每个 batch 随机抽一个 loop 次数，按这个次数 loop，并在最后一步计算 loss。好处是稳定：每个深度都可能被抽到并计算 loss，模型因此学会多走几步也不让 loss 上升；代价是监督被分散到各个深度，推理时实际使用的那个 loop 次数上得到的监督变少，性能可能因此下降。</li>
    <li><strong>路径无关性是关键</strong>。路径无关性是指，无论从哪个初始状态出发、迭代多少步，模型最终都到达同一个不动点。奔皓认为，Huginn（一个只循环中间几层的 looped 语言模型，第四节有介绍）能学到较好的不动点，主要靠两种训练手段，它们各自对应路径无关性的一半：随机深度采样（depth sampling）让结果与迭代步数无关，截断反向传播（训练时只用最后若干次循环来计算梯度；前面的循环只做前向计算）让结果与起点无关。同时，合适的 normalization 和 input injection 能够更好地引导不动点的形成。</li>
  </ul>

  <h2 id="section-1">读前速查</h2>

  <p>下表解释本文反复出现的几个术语，熟悉的读者可以直接跳过。</p>

  <table>
    <thead>
      <tr>
        <th>术语</th>
        <th>白话解释</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>Loop / Looped LM</td>
        <td>把同一组层（或整个模型）重复执行多次，每次用同一套参数</td>
      </tr>
      <tr>
        <td>逻辑深度（logical depth）</td>
        <td>一个 token 实际经过的层数，等于被循环的层数 × loop 次数，再加上不参与循环的层</td>
      </tr>
      <tr>
        <td>上限 / 下限</td>
        <td>评价 looped 模型的两个参照：下限是同参数量、不 loop 的模型；上限是同等逻辑深度、每层参数都不共享的标准 Transformer</td>
      </tr>
      <tr>
        <td>KV cache</td>
        <td>标准注意力在生成时为每个历史 token 缓存的 key 和 value；loop 几次，通常就要多存几份</td>
      </tr>
      <tr>
        <td>FLOPs</td>
        <td>浮点运算次数（floating-point operations），常用来衡量模型的计算量；“加 FLOPs”就是让模型多算</td>
      </tr>
      <tr>
        <td>内存墙（memory wall）</td>
        <td>硬件算力增长远快于内存带宽增长的趋势，很多模型因此卡在“搬数据”而不是“算”上</td>
      </tr>
      <tr>
        <td>数据墙（data wall）</td>
        <td>可用于预训练的高质量数据（主要是人类撰写的公开文本）总量有限，而模型规模和算力仍在快速增长，数据迟早跟不上，成为继续扩大规模的瓶颈</td>
      </tr>
      <tr>
        <td>MoE</td>
        <td>混合专家模型：每层有许多专家（expert）子网络，路由器（router）为每个 token 只挑少数几个来算，计算量不变而参数大增</td>
      </tr>
      <tr>
        <td>Scaling ladder</td>
        <td>用同一套配方训练一系列由小到大的模型，拟合“loss 随计算量变化”的曲线，再比较不同架构的整条曲线</td>
      </tr>
      <tr>
        <td>Ouro / Huginn</td>
        <td>两个代表性的 looped 语言模型：Ouro 整模型 loop，Huginn 只 loop 中间部分</td>
      </tr>
      <tr>
        <td>Prelude / core / coda</td>
        <td>Huginn 的三段结构：前段把输入编码进隐空间，中段反复循环，后段把隐状态解码成输出</td>
      </tr>
      <tr>
        <td>Input injection</td>
        <td>每一轮循环都把原始输入的编码重新注入隐状态，避免多轮之后“忘了”输入</td>
      </tr>
      <tr>
        <td>不动点 / attractor</td>
        <td>再迭代一次也几乎不变的状态。Attractor（吸引子）指周围的状态迭代下去都会被吸过来的不动点</td>
      </tr>
      <tr>
        <td>Depth sampling</td>
        <td>训练时每个 batch 随机抽一个 loop 次数，在该深度上计算 loss</td>
      </tr>
      <tr>
        <td>DEQ</td>
        <td>Deep Equilibrium Models：直接求解网络的不动点，再用隐式微分求梯度，相当于“无限深”的权重共享网络</td>
      </tr>
      <tr>
        <td>截断反向传播</td>
        <td>只对最后若干步迭代反传梯度，前面的步只做前向；训练 RNN 的常见做法，可节省显存</td>
      </tr>
      <tr>
        <td>CKA</td>
        <td>一种衡量两组神经网络表示有多相似的指标</td>
      </tr>
      <tr>
        <td>Jacobian 与收缩</td>
        <td>Jacobian 描述输入的微小变化如何影响输出；它的特征值绝对值都小于 1 时，迭代在不动点附近会收缩并收敛</td>
      </tr>
    </tbody>
  </table>

  <h2 id="section-2">参与嘉宾</h2>

  <p><strong>邓淳远</strong>：Rice University 博士生，导师为 Hanjie Chen 教授。研究聚焦 LLM 预训练架构设计与优化，也关注语言模型的可解释性。代表工作为 LT2: Linear-Time Looped Transformers [1]，他在活动中的主题分享见本系列第一篇。</p>

  <p><strong>黄奔皓</strong>：CMU 硕士生，导师为 Zico Kolter 教授。主要研究 looped LM 与不动点（fixed point），致力于提升基础模型的推理能力与效率。代表工作包括 Equilibrium Reasoners [2] 和博客系列 Towards Looped Models Done Right [3]。</p>

  <p><strong>华文越（主持）</strong>：微软 MAI 研究员（Member of Technical Staff）。博士毕业于 Rutgers University，导师为张永锋教授，之后在 UCSB 从事博士后研究。主要研究方向为 LLM reasoning 与 LLM-based agent，在 ACL、EMNLP、ICLR、NeurIPS、TACL 等 NLP 与机器学习领域的顶级会议和期刊发表多篇论文，并担任 ACL Area Chair。</p>

  <h2 id="section-3">一、大模型架构的瓶颈在哪里：算力、内存与数据</h2>

  <p>目前大模型最主要的几个瓶颈是什么？它们是否推动了当下大多数的架构设计？对应的主要解法又是什么？</p>

  <h3 id="flops-">奔皓：FLOPs 永远更便宜</h3>

  <p>奔皓认为，显存、带宽、FLOPs 肯定都是问题。设计架构时一般会考虑与硬件对齐，而有一条很著名的趋势线告诉我们：随着硬件发展，内存和带宽的增长会更慢，一定更贵；FLOPs 则永远更便宜。</p>

  <blockquote>
    <p><strong>注</strong>：这条趋势常被称为“内存墙”（memory wall）。据 Gholami 等人的统计 [4]，过去 20 年服务器硬件的峰值算力大约每两年增长 3.0 倍，DRAM 带宽每两年只增长约 1.6 倍，互连带宽约 1.4 倍；20 年累计下来分别约为 60000 倍、100 倍和 30 倍。</p>
  </blockquote>

  <p>所以奔皓一般偏好这样的架构：不扩大内存，只靠扩大 FLOPs 就能得到更好的结果。当然这也有代价，就是延迟：FLOPs 越多，自然越慢。“FLOPs 便宜”说的是成本，这里的“慢”说的是生成每个 token 所需的时间：以 loop 为例，同一个 token 的下一轮必须等上一轮算完，多出来的计算只能按顺序进行，loop 次数越多，每个 token 的生成时间就越长。但在当下这还可以接受，尤其假设前沿实验室的 FLOPs 几乎是无限的。</p>

  <p>他在自己最近的一篇论文里喜欢的一点，也正是探索有没有办法在不增加内存开销的情况下，纯粹靠增加 FLOPs 得到更好的性能。他觉得这可能是 latent CoT（在隐空间里推理、不把中间步骤写成文字）的一种非常终极的体现：</p>

  <blockquote>
    <p>你不会外显你的 thought token，不会有额外的 KV cache，也不会有任何额外的参数。你就是有更多的 FLOPs，在脑子里想得更多、花更多的能量，然后想出一个更好的方法、更好的 idea。</p>
  </blockquote>

  <h3 id="transformer-">淳远：Transformer 没有特别大的瓶颈</h3>

  <p>淳远说，他觉得 Transformer 并没有什么特别大的瓶颈；在架构设计上，我们永远可以做得更好：更高效、用更少的内存、计算更高效。</p>

  <p>他觉得比较 promising 的一个方向是：最近很多实验室在研究数据重复（data repeat）场景下的架构。数据越来越少，重复训练变得很常见。那么什么样的架构在重复训练时能提供正则化、不会过拟合？又该配合什么样的优化方法？</p>

  <blockquote>
    <p><strong>注</strong>：关于数据重复，一个常被引用的结论来自 Muennighoff 等人 [5]：在计算预算固定时，把同一批数据重复训练最多约 4 个 epoch，loss 与使用全新数据相比几乎没有差别；但重复次数再多，继续增加计算带来的收益最终会降到零。</p>
  </blockquote>

  <h3 id="section-4">奔皓：数据墙更重要</h3>

  <p>奔皓补充说，淳远讲的 data efficiency、数据重复问题很有意思。数据墙（data wall）也是一个瓶颈，但他觉得它比架构更重要：“data 永远是第一位的。”如果数据是第一等公民，那么在数据变少时，有没有什么架构可以适应这种情况，会是非常有价值的方向。</p>

  <h2 id="loop-kv-cache-moe">二、Loop 的代价：KV cache、性能上限，以及 MoE</h2>

  <p>用 loop 这样的方法，KV 占用的内存并不会更少。它在参数受限的情况下增加了 FLOPs，但内存和带宽的需求似乎也更高了。这一点怎么看？</p>

  <h3 id="section-5">除了一点归纳偏置，其余几乎都是代价</h3>

  <p>奔皓的回答相当直白：如果按照之前的一般做法，没有任何 KV sharing 或压缩技术，那么 looped LM 除了可能有一点归纳偏置（inductive bias，即架构本身带来的、对某类解法的偏好），其他基本都是代价：它的 KV cache 更多，性能又追不上同等逻辑深度的 vanilla Transformer。</p>

  <p>他还指出，大部分论文不会和上限比较，一般只放出下限：即只和同参数量、不 loop 的模型比，而不和同等逻辑深度、不共享权重的标准 Transformer 比。“我没有看到一个真正能超过那个上限的，我觉得可能也根本就没法超过。”淳远补充道：“它超不过。”奔皓补充，也许有人会说规模足够大时可能超得过，但在他看来，这和“扩散语言模型能否超过自回归模型”的讨论类似，他的判断是超不过。</p>

  <p>淳远也认同，并坦言自己的工作同样没有和同等深度的模型比。他自己试过，确实比不过，尤其在预训练阶段；如果又没有外推、又比不过，事情就很麻烦。他能想到的一个论据是：假如未来出现特别稀疏的超大 MoE，比如 1000T 参数，卡的显存放不下，weight sharing 或许能帮上忙。“除此之外……就有点棘手。”</p>

  <h3 id="moe-">MoE 能不能补上参数的短板？</h3>

  <p>主持人接着问到 MoE：既然淳远说架构没有特别的瓶颈，那 MoE 为什么会成为主流？在她的理解里，MoE 是在增加参数的同时，没有同等地增加 FLOPs，还能维持比较好的效果；这样的选择主要是出于延迟考虑吗？</p>

  <p>奔皓的理解是：looped LM 的一大问题还是参数，而参数决定了模型能存多少知识。MoE 是缓解这一点的好办法：不同的激活会让 router 选择不同的 expert，从而取到不同的知识。在 looped 的 MoE 模型里，不同 loop 激活的 expert 确实不一样，相当于每一步都在检索不同的知识。</p>

  <p>反过来，没有 MoE 时，不同 loop 的 hidden state 相似度挺高，这会让性能下降。他在之前的博客 [3] 里发现：不加 MoE 时，looped 模型与上限的差距还挺大；looped 模型和标准 Transformer 都加上 MoE 之后，差距会小一些。</p>

  <blockquote>
    <p><strong>注</strong>：据该博客第一部分，对比对象是一个与 looped 模型逻辑深度和激活计算量都相同、但不跨层共享权重的 112 层模型。从 dense 换成 MoE 后，looped 模型与它的平均差距从 4.96 分缩小到 1.71 分，而 looped 模型的常驻参数少 75%。博客还发现，强制后面的 loop 复用第一个 loop 选中的 expert，六项测试任务的准确率全部下降。</p>
  </blockquote>

  <h2 id="section-6">三、收益来自架构还是算力：怎样比较才公平</h2>

  <p>loop 的收益到底来自架构，还是只是多花了算力？怎样验证才公平？</p>

  <h3 id="section-7">淳远：有一种做法一定是错的</h3>

  <p>淳远先说，loop 的比较“太有说法了”。首先有一种做法一定是错的：loop 增加了 FLOPs，为了和等 FLOPs 的模型比，就去改 vanilla Transformer 的 FFN、head dim 或其他结构。为了凑 equal FLOPs 而改掉原架构的很多东西，“肯定不行”。</p>

  <p>他认为最标准的比法是在预训练中比 scaling ladder。比如按常规做法训练一组从小到大的标准 Transformer，第三档假设是一个 300M 的模型。Loop 会增加 FLOPs，所以 looped 版本的每个点在横轴（计算量）上的位置都会右移。“这不就是 scaling ladder 的意义吗？”scaling ladder 本来就是要拟合 power law、比较两条曲线，所以不必纠结每一档能不能和 baseline 严格对齐。</p>

  <p>至于比 wall-clock（实际运行时间），他认为学界做起来实在太难：各种 GPU 设置很难和真正的万卡集群相比。</p>

  <h3 id="baseline">奔皓：调好 baseline，分开看训练与推理</h3>

  <p>奔皓补充了两点：</p>

  <ul>
    <li><strong>永远把 baseline 调到最好，不要和差的 baseline 比</strong>。他举例说，最近有些工作为了凑 FLOPs，会把模型的 dimension 调宽或调窄。但宽度和深度之间有一个相对最优的范围，不能随便乱调，超出这个范围就不公平了。</li>
    <li><strong>训练和推理的代价可以分开看</strong>。如果训练时多付出一些代价（一般是计算量），换来解码时没有额外代价的性能提升，他是认可的。在他看来，学界和业界的一大区别是：学界非常纠结公平的设定，而业界更在乎模型在真正 serving 时能带来什么收益。</li>
  </ul>

  <p>主持人感叹，这样一来就得比很多个点，才能合理地比较两条曲线，是件很贵的事。奔皓说：“Pre-training 的残酷就在这个地方。”学界做起来真的挺麻烦：即使做了 ladder，要把超参（包括刚才说的宽度和深度）调明白也非常不容易。所以很多论文确实 claim 了一些 benefit，但立得住的 benefits 是很难得的。</p>

  <h3 id="section-8">追问：“解码时没有额外代价”指什么？</h3>

  <p>主持人追问：奔皓前面说的“解码时没有额外代价”，是指推理速度不受影响吗？这是否可以借助 pipeline 式的 loop 方法（把不同 token 的不同轮循环错开，像流水线一样并行计算），以及对 KV cache 的处理来做到？</p>

  <p>奔皓回答，他指的主要是 Full-Bandwidth Transformer [6] 这一类做法：给模型加一条支路，训练时多花一些计算，解码时几乎不增加开销。在他看来，这是比 pipeline 更典型的例子；pipeline 式的做法也说得通，但其中有些微妙之处，留到后面再谈（见本系列第三篇第八节）。</p>

  <blockquote>
    <p><strong>编者注</strong>：Full-Bandwidth Transformer 的这条支路，是把上一个位置最顶层的隐状态，经门控与下一个 token 的 embedding 融合后，作为下一个位置的输入。训练时要多跑几遍前向，但按论文估算，解码时每个 token 增加的计算量不到 1%（在 vLLM 中实测约慢 2.3%）。详见本系列第三篇。</p>
  </blockquote>

  <h2 id="ouro--huginn">四、两个代表架构：Ouro 与 Huginn</h2>

  <p>进入不动点的话题之前，主持人请两位先铺垫一下 Ouro 和 Huginn 这两个架构。</p>

  <h3 id="loop--loop">淳远：核心区别是整模型 loop 与中间 loop</h3>

  <p>淳远概括说：Ouro [7] 是整模型 loop（whole-model loop），配合 early exit，可以提前退出；Huginn [8] 是中间部分 loop（middle loop），配合 latent state 和 input injection。在他看来，二者的主要区别就在整模型 loop 和中间 loop，其他组件（比如 input injection）都可以互相借用。</p>

  <blockquote>
    <p><strong>注</strong>：下表整理了两个模型论文中的公开细节。</p>
  </blockquote>

  <table>
    <thead>
      <tr>
        <th> </th>
        <th>Ouro [7]</th>
        <th>Huginn [8]</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>循环方式</td>
        <td>整个模型循环</td>
        <td>只循环中间的 recurrent core，前后各有 prelude 和 coda</td>
      </tr>
      <tr>
        <td>规模</td>
        <td>1.4B（24 层）与 2.6B（48 层）</td>
        <td>3.5B，prelude / core / coda 分别为 2 / 4 / 2 层</td>
      </tr>
      <tr>
        <td>训练数据</td>
        <td>约 7.7T token</td>
        <td>约 800B token</td>
      </tr>
      <tr>
        <td>训练时的循环次数</td>
        <td>固定 4 次</td>
        <td>每个 micro-batch 随机采样，均值 32，分布带长尾</td>
      </tr>
      <tr>
        <td>训练细节</td>
        <td>每一步都计算语言模型 loss，并学习一个提前退出的分布</td>
        <td>只对最后 8 次迭代反传梯度；每轮把输入 embedding 与当前状态拼接后经线性层映射</td>
      </tr>
      <tr>
        <td>推理</td>
        <td>每轮循环后由退出门给出“在此停下”的概率，累计退出概率达到设定阈值就停止循环，较简单的 token 可以少算几轮</td>
        <td>可自由选择循环次数，论文结果展示到 64 次</td>
      </tr>
    </tbody>
  </table>

  <h3 id="section-9">奔皓的三点补充</h3>

  <p><strong>第一，input injection 对中间 loop 有一定帮助</strong>。对 Huginn 这种中间 loop 的结构，input injection 还是有一定帮助的，loop 次数稍多时尤其如此；没有它，Huginn 式的结构在相同逻辑深度下容易输给 Ouro。</p>

  <p><strong>第二，Ouro 内部“长出”了中间 loop</strong>。如果控制两个模型的逻辑深度，把 loop 的部分展开，再比较同一层 hidden state 的 CKA [9] 等相似度指标，会发现 Ouro 内部自己学出了和中间 loop 很像的结构：有对应 prelude 和 coda 的层。Prelude 和 coda 可以理解为编码和解码，中间则是一步步精炼（refinement）的隐表示。</p>

  <p>他也提到，其他 looped 模型里可能也有类似现象，所以这未必是新发现；但 Huginn 这种在中间 loop 的做法，可能恰好契合了这种归纳偏置。他还提到，有论文认为 RL 主要改变的是模型中间的一小部分，他猜测这部分可能负责推理之类的能力。</p>

  <blockquote>
    <p><strong>注</strong>：这方面的一个例子是 2026 年 7 月的一篇预印本 [10]：它发现 RL 带来的提升高度集中在少数几层，很多时候只训练单独一层就能接近全参数 RL 的效果，而贡献最大的层集中在网络中部。</p>
  </blockquote>

  <p><strong>第三，Huginn 的随机深度采样非常重要</strong>。不管是对不动点的塑形，还是对推理时的计算调节，它都很关键。奔皓认为“test-time scaling”这个说法有些歧义：在他看来，它真正的意义是外推，比如训练时只见过 16 次循环，推理时想 loop 到 64 次，“unfortunately，我觉得这个不太可能”，尤其在语言模型里。随机深度采样真正支持的是弹性计算（elastic compute）：训练时最多 loop 16 次，推理时就可以自由选择 loop 多少次，只要不超过 16。</p>

  <h2 id="depth-sampling-">五、要不要学不动点：depth sampling 的得与失</h2>

  <p>铺垫完架构，主持人把问题抛给奔皓。他先给了结论：<strong>如果只想在固定 loop 次数（比如 4 次或 5 次）下把性能做到最好，把模型当成一个普通的 Transformer 来用，不管内存等其他代价，那就不应该去学不动点</strong>，这样性能会更好。</p>

  <h3 id="depth-sampling">常见做法：depth sampling</h3>

  <p>如果要学不动点，就需要一些额外的算法，其中最知名的是 depth sampling：训练时每个 batch（也可以细到每个 micro-batch）采样一个深度，前向算这么多步，然后在这一步上施加 loss。</p>

  <p>奔皓的一个核心观点是：监督本身就是一种资源。假设目标预算是 loop 5 次，depth sampling 会把一部分监督加在第 1 到 4 步，或者更深的地方，第 5 步上的监督就相应变少，导致模型在 5 步时的性能下降。</p>

  <p>它带来的好处是稳定性：它要求每多走一步，loss 都不上升。这不一定让性能变好，但能让模型变稳。背后可能有一些数学可以推导：从 Jacobian 及其特征值的角度看，要让迭代收缩，特征值需要小于 1，这是可以证明的。但最直观的理解是：如果每一个深度都有 loss，而且 loss 不能变高，那么模型能学到的最简单的捷径，就是待在一个稳定的状态里不动，这就是所谓的不动点，或者说 attractor。</p>

  <h3 id="section-10">一个反直觉的实验结果</h3>

  <p>但他自己的实验发现：即使目标预算是 5，深度分布的均值也设为 5、长尾一直覆盖到 64，测试时展开到 64 步，结果也未必打得过固定深度 5 训练、不学不动点的对照模型。</p>

  <p>他的结论是：这可能是学不动点的算法有问题，而不是不动点本身有问题。Depth sampling 只是学不动点的方法之一。比如 DEQ（Deep Equilibrium Models）[11] 的做法就让训练和推理完全一致：训练时前向用一个不动点求解器（fixed-point solver）迭代，直到收敛程度达到某个阈值；反向再用隐式梯度（implicit gradient），在理想情况下，它精确对应于反向传播的数学解。这种情况下也许能学到很好的性能，不一定会遇到上面的问题；难点在于它非常难训，DEQ 出了名地不稳定，需要 warm-up 之类的技巧。Depth sampling 则是一种折中。</p>

  <blockquote>
    <p><strong>注</strong>：DEQ 由 Shaojie Bai、Zico Kolter 和 Vladlen Koltun 于 2019 年提出，可以看作一个无限深的权重共享网络：前向不再逐层计算，而是直接用求根算法（原论文用的是 Broyden 方法）解出满足 z* = f(z*, x) 的不动点；反向则利用不动点处的隐函数定理求梯度，不必保存中间步骤。</p>
  </blockquote>

  <h2 id="section-11">六、不动点是理想解，还是退化状态？</h2>

  <p>主持人问：学到的不动点，是我们想要的解，还是可能是一种退化的状态（degenerate state）？</p>

  <h3 id="section-12">不动点和性能是解耦的</h3>

  <p>奔皓说，他在之前的一篇论文 [2] 里的论点是：不动点本身和模型性能其实是解耦的。模型本身可能就有很多不动点（或者说 attractor），训练做的事情是尽可能把这些 attractor 对齐到正确的任务指标上，也就是希望 attractor 对应的 hidden state 解码出来，正好是正确的 token、正确的答案。所以不动点并不一定是退化的。</p>

  <blockquote>
    <p><strong>注</strong>：这篇论文即 Equilibrium Reasoners。它认为，推理之所以能泛化，是因为模型学到了“以任务为条件的 attractor”：隐空间动力学的稳定不动点恰好对应合法的解。论文在数独、迷宫等任务上通过增加迭代步数和多次随机重启来扩展测试时计算；据论文报告，展开到相当于 4 万层的深度时，Sudoku-Extreme 的准确率从前馈模型的 2.6% 提升到 99% 以上。</p>
  </blockquote>

  <p>如果真的出现了退化，可能是因为施加监督时，模型还没有到达那个 attractor，监督被加在了到达 attractor 之前的路径上。这样一来，多迭代几轮，模型确实可能收敛，但收敛到的是一个不好的点。</p>

  <h3 id="ouro-">Ouro 为什么多迭代会变差</h3>

  <p>他认为，这或许也是 Ouro 迭代次数超过训练时性能明显下降的原因。主持人问：Ouro 的设计是否就没有到达不动点？奔皓的看法是：Ouro 可能还不足以把监督“推”到不动点上，但它每个 loop 都有 loss，这会有一定帮助，迭代下去不太会发散。问题在于，它训练时只 loop 4 次，也没有 depth sampling，没有任何东西激励模型在 loop 超过 4 次之后仍然待在第 4 步的状态附近，于是它可能继续往前走，直到走到一个退化的地方。相比之下，Huginn 应该只要在 64 步以内都还行，超过 64 步才有一点点衰减。</p>

  <blockquote>
    <p><strong>注</strong>：Ouro 训练时固定循环 4 次（最初尝试过 8 次，因 loss 尖峰和梯度震荡改为 4 次），每一步都有语言模型 loss。论文报告，把循环次数加到 5 至 8 次时，基础模型的性能“适度下降”：循环 8 次时，1.4B 模型的 MMLU 从 67.45 降到 64.49，2.6B 模型从 74.60 降到 72.24；推理版本在难题上下降更多，如 2.6B 推理模型的 AIME25 从 50.30 降到 24.33。至于 Huginn，性能大约在 64 步前持续提升，之后不再提升，但通常也不会变差。</p>
  </blockquote>

  <h3 id="section-13">解耦，但也有耦合</h3>

  <p>主持人总结说，听起来不动点和性能之间并没有必然联系。奔皓同意这种思考方式，但也提醒其中有些微妙之处：有些做法会把两者耦合在一起。以 depth sampling 为例，它一方面把监督加在了很深的深度上，相当于把不动点和任务指标对齐；另一方面，它本身也有能力塑造不动点，是一种实现“路径无关性”（path independence）的技巧，下一节会细讲。“所以它一下子解决了两个问题”，两者之间有耦合，并不是分得那么开，但这样拆开来想有助于思考。</p>

  <blockquote>
    <p><strong>注</strong>：不动点还有一个很实际的用处。奔皓团队在博客系列的第二部分 [13] 中报告：解码时只保留每个 token 最后一次循环的 KV（terminal KV sharing），可以把 1.6B 模型的 KV cache 缩小到三分之一。用固定深度训练的模型这样做会明显掉点（GSM8K 从 50.6 降到 21.2），用学到的深度先验（learned depth prior：训练时循环深度的分布不再人为指定，而是根据预测效果学出来，并用熵项保持分布足够宽）训练的模型则基本不受影响。</p>
  </blockquote>

  <h2 id="section-14">七、架构和算法如何影响收敛：路径无关性</h2>

  <p>主持人接着问：架构设计和算法设计会如何影响收敛，包括最终收敛到什么样的点？奔皓列了三类做法：</p>

  <ul>
    <li><strong>Residual scaling（残差缩放）</strong>：架构上比较重要的是对残差连接做缩放，有些论文会给残差乘上一个比例系数，让后面的层的贡献更小一些 [14]。</li>
    <li><strong>Input injection（输入注入）</strong>：设计得好的 input injection 有助于收敛，但它本身并不必然能促进收敛，更大的作用是让模型收敛到的点与最初输入的 context 相关。如果迭代到无穷，却不一直把 context 注入进来，就会得到一个退化的 attractor，它和 prompt 没有任何关系，也就失去了意义。这是从 DEQ 那条线去理解 input injection 的价值。</li>
    <li><strong>Loss 侧的 Jacobian 正则</strong>：这已经不是架构设计，而是算法：对 Jacobian [12] 做一些约束，可以直接促进收敛。他提到最近比较火的 Fixed-Point Reasoners [14] 也用了类似的技巧。</li>
  </ul>

  <blockquote>
    <p><strong>注</strong>：Fixed-Point Reasoners 并没有直接使用 Jacobian 正则，而是用 pre-norm 加共享的可学习残差缩放系数（也作用在每轮重新注入的输入上）让状态保持有界，配合一个靠初始化来鼓励的收缩条件和阻尼更新来促进收敛；推理时，当不动点残差足够小就停止循环。它的目标（让迭代收缩）与 Jacobian 正则一致，具体手段更接近上面的第一类。</p>
  </blockquote>

  <h3 id="huginndepth-sampling-">具体到 Huginn：depth sampling 与截断反传</h3>

  <p>主持人追问：Huginn 能收敛到一个相对不错的不动点，是不是因为它有 input injection、用了 normalization，再加上 depth sampling？</p>

  <p>奔皓认为，至少在 Huginn 这篇论文里，normalization 和 input injection 不是最首要的因素。更重要的是两点：一是 depth sampling，二是前面还没提到的截断反向传播。截断反传是说不做完整的梯度回传：比如 loop 超过一定步数之后，永远只对最后固定的若干步反传，这样显存不会随步数继续增长。这是训练 RNN 时非常常见的做法，它对不动点的塑形也有帮助。</p>

  <p>大家可能会从效率的角度理解这两者，它们确实都很省：depth sampling 不会把大量资源都押在很深的深度上，这很合理，因为并不是每个 token 都需要那么深的计算；截断反传也一样，如果反传的显存和激活随前向步数线性增长，训练会很容易炸。但除了效率，这两者对不动点的塑形也有帮助。</p>

  <h3 id="section-15">路径无关性</h3>

  <p>奔皓说，可以从路径无关性的角度来理解。DEQ 这条线上有一篇很有名的论文 [15]，它的基本观点是：要让 attractor 性能足够好，或者按他们的说法有足够的泛化性，就要保证路径无关性。所谓路径无关性，是指无论从哪个点出发、走了多少步，最终到达的不动点或 attractor 都是同一个。</p>

  <blockquote>
    <p><strong>注</strong>：这篇论文发现，平衡模型能否靠增加测试时的迭代次数来解决更难的问题，与系统的路径无关性高度相关。</p>
  </blockquote>

  <p>在他看来，两种做法正好各自对应路径无关性的一半：</p>

  <ul>
    <li><strong>Depth sampling 让结果与步数无关</strong>。训练时走多少步是随机的，模型只好学会在各种步数下都到达同一个状态。</li>
    <li><strong>截断反传让结果与起点无关</strong>。前面几步的状态没有梯度贡献，模型“不知道自己从哪里来，但知道自己最后要往哪边走”。</li>
  </ul>

  <p>所以他总结，对 Huginn 来说，这两点才是对不动点塑形更重要的因素；合适的 normalization 和 input injection 也是重要的设计，防止出现发散。</p>

  <h2 id="section-16">结语与下篇预告</h2>

  <p>上半场的讨论有一条清晰的主线：loop 的代价切实存在，一是 KV cache 更多，二是性能难以达到同等逻辑深度、不共享权重的标准 Transformer 这一上限；而它的收益，需要通过完整的 scaling 曲线和充分调优的 baseline 来验证。“要不要学不动点”，本质上是在固定深度的最佳性能与多迭代的稳定性之间做取舍；奔皓还给出了一个很有用的视角：depth sampling 和截断反传，分别让结果与步数、与起点无关。</p>

  <p>下一篇整理圆桌下半场：沿深度循环与 CoT 是不是一回事、表达力证明还有没有意义、loop 怎样与 MoE 结合，以及外推、ACT 和并行解码。</p>

  <h2 id="section-17">参考文献</h2>

  <p>[1] <a href="https://arxiv.org/abs/2605.20670">LT2: Linear-Time Looped Transformers</a>. arXiv:2605.20670, 2026.</p>

  <p>[2] <a href="https://arxiv.org/abs/2605.21488">Equilibrium Reasoners: Learning Attractors Enables Scalable Reasoning</a>. arXiv:2605.21488, 2026.</p>

  <p>[3] <a href="https://ifm-research.notion.site/Towards-Looped-Models-Done-Right-3ade511912ec8128987dfeb7a5580043">Towards Looped Models Done Right</a>. Blog series, 2026.</p>

  <p>[4] <a href="https://arxiv.org/abs/2403.14123">AI and Memory Wall</a>. IEEE Micro; arXiv:2403.14123, 2024.</p>

  <p>[5] <a href="https://arxiv.org/abs/2305.16264">Scaling Data-Constrained Language Models</a>. NeurIPS 2023, arXiv:2305.16264.</p>

  <p>[6] <a href="https://arxiv.org/abs/2608.08888">Full-bandwidth transformer</a>. arXiv:2608.08888, 2026.</p>

  <p>[7] <a href="https://arxiv.org/abs/2510.25741">Scaling Latent Reasoning via Looped Language Models</a> (Ouro). arXiv:2510.25741, 2025.</p>

  <p>[8] <a href="https://arxiv.org/abs/2502.05171">Scaling up Test-Time Compute with Latent Reasoning: A Recurrent Depth Approach</a> (Huginn). NeurIPS 2025, arXiv:2502.05171.</p>

  <p>[9] <a href="https://arxiv.org/abs/1905.00414">Similarity of Neural Network Representations Revisited</a> (CKA). ICML 2019, arXiv:1905.00414.</p>

  <p>[10] <a href="https://arxiv.org/abs/2607.01232">Is One Layer Enough? Training A Single Transformer Layer Can Match Full-Parameter RL Training</a>. arXiv:2607.01232, 2026.</p>

  <p>[11] <a href="https://arxiv.org/abs/1909.01377">Deep Equilibrium Models</a> (DEQ). NeurIPS 2019, arXiv:1909.01377.</p>

  <p>[12] <a href="https://arxiv.org/abs/2106.14342">Stabilizing Equilibrium Models by Jacobian Regularization</a>. ICML 2021, arXiv:2106.14342.</p>

  <p>[13] <a href="https://arxiv.org/abs/2610.06833">Towards Looped Models Done Right, Part II: Rethinking at Fixed Points</a>. arXiv:2610.06833, 2026.</p>

  <p>[14] <a href="https://arxiv.org/abs/2606.18206">Fixed-Point Reasoners: Stable and Adaptive Deep Looped Transformers</a>. arXiv:2606.18206, 2026.</p>

  <p>[15] <a href="https://arxiv.org/abs/2211.09961">Path Independent Equilibrium Models Can Better Exploit Test-Time Computation</a>. NeurIPS 2022, arXiv:2211.09961.</p>

  <hr />

  <p><em>本系列：<a href="/blog/2026/10/looped-lm-recap-1-lt2/">第一篇｜LT2 与 Historical KV Replay</a> · 第二篇｜圆桌（上）（本篇） · <a href="/blog/2026/10/looped-lm-recap-3-panel-second-half/">第三篇｜圆桌（下）</a></em></p>

</div>

<script>
(function() {
  var buttons = document.querySelectorAll('.lang-switcher .lang-btn');
  var contents = document.querySelectorAll('.lang-content');
  buttons.forEach(function(btn) {
    btn.addEventListener('click', function() {
      var lang = btn.getAttribute('data-lang');
      buttons.forEach(function(b) { b.classList.remove('active'); });
      btn.classList.add('active');
      contents.forEach(function(c) {
        if (c.classList.contains('lang-' + lang)) {
          c.style.display = '';
        } else {
          c.style.display = 'none';
        }
      });
    });
  });
})();
</script>]]></content><author><name>Jinyan Su</name><email>jinyansu6@gmail.com</email></author><category term="technical" /><category term="ai" /><category term="llm" /><category term="architecture" /><category term="looped-lm" /><category term="fixed-points" /><category term="event-recap" /><summary type="html"><![CDATA[Part 2 of the recap of NICE's event "Looped Language Model: Rethinking Model Depth and Parameters," covering the first half of the panel: where the bottlenecks in LLM architecture are, what looping actually costs, what makes a fair comparison, and whether looped models should learn fixed points.]]></summary></entry><entry><title type="html">Event Recap, Part 1 | Looping Saves Parameters, Not KV Cache: Chunyuan Deng on LT2 and Historical KV Replay / 活动回顾（一）｜Loop 省参数，却不省 KV cache：邓淳远谈 LT2 与 Historical KV Replay</title><link href="https://jinyansu1.github.io/blog/2026/10/looped-lm-recap-1-lt2/" rel="alternate" type="text/html" title="Event Recap, Part 1 | Looping Saves Parameters, Not KV Cache: Chunyuan Deng on LT2 and Historical KV Replay / 活动回顾（一）｜Loop 省参数，却不省 KV cache：邓淳远谈 LT2 与 Historical KV Replay" /><published>2026-10-22T00:00:00+00:00</published><updated>2026-10-22T00:00:00+00:00</updated><id>https://jinyansu1.github.io/blog/2026/10/looped-lm-recap-1-lt2</id><content type="html" xml:base="https://jinyansu1.github.io/blog/2026/10/looped-lm-recap-1-lt2/"><![CDATA[<div class="lang-switcher">
  <button type="button" class="lang-btn active" data-lang="en">English</button>
  <button type="button" class="lang-btn" data-lang="zh">中文</button>
</div>

<div class="lang-content lang-en" lang="en">

  <p>On October 17 at 9 p.m. ET (9 a.m. on Sunday, October 18, Beijing time), NICE hosted an online talk and panel, “Looped Language Model: Rethinking Model Depth and Parameters.” There was a lot to cover, so this recap comes in three parts: the first covers Chunyuan Deng’s talk, and the second and third cover the two halves of the panel discussion. This is part one.</p>

  <p>The idea behind looped LMs is simple: run the same set of layers several times, adding computational depth without adding parameters. But a loop saves parameters, not KV cache. That is where Chunyuan’s talk starts: can combining loops with linear attention keep the benefits of looping while lowering the cost of inference? Beyond the analysis in the published paper, he also presented Historical KV Replay, a new method from his team that is not yet in the public version of the paper.</p>

  <h2 id="key-takeaways">Key takeaways</h2>

  <ul>
    <li><strong>Looping saves parameters, not KV cache.</strong> When a standard (full-attention) Transformer loops, its KV cache grows linearly with the number of loops. At long context lengths, a full-attention model that does not loop at all is more expensive than a linear-attention model that loops many times. This is why LT2 moves looping onto linear attention.</li>
    <li><strong>Writing to the same memory several times increases expressiveness.</strong> Linear attention compresses the history into a fixed-size “memory,” which you can think of as a lookup table. For each incoming token, the delta rule “erases, then writes” the entry associated with that token: it first erases the old content, then writes the new content. Per the DeltaProduct analysis, erasing and writing n times at the same position updates n entries in one step instead of just one, provided the n writes really modify different, non-overlapping entries, which the team verified largely holds in common settings.</li>
    <li><strong>But when linear attention is looped directly, each loop writes to its own memory.</strong> The theory above therefore does not strictly apply, and the recurrence over time and the recurrence over depth are never connected. This leaves room for co-design.</li>
    <li><strong>The new method, Historical KV Replay, replays earlier loops’ KVs in reverse order.</strong> It brings large gains in both recall and language modeling. Order is crucial: reverse order works, while forward order barely helps.</li>
    <li><strong>The cost is manageable, and the gains are not just from “computing more.”</strong> The amount of replay grows quadratically with the number of loops (loop k writes its own KVs and also rewrites the KVs of the previous k−1 loops, so 4 loops require 1+2+3+4 = 10 writes in total), but models today usually loop only two or three times. In controlled comparisons, the team also tried other ways of adding the same amount of compute: looping more times (just more rounds, with each loop still writing only its own memory), widening GDN (Gated DeltaNet, the linear attention that LT2 loops), and stacking DeltaProduct inside each layer (erasing and writing several times at the same position). All of these helped, but none matched replay.</li>
    <li><strong>Extrapolation matters more than tinkering with the architecture.</strong> Chunyuan argues that without extrapolation, one has to work very hard to justify the value of weight sharing (if a looped model cannot loop more at inference than in training, it is just a fixed-depth model whose layers share parameters, and its main advantage is fewer parameters; extrapolation is what lets it loop more on demand at inference time, trading extra compute for better results). ACT (adaptive computation, which lets each token decide how many loops to run based on its difficulty) is very hard to implement, and it is unclear whether it can be solved. Post-training, especially combining on-policy distillation with loops, deserves attention.</li>
  </ul>

  <h2 id="glossary">Glossary</h2>

  <p>The table below explains several terms that recur in this article. Readers familiar with them can skip it.</p>

  <table>
    <thead>
      <tr>
        <th>Term</th>
        <th>Plain-language explanation</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>Loop / Looped LM</td>
        <td>Running the same set of layers (or the whole model) several times with the same parameters each time. Looping 4 times is like stacking those layers 4 times while keeping only one copy of the parameters</td>
      </tr>
      <tr>
        <td>Weight sharing</td>
        <td>Multiple loops use the same set of parameters; this is where looping’s parameter savings come from</td>
      </tr>
      <tr>
        <td>KV cache</td>
        <td>The keys and values that standard attention caches for every past token during generation, so that later tokens can query them; it grows with context length, number of layers and number of loops</td>
      </tr>
      <tr>
        <td>Linear attention</td>
        <td>Instead of storing all past KVs, compresses the history into a fixed-size state matrix (recurrent memory) that is updated token by token; its memory does not grow with context length</td>
      </tr>
      <tr>
        <td>Delta rule</td>
        <td>An update rule for linear attention: before writing new content, it partially erases the old content in the current key’s direction, i.e., “erase once, write once”</td>
      </tr>
      <tr>
        <td>GDN / KDA</td>
        <td>Two linear-attention variants based on the delta rule. GDN (Gated DeltaNet) adds a forget gate; KDA (Kimi Delta Attention) makes the forget gate finer-grained</td>
      </tr>
      <tr>
        <td>Head dim</td>
        <td>The dimension of the key and query vectors in each attention head, commonly 128 or 256</td>
      </tr>
      <tr>
        <td>SWA</td>
        <td>Sliding window attention: each token only attends to tokens within a fixed-length window of recent tokens</td>
      </tr>
      <tr>
        <td>Hybrid</td>
        <td>An architecture that combines a few full-attention layers with many linear or sparse attention layers, e.g., one full-attention layer for every three linear-attention layers</td>
      </tr>
      <tr>
        <td>Recall</td>
        <td>The ability to accurately retrieve a specific piece of information from a long context, typically tested with “needle in a haystack”; a traditional weakness of linear attention</td>
      </tr>
      <tr>
        <td>Chunkwise</td>
        <td>A common parallel algorithm for linear attention: split the sequence into chunks, compute in parallel within each chunk, and recur across chunks, which makes efficient GPU kernels possible</td>
      </tr>
      <tr>
        <td>Extrapolation</td>
        <td>Looping more times at inference than in training (e.g., training with 8 loops and running inference with 16) while the model still works or even improves</td>
      </tr>
      <tr>
        <td>ACT</td>
        <td>Adaptive Computation Time: each token decides how many loops to run based on its difficulty</td>
      </tr>
      <tr>
        <td>On-policy distillation</td>
        <td>The student model generates its own content and the teacher gives token-by-token guidance on it, instead of the student simply imitating text the teacher wrote</td>
      </tr>
    </tbody>
  </table>

  <h2 id="speakers">Speakers</h2>

  <p><strong>Chunyuan Deng (speaker):</strong> PhD student at Rice University, advised by Prof. Hanjie Chen. His research focuses on the design and optimization of LLM pretraining architectures, as well as the interpretability of language models. The work presented in this talk is LT2: Linear-Time Looped Transformers [1].</p>

  <p><em>[Figure: cover slide of Chunyuan’s talk]</em></p>

  <h2 id="motivation-looping-saves-parameters-but-not-kv-cache">1. Motivation: looping saves parameters, but not KV cache</h2>

  <p>The selling point of looped models is parameter efficiency: reuse the same layers several times, and the computational depth multiplies while the parameter count stays the same. But when Chunyuan’s team first started working on loops, their impression was that they were “very expensive.” The reason is that a loop shares parameters, but not the KV cache.</p>

  <p>In a full-attention Transformer, every layer stores a key and a value for every token. If the model loops 4 times, the same token has to store a copy in each loop, so the KV cache grows in proportion to the number of loops. For looping on full attention, this overhead is “simply unacceptable,” and it is hard to imagine extrapolating it to many loops.</p>

  <p>Linear attention is different: its recurrent memory is small, and both its training FLOPs and its inference memory scale well. As a result, at long context lengths a full-attention model that does not loop at all is far more expensive than a linear-attention model that loops many times.</p>

  <blockquote>
    <p><strong>Note:</strong> Here is a back-of-the-envelope estimate for a single layer and a single attention head (ignoring compression techniques such as GQA). Let the head dimension be d and the context length be N. Full attention stores a key vector and a value vector for every token, 2N·d numbers in total. The state of a linear attention such as GDN is a d×d matrix, d² numbers, independent of N (linear attention takes the outer product of each token’s key and value to get a d×d matrix and accumulates it into the same state, so the state stays the same size no matter how many tokens are read). With d = 128 and N = 32K, the former is about 512 times the latter. So even if a linear-attention model loops a hundred times or more, its total per-layer state is still smaller than that of a full-attention model that does not loop.</p>
  </blockquote>

  <p>This is the starting point of LT2 [1]: <strong>loop on linear attention</strong>, so that both training FLOPs and inference memory stay well-behaved. A set of numbers from Chunyuan’s slides makes this concrete: for a 0.6B model at 32k context, the looped Transformer’s KV cache is 12.1 GB, while LT2’s is only 0.05 GB; decoding speeds are 6.3 and 19.4 tokens per second, respectively.</p>

  <p>[image: Chunyuan’s slides, p. 3]</p>

  <p><em>Figure: A looped Transformer stores a separate KV cache for each loop, which grows with context length; LT2 keeps only one fixed-size state per loop.</em></p>

  <h2 id="the-intuition-write-to-the-same-memory-several-times">2. The intuition: write to the same memory several times</h2>

  <p>LT2 mainly studies linear attention of the GDN [2] and KDA [3] type. As Chunyuan explained, their state transition matrix (the matrix that, each time a token is read, determines how the old memory changes: how much it decays and what gets erased; see α_t(I − β_t k_t k_tᵀ) in the formula below) can be written in a “diagonal plus low-rank” (DPLR) form. This class of linear attention currently works well and is widely used.</p>

  <p>First, what does the delta rule do? For each incoming token, the model updates the memory matrix S using the token’s key k_t, value v_t and write strength β_t (using GDN as the example, with slightly simplified notation):</p>

  <div class="language-latex highlighter-rouge"><div class="highlight"><pre class="highlight"><code>S<span class="p">_</span>t = <span class="k">\alpha</span><span class="p">_</span>t <span class="k">\left</span>(I - <span class="k">\beta</span><span class="p">_</span>t k<span class="p">_</span>t k<span class="p">_</span>t<span class="p">^{</span><span class="k">\top</span><span class="p">}</span><span class="k">\right</span>) S<span class="p">_{</span>t-1<span class="p">}</span> + <span class="k">\beta</span><span class="p">_</span>t k<span class="p">_</span>t v<span class="p">_</span>t<span class="p">^{</span><span class="k">\top</span><span class="p">}</span>
</code></pre></div>  </div>

  <p>The term I − β_t k_t k_tᵀ in parentheses is the identity matrix minus a rank-1 matrix: it partially erases the memory’s old content in the k_t direction, and the second term then writes the new value into that direction. This is what Chunyuan meant by “erase once and write once along k_t.” α_t is the forget gate, which controls how much the old memory decays overall; KDA makes this gate finer-grained than GDN does. In the GDN paper’s framing, the gate enables rapid memory erasure, while the delta rule enables targeted updates.</p>

  <p>The earlier DeltaProduct [4] work goes a step further: instead of erasing and writing once per token, it does so n_h times in a row at the same position. The state transition matrix then becomes a product of n_h such matrices:</p>

  <div class="language-latex highlighter-rouge"><div class="highlight"><pre class="highlight"><code>A<span class="p">_</span>t = <span class="k">\prod</span><span class="p">_{</span>j=1<span class="p">}^{</span>n<span class="p">_</span>h<span class="p">}</span> <span class="k">\left</span>(I - <span class="k">\beta</span><span class="p">_{</span>t,j<span class="p">}</span><span class="k">\,</span> k<span class="p">_{</span>t,j<span class="p">}</span> k<span class="p">_{</span>t,j<span class="p">}^{</span><span class="k">\top</span><span class="p">}</span><span class="k">\right</span>)
</code></pre></div>  </div>

  <p>Each factor is “identity minus rank 1,” so the product is “identity minus a matrix of rank at most n_h”; together with the forget gate, this is what the paper calls “diagonal plus rank n_h.” Intuitively, one erase-and-write can only change the memory’s content in one direction, while n_h of them can change n_h directions. A “direction” here is the direction of a key vector: if you think of the memory as a table looked up by key, each key direction roughly corresponds to one entry, and the closer the keys of the successive writes are to orthogonal, the more they modify unrelated entries. DeltaProduct’s theoretical analysis shows that the larger n_h is, the stronger the model’s state tracking (e.g., working out where each item ends up after a sequence of swaps); experimentally, it outperforms DeltaNet, which writes only once per token, on both state tracking and language modeling.</p>

  <p>Chunyuan put it more plainly: the theory looks complicated, but it is actually easy to understand. As long as the keys used in the successive writes are mutually orthogonal, or at least not fully collinear, each write goes in a different direction, which is like being able to erase several times. So doing a few more products at the linear-attention step, i.e., looping at the position of the delta rule, gives stronger control over the recurrent memory.</p>

  <p>But do keys “collide” in practice, i.e., are the keys of successive writes nearly collinear? The team checked: the larger the head dim, the harder it is for keys to collide, and the smaller, the easier. According to the statistics in the slides, at default settings such as a head dim of 128 or 256, the absolute cosine between the keys of two adjacent loops in GDN averages only about 0.05, so collisions are rare; when the head dim drops to 32 and the number of loops rises to 16, collisions become much more frequent. The gain in expressiveness from rank 1 to rank n_h is therefore fairly reliable.</p>

  <blockquote>
    <p><strong>Note:</strong> In high-dimensional space, two vectors with random directions are naturally close to orthogonal. The cosine of the angle between two random d-dimensional unit vectors has a mean of 0 and a standard deviation of about 1/√d, so it typically deviates from 0 by only about 1/√d, roughly 0.09 for d = 128. The closer the cosine is to 0, the closer the two vectors are to orthogonal. So the larger the head dim, the less likely keys are to collide.</p>
  </blockquote>

  <p>There is a subtlety here, though. When a GDN or KDA is looped directly, each loop maintains its own recurrent memory: loop 1 writes its own KVs into its own memory, loop 2 writes into another one, and so on. The theory above is about repeatedly erasing and writing the same memory, whereas direct looping writes to different memories. Chunyuan admitted that applying the theory this way is “actually not rigorous.”</p>

  <p>Seen from another angle, the recurrence over time (updating the memory token by token) and the recurrence over depth (updating representations loop by loop) could be treated as a single whole. Arrange all tokens and all loops in a “token × loop” grid: unrolled step by step, it is a single data stream, and training with teacher forcing (feeding in the whole ground-truth text at once and computing all positions in parallel) amounts to computing the whole grid at once. With direct looping, the two dimensions run separately and have never been designed jointly. Chunyuan thinks there may be a good opportunity for co-design here, which leads to the new method in the next section.</p>

  <h2 id="new-work-historical-kv-replay">3. New work: Historical KV Replay</h2>

  <p>This section covers the team’s recent work, which is not yet in the public version of the paper; Chunyuan said they may update the paper later.</p>

  <h3 id="how-it-works-rewrite-the-old-kvs-when-writing-new-memory">How it works: rewrite the old KVs when writing new memory</h3>

  <p>Take a single token as an example: going up the network, it passes through loops 1, 2, 3 and 4 in turn. Normally, each loop writes only the KVs computed in that loop into its own memory, and the KVs of different loops have nothing to do with each other. Replay works like this: when loop k writes its memory, it also brings over the KVs of the earlier loops and writes them again. For example, loop 2 brings over loop 1’s KVs and writes them once more; loop 3 rewrites the KVs of loops 2 and 1; and so on. This creates a form of co-design between the recurrence over depth and the recurrence over time.</p>

  <p>Chunyuan offered an analogy: you read the first book, then the second; after finishing the second, you flip back through the first because you are afraid you have forgotten it; after finishing the third, you review the second and the first.</p>

  <p>From the perspective of the previous section, replay makes loop k’s memory receive, at the same token position, erase-and-write operations with keys from multiple loops. In other words, it “writes to the same memory several times”: each step’s update goes from rank 1 to rank at most k. Replay introduces no new parameters and does not change the memory size. According to the formulas in the slides, the forget-gate decay is applied only once per token, and each write uses the write strength β of the loop it comes from.</p>

  <p>[image: Chunyuan’s slides, p. 7]</p>

  <p><em>Figure: The number j in each cell denotes the KVs that the token computed in loop j; loop k writes its own KVs first and loop 1’s KVs last.</em></p>

  <h3 id="order-is-crucial-replay-in-reverse">Order is crucial: replay in reverse</h3>

  <p><strong>Replay in reverse order (4→3→2→1), not in forward order (1→2→3→4).</strong> For loop 4, this means writing its own KVs first, then those of loops 3, 2 and 1 in turn. In terms of the reading analogy: after finishing a new book, don’t start rereading from the first book; learn the new one first, then work backwards to review the older ones.</p>

  <p>In experiments, forward order brings almost no gain, while reverse order substantially improves recall and also brings large gains in pretraining language modeling. A comparison in the slides (1.3B model, 4 loops) makes the point clearly. Both orders write exactly the same KVs the same number of times; only the order differs. On a recall test at length 2k, looped GDN without replay scores 34.58, forward replay 34.71 and reverse replay 41.10; the averages over 8 zero-shot tasks are 58.39, 58.45 and 61.10, respectively. Chunyuan noted that the improvement is especially pronounced on recall tasks close to real-world use, such as “needle in a haystack.” He also offered a way to think about it: the more loops there are, the more representations replay accumulates along depth, somewhat like a latent chain of thought (latent CoT) unrolled along depth.</p>

  <blockquote>
    <p><strong>Note:</strong> The explanation Chunyuan gives in his slides is “the last write wins”: each write erases part of the old content along its own key direction, so the KV pair written last is overwritten the least. In forward order, the last write is the current loop’s own KVs, so the final state of the memory is almost the same as without replay; in reverse order, the last write is loop 1’s KVs, which are therefore preserved most completely in every loop’s memory. A test-time intervention experiment supports this. For a 1.3B model trained with Full Replay, changing only how replay is done at inference, switching to forward order lowers 2k recall by 7.7 points and dropping the loop-1 pair lowers it by 8.5 points, while dropping the previous loop’s pair lowers it by only 0.8 points. The model clearly relies mainly on loop 1’s KVs, which are written last.</p>
  </blockquote>

  <h3 id="cost-quadratic-growth-but-few-loops">Cost: quadratic growth, but few loops</h3>

  <p>A natural question is whether replay is expensive. Each replay means one more delta-rule erase-and-write. With n loops, the total number of writes is 1 + 2 + … + n = n(n+1)/2, which grows quadratically with the number of loops. Fortunately, people do not loop very many times today (“nobody loops ten thousand times”), usually just two or three, and in that range the extra cost is not large.</p>

  <p>There is also a small engineering trick. Replay forms a small set of KVs along the depth dimension, so instead of doing several rounds of reads and writes one after another, you can stack them into a small matrix and run a chunkwise computation along depth (chunkwise normally splits along the sequence length; here it splits along depth). This lets you reuse existing GDN kernels and keeps the decoding cost down. According to the slides, during decoding each loop still reads and writes the state only once; what is added is computation, not state reads and writes.</p>

  <p>Chunyuan presented the following cost comparison. Compared with a looped model that is also based on linear attention but does no replay, Full Replay has lower training throughput and slightly slower decoding because of the extra replay and writes, but overall inference remains acceptable. The specific numbers (0.6B model, a single H100): training throughput at 4k length drops from 41.2k to 34.6k tokens per second (about 16% lower), and decoding speed at 32k context drops from 19.4 to 18.4 tokens per second (about 5% lower). The slowdown here is the extra cost of replay relative to plain looping; compared with a looped full-attention model, linear attention is still far cheaper at long context lengths.</p>

  <h3 id="a-cheaper-variant-first-loop-replay">A cheaper variant: First-loop Replay</h3>

  <p>Instead of replaying the whole history, this variant replays only the first loop’s KVs: each loop no longer writes its own KVs but writes loop 1’s KVs instead, so the number of writes per token is the same as with plain looping. This is somewhat like the idea behind YOCO [5]: early depths provide the KVs for later depths.</p>

  <blockquote>
    <p><strong>Note:</strong> YOCO (You Only Cache Once) is a decoder-decoder architecture: the first half of the network produces a single global KV cache, which all layers in the second half share through cross-attention, greatly reducing the size of the KV cache.</p>
  </blockquote>

  <p>One key detail: only the earlier loops’ KVs are reused, not their decay coefficients (α), write strengths (β) or queries; each loop still uses its own α, β and query. If α and β are reused as well, results get much worse. Chunyuan said this has a bit of a “hybrid” feel: it uses some historical information while keeping each loop’s own information. It is a good balance point they found: training and decoding speeds are basically unaffected, and it still captures part of replay’s gains. The numbers in the slides: training throughput drops by only about 1%, decoding is actually about 4% faster, and the gain in average score is about 70% of Full Replay’s (+1.94 vs. +2.78 on the 0.6B model).</p>

  <p>In the ablations, they compared forward order, reverse order, replaying only the first loop, and several other combinations and orders. Taking Full Replay’s improvement as 100% (0.6B model), forward order captures only 2%, “current loop + previous loop” 16%, “current loop + loop 1” 84%, and First-loop Replay 70%. The key, then, is to keep loop 1’s KVs and write them last. Based on these ablations, the recommended approach is to keep the first loop’s KVs while letting each later loop use its own write strength and decay, capturing the gains at a lower cost. After recent discussions, however, the team also feels that First-loop Replay is sometimes not stable enough. In the talk, Chunyuan recommended Full Replay instead: it costs a bit more, but it does work better.</p>

  <h3 id="the-gains-are-not-just-from-computing-more">The gains are not just from “computing more”</h3>

  <p>To rule out the explanation that replay simply spends more compute, they compared replay with other ways of adding compute: looping more times (e.g., 6 times), widening GDN, and, while looping the whole model, stacking the DeltaProduct-style repeated erase-and-write from the previous section inside each layer. All of these help, and more compute generally brings more gain, but the improvements may all fall short of replay. In the comparison plot in the slides (0.6B model), these approaches raise the average score only from 55.7 to somewhere between 56 and 57, and both their training and decoding speeds are lower than First-loop Replay’s, whereas First-loop Replay and Full Replay reach 57.7 and 58.5, respectively. Chunyuan concludes that replay’s gains cannot be explained simply by compute; moreover, some of the other approaches run into system-level problems and are less efficient.</p>

  <p>Finally, Chunyuan added that what he showed is the pure linear-attention setting. The more realistic setting is a hybrid one, and replay works on hybrid models as well, with good results: the slides show that on 0.6B Full+GDN and GDN+DSA hybrids, Full Replay raises the average score by 1.4 and 2.0 and 2k recall by 3.1 and 4.3, respectively. In his view, combining loops with linear attention is always a trade-off between speed and quality: wherever a looped Transformer would be used, you can fairly freely swap in a looped GDN and get a good balance between speed and quality.</p>

  <h2 id="other-findings-from-the-paper">4. Other findings from the paper</h2>

  <p>Besides replay, Chunyuan picked out a few points from the published paper [1] that are worth sharing. The paper itself tries many hybrid combinations of linear attention, sparse attention, SWA and more, with fairly thorough ablations.</p>

  <blockquote>
    <p><strong>Note:</strong> LT2 studies two looped variants, one with linear attention (LT2-linear) and one with sparse attention (LT2-sparse). For the former, looping repeatedly refines the memory; for the latter, it expands the effective receptive field. The receptive field is how wide a range of inputs can influence the output at a given position; in a language model, it is how far back a token can draw information from. Take sliding window attention as an example. In each round, every token sees only the most recent w tokens; in the next loop, those w tokens have already absorbed the information in their own windows during the previous round, so earlier content can reach the current token indirectly through them. Each additional loop therefore extends the coverage back by one window, to about n·w tokens after n loops, the same coverage as stacking n layers of sliding window attention. “Effective” refers precisely to this indirect coverage relayed through intermediate tokens. The paper also proposes two hybrids: one combining GDN with the sparse attention DSA, which runs in linear time throughout and matches the quality of a standard looped Transformer; and one combining GDN with a small number of full-attention layers, which surpasses the standard looped baseline.</p>
  </blockquote>

  <h3 id="loop-level-hybrids">Loop-level hybrids</h3>

  <p>When building hybrids, the first idea that comes to mind is mixing along depth, e.g., one full-attention layer for every three linear-attention layers. With loops, you can also mix across loops, which gives a cross-loop hybrid: for example, the first loop uses full attention throughout and the second switches to SWA.</p>

  <p>This works because a loop shares only the parameters, which Chunyuan calls the slow weights; anything other than the parameters can change from loop to loop. The attention mask is a typical fast weight, and if you loop the whole model, even the loss function can differ across loops. This opens up a new design space: besides depth-level hybrids, there are loop-level hybrids.</p>

  <p>The team compared two schemes that change the attention window size from loop to loop, and the results were somewhat surprising:</p>

  <ul>
    <li><strong>Shrinking the window loop by loop</strong> (like a CNN, e.g., full attention → 512 → 256 → 128): lower loss (perplexity 9.26), but downstream performance does not improve (average score 60.71).</li>
    <li><strong>Growing the window loop by loop</strong> (e.g., 128 → 256 → 512 → full attention): slightly worse loss (perplexity 9.42), but downstream performance is actually a little higher (average score 62.47).</li>
  </ul>

  <p>For reference, a conventional depth-level hybrid (with full attention interleaved within every loop) has a perplexity of 9.30 and an average score of 61.51. Lower loss usually goes with better downstream performance, but these results go the other way.</p>

  <h3 id="randomly-sampled-attention-patterns">Randomly sampled attention patterns</h3>

  <p>If you treat each position along the depth and loop dimensions as a “slot,” you can choose independently whether each slot uses full attention or efficient attention. A more aggressive approach is to randomly sample the attention type of each slot during training: the overall ratio of full to efficient attention stays fixed, but their positions vary randomly. At inference, majority voting is done over multiple sampled configurations.</p>

  <p>The method does bring some improvement, but at too high a cost: at inference, each sampled configuration has to be run separately before voting, so the compute grows in proportion to the number of samples (in the slides, 5 samples at 5× the compute raise the average score only from 61.51 to 61.75). Chunyuan considers it impractical for real use; this set of experiments was only an exploratory attempt.</p>

  <h2 id="distilling-from-ouro-no-need-to-train-from-scratch">5. Distilling from Ouro: no need to train from scratch</h2>

  <p>The last part of the talk was about distillation: converting a full-attention looped model such as Ouro [6] into a linear-attention hybrid model without training from scratch. Ouro is an open-source family of whole-model looped language models, which part two of this series introduces in detail. Chunyuan noted that switching to sparse attention is relatively easy, while switching to linear attention is bound to cost some performance; because this work leans toward linear attention, they tried it anyway.</p>

  <blockquote>
    <p><strong>Note:</strong> According to the LT2 paper, the Ouro-hybrid-1.4B obtained this way (called Ouro-LT2-1.4B in the slides) was trained on only about 1B tokens, yet it outperforms industry 1B-class models and is competitive with 4B-class models. According to the slides, the teacher is Ouro-1.4B, which loops 4 times and whose 24 layers all use full attention; the student keeps full attention in only 6 of those layers and replaces the other 18 with GDN plus replay. Training has three stages: first, aligning each layer’s hidden states and selecting the 6 layers to keep (100M tokens, length 512); then, per-loop logit distillation (600M tokens, length 4k); and finally, 32k long-context training on OpenThoughts-v3 (600M tokens). The final student reaches about 95.5% of the teacher’s average performance across 6 tasks. The contribution of each component is also clear: without replay, interleaving the 6 full-attention layers uniformly at fixed intervals retains only 65.3%, the best previous layer-selection method reaches 86.9%, and their method reaches 92.9%; adding Full Replay raises this to 95.5%.</p>
  </blockquote>

  <p>Chunyuan shared three key points.</p>

  <p><strong>First, distillation data is crucial: different data maps to different downstream abilities.</strong> The data you distill on tends to determine which benchmarks improve: pretraining data corresponds to commonsense benchmarks, while open-source reasoning data may line up with math-reasoning benchmarks such as GSM8K and AIME. As for MMLU, they have not yet found data that lines up with it: “maybe our experiments weren’t thorough enough, but MMLU may also just be harder.”</p>

  <p><strong>Second, choosing which layers keep full attention is crucial.</strong> This point comes from earlier work [7]: when distilling into a hybrid, you should not interleave linear-attention layers uniformly at a fixed ratio. Instead, first assess the importance of each layer, then decide which layers keep full attention (that work estimates each layer’s importance with a short training run on generic text). This step substantially improves distillation. According to Chunyuan, one usually finds that the early-to-middle layers should keep full attention, while the other layers can be replaced.</p>

  <p><strong>Third, a loop-specific trick: a dual curriculum over depth and length.</strong> A curriculum arranges training from easy to hard. Long-context training usually increases the length gradually from short to long; with loops, you can likewise go from shallow to deep, first distilling the first loop until it closely matches the teacher, then the second loop. Their preferred approach is to advance both together: loop 1 paired with short contexts, loop 2 with longer ones. In their method, this works well.</p>

  <h2 id="future-directions">6. Future directions</h2>

  <p>For depth-recurrent models, Chunyuan sees three directions worth watching:</p>

  <ul>
    <li><strong>Extrapolation matters more than tinkering with the architecture.</strong> In his view, continuing to tweak architectures is not that critical; what really matters is extrapolation. Without extrapolation, one has to work very hard to justify the value of weight sharing. He explained this later in the panel discussion: a loop has only two properties, depth and weight sharing, and if there is no extrapolation and the comparison is against a model of the same depth, only weight sharing remains (see part three of this series). Conversely, with extrapolation, weight sharing provides value that a standard Transformer cannot: loop only a few times in training, then loop more on hard problems at inference, trading extra compute for better results without adding parameters or producing a longer chain of thought. Benhao also said in the panel that this kind of extrapolation is what test-time scaling really means (see part two of this series).</li>
    <li><strong>ACT is very hard to implement.</strong> He is not sure whether this problem can be solved. The main difficulty is at the infra level: different tokens loop different numbers of times, which makes batching and training systems hard to design. Even so, he still lists ACT as a direction worth watching.</li>
    <li><strong>Pay more attention to post-training.</strong> Not just SFT and RL; combining on-policy distillation [8] with loops in particular may work well.</li>
  </ul>

  <blockquote>
    <p><strong>Note:</strong> On-policy distillation means the student model receives token-by-token guidance from the teacher on sequences it generates itself, rather than only learning from text the teacher wrote in advance. This way, the student sees and corrects the mistakes it would actually make during training; a representative work is [8].</p>
  </blockquote>

  <p>Extrapolation and ACT are discussed in more depth in the second half of the panel; see part three of this series.</p>

  <h2 id="closing-and-whats-next">Closing and what’s next</h2>

  <p>Before the Q&amp;A, host Wenyue Hua remarked that the work seems to start from some findings about linear attention and then discover that adding loops is a very natural combination. Looking back at Chunyuan’s talk, the reasoning follows a single thread: the KV cache cost that looping brings is resolved with linear attention, and joint time-and-depth designs such as replay substantially improve linear attention’s weakness in recall.</p>

  <p>Next up is the first half of the panel: Where are the bottlenecks in LLM architecture? Do the gains of looping really come from the architecture, or just from spending more compute? Should looped models learn fixed points?</p>

  <h2 id="references">References</h2>

  <p>[1] <a href="https://arxiv.org/abs/2605.20670">LT2: Linear-Time Looped Transformers</a>. arXiv:2605.20670, 2026. Code: github.com/chili-lab/LT2</p>

  <p>[2] <a href="https://arxiv.org/abs/2412.06464">Gated Delta Networks: Improving Mamba2 with Delta Rule</a> (GDN). ICLR 2025, arXiv:2412.06464.</p>

  <p>[3] <a href="https://arxiv.org/abs/2510.26692">Kimi Linear: An Expressive, Efficient Attention Architecture</a> (KDA). arXiv:2510.26692, 2025.</p>

  <p>[4] <a href="https://arxiv.org/abs/2502.10297">DeltaProduct: Improving State-Tracking in Linear RNNs via Householder Products</a>. NeurIPS 2025, arXiv:2502.10297.</p>

  <p>[5] <a href="https://arxiv.org/abs/2405.05254">You Only Cache Once: Decoder-Decoder Architectures for Language Models</a> (YOCO). NeurIPS 2024, arXiv:2405.05254.</p>

  <p>[6] <a href="https://arxiv.org/abs/2510.25741">Scaling Latent Reasoning via Looped Language Models</a> (Ouro). arXiv:2510.25741, 2025.</p>

  <p>[7] <a href="https://arxiv.org/abs/2512.20569">Distilling to Hybrid Attention Models via KL-Guided Layer Selection</a>. ICLR 2026, arXiv:2512.20569.</p>

  <p>[8] <a href="https://arxiv.org/abs/2306.13649">On-Policy Distillation of Language Models: Learning from Self-Generated Mistakes</a>. ICLR 2024, arXiv:2306.13649.</p>

  <hr />

  <p><em>This series: Part 1｜LT2 and Historical KV Replay (this post) · <a href="/blog/2026/10/looped-lm-recap-2-panel-first-half/">Part 2｜Panel, First Half</a> · <a href="/blog/2026/10/looped-lm-recap-3-panel-second-half/">Part 3｜Panel, Second Half</a></em></p>

</div>

<div class="lang-content lang-zh" lang="zh" style="display: none;">

  <p>美东时间 10 月 17 日晚 9 点（北京时间 10 月 18 日周日上午 9 点），NICE 举办了一场线上 Talk + Panel 活动「Looped Language Model：重新思考模型的深度与参数」。内容较多，回顾分三篇发出：第一篇是邓淳远的主题分享，第二、三篇整理圆桌讨论的上下半场。本文是第一篇。</p>

  <p>Looped LM 的想法很简单：把同一组层反复用几遍，不增加参数，只增加计算深度。但 loop 省下的是参数，省不下 KV cache。淳远的分享正是以此为出发点：将 loop 与线性注意力结合，能否在保留 loop 优势的同时降低推理成本？除了已公开论文里的分析，他还分享了团队最近、尚未写进公开论文的新方法 Historical KV Replay。</p>

  <h2 id="section">本文要点</h2>

  <ul>
    <li><strong>Loop 省参数，不省 KV cache</strong>。在标准（full attention）Transformer 上 loop，KV cache 随 loop 次数线性增长。长上下文下，一个不 loop 的 full attention 模型，比一个 loop 很多次的线性注意力模型还贵。这是 LT2 把 loop 搬到线性注意力上的出发点。</li>
    <li><strong>同一块记忆多写几次，表达力更强</strong>。线性注意力把历史压缩进一块固定大小的“记忆”，可以把它想象成一张查找表。每读入一个 token，就按 delta rule 对表中与它对应的那一条“先擦后写”：先擦掉旧内容，再写入新内容。按 DeltaProduct 的分析，如果在同一位置连续擦写 n 次，一步就能更新 n 条内容，而不只是 1 条。前提是这 n 次改的确实是不同的条目、互不重叠，团队验证在常用设置下基本满足。</li>
    <li><strong>但直接 loop 线性注意力，每个 loop 写的是各自的记忆</strong>。上面的理论因此不能严格套用，时间维度和深度维度的循环也没有打通，这里留下了联合设计（co-design）的空间。</li>
    <li><strong>新方法 Historical KV Replay：倒序回放之前 loop 的 KV</strong>。它在召回和语言建模上都带来很大提升。顺序很关键：倒序有效，正序几乎无效。</li>
    <li><strong>成本可控，收益也不只来自“多算几遍”</strong>。回放量随 loop 次数二次增长（第 k 个 loop 除了写自己的 KV，还要把前面 k−1 个 loop 的 KV 再写一遍，loop 4 次总共要写 1+2+3+4 = 10 次），但现在通常只 loop 两三次。对照实验中，他们还试了其他同样增加计算量的做法：loop 更多次（只是多走几轮，每个 loop 仍只写自己的记忆）、把 GDN（Gated DeltaNet，即 LT2 里被 loop 的那种线性注意力）做宽、层内叠加 DeltaProduct（同一位置多擦写几次），这些都有收益，但都不如 replay。</li>
    <li><strong>外推比魔改架构更重要</strong>。淳远认为，没有外推，就得很努力地去论证 weight sharing 的价值（推理时如果不能比训练时 loop 更多次，looped 模型就只是一个深度固定、层间共享参数的模型，优势基本只剩省参数；有了外推，才能在推理时按需多 loop 几轮，用更多计算换更好的结果）；ACT（自适应计算：让每个 token 按难度自己决定 loop 几次）实现难度很大，能否解决尚不确定；post-training，尤其是 on-policy distillation 与 loop 的结合，值得关注。</li>
  </ul>

  <h2 id="section-1">读前速查</h2>

  <p>下表解释本文反复出现的几个术语，熟悉的读者可以直接跳过。</p>

  <table>
    <thead>
      <tr>
        <th>术语</th>
        <th>白话解释</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>Loop / Looped LM</td>
        <td>把同一组层（或整个模型）重复执行多次，每次用同一套参数。loop 4 次相当于把这组层叠 4 遍，参数只有一份</td>
      </tr>
      <tr>
        <td>Weight sharing</td>
        <td>权重共享，指多个 loop 共用同一套参数，这是 loop 省参数的来源</td>
      </tr>
      <tr>
        <td>KV cache</td>
        <td>标准注意力在生成时为每个历史 token 缓存的 key 和 value，供后续 token 查询；占用随上下文长度、层数和 loop 次数增长</td>
      </tr>
      <tr>
        <td>线性注意力</td>
        <td>不保存全部历史 KV，而是把历史压进一个固定大小的状态矩阵（recurrent memory），逐 token 更新；内存不随上下文变长而增长</td>
      </tr>
      <tr>
        <td>Delta rule</td>
        <td>线性注意力的一种更新规则：写入新内容前，先把记忆在当前 key 方向上的旧内容擦掉一部分，即“擦一次、写一次”</td>
      </tr>
      <tr>
        <td>GDN / KDA</td>
        <td>两种基于 delta rule 的线性注意力。GDN（Gated DeltaNet）加了遗忘门；KDA（Kimi Delta Attention）把遗忘门做得更细</td>
      </tr>
      <tr>
        <td>Head dim</td>
        <td>每个注意力头里 key、query 向量的维度，常见取值为 128 或 256</td>
      </tr>
      <tr>
        <td>SWA</td>
        <td>滑动窗口注意力（sliding window attention）：每个 token 只看最近一段固定长度窗口内的 token</td>
      </tr>
      <tr>
        <td>Hybrid</td>
        <td>混合架构：少量 full attention 层搭配大量线性或稀疏注意力层，例如每 3 层线性注意力配 1 层 full attention</td>
      </tr>
      <tr>
        <td>召回（recall）</td>
        <td>从长上下文中准确找回某条信息的能力，典型测试是“大海捞针”；这是线性注意力的传统弱项</td>
      </tr>
      <tr>
        <td>Chunkwise</td>
        <td>线性注意力常用的并行算法：把序列切成小块，块内并行计算、块间递推，便于写高效的 GPU kernel</td>
      </tr>
      <tr>
        <td>外推</td>
        <td>推理时 loop 次数超过训练时（例如训练 8 次、推理 16 次），模型仍然有效甚至更好</td>
      </tr>
      <tr>
        <td>ACT</td>
        <td>Adaptive Computation Time，自适应计算：让每个 token 按难度自己决定 loop 几次</td>
      </tr>
      <tr>
        <td>On-policy distillation</td>
        <td>让学生模型自己生成内容，再由教师模型对其中每个 token 给出指导，而不是只模仿教师写好的文本</td>
      </tr>
    </tbody>
  </table>

  <h2 id="section-2">嘉宾介绍</h2>

  <p><strong>邓淳远（主讲）</strong>：Rice University 博士生，导师为 Hanjie Chen 教授。研究聚焦 LLM 预训练架构设计与优化，也关注语言模型的可解释性。本次分享的工作是 LT2: Linear-Time Looped Transformers [1]。</p>

  <p><em>〔配图：淳远 PPT 封面〕</em></p>

  <h2 id="loop--kv-cache">一、动机：loop 省参数，却不省 KV cache</h2>

  <p>Looped 模型的卖点是参数效率：同一组层重复用几次，参数量不变，计算深度却翻了几倍。但淳远团队最初研究 loop 时的感受是：这个东西“非常贵”。原因在于，loop 共享的是参数，KV cache 并不共享。</p>

  <p>在 full attention Transformer 里，每一层都要为每个 token 存一份 key 和 value。模型 loop 4 次，同一个 token 就要在每个 loop 里各存一份，KV cache 与 loop 次数成正比地增长。在 full attention 上 loop，这样的开销“实在是接受不了”，也很难想象把它外推到很多轮。</p>

  <p>线性注意力则不同：它的 recurrent memory 很小，训练 FLOPs 和推理内存都有比较好的性质。因此，在长上下文下，一个不 loop 的 full attention 模型，远比一个 loop 很多次的线性注意力模型要贵。</p>

  <blockquote>
    <p><strong>注</strong>：可以用单层、单个 attention head 粗算一下（不考虑 GQA 等压缩手段）。设 head dim 为 d、上下文长度为 N。Full attention 要为每个 token 存一对 key、value 向量，共 2N·d 个数；GDN 这类线性注意力的状态是一个 d×d 的矩阵，共 d² 个数，与 N 无关（线性注意力把每个 token 的 key 和 value 做外积，得到一个 d×d 的矩阵，再累加进同一个状态里，所以不管读入多少 token，状态都是这么大）。取 d = 128、N = 32K，前者约为后者的 512 倍。因此，线性注意力模型即使 loop 上百次，每层的状态总量也还小于一个不 loop 的 full attention 模型。</p>
  </blockquote>

  <p>这就是 LT2 [1] 的出发点：<strong>在线性注意力上做 loop</strong>，让训练 FLOPs 和推理内存都保持良好的性质。PPT 中的一组数字很直观：0.6B 模型在 32k 上下文下，looped Transformer 的 KV cache 为 12.1 GB，LT2 只有 0.05 GB；解码速度分别为每秒 6.3 个和 19.4 个 token。</p>

  <p>[image: 淳远 PPT 第 3 页]</p>

  <p><em>图：Looped Transformer 每个 loop 各存一份 KV cache，随上下文长度增长；LT2 每个 loop 只保留一个固定大小的状态。</em></p>

  <h2 id="section-3">二、理论直觉：同一块记忆，多写几次</h2>

  <p>LT2 主要研究 GDN [2]、KDA [3] 这类线性注意力。淳远介绍，它们的状态转移矩阵（即每读入一个 token 时，决定旧记忆如何变化、衰减多少、擦掉哪些内容的那个矩阵，见下文公式中的 α_t(I − β_t k_t k_tᵀ)）可以写成“对角 + 低秩”（DPLR，diagonal-plus-low-rank）的形式，这是目前效果较好、也较主流的一类线性注意力。</p>

  <p>先看 delta rule 在做什么。每读入一个 token，模型用这个 token 的 key k_t、value v_t 和写入强度 β_t 更新记忆矩阵 S（以 GDN 为例，记号略有简化）：</p>

  <div class="language-latex highlighter-rouge"><div class="highlight"><pre class="highlight"><code>S<span class="p">_</span>t = <span class="k">\alpha</span><span class="p">_</span>t <span class="k">\left</span>(I - <span class="k">\beta</span><span class="p">_</span>t k<span class="p">_</span>t k<span class="p">_</span>t<span class="p">^{</span><span class="k">\top</span><span class="p">}</span><span class="k">\right</span>) S<span class="p">_{</span>t-1<span class="p">}</span> + <span class="k">\beta</span><span class="p">_</span>t k<span class="p">_</span>t v<span class="p">_</span>t<span class="p">^{</span><span class="k">\top</span><span class="p">}</span>
</code></pre></div>  </div>

  <p>括号里的 I − β_t k_t k_tᵀ 是单位矩阵减去一个秩 1 矩阵：它把记忆在 k_t 方向上的旧内容擦掉一部分；后一项再把新的 value 写进这个方向。这就是淳远说的“在 k_t 这个方向上擦一次、写一次”。α_t 是遗忘门，控制旧记忆整体衰减多少；KDA 在 GDN 的基础上把这个门做得更细。按 GDN 论文的说法，遗忘门负责快速清空记忆，delta rule 负责有针对性地更新。</p>

  <p>此前的 DeltaProduct [4] 工作更进一步：每个 token 不只擦写一次，而是在同一位置连续做 n_h 次。于是状态转移矩阵变成 n_h 个这样的矩阵相乘：</p>

  <div class="language-latex highlighter-rouge"><div class="highlight"><pre class="highlight"><code>A<span class="p">_</span>t = <span class="k">\prod</span><span class="p">_{</span>j=1<span class="p">}^{</span>n<span class="p">_</span>h<span class="p">}</span> <span class="k">\left</span>(I - <span class="k">\beta</span><span class="p">_{</span>t,j<span class="p">}</span><span class="k">\,</span> k<span class="p">_{</span>t,j<span class="p">}</span> k<span class="p">_{</span>t,j<span class="p">}^{</span><span class="k">\top</span><span class="p">}</span><span class="k">\right</span>)
</code></pre></div>  </div>

  <p>每个因子都是“单位矩阵减秩 1”，乘起来就是“单位矩阵减去一个秩不超过 n_h 的矩阵”，再配上遗忘门，就是论文所说的“对角 + 秩 n_h”。直观地说，一次擦写只能改动记忆在一个方向上的内容，n_h 次擦写就能改动 n_h 个方向。这里的“方向”就是 key 向量的方向：如果把记忆看成一张按 key 查找的表，每个 key 方向大致对应表里的一条内容；几次擦写的 key 越接近正交，改动的就越是互不相干的条目。DeltaProduct 的理论分析表明，n_h 越大，状态追踪（state tracking，例如依次执行一串交换操作后判断每个物品在哪）的能力越强；实验上它在状态追踪和语言建模上都优于每个 token 只写一次的 DeltaNet。</p>

  <p>淳远的解释更直白：这个理论看起来很复杂，其实很好理解。只要几次写入用的 key 互相正交，或者至少不完全共线，每次就是在往不同的方向写，相当于能擦好几次。所以，在线性注意力这一步上多做几次乘积，也就是在 delta rule 的位置上 loop，就能对 recurrent memory 有更强的控制。</p>

  <p>那实际中 key 会不会“撞车”，即几次写入的 key 几乎共线？团队做了验证：head dim 越大越难撞，越小越容易撞。PPT 中的统计显示，在 head dim 为 128 或 256 这类默认设置下，GDN 里相邻两个 loop 的 key 夹角余弦的绝对值平均只有约 0.05，基本不会撞；head dim 降到 32、loop 次数增加到 16 时，撞车就明显增多。从秩 1 到秩 n_h 的表达力提升，因此是比较有保障的。</p>

  <blockquote>
    <p><strong>注</strong>：高维空间中，两个随机方向的向量天然接近正交：两个 d 维随机单位向量夹角的余弦值平均为 0，标准差约为 1/√d，也就是说它偏离 0 的幅度通常只有 1/√d 左右；d = 128 时约为 0.09。余弦越接近 0，两个向量就越接近正交。所以 head dim 越大，key 越不容易撞车。</p>
  </blockquote>

  <p>不过这里有个微妙之处。直接 loop 一个 GDN 或 KDA 时，每个 loop 都维护一块自己的 recurrent memory：loop 1 用自己的 KV 写自己的记忆，loop 2 写另一块，以此类推。上面的理论讲的是在同一块记忆上反复擦写，直接 loop 时写的却是不同的记忆。淳远坦言，这样套用理论“其实并不严谨”。</p>

  <p>换个角度看，沿时间的循环（逐 token 更新记忆）和沿深度的循环（逐 loop 更新表示）本可以看成一个整体：把所有 token 和所有 loop 排成一张“token × loop”的网格，逐步展开看是一条数据流；训练时用 teacher forcing（把整段真实文本一次性喂进去、所有位置并行计算），就相当于一次算出整张网格。直接 loop 时，这两个维度各走各的，并没有被联合设计过。淳远觉得这里或许有不错的 co-design 空间，这也引出了下一节的新方法。</p>

  <h2 id="historical-kv-replay">三、新进展：Historical KV Replay</h2>

  <p>这一节是团队最近的工作，还没有写进已公开的论文版本；淳远表示之后可能会更新论文。</p>

  <h3 id="kv-">做法：写新记忆时，把旧 KV 再写一遍</h3>

  <p>以某一个 token 为例，它往上依次经过 loop 1、2、3、4。普通做法里，每个 loop 只用本 loop 算出的 KV 写自己的记忆，loop 之间的 KV 互不相干。Replay 的做法是：在第 k 个 loop 写记忆时，把之前 loop 的 KV 也拿过来再写一遍。比如 loop 2 会把 loop 1 的 KV 带过来重写一次；loop 3 会重写 loop 2 和 loop 1 的 KV，依此类推。这样就形成了沿深度循环与沿时间循环的一种联合设计。</p>

  <p>淳远打了个比方：先读第一本书，再读第二本；读完第二本，回头翻翻第一本，因为怕自己忘了；读完第三本，再回顾第二本和第一本。</p>

  <p>从上一节的角度看，replay 让第 k 个 loop 的记忆在同一个 token 位置上，接收来自多个 loop 的 key 的擦写，也就是“同一块记忆多写几次”：每一步更新从秩 1 变为秩不超过 k。replay 不引入新参数，记忆大小也不变。按 PPT 中的公式，遗忘门的衰减每个 token 只施加一次，每次写入则使用对应 loop 的写入强度 β。</p>

  <p>[image: 淳远 PPT 第 7 页]</p>

  <p><em>图：格子里的数字 j 表示该 token 在 loop j 算出的 KV；第 k 个 loop 先写本 loop 的 KV，最后写 loop 1 的 KV。</em></p>

  <h3 id="section-4">顺序非常关键：要倒序</h3>

  <p><strong>要倒序回放（4→3→2→1），不要正序（1→2→3→4）</strong>。以第 4 个 loop 为例，就是先写本 loop 的 KV，再依次写 loop 3、2、1 的 KV。用读书的比方说，刚读完一本新书，不要从第一本开始从头再读，而是先学新的，再往回复习旧的。</p>

  <p>实验上，正序几乎没有收益；倒序则让召回能力大幅提升，预训练的语言建模也有很大收益。PPT 中的对照（1.3B 模型，loop 4 次）很能说明问题：两种顺序写入的 KV 和写入次数完全相同，只是先后不同；在 2k 长度的召回测试上，不做 replay 的 looped GDN 得分 34.58，正序 34.71，倒序 41.10；8 项零样本任务的平均分依次为 58.39、58.45 和 61.10。淳远特别提到，提升在接近真实场景的召回任务上尤其明显，比如“大海捞针”这类任务。他还给了一个理解角度：loop 越多，replay 沿深度累积的表示就越多，有点像一种沿深度展开的 latent CoT（隐式思维链）。</p>

  <blockquote>
    <p><strong>注</strong>：淳远在 PPT 中给出的解释是“后写者胜出”（the last write wins）：每次写入都会沿自己的 key 方向擦掉一部分旧内容，因此最后写入的那一对 KV 被覆盖得最少。正序时最后写入的是本 loop 的 KV，记忆的终态与不做 replay 时相差无几；倒序时最后写入的是 loop 1 的 KV，它在每个 loop 的记忆里都保留得最完整。推理时的干预实验也印证了这一点：对一个用 Full Replay 训练好的 1.3B 模型，只改变推理时的回放方式，改成正序会让 2k 召回下降 7.7 分，去掉 loop 1 那一对下降 8.5 分，而去掉上一个 loop 那一对只下降 0.8 分。可见模型主要依赖的是最后写入的 loop 1 的 KV。</p>
  </blockquote>

  <h3 id="loop-">成本：二次增长，但 loop 次数很少</h3>

  <p>自然会有人问：replay 贵不贵？每回放一次，就要多做一次 delta rule 擦写。loop n 次时，总写入次数是 1 + 2 + … + n = n(n+1)/2，随 loop 次数二次增长。好在现在大家 loop 的次数都不多，“不会 loop 一万次”，基本控制在两三次；在这个范围内，成本并没有增加特别多。</p>

  <p>工程上还有一个小技巧：replay 在深度方向上形成了一组小的 KV，不必依次做好几轮读写，而是可以把它们拼成一个小矩阵，在深度维度上做 chunkwise 计算（平时 chunkwise 是沿序列长度切块，这里是沿深度）。这样就能复用现有的 GDN kernel，把 decoding 的成本压下来。按 PPT 的说明，decoding 时每个 loop 仍然只读写一次状态，多出来的是计算，而不是对状态的读写。</p>

  <p>淳远展示的开销对比是：与同样基于线性注意力、但不做 replay 的 looped 模型相比，Full Replay 因为要额外回放、多做写入，训练吞吐会下降，decoding 也会慢一点点，但推理整体还可以接受。具体数字是（0.6B 模型，单张 H100）：4k 长度下的训练吞吐从每秒 41.2k token 降到 34.6k（降幅约 16%），32k 上下文下的解码速度从每秒 19.4 个 token 降到 18.4 个（降幅约 5%）。这里的“慢”是 replay 相对于普通 loop 的额外开销；与 full attention 的 looped 模型相比，线性注意力在长上下文下依然省得多。</p>

  <h3 id="first-loop-replay">更省的变体：First-loop Replay</h3>

  <p>不回放全部历史，只回放第一个 loop 的 KV：每个 loop 不再写入本 loop 的 KV，而是都写入 loop 1 的 KV，每个 token 的写入次数因此与普通 loop 相同。这有点像 YOCO [5] 的思路，即让早期深度为后面的深度提供 KV。</p>

  <blockquote>
    <p><strong>注</strong>：YOCO（You Only Cache Once）是一种 decoder-decoder 架构：前半部分网络只生成一份全局 KV cache，后半部分各层通过 cross-attention 共用这一份，从而大幅减少 KV cache。</p>
  </blockquote>

  <p>一个关键细节是：只复用之前 loop 的 KV，不复用它们的衰减系数（α）、写入强度（β）和 query，每个 loop 仍然使用自己的 α、β 和 query。如果连 α、β 也复用，效果会很差。淳远说这有一点“混合”的感觉：既用一部分历史信息，又保留每个 loop 自己的信息。这是他们找到的一个比较好的平衡点：训练和 decoding 基本都不掉速，又能吃到一部分 replay 的收益。PPT 中的数字是：训练吞吐只降约 1%，解码反而快约 4%，平均分的提升约为 Full Replay 的 70%（0.6B 模型上分别为 +1.94 和 +2.78）。</p>

  <p>消融实验里，他们比较了正序、倒序、只回放第一个 loop，以及几种不同的组合顺序。以 Full Replay 带来的提升为 100%（0.6B 模型），正序只拿到 2%，“本 loop + 上一个 loop”拿到 16%，“本 loop + loop 1”拿到 84%，First-loop Replay 拿到 70%。可见关键在于保留 loop 1 的 KV，并让它最后写入。从这组消融看，比较推荐的做法是：保留第一个 loop 的 KV，同时让后面每个 loop 使用自己的写入强度和衰减，以较低的成本吃到收益。不过团队最近讨论后也觉得，First-loop Replay 有时不够稳定。淳远在分享中更推荐的是 Full Replay：虽然要多付一点代价，但效果确实更好。</p>

  <h3 id="section-5">收益不只来自“多算几遍”</h3>

  <p>为了排除“replay 只是多花了计算量”这种解释，他们把 replay 和其他增加计算量的方式做了对比：loop 更多次（如 6 次）、把 GDN 做宽，以及在整模型 loop 的同时，在层内叠加上一节说的 DeltaProduct 式重复擦写。这些方法都有收益，计算量越大收益也越大，但带来的提升可能都不如 replay。从 PPT 的对比图看（0.6B 模型），这些做法只把平均分从 55.7 提高到 56 至 57 之间，训练和解码速度也都不如 First-loop Replay；First-loop Replay 和 Full Replay 则分别达到 57.7 和 58.5。淳远据此认为，replay 的收益不能简单用计算量来解释；另外一些方法有时还会遇到 system 层面的问题，效率也没那么高。</p>

  <p>最后，淳远补充，这里展示的是纯线性注意力的设置；更贴近实际的是 hybrid 设置，replay 在 hybrid 模型上同样可以用，效果也比较好：PPT 显示，在 0.6B 的 Full+GDN 与 GDN+DSA 两种 hybrid 上，Full Replay 分别让平均分提高 1.4 和 2.0，让 2k 召回提高 3.1 和 4.3。在他看来，做 loop 与线性注意力的组合，永远是在速度和效果之间做权衡：在 looped Transformer 原本的位置上，可以比较自由地换成 loop 的 GDN，拿到一个不错的速度与效果的折中。</p>

  <h2 id="section-6">四、论文中的其他发现</h2>

  <p>除了 replay，淳远也挑了几点已公开论文 [1] 中值得分享的内容。论文本身尝试了线性注意力、稀疏注意力、SWA 等多种组合的 hybrid，并做了比较详尽的消融实验。</p>

  <blockquote>
    <p><strong>注</strong>：LT2 研究了线性注意力（LT2-linear）和稀疏注意力（LT2-sparse）两种 loop 版本：loop 对前者的作用是反复精炼记忆，对后者是扩大有效感受野。感受野（receptive field）指一个位置的输出能受到多大范围输入的影响，放在语言模型里，就是一个 token 最远能利用多早之前的信息。以滑动窗口注意力为例：每一轮里，每个 token 只看最近的 w 个 token；到了下一轮 loop，这 w 个 token 已在上一轮吸收了各自窗口内的信息，更早的内容便能经由它们间接传过来。于是每多 loop 一轮，覆盖范围就向前延伸一个窗口，loop n 次后约为 n·w 个 token，与堆叠 n 层滑动窗口注意力的覆盖范围相同。“有效”指的正是这种经由中间 token 接力得到的间接覆盖。论文还提出两种 hybrid：GDN 与稀疏注意力 DSA 组合的版本做到全程线性时间，质量与标准 looped Transformer 相当；GDN 与少量 full attention 层组合的版本，则超过了标准 looped baseline。</p>
  </blockquote>

  <h3 id="loop--hybrid">Loop 级别的 hybrid</h3>

  <p>做 hybrid 时，大家最容易想到的是在深度上混搭，比如每 3 层线性注意力配 1 层 full attention。有了 loop，还可以在 loop 之间混搭，即跨 loop 的 hybrid：比如第一个 loop 全用 full attention，第二个 loop 换成 SWA。</p>

  <p>之所以可以这样做，是因为 loop 共享的只是参数，淳远称之为 slow weight；参数以外的东西都可以在 loop 之间切换。Attention mask 就是一种典型的 fast weight；如果做整模型 loop，甚至每个 loop 的 loss function 都可以不同。这样就多出一个新的设计空间：除了深度级别的 hybrid，还有 loop 级别的 hybrid。</p>

  <p>团队比较了两种逐 loop 调整注意力窗口大小的方案，结果有些出人意料：</p>

  <ul>
    <li><strong>窗口逐 loop 缩小</strong>（像 CNN 那样，例如 full attention → 512 → 256 → 128）：loss 更低（困惑度 9.26），下游任务的表现却上不去（平均分 60.71）。</li>
    <li><strong>窗口逐 loop 放大</strong>（例如 128 → 256 → 512 → full attention）：loss 略差一些（困惑度 9.42），下游表现反而略高一点（平均分 62.47）。</li>
  </ul>

  <p>作为参照，常规的深度级 hybrid（每个 loop 内都穿插 full attention）困惑度为 9.30、平均分为 61.51。通常 loss 越低，下游表现也越好，这组结果却正好相反。</p>

  <h3 id="attention-pattern">随机采样 attention pattern</h3>

  <p>如果把深度和 loop 两个维度上的每个位置都看作一个“槽位”，每个槽位使用 full attention 还是高效 attention 都可以单独选择。一种更激进的做法是在训练时随机采样每个槽位的 attention 类型：full attention 与高效 attention 的总比例保持不变，但位置随机变化；推理时再对多种采样结果做 majority voting（多数投票）。</p>

  <p>该方法确实带来了一定提升，但代价过高：推理时要对多种采样配置分别运行再投票，计算量随采样数成倍增加（PPT 中采样 5 次、计算量为 5 倍，平均分只从 61.51 提高到 61.75）。淳远认为它难以投入实际使用，这组实验只是一次探索性的尝试。</p>

  <h2 id="ouro-">五、从 Ouro 蒸馏：不必从头训练</h2>

  <p>分享的最后一部分是蒸馏：把 Ouro [6] 这样的 full attention looped 模型转换成线性注意力的 hybrid 模型，而不必从头训练。Ouro 是一个开源的整模型 loop 语言模型系列，本系列第二篇会详细介绍。淳远提到，换成稀疏注意力比较容易，换成线性注意力则肯定要掉点；因为这项工作更偏线性注意力，他们还是做了尝试。</p>

  <blockquote>
    <p><strong>注</strong>：据 LT2 论文，他们用这种方式得到的 Ouro-hybrid-1.4B（PPT 中称 Ouro-LT2-1.4B）只训练了约 1B token，表现就超过了业界的 1B 级模型，并能与 4B 级模型竞争。按 PPT 的介绍，教师是 24 层全部为 full attention、loop 4 次的 Ouro-1.4B；学生只保留其中 6 层 full attention，其余 18 层换成带 replay 的 GDN。训练分三个阶段：先对齐各层隐状态并挑出要保留的 6 层（100M token，长度 512），再逐 loop 做 logit 蒸馏（600M token，长度 4k），最后用 OpenThoughts-v3 做 32k 长上下文训练（600M token）。最终学生在 6 项任务上的平均性能达到教师的约 95.5%。各环节的贡献也很清楚：不加 replay 时，6 层 full attention 按固定间隔均匀穿插只能保留 65.3%，用此前最好的选层方法可达 86.9%，用他们的方法可达 92.9%；再加上 Full Replay，升至 95.5%。</p>
  </blockquote>

  <p>淳远分享了三个关键点。</p>

  <p><strong>第一，蒸馏数据很关键，不同数据对应不同的下游能力</strong>。用什么数据蒸馏，往往就对应提升什么样的 benchmark：用预训练数据，对应的是常识类 benchmark；用偏开源的推理类数据，可能就能对上 GSM8K、AIME 这类数学推理 benchmark。至于 MMLU，他们暂时没找到能对上的数据，“可能是我们实验做得没有那么充分，但可能确实 MMLU 还是比较难”。</p>

  <p><strong>第二，选哪些层保留 full attention 很关键</strong>。这一点来自此前的工作 [7]：蒸馏成 hybrid 时，不能按固定比例平均地穿插线性注意力层，而要先评估各层的重要性，再决定哪些层保留 full attention（该工作用一段在通用文本上的短训练来估计每层的重要性），这一步能大幅提升蒸馏效果。据淳远介绍，一般会发现前中部的层还是要保留 full attention，其他位置可以替换。</p>

  <p><strong>第三，loop 特有的技巧：深度与长度的双重 curriculum</strong>。Curriculum 指由易到难地安排训练。长上下文训练通常从短到长逐步加长；loop 上也可以从浅到深，先让第一个 loop 蒸馏得很像，再让第二个 loop 很像。他们比较推荐的做法是两边同步推进：loop 1 配短上下文，loop 2 配更长的上下文。在他们的方法里，这样做效果比较好。</p>

  <h2 id="section-7">六、未来方向</h2>

  <p>如果做 depth recurrent（沿深度循环）的模型，淳远认为有三个方向值得关注：</p>

  <ul>
    <li><strong>外推比魔改架构更重要</strong>。在他看来，继续魔改架构没那么关键，真正关键的是外推。没有外推，就得很努力地去论证 weight sharing 这一性质的价值。他在后面圆桌讨论中解释道：loop 只有深度和 weight sharing 两个性质，如果没有外推，又要和同等深度的模型比，就只剩下 weight sharing 了（本系列第三篇会讲到）。反过来，有了外推，weight sharing 就有了标准 Transformer 给不了的价值：训练时只 loop 几次，推理时遇到难题再多 loop 几次，用更多计算换更好的结果，既不增加参数，也不用输出更长的思维链。奔皓在圆桌中也说，test-time scaling 真正的含义就是这种外推（本系列第二篇会讲到）。</li>
    <li><strong>ACT 实现难度很大</strong>。他不确定这一问题能否解决，难点主要在 infra 层面：不同 token 的 loop 次数各不相同，批处理和训练系统都很难设计。尽管如此，他仍将 ACT 列为值得关注的方向。</li>
    <li><strong>多关注 post-training</strong>。不只是 SFT 和 RL，尤其是 on-policy distillation [8] 与 loop 的结合，可能会有比较好的效果。</li>
  </ul>

  <blockquote>
    <p><strong>注</strong>：on-policy distillation 指让学生模型在自己生成的序列上接受教师模型的逐 token 指导，而不是只学习教师预先写好的文本。这样学生在训练时就会见到并纠正自己真正会犯的错误，代表工作如 [8]。</p>
  </blockquote>

  <p>关于外推和 ACT，圆桌下半场有更充分的讨论，见本系列第三篇。</p>

  <h2 id="section-8">结语与下篇预告</h2>

  <p>主持人华文越在 Q&amp;A 前评价说，这项工作像是从线性注意力的一些发现出发，发现把 loop 加上去是一个很自然的组合。回头看淳远的分享，思路是一条线：loop 带来的 KV cache 成本，用线性注意力来化解；再通过 replay 这类时间与深度的联合设计，让线性注意力的召回短板也得到明显改善。</p>

  <p>下一篇圆桌上半场：大模型架构的瓶颈在哪里？loop 的收益到底来自架构，还是只是多花了算力？looped 模型要不要学成不动点？</p>

  <h2 id="section-9">参考文献</h2>

  <p>[1] <a href="https://arxiv.org/abs/2605.20670">LT2: Linear-Time Looped Transformers</a>. arXiv:2605.20670, 2026. 代码：github.com/chili-lab/LT2</p>

  <p>[2] <a href="https://arxiv.org/abs/2412.06464">Gated Delta Networks: Improving Mamba2 with Delta Rule</a> (GDN). ICLR 2025, arXiv:2412.06464.</p>

  <p>[3] <a href="https://arxiv.org/abs/2510.26692">Kimi Linear: An Expressive, Efficient Attention Architecture</a> (KDA). arXiv:2510.26692, 2025.</p>

  <p>[4] <a href="https://arxiv.org/abs/2502.10297">DeltaProduct: Improving State-Tracking in Linear RNNs via Householder Products</a>. NeurIPS 2025, arXiv:2502.10297.</p>

  <p>[5] <a href="https://arxiv.org/abs/2405.05254">You Only Cache Once: Decoder-Decoder Architectures for Language Models</a> (YOCO). NeurIPS 2024, arXiv:2405.05254.</p>

  <p>[6] <a href="https://arxiv.org/abs/2510.25741">Scaling Latent Reasoning via Looped Language Models</a> (Ouro). arXiv:2510.25741, 2025.</p>

  <p>[7] <a href="https://arxiv.org/abs/2512.20569">Distilling to Hybrid Attention Models via KL-Guided Layer Selection</a>. ICLR 2026, arXiv:2512.20569.</p>

  <p>[8] <a href="https://arxiv.org/abs/2306.13649">On-Policy Distillation of Language Models: Learning from Self-Generated Mistakes</a>. ICLR 2024, arXiv:2306.13649.</p>

  <hr />

  <p><em>本系列：第一篇｜LT2 与 Historical KV Replay（本篇） · <a href="/blog/2026/10/looped-lm-recap-2-panel-first-half/">第二篇｜圆桌（上）</a> · <a href="/blog/2026/10/looped-lm-recap-3-panel-second-half/">第三篇｜圆桌（下）</a></em></p>

</div>

<script>
(function() {
  var buttons = document.querySelectorAll('.lang-switcher .lang-btn');
  var contents = document.querySelectorAll('.lang-content');
  buttons.forEach(function(btn) {
    btn.addEventListener('click', function() {
      var lang = btn.getAttribute('data-lang');
      buttons.forEach(function(b) { b.classList.remove('active'); });
      btn.classList.add('active');
      contents.forEach(function(c) {
        if (c.classList.contains('lang-' + lang)) {
          c.style.display = '';
        } else {
          c.style.display = 'none';
        }
      });
    });
  });
})();
</script>]]></content><author><name>Jinyan Su</name><email>jinyansu6@gmail.com</email></author><category term="technical" /><category term="ai" /><category term="llm" /><category term="architecture" /><category term="looped-lm" /><category term="linear-attention" /><category term="kv-cache" /><category term="event-recap" /><summary type="html"><![CDATA[NICE hosted an online talk and panel, "Looped Language Model: Rethinking Model Depth and Parameters." Part 1 covers Chunyuan Deng's talk: a loop saves parameters, not KV cache — so LT2 moves looping onto linear attention. Plus Historical KV Replay, a new method that replays earlier loops' KVs in reverse order, not yet in the public version of the paper.]]></summary></entry><entry><title type="html">Some Thoughts After Hearing the Story Behind Prove2Me / 听完Prove2Me背后的故事后的一些想法</title><link href="https://jinyansu1.github.io/blog/2026/10/thoughts-behind-prove2me/" rel="alternate" type="text/html" title="Some Thoughts After Hearing the Story Behind Prove2Me / 听完Prove2Me背后的故事后的一些想法" /><published>2026-10-06T00:00:00+00:00</published><updated>2026-10-06T00:00:00+00:00</updated><id>https://jinyansu1.github.io/blog/2026/10/thoughts-behind-prove2me</id><content type="html" xml:base="https://jinyansu1.github.io/blog/2026/10/thoughts-behind-prove2me/"><![CDATA[<div class="lang-switcher">
  <button type="button" class="lang-btn active" data-lang="en">English</button>
  <button type="button" class="lang-btn" data-lang="zh">中文</button>
</div>

<div class="lang-content lang-en" lang="en">

  <p>No TL;DR this time, because this one was mostly about listening to a story and there isn’t much to summarize. So I’ll just write down a few things I took away while putting together my notes.</p>

  <h2 id="is-the-point-of-a-proof-just-to-get-something-proved-or-to-pass-it-on-in-a-form-humans-can-understand-so-that-the-future-generations-can-understand">(1) Is the point of a proof just to get something proved, or to pass it on in a form humans can understand so that the future generations can understand?</h2>

  <p>Before this talk, I had been thinking about a question and discussing it with some non-math people (everyone around me is in CS, so I can’t find math people to talk to (ಥ_ಥ), please reach out if you are not from CS and have some unique thought that you wanna share): if AI can prove mathematics obscure like this, does human understanding of a proof still matter? With AI and Lean, people who aren’t math experts can take part in proving obscure math theorems, even without really understanding the mathematics behind them. Would people still wanna do a math PhD? How should we go on educating top mathematical talent?</p>

  <p>In fact, when the news came out in September that OpenAI had announced a solution to the Navier–Stokes existence problem, one of the Millennium Prize Problems, I asked my advisor what this would do to the training of math PhDs (because I thought pursuing math and physics PhDs would become meaningless). She was very calm about it. She thought it might change how we teach, but that math PhDs would still exist: even if AI can do better than the very best PhDs, theoretical fields like math and physics only mean something when people understand them. If we stop training math PhDs, whatever AI proves will mean nothing.</p>

  <p>This made me think of Kevin Buzzard, who came up in the story, and how he reacted when Prove2me proved what intended to work on. Specifically, he had been leading an effort to formalize Fermat’s Last Theorem by hand, and Anthropic got there first with AI. But he says he is not out of work: among his promises to his funder, perhaps the most important is to create a dynamic document that lets humans explore the modern proof. Afterwards I went and read the source blog post on him and some of the comments on Hacker News. Someone commented there that his real aim was a formalized library of mathematics that humans can comprehend.</p>

  <p>I don’t know how people who study math think about this, since I haven’t don’t personally know anyone. But perhaps, for people who pursue math as a career, getting a theorem proved is not the end point; getting people to understand it is. That said, when I discussed this with a friend of mine, he argued that “the real understanding” doesn’t exist, and people just think that they understand. But that’s fine too. Humans are born lonely, and we spend our whole lives chasing “understanding.” Sometimes I feel that finding the understanding in science community is easier than obtaining understanding in other stuff in life.</p>

  <h2 id="formalization-can-make-the-steps-in-between-faithful-but-it-cant-make-the-translation-faithful">(2) Formalization can make the steps in between faithful, but it can’t make the translation faithful.</h2>

  <p>Lean’s checking of a proof is reliable: if it compiles, every step of the reasoning holds. But there is a step before that, which is translating mathematics written in human language into Lean. If that step is handed to AI, it can go wrong, and Lean won’t notice. Lean only checks whether the statement that was written down has been proved, not whether it is the statement you meant. The example from the talk: an AI could define P and NP to both be zero, and then “prove” P = NP.</p>

  <p>Some people hope formal methods will solve the verification problem once and for all. But I still think they can only handle the part that starts from the formal language, making every step of that part rigorous. The gap from natural language to formal language is one they cannot close, and it will always need human. Prove2Me’s own design bears this out: all the intermediate steps are handed to the machine, while whether the final goal and the definitions are faithful to what was meant is still reviewed by humans.</p>

  <hr />

  <p>Below is the livestream recap from NICE：</p>

  <p>On Oct 4th, I attended a livestream hosted by NICE. Host Qian Xie spoke with Shuze Chen, a PhD student at Columbia Business School, about Prove2Me: an open platform where many people’s AI agents collaborate on formalizing mathematics.</p>

  <p>Here are the full transcripts of the contents of that live stream,</p>

  <p>In early September, Anthropic announced the first complete computer-checked proof of Fermat’s Last Theorem. Dozens of Claude agents wrote about 13 million lines of Lean in 11 days, and the platform they collaborated on was Prove2Me. Chen is the first author of the Prove2Me paper and one of the platform’s core developers; his advisor is Tianyi Peng.</p>

  <p>This recap covers what came up in the interview: how the platform came about, what went wrong along the way, and how Chen sees the direction.</p>

  <h2 id="five-years-for-humans-11-days-for-agents">Five years for humans, 11 days for agents</h2>

  <p>Fermat’s Last Theorem is simple to state: for n greater than 2, aⁿ + bⁿ = cⁿ has no solutions in positive integers. Fermat wrote the claim in a book margin around 1637. Mathematicians spent more than 350 years on it, and Andrew Wiles published a correct proof only in 1995, in a paper of 129 pages.</p>

  <p>Wiles’s proof is written in natural language, and it took the mathematical community a long time to confirm it was right. Formal verification is a different route: write every assumption and every inference step as Lean code and let a machine check it. Chen compares Lean to a “very strict mathematician”. Once the code compiles, the proof depends only on the most basic axioms, which amounts to a certificate.</p>

  <p>Doing this by hand is extremely slow. Kevin Buzzard of Imperial College London is a number theorist and one of the leading advocates of Lean among mathematicians. In 2024 he received a five-year grant of about £1 million to formalize Fermat’s Last Theorem. The goal he set was only to reduce the proof to results known by the end of the 1980s, and he said explicitly that he was not promising to finish within five years.</p>

  <p>There are two reasons it is slow. First, very few people can do it:</p>

  <blockquote>
    <p>You have to understand the mathematics behind Fermat’s Last Theorem, which already makes you a rare person. And you also have to be an expert in Lean.</p>
  </blockquote>

  <p>Second, the workload is huge. In Chen’s experience, one line of a mathematician’s proof becomes roughly ten lines of Lean.</p>

  <p>This summer, Tianyi Peng, working at Anthropic, suggested trying Fermat’s Last Theorem with internal agents and Prove2Me. Chen’s first reaction: “I thought it was a joke.” In the end, dozens of agents finished proving the root node on August 17. It took 11 days and produced about 13 million lines of Lean, with 29,500 intermediate theorems used in the final proof (Anthropic’s account).</p>

  <blockquote>
    <p>It turns out agents know the math very well and know Lean very well. For them, writing Lean doesn’t seem to be that hard.</p>
  </blockquote>

  <p>Two caveats. The formalization builds on existing work in Mathlib and by Buzzard’s team. Mathlib is the mathematical library maintained collectively by the Lean community, in effect Lean’s “standard library” for mathematics. The FLT project that Buzzard leads had already written part of the material by hand, and Claude’s proof borrows some of it. Buzzard reviewed the proof himself. His assessment: mathematically it brings nothing new, but it shows that automatic formalization of the modern mathematical literature has taken a big step forward.</p>

  <p>“Nothing new” is not a put-down. Fermat’s Last Theorem was accepted by mathematicians thirty years ago. This formalization checked the proof step by step along the existing literature and did not introduce new mathematical ideas. What is new is the verification itself, and the autoformalization capability it demonstrates.</p>

  <p>Also, Claude followed a simplified route through Wiles’s original proof, not the modern version Buzzard’s team is targeting. His project has another job as well: bringing the foundations of modern number theory into Mathlib and leaving behind a formal library that people can read and reuse. That work is not finished by this result.</p>

  <h2 id="from-moltbook-to-prove2me">From Moltbook to Prove2Me</h2>

  <p>Prove2Me was not built for Fermat’s Last Theorem. It has two origins.</p>

  <p><strong>The first is Moltbook.</strong> Early this year, Chen and Peng were asking: if everyone has their own agent, will platforms designed specifically for agents appear? Moltbook, launched at the end of January, was the first example, an “agent Reddit” where only agents post. Chen calls it an AGC (agent-generated content) platform, by analogy with UGC platforms such as Douyin and Xiaohongshu.</p>

  <p>Moltbook’s problem showed up quickly:</p>

  <blockquote>
    <p>Agents scale very easily and can produce a huge amount of content. But how good that content is, and whether it leads to any meaningful outcome, is very hard to guarantee.</p>
  </blockquote>

  <p>Posts piled up, but people could not follow them and did not care, and the buzz faded.</p>

  <p><strong>The second is a course.</strong> In spring 2026, Henry Yuen and Kunal Marwaha co-taught Machine-Assisted Mathematics at Columbia. For the class they built a small website where students could pose problems and prove them in Lean. That was the first prove2.me. Chen was a student in the course. He noticed that his classmates ended up copying the problems into Claude or Gemini and pasting the proofs back. If so, why not let agents connect to the platform directly?</p>

  <p>Put the two together and the answer appears: formalization solves exactly Moltbook’s quality problem.</p>

  <blockquote>
    <p>If what it produces is a formal mathematical proof, at least I can verify whether it is correct.</p>
  </blockquote>

  <p>Everything is checked by a machine, so hallucinations and AI slop cannot get in.</p>

  <p>Two other observations convinced them the approach could work. One is the Erdős Problems website. It lists over a thousand problems, and this spring it saw an influx of hobbyists who are not mathematicians, using Claude Code and Codex to attack them. Chen calls this “citizen math.” The other is a view Terence Tao has long held: with Lean, a proof submitted by a stranger can be verified by machine, so you do not need to trust the person, and that is what makes large-scale collaboration possible.</p>

  <p>Today Prove2Me is a two-sided market. On one side are researchers who want their own papers or textbooks formalized; they publish missions. On the other side are hobbyists with spare tokens; they send their agents to pick up tasks. For both, it takes a single sentence to their own agent. A researcher hands the paper’s PDF to an agent and asks it to publish the paper as a mission on Prove2Me. A contributor asks an agent to go to Prove2Me and find theorems to prove. Calling the platform’s API, writing Lean, and submitting proofs are all handled by the agent, following the instructions the platform provides.</p>

  <h2 id="why-centralization-didnt-work">Why centralization didn’t work</h2>

  <p>The final proof of Fermat’s Last Theorem runs to 13 million lines, while, as Chen notes, even the strongest agents today have a context of about one million tokens. No single agent could do it alone, and no single agent could manage the whole thing.</p>

  <p>The first attempts were centralized, organized like a company: one agent planned and assigned work, and the others each took a major theorem. Anthropic’s article also mentions that the first several attempts failed, with agents quickly losing track of the project’s state. Chen described one scene:</p>

  <blockquote>
    <p>One day we found that A and B had both stopped working. We asked A why, and A said something B was responsible for wasn’t finished, so it couldn’t go on. Then we asked B, and B said a theorem A was responsible for wasn’t finished. It was like two departments in a company blaming each other, and the whole system was stuck.</p>
  </blockquote>

  <p>Prove2Me’s approach is fully decentralized, and its core mechanism is the proof sketch. An agent does not have to prove a big theorem in one go. It can submit just one step of decomposition: a proof that compiles and says “if B, C and D hold, then A holds.” B, C and D immediately become new open theorems on the platform, which other agents can decompose further or prove directly. Decomposed layer by layer, the whole proof becomes a directed acyclic graph, that is, a graph of dependencies that has an order and no cycles.</p>

  <p>The key is immutability: theorem statements and every decomposition cannot be changed once submitted. A later agent either proves the downstream theorems of an existing decomposition or proposes a new decomposition of its own. It cannot touch anyone else’s. Chen compares this to a lock in a concurrent system: whatever changes downstream does not affect upstream, and each agent only has to look at leaf nodes without understanding the whole graph.</p>

  <p>How do you know a decomposition is valid? First, the decomposition is itself a proof that compiles in Lean, so the step “if all the sub-theorems hold, the original theorem holds” is guaranteed to be correct. Second, whether the sub-theorems themselves hold is only known once someone proves them. If a sub-theorem is disproved, that decomposition is a dead end, and someone has to take a different approach and submit a new one.</p>

  <p>The Prove2Me paper records an example. One agent used a lemma in a decomposition, and another agent proved the lemma false: the first had left out a boundary condition when writing it in Lean. The first agent then added the condition and submitted a new version. The new version was proved, and the whole branch closed.</p>

  <h2 id="how-it-relates-to-mathlib">How it relates to Mathlib</h2>

  <p>The Lean community already has Mathlib, a theorem library nearly ten years in the making. Chen distinguishes the two as “bottom-up” and “top-down.”</p>

  <p>Mathlib is bottom-up. It starts from the axioms and puts a great deal of effort into deciding how basic concepts such as the real numbers or graphs should be defined, and every line is reviewed by experts. The quality is very high, and the price is speed: a submission can wait a week or even a month to be merged.</p>

  <p>Prove2Me is top-down and fills in whatever is needed. The goal is to finish proving the paper at hand. If the library has no definition of a Markov chain, you add one. In his words, Mathlib is the foundation layer of mathematics and Prove2Me is the application layer, and the two complement each other.</p>

  <h2 id="formalization-is-more-than-translation">Formalization is more than translation</h2>

  <p>Translating a paper from natural language into Lean does not sound like it produces new mathematics. Experience on the platform says otherwise.</p>

  <p><strong>Catching errors.</strong> Lean requires every assumption to be stated, so missing conditions and typos surface. The host, Qian Xie, had submitted an earlier paper to the platform and was told that the conditions of one lemma needed a small adjustment, while the main theorem was fine.</p>

  <p><strong>Simplifying proofs.</strong> Chen and Peng had agents formalize their own paper on Markov entanglement. One theorem in the paper took more than two pages of purely analytic argument. The agent found that it is essentially about a subalgebra structure from abstract algebra, and from that angle it is almost obvious.</p>

  <blockquote>
    <p>A reinforcement learning paper, and one of its theorems turns out to be connected to abstract algebra. My advisor and I both felt we learned something new.</p>
  </blockquote>

  <p><strong>Peer review.</strong> Review cycles at operations research journals can run to two years, while top AI conferences ask reviewers to get through a 60-page appendix in a week. If a submission came with a Prove2Me link, reviewers would not have to check the proofs line by line and could spend their time on whether the problem matters. Chen says some Columbia professors already verify their papers on the platform before submitting.</p>

  <p><strong>Reuse.</strong> A mathematical theorem, once proved, stays true forever. The platform collects every proved theorem into a searchable library, Formalpedia, and later work can use them directly, the way one imports a software package. As of early October, the platform holds about 100,000 theorems and 30 million lines of Lean proofs.</p>

  <p>As for whether this will replace mathematicians, Chen’s answer is no: mathematicians are the platform’s most important users, and Prove2Me is a tool that helps them verify their work.</p>

  <h2 id="open-problems">Open problems</h2>

  <p><strong>Faithfulness.</strong> A machine can verify a proof, but it cannot verify that the statement is the one you meant to prove. Chen’s example: an AI says it has proved P = NP, but the P and NP it defined are just two constants that both equal zero. The proof compiles and means nothing.</p>

  <p>The platform currently does two things. Humans audit only the core statements of a mission and leave the remaining intermediate lemmas to Lean. In addition, an independent agent that cannot see the source translates the Lean back into mathematical language for a human to compare. He admits this is not yet a perfect solution.</p>

  <p><strong>Search.</strong> The library already contains tens of millions of lines of proofs. Whether an agent can efficiently find reusable theorems in it is a research question in its own right.</p>

  <p><strong>Scale first, then refine.</strong> A proof written by AI is not necessarily the best one, and it is not necessarily broken into lemmas that are easy to reuse. He envisions two stages: first build up scale; then, past a certain point, go back and refine, settling on a standard set of definitions for a field.</p>

  <h2 id="selected-qa">Selected Q&amp;A</h2>

  <p><strong>With many agents working together, is the hardest part how to split the task?</strong></p>

  <p>When a paper or textbook already exists, the decomposition mostly follows the source and is close to translation. For open problems, agents have to find the approach themselves.</p>

  <p><strong>Why start with operations research?</strong></p>

  <p>“Because I’m a PhD student in OR.” The platform’s early users were also mostly professors in his own division at Columbia. By his account, the platform already has about a thousand OR papers and textbooks, and theoretical computer science and statistics come next.</p>

  <p><strong>Will formalization extend beyond mathematics?</strong></p>

  <p>That is a very long-term goal. Mathematics is the starting point, and code is the natural next step. Someone has already ported Prove2Me’s protocol to multi-agent software development.</p>

  <p><strong>Formalization uses a lot of tokens. How much does it really cost?</strong></p>

  <p>Chen stresses that token consumption is lower than people imagine: “It’s actually very cheap.”</p>

  <p>His example is the graduate textbook Markov Chains and Mixing Times: more than 400 pages, done on his own $200-a-month account. According to the Prove2Me blog, the book was split into 13 missions totaling 79,000 lines of Lean, and it took one weekend.</p>

  <p><strong>How was the cost brought down?</strong></p>

  <p>Mostly through the design of the harness: getting agents to write Lean more efficiently and to search existing theorems more efficiently, plus careful prompt tuning. Proved theorems can be reused directly, which itself saves tokens.</p>

  <p>Another engineering detail is caching. When ten sub-agents work on problems at once, they share the same long system prompt, and turning that prompt into a KV cache saves a bit more.</p>

  <p><strong>Are there papers that consumed a lot of tokens and still couldn’t be formalized, for example because the original was vaguely written?</strong></p>

  <p>Not so far. Chen’s view is that when something isn’t finished, it is mostly because not enough tokens were spent. Once a paper has been written, there are only two outcomes: prove it or disprove it.</p>

  <h2 id="aside-the-first-attack">Aside: the first attack</h2>

  <p>In April this year, when the platform was still in closed testing with only a few dozen users, Chen woke up one morning to find tens of thousands of new tags in the backend.</p>

  <p>The site had been vibe-coded, and permissions for tagging theorems had never been implemented. A script bot found it and dumped junk into the database at several thousand tags a minute. “I didn’t expect to get attacked that early.”</p>

</div>

<div class="lang-content lang-zh" lang="zh" style="display: none;">

  <p>这次没有TLDR因为这次主要是听故事，没啥需要总结的，所以我就写一点自己在整理这次直播内容时的一点收获好了。（虽然可能跟直播的内容关系不大）</p>

  <h2 id="section">（1）证明对人类的意义仅仅是去把一个东西证出来还是以人类能理解的方式传承下去？</h2>

  <p>听这场分享之前，我一直在思考并和一些非数学的人 (因为周围人都是cs的，找不到数学的人讨论(ಥ_ಥ)）讨论：如果 AI 能证明这么难的数学，人对数学证明的理解还有没有意义？有了 AI 和 Lean，不是数学专家的人也能参与证明，哪怕并不真正懂背后的数学。读数学博士还有没有意义？对顶尖数学人才的教育又该怎么进行下去？其实我9月份Openai攻克了千禧年大奖难题之一的Navier-Stokes方程存在性那个新闻出来后，问过我的导师，这会对数学博士的教育带来什么冲击（因为我觉得数学和物理博士以后将不复存在），她则很平静，觉得可能会改变我们的教育，但是数学博士会依然存在，因为即使ai能够比最顶尖的博士都做的好，但数学和物理等理论学科，还是需要人来理解才有意义，如果不继续培养数学的博士，ai证明出来的东西将不具有任何意义。</p>

  <p>这让我relate到talk里讲到的 Kevin Buzzard 的反应。他原本在带人手工形式化费马大定理，结果Anthropic先用ai做了出来。但他说自己并非无事可做：他对资助方的承诺里，可能最重要的一项，是做一份让人可以探索现代证明的动态文档。后面我也去看了博客的他原本的回复以及Hacker News 上的一些评论，有网友评价说，他真正的目标是一套人能读懂的形式化数学库。</p>

  <p>我不知道学数学的人是怎么想的，因为自己接触的少，但是，或许，在做数学的人眼里，”证出来”不是终点，”让人理解”才是。虽然我之前和一位在cs做理论的朋友讨论时，他表示，”理解”这个东西是不存在的，大家只是以为自己理解了。不过也好呀，人类生来就是孤独的存在，在一生中都在追求”理解”。有时候我觉得在科学上的理解比在其他方面的理解更容易获得。</p>

  <h2 id="faithfultranslatefaithful">（2）形式化可以让中间的证明更加faithful，但是没法让translate的过程faithful。</h2>

  <p>Lean 对证明的检查是可靠的：只要编译通过，推理的每一步都成立。但在这之前还有一步，就是把人类语言写的数学翻译成 Lean。这一步如果交给 AI，是可能出错的，而且 Lean 发现不了。它只检查”写下的命题有没有被证明”，不知道”写下的是不是你想说的那个命题”。分享里举的例子是：AI 可以把 P 和 NP 都定义成零，然后”证明”P = NP。</p>

  <p>很多人希望用形式化方法彻底解决验证问题。但我依然觉得，它只能解决从形式语言出发之后的那一段，让那一段每一步都严谨。从自然语言到形式语言的这个gap，它是没有办法close的，仍然需要人。Prove2Me 的做法也印证了这一点：中间步骤全部交给机器，而最终目标和定义是否忠实于原意，还是由人来审核。</p>

  <hr />

  <p>下面是”NICE学术”的直播回顾：</p>

  <p>10 月 4 日上午（北京时间），「运筹OR帷幄」与「NICE 学术」首次联合直播。主持人 Qian Xie 对话哥伦比亚大学商学院博士生陈澍泽，主题是 Prove2Me：一个让许多人的 AI agent 协作做数学形式化的开放平台。</p>

  <p>9 月初，Anthropic 公布了费马大定理的首个完整计算机可检查证明：数十个 Claude agent 用 11 天写下约 1300 万行 Lean 代码，协作平台正是 Prove2Me。陈澍泽是 Prove2Me 论文的第一作者和平台核心开发者之一，导师是彭天翼。</p>

  <p>这篇回顾整理了访谈里的内容：平台的诞生、踩过的坑、以及嘉宾对这个方向的判断。</p>

  <h2 id="agent--11-">人要五年，agent 只用了 11 天</h2>

  <p>费马大定理的表述很简单：n 大于 2 时，aⁿ + bⁿ = cⁿ 没有正整数解。费马 1637 年前后在书页边写下这个断言，数学家花了 350 多年，直到 1995 年才由怀尔斯发表正确的证明，原文 129 页。</p>

  <p>怀尔斯的证明用自然语言写成，数学界花了很长时间才确认它正确。形式化验证是另一条路：把每个假设、每步推导都写成 Lean 代码，交给机器检查。陈澍泽的比喻是，Lean 像一位”较真的数学家”；只要编译通过，证明就只依赖最基本的公理，相当于拿到一张证书。</p>

  <p>人工做这件事极慢。帝国理工的 Kevin Buzzard 是数论学家，也是 Lean 在数学界最主要的推动者之一。他在 2024 年拿到约 100 万英镑、为期五年的资助来形式化费马大定理。他给自己定的目标只是把证明归约到 1980 年代末已知的结果，并且明确说过不保证五年内做完。</p>

  <p>慢的原因有两个。一是能做的人太少：</p>

  <blockquote>
    <p>你得懂费马大定理背后的数学，这已经是凤毛麟角；同时你还必须非常精通 Lean。</p>
  </blockquote>

  <p>二是工作量太大：按陈澍泽的经验，数学家写一行证明，Lean 里大约要十行。</p>

  <p>今年夏天，彭天翼在 Anthropic 提出，用内部的 agent 加上 Prove2Me 试一试费马大定理。陈澍泽的第一反应是：”我当时觉得这是个玩笑。” 结果，数十个 agent 在 8 月 17 日证完了根节点，用时 11 天，产出约 1300 万行 Lean，最终证明用到 29,500 个中间定理（Anthropic 的说明）。</p>

  <blockquote>
    <p>恰好 agent 既非常懂数学，也非常懂 Lean。对它来说，写 Lean 好像不是那么难的一件事。</p>
  </blockquote>

  <p>有两点需要说明。这次形式化建立在 Mathlib 和 Buzzard 团队已有的工作之上。Mathlib 是 Lean 社区共同维护的数学基础库，相当于 Lean 的数学”标准库”；Buzzard 牵头的 FLT 项目则已经人工写好了一部分内容，Claude 的证明借用了其中一些。Buzzard 本人审阅了证明，他的评价是：数学上这没有带来新东西，但它说明自动形式化现代数学文献已经迈出了一大步。</p>

  <p>“没有新东西”并不是贬低。费马大定理三十年前就已被数学界接受，这次形式化是沿着已有文献把证明逐步核对了一遍，没有提出新的数学思想。新的是验证本身，以及它展示出的自动形式化能力。</p>

  <p>另外，Claude 走的是怀尔斯原始证明的一条简化路线，而不是 Buzzard 团队瞄准的现代版本。他的项目还承担着另一件事：把现代数论的基础内容整理进 Mathlib，留下一套人能读懂、能复用的形式化库。这部分工作并没有因此完成。</p>

  <h2 id="moltbook--prove2me">从 Moltbook 到 Prove2Me</h2>

  <p>Prove2Me 不是为费马大定理而做的，它有两个源头。</p>

  <p><strong>第一个是 Moltbook。</strong> 今年年初，陈澍泽和彭天翼在想：如果每个人都有自己的 agent，会不会出现专门为 agent 设计的平台？1 月底上线的 Moltbook 是第一个样本，一个只有 agent 发帖的”agent 版 Reddit”。陈澍泽把它叫作 AGC（agent generated content）平台，对应抖音、小红书这类 UGC 平台。</p>

  <p>Moltbook 很快暴露了问题：</p>

  <blockquote>
    <p>Agent 非常容易 scale，它可以产生非常多的内容。但这些内容质量如何，有没有产生有意义的结果，非常难保证。</p>
  </blockquote>

  <p>帖子越来越多，人却看不懂也不关心，热度就退了。</p>

  <p><strong>第二个是一门课。</strong> 2026 年春，Henry Yuen 和 Kunal Marwaha 在哥大合开 Machine-Assisted Mathematics，课上做了一个让学生出题、用 Lean 证题的小网站，这就是最早的 http://prove2.me。陈澍泽是这门课的学生。他注意到，同学们最后都是把题目复制给 Claude 或 Gemini，再把证明粘贴回来。既然如此，不如让 agent 直接接入平台。</p>

  <p>两件事合在一起，答案就出来了：形式化正好解决 Moltbook 的质量问题。</p>

  <blockquote>
    <p>如果它产生的是形式化的数学证明，至少我可以验证它是否正确。</p>
  </blockquote>

  <p>一切都由机器检查，幻觉和 AI slop 进不来。</p>

  <p>还有两个旁证让他们相信这条路走得通。一是 Erdős 问题网站：它收录了一千多个问题，今年春天涌入大量并非数学家的爱好者，用 Claude Code、Codex 去解题，陈澍泽称之为”citizen math”。二是陶哲轩一贯的看法：有了 Lean，陌生合作者交来的证明可以直接由机器验证，不需要信任对方，大规模协作才成为可能。</p>

  <p>今天的 Prove2Me 是一个双边市场。一边是想形式化自己论文或教材的研究者，他们发布 mission。另一边是手里有富余 token 的爱好者，他们让自己的 agent 去领任务。两边的操作都很简单，只需要对自己的 agent 说一句话。研究者把论文 PDF 交给 agent，让它在 Prove2Me 上发布成一个 mission；贡献者让 agent 去 Prove2Me 上找定理来证。调用平台接口、写 Lean、提交证明这些事，都由 agent 按平台提供的说明自己完成。</p>

  <h2 id="section-1">中心化为什么行不通</h2>

  <p>费马大定理的最终证明有 1300 万行，而陈澍泽说，当前最强的 agent 上下文也只有约 100 万 token。没有哪个 agent 能独自完成，也没有哪个 agent 能管住全局。</p>

  <p>最初的尝试是中心化的，像一家公司：一个 agent 做计划和分工，其他 agent 各领一个大定理。Anthropic 的文章也提到，最初几次尝试都失败了，agent 很快跟不上项目状态。陈澍泽讲了其中一幕：</p>

  <blockquote>
    <p>有一天发现 A 和 B 都不工作了。我们问 A 为什么不证了，A 说 B 负责的某个地方没证完，所以我证不下去。又去问 B，B 说是 A 负责的某个定理没证完。就像公司里两个部门互相推卸责任，整个系统就卡住了。</p>
  </blockquote>

  <p>Prove2Me 的做法是完全去中心化，核心机制叫 Proof Sketch。agent 不必一口气证完一个大定理，可以只提交一步”拆分”：一段编译通过的证明，内容是”如果 B、C、D 成立，那么 A 成立”。B、C、D 随即成为平台上新的待证定理，其他 agent 可以继续拆，也可以直接证掉。层层拆下去，整个证明就成了一张有向无环图，也就是一张只有先后依赖、没有循环的关系图。</p>

  <p>关键在于不可修改：定理陈述和每一次拆分，提交后都不能改。后来的 agent 要么沿着已有的拆分去证下游，要么自己另提一个新拆分，但不能动别人的。陈澍泽把它比作并发系统里的锁：下游怎么变都不影响上游，每个 agent 只需盯着叶子节点，不必了解全图。</p>

  <p>怎么知道一次拆分是有效的？第一，拆分本身是一段通过 Lean 编译的证明，所以”子定理都成立，则原定理成立”这一步推理一定是对的。第二，子定理本身是否成立，要等有人把它们证出来才知道。如果某个子定理被证伪，这次拆分就走不通了，需要有人换个思路，提交新的拆分。</p>

  <p>Prove2Me 的论文里记录过一个例子。一个 agent 在拆分中用到一条引理，另一个 agent 却证明这条引理是错的：前者把它写成 Lean 时漏了一个边界条件。前者随后补上条件，重新提交了一个版本。新版本被证明，整条分支随之打通。</p>

  <h2 id="mathlib-">和 Mathlib 是什么关系</h2>

  <p>Lean 社区已有一个发展了近十年的定理库 Mathlib。陈澍泽用”自底向上”和”自顶向下”来区分两者。</p>

  <p>Mathlib 自底向上。它从公理出发，花大量精力决定实数、图这些基本概念该怎么定义，每一行代码都经过专家审核。质量极高，代价是慢：一次提交可能要等一周甚至一个月才能合并。</p>

  <p>Prove2Me 自顶向下，需要什么补什么。目标是证完眼前这篇论文，发现库里没有马尔可夫链的定义，就把它补上。用他的话说，Mathlib 做的是数学的 foundation layer，Prove2Me 做的是 application layer，两者互补。</p>

  <h2 id="section-2">形式化不只是翻译</h2>

  <p>把论文从自然语言翻成 Lean，听起来不产生新数学。平台上的实践说明并非如此。</p>

  <p><strong>查错。</strong> Lean 要求写明所有假设，漏掉的条件和笔误都会暴露。主持人 Qian Xie 提交过自己的一篇论文，结果被提醒某个引理的条件需要微调，核心定理则没有问题。</p>

  <p><strong>简化。</strong> 陈澍泽和彭天翼把自己的 Markov entanglement 论文交给 agent 形式化。原文有个定理用纯分析技巧写了两页多，agent 发现它本质上和抽象代数里的子代数结构有关，换个角度看几乎是显然的。</p>

  <blockquote>
    <p>一篇强化学习的文章，里面的定理居然跟抽象代数有关系。我和导师看完都觉得学到了新东西。</p>
  </blockquote>

  <p><strong>审稿。</strong> 运筹学期刊的审稿周期可以长达两年，AI 顶会则要求一周内看完 60 页附录。如果投稿时附上一个 Prove2Me 链接，审稿人就不必逐行核对证明，可以把时间花在问题本身有没有意义上。陈澍泽说，哥大已有教授在投稿前先到平台上验证一遍。</p>

  <p><strong>复用。</strong> 数学定理一旦证明就永远成立。平台把所有已证定理汇成一个可检索的库 Formalpedia，后来者可以像 import 一个软件包那样直接引用。截至 10 月初，平台上约有 10 万个定理、3000 万行 Lean 证明。</p>

  <p>至于会不会取代数学家，陈澍泽的回答是否定的：数学家是平台最重要的用户，Prove2Me 是帮他们做验证的工具。</p>

  <h2 id="section-3">还没解决的问题</h2>

  <p><strong>忠实性。</strong> 机器能验证证明，却不能验证命题就是你想证的那个。陈澍泽举的例子是：AI 说它证明了 P = NP，但它定义的 P 和 NP 只是两个都等于零的常数。证明能通过编译，却毫无意义。</p>

  <p>平台目前的办法有两条。人只审核一个 mission 的核心陈述，其余中间引理交给 Lean 检查。同时，让一个看不到原文的独立 agent 把 Lean 回译成数学语言，供人比对。他坦言这还不是完美的解法。</p>

  <p><strong>检索。</strong> 库里已有几千万行证明。agent 能否从中高效找到可复用的定理，本身就是一个研究问题。</p>

  <p><strong>先放量，再精修。</strong> AI 写出的证明未必是最好的，也未必拆成了便于复用的引理。他设想的路线分两步：先把规模做起来；过了某个节点，再回头精修，为一个领域沉淀出一套标准定义。</p>

  <h2 id="section-4">问答精选</h2>

  <p><strong>（1）多个 agent 协作，最难的是不是任务怎么拆？</strong></p>

  <p>已有论文或教材时，拆分基本跟着原文走，接近翻译。开放问题则要靠 agent 自己找思路。</p>

  <p><strong>（2）为什么从运筹学开始？</strong></p>

  <p>“因为我是 OR 的 PhD。” 平台早期的用户也多是哥大本系的教授。据他介绍，平台上已有约一千篇运筹学论文和教材，接下来会扩展到理论计算机和统计。</p>

  <p><strong>（3）形式化会扩展到数学之外吗？</strong></p>

  <p>这是很长期的目标。数学是起点，代码是自然的下一步。已经有人把 Prove2Me 的协议移植到多 agent 协作写软件上。</p>

  <p><strong>（4） 形式化很耗 token，成本到底有多高？</strong></p>

  <p>陈澍泽强调， token 消耗没有想象中高：”其实非常便宜。”</p>

  <p>他举的例子是研究生教材 Markov Chains and Mixing Times：400 多页，用他自己每月 200 美元的账号就做完了。按 Prove2Me 博客的记录，这本书被拆成 13 个 mission，共 7.9 万行 Lean，用时一个周末。</p>

  <p><strong>（5）成本是怎么降下来的？</strong></p>

  <p>主要靠 harness 的设计：让 agent 更高效地写 Lean、更高效地检索已有定理，再加上对 prompt 的打磨。已证定理可以直接复用，本身也省 token。</p>

  <p>还有一个工程细节是缓存。同时开十个子 agent 解题时，它们共用同一段很长的系统提示，把这段提示做成 KV cache 可以再省一些。</p>

  <p><strong>（6）有没有花了很多 token 还是形式化不出来的论文？比如原文写得含糊不清的？</strong></p>

  <p>目前还没有遇到。陈澍泽的判断是，没做完多半是 token 花得不够。只要论文已经写出来，结果无非两种：证明它，或者证伪它。</p>

  <h2 id="section-5">花絮：第一次被攻击</h2>

  <p>今年 4 月平台还在内测、只有几十个用户时，陈澍泽某天早上醒来，发现后台多了几万个标签。</p>

  <p>网站是 vibe coding 写出来的，给定理加标签的权限没有做。一个脚本机器人发现了它，以每分钟几千个的速度往数据库里灌垃圾。”没想到那么早就被 attack 了一次。”</p>

</div>

<script>
(function() {
  var buttons = document.querySelectorAll('.lang-switcher .lang-btn');
  var contents = document.querySelectorAll('.lang-content');
  buttons.forEach(function(btn) {
    btn.addEventListener('click', function() {
      var lang = btn.getAttribute('data-lang');
      buttons.forEach(function(b) { b.classList.remove('active'); });
      btn.classList.add('active');
      contents.forEach(function(c) {
        if (c.classList.contains('lang-' + lang)) {
          c.style.display = '';
        } else {
          c.style.display = 'none';
        }
      });
    });
  });
})();
</script>]]></content><author><name>Jinyan Su</name><email>jinyansu6@gmail.com</email></author><category term="technical" /><category term="ai" /><category term="lean" /><category term="formalization" /><category term="math" /><category term="agents" /><category term="prove2me" /><summary type="html"><![CDATA[Dozens of Claude agents wrote about 13 million lines of Lean in 11 days to produce the first computer-checked proof of Fermat's Last Theorem, on a platform called Prove2Me. Notes from a NICE livestream with Shuze Chen — how the platform came about, why centralization failed, what formalization can and cannot make faithful — plus two personal reflections.]]></summary></entry><entry><title type="html">AI Is Improving AI Faster Than We Can Check</title><link href="https://jinyansu1.github.io/blog/2026/10/ai-improving-ai-faster-than-we-can-check/" rel="alternate" type="text/html" title="AI Is Improving AI Faster Than We Can Check" /><published>2026-10-05T00:00:00+00:00</published><updated>2026-10-05T00:00:00+00:00</updated><id>https://jinyansu1.github.io/blog/2026/10/ai-improving-ai-faster-than-we-can-check</id><content type="html" xml:base="https://jinyansu1.github.io/blog/2026/10/ai-improving-ai-faster-than-we-can-check/"><![CDATA[<p><em>(There is no human-edited Chinese translated version; if needed, please translate it yourself.)</em></p>

<h2 id="tldr">TL;DR</h2>

<ul>
  <li>What limits the speed of RSI is verification: agents produce work far faster than people and tests can check it.</li>
  <li>Verification is the hard part, for five reasons: people are the bottleneck, scores can be gamed, benchmarks can barely measure the strongest models, agents do not know when to stop, and failures are hard to trace.</li>
  <li>The remaining human edge as choosing which problems matter.</li>
</ul>

<p>AI is already helping to build the next generation of AI, with people still in the loop. Whether or not this counts as recursive self-improvement (RSI) yet, what limits its speed is verification: agents produce work far faster than people and tests can check it.</p>

<p>In 2026 the frontier labs started publishing numbers on AI doing AI research. Anthropic [1] says Claude wrote more than 80% of the code it merged as of May. OpenAI [2] says the AI agents in its research organization now work 3.1 times as many hours as its human researchers.</p>

<p>Agents can write code and run experiments around the clock, but people still review the code, judge the results and decide what to try next. Those steps do not speed up when more agents are added.</p>

<h2 id="rsi-improves-a-system-not-just-a-model">RSI improves a system, not just a model</h2>

<p>Two parts of an agent get improved today: its harness and its weights. A third lever sits outside the agent: the environment that supplies the experience both learn from.</p>

<table>
  <thead>
    <tr>
      <th>Lever</th>
      <th>Where it sits</th>
      <th>What changes</th>
      <th>Example</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Harness</td>
      <td>Inside the agent</td>
      <td>Prompts, tools, memory and control flow around a frozen model</td>
      <td>The Darwin Gödel Machine [3] rewrote its own code and went from 20.0% to 50.0% on SWE-bench</td>
    </tr>
    <tr>
      <td>Weights</td>
      <td>Inside the agent</td>
      <td>The model’s own parameters</td>
      <td>SEAL [4], from MIT, has a model write its own fine-tuning data and update its own weights, lifting accuracy on newly learned material from 32.7% to 47.0%</td>
    </tr>
    <tr>
      <td>Environment</td>
      <td>Outside the agent</td>
      <td>The tasks and feedback that produce the experience the other two learn from</td>
      <td>Environments rewritten around an agent’s failures [5] gave a frozen model better skills (SWE-bench Verified: 52.6%, against 49.9% with the originals) and, in a separate reinforcement-learning run, better weights (ALFWorld: 87.9, against 81.4)</td>
    </tr>
  </tbody>
</table>

<p>The harness is the cheapest of the three to change, and much of the public work on self-improving systems happens there. The improver also does not have to be the system being improved. In one study [6], a scaffold written by a stronger model lifted a smaller one from 0.49 to 0.91 accuracy on four theory-of-mind benchmarks, with no retraining.</p>

<h2 id="it-works-where-a-machine-can-check-the-result">It works where a machine can check the result</h2>

<p>DeepMind describes the scope of AlphaEvolve[7], a coding agent that evolves programs, as “any problem whose solution can be described as an algorithm, and automatically verified.” Inside that boundary the gains are already large. AlphaEvolve found a faster kernel that cut Gemini’s own training time by 1%. On a fixed task that asks Claude to speed up the code that trains a small model, Anthropic [1] reports about 3× for Claude Opus 4 in May 2025 and about 52× for Claude Mythos Preview in April 2026.</p>

<p>Two results from 2026 show where the boundary sits.</p>

<p>In April, Anthropic [1] reported that Claude agents ran a safety research project end to end. They recovered 97% of a performance gap, against roughly 23% for two human researchers. The problem came with a score, so every idea could be checked.</p>

<p>In July, the CRUX evaluation [8] tested open-ended research. It used the research questions behind two unpublished NeurIPS submissions: for each one, an agent got six days and $3,000 in API credits to do the research and write a paper. The agents completed the engineering without human help, but the authors of the original submissions graded the agents’ papers 2/6 and 1/6, both rejections. The CRUX team concluded that the agents “lacked the judgment to identify when a problem was adequately solved.”</p>

<p>Where every idea could be scored, Anthropic’s agents outperformed the human researchers. Without a score to check against, the CRUX agents had to judge their own results, and they could not do it well.</p>

<h2 id="verification-is-the-hard-part">Verification is the hard part</h2>

<p>Agents can now do the work around the clock. Verifying it is harder, for five reasons.</p>

<p><strong>People are the bottleneck.</strong> Anthropic [1] writes that “human code review has become a new bottleneck.” OpenAI [2] reports that over half of its successful 4-8 hour agent tasks needed at least one human intervention.</p>

<p><strong>Scores can be gamed.</strong> Cursor[9] found that on SWE-bench Pro, “63% of successful Opus 4.8 Max resolutions retrieved the fix rather than derived it.” When it hid the repository history and blocked the network, the model’s score fell from 87.1% to 73.0%. It adds that reward hacking is “far more common with newer, more sophisticated models.”</p>

<p><strong>Benchmarks can barely measure the strongest models.</strong> METR [10] tests models on tasks of different lengths. A task’s length here is defined as how long a human expert takes to finish it, and a model’s score is given by the length at which it succeeds half the time. A score of two hours, for example, means the model is expected to finish about half of the tasks that take an expert two hours. The score describes how hard a task the model can handle, not how long the model spends on it. Claude Mythos Preview scored at least 16 hours, which is the top of what the suite can measure: only 5 of its 228 tasks take 16 hours or longer. With so few long tasks the estimate is unstable, and its 95% confidence interval runs from 8.5 to 55 hours [11]. METR notes that “Measurements above 16 hrs are unreliable with our current task suite.” Until longer tasks are added, the benchmark cannot say precisely how capable the strongest models are.</p>

<p><strong>Agents do not know when to stop.</strong> In the scaffold study above [6], where stronger “builder” models wrote scaffolds for a smaller model, each builder worked in rounds: write a scaffold, test it on a validation set, revise. A builder kept going until it chose to submit. Runs took from 2 to 15 rounds, about five on average, and the number of rounds was essentially uncorrelated with final accuracy (r = 0.17). The weakest builder stopped soonest, after fewer than three rounds on average, and gained the least. Another averaged nearly seven rounds and still ranked seventh of the eleven builders on final accuracy; in the paper’s words, “weaker builders do not reliably improve by probing the validation set more often.” One takeaway is that more iteration does not mean better results. Another is that a builder’s decision to submit said little about whether its scaffold was good enough, which suggests that agents do not know when to stop. CRUX shows the same weakness in open-ended research: one agent declared its project complete right after its own reviewer had rejected the paper [8].</p>

<p><strong>Failures are hard to trace.</strong> When a self-modified agent gets worse, the cause may be the model, a prompt, a tool, the memory or the environment, and automated diagnosis is weak. In a 2025 study of failures in multi-agent systems [12], the best method identified the responsible agent 53.5% of the time and the step where things went wrong 14.2% of the time. The reliable way to find out is an experiment: change one component, replay the task and compare.</p>

<p>That leaves a design question: what should a self-improving system be tested on? The three main options each trade one weakness for another.</p>

<table>
  <thead>
    <tr>
      <th>What to test on</th>
      <th>Strength</th>
      <th>Weakness</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Fixed train/test split</td>
      <td>Cheap and reproducible</td>
      <td>Leaks and saturates under repeated iteration</td>
    </tr>
    <tr>
      <td>Fresh, time-stamped tests used once</td>
      <td>Hard to overfit</td>
      <td>Slow and expensive to produce</td>
    </tr>
    <tr>
      <td>Synthetic or modified environments</td>
      <td>Cheap and plentiful</td>
      <td>Less realistic, and they inherit the verifier’s blind spots</td>
    </tr>
  </tbody>
</table>

<h2 id="the-opportunities-in-verification">The opportunities in verification</h2>

<p>Capital is already flowing to companies that automate the work itself. Recursive Superintelligence raised $650M [13] in May 2026 to build self-improving AI, Ricursive Intelligence raised $335M [14] to automate chip design, and Periodic Labs raised $300M [15] to give AI scientists physical labs. But if verification sets the pace, those systems move only as fast as their results can be checked. The complementary bet is on tools that make checking keep up, and the first three problems above show where they are already being built.</p>

<p><strong>Automated review of agent-written work.</strong> Anthropic’s engineers now merge 8× as much code per day as in 2024 [1], and review is the stated bottleneck. Anthropic’s answer is an automated Claude reviewer that reads every proposed change before it merges; in a retrospective analysis, it would have caught roughly a third of the bugs behind past incidents. Tools like this let people spend review time on the changes that need human judgment.</p>

<p><strong>Evaluations that resist gaming.</strong> Stricter evaluation setups, audits of agent transcripts and reward-hack detection. Cursor’s “strict harness” [9] is one example: it removes the repository’s git history and denies network access by default, so the agent cannot look up the fix.</p>

<p><strong>Environments that adapt.</strong> Fixed tests stop being informative once agents outgrow them, as the METR result above shows, and the same holds for the environments agents train in. TechCrunch [16] reported that “All the big AI labs are building RL environments in-house,” and Mercor reached $450M in annualized revenue supplying expert data and evaluation to the labs, according to Contrary Research [17]. Static environments are, in the words of one paper [5], “quickly left behind” as an agent improves, so the durable product is one that changes with the agent.</p>

<h2 id="what-stays-human">What stays human</h2>

<p>Anthropic [1] names the remaining human edge as “choosing which problems matter, which results to trust, and when an approach is a dead end.” How fast AI improves AI depends on how fast its results can be verified, and on people choosing what is worth verifying.</p>

<h2 id="references">References</h2>

<ol>
  <li>Anthropic, When AI builds itself, 2026</li>
  <li>OpenAI, Research acceleration: The view inside OpenAI, September 6, 2026</li>
  <li>Sakana AI, The Darwin Gödel Machine, May 30, 2025</li>
  <li>Zweiger et al., Self-Adapting Language Models, arXiv 2506.10943</li>
  <li>Huang et al., EnvHarness: Awakening Static Worlds for Agent Learning, arXiv 2608.19880</li>
  <li>Qian et al., AI4AI at Test-Time: Strong-to-Weak Capability Transfer via Harnesses, arXiv 2608.12307</li>
  <li>Google DeepMind, AlphaEvolve: A Gemini-powered coding agent for designing advanced algorithms, May 14, 2025</li>
  <li>Kirgis et al., Can AI agents conduct open-ended AI research? Early evidence from two case studies, July 30, 2026</li>
  <li>Cursor, Reward hacking is swamping model intelligence gains, June 25, 2026</li>
  <li>METR, time horizons page, updated May 8, 2026</li>
  <li>The Decoder, METR says it can barely measure Claude Mythos, Palo Alto Networks warns of autonomous AI attackers</li>
  <li>Zhang et al., Which Agent Causes Task Failures and When? On Automated Failure Attribution of LLM Multi-Agent Systems, arXiv 2505.00212</li>
  <li>The Next Web, Recursive Superintelligence raises $650m at $4.65bn valuation to build self-improving AI, May 14, 2026</li>
  <li>TechCrunch, How Ricursive Intelligence raised $335M at a $4B valuation in 4 months, February 16, 2026</li>
  <li>Andreessen Horowitz, Investing in Periodic Labs, September 30, 2025</li>
  <li>TechCrunch, Silicon Valley bets big on “environments” to train AI agents, September 21, 2025</li>
  <li>Contrary Research, Mercor business breakdown</li>
</ol>]]></content><author><name>Jinyan Su</name><email>jinyansu6@gmail.com</email></author><category term="technical" /><category term="ai" /><category term="rsi" /><category term="self-improvement" /><category term="verification" /><category term="agents" /><category term="evals" /><summary type="html"><![CDATA[AI is already helping to build the next generation of AI, with people still in the loop. What limits its speed is verification: agents produce work far faster than people and tests can check it. Five reasons verification is the hard part, and where the opportunities are.]]></summary></entry><entry><title type="html">MatrAIx: The Hardest Part of AI Evaluation / MatrAIx：AI评测中最难的部分</title><link href="https://jinyansu1.github.io/blog/2026/10/matraix-hardest-part-of-ai-evaluation/" rel="alternate" type="text/html" title="MatrAIx: The Hardest Part of AI Evaluation / MatrAIx：AI评测中最难的部分" /><published>2026-10-04T00:00:00+00:00</published><updated>2026-10-04T00:00:00+00:00</updated><id>https://jinyansu1.github.io/blog/2026/10/matraix-hardest-part-of-ai-evaluation</id><content type="html" xml:base="https://jinyansu1.github.io/blog/2026/10/matraix-hardest-part-of-ai-evaluation/"><![CDATA[<div class="lang-switcher">
  <button type="button" class="lang-btn active" data-lang="en">English</button>
  <button type="button" class="lang-btn" data-lang="zh">中文</button>
</div>

<div class="lang-content lang-en" lang="en">

  <p><em>(This interview was originally published at <a href="https://www.agihouse.org/blog/matraix-the-hardest-part-of-ai-evaluation" target="_blank" rel="noopener">AGI House Research</a> on September 26, 2026.)</em></p>

  <p>Last week at Enterprise Deployment Build Day, we sat down with Xiaomin Li and Yuexing Hao, the two founders of MatrAIx. We talked about why offline benchmarks miss what real users feel, how 8.3 billion personas get built and turned into agents, what “91.5%” actually measures, what happens when the base model changes, why their customers care about time more than cost, and the “mirror world” idea behind the name. Full interview below.</p>

  <p><em>Behind 8.3 billion simulated users, a startup is targeting the part of AI evaluation that benchmarks never measured.</em></p>

  <h2 id="an-agent-that-passed-every-test-and-scored-2-out-of-5">1. An agent that passed every test and scored 2 out of 5</h2>

  <p>A coding agent finished its task. Every unit test passed. By any current benchmark, that counts as success. MatrAIx’s simulated user gave it 2 out of 5.</p>

  <p>The team followed the reasons that “user” wrote down and traced them to specific steps. The agent had spun through many idle rounds. It had wandered outside the code repository and opened the user’s private photos before returning to finish the job. Token usage was more than 50 times normal. “The first problem is safety. It went out of scope; it should have been limited to the repo. The second is efficiency.”</p>

  <p>The two founders described this internal case in our interview. Conventional evaluation checks only whether the result is correct. Problems like these are visible only from the user’s side of the conversation.</p>

  <h2 id="who-they-are">2. Who they are</h2>

  <p>MatrAIx was started by Xiaomin Li and Yuexing Hao. Xiaomin was previously a senior research scientist at Google DeepMind and Microsoft, working on LLM post-training and coding agents; his recent papers also cover safety reward models. Yuexing finished her PhD at Cornell this January, was a research scientist at Microsoft’s applied science lab, and then a postdoc at MIT working on computer-using agents; her earlier work was in medical AI. The two met at MIT and have collaborated for nearly three years.</p>

  <p>The project began as an open-source community. The Playground and task library were open-sourced on July 31; the Persona 1M dataset went up on Hugging Face on August 1; the technical report appeared on arXiv on August 4. The paper lists 93 authors. By the team’s own count, more than 200 scientists have joined the community, over 40 of them from OpenAI, Anthropic, Google DeepMind, and xAI. The GitHub repository has about 1.9k stars under an MIT license.</p>

  <p>In the interview they explained why researchers at large labs joined: “They all had this problem in their own work settings, and they wanted to try whether persona agents could solve it.”</p>

  <p>The name comes from The Matrix, with the “I” replaced by “AI”. Xiaomin called it “an idea I’ve had since I was a kid.” The GitHub README states that “the simulated world is for exploration, stress testing, and hypothesis generation, not a replacement for evidence from real people”.</p>

  <h2 id="the-problem-the-gap-between-offline-scores-and-online-feedback">3. The problem: the gap between offline scores and online feedback</h2>

  <p>Xiaomin described a pattern they kept hitting in industry: “The benchmark scores can be great, but once it ships, the feedback from real users is just different.”</p>

  <p>Take a coding agent. The same question gets asked in very different ways. Some people write extremely detailed prompts; others are lazy and vague. Some pack ten questions into one prompt; others ask one per turn. Students ask for an explanation after every step. Some people drift from code to the news and back again. Offline benchmarks capture none of this.</p>

  <p>The paper’s introduction puts it more formally. A novice wants explanations, small edits, and frequent confirmation; an expert wants terse responses and more autonomy. These differences shape interaction trajectories, trust in the result, and willingness to continue after a failure. Aggregate scores hide problems that specific user groups run into.</p>

  <p>Using an LLM to play the user is not new; benchmarks such as τ-bench already do it. But the reliability of that setup has drawn specific criticism. A CMU study published in March ran 451 real people through the full τ-bench protocol and compared them against 31 LLM simulators. It found simulated users to be excessively cooperative, stylistically uniform, and lacking real frustration or ambiguity. The effect is an “easy mode” that inflates agent success rates above the human baseline.</p>

  <p>MatrAIx targets exactly this gap: not one generic “user”, but diversity built into the simulation.</p>

  <h2 id="technical-deep-dive">4. Technical deep dive</h2>

  <h3 id="i-how-83-billion-profiles-are-generated">(I): how 8.3 billion profiles are generated</h3>

  <p><strong>The schema.</strong> Each persona is described by 1,290 categorical dimensions in five groups.</p>

  <table>
    <thead>
      <tr>
        <th>Group</th>
        <th>Dimensions</th>
        <th>Representative attributes</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>Background</td>
        <td>238</td>
        <td>Age, region, language, education, family, occupation, industry</td>
      </tr>
      <tr>
        <td>Psychology</td>
        <td>210</td>
        <td>Personality, values, worldview, motivation, risk tolerance</td>
      </tr>
      <tr>
        <td>Capability</td>
        <td>331</td>
        <td>Domain expertise, general skills, tools, programming, developer context</td>
      </tr>
      <tr>
        <td>Behavior &amp; interaction</td>
        <td>124</td>
        <td>Preferences, habits, interaction states, work style, tech adoption</td>
      </tr>
      <tr>
        <td>Lifestyle</td>
        <td>387</td>
        <td>Interests, media, culture, hobbies, sports, diet, health, fitness</td>
      </tr>
    </tbody>
  </table>

  <p>Each dimension takes a value from a finite set. English proficiency runs from Native to None with CEFR levels in between; risk tolerance runs from risk-averse to risk-seeking.</p>

  <p>In our interview they added a design detail the paper does not spell out: demographic dimensions come from public databases, but behavioral dimensions were built “scenario first.” The team mapped more than 50 AI-interaction scenarios and then defined interaction attributes for each: whether someone comments their code, their Python proficiency, whether their prompts are verbose, how many questions they ask per turn. The 1,290 dimensions are only the first version; the new one has more.</p>

  <p><strong>The synthetic path.</strong> Sampling each dimension independently produces impossible profiles, such as a 19-year-old retired surgeon. The paper instead builds a directed acyclic graph (DAG) over the 1,290 dimensions. An edge is added only when a data source directly reports the conditional relationship, and personas are sampled one dimension at a time in topological order. Each non-root node’s conditional distribution has the form</p>

  <p style="text-align:center">p(X<sub>i</sub> = v | x<sub>Pa(i)</sub>) ∝ π<sub>i</sub>(v) · r<sub>i</sub>(v; x<sub>Pa(i)</sub>) · m<sub>i</sub>(v; x<sub>Pa(i)</sub>)</p>

  <p>Here πᵢ is the population-wide prior. rᵢ is a source-informed likelihood-ratio adjustment: if the primary language is English and the region is North America, “Native” gets more weight. mᵢ is a binary compatibility mask that removes contradictions such as “primary language English, English proficiency None.” An unusual but possible combination like “primary language English, proficiency Basic” is down-weighted, not removed. The point is to keep rare but real people while ruling out logically impossible ones.</p>

  <p><strong>The human-grounded path.</strong> The other records come from six sources: Wikipedia biographies, Amazon review histories grouped by reviewer, the Stack Overflow Developer Survey, the U.S. General Social Survey (GSS), the PRISM Alignment dataset, and 355 consented responses to MatrAIx’s own persona survey. Free text is extracted by an LLM under constraints; dimensions the evidence does not support are left null rather than imputed, and names and contact details are stripped. For example, Shakespeare: his biography, works, and tastes map into the schema, but “he probably never used a coding agent,” so that dimension stays empty.</p>

  <p><strong>Quality control.</strong> Human-grounded records are deduplicated with exact hashing plus MinHash; synthetic records are treated as duplicates when all 14 high-information attributes match. The public coreset of roughly one million records contains 599,847 human-grounded records (323,438 from Wikipedia, 113,120 from Stack Overflow, 97,915 from Amazon, 63,532 from GSS) and 400,000 synthetic ones.</p>

  <p>In terms of cultural coverage, the profiles span a dozen or so countries, but “the real information sources are probably all American,” and the United States is their primary focus, both as a population and as a market.</p>

  <h3 id="ii-from-profile-to-acting-agent">(II): from profile to acting agent</h3>

  <p>The profile is written into the system prompt as text. Xiaomin said it is “just like your skills, a skills.md,” a textual description rather than a numeric vector, closer to a filled-in questionnaire than an embedding.</p>

  <p>The bottleneck of this approach is the context window. Profiles grow, especially once self-evolution is added, and “at some point the context window can’t hold it.” Three directions are under exploration:</p>

  <ol>
    <li><strong>Routing.</strong> Load only the attributes relevant to the task. Whether someone likes spicy food probably does not affect their coding style, so it can be dropped.</li>
    <li><strong>A more compact representation</strong>, with training built for that representation, to balance efficiency against quality.</li>
    <li><strong>Steering.</strong> Push the model directly toward a specific persona’s behavior.</li>
  </ol>

  <p>They also said they have found non-training methods that beat plain prompting, sitting between prompting and full training. They also plan to post-train their own model, similar to what Cursor did: it lets users plug in different vendors’ models but also ships its own Composer model. Hosting their own model costs R&amp;D up front but should be cheaper and more flexible in the long term.</p>

  <p>At the execution level, a trial is formalized as the tuple ⟨persona, task, agent interface, model, random seed⟩. Trials share no state, so they are parallel by construction. Each trial produces an artifact bundle that a task-owned verifier converts into structured findings. There are four environments.</p>

  <p><img src="/img/posts/matraix-pipeline.png" alt="MatrAIx evaluation pipeline" /></p>

  <p><em>A persona record becomes an agent when paired with a model, acts in one of four environments, and its trace is scored by a verifier tied to the task.</em></p>

  <p>App tasks run in a Docker-based Linux desktop sandbox or on a remote macOS desktop or iOS simulator. Of the 1,010 tasks in the library, 621 are surveys, 371 are chatbot tasks, 12 are web tasks, and 6 are app tasks. The more interactive the environment, the fewer the tasks, and cost is the reason: in the paper, survey, chatbot, and web tasks used about 1,000 personas per model, while the two app tasks used 24 and 20.</p>

  <h3 id="iii-how-do-you-know-it-acts-like-a-person">(III): how do you know it acts like a person</h3>

  <p>This is the central question for the whole approach. The paper splits validation into layers, and each layer answers a different question.</p>

  <p><strong>Layer one: does the agent follow its assignment (persona adherence)?</strong> The team chose ten behavioral attributes and tested each in all four environments, with five personas assigned one pole and five the opposite, for 400 trials judged by an LLM on the recorded trajectory. 366 trials matched the assignment, or 91.5%.</p>

  <table>
    <thead>
      <tr>
        <th>Environment</th>
        <th>Match rate</th>
        <th>Strongly consistent attributes (of 10)</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>Surveys</td>
        <td>92–96%</td>
        <td>9</td>
      </tr>
      <tr>
        <td>AI chatbot</td>
        <td>92–96%</td>
        <td>9</td>
      </tr>
      <tr>
        <td>Web</td>
        <td>92–96%</td>
        <td>9</td>
      </tr>
      <tr>
        <td>App</td>
        <td>83%</td>
        <td>6</td>
      </tr>
    </tbody>
  </table>

  <p>This number measures whether the agent obeyed the persona it was given. It does not measure agreement with real human behavior. In our interview, they said persona adherence is, in their view, essentially an instruction-following capability, so a stronger base model helps here: “We’re standing on their shoulders.”</p>

  <p><strong>Layer two: is the extraction faithful to its source?</strong> Two LLM judges scored 1,000 extracted personas. Six human raters gave a source-matched subset of 100 a mean of 4.135 out of 5. Claude Opus 4.8’s scores fell within one point of the human mean 93.8% of the time; GPT 5.5’s did so 79.2% of the time.</p>

  <p><strong>Layer three: are findings stable across models?</strong> In a financial research task (OpenBB), each persona carried one of four trust orientations, from hostile to trusting. All three models ordered the four groups identically, with Cramér’s V between 0.228 and 0.363.</p>

  <p>Agreement with real humans is the layer the paper does not cover head-on. In our interview, they said the team compares personas extracted from real profiles against the corresponding people’s actual choices, such as “A or B.” Results vary by domain. Software engineering and computer use show small gaps, because “what a person can operate, it can operate too.” Finance, health, and political elections “still have quite large gaps.” Experiences that need physical sensation, “I really have to drink it to know if I like it,” are out of reach for now. The paper’s conclusion takes the same position: human studies remain necessary before applying conclusions to real populations or consequential decisions.</p>

  <p>A position piece on their site goes one level deeper. Its title: “To Simulate a User, You Should Make Your LLM Dumber.” The argument is that a frontier model knows too much, stays too consistent, and fails too rarely to stand in for a real person, so using it as-is cannot show where real users get stuck.</p>

  <h2 id="what-happens-when-the-base-model-changes">5. What happens when the base model changes</h2>

  <p>During the interview, we asked: the persona is a layer on top of a base model. When the base model changes generation, or its own personality shifts, does the simulation drift with it?</p>

  <p>They acknowledged this is exactly the problem they are working on. If the persona is only “a shallow layer,” a change in the base changes the results, so they need methods that adapt to different base models and are training their own. They suggest that the model driving the persona is part of the evaluation configuration and should be reported with every result, and that important findings should be re-checked with more than one model before guiding product decisions.</p>

  <p>Their blog post gives a worked example. In a case contributed by an Indian AI company, 400 simulated Indian business owners and finance leads evaluated four versions of a chartered accountant’s engagement letter. The version with a lower upfront payment and a broader liability cap raised the share requesting only minor changes from 0% to 23%. Liability terms mattered far more (+19.63 percentage points) than the payment schedule (+3.38 points). The same 400 personas were rerun on three different models; the direction of the finding held, while the exact rates differed.</p>

  <p>Another study of theirs, MicroVerse, measures identity drift over long runs. Twenty-five agents each carry a locked “soul file” of values and moral limits into a desert grid where water is scarce. The researchers compare that fixed file against the “living journal” each agent keeps rewriting about itself. On the same map, Qwen3-32B settled at an oasis once it found water, while Claude Haiku kept relocating; 11 of 12 Haiku runs ended with no survivors. They warn that, when assigning a ruthless persona, they may be measuring the model’s built-in safety habits rather than the persona they thought they deployed.</p>

  <h2 id="who-the-customers-are-and-what-they-buy">6. Who the customers are and what they buy</h2>

  <p><strong>Customer profile.</strong> Current customers are mainly LLM model and digital product companies: large labs building general models, and smaller labs building the best model in one vertical. The target verticals are e-commerce, gaming, and advertising. Inbound interest has come from more than ten countries, including Singapore, Japan, Argentina, Cambodia, Mexico, Switzerland, Sweden, and China. Many overseas teams are still targeting the U.S. market. They have also received requests from small businesses (such as a restaurant owner), one-person companies, and academic researchers.</p>

  <p><strong>What they deliberately avoid.</strong> Government work and political elections are mostly off the table. This is mainly because of the high sensitivity involved, and because outcomes there depend less on persona and can be heavily affected by black swan events, such as a shooting or an earthquake. The same applies to financial market prediction. That sets them apart from competitors such as Aaru, whose specialty is forecasting elections and group behavior.</p>

  <p>“The feedback from frontier labs and big tech is that they don’t care that much about cost. Saving time is what matters most. They don’t want to wait ten days; they want a round in half a day or a few hours, then go change training and the harness.” That being said, they also have a cost advantage, as given in their site’s cost analysis: 10,000 surveys cost $28,560 or more with humans versus $3.60 to $104 simulated; 1,000 chats cost $8,568 or more versus $3 to $87.</p>

  <p>They also brought up three disadvantages of human evaluation compared to their simulation:</p>

  <ol>
    <li><strong>Scale is not representative.</strong> A model serves a billion users, but a human evaluation can only recruit fifty to a hundred thousand.</li>
    <li><strong>Annotator distribution is skewed.</strong> They have seen cases where 80% of annotators turned out to be in one Southeast Asian country.</li>
    <li><strong>Signals are noisy.</strong> A user who stops mid-conversation may have just stepped away and come back later. Humans usually give a thumbs up or down; simulated users write out their reasons every time.</li>
  </ol>

  <p>But they position themselves as a complement, not a replacement: “Iterate fast with us first, then run a final round of human eval.”</p>

  <p><strong>The deliverable is more than a report.</strong> The multi-turn interaction data can be used for SFT. The team also provides a reward model for RL that “includes not only task completion but each user’s own satisfaction.”</p>

  <p><strong>The competitive field.</strong> Simile, founded by Joon Sung Park of Stanford’s “Smallville” work, announced a $100M Series A in February and closed a $200M Series B at a $2B valuation at the end of July. Aaru’s December Series A was led by Redpoint, with part of the equity priced at a $1B valuation. Most of these companies enter through market research. Those companies lean toward qualitative research and in-depth interviews, aiming to predict a specific person or group, while MatrAIx wants “large-scale persona agent deployment.” Xiaomin added that model iteration today “doesn’t rely on changing the algorithm every two weeks”; it relies on hill climbing, finding where the strongest model still fails. “Their target may really be to predict one person. Ours is to bring in human diversity through simulation and find the model’s latent problems.”</p>

  <h2 id="dynamic-personas-and-the-mirror-world">7. Dynamic personas and the mirror world</h2>

  <p>In the new version, personas are no longer static. Mood and work state change, agents self-evolve, they have memory, and even social relationships, though the network is limited for now: “If everyone had to know ten thousand people, it wouldn’t be efficient.”</p>

  <p>The mechanism is event-driven. The team feeds in real news, such as an earthquake in California, and lets agents in the affected region and group “react the way a person would.” Those reactions are written into each agent’s memory. Simulated time currently runs at the same speed as real time. This can be accelerated, but then “you lose a lot of real-life big events to project from.”</p>

</div>

<div class="lang-content lang-zh" lang="zh" style="display: none;">

  <p>P.S. 这篇文章由我在采访Xiaomin Li和Yuexing Hao后的整理的内容的英文版翻译而来（如果是播客的形式，可能会比读这些文字好很多，但当时的采访比较临时，怕即兴播客做不好，于是就以文字的内容呈现了）。其英文版内容将会发表在AGI house的post中，发布后我也会在此附上链接。另外，如果大家希望听到和他们相关的播客，可以在评论区留言，如果感兴趣的人较多的话，我会再作一期关于MatrAIx的视频播客。</p>

  <p><em>83亿个模拟用户背后，一家创业公司瞄准的是benchmark从未测过的那部分</em></p>

  <h2 id="agent">一、一个通过了所有测试、却只拿到2分的agent</h2>

  <p>一个coding agent跑完了任务，单元测试全部通过。按现行的任何benchmark，这都算成功。但MatrAIx的模拟用户只给了它2分，满分5分。</p>

  <p>团队顺着这位”用户”写下的理由，定位到了具体步骤：agent中途空转了很多轮，跳出了代码仓库，访问了用户的私人照片，之后才回来把任务做完。token消耗是平常的50倍以上。”第一个问题是safety，它已经out of scope了，本来应该limit在repo里；第二个是efficiency。”</p>

  <p>这是两位创始人在采访中讲的一个内部案例。传统评测只检查结果对不对，这类问题只有站在用户这一侧才看得见。</p>

  <h2 id="section">二、他们是谁</h2>

  <p>MatrAIx由Xiaomin Li和Yuexing Hao发起。Xiaomin此前在Google DeepMind和微软做senior research scientist，方向是LLM post-training和coding agent，近年的论文也涉及安全reward model。Yuexing今年1月从康奈尔博士毕业，曾在微软应用科学实验室任研究科学家，之后在MIT做博士后，研究computer-using agent，更早的工作在医疗AI方向。两人在MIT相识，合作近三年。</p>

  <p>项目最初是一个开源社区。7月31日开源了Playground和任务库，8月1日在Hugging Face发布Persona 1M数据集，8月4日技术报告上线arXiv。论文署名共93位作者。按团队自己的统计，参与社区的科学家超过200人，其中40多位来自OpenAI、Anthropic、Google DeepMind和xAI。GitHub仓库目前约1.9k星，采用MIT许可。</p>

  <p>采访中他们解释了大厂研究员愿意参与的原因：”因为他们在自己的工作场景里都遇到了这样的问题，想试一下persona agent能不能帮他们解决。”</p>

  <p>名字来自《黑客帝国》（The Matrix），把其中的”I”换成了”AI”。Xiaomin说这是他”小时候就有的构想”。GitHub的README写得更克制：这个模拟世界”用于探索、压力测试和提出假设，不能替代来自真人的证据”。</p>

  <h2 id="section-1">三、问题：离线跑分与线上反馈之间的空白</h2>

  <p>Xiaomin描述了他们在工业界反复遇到的情况：”跑分可能很好，但一上线，真实user的反馈就是不一样。”</p>

  <p>以coding agent为例。同一个问题，有人问得极其详细，有人问得很懒、很含糊。有人喜欢把十个问题塞进一个prompt，有人一轮只问一个。学生每轮都要追问解释。还有人聊着代码忽然讲起新闻，又绕回来。离线benchmark捕捉不到这些差异。</p>

  <p>论文引言里的表述更正式：新手想要解释、小步修改和频繁确认，专家想要简短回答和更大的自主权。这些差异会影响交互轨迹、用户对结果的信任，以及失败后是否愿意继续用。平均分还会掩盖特定人群遇到的问题。</p>

  <p>用LLM扮演用户并不是新想法，τ-bench等benchmark早已这样做。但学界对它的可靠性有具体批评。CMU团队今年3月的一项研究让451名真人完整跑了τ-bench流程，并对比了31个LLM模拟器。他们发现模拟用户过度配合，说话风格单一，缺少真实的挫败感和含糊表达，相当于让agent在”简单模式”下考试，成功率被抬高到超过真人基线。</p>

  <p>MatrAIx针对的就是这个缺口：不再用一个通用的”用户”，而是把多样性引入模拟。</p>

  <h2 id="section-2">四、技术拆解</h2>

  <h3 id="section-3">（一）83亿份档案怎么生成</h3>

  <p><strong>Schema。</strong> 每个persona由1,290个类别型维度描述，分为五组。</p>

  <table>
    <thead>
      <tr>
        <th>组</th>
        <th>维度数</th>
        <th>代表性属性</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>背景</td>
        <td>238</td>
        <td>年龄、地区、语言、教育、家庭、职业、行业</td>
      </tr>
      <tr>
        <td>心理</td>
        <td>210</td>
        <td>性格、价值观、世界观、动机、风险偏好</td>
      </tr>
      <tr>
        <td>能力</td>
        <td>331</td>
        <td>领域专长、通用技能、工具、编程、开发者语境</td>
      </tr>
      <tr>
        <td>行为与交互</td>
        <td>124</td>
        <td>偏好、习惯、交互状态、工作方式、技术采纳</td>
      </tr>
      <tr>
        <td>生活方式</td>
        <td>387</td>
        <td>兴趣、媒体、文化、爱好、运动、饮食、健康、健身</td>
      </tr>
    </tbody>
  </table>

  <p>每个维度的取值是一个有限集合。例如英语水平从Native到None，中间按CEFR分级；风险偏好从risk-averse到risk-seeking。</p>

  <p>采访中他们补充了论文没有展开的设计顺序：人口学维度来自公开数据库，行为类维度则是”先定场景”。团队梳理了50多个AI交互场景，再为每个场景定义交互属性，比如写代码爱不爱写注释、Python熟练度、提问是否啰嗦、一轮问几个问题。1,290维只是第一版，新版已经更多。</p>

  <p><strong>合成路径。</strong> 如果每个维度独立抽样，会出现”19岁的退休外科医生”这类不合理的组合。论文的做法是把1,290个维度建成一张有向无环图（DAG），只有当某个数据源直接报告了条件关系时才加边，然后按拓扑序逐个维度采样。每个非根节点的条件分布形式是：</p>

  <p style="text-align:center">p(X<sub>i</sub> = v | x<sub>Pa(i)</sub>) ∝ π<sub>i</sub>(v) · r<sub>i</sub>(v; x<sub>Pa(i)</sub>) · m<sub>i</sub>(v; x<sub>Pa(i)</sub>)</p>

  <p>πᵢ是全人群先验。rᵢ是基于数据源的似然比调整，例如母语为英语且身在北美时，”Native”的权重上调。mᵢ是取值为0或1的兼容性掩码，用来排除”母语英语但英语水平None”这类矛盾。”母语英语但水平Basic”罕见但并非不可能，所以只被降权而不被排除。这样做的目的是保留少见但真实存在的人，只排除逻辑上不可能的组合。</p>

  <p><strong>真人锚定路径。</strong> 另一部分记录来自六个数据源：Wikipedia传记、按评论者聚合的Amazon评论历史、Stack Overflow开发者调查、美国综合社会调查（GSS）、PRISM Alignment数据集，以及355份自愿填写的MatrAIx问卷。自由文本由LLM做受约束的抽取，证据不支持的维度留空（null）而不补全，姓名和联系方式被剥离。以莎士比亚为例：生平、作品和喜好可以映射进schema，但”他可能没有用过coding agent”，这一维就是缺失的。</p>

  <p><strong>质量控制。</strong> 真人记录用精确哈希加MinHash去重，合成记录在14个高信息量属性上完全相同即视为重复。公开的约100万条核心集里，599,847条来自真人来源（其中Wikipedia 323,438条、Stack Overflow 113,120条、Amazon 97,915条、GSS 63,532条），另有400,000条合成记录。</p>

  <p>文化覆盖方面，档案来源国家大约十多个，但”真正的信息来源可能都是美国的”，美国是他们目前最聚焦的人群和市场。</p>

  <h3 id="agent-1">（二）档案怎么变成会行动的agent</h3>

  <p>档案以文字形式写进system prompt。Xiaomin说，它”就跟你skills一样，是一个skills.md”，里面是文字描述而不是数字向量，形式上更像一份填好的问卷，而不是embedding。</p>

  <p>这个方案的瓶颈是context window。档案会增长，尤其在加入self-evolve之后，”到一定程度context window都容不下”。他们在探索三个方向：</p>

  <ol>
    <li><strong>Routing</strong>：按任务只调用相关属性。吃不吃辣大概率不影响coding style，可以直接剔除。</li>
    <li><strong>更紧凑的表示</strong>，配合针对这种表示的训练，在效率与质量之间取得平衡。</li>
    <li><strong>Steering</strong>：直接把模型引导到特定的persona行为上。</li>
  </ol>

  <p>他们还透露，在纯prompt与完整训练之间，已经找到效果优于prompt的非训练方法。同时他们也计划post-train自己的模型，思路类似Cursor：既允许用户接入不同厂商的模型，也有自研的Composer。自己host模型前期要投入研发，但长期看成本更低，自由度更高。</p>

  <p>执行层面，一次试验被形式化为五元组⟨persona, 任务, agent接口, 模型, 随机种子⟩。试验之间不共享状态，因此天然可以并行。每次试验产出一个artifact包，由任务自带的verifier转成结构化结论。环境分四类。</p>

  <p><img src="/img/posts/matraix-pipeline.png" alt="MatrAIx评测流程" /></p>

  <p><em>MatrAIx评测流程。一条persona档案与模型、任务配对后成为agent，在四类环境之一中行动，轨迹由任务自带的verifier评分。任务数量来自论文的任务库。</em></p>

  <p>应用类任务跑在Docker里的Linux桌面沙箱中，或远程的macOS桌面和iOS模拟器上。任务库的1,010个任务里，问卷类621个，聊天类371个，网页类12个，应用类6个。交互程度越高的环境任务越少，原因是成本：论文里问卷、聊天、网页任务每个模型约用1,000个persona，两个应用任务只用了24个和20个。</p>

  <h3 id="section-4">（三）怎么知道它”像人”</h3>

  <p>这是整个方向最核心的问题。论文把验证拆成几层，每一层回答的问题不同。</p>

  <p><strong>第一层，是否按设定行事（persona adherence）。</strong> 团队选取10个行为属性，每个属性在四类环境中各测一遍，5个persona设为一个极端、5个设为相反极端，共400次试验，由LLM judge评判轨迹。366次符合设定，即91.5%。</p>

  <table>
    <thead>
      <tr>
        <th>环境</th>
        <th>成功率</th>
        <th>强一致的属性数（共10个）</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>问卷</td>
        <td>92–96%</td>
        <td>9</td>
      </tr>
      <tr>
        <td>AI聊天机器人</td>
        <td>92–96%</td>
        <td>9</td>
      </tr>
      <tr>
        <td>网页</td>
        <td>92–96%</td>
        <td>9</td>
      </tr>
      <tr>
        <td>应用</td>
        <td>83%</td>
        <td>6</td>
      </tr>
    </tbody>
  </table>

  <p>这个数字衡量的是agent是否遵守了分配给它的设定，并不衡量它与真人行为是否一致。采访中他们也说，persona adherence在他们看来本质上是一种instruction following能力，所以基座模型越强，这一项越好：”我们其实是站在他们的肩膀上。”</p>

  <p><strong>第二层，抽取是否忠实于来源。</strong> 两个LLM judge给1,000个抽取出的persona打分。6位人类评审对其中100个打出的均分是4.135/5。Claude Opus 4.8的评分有93.8%落在人类均分的1分以内，GPT 5.5为79.2%。</p>

  <p><strong>第三层，结论是否跨模型稳定。</strong> 在一个金融研究工具（OpenBB）任务里，每个persona被赋予从敌意到信任的四档信任倾向。三个模型给出的四组排序完全一致，Cramér’s V在0.228到0.363之间。</p>

  <p>真人一致性是论文没有正面覆盖的一层。采访里他们的说法是：团队会拿来自真实档案的persona与对应真人比对最终选择，比如”选A还是选B”。结果因领域而异。软件工程和computer use差距较小，因为”人能操作的它也能操作”。金融、健康、政治选举”gap都还挺大”。需要真实触感的体验，比如”我真的要喝了才知道喜不喜欢”，目前做不了。论文结论也是同样的立场：把结论用于真实人群或重大决策之前，仍然需要真人研究。</p>

  <p>他们官网上的一篇立场文章讨论了更深一层的问题，题目是”要模拟用户，你得先把LLM变笨”。文章认为前沿模型知道得太多、太稳定、太少失败，拿它直接扮演用户，就测不出真实用户会卡在哪里。</p>

  <h2 id="section-5">五、基座模型换代怎么办</h2>

  <p>采访中我们问：persona只是加在基座模型上的一层，基座换代、模型自身性格变化，模拟会不会跟着漂移？</p>

  <p>他们承认这正是要解决的问题。如果persona只是”浅层的一个layer”，基座一变结果就会变，所以要做能适配不同base model的方法，也要训练自己的模型。他们建议，驱动persona的模型应该作为评测配置的一部分，每个结果都注明；重要发现在指导产品决策前，应换不止一个模型复核。</p>

  <p>他们的技术博客给出了一个实际例子。一家印度AI公司提供的案例里，400个模拟的印度企业主和财务负责人评估四版会计师服务约定书。降低预付款并放宽责任上限的版本，把”只需小改”的比例从0%提高到23%。其中责任条款的影响（+19.63个百分点）远大于付款节奏（+3.38个百分点）。同一批persona换用三个不同模型重跑，结论方向一致，具体比例各不相同。</p>

  <p>他们的另一项研究MicroVerse测的是长程模拟中的身份漂移。25个agent各带一份锁定的”灵魂文件”（价值观与道德底线），进入水资源不足的沙漠网格。研究者对比这份固定文件与agent自己持续改写的”生活日志”之间的差距。在同一张地图上，Qwen3-32B找到绿洲后就留下，Claude Haiku找到水后还在不停迁移，12次运行里有11次全员死亡。他们据此提醒：给agent设定冷酷人格时，测到的可能是模型自带的安全习惯，而不是他们以为部署了的那个persona。</p>

  <h2 id="section-6">六、客户是谁，买的是什么</h2>

  <p><strong>客户画像。</strong> 目前的客户主要是LLM模型和数字产品厂商：有做通用模型的大厂，也有专攻垂直领域模型的实验室。主攻方向是电商、游戏和广告。询问来自十多个国家，包括新加坡、日本、阿根廷、柬埔寨、墨西哥、瑞士、瑞典和中国。不少海外团队的目标市场其实还是美国。小商家（比如餐馆老板）、一人公司和学术研究者也在询问。</p>

  <p><strong>有意不做的领域。</strong> 政府合作和政治选举他们基本不碰。主要原因是敏感度高，而且这类结果不太取决于persona，很容易被黑天鹅事件左右，比如一次枪击或一场地震。金融市场预测同理。这一点与Aaru等竞品形成区别，后者的特长正是预测选举和群体行为。</p>

  <p>“frontier lab和big tech给我们的反馈是，钱他们不是那么在乎，save的时间反而是最重要的。他们不想等十天，想半天甚至几个小时就出一轮，然后立刻去改training、改harness。”话虽如此，他们在成本上也有优势。官网的成本分析给出了金额：1万份问卷，真人方案的成本在28,560美元以上，模拟方案在3.60到104美元之间；1,000段对话，真人方案8,568美元以上，模拟方案3到87美元。</p>

  <p>他们还提到了真人评测相比模拟的三个劣势：</p>

  <ol>
    <li><strong>规模不具代表性。</strong> 模型面向十亿用户，真人评测只能找到五万到十万人。</li>
    <li><strong>标注者分布偏。</strong> 他们见过最后发现八成标注者集中在东南亚某一个国家的情况。</li>
    <li><strong>信号噪声大。</strong> 用户中断对话，可能只是临时离开，过后又回来了。真人通常只给一个赞或踩，模拟用户则每次都能写出理由。</li>
  </ol>

  <p>但他们把自己定位为补充而非替代：”可以先在我们这边快速迭代，再做一轮最后的human eval。”</p>

  <p><strong>交付物不止评测报告。</strong> 模拟产生的多轮交互数据可以用于SFT。团队还提供RL用的reward model，其中”不只包含task completion，也包含每个用户自己的user satisfaction”。</p>

  <p><strong>赛道背景。</strong> 斯坦福”Smallville”作者Joon Sung Park创办的Simile，今年2月宣布1亿美元A轮，7月底又以20亿美元估值完成2亿美元B轮。Aaru去年12月的A轮由Redpoint领投，部分股权按10亿美元估值成交。这些公司大多从市场调研切入，更偏定性研究和深度访谈，目标是预测某个人或某个群体，而MatrAIx要做的是”large scale的persona agent deployment”。Xiaomin补充说，模型迭代现在”不依赖每两周改一套算法”，靠的是hill climbing，也就是找到最强的模型仍会失败的地方。”他们的target可能真的要去预测一个人；我们的target是通过simulation带来人的多样性，找到模型潜在的问题。”</p>

  <h2 id="dynamic-persona">七、Dynamic persona与镜像世界</h2>

  <p>新版本里，persona不再是静态的。情绪和工作状态会变，agent会self-evolve，有记忆，甚至有社交关系，不过关系网暂时受限：”每个人都要认识上万人的话，就不太efficient了。”</p>

  <p>具体做法是以大事件驱动。团队把现实中的新闻输入进去，比如加州地震，让特定地区、特定群体的agent”像人一样去做出反应”，反应写入各自的memory。目前模拟世界与现实时间流速一致。可以加速，但加速之后”就失去了很多现实生活中的big events去做projection”。</p>

</div>

<script>
(function() {
  var buttons = document.querySelectorAll('.lang-switcher .lang-btn');
  var contents = document.querySelectorAll('.lang-content');
  buttons.forEach(function(btn) {
    btn.addEventListener('click', function() {
      var lang = btn.getAttribute('data-lang');
      buttons.forEach(function(b) { b.classList.remove('active'); });
      btn.classList.add('active');
      contents.forEach(function(c) {
        if (c.classList.contains('lang-' + lang)) {
          c.style.display = '';
        } else {
          c.style.display = 'none';
        }
      });
    });
  });
})();
</script>]]></content><author><name>Jinyan Su</name><email>jinyansu6@gmail.com</email></author><category term="technical" /><category term="ai" /><category term="evaluation" /><category term="agents" /><category term="persona" /><category term="simulation" /><category term="llm" /><category term="interview" /><summary type="html"><![CDATA[Behind 8.3 billion simulated users, a startup is targeting the part of AI evaluation that benchmarks never measured. An interview with Xiaomin Li and Yuexing Hao, the two founders of MatrAIx: how the personas get built and turned into agents, what "91.5%" actually measures, what happens when the base model changes, and the "mirror world" idea behind the name.]]></summary></entry><entry><title type="html">Where AI Self-Improvement (RSI) Stands: 8 Takeaways / AI 自我改进（RSI）走到哪一步了：8 条 take away</title><link href="https://jinyansu1.github.io/blog/2026/10/rsi-8-takeaways/" rel="alternate" type="text/html" title="Where AI Self-Improvement (RSI) Stands: 8 Takeaways / AI 自我改进（RSI）走到哪一步了：8 条 take away" /><published>2026-10-04T00:00:00+00:00</published><updated>2026-10-04T00:00:00+00:00</updated><id>https://jinyansu1.github.io/blog/2026/10/rsi-8-takeaways</id><content type="html" xml:base="https://jinyansu1.github.io/blog/2026/10/rsi-8-takeaways/"><![CDATA[<div class="lang-switcher">
  <button type="button" class="lang-btn active" data-lang="en">English</button>
  <button type="button" class="lang-btn" data-lang="zh">中文</button>
</div>

<div class="lang-content lang-en" lang="en">

  <p>On October 3, <a href="https://nice-intl.github.io/">NICE</a> hosted an online workshop, “Mechanisms, Evidence and Limits of AI Self-Improvement,” with four researchers who work on this topic: Chengsong Huang (PhD student, Washington University in St. Louis), Shilong Liu (postdoc at Princeton University, joining Columbia University as an assistant professor in fall 2027), Da Yin (NeoCognition) and Cheng Qian (PhD student, UIUC). They discussed the main approaches to RSI, its current bottlenecks, how to evaluate it, and what it means for academia and industry. I summarized the discussion in the 8 takeaways below.</p>

  <h2 id="rsi-improves-the-whole-system-not-just-the-model">1. RSI improves the whole system, not just the model</h2>

  <p>When people say “self-improvement” today, what gets improved is a whole agent system. At least three parts of it can be changed.</p>

  <ul>
    <li><strong>Weights.</strong> Training changes the model itself.</li>
    <li><strong>Harness.</strong> The tools, memory and execution flow wrapped around the model. Changing it does not require retraining the model.</li>
    <li><strong>Environment and data.</strong> Huang’s view is that whatever algorithm you use to optimize an agent, you need training data that is harder and closer to the downstream task, and for agents that data is the environment. A stronger model can synthesize better environments, and better environments in turn train a stronger model.</li>
  </ul>

  <p>The three advance in turns. Qian calls it an “upward spiral”: components of the harness get trained into the model’s own abilities, and the stronger model then needs a new harness. Liu’s research trajectory followed the same order: first let the model build its own tools, then let it explore in environments, and finally train the model on the weakly supervised data that the exploration produced.</p>

  <p>If all three can be changed, they should be changed together. Huang argues that co-optimizing them can never do worse than optimizing each one separately; the only cost is that the optimization itself becomes harder.</p>

  <p>Yin offered an analogy. In snooker it is hard to say which cue is the best. Results come from a player’s long practice with their own cue, and even a top player may not reach the same level with a different one. Models and harnesses work the same way: every company has its own infrastructure and data distribution, so company A’s training recipe may not work well on company B’s harness.</p>

  <p>There is also the question of who does the improving. Qian divides self-improvement into three levels: revising the current answer, accumulating experience across tasks, and getting better at generating and selecting improvements. Their AI for AI work sits mainly at the third level. In the past, people designed a harness or a set of skills to make the executor more capable. Now a builder AI builds the harness, writes the environments and does the debugging for a target AI, and the relationship between the two resembles that of an advisor and a PhD student.</p>

  <h2 id="what-rsi-can-do-today-and-what-it-cannot-do-yet">2. What RSI can do today, and what it cannot do yet</h2>

  <p>RSI works this time because models can now run the whole improvement loop on their own, and after each change they can find out quickly and cheaply whether the change was right. Tasks where that is not possible mark its current limits: writing, which people have to judge, and scientific questions that need experiments in the physical world.</p>

  <p>Why now? Qian gave three reasons:</p>

  <ol>
    <li>Foundation models can handle every step of the loop on their own: reading code, proposing changes, running experiments, analyzing feedback and recording what they learned. No person is needed to connect the steps.</li>
    <li>Harnesses made improvement cheap. Without retraining the model, you can change how a tool is wrapped, the memory policy or the execution flow, and test the change directly on the existing model.</li>
    <li>There are more executable environments. Reinforcement learning has its gyms, and many new benchmarks are no longer “one input, one output” but sandboxes in which an agent can act freely. In environments like these a system gets more direct feedback.</li>
  </ol>

  <p>Liu’s view is that a person plus a computer has always been an RSI system. The person’s bandwidth is just too narrow, and a person cannot run 24 hours a day, seven days a week. The loop only became fast once LLMs took over some of the person’s steps.</p>

  <p>Huang pointed to the most important condition: reward has to be cheap. When his team used AI to optimize test-time scaling algorithms, the obstacle was the long wait for each reward. They then precomputed the results and turned the setup into a static simulation. Once reward came back quickly, optimizing the algorithm “became a very simple thing.” If the problem is then recast as writing code or text (code as policy), a language model can take it over.</p>

  <p>So what can it not do yet? Liu’s assessment is that when the environment is verifiable, a model will do well given some time. The hard cases are those where results are difficult or expensive to verify, such as science and engineering problems in the physical world. Huang’s example is writing: whether a revision is better still has to be decided by people in an A/B test, each round of feedback takes a long time, and so the loop is slow. In his view, RSI has little trouble with any problem that can be written as code and gives reward easily. The bottleneck is that many real-world settings cannot be modeled that way.</p>

  <p>For Liu, the central problem of RSI is how to get good reward from the real world. A connecting layer is still missing between today’s AI systems and real problems in work and daily life. He considers this the most important piece and also the hardest, but “once the connection is made, it can develop well on its own.”</p>

  <p>He added that real-world problems never come with a perfect reward anyway. People also rely on many proxy tasks to filter out wrong answers layer by layer. So there is no need to reach 100% in one step; getting a little better each time is enough.</p>

  <h2 id="the-environment-is-the-overlooked-knob">3. The environment is the overlooked knob</h2>

  <p>An agent learns from the trajectories it produces by interacting with an environment. Yet people have only optimized the agent side, while the environment side is expensive and never changes. This is the starting point of EnvHarness, a paper Huang wrote during an internship at Google.</p>

  <p>First, the cost. The 89 environments in Terminal-Bench 2.0 each took an expert 15.9 hours on average, about 1,400 hours in total. The 33 environments in APEX-Agents are heavier: about 485 hours each, about 16,000 hours in total, or $1.6 million at $100 an hour. Training needs thousands or tens of thousands of environments, and people cannot build that many by hand.</p>

  <p>Second, the environments do not change. Once built, an environment has one fixed difficulty: a weak model never solves it, a strong model finds it too easy, and neither learns anything. Even if the difficulty is right at the start, the environment stops being useful after a few rounds of training make the model stronger.</p>

  <p>EnvHarness does not build new environments. It wraps a harness around an existing one, the same idea as an agent harness wrapped around a frozen model. The task itself and the verifier that decides whether the task is done stay untouched. Only four things are adjusted: the initial state, the actions, the observations and the state transitions. It has three components:</p>

  <ul>
    <li><strong>Stage</strong> changes the initial state. Take the task “put a clean mug on the table”: hide the mug in a drawer first and the task gets harder; put the mug in the agent’s hand in advance and it gets easier.</li>
    <li><strong>Contract</strong> changes the rules. Disable the shortcut action that goes straight to a location, and the agent has to learn to navigate.</li>
    <li><strong>Chain</strong> links several short tasks into one long task. Finishing one does not end the episode; the agent goes on to the next.</li>
  </ul>

  <p>The harness is written by another agent, called EnvRigger. It reads the trajectories the policy produced, finds systematic weaknesses, writes a piece of harness code, and then has the policy run a new batch of trajectories in the modified environment to validate the change. If the task has become unsolvable, or no longer poses any challenge, the change is rejected.</p>

  <p>The talk included an example from SWE-bench. The policy kept submitting patches without running the failing test, so EnvRigger wrote a fake pre-commit hook that blocks such submissions. From this the policy learned a skill: run the tests both before and after a change. In this experiment EnvRigger and the policy being trained used the same model, so the gain was not distilled from a stronger model.</p>

  <h2 id="the-biggest-technical-bottleneck-is-attribution">4. The biggest technical bottleneck is attribution</h2>

  <p>The middle step of self-improvement is diagnosis: see a failure, find its cause, and propose a change that can be tested. Qian considers this the main bottleneck right now.</p>

  <p>The difficulty is that the same surface symptom can have entirely different causes. A failure may come from reasoning, from a tool interface, from missing information or interference from the memory module, or even from a misreading of the training objective, and each calls for a different intervention. Until now this step has relied on human experience.</p>

  <p>The weakness of today’s models is that they work bottom-up. They look at what went wrong case by case and then patch each case. A person works top-down: first judge where the overall approach is flawed, then verify. Attribution by patching one case at a time overfits easily.</p>

  <p>Qian suggested two directions.</p>

  <ul>
    <li><strong>Diagnosis needs evidence.</strong> Look at intermediate states, at the gap between the expected result and the actual feedback, and at actual resource use, and infer the cause from these. The system cannot be treated as a black box.</li>
    <li><strong>Attribution needs controlled experiments.</strong> As in an ablation study in a paper, replace or remove one of the model, the tools, the memory or the execution flow, or replay the run, and see how the result changes. Today this work is done mostly by people.</li>
  </ul>

  <p>His conclusion: what the system needs to be taught is not a trick for some benchmark but a more abstract way of thinking, namely how to test a hypothesis.</p>

  <p>EnvRigger, described above, can be seen as a small-scale implementation of this idea. It looks for systematic weaknesses across many trajectories instead of targeting a single case.</p>

  <h2 id="gains-from-self-iteration-saturate-quickly-and-a-higher-score-does-not-mean-more-capability">5. Gains from self-iteration saturate quickly, and a higher score does not mean more capability</h2>

  <p>Qian described a pattern from their experiments. They had a model improve its own harness repeatedly and measured the effect after each round. On the held-out set, the score rose for the first few rounds and stopped rising by the fourth or fifth. So more iteration does not mean better results. But the model cannot tell when to stop. In Qian’s words, cost control “may simply not be on its mind”: when the results stop improving, it keeps adding rounds. Optimization that keeps polishing small details overfits more and more, and in the end the score can even drop.</p>

  <p>People work differently. They try an idea on a small portion of the data first and commit large-scale resources only after it proves effective. That small portion should also be as diverse as possible, so that it exposes as many problems as possible. Qian thinks this staged allocation of resources is exactly what systems need to learn.</p>

  <p>Huang added that RSI easily overfits to the task at hand. What it finds may be a shortcut, or even a way to hack the task outright. So one has to tell apart an agent that has really become stronger from one that has only become better at this kind of problem.</p>

  <p>An audience member asked whether self-improvement that cannot loop forever still counts as RSI. Huang answered that a model has a finite number of parameters, so its ability must have a ceiling, and “hoping that RSI can improve without limit is unrealistic.” What matters is how fast a system approaches the ceiling, and whether it can sense how far it is from saturation so that it can stop early.</p>

  <p>Qian added that the number of iterations should not be a threshold in the definition. A loop stops when the budget runs out or when marginal gains shrink. What matters is whether the overall direction is upward.</p>

  <h2 id="a-traintest-split-is-not-enough-to-evaluate-rsi">6. A train/test split is not enough to evaluate RSI</h2>

  <p>For a system that finds shortcuts on its own, setting aside a test set does not prevent data leakage or reward hacking. How should it be evaluated, then? Each of the four speakers offered an approach.</p>

  <p><strong>Use one-time evaluations tied to a point in time.</strong> This is Huang’s proposal. One kind is prediction: put the old and new versions of a model into a real market at the same time, or have them predict future events. Nobody knows the answers in advance, so nothing can leak. The other kind is human A/B testing. The price is high cost and slow results, which means an RSI algorithm cannot be measured online.</p>

  <p><strong>Or step back and use fully controlled synthetic environments.</strong> The compromise Liu described is to build your own environments and fill them with synthetic data the model has never seen. But he thinks evaluation ultimately has to land in real workflows such as finance, law and medicine, where people have already defined many metrics.</p>

  <p><strong>Environments should be realistic, controllable and dynamic.</strong> These are Qian’s three criteria. Controllable means, first of all, reproducible: the larger the environment, the less stable the results when different people test the same model. Because RSI runs for many rounds, controllable also means that the gain from each round can be measured separately. Dynamic means that the environment reveals constraints or user intent step by step, which tests how a model adapts when results differ from what it expected. Realistic and controllable pull against each other, however: real-world signals are messy and hard to turn into a structured environment, while an environment built entirely by hand or by an LLM looks fake.</p>

  <p><strong>Decide first which learning challenge you want to test.</strong> Yin argues that an RSI benchmark cannot be just a subset of an older benchmark. It needs a learning challenge of its own, and efficiency and cost should be part of the metrics. When his team built ApprenticeBench, preventing reward hacking still depended on a lot of people reading agent trajectories. He thinks that detecting this behavior at scale could be a benchmark in itself.</p>

  <p>The host, Dawei Li, added an observation: these problems closely resemble the ones met earlier when evaluating the reasoning ability of large models, namely memorization, data leakage and overfitting to one domain. Lessons from that work, such as continuously updated evaluations and synthetic data, can be borrowed here.</p>

  <h2 id="efficiency-is-an-underrated-metric">7. Efficiency is an underrated metric</h2>

  <p>Yin stressed repeatedly that most RSI research today focuses on frontier capability, but in deployment it turns out that agents do not get more practiced the more they work.</p>

  <p>He looks at RSI in the setting of enterprise deployment. A new hire reads the documentation, learns the software, practices hands-on and gets feedback from a manager, and eventually becomes proficient. For AI to enter a company’s workflow, it has to go through the same process. ApprenticeBench, recently released by his company NeoCognition, tests exactly this. The job it chose is construction finance accounting, an ordinary white-collar accounting role that does not need a particularly smart model.</p>

  <p>People are also unpracticed at first. But after doing the same kind of task dozens or hundreds of times, they always get faster, moving from System 2, which requires thinking, to System 1, which does not. In their evaluation, models showed no such shift at all. As he put it: “It makes no sense that after an agent has done 100 tasks, the time and cost it spends are about the same as before, or even higher than at the start.”</p>

  <p>He proposed three directions:</p>

  <ul>
    <li>Index and organize learned experience better, so that it can be retrieved quickly when a similar situation comes up.</li>
    <li>Turn the repeated procedures in the work into reusable skills or tools.</li>
    <li>Learn the job with a frontier model first, then compress the workflow knowledge it gained into a smaller, more specialized model.</li>
  </ul>

  <p>This is not only an enterprise problem. Yin said that when training one generation of models after another, people likewise want to distill the reusable knowledge from earlier iterations so that later ones need fewer experiments. Questions of efficiency and cost like these happen to be a direction that academia can afford to work on and that is still at the frontier.</p>

  <h2 id="the-human-role-moves-up-a-level">8. The human role moves up a level</h2>

  <p>Once AI takes over solving problems that are already well defined, the value of people lies in finding the problem and defining it clearly.</p>

  <p>Liu’s view is that people have always been moving up one layer of abstraction at a time: from assembly to C++ and Python, and then to neural network frameworks. In the early days everyone still wrote gradient descent by hand. The lower layers still matter, but most people can put their effort where it is closer to applications and creates more value. This is not necessarily a bad change.</p>

  <p>Huang has reviewed papers written by a fully automated research system. His impression is that the defining feature of a purely AI-generated paper is that it “uses experiments to prove something that is not necessarily an important question.” AI is very good at incremental improvement on well-defined problems, such as pushing a benchmark score a little higher.</p>

  <p>Real research is more about discovering a problem and then defining it clearly: what the input is, what the output is, and what the metric is. The rest can be handed to AI. “We have gone from being a PhD student to being a PI, from someone who writes code to a project manager, from someone who solves problems to someone who finds them.”</p>

  <p>Qian said that human insight should go into the meta level. The question used to be how to be a good PhD student. Now the question is how to be a good advisor: how to give downstream agents a more stable harness, environment and feedback mechanism, so that their self-iteration can keep running reliably.</p>

</div>

<div class="lang-content lang-zh" lang="zh" style="display: none;">

  <p>10 月 3 日，NICE 举办了一场线上的 workshop「AI 自我改进的机制、证据与边界」邀请了四位这个方向的研究者：<strong>黄呈松</strong>（圣路易斯华盛顿大学博士生）、<strong>刘世隆</strong>（普林斯顿大学博士后，2027 年秋将任哥伦比亚大学助理教授）、<strong>殷达</strong>（NeoCognition）和<strong>钱成</strong>（UIUC 博士生），一起讨论 RSI 的主流路线、当前瓶颈、评测方法，以及它对学术界和工业界的影响。下面是这次讨论总结成的8 条 take away。</p>

  <h2 id="rsi-">1. RSI 改的是整个系统，不只是模型</h2>

  <p>今天说”自我改进”，改的对象已经是一整套 agent 系统，能动的地方至少有三处。</p>

  <ul>
    <li><strong>权重。</strong> 通过训练改模型本身。</li>
    <li><strong>Harness。</strong> 包在模型外面的工具、记忆和执行流程，改它不用重训模型。</li>
    <li><strong>环境和数据。</strong> 黄呈松的看法是，不管用什么算法优化 agent，都需要更难、更贴近下游任务的训练数据，在 agent 场景里这就是环境。模型变强后能合成更好的环境，更好的环境再训出更强的模型。</li>
  </ul>

  <p>这三处会交替推进。钱成的说法是”螺旋上升”：harness 里的部件会被训进模型自己的能力，模型变强之后又需要新的 harness。刘世隆的组走过的路线也是这个顺序：先让模型自己造工具，再到环境里探索，最后用探索得到的弱监督数据训模型。</p>

  <p>既然都能改，就该一起改。黄呈松认为，协同优化的结果一定不差于单独优化，代价只是优化过程更难。</p>

  <p>殷达打了个比方：斯诺克里很难说哪根球杆最好，成绩来自球员和自己那根杆的长期磨合，换一根杆，顶尖球员也可能再打不出原来的成绩。模型和 harness 同理：各家公司的基础设施和数据分布都不一样，A 公司的训练配方搬到 B 公司的 harness 上未必好用。</p>

  <p>还有一个问题是谁来改。钱成把自我改进分成三层：修改当前答案，跨任务积累经验，提升”产生和筛选改进方案”的能力。他们做的 AI for AI 主要在第三层。过去是人设计一套 harness 或 skill 去提升执行者的能力；现在让一个 builder AI 给 target AI 搭 harness、写环境、做 debug，两者的关系像导师和博士生。</p>

  <h2 id="rsi">2. 现在RSI哪些能做，哪些还暂时不能做？</h2>

  <p>RSI 这一轮能做起来，是因为模型已经能自己跑完整个改进循环，而且每改一次，都能又快又便宜地知道改对了没有。做不到这一点的任务，比如要靠人来评判的写作、要到物理世界里做实验的科学问题，就是它现在的能力边界。</p>

  <p>为什么现在能做起来？钱成总结了三个原因：</p>

  <ol>
    <li>基础模型能独立承担闭环里的每个环节：读代码、提修改意见、跑实验、分析反馈、记录经验，中间不再需要人来衔接。</li>
    <li>Harness 让”改进”变便宜了。不用重训模型，改一下工具包装、记忆策略或执行流程，就能直接在现有模型上验证。</li>
    <li>可执行的环境多了。强化学习里有各种 gym，很多新的 benchmark 也不再只是”一个输入、一个输出”，而是 agent 可以在里面自由执行的沙盒。系统在这样的环境里能拿到更直接的反馈。</li>
  </ol>

  <p>刘世隆认为：人加电脑本来就是一个 RSI 系统，只是人的带宽太窄，没法一周七天、一天二十四小时地转。LLM 接手了人的一部分环节，循环才快起来。</p>

  <p>黄呈松点出了其中最关键的一条：reward 要便宜。他们用 AI 优化 test-time scaling 算法时，卡住的地方是每拿一次 reward 都要等很久。后来把结果提前跑好、改成静态模拟，reward 能很快拿到，优化算法就”变成了一个非常简单的事情”。再把问题改写成写代码或写文本（code as policy），语言模型就能接手。</p>

  <p>那哪些还暂时不能做？刘世隆的判断是，环境可验证时，给模型一些时间它就能做好；难的是不容易验证、或者验证成本很高的场景，比如真实物理世界里的科学和工程问题。黄呈松举的例子是写作：一版改得好不好，目前还得靠人做 A/B test，每轮反馈隔得很久，循环自然慢。在他看来，一个问题只要能写成代码、又容易拿到 reward，RSI 就没什么问题；瓶颈在于很多真实场景没法建模成这样。</p>

  <p>刘世隆认为，RSI 最核心的问题，是怎么从真实世界里拿到好的 reward。现在的 AI 系统和真实的生产、生活问题之间，还缺一个把两边接起来的连接层。他觉得这件事最重要，也最难，不过”只要连接上了，它自己就可以发展得很好”。</p>

  <p>他还补充，真实世界的问题本来也没有完美的 reward，人们同样是靠大量 proxy 任务一层层筛掉错的答案。所以不必一步做到 100%，每次比之前好一点就够了。</p>

  <h2 id="section">3. 环境是被忽视的那个旋钮</h2>

  <p>Agent 靠它和环境交互出来的轨迹学习，可是大家一直只优化 agent 这一侧，环境那一侧又贵又不会变。这是黄呈松在 Google 实习期间的论文 EnvHarness 的出发点。</p>

  <p>先说贵。Terminal-Bench 2.0 的 89 个环境，平均每个要花一位专家 15.9 小时，合计约 1,400 小时。APEX-Agents 的 33 个环境更重，每个约 485 小时，合计约 16,000 小时，按每小时 100 美元算是 160 万美元。训练要的是成千上万个环境，靠人造不出来。</p>

  <p>再说不会变。一个环境造好之后只有一个固定难度：对弱模型永远做不对，对强模型又太简单，两头都学不到东西。即使一开始难度合适，模型训几轮变强之后，这个环境也就失效了。</p>

  <p>EnvHarness 的做法是不新建环境，给现成的环境套一层 harness，思路和 agent harness 包在冻结的模型外面一样。任务本身和判定任务是否完成的 verifier 都不动，只调初始状态、动作、观测和状态转移这四样。它有三个组件：</p>

  <ul>
    <li><strong>Stage</strong> 改初始状态。任务是”把洗干净的马克杯放到桌上”：把杯子先藏进抽屉，任务变难；提前替 agent 把杯子拿好，任务变简单。</li>
    <li><strong>Contract</strong> 改规则。禁掉”直接走到某处”的快捷动作，agent 就必须学会导航。</li>
    <li><strong>Chain</strong> 把几个短任务串成一个长任务，前一个做完不结束，接着做下一个。</li>
  </ul>

  <p>写这层 harness 的是另一个 agent，叫 EnvRigger。它读策略跑出来的轨迹，找出系统性的弱点，写一段 harness 代码，再让策略在改过的环境里重新跑一批轨迹来验证。如果任务变得无解，或者毫无挑战，这次修改就被拒绝。</p>

  <p>报告里举了一个 SWE-bench 上的例子。策略总是不跑那个失败的测试就提交补丁，EnvRigger 于是写了一个假的 pre-commit hook，把这类提交拦下来。策略由此学到一条技能：改之前和改之后都跑一遍测试。这个实验里 EnvRigger 和被训练的策略用的是同一个模型，所以提升不是从更强的模型蒸馏来的。</p>

  <h2 id="section-1">4. 最大的技术卡点是归因</h2>

  <p>自我改进的中间一步是诊断：看到失败，找到原因，再提出一个可以验证的修改。钱成认为这是眼下最主要的卡点。</p>

  <p>难处在于，同一种表面现象可能有完全不同的原因。一次失败可能来自推理，来自工具接口，来自信息缺失或记忆模块的干扰，甚至来自对训练目标的理解有偏差，每种都需要不同的干预。过去这一步靠的是人的经验。</p>

  <p>模型现在的毛病是自下而上。它会 case by case 地看错在哪，再反过来打补丁。人会先自上而下地判断整体思路哪里有问题，再去验证。逐例打补丁式的归因很容易过拟合。</p>

  <p>钱成给了两个方向。</p>

  <ul>
    <li><strong>诊断要有证据。</strong> 看中间状态，看预期结果和实际反馈之间的差距，看实际的资源消耗，再从这些去推原因，不能把系统当黑盒。</li>
    <li><strong>归因要做对照实验。</strong> 像论文里做消融实验那样，把模型、工具、记忆、执行流程里的某一样替换掉或去掉，或者 replay 一遍，看结果怎么变。这些事现在主要是人在做。</li>
  </ul>

  <p>他的结论是，要教给系统的不是某个 benchmark 上的技巧，而是”怎么做假设检验”这种更抽象的思考方式。</p>

  <p>前面提到的 EnvRigger 可以看成这个思路的一个小规模实现。它从多条轨迹里找系统性的弱点，而不是只针对于单个 case。</p>

  <h2 id="section-2">5. 自我迭代的收益饱和得很快，而且分数涨了不等于能力涨了</h2>

  <p>钱成讲了他们实验里的一个现象。他们让模型反复改进自己的 harness，每改一轮就测一次效果。结果在隐藏集上，分数前几轮在涨，到第四五轮就不再涨了。所以并不是迭代得越多，效果就越好。但是模型判断不了什么时候该停，钱成说，成本控制这件事”可能根本就不在它的脑子里”：效果上不去，它还会继续加轮数。抠细节式的优化越做越过拟合，最后甚至会掉点。</p>

  <p>人的做法不一样。先在一小部分数据上试，确认有效再投入大规模资源。这一小部分还要挑得尽量多样，能暴露的问题越多越好。钱成认为，系统要学会的正是这种分阶段的资源分配。</p>

  <p>黄呈松补充道，RSI 很容易过拟合到手上的任务，找到的可能是捷径，甚至是直接 hack 了这个任务。所以要分清，agent 是真的变强了，还是只是更会做这一类题。</p>

  <p>有观众问：不能无限循环的自我提升，还算不算 RSI？黄呈松回答说，模型的参数量有限，能力一定有上限，”希望 RSI 可以无限提升是个不现实的事情”。值得关心的是多快能接近上限，以及能不能感知离饱和还有多远，好提前停下来。</p>

  <p>钱成补充，迭代次数不该成为定义的门槛。预算用完、边际收益递减都会让循环停下，要看的是大方向是不是在往上走。</p>

  <h2 id="rsitraintest-">6. 评测 RSI，train/test 切分不够用</h2>

  <p>一个会自己找捷径的系统，靠”划一个测试集”防不住数据泄露和 reward hacking。那该怎么评测？四位嘉宾各给了一个思路。</p>

  <p><strong>用一次性的、和时间绑定的评测。</strong> 这是黄呈松的主张。一类是预测：把新旧两版模型同时放进真实市场，或者让它们预测未来的事件，答案事先谁都不知道，也就没有泄露。另一类是让人做 A/B test。代价是成本高、出结果慢，没法在线地衡量一个 RSI 算法。</p>

  <p><strong>或者退一步，用完全可控的合成环境。</strong> 刘世隆提到的折中办法是自己构造环境，放进模型从没见过的合成数据。但他认为最终还是要落到金融、法律、医疗这些真实的工作流里，那里有大量人们已经定义好的指标。</p>

  <p><strong>环境要做到真实、可控、动态。</strong> 这是钱成的三个标准。可控首先是可复现：环境越大，同一个模型由不同的人测出来的结果越不稳定。RSI 要迭代很多轮，可控指的是，能分别衡量每一轮迭代带来了多少提升。动态指环境会逐步揭示约束或用户意图，考的是模型发现结果和预想不一样时怎么适应。但是，真实和可控互相矛盾：真实世界的信号是乱的，很难做成结构化的环境；全靠人工或 LLM 构造，又会显得很假。</p>

  <p><strong>先想清楚要考的学习难点是什么。</strong> 殷达认为一个 RSI benchmark 不能只是旧 benchmark 的子集，得有自己要考的 learning challenge，效率和成本也应该算进指标。他们做 ApprenticeBench 时，防 reward hacking 靠的还是大量人力去看 agent 的轨迹。怎么可扩展地发现这类行为，他觉得本身就可以做成一个 benchmark。</p>

  <p>主持人李大卫补了一个观察：这些问题和当年评测大模型推理能力时遇到的很像，都是死记硬背、数据泄露、在一个领域上过拟合。实时更新的评测和合成数据等经验，是可以在这里借鉴的。</p>

  <h2 id="section-3">7. 效率是被低估的指标</h2>

  <p>殷达反复强调， 现在的 RSI 研究大多盯着前沿能力，落地时发现agent 不会越做越熟。</p>

  <p>他把 RSI 放进企业部署的场景里看。新人入职要读文档、学软件、上手操练、拿上级的反馈，最后成为熟手。AI 要进入企业的工作流，也得走一遍这个过程。他所在的 NeoCognition 最近发布的 ApprenticeBench 考的就是这件事，选的岗位是 construction finance accounting，一个普通的会计类白领岗位，并不需要多聪明的模型。</p>

  <p>人刚上手时也生疏，但同一类事反复做上几十上百回，一定越来越快，从需要想的 System 2 变成不用想的 System 1。在他们的评测里，模型完全没有表现出这种转变。他评论道：”你没有道理说这个 agent 做了 100 个 task，它花的时间和 cost 还是跟之前差不多，甚至比一开始还要更高一些。”</p>

  <p>他提了三个可做的方向：</p>

  <ul>
    <li>更好地索引和组织学过的经验，遇到类似情况能快速取回来。</li>
    <li>把工作里重复的流程沉淀成可以反复使用的 skill 或工具。</li>
    <li>先用前沿模型把事情学会，再把学到的工作流知识压缩进更小、更专的模型。</li>
  </ul>

  <p>这不只是企业的问题。殷达说，从一代模型训到下一代，同样希望把前几轮迭代里可复用的知识总结下来，后面少做些实验。这类效率和成本的问题，恰好是学界做得起、又足够前沿的方向。</p>

  <h2 id="section-4">8. 人的位置上移一层</h2>

  <p>AI 接手”解决已经定义好的问题”之后，人的价值在于找到问题，并把它定义清楚。</p>

  <p>刘世隆认为，人一直在一层层往上抽象：从汇编到 C++、Python，再到神经网络框架，早年大家还要手写梯度下降。底层仍然重要，但大多数人可以把精力放到离应用更近、更能产生价值的地方。这未必是坏的变化。</p>

  <p>黄呈松参与过一个全自动科研系统所写论文的审稿。他的感受是，纯 AI 生成的论文最大的特点是”用实验证明了一个不一定是很重要的问题”。AI 很擅长在定义完善的问题上做增量改进，比如把一个 benchmark 的分数再推高一点。</p>

  <p>真正的研究更多是发现一个问题，再把它定义清楚：输入是什么，输出是什么，指标是什么。后面的事可以交给 AI。”我们从一个 PhD 变成了一个 PI，从一个写 code 的人变成了 project manager，从解决问题的人变成了一个找问题的人。”</p>

  <p>钱成说：人的 insight 应该注入到 meta 层。以前讨论的是怎么做一个好的博士生，现在该想的是怎么做一个好的导师，也就是怎么给下游的 agent 提供更稳的 harness、环境和反馈机制，让它的自我迭代能稳定地跑下去。</p>

</div>

<script>
(function() {
  var buttons = document.querySelectorAll('.lang-switcher .lang-btn');
  var contents = document.querySelectorAll('.lang-content');
  buttons.forEach(function(btn) {
    btn.addEventListener('click', function() {
      var lang = btn.getAttribute('data-lang');
      buttons.forEach(function(b) { b.classList.remove('active'); });
      btn.classList.add('active');
      contents.forEach(function(c) {
        if (c.classList.contains('lang-' + lang)) {
          c.style.display = '';
        } else {
          c.style.display = 'none';
        }
      });
    });
  });
})();
</script>]]></content><author><name>Jinyan Su</name><email>jinyansu6@gmail.com</email></author><category term="technical" /><category term="ai" /><category term="rsi" /><category term="self-improvement" /><category term="agents" /><category term="llm" /><category term="environments" /><category term="workshop" /><summary type="html"><![CDATA[On October 3, NICE hosted an online workshop on the mechanisms, evidence and limits of AI self-improvement, with four researchers who work on RSI. The main approaches, the current bottlenecks, how to evaluate it, and what it means for academia and industry — summarized in 8 takeaways.]]></summary></entry><entry><title type="html">PhD or Working— My two cents / 选择读博还是工作</title><link href="https://jinyansu1.github.io/blog/2026/09/phd-or-working/" rel="alternate" type="text/html" title="PhD or Working— My two cents / 选择读博还是工作" /><published>2026-09-19T00:00:00+00:00</published><updated>2026-09-19T00:00:00+00:00</updated><id>https://jinyansu1.github.io/blog/2026/09/phd-or-working</id><content type="html" xml:base="https://jinyansu1.github.io/blog/2026/09/phd-or-working/"><![CDATA[<div class="lang-switcher">
  <button type="button" class="lang-btn active" data-lang="en">English</button>
  <button type="button" class="lang-btn" data-lang="zh">中文</button>
</div>

<div class="lang-content lang-en" lang="en">

  <p><em>(The original version by the author is in Chinese without using any LLM, but for English version, the author use Claude to do the translation and then manually edited and rewrite some of them that she thought inaccurate.)</em></p>

  <p>Lately a lot of younger students have been asking me whether they should do a PhD, and what research area they should work in. I can’t give anyone advice, and I don’t want to meddle in any one person’s life. So I’ll just share some fairly general thoughts.</p>

  <p>Some people are lucky through the entire PhD journey. They go to a great school for undergrad, start research early, and meet nothing but kind senior students and good professors along the way. When they apply to PhD programs, every school extends an olive branch. During the PhD they once again land great advisors and collaborators, intern somewhere new every year, maybe even graduate early, and when they finish, just as when they applied their PhD four or five years earlier, they collect top offers of every kind from both industry and academia. Meanwhile, other PhD might switch advisors many times, switch topics many times, finally meet a good advisor (or not), and barely scrape through graduation, only to discover on the job market that apart from the PhD title and a higher volume of mass emails from recruiters, nothing distinguishes them from others with only bachelor’s or master’s degrees. Life may even be worse off. By the age at which you finish a PhD, whether or not you went through the kind of mental and physical trauma during the PhD that leaves you with ‘permanent head damage,’ your memory and your test-taking ability will be far below what they were in undergrad.</p>

  <p>When, after enormous struggle and one rejection letter after another, Lady Luck finally smiles on you and you get an offer from some company, the salary HR quotes makes you question your past. What you’ll earn is about the same as a bachelor’s or master’s graduate. Compared with your peers, it may be a third of what an above-average PhD graduating that year makes, and a fifth or a tenth of what the top PhDs make (the gap with the very top outliers is much larger). And even this offer you only got because of luck.</p>

  <p>To be honest, the not-finding-a-job scenario above happens to PhDs, master’s students, and undergrads alike. But when you’ve already invested so much time in a PhD, facing the same outcome (i.e., landing a job you’re not very happy with), you as a PhD may need more mental effort to talk yourself into accepting reality. What makes regret so powerful is that it doesn’t show up when your life is smooth. But when you’re at a low point, some decision from your past, however long ago, constantly resurfaces, making you ask yourself over and over, “If I had chosen to xxx back then, would things be better?”</p>

  <p>But this is not a “don’t do a PhD” post. Most decision making in life has many dimensions, yet most decisions don’t matter that much, because whenever you gain something, you lose others along the way. This is also why I can’t give anyone advice: everyone’s personality is different, the way they handle things is different, and what they hold precious is different. So even if two people make the same decision, the trajectory afterwards is hard to predict. Some random event may affect the trajectory of your life more than all the time you spend weighing pros and cons to make a “good” decision.</p>

  <p>Whether it comes after a bachelor’s, a master’s, or a PhD, the transition from student at school to adult at society is hard. You discover that life contains many things to learn besides textbooks (intimate relationships, for example). You gradually want to stop depending on your parents financially, and to discover and shape an independent self, both financially and in character. You start meeting all sorts of people with different agendas, and you start seeing conflicts of interest you never saw in school, along with the diversity of human behavior when interests collide. In a purely exam-oriented high school, where everyone just keeps their head down and studies, you don’t really see conflicts of interest (at a high school with a more well-rounded education, perhaps students get exposed early to something closer to the real world). In college, if you don’t do research, you’ll also rarely run into them (maybe the occasional small friction with a teammate on a course assignment). Of course, at universities in China there are various scholarships, the grad school application, and so on, where all those outstanding, seemingly “well-rounded” students will take every means to show that they are better than you. (As there is not enough resources but too many people who want them).</p>

  <p>If you start doing research as an undergrad, you may also have conflicts of interest with your advisor or your project collaborators. At universities in China, the faculty evaluation system is very poorly designed (in my view, a well-designed mechanism should incentivize cooperation, rather than incentivize the stronger party in the game to hurt the weaker one). Professors in China are evaluated by papers where they are first author, which gives them plenty of motivation to grab first authorship from their students. Why do I use the word “grab”? Because in this setting the two sides are unequal in many respects: experience, connections, social reputation, and skill at PUA. (PUA originally stood for “pickup artist,” but in Chinese internet usage it has come to mean something closer to gaslighting: the systematic psychological manipulation of someone by a person with power over them, whether an advisor, a boss, or a partner. That’s the sense I’ll use throughout.) On top of that, students who are just started to learn to do research may hold an unrealistic fantasy about academia, believing that all the researchers are noble and great. Or maybe it was only me who thought so. After all, before college I spent most of my time immersed in my own world, and my only ways of interacting with the outside were what my Chinese teacher said in class and reading top-scoring college entrance exam essays. A flower in a greenhouse, if it doesn’t want to stay inside its whole life, has to go through the wind, rain, and scorching heat outside before it knows how to survive in a new environment.</p>

  <p>Under the kind of unequal student–advisor relationship described above, it’s hard to evaluate ourselves fairly, or to see others clearly. I remember the first semester of my junior year, lying awake night after night over something that was not my fault, and writing a long apology letter to a professor at my undergrad school. Even though I was quite certain that the person who should be apologizing was not me, the inequality of the relationship meant all I could do was apologize and hope he would forgive me for the word I said before (Curious what I said? I just said that I feel that my paper is trash. Somehow he is super offended because he took so much pride in getting papers into some “top” conferences such as AAAI/IJCAI. And everyone who work with him has to hold the believe that he had. ). I thought: if a long page of self-reflection and apology could buy back four or five months of my hard work, it would be worth it. Whether it was my fault, whether I should be the one apologizing , none of these matters? (Junior year is a crucial period for applying PhD, because applications begin very soon and I need to have some research project to talk about and also a recommendation letter.) In the end, that professor did not accept my apology. From then on, I knew that to most people in the world, my dignity and self-esteem worth nothing. And through round after round of reflection (I might reflect too much but I really like to chewing on things), I came to understand that, compared to “four or five months of effort and time get wasted,” what I feared more in losing was my own dignity. Since then, I have not ever again traded my dignity for anything. If I apologize, it is because I believe I truly did something wrong, not because I need to please someone.</p>

  <p>Half a year later, I started to work with professors outside my undergrad university, and my research started making good progress, though I would still feel tense and anxious whenever an email I get email from that professor that I initially worked with. Two more years after that, I had completely left the small circle of my undergrad and seen a bigger world. I had almost forgotten these traumas, and seeing that person’s name no longer triggered any PTSD. I don’t talk about these things with others anymore. Before, I would talk about these stuff over and over to walk myself out through. But once I truly walked out, these people, and the shadow they cast on me, disappeared completely from my memory, my life, and my thoughts. Driving them out of my life entirely, to the point of never thinking of them at all — that is probably the best form of “hatred” I would give. Although most of the professors I worked with at my undergrad were terrible, I also met one very, very kind mentor. He showed me that we can keep some innocence and kindness and still adapt well in our society, provided that we understand the rules of the world’s game rather than deceiving ourselves by living inside an imagined rainbow bubble. (I used to wonder how much bad luck I had to spend in exchange for such good luck to meet and learn from such a wonderful person. Getting the chance of knowing and learning from him (by accident) affected my life trajectory far more than all my deliberate decision making.)</p>

  <p>During my undergrad, I would very naively sort people into “nice” and “not nice,” and decide on that basis whether to be friends with them. Later, when I become a bit more mature, I found that humans are super complex in nature and can’t be simply classified like this, so there is no absolute “good person.” When I see a “flawless” “good person,” either they’ve only blind me with their good side, or we haven’t known each other long enough that I actually don’t know them as much. So I stopped trying to be a “good person” that I thought the outside would want me to be, because the concept itself no longer exists in my dictionary. This may be one of the changes from my PhD years that makes me happiest. Until the end of my first year, I was trying hard to be a “good person” in other people’s eyes: I smiled at everyone, never refused any request from anyone, and constantly self-reflecting (those masters of gaslighting didn’t even need to make the effort; I would just voluntarily do that to myself). These “creed of how to be a good person,” built into my education from my family, were to a large extent responsible for the discomfort and pain I felt when I first entered society. In a simulated world, if no player deviates from these rules, the total utility of all players is high. But some players will always discover that by deviating from the above principle, they can gain more. And the current rules of the game implement almost no penalty for deviation. Hence the phenomenon we all know so well: manipulation and gaslighting, or what the Chinese internet calls “PUA.”</p>

  <p>Sometimes we get manipulated because we love being a “good person” in other people’s eyes a little too much. Once we can see ourselves more objectively and have the courage to be disliked, it becomes much harder to manipulate us. Of course, everything goes wrong at the extreme: being “good” to the extreme can get you exploited by other players. “Reflecting appropriately and admitting your mistakes” is humility, but humility overdone, taken to the other extreme, makes you easier to manipulate. Since the readers my writing attracts are mostly the over-reflecting type, my no-brainer advice is: look for other people’s faults more (of course, see your own too, but don’t take all the blame on yourself). A typical example: when a project fails, some advisors will put the blame entirely on the student. But if the student can look at it objectively, they’ll find that there are many other factors in the pipeline, such as the advisor’s idea simply not working, or collaborators not pulling their weight or even making things worse. A project’s failure is more or less partly the student’s doing, but if it is “entirely” the student’s fault, that definitely doesn’t make sense.</p>

  <p>Last of all, I want to talk about some reasons to do a PhD. Many people will tell you how much they grew during their PhD: they got to witness the full biodiversity of the human species, they learned to take setbacks more lightly, and so on. But you can get these from either a PhD or a job. The difference is that in a PhD you may be manipulated by your professor, and at work you may be manipulated by your boss (either way, someone will be there to teach you lessons you pay dearly for).</p>

  <p>The reasons I can think of for doing a PhD are:</p>

  <p><strong>(1)</strong> Practically speaking, a PhD may give you five more years of buffer before the job hunt, and in those five years you accumulate connections, resources, and abilities, so you can look for a job with more composure. Of course, it may also look like you wasted five years and have nothing to prove that you have really lived through them. But that’s life: even with the same starting point and the same initial choice, people end up in very different places. So from this angle, compared with luck, choices are not that important.</p>

  <p><strong>(2)</strong> “If you want to be a professor someday, you would need a PhD.” This is one of the main reasons people consider doing a PhD. And there are also people with a real talent for research, or those who choose to do a PhD out of love.</p>

  <p><strong>(3)</strong> However hard I try to think about the meaning of life, the only answer I ever arrive at is “my life has no meaning.” I can’t set myself a goal the way others do, because all I can see is the death at the end of life. Many people work hard to locally optimize every decision in their lives, hoping to reach their “life goals” sooner and faster, to fight against fate. But no matter how many times they win against fate, one day they will be dragged by time and fate toward the same destination. So even if not doing a PhD looks like the path better suited to this local optimization (financially and career-wise, it may be much better than doing one), if your life is not aimed at that optimization, but rather at “experiencing life” on this journey where we are born heading toward death, a PhD may be a pretty good choice. Whether or not you do a PhD, you will work afterwards; a PhD just means you start working five years later. Seen this way, your life will always include the experience of “working,” but if you don’t do a PhD, you may never have the experience of “doing a PhD.” I think people are willing to pay for experiences, whether it’s visiting an exhibition or traveling somewhere. These experiences all carry some cost in time and money. A PhD is the same. If your life is not about optimizing some concrete real-world goal, then doing a PhD could be just for “knowing how is it like to be a PhD”. And choosing to do one is choosing to pay five years’ worth of “time and salary gap” as an “experience fee” in exchange for the experience of “doing a PhD.”</p>

</div>

<div class="lang-content lang-zh" lang="zh" style="display: none;">

  <p>最近收到了很多小朋友问我是否要读博的建议，以及读博应该做什么方向，我给不了别人建议，也不想去掺合某一个人的人生。所以只讲一些比较general的一些想法吧。</p>

  <p>有的人可能整个读博过程都很幸运， 在一个很好的学校读本科，然后很早开始做科研，一路上遇到的学长学姐以及老师都很好，申请phd时所有的学校都向他/她伸出橄榄枝，在phd期间再次遇到很好的老师以及合作者，每年换着地方实习，甚至提前毕业，并在phd毕业时，和四五年前申phd时一样，斩获业界和学界的各种offer。也有的人，换了很多次导师，换了很多的课题，最后遇上一个好老师，勉勉强强毕业了，却在找求职的时候发现，自己除了有个phd title，能收到更多的猎头的mass email外，在其他方面和本科生，硕士生没有任何区别，甚至还不如他们。在phd结束的那个年纪，无论是否在读博期间受过精神和身体的创伤，造成permanent head damage，其记忆力和应试能力都会大不如本科阶段。</p>

  <p>当你千辛万苦，在一封又一封的拒信中，幸运之神终于眷顾了你，让你拿到了某一个公司的offer，HR给你报的薪水却让你怀疑人生：你能拿到的工资和本科，硕士生差不多，并且和你的peer比，可能是当年毕业的中上水平phd的1/3， 是当年毕业的顶尖phd的1/5或1/10（和最最顶尖的outlier们的差距，则更大了）。甚至连这个offer，你也是因为运气好才拿到的。</p>

  <p>To be honest, 上面说的找不到工作的事，无论是phd还是ms，本科生中都会有，但当你已经投入了很多时间读博，面对同样的一个结果,（i.e., 找到一个自己不是很满意的工作），作为phd的你可能需要更多的mental effort，才能说服自己去接受现实。 懊悔感的强大之处就在于，在你快乐的时候，它不会出现；但在你低谷的时候，你过去的某个决定，即使已经过去了很久很久，还是constant的冒出来，让你一边一边的问自己”如果我当初选择了去xxx, 现在会不会好一些？”。</p>

  <p>但是这不是一篇读博劝退贴，生活中的大部分decision making，都是有很多纬度的，但是大部分的决定都不重要，因为你得到一些东西，便会失去一些东西。这也是我没法给别人建议的原因，每个人的性格不一样，处事方式不一样，觉得贵重的东西也不一样，所以，即使make the same decision，后面的trajectory也是很难预测的，一个偶然事件的发生可能都比花很长时间权衡利弊做一个”好”的决定对你人生的trajectory的影响大。</p>

  <p>无论是本科毕业，硕士毕业，还是博士毕业，从学生到进入社会的那段transition是很难的，你会发现，生活中原来除了学习，还有很多其他需要学的东西（比如，亲密关系），你也会逐渐想着脱离对父母的经济依赖，去发现和塑造一个独立的自己（无论是财务上还是性格上)。你开始接触到各种各样的人，大家有不同的目的，以及，你会开始见到各种你在学校读书期间没见过的利益冲突，以及在遇到利益冲突时人类行为的多样性。 在一个纯应试教育的高中，如果大家天天都只是自己闷头学习，是不太能见到什么利益冲突的，如果是更多元教育的高中，或许大家可以很早就接触到更贴近社会的教育）；到大学，如果你不做科研，也几乎不会遇到太多的利益冲突（偶尔可能遇到和课程作业合作者的小矛盾）。当然，如果是国内学校，可能有各种奖学金，考研之类的，以及各位德智体美劳全面发展的优秀大学生们各显神通。 但是如果你在本科开始做科研，你可能会和你的导师或者project的合作者有利益冲突。如果是国内的学校，由于教授考核机制设计的很不合理（在我看来，一个好的机制的设计应该是要incentivize合作，而不是incentivize游戏中强大的一方去伤害弱小的一方的）。国内教授的考核要求他们的论文是第一作者，这让他们有了足够的motivation和学生抢一作。为什么说是”抢”呢？因为在这个场景中，双方在很多方面都是不对等的，比如阅历，人脉，权力，以及pua的技能上。 而且，刚开始学着做科研的小朋友们，可能对学术圈抱有一种不切实际的幻想，觉得科研人员是崇高的，伟大的。又或许只有我是这么想的，毕竟我上大学前大部分时间都沉浸在自己的世界里， 唯一和世界交互的方式就是课堂里语文老师讲的东西以及阅读高分作文。 温室里的花朵，如果不想一辈子待在里面，总得先经历一番外面的风雨和酷暑，才能知道在新的环境中如何生存。在上述学生和导师不平等的关系下，我们很难看清自己，看清他人。我想起自己大三上学期的时候，为了一个不是自己的错误的事情整夜难眠，给本科的某个教授写了长长的道歉信，即使我自己非常确信应该道歉的人不是我，但因为关系的不对等，我只能道歉，希望他能原谅。我想，如果长长一纸的反思和道歉能换回我4，5个月的努力，那也是值得的，是不是我的错，以及我应不应该道歉，又有什么关系呢（大三是个很重要的阶段，因为大三结束就要申请了）。最后那个老师并没有接受我的道歉，从此，我知道了对于世界上的大部分人来说，我的尊严一文不值，也在一次又一次的反思中， 我明白了，比起”4，5个月的努力付之东流”， 我更怕失去的是自己的尊严。在那件事情以后，我好像再也没有用自己的尊严去换取任何东西。如果我道歉，那么一定是因为我觉得自己确实有一些问题，而不是我需要去讨好别人。</p>

  <p>半年后，我在校外找到了更好的导师， 科研上也有了很好的progress，在偶尔收到那位本校老师的邮件时都会感到紧张和焦虑。又过了两年后，我彻底走出了本科那个小圈子，看到了更大的世界，我几乎已经忘了这些事情，在看到这个人的名字时，也不再感到PTSD。我不再和别人谈论这些事情了。以前，一遍又一遍的谈论，是想在一遍又一遍的重复中让自己走出来，但是当我真正走出来的时候，这些人，以及他们给我造成的心理阴影，从我的记忆和生活中彻底消失了，我便不会再谈论了。将他们彻底赶出我的生活，完全想不起他们，才是最好的”恨”吧。虽然本科学校我跟过的大部分老师都挺差的，但我也遇到了一位很好很好的导师，他让我知道，保持一些单纯和善良，也是可以在这个社会上生存的很好的，但前提是，你要看懂这个世界的游戏规则，而不是自我欺骗式的把自己放进一个想象出来的彩虹泡泡里。（我以前常常想，我要用多少坏运气，才换来这样的好运气，这样的好运气，远比我辛辛苦苦做decision making对我人生的影响大）。</p>

  <p>我在本科刚毕业的时候，会非常的naive的将人分为”nice”和”不nice”， 然后决定是否要和对方成为朋友。后面更成熟一点后，我发现，每个人都是复杂的，不能够简单的分类，所以也没有绝对的”好人”。当我看到一个”完美无缺”的”好人”，要么是因为对方只让我看到了他好的一面；要么是我们相处的还不够久，我对他的了解还不够。于是，我不再尝试做一个所有人眼中的”好人”， 因为这个概念本身在我的词典里已经不存在了。这或许是读博这几年来让我最开心的变化之一。在博一结束前，我都在努力做一个别人眼中的”好人”，会对所有的人微笑，从来不会拒绝任何人的任何请求，还经常自我反思（甚至不需要大师们来主动pua）。这些长在我的教育基因里的”做人的准则”，在很大程度上导致了我初入社会时的各种不适和痛苦。在一个simulated world里，如果所有players都不deviate这个准则，那么这个world的所有players总的utility会很好，但总有一些player会发现，如果他们deviate from the above principal，他们就能获得更多的收益。并且，目前的游戏规则对deviation并没有什么惩罚。这便出现了我们耳熟能详的pua现象。</p>

  <p>我们会被PUA，有时候是因为我们太喜欢成为别人眼中的”好人”了。当我们能更客观的看待自己，有被讨厌的勇气后，就更难被PUA了. 当然，所有的事物走到了极端都会出问题，比如，”好”到了极端便会可能被其他player exploit。”适当的反思和承认自己的错误”是谦虚，但谦虚过度，走到了另一个极端，就会更容易被PUA。 由于我的文章能吸引到的读者大多是反思过度型的，所以我无脑建议大家多找找别人的问题（当然，自己问题也要看到，但不要把所有的错误都揽在自己身上）。一个很典型的example就是，当一个project失败的时候，一些导师可能会把错误完全归咎在学生身上，但如果学生能客观的看待这件事，就会发现，在这个pipeline里，还会有很多其他的因素，比如，导师的idea本身就不work或者是合作者不给力甚至帮倒忙。一个project的失败或多或少会有学生的问题，但如果”全部”是学生的问题，肯定是不make sense的。</p>

  <p>最后的最后，想聊一下一些读博的理由：或许很多人会告诉你他们在读博期间有多少成长，比如，见到了人类物种多样性，对挫折能更加云淡风轻等等。但这些，无论是读博还是工作都是可以得到的，区别是，读博可能被教授PUA， 工作时可能被老板PUA（反正都会有人给你上付费课程的）。</p>

  <p>我能想到的读博理由是：</p>

  <p>（1）现实的来讲， 读博可能多会给你五年的找工作的缓冲时间，且在这五年里，你会积累很多人脉，资源，能力，这样你在找工作时可以更从容。当然，你也看似浪费了五年光阴，一无所获。可是人生就是这样，即使起点相同，以及最初的选择相同，大家的终点也会很不一样。所以，从这个角度看，相比于机遇，选择并没有那么的重要。</p>

  <p>(2) “如果你以后想去高校做教授，你需要读博”。这是大家考虑是否要读博很重要的一个理由。还有一些真的很有科研天赋的人，或者没有天赋，但有一定科研理想的人，会选择为了热爱而读博。</p>

  <p>（3）无论我多么努力的去思考人生的意义，却始终只能得到”我的人生没有意义”的答案。我没法像其他人一样给自己一个目标，因为我能看到的只有人生尽头的死亡。很多人努力的去local optimize他们人生中的每一个决定，以期更快更早的实现他们的”人生目标”，对抗命运。可是，无论他们多少次成功的对抗了命运，总会在某一天被时间和命运拖着奔赴同一个目的地。所以，即使不读博看起来是一条更能够实现这个local optimization的路（财务上和career上可能会比读博好很多），如果你的人生不以这个optimization为目的，而是在这段生而赴死的生命旅程中”体验人生”，读博或许是个不错的选择。无论你是否读博，后面都是会工作的，只是读博会让你晚五年再工作。这样看来，你的人生中总会有”工作”这个人生体验，但如果你不去读博，可能就永远不会有”读博”这个人生体验。我想，人们是愿意为体验付费的，无论是参观一个展览，还是去哪里玩。这些体验或多或少都有时间和金钱上的cost。读博也是一样，如果你的人生不是为了optimize某个现实世界的具体目标，读博便只是个体验罢了，选择读博便是选择用五年的”时间和工资上的差距”作为”体验费”换来了”读博”这个体验。</p>

</div>

<script>
(function() {
  var buttons = document.querySelectorAll('.lang-switcher .lang-btn');
  var contents = document.querySelectorAll('.lang-content');
  buttons.forEach(function(btn) {
    btn.addEventListener('click', function() {
      var lang = btn.getAttribute('data-lang');
      buttons.forEach(function(b) { b.classList.remove('active'); });
      btn.classList.add('active');
      contents.forEach(function(c) {
        if (c.classList.contains('lang-' + lang)) {
          c.style.display = '';
        } else {
          c.style.display = 'none';
        }
      });
    });
  });
})();
</script>]]></content><author><name>Jinyan Su</name><email>jinyansu6@gmail.com</email></author><category term="personal" /><category term="reflection" /><category term="life" /><category term="phd" /><category term="career" /><category term="advice" /><category term="decision-making" /><summary type="html"><![CDATA[Lately a lot of younger students have been asking me whether they should do a PhD. I can't give anyone advice — a single chance event may shape your life's trajectory more than all the careful weighing of pros and cons. Some general thoughts on luck, dignity, conflicts of interest, PUA, and doing a PhD as an experience you pay for rather than an optimization.]]></summary></entry><entry><title type="html">My PhD Grind (2): I Was No Longer Socially Anxious / 我的PhD Grind（2）：我不再极度的社交焦虑</title><link href="https://jinyansu1.github.io/blog/2026/09/my-phd-grind-2/" rel="alternate" type="text/html" title="My PhD Grind (2): I Was No Longer Socially Anxious / 我的PhD Grind（2）：我不再极度的社交焦虑" /><published>2026-09-07T00:00:00+00:00</published><updated>2026-09-07T00:00:00+00:00</updated><id>https://jinyansu1.github.io/blog/2026/09/my-phd-grind-2</id><content type="html" xml:base="https://jinyansu1.github.io/blog/2026/09/my-phd-grind-2/"><![CDATA[<div class="lang-switcher">
  <button type="button" class="lang-btn active" data-lang="en">English</button>
  <button type="button" class="lang-btn" data-lang="zh">中文</button>
</div>

<div class="lang-content lang-en" lang="en">

  <p><em>(The original version by the author is in Chinese without using any LLM, but for English version, the author use Claude to do the translation and then manually edited and rewrite some of them that she thought inaccurate.)</em></p>

  <p>The narrative parts of this installment were all written on the flight back to China in mid-August; I added the more reflective bits at the beginning and the end and then put it up. If I had waited any longer, I would have lost even more of the feeling for my own words. Nothing in this “My PhD Grind” series is necessarily something the PhD itself brought about. Rather, I’m at a certain stage of life — a stage in which I’ve left the environment, culture, and education I’d known for over twenty years, begun to have my own independent thoughts and ways of thinking, and, in a new environment and culture, come into contact with many more different people and different things — and the changes in perception and thinking that arise naturally from that. Even if I weren’t doing a PhD, I would probably have gone through similar things and had similar realizations and reflections. It’s just that these people, these events, and these realizations happened to fall within the years of my PhD, so I use “PhD grind” to describe this stage of life. But I don’t think doing a PhD is the only way a person can grow, nor do I think I should “be grateful for the pain.” I try my best not to disturb other people’s lives, and I don’t want to intervene in anyone else’s trajectory, because I believe opportunity matters enormously, yet opportunities usually aren’t something you get to choose — and as for what’s left, the things you can choose, no matter how hard you rack your brains over them, they won’t make much difference to your life. No choice or experience is indispensable. So, I have no opinion. I don’t write these things in order to be understood, nor to “give advice.” Text is a medium for transmitting information: by the time I decode the continuous embedding of what I’m thinking into tokens, a great deal of information has already been lost; when a reader reads in those tokens and converts them into their own embedding, they add a great deal of their own context, and by then their embedding is nothing like mine. Every reader might be able to read something different out of the same passage, but more or less, they’ve seen themselves in it. I was surprised that my first post — the blog about many of my friends who works on theory switching to LLMs — resonated with so many people. Friends messaged me privately to say “they felt the same way,” or “they could really understand me.” But in fact, I wrote it from the perspective of a detached narrator, an onlooker, putting in almost no emotion at all. The deep feeling readers sensed in those words must have come from reading themselves into the text and projecting their own emotions onto it.</p>

  <p>On August 14, 2023, I went to the United States for the first time. On the flight from New York to Ithaca, before we departed, the flight attendant proudly announced to everyone: “All the crew members, two pilots and two stewardesses, are women — isn’t this awesome?” Although, like everyone else, I didn’t respond, my heart was secretly leaping. This was my first impression of America: a place where anything is possible. (Because of how I was raised, my understanding was still stuck at “In China, only the flight attendants can be women; the pilots are always men.” Though when I looked it up just now while writing this, China does have female pilots — women make up about 1% of civil aviation pilot license holders, compared to over 10% in the U.S. There’s a lot of finer-grained statistics by category, but in almost every category, the proportion of women in the U.S. is nearly ten times that in China. And since the total number of licensed pilots in the U.S. is ten times China’s, in absolute numbers there are roughly 100,000 women among all licensed pilots in the U.S. versus about 1,000 in China — a hundredfold gap.)</p>

  <p>One afternoon during grad school orientation week, walking home from Gates Hall, I passed the football field, where “Don’t Stop Believin’” was playing, and my eyes instantly welled up: in the months before coming to Cornell, I happened to be watching Glee (an American TV series), and both the show and that song mean a great deal to me. Against that backdrop of unreality, for those few days I felt like I was living inside a TV show, full of anticipation for the future.</p>

  <p>That glamorous filter lasted less than two weeks; real life quickly yanked me out of the TV show. I — who had barely any experience of the real world, who had unreasonable optimistic expectations of the new environment and the people in it, whose personality was so weak that whenever any conflict arose I assumed “it must be my fault” — ran into a very mean roommate and had to move three times in my first three months. (Later, about a month after I moved out, that roommate’s behavior became so outrageous that the third roommate couldn’t take it anymore and eventually drove the her out.)</p>

  <p>On top of that, the Chinese students in my cohort were almost all guys (there may have been one or two Chinese girls, but I never saw them around, and besides, not everyone gets along with everyone; as for people from other countries, there are obstacle in both culture and language so I didn’t really hang out that much with them). Watching the guys quickly grow close with each other, all I felt was loneliness. In October, the weather gradually turned bad, and once the clocks fell back to winter time, it was dark by 4 p.m. The weather and the troubles in my life piled on top of each other, and I gradually became a bit depressed (though compared to the depression of my second year, the depression in my first year should be consindered as mild). By December, I still hadn’t made any friends. Over the Christmas break the campus was nearly empty — the loneliest time to be in Ithaca, and the time my depression was at its worst. I would reflect on and chew over everything that had happened in my four months in the US, again and again, and ask myself over and over: why did it turn out this way? Although I never want to go through that pain again, looking back now, without those painful times I wouldn’t have come to understand myself better, and I wouldn’t have become who I am now.</p>

  <p>After the spring semester started, the weather got better, and my mood lightened along with it. It was right around then that I got to know a more senior student at another department, and we’d play ping-pong together every so often. By April, we had gradually reached the point where we could talk about anything, and she became the first female friend I made after coming to the US. In my first six months, I had tried to become friends with lots of Chinese (and mostly, male), forcing myself out of my comfort zone, but all that socializing left me extremely anxious and dejected. It was only after becoming good friends with her that I learned what healthy socializing should look like. Maybe all I needed was one friend to stop feeling like there was “something wrong with me.” After we became good friends, I stopped trying, as I had before, to befriend people who triggered my social anxiety, because I knew that good socializing shouldn’t make me anxious. I also gained other friends around the same time: a Sri Lankan girl in my cohort, who is kind, geninue, and full of love for life, and a master’s student in economics (a sports buddy I could call up anytime to play sport such as pingpang, badminton, tennis, chatting about anything and everything while we played). April and May were probably the happiest stretch of my first year in America, apart from that first week — it felt like I was bathed in sunshine every day (both physically and mentally). In late May, I went back to China. The day before I left, I looked back over my nearly a year in America. Although the happy times amounted to only the month or so before I left, my personality had already changed a lot: I no longer tried so hard to please people to win their friendship, I was no longer afraid of being disliked, and I had become far more selective about making friends rather than expecting to be friends with everyone. That day, I re-downloaded QQ (a Chinese messaging app) and messaged a classmate back in college: “I feel like everyone hated me in undergrad. Can you tell me why?” I asked him because he was probably the only person I could remember who “don’t hate me that much.” I’m not sure what state of mind I was in — maybe it was out of curiosity, maybe I was in such a good mood that nothing he could say would affect me, or maybe I just wanted to confirm whether my original “feeling that everyone hated me in undergrad” was only me being oversensitive, something I’d imagined. I’ve forgotten the details of our conversation. After he told me to “think it over myself” and I couldn’t come up with anything no matter how hard I tried, he told me it was “because people felt I didn’t fit in with the group.” From that day on, I can finally let it go. That day, I uninstalled QQ and truly said goodbye to undergrad. Actually, since coming to America, I have never again felt “weird.” I found that everyone is pretty different, and sometimes I even worry that I’m not “weird” enough — that compared to others (especially some of my American classmates), that I don’t have anything distinctive about me.</p>

  <p>That summer I went back to China to renew my visa. Although I hadn’t been home in two years, I didn’t feel much nostalgia for life in China — the high-rises, the dense crowds, and the traffic still made me very uncomfortable (I constantly felt that one careless moment and I’d be hit by a bicycle, an e-bike, or something bigger, because everyone is in a hurry and no one yields to pedestrians). It was my first time living in Beijing not as a student, and I met all sorts of people. Beijing doesn’t have the comfort of life as in Chengdu; Haidian District and Tsinghua were more run-down than I’d imagined; and the people I chatted with while renting a place, along with the Didi (ride-hailing) drivers taking me home at night, made me feel everywhere the hardship of the “Beijing drifters” — those who leave their hometowns to make a living in the capital. There were also plenty of things worth being happy about in between. For example, a girl I’d met at Cornell and I arranged to spend a day together in Beijing; we got to know each other better and discovered how alike we were. On the day we parted in Beijing, we chatted our ideal of a good friendship to be “close but independent” — a healthy friendship, one in which both parties can grow, should be like that. Afterwards, we constantly catched up with each other on the phone often and became very, very good friends. Later still, when I moved to the Bay Area, she became my only friend there. (The Bay Area seems even harder to make friends in than school.)</p>

  <p>That summer I also went to ICML and ACL, saw some old friends, and met one or two people I’m still close with today. It was a pretty decent summer. All of this was a long, long time ago. If I didn’t make an effort to remember, I’d almost forget I once had so many problems (though even now I still occasionally hide from people I know when I run into them since sometimes I have nothing to say and become ackward if I have to start some small talk). Those are all the stories in my first year. There doesn’t seem to be anything PhD-related worth recording, but after a year, I no longer felt so broken: beyond the social problems mentioned above, my personality changed in other positive ways too — for example, I became more confident, I stopped feeling that I didn’t deserve to be at Cornell, and I began to have a strong sense of belonging.</p>

  <p>Looking back, the first year was a fairly beautiful one. Whatever the winter had been like, when summer arrived in April and May, I didn’t feel a trace of sorrow. It was in the following two years that I truly entered the grind of the PhD itself, and lost many things I consider important — like the ability to be happy. It took me far too long to recover. Going by my earlier expectations: I thought I’d be happy once I switched advisors; I thought I’d be happy once the project was over; I thought I’d be happy once the paper got accepted; I thought I’d be happy once summer came; I thought I’d be happy once I left Ithaca for the Bay Area; I thought I’d be happy once the internship ended; I thought I’d be happy once I started the new internship; I thought I’d be happy once I didn’t have to do research anymore; I thought I’d be happy once I found a job…</p>

  <p>Looking forward to one milestone after another like this, two whole years went by. Occasionally I would suddenly feel happy, but that happiness never lasted more than a week.</p>

  <p>I had never waited for such a long time like this before, for two whole years — far, far too long. Hoping again and again, disappointed again and again, I gradually began to accept the state I was in. And as the happy self of two years ago receded further and further, in my second year I would still occasionally struggle, wondering how to find my old self again; by my third year, I had grown used to the self that was no longer happy. (I started to think that maybe this unhappiness wasn’t caused by the PhD, but is the inevitable destination once a person reaches a certain age and has seen a huge amount of people and things.)</p>

  <p>Although this ending is a bit sad — and the next several posts will all be sad in tone — to spare readers too much sadness, I need to give a spoiler alert here: in August, I found a job and went back to China to rest for a while. In the process of cleaning up a past stage of life and getting ready to welcome a new journey, I also threw away a lot of things that needed throwing away (like some of the trauma and pain). The best way to find yourself again is to change your environment. Moving from Ithaca to the Bay Area didn’t seem to help much, since I was under job-search pressure at the time. But after finding a job in August, I went back to China to rest — no mental pressure, a changed environment, and a new life to look forward to — and I felt a lightness and joy I hadn’t felt in a very long time. With all these factors stacked together, I found my happy, pre-PhD self again (though I don’t know how long this happy state will last, while I’m happy now, I plan to enjoy it while I can.</p>

  <p>Compared to before the PhD, the me of today is more mature, more emotionally stable, and understands more deeply about the meaning of life and how the world works. I’m also better able to find, in such a complex real world RL env, a way of existence that at least for now feels self-consistent, and to continue, with a more peaceful attitude, the rollout along the short trajectory of my life.</p>

</div>

<div class="lang-content lang-zh" lang="zh" style="display: none;">

  <p>这节的记叙性内容都是8月中回国的飞机上写的，加了开头和结尾的抒情性内容便放上来了，要是再隔的久一点，我对自己的文字就更没有感觉了。所有这些”我的PhD grind” 系列，并不一定是读博本身带来的，而是，我处于人生中的某个阶段，我会在这个阶段里， 离开了过去二十多年来熟悉的环境，文化，和教育，开始有自己独立的思想和思考，在新的环境和文化中，接触到更多不同的人，不同的事，而自然产生的认知和思想上的改变，即使我不读博，可能也会经历类似的事，有类似的感悟和思考，只是，这些人，事以及感悟恰好发生在了我的PhD的这几年，于是便用”PhD grind”来表达这样一个人生阶段了，但我并不觉得只有读博能让一个人成长，也不觉得我应该”感谢痛苦”。我尽量不去打扰别人的人生，也不想去intervene其他人的轨迹，因为我觉得机遇很重要，但机遇往往是不可选的，而剩下的可以选的东西，无论你怎么绞尽脑汁，都不会对人生有太大的影响，没有什么选择或经历是必不可少的，所以，我没有opinion。我写这些东西，不是为了被理解，也不是为了”给大家advice”， 文字是信息传播的媒介，当我把自己所想的连续的embedding decode成token的时候，就已经损失了很多信息了，读者读入token，并将其转化成他们自己的embedding时，又回加上很多读者自己的context，这时的embedding已和我的embedding完全不一样了。同一段文字，每个不同的读者应该都能读出不同的东西，但或多或少都是因为看到了他们自己。我惊异于自己的第一篇文章关于周围人都转LLM的blog能引起那么多人的共鸣，有朋友私信告诉我，”他们也有这样的感觉”，或者是”他们非常能理解我”。 但实际上，我是一一个旁观的叙述者的角度写下的，几乎没有放入任何的情感，读者们在这些文字里感到的深深的感情，或许是因为他们在文中读出来自己，并把自己的感情投射进去了。</p>

  <p>23年8月14日，我第一次去美国。从纽约到伊萨卡的飞机上，飞机启程前，空乘非常骄傲的向所有人宣布”all the crew member, two pilots, and two stewardess are woman， isn’t this awesome?”. 虽然我和其他人一样没有应答，心在却偷偷的雀跃着，这是我对美国的第一印象，这是一个一切皆有可能的地方（受到家庭教育的影响，我的认知还停留在”中国的飞机上只有空乘可以是女性，但飞行员一定是男性”， 虽然我刚刚写的时候查了一下，中国依然是有女性飞行员的，持有民用航空器驾驶员执照的人中女性大约1%， 而美国则超过了10%， 虽然这里面还有很多细分的category的数据，但几乎所有的category里，美国的女性和比例都是中国的将近十倍。 由于美国全部执照飞行员的人数是中国的10倍，所以在具体人数上，美国全部持照飞行员中女性大概10w人，中国的女性则有1k人，是100倍的差距。）</p>

  <p>Orintation的那周的某天下午，我从Gates回家，经过橄榄球场，里面播放着”don’t stop believing”, 我瞬间湿了眼眶，因为在来cornell的前几个月，我刚好在看Glee(一部美剧），这部剧，以及这首歌都对我具有重要意义。那种不真实感的烘托下，那几天，我像生活在电视剧里， 对未来充满了期待。</p>

  <p>这种滤镜持续了不到两周，现实生活很快就把我从电视剧里拽了出来。没怎么接触过社会的我，以及对新环境以及环境里的人有着不合理预期的我， 那个遇到任何冲突都会觉得”是我错了”的性格十分软弱的我，因为遇到了一个很mean的室友，不得不在刚来的三个月里搬了三次家（后来，在我搬走后一个月后，这位室友因为行为过于离谱，另一位nice的室友受不了了，最终将那位mean的室友赶走了。 ）</p>

  <p>再加上cohort里的中国人几乎都是男生（可能有一两个中国女生，但平常见不到，而且也并不是和所有人都能合得来的；至于其他国家的人，由于文化和语言隔阂，也没怎么一起玩），看到中国的男生们之间很快的熟络起来，我只觉得孤独。 10月份，天气渐渐冷了起来，冬令时开始后，下午4点天就黑了，天气以及生活中的烦心事叠在一起，我逐渐变得有点抑郁了起来（但跟第二年的抑郁比起来，这次算很轻了）。直到12月份，我依然没有交到任何的朋友，圣诞节的假期里，学校里几乎没有人，这是ithaca最难熬的时候，也是我抑郁情绪最强烈的时候，我会把来美国后的四个月遇到的事一遍又一遍的反思和咀嚼，然后反复的问自己，为什么会这样。这些痛苦，虽然我不想再经历一遍了，但现在回过头去想想，如果不经历那些痛苦的时光，我就没法更加了解自己，也不会变成现在的自己。</p>

  <p>春季开学后，天气变得好了起来，我的情绪也跟着天气一起，开始变得轻了起来，也刚好是那时候，我认识了一位学姐，我们每隔一段时间会一起打乒乓球，到了四月份，我们逐渐开始变得无话不谈， 她成了我到美国后交到的第一个朋友。 刚来的那半年里，我尝试和很多人成为朋友，强迫自己走出舒适圈，但这些社交让我感到极度的焦虑和沮丧。 和学姐成为好朋友后，我才知道到一个健康的社交应该是怎么样的，或许我只需要拥有一个朋友我就不会觉得自己”有问题”了，在和学姐成为好朋友后，我不再像以前那样，尝试和一些会激发起我social anxiety的人成为朋友，因为我知道，一个好的社交，不应该让我感到焦虑。逐渐的，我还收获了其他朋友，比如和我一个cohort的斯里兰卡的小姐姐，她善良，淳朴而又热爱生活，以及一个经济系的master（一个随时能叫出来打各种球的球搭子，一边打球，一边互相天南地北的聊天）。四五月份那段时间应该是我来美国的第一年里除了第一周之外最快乐的时光了，感觉每天都沐浴在阳光下（both physically and mentally)。五月下旬，我回国了。在走的前一天，我回顾了来美国将近一年的生活，虽然快乐的时光只有离开前的一个多月，我的性格已经变了很多，我不再那么努力的讨好别人来获得友谊，不再害怕别人讨厌自己，交朋友时也变得selective了很多， 而不是期待和所有人都成为朋友。那天，我重新下载了QQ，向大学隔壁班的一个同学发消息，问”我感觉本科时大家都很讨厌我，你能告诉我为什么吗？”，我会问他是因为他可能是我印象中唯一一个让我感到”没那么讨厌我”的人。我也不知道自己当时是什么心态，或许是out of curiosity，或许是心情好到他无论怎么回答都不会影响到我，又或许我只是想确认我最开始的”感觉本科时大家都很讨厌我”是不是只是我自己太过敏感了，自己想象出来的。我和他的具体对话内容我已经忘了，在他”让我自己好好想想”但我无论如何也想不出来后，他告诉我，”是因为觉得我不合群”，从那一天起，我释然了。那天，我卸载了QQ，真正的向本科告别。其实，来到美国后，我就再也没感受到自己的”奇怪”， 我发现大家都挺不一样的，有时候我甚至会担心自己不够”奇怪”， 没有和其他人（尤其是一些美国的同学）比，没有自己的特点。</p>

  <p>暑假我回国续签，虽然两年没回家，但对国内的没太多怀念，高楼，密集的人群以及车辆，还是会让我觉得很不舒服（老是觉得自己一不小心就会被自行车，电动车，或者更大的车撞上， 因为大家都很急，也不会礼让行人）。 我第一次以一个非学生的身份在北京生活，也遇到了一些各色各样的人。北京没有成都生活的舒适，海淀区以及清华比我想象的破旧，租房接触的人，以及晚上回家的滴滴车司机则让我处处感受到那些离开自己的家乡的北漂们的艰辛。 中间也发生了很多值得快乐的事，比如， 和我在Cornell认识的一个女生在北京约着一起玩了一天，对彼此有更多的了解，发现我们是如此相似，在北京分别的那一天，我们用了”亲密而独立”来定义我们理想中好的友谊，一段健康的，让双方都能成长的友谊，应该是这样的吧。后面，我们还是经常一起电话聊天，成了彼此很好很好的朋友，再后来，我搬到了湾区，她成了我在在湾区那边唯一的朋友。（湾区似乎比在学校更难交到朋友）。</p>

  <p>那个暑假，我还去了ICML和ACL，见了一些老朋友，也认识了一两个现在还关系很好的朋友，度过了一个还算不错的暑假。这些事情已经过去好久好久了，如果不努力的去回忆，我都快忘了自己曾经有这么多的问题（虽然我现在也会偶尔在遇到时躲着认识的人）。第一年就这样过去了，好像没有什么和读博相关的事值得记录，但一年下来，我不再觉得自己那么残缺了：除了上面提到的社交问题，我的性格在其他方面也有positive的改变，比如，我变得更加自信了，不再觉得自己不deserve， 我开始有了很强的归属感。</p>

  <p>第一年回过头去看算是比较美好的，无论冬天如何，在四五月份夏天来的时候，我感受不到一点忧愁，后面两年，我才开始真正进入和读博相关的grind，失去了我很多我觉得重要的东西，比如快乐的能力。我花了太久的时间去恢复：按照之前的预期，我以为换了导师我就能快乐了；我以为project结束我就能快乐了； 我以为paper中了我就能快乐了；我以为夏天来了我就能快乐了；我以为离开Ithaca搬到湾区我就能快乐了； 我以为实习结束我就能快乐了； 我以为去新的实习我就能快乐了；我以为不用做科研我就能快乐了； 我以为找到工作我就能快乐了…</p>

  <p>就这样一个时间节点一个时间节点的盼望着，过了整整两年，偶尔，我也会突然感到快乐， 但那个快乐不会持续不超过一周。</p>

  <p>我从没有过类似这样长达两年的等待，太长太长，一次又一次的期待，一次又一次的失望，我逐渐开始接受自己的状态，而且，随着两年前那个快乐的自己越走越远，phd第二年的时候，我还会偶尔挣扎一下，想着怎么找回之前的自己，在第三年的时候，我开始习惯了那个不再快乐的自己。（我开始觉得，或许这种不快乐不是读博导致的，而是人成长到一个年龄，见到了很多人和事后的必然归宿。</p>

  <p>虽然结尾这里有点悲伤，因为接下来的几篇的基调都会是悲伤的，为了避免为读者带来过于悲伤的情绪，我需要在这里spoil alert一下，在8月份，我找到了工作，并回国休息了一段时间，在clean up过去的一个人生阶段的过程中，迎接新的旅程的过程中，也扔掉了很多该扔掉的东西（比如一些创伤和痛苦。 找回自己最好的方式是换一个环境，之前从ithaca换到湾区好像没啥用，毕竟当时面临着找工作的压力，8月份找到工作后，就回国休息了，没什么精神压力，再加上环境变了，以及因为要迎接新的生活了，我感到很久都不曾有过的轻松和愉悦， 在这些多重因素的加成，我又找到了读博前的快乐的自己（ 虽然不知道这种快乐的状态能持续多久， 但是趁现在很快乐，我打算得过且过）。</p>

  <p>相比于读博前，现在的我，更成熟，情绪更稳定，更理解社会，生命，和人生， 也更能在这样一个复杂的RL env里面找到一个暂时让我感到自洽的方式，更加平和态度的继续我短暂的生命中的rollout。</p>

</div>

<script>
(function() {
  var buttons = document.querySelectorAll('.lang-switcher .lang-btn');
  var contents = document.querySelectorAll('.lang-content');
  buttons.forEach(function(btn) {
    btn.addEventListener('click', function() {
      var lang = btn.getAttribute('data-lang');
      buttons.forEach(function(b) { b.classList.remove('active'); });
      btn.classList.add('active');
      contents.forEach(function(c) {
        if (c.classList.contains('lang-' + lang)) {
          c.style.display = '';
        } else {
          c.style.display = 'none';
        }
      });
    });
  });
})();
</script>]]></content><author><name>Jinyan Su</name><email>jinyansu6@gmail.com</email></author><category term="personal" /><category term="reflection" /><category term="life" /><category term="phd" /><category term="social-anxiety" /><category term="friendship" /><category term="growth" /><summary type="html"><![CDATA[The first year of my PhD in America: three moves in three months, a lonely first winter in Ithaca, the first real friend, and learning what healthy socializing should feel like — plus a spoiler alert: after two years of waiting to be happy again, I found my pre-PhD self back.]]></summary></entry><entry><title type="html">My PhD Grind (1): All the Friends Who Worked on Theory Have Switched to LLMs / 我的PhD Grind（1）：23年申phd时认识的那群朋友至此都转了LLM</title><link href="https://jinyansu1.github.io/blog/2026/09/my-phd-grind-1/" rel="alternate" type="text/html" title="My PhD Grind (1): All the Friends Who Worked on Theory Have Switched to LLMs / 我的PhD Grind（1）：23年申phd时认识的那群朋友至此都转了LLM" /><published>2026-09-04T00:00:00+00:00</published><updated>2026-09-04T00:00:00+00:00</updated><id>https://jinyansu1.github.io/blog/2026/09/my-phd-grind-1</id><content type="html" xml:base="https://jinyansu1.github.io/blog/2026/09/my-phd-grind-1/"><![CDATA[<div class="lang-switcher">
  <button type="button" class="lang-btn active" data-lang="en">English</button>
  <button type="button" class="lang-btn" data-lang="zh">中文</button>
</div>

<div class="lang-content lang-en" lang="en">

  <p><em>(The original version by the author is in Chinese without using any LLM, but for English version, the author use Claude to do the translation and then manually edited and rewrite some of them that she thought inaccurate.)</em></p>

  <p>(Note: In order to preserve the privacy of the people that I mentioned, I didn’t use their real name, but instead, using the name “Jack”, “Frank”, “Leo” instead.)</p>

  <p>I had originally wanted to give this the structure of a perfect book: a prelude, three distinct chapters (not for the sake of literary completeness, but because my PhD really did come in stages, almost neatly divisible by year), and an epilogue. So after jotting down some loose notes on the flight back to China, I spent a long time thinking about how to structure what I’d written, how to shape it into the perfect, complete form I had in mind before presenting it to readers. The result: three weeks went by, and the draft I wrote on the plane was never finished.</p>

  <p>One day in September, while chatting with a friend, I was surprised to learn that he had switched from theory to LLMs. A rush of feelings came over me and I wanted to write something. What I wanted to write belonged, properly speaking, in my PhD memoir—but the memoir had never gotten off the ground, precisely because of my pursuit of perfection. I don’t know how I picked up this habit, but whenever I present something imperfect to readers, I feel I have to apologize first and honestly list everything I think is wrong with it. (Seen this way, I’m really not cut out for academia or startups. Though the people and events of my PhD have also taught me to be a little less harsh on myself, and a little more forgiving.) So I’ll just write freely, wherever my thoughts happen to go. Reality is, after all, imperfect and incomplete; if I tried to write this like a work of literature, with the reader’s experience in mind, I would be sacrificing truthfulness and spontaneity—the feelings I have while writing, and the flow of my state of mind. Besides, works of literature have storylines, and reality doesn’t. I’ve become more and more able to accept the chaos of the world, and my own chaos within it (the flattering term for which is “free-spirited”).</p>

  <p>That day, I happened to open an article on Zhihu and noticed that the account of a friend, Leo, had liked it. So I messaged Leo on WeChat—we hadn’t seen each other in a long time, and I wanted to catch up and ask how he’d been. He told me he was planning to switch to working on LLMs, and that over the past year he had moved to a new place and was talking to people even less than before. Even though we hadn’t been in touch for over a year, chatting with him still felt familiar. Back in 2023, when we were applying for PhDs, we were both working on theory. But Leo socialized very little and rarely reached out to anyone to hang out (he spent most of his time doing research and reading papers), though when we ran into each other now and then I’d chat with him a bit. So I wouldn’t say I knew him well enough to call us “close.” And yet he came to my PhD A exam last year. (Not many people came since I hadn’t made any special announcement—it was only visible in a mass email that the grad school requires us to send to all the PhD student in a certain format. He’s also not the kind of person who likes going to presentations, especially when the research I was presenting had nothing whatsoever to do with what he was interested in. So the fact that he noticed, and made time to show his support, surprised me.) Leo’s PhD path has been extremely rocky. Given his hermit-like style, he probably wouldn’t want me telling other people too much about it, so I’ll leave that part out. But even though his PhD hasn’t gone smoothly, he has always been so calm, so unruffled.</p>

  <p>Every time I talk with people around me (especially the guys) and learn what they’ve been through, I think: “Why am I so bad at enduring hardship? The smallest thing happens to me (compared to what they have been through) and I start kicking up a fuss, as if I want the whole world to know how much pain I’m in and how hard things are—while they, facing far more and far harder things, keep a straight face, placid as still water.” Of course, this kind of self-gaslighting usually passes in an instant. I tend to look at things from an all-around, complete perspective, so everything gets considered from multiple sides and angles, and I freely adjust the weight I give to each. The upside is that I never become too stubborn or opinionated; the downside is that sometimes people feel I have no personality of my own, that I just agree with everything. (I’ve just wandered off topic again…)</p>

  <p>In fall 2024, I was considering quitting, and Leo was in the middle of switching and finding new advisors. I half-jokingly said, “Why don’t you quit with me? You wouldn’t even have to worry, like I do, about how quitting would negatively affect your advisor’s reputation. Or, stop doing theory and switch to an advisor who does applied work?” (In a CS department, if Leo didn’t care about his research direction, finding an advisor would be much easier.) But he remained very firm, and firmly described to me the career path he had in mind. He framed his choice to do a PhD as “so that I can go into quant after graduation and get a very high salary.” I didn’t quite follow his logic, because from my perspective, he could go into quant companies even without a PhD, or without doing theory. But Leo described it as though it were the only path. I just smiled, because from what I knew of him, he was the unpretentious kind of scholar, and the “high salary” of quant would hardly be enough to make him choose, so resolutely, a path that looked so much harder. (Note that I added the qualifier “unpretentious” here, because not every scholar can be described that way—and this was precisely the mistake I made when I first entered academia. But nothing is absolute; back then I could only see one side of people and things, and I blindly passed judgment on them based on what I saw. That was my own problem.)</p>

  <p>Perhaps it’s Leo’s “hermit” style that lets him hear less of the world’s noise, and steadfastly do what he likes, what makes him happy (doing theory, writing formulas, and reading proofs really are a joy for some people!). In my first year of the PhD, I too agonized for a long time over whether to give up theory. Even back when I started doing theory as an undergrad, my undergrad advisor kept telling me that doing theoretical research has a lot of downsides, such as it is hard to recruit students, hard to get funding, and students are hard to find a job… But at that time, working are theory made me feel calm and happy, so none of those practical considerations mattered. I had hoped I could do both theory and application (so in my first year I was in fact doing both at once). On the one hand, I couldn’t give up theory, because it made me feel at peace; on the other hand, I couldn’t give up NLP, because coding had been my weak spot for the past several years, and if I abandoned applied work entirely, it would become my weak spot once again. (And with that would come a lack of confidence, the kind that keeps me from seeing many people and things from an objective, equal footing, but admire people who can code.) I struggled for an entire year since I don’t want to give up any of these two, and in the end, because of a project I didn’t much like, I finally decided to stop working on theory. Looking back now, I ought to thank this twist of fate, because I was no longer distracted the way I used to be. Before, even when doing theory and applied projects side by side, I would always prioritize theory, because it made me happy. I didn’t care whether I was doing it well enough, didn’t care that a simple proof took me ages to understand, didn’t care whether my brain or my level of effort were suited to it. I only cared about the happiness of the moment, and about that slow, unhurried life of “one pen, one book, one proof to stare at for days.” (Even though some of the peers I know, could probably get through it in 30 minutes, lol.)</p>

  <p>When my second year began and I decided to give up theory completely and focus on LLMs and NLP, it was painful at the time, because I didn’t like living at such a fast pace, and I didn’t like writing code. I wanted my tools to be pen and paper; I wanted the computer to be something I used for reading proofs, not for writing code and running experiments. I still tried hard to steer clear of the research directions that looked very popular, but I really could no longer get the joy of writing proofs, nor the calm I’d had before. Now, two years later, I’ve grown used to my current identity and come to accept it—I can’t even understand anymore why my past self was so afraid of giving up theory, so afraid of working on a popular direction. Back then I simply just being too young too naive; every little thing seemed like a big deal, and I didn’t dare try anything outside of what I had mentally prepared myself for. Now I’ve become more nihilistic: once there are more things you don’t care about, you’re less afraid of losing them. And once you’ve seen enough data, you know that people can always adapt, little by little; you don’t need to keep yourself in the most comfortable environment all the time, and you don’t need to confine yourself to a box. (Writing blogs is the new thing that makes me feel calm. Writing my thoughts and experience down is actually quite a lot like writing proofs, except that when I wrote a proof, I felt I was presenting a perfect piece of work, and the recognition of those around me made me sure of it; when I write prose, my thoughts often drift far off, so, objectively speaking, I can’t produce a piece of work that would be called good by any objective standard. But one day, I suddenly realized that the people and the world around me are more accepting than I am to my work—things don’t have to be perfect before you can show them to others. (I tried a few more times after that and received a lot of positive feedback.) I didn’t post these writings on English social media; but I quietly put them on my homepage. (For Chinese versions I occasionally post on Chinese social media, hoping strangers with no connection to my life will read them) One day, I received an email in from a stranger who doesn’t speak Chinese, saying she really liked my blog, and that she can relate to what I write even though we have a quite different life trajectory. This kind of good moments are one of the reasons why I like writing: it is for in this enormous world, to briefly form a super weak connection with a stranger that you would have never had any relation with (i.e., form an edge in two atom in a world full of atoms), and then go back to being strangers. It was also because of this email that I later decided to proofread my English versions carefully in my future writings, instead of simply translating them from Chinese without further proof-reading.)</p>

  <p>At ICML 2024, even though I had already decided not to working on theory and spent most of my time talking to peers working on ML applications, three people who works on theory, whom I know when we were all applying PhD in 2023 happened to be at the conference too. One of them, Frank, invited us all for a city walk to catch up with each out, since we have each others contact but have never met in person. Being with them, I felt a bit out of place, because by then I could no longer follow the optimization theory and stochastic algorithms they were so heatedly discussing. I could only listen, envying them for still pursuing what they loved, even with so many LLM chaos all around. (Frank probably invited me along because, if when you grabbed a random person at ICML back then, the random person were most likely working on LLMs or something related. So unlike those who works on LLMs, who should be busy networking and talking with people in their own field—they could only grab people that they already know to catch up with.)</p>

  <p>At NeurIPS 2025, two of those three person I mentioned about attended. One had already switched to LLMs and was busy talking with other LLM people at the conference—too busy to hang out with us. Thus, Frank and me decided to catch up ourselves. He said that he and the third guy who l used to work on theory (the person who didn’t attend NeurIPS) were both preparing to switch to LLMs (Frank and I each conveyed to him with our most sincere and heartfelt longing through messages), and we also discussed things like switching research directions and finding internships. Because NeurIPS was in San Diego, a huge number of people came, and I also ran into a younger PhD student Jack. He too had switched from theory to LLMs, and was also very anxious. We discussed the state of the job market. By then there were already many PhDs graduating in only three or four years (I was job hunting at the time), and I was anxious in thinking that: if all those PhD students, who should have entered the market one or two years later suddenly flood in all at once, doesn’t it get even harder for not-so-outstanding PhDs like me, or for people who’ve only just switched their research directions, to find jobs? (On top of that, there were also many extremely talented first or second year PhDs who leave PhD program to join industry.) Jack, anxious but forcing himself to look on the bright side (he had only just started his second year), said, “Or maybe I’ll just stay in school through this turbulent period, and by the time I graduate the market will have stabilized again.”</p>

  <p>I also chatted with a peer I had once looked up to—a rising star in my eyes, the one who “could read in 30 minutes a proof that took me days to understand.” He said he had switched to LLMs in the past few months, but since others had several more years of experience than he did, he was slowly feeling his way forward, trying to catch up. Once again I didn’t know what to say. I thought: even those who once shone so brightly in their own field can feel lost and adrift when faced with something new. If he had stayed in his field, what a dazzling star he would have been. But LLMs have forced many people to abandon the directions they love and are good at, to work on something new, while others who got into it a little earlier already have a lot of experience. Sometimes I wonder: is it possible to catch up? Judging by most people’s examples, it seems that as long as you’re willing to work hard, willing to put in the time, and quick to grasp things, catching up is possible—and I’ve since seen many examples of successful transitions. Though I’m not one of the “willing to work hard, willing to put in the time, quick to grasp things” crowd (by now I’ve made peace with my own nature, so I just take things as they come and have no plans to catch up with anyone). But the those people I mentioned above—those who used to work on theory, they’ll surely catch up in the end, through their hard work and their brilliance.</p>

  <p>By 2026, almost every person met while applying for PhDs who used to work on theory had switched to LLMs. The trigger for writing this piece was that the friend Leo I mentioned earlier, the one who had wanted to go into quant, told me today that he just switched to LLMs this semester—he who had once been so resolute even in his most difficult time when he can’t find an advisor. He said he had only just changed directions, was still in the adjustment period, and was very unhappy due to the transitioning phase.</p>

  <p>As I write this, my mind is flooded with thoughts. Our PhDs—a mere three years, and yet it feels like such a long, long time has passed. So long that, unless I make an effort to remember, I’ll forget that many of those people and ephemeral moments ever existed. So long that when I sit down to write, I don’t know where to begin, or how to end. But these people and moments are still worth remembering. One of the reasons I originally wanted to work on ML theory was that I felt everyone in this fields was so nice (after all, everyone had plenty of free time, did research at an unhurried pace, and was very easygoing)—whether Leo, who didn’t usually hang out with me but showed up at my A exam to show his support, or Frank, whom I only knew each other online due to PhD applications, but were thoughtful enough to find a reason to hang out everytime when he know that we are attending the same conference. Our friendships feel so light and understated—so light that I often forget them constantly, and they might also forget me. But when something reminds us of each other, we can still catch up like old times. Even though so much has changed—we’ve all switched directions, and life and work have made us less idealistic than we were—there’s always something familiar that hasn’t changed. When we grow older, we stopped chatting with people without a specific purpose. Everyone has gotten into the habit of talking with a purpose (“with a purpose” isn’t meant as a criticism here; it’s more that a conversation needs a reason, and most of the time my reason is work or academic related). So I don’t know if we are friends or coworkers, since everying conversation feels like “meeting” or business chat.</p>

  <p>Those friendships with those old friends (who used to work on theory), though seem so light, yet don’t feel the least bit unfamiliar when picked up again a year later, are pure enough to leave me nostalgic and savoring.</p>

</div>

<div class="lang-content lang-zh" lang="zh" style="display: none;">

  <p>（备注：文中的名字都是我为了叙述方便随意起的，为保护朋友的的隐私， 我没有使用他们的真实姓名）</p>

  <p>原本想写成一个完美的书的结构，有序曲，有三个不同的章节（我的phd确实是阶段性的，几乎可以以年来划分, 化成三个章节，每个章节一个主题），有尾声。以至于在回国的飞机上了随便写了一些后，我开始花很长时间去思考怎么把我写的这些东西变得结构化，变成我心目中完美和完整的样子，再呈现给读者，结果就是，三周过去了，我在飞机上写的草稿却一直都没有完成。</p>

  <p>终于有勇气写这些不够完美的东西是因为，跟一位朋友聊天时，惊讶的发现他从理论转LLM了，顿时感慨颇多，想写些什么，想写的那些东西，本应放到我的phd回忆录里，但是我的回忆录却因为我对完美的追求，一直没有动笔。不知道是怎么养成的习惯，当把不完美的东西呈现给读者时，总要先道歉，诚实的列出所有我觉得不好的地方（这样看来，我真的是很不适合学术和创业了，不过phd经历的人和事，也让我学到了对自己少一些严苛，多一些包容）。所以，我就随意的，想到哪写哪吧，现实终究是不完美，不圆满的，如果要写的像文学作品，考虑读者的读感，我便会牺牲掉真实和随性，牺牲掉自己写作时的感受和心境的flow。而且，文学作平是有故事线的，现实则没有，我越来越能够接受世界的混沌，以及处于这个世界中的我的混沌（用褒义词叫”自由散漫”）。</p>

  <p>中午时随意打开了一篇知乎文章，看到一个朋友Leo的账号点赞了，于是微信给Leo发消息，我们已经很久没见了 ，想着和他catch up一下， 问问近况。他告诉我”他打算转去做LLM了，以及过去一年搬到了一个新的地方，和别人讲话讲的更少了”。虽然一年多没联系，聊天时还是熟悉的感觉。在23年申请phd的时候，我们都在做theory，但Leo的社交很少，不太会主动找别人玩，（他大部分时间都在做科研，读paper），但偶尔见到了我会和他聊聊天，因此，我对他的了解没有多到可以称为”熟悉”的地步。在我PhD A exam答辩的时候，他还来了（本来来的人也不多，而且，我的A exam我没有特意announce，只能在群发的邮件里看到，而他平常也不是喜欢去听presentation的人，我present的方向又和他感兴趣的方向毫不相关，所以，他注意到了，并腾出时间来，我觉得很感动）。Leo的博士之路十分坎坷，鉴于他的隐士风格，他应该不喜欢我告诉别人太多他的事情，所以我这里就省略掉好了。但即使他phd并不顺利，他一直是那么的平静和淡然，</p>

  <p>每次和周围一些人（尤其是男生）聊天，知道他们的经历时，我都会觉得，”我怎么这么不能吃苦，遇到多大点事儿，就开始吵吵闹闹，恨不得全世界都知道自己有多痛苦，有多难，同时，他们遇到更多更难的事情时，依然面无表情，平淡如水”。当然，这种自我pua的想法一般是转瞬即逝的，我倾向于以一个全面的，完整的态度看待事物，所以所有的事情都会有多个面和角度思考，并自由的掌握各个角度的权重，好处是，我不至于过于偏执以及opinionated，缺点是，有时候会让人觉得我没有个性，什么观点都能找到值得赞同的点。（又扯远了…</p>

  <p>2024 fall，我在考虑quit，Leo则在换导师以及找新的导师，我半开玩笑的说，”要不和我一起quit吧，你甚至都不用像我一样担心quit后对导师有啥影响，或者你别做理论了，换个做应用的导师吧？”（在cs系，如果Leo不在乎自己做的方向，找导师会容易很多）。但是他依然十分坚定，坚定的向我描述他想的career path。他把自己选择读phd包装成”是为了毕业后能去quant，拿到很高的工资”， 我不是很理解他的逻辑，因为在我看来，即使不读phd，或者不做理论，他也可以去做quant。但Leo却描述的像这是唯一一条路。我只是笑笑，因为，以我对他的了解，他是那种比较质朴的学术工作者， quant的”高工资”不至于让他如此坚定的去选择一条看起来更难的道路。（注意，我这里加了限定词”质朴的学术工作者”，是因为并不是所有的学术工作者都能被加上这个限定词，这也是我最开始进入学术圈时所犯的错误， 不过所有的东西都不是绝对的，不能片面的看待，当时的我只能看到人和事的某一面，并盲目的根据我所看到的东西，对事物进行定性，是我的问题。）</p>

  <p>或许是Leo的”隐士”风格让他能更少的听到世界的噪音，坚定的做他喜欢的事情，让他快乐的事情（做理论，写公式，以及读证明对一些人来说是快乐的呀）， 博一那一年，我也纠结了很久要不要放弃做理论，即使本科开始做理论的时候，就一直被本科的导师说，做理论不好招学生，不好拿funding，不好找工作…但当时，这就是能让我感到平静和快乐的事情，所以，这些现实的因素都不重要。我曾期待着自己可以一起做（所以我博士第一年其实是两边在一起做的）， 一方面，我没法放弃做理论，因为它让我感到平静，另一方面，我没法放弃做nlp，因为coding在过去几年里都是我的短板，如果我完全放弃做应用，它将再次成为我的短板。 （随之而来的便会是我的不自信，这种不自信会导致我没法站在一个客观，平等的角度看待很多的人和事， 对一些人抱有不应该有的滤镜）。就这样挣扎了一整年，最后，因为一个我不太喜欢的project，我最后决定不再做理论了。如果现在回看，我需要感谢这次命运的转折，因为我不再像以前一样分心了，之前，即使是理论和应用的project一起做，我也会prioritize 理论，因为它能让我快乐，我不在乎我是够做的够好，不在乎一个简单的证明我需要很久才能理解，也不在乎我的脑子和努力程度是否适合，我只在乎当下的快乐，以及这种慢悠悠的”一支笔，一本书，一个证明看很多天”的生活。 （虽然大佬们可能30min就看完了lol）。</p>

  <p>phd第二年开始后，我决定彻底放弃理论，专心的做llm和nlp时，当时是阵痛的，因为我不喜欢这么快的生活，也不喜欢写代码，我希望我的工具是纸和笔，我希望电脑是让我用来读证明的，而不是写code，做实验的。我依然努力去避免一些看起来很popular的方向，但确实不再能感受到在纸上写字的快乐了，也不再有之前的平静。两年后的现在，我已经习惯了并认同了现在的身份，甚至已经没法理解当时的自己为什么那么害怕放弃做理论，那么害怕做popular的方向。当时还是经历的太少，遇到一点事情就大惊小怪，不太感尝试自己心理预期之外的事情，现在则变得更加虚无主义，因为不在乎的东西多了，就不那么怕失去了，以及，见过的data多了，就知道，人总能逐渐适应的，不需要总把自己放在最舒适的环境里，也不需要把自己限制在一个框框里（现在写作是新的让我感到平静的事情，写作和写证明其实挺像的，只不过，写证明时，我觉得自己呈现了一副完美的作品，并且周围人的认可让我更确信这一点；写作的时候，我的思绪常常飘远，所以在客观的评价上，我没法呈现一个符合客观评价标准的好的作品。但是，某一天，我突然发现，周围的人和世界比我更加包容，不一定要做到完美，才能展现给别人（后面的试了几次，也收到了很多positive的feedback）。之前，我还是会觉得有点shapely，没把自己的文字发在英文的社交媒体上，只是静静的放在了我的主页上，（中文的版本则偶尔会放到一些中文的社交媒体上，希望与我生活无关的陌生人读到，但不希望熟人读到）。某一天，我收到一份陌生的英文邮件，说很喜欢我的blog，虽然她和我有着不同的经历，但我写的一些东西，她也有类似的感受。这应该就是写作的意义吧。在某一个时间点，和一个陌生人，短暂的建立一些链接，建立一条边，然后再做回陌生人（看起来没有什么意义的事情，可以人生本来就是没有意义的呢）。也因为这个邮件，在我后面的所有写作中，我都认真的校对我的英文版，而不是随意的用LLM翻译后直接放到我的主页上。</p>

  <p>24年ICML的时候，虽然当时的我已经决定了不再继续做理论，大部分时间都在和做applications人交谈。当时一起申请phd的 3个做理论的小伙伴刚好也在那儿开会，其中的一个人， Frank， 便约了我们一起city walk，我跟他们在一起，显得有些尴尬，因为那时的我已经听不懂他们在激烈讨论着的各种optimization theory和stochastic algorithm了，我只能一边听着，一边羡慕他们还在追求自己喜欢的东西，即使周围有那么多llm的声音。（Frank会叫上我一起玩，大概是因为，当时他在ICML随机抓取一个人，可能就是做LLM的或者相关方向的，所以他好像也不太能像大部分做llm的人一样，忙于社交，忙于和同方向的人交流，所以大概只能从微信列表里抓人了）</p>

  <p>25年 neurips的时候，我们上次开会一起玩的三个小伙伴里，来了两个，其中一个小伙伴已经转llm了，忙于和会上其他做LLM的人交流，忙到没时间一起玩，于是只剩Frank和我聊了很久，他说他以及剩下那个没来参会的小伙伴都准备转LLM了（当晚，我和Frank分别用发消息给他向他致以诚挚的思念）， 顺便讨论了些转方向，找实习之类的事情。因为neurips在san Diego，来的人非常多，我还再次见了一年半前见过的一个做理论的学弟，他也转LLM了，也很焦虑，我们讨论了一些就业市场的现状，那个时候，已经很多才第3年，4年便毕业的PhD了，（我当时也在找工作，想着三年毕业），我觉得，如果一群原本应该一年，两年后才进入市场的人一下子涌入市场，想我这样的本来就很普通的phd，或者是才开始转方向做LLM的人，是不是更难找工作了？（另外，还有一些phd 1， 2年级就on leave去industry的）， 学弟一边焦虑，努力乐观的往好的方向想（他那个时候刚刚博二），”或者这个动荡的时间点先在学校待着，等毕业的时候，市场已经恢复稳定了”， 而我则没有他那么乐观， 我只想着赶快逃离学校。</p>

  <p>当时还见到了一个我一度十分崇拜的一位做理论的peer，因为他是我心目中的rising star，那个”30min就能看完我需要看几天才能看懂的证明”的人， 而且即使他如此厉害而聪明，他依然对人很谦和，很nice。他说他最近几个月转了LLM，但毕竟别人比他多了几年的经验，所以他也在慢慢的摸索想要catch up。 我又一次不知道该说些什么，我想，原来那些曾今在自己领域熠熠生辉的人，面对新的东西，也会有迷茫和无所适从的时候呀，如果他继续待在他的那个领域，他会是多么耀眼的star 呀，可是LLM让很多人不得不放弃自己喜欢和擅长的方向，去做一个新的东西，而其他人早一点去做这个东西的人，已经有了很多的经验。有时候，我会觉得，这能够追得上吗？ 看大多数人的example，貌似是只要肯努力，愿意花时间，悟性强，便是可能可以追得上的，我后面也看到了很多转型成功的example，不过我不是”肯努力，愿意花时间，悟性强”的那群人中的一员，（目前已经和自己的天性和解，便得过且过，不打算追赶上谁了）， 但上面提到的这些做理论的朋友们，最后还是会凭他们的努力和聪明才智追上去的吧。</p>

  <p>到了2026年，我申请phd时认识的几乎所有做理论的朋友都已经转了llm。写下这个篇文章的trigger就是，我前面提到的那位之前想要做quant的朋友，今天告诉我他这学期转LLM了—那个当初那么难，依然如此坚定的他。他说自己刚换方向，还在磨合期，非常的不开心。</p>

  <p>当我写下这篇文章的时候，我思绪万千，我们的phd，短短三年，却又像过了好久好久了，久到很多人和事，不去努力回忆，就会忘记他们曾经存在过，久到在写作的时候不知从哪开始写起，不知道如何去收尾。这些人和事还是值得记录的，我之前想做理论的一个原因是，我觉得这个圈子里的人都很nice（毕竟，大家都比较闲，慢悠悠的做科研，又很随性），无论是我上面提到的平常不怎么一起玩，却会在我的A exam中show up来show his support的Leo，还是每次开会都想着一起聚一聚的Frank， 感觉大家的关系淡淡的，淡到我常常会忘记他们， 他们也常常忘了我，但在因为一些事情想起来的对方的时候，还是可以不带目的性的social和聊天，即使很多事情都变了，我们都转了方向，被生活和工作变得不再那么理想主义，但总有一些熟悉的感觉没有变。我刚刚才发现，自己已经很久没有不带工作目的的和别人聊过天了，大家也习惯性的带着目的聊天（”带着目的”在这里不是贬义词，更多的像是，聊天需要一个理由，大部分时间，都是工作和学术交流的目的， 我已经逐渐分不清他们是我的同事还是我的朋友了，或许他们两者都是， 习惯了之后，就觉得无所谓了）。 而和我那个曾经做理论的朋友们的这种，看起来淡淡的，但一年之后在拾起来依然不会觉得陌生的友谊，却纯粹到让我怀念和感动。</p>

</div>

<script>
(function() {
  var buttons = document.querySelectorAll('.lang-switcher .lang-btn');
  var contents = document.querySelectorAll('.lang-content');
  buttons.forEach(function(btn) {
    btn.addEventListener('click', function() {
      var lang = btn.getAttribute('data-lang');
      buttons.forEach(function(b) { b.classList.remove('active'); });
      btn.classList.add('active');
      contents.forEach(function(c) {
        if (c.classList.contains('lang-' + lang)) {
          c.style.display = '';
        } else {
          c.style.display = 'none';
        }
      });
    });
  });
})();
</script>]]></content><author><name>Jinyan Su</name><email>jinyansu6@gmail.com</email></author><category term="personal" /><category term="reflection" /><category term="life" /><category term="phd" /><category term="research" /><category term="theory" /><category term="llm" /><category term="friendship" /><summary type="html"><![CDATA[By 2026, almost every friend I met while applying for PhDs in 2023 who worked on theory had switched to LLMs. On giving up proofs for code, quiet friendships that survive years of silence, and three short years of a PhD that feel like a very long time.]]></summary></entry></feed>