<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Neha Maurya</title>
    <description>The latest articles on DEV Community by Neha Maurya (@neha_maurya).</description>
    <link>https://dev.to/neha_maurya</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3978985%2F212bfb2d-5e0d-4fae-bd9b-066f3482594c.png</url>
      <title>DEV Community: Neha Maurya</title>
      <link>https://dev.to/neha_maurya</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/neha_maurya"/>
    <language>en</language>
    <item>
      <title>What If a Transformer Never Had to Forget? Meet the Recurrent Looped Transformer (RLT)</title>
      <dc:creator>Neha Maurya</dc:creator>
      <pubDate>Tue, 15 Sep 2026 18:34:13 +0000</pubDate>
      <link>https://dev.to/neha_maurya/what-if-a-transformer-never-had-to-forget-meet-the-recurrent-looped-transformer-rlt-43oh</link>
      <guid>https://dev.to/neha_maurya/what-if-a-transformer-never-had-to-forget-meet-the-recurrent-looped-transformer-rlt-43oh</guid>
      <description>&lt;p&gt;You ask a language model a one-line question — it processes it through &lt;strong&gt;48 layers.&lt;/strong&gt; You paste a 10,000-word document — it still processes it through &lt;strong&gt;48 layers.&lt;/strong&gt; Same depth. Same ceiling. Every single time.&lt;/p&gt;

&lt;p&gt;That's the structural limit of every decoder-only Transformer in production today.&lt;/p&gt;

&lt;p&gt;A technical report published September 12, 2026 by Princeton researcher Yifan Zhang — &lt;strong&gt;Recurrent Looped Transformer (RLT)&lt;/strong&gt; — proposes closing that loop. In most decoder-only LLMs, &lt;strong&gt;nothing computed at the last layer of token t feeds the first layer of token t+1&lt;/strong&gt;; positions communicate only through attention over cached keys and values. RLT changes this: &lt;strong&gt;the decoder's final hidden state and its layerwise sliding-window attention (SWA) cache are carried into the next token, across both prompt and response, with no reset at the boundary.&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;⚠️ &lt;strong&gt;Important:&lt;/strong&gt; RLT is an architectural specification, not a trained system. The report explicitly states that &lt;strong&gt;no measured efficiency, reasoning quality, or scaling results are reported.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  How RLT Is Built
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Recurrent Looped Transformer (RLT)&lt;/strong&gt; pairs a &lt;strong&gt;causal encoder&lt;/strong&gt; with a &lt;strong&gt;recurrent decoder.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Causal Encoder
&lt;/h3&gt;

&lt;p&gt;The encoder processes tokens &lt;strong&gt;in parallel&lt;/strong&gt; under a causal mask and produces representations for each position. These representations are projected into &lt;strong&gt;key-value memory&lt;/strong&gt; that the decoder can query later. Memory groups can be:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Shared across all decoder layers&lt;/strong&gt; (efficient), or&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Layer-specific&lt;/strong&gt; (more flexible)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This memory is &lt;strong&gt;encoder-derived&lt;/strong&gt; — it depends only on input tokens, not on decoder states.&lt;/p&gt;

&lt;h3&gt;
  
  
  Recurrent Decoder
&lt;/h3&gt;

&lt;p&gt;The decoder holds the recurrence. Its complete state has &lt;strong&gt;two components:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Final decoder output&lt;/strong&gt; (the recurrent hidden state)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sliding-window attention (SWA) cache&lt;/strong&gt; — retained keys and values at every decoder layer&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For each token, a &lt;strong&gt;gated merge&lt;/strong&gt; combines the current encoder representation with the previous decoder output. The gate controls how much previous information is carried forward. Then each decoder block runs:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Causal SWA&lt;/strong&gt; over decoder activations (local attention within a bounded window)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cross-attention&lt;/strong&gt; to encoder memory (global context)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Feed-forward network&lt;/strong&gt; (standard FFN)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The next-token distribution is read from the final decoder output. Initialization happens once before the beginning-of-sequence token with a &lt;strong&gt;learned start state&lt;/strong&gt; and an &lt;strong&gt;empty cache.&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;💡 &lt;strong&gt;Tip:&lt;/strong&gt; RLT separates two memory stores because they serve different roles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Encoder memory&lt;/strong&gt; is immutable for a fixed prefix — think of it as a &lt;strong&gt;"textbook index"&lt;/strong&gt; of what was said&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Decoder SWA cache&lt;/strong&gt; changes every step and keeps only recent activations — think of it as the &lt;strong&gt;"last 2 pages of notes"&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Neither can replace the other.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Reference Tied Configuration
&lt;/h3&gt;

&lt;p&gt;The reference configuration uses:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;48 encoder layers&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;48 decoder layers&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Compatible attention and FFN weights shared&lt;/strong&gt; between them&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each token executes &lt;strong&gt;96 logical blocks&lt;/strong&gt; (48 encoder + 48 decoder). Zhang calls this &lt;strong&gt;parameter reuse, not activation copying.&lt;/strong&gt; Two logical passes do not imply equal per-block compute — the decoder block adds cross-attention that the encoder doesn't have.&lt;/p&gt;




&lt;h2&gt;
  
  
  The 3 Design Principles
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Latent Reasoning with Unbounded Temporal Depth
&lt;/h3&gt;

&lt;p&gt;After processing &lt;strong&gt;t tokens&lt;/strong&gt;, the state path traverses &lt;strong&gt;t × 48 decoder blocks&lt;/strong&gt; in the reference configuration.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tokens Processed&lt;/th&gt;
&lt;th&gt;Normal Transformer Depth&lt;/th&gt;
&lt;th&gt;RLT State Path Depth&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;48&lt;/td&gt;
&lt;td&gt;48&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;48&lt;/td&gt;
&lt;td&gt;480&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;100&lt;/td&gt;
&lt;td&gt;48&lt;/td&gt;
&lt;td&gt;4,800&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1,000&lt;/td&gt;
&lt;td&gt;48&lt;/td&gt;
&lt;td&gt;48,000&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Per-token work stays fixed at 96 blocks,&lt;/strong&gt; while the path's structural depth grows with the sequence. "Unbounded" means &lt;strong&gt;no fixed architectural upper bound on the recurrent computation path&lt;/strong&gt; — it does not mean infinite computation per input.&lt;/p&gt;

&lt;p&gt;The report warns that &lt;strong&gt;gates and contraction may suppress long paths.&lt;/strong&gt; Structural depth is &lt;strong&gt;not a reasoning guarantee&lt;/strong&gt; — it's a structural possibility that requires experimental validation.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;💡 &lt;strong&gt;Tip — Snowball Analogy:&lt;/strong&gt; The same amount of snow is added during every rotation (fixed compute per token), but the snowball grows because information accumulates. After 100 rotations, you have a massive snowball — without needing a bigger hill.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  2. Model–Hardware Co-Design
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Encoder features&lt;/strong&gt; use token-parallel kernels — they can process known tokens in parallel. &lt;strong&gt;Decoder transitions&lt;/strong&gt; stay sequential within a sequence, but &lt;strong&gt;independent sequences can be batched together:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Sequence A: Token 1 → Token 2 → Token 3 → Token 4&lt;br&gt;
Sequence B: Token 1 → Token 2 → Token 3 → Token 4&lt;br&gt;
Sequence C: Token 1 → Token 2 → Token 3 → Token 4&lt;br&gt;
↓&lt;br&gt;
BATCHED ON GPU&lt;/p&gt;

&lt;p&gt;The report states plainly:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;No exact parallel scan&lt;/strong&gt; is assumed for the nonlinear decoder&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No reduced-prefill speedup&lt;/strong&gt; is claimed&lt;/li&gt;
&lt;li&gt;A standard parallel SWA decoder pass is &lt;strong&gt;not equivalent&lt;/strong&gt; to the recurrence&lt;/li&gt;
&lt;li&gt;Batching, kernel fusion, and checkpointing are listed as &lt;strong&gt;implementation targets, not completed kernels&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;💡 &lt;strong&gt;Tip for Practitioners:&lt;/strong&gt; RLT's decoder is inherently sequential per sequence. Throughput optimization comes from &lt;strong&gt;batching independent sequences&lt;/strong&gt;, not from parallelizing within one sequence. This is closer to RNN-style serving than standard transformer serving.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  3. Model–RL Algorithm Co-Design
&lt;/h3&gt;

&lt;p&gt;Pretraining, supervised fine-tuning (SFT), sampling, and reinforcement learning (RL) replay &lt;strong&gt;share one state transition.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;During sampling:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Record generated tokens&lt;/li&gt;
&lt;li&gt;Record behavior log-probabilities under the actual sampling distribution (including temperature and truncation)&lt;/li&gt;
&lt;li&gt;Record sampling configuration&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;During training:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Rebuild encoder memory&lt;/strong&gt; from scratch under current parameters&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rebuild the recurrent output&lt;/strong&gt; through all prompt tokens under current parameters&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rebuild every SWA cache&lt;/strong&gt; under current parameters&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Old rollout states are never reused&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The trainer computes the current policy probability and forms an &lt;strong&gt;importance ratio&lt;/strong&gt; comparing it to the behavior policy probability. &lt;strong&gt;Proposition 3.1&lt;/strong&gt; formalizes the payoff: moving the prompt-response split leaves the conditional distribution unchanged for a fixed token history. This is mathematical equivalence — different kernels and numerical precision can still cause numerical discrepancies.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;💡 &lt;strong&gt;Tip for ML Engineers:&lt;/strong&gt; If your architecture has any recurrent component, &lt;strong&gt;old states become stale after parameter updates.&lt;/strong&gt; Reconstruct states from the sequence start under current parameters. Record behavior log-probabilities including all sampling transformations — metadata alone cannot restore missing support from truncated sampling.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Training and Serving
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Pretraining
&lt;/h3&gt;

&lt;p&gt;Pretraining is &lt;strong&gt;full-sequence next-token prediction&lt;/strong&gt; with &lt;strong&gt;full backpropagation through time (BPTT).&lt;/strong&gt; Independent documents reset:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Recurrent outputs&lt;/li&gt;
&lt;li&gt;Decoder SWA caches&lt;/li&gt;
&lt;li&gt;Encoder caches&lt;/li&gt;
&lt;li&gt;Positions&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Supervised Fine-Tuning (SFT)
&lt;/h3&gt;

&lt;p&gt;Loss is &lt;strong&gt;masked to assistant targets only,&lt;/strong&gt; but &lt;strong&gt;state updates are never masked.&lt;/strong&gt; Gradients from assistant losses &lt;strong&gt;backpropagate through user and tool tokens.&lt;/strong&gt; The state is &lt;strong&gt;not reset&lt;/strong&gt; at an assistant boundary.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;💡 &lt;strong&gt;Tip — The SFT Insight:&lt;/strong&gt; The model learns how to &lt;strong&gt;"think about"&lt;/strong&gt; the user's message, not just how to respond to it. Loss masking removes the loss term, not the computation or the gradient path.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Truncated BPTT
&lt;/h3&gt;

&lt;p&gt;Appendix B shows why partial detaching is risky. The state-to-state Jacobian has &lt;strong&gt;cross terms through the decoder key-value cache.&lt;/strong&gt; The recurrent state has two components:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Final decoder output&lt;/li&gt;
&lt;li&gt;Decoder SWA cache&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Detaching only the final decoder output leaves gradient paths through the SWA cache.&lt;/strong&gt; Therefore, any truncated-BPTT scheme must explicitly identify &lt;strong&gt;every detached tensor.&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;💡 &lt;strong&gt;Tip:&lt;/strong&gt; Detaching the recurrent hidden state alone is &lt;strong&gt;NOT sufficient&lt;/strong&gt; to cut temporal gradient dependencies. The decoder SWA cache also carries gradient information. A complete detach requires stop-gradient on &lt;strong&gt;both components&lt;/strong&gt; of the recurrent state.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Multi-Turn Serving
&lt;/h3&gt;

&lt;p&gt;An exact prefix snapshot includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Encoder cache&lt;/li&gt;
&lt;li&gt;Encoder memory&lt;/li&gt;
&lt;li&gt;Complete decoder state&lt;/li&gt;
&lt;li&gt;Position metadata&lt;/li&gt;
&lt;li&gt;Window convention&lt;/li&gt;
&lt;li&gt;Model version&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A fixed-weight snapshot can be reused because the state is &lt;strong&gt;independent of the serving split.&lt;/strong&gt; Weight updates invalidate old states. Editing a prefix forces recomputation from an earlier checkpoint. External tokens in multi-turn RL update the state but &lt;strong&gt;get no importance-ratio factors.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  How It Relates to Prior Work
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Encoder-derived memory&lt;/strong&gt; follows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;YOCO&lt;/strong&gt; (2024) — caches KV once for a cross-decoder&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DeepSeek-V4.1-Flash&lt;/strong&gt; (2026) — projects decoder global KV from final encoder states&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;RLT keeps the encoder-derived memory but &lt;strong&gt;drops prompt-wide decoder skipping&lt;/strong&gt; — every prompt token gets its full decoder update.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Temporal feedback&lt;/strong&gt; builds on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Feedback Transformer&lt;/strong&gt; (2020) — carries information from processed tokens into future computation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Recurrent Transformer&lt;/strong&gt; (2026) — forms each layer's persistent KV from that layer's output&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;RLT instead feeds the &lt;strong&gt;previous final decoder output&lt;/strong&gt; into the next decoder input and runs recurrence over the prompt too.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Depth-wise reuse&lt;/strong&gt; connects to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Universal Transformers&lt;/strong&gt; (2018) — share computation across depth&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Recurrent-depth latent reasoning&lt;/strong&gt; (2025) — iterates a recurrent block to scale computation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The RL replay argument extends Zhang's &lt;strong&gt;prefill-decode kernel mismatch&lt;/strong&gt; note (2026).&lt;/p&gt;




&lt;h2&gt;
  
  
  Comparison: RLT vs Prior Architectures
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;Standard Transformer&lt;/th&gt;
&lt;th&gt;YOCO (2024)&lt;/th&gt;
&lt;th&gt;Feedback Transformer&lt;/th&gt;
&lt;th&gt;Recurrent Transformer&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;RLT (2026)&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Per-token depth&lt;/td&gt;
&lt;td&gt;Fixed&lt;/td&gt;
&lt;td&gt;Fixed&lt;/td&gt;
&lt;td&gt;Fixed&lt;/td&gt;
&lt;td&gt;Fixed&lt;/td&gt;
&lt;td&gt;Fixed ✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Depth grows with sequence?&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;✅ Yes (t × decoder depth)&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Memory type&lt;/td&gt;
&lt;td&gt;KV cache (one type)&lt;/td&gt;
&lt;td&gt;Encoder KV reuse&lt;/td&gt;
&lt;td&gt;Layer feedback&lt;/td&gt;
&lt;td&gt;Layerwise KV&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Encoder memory (global) + SWA cache (local) + Recurrent state&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Prompt-response boundary&lt;/td&gt;
&lt;td&gt;Different phases&lt;/td&gt;
&lt;td&gt;Different&lt;/td&gt;
&lt;td&gt;Different&lt;/td&gt;
&lt;td&gt;Different&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Same transition, no reset&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RL training consistency&lt;/td&gt;
&lt;td&gt;Mismatch (stale states)&lt;/td&gt;
&lt;td&gt;Not addressed&lt;/td&gt;
&lt;td&gt;Not addressed&lt;/td&gt;
&lt;td&gt;Not addressed&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Exact replay under current params&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hardware co-design&lt;/td&gt;
&lt;td&gt;Generic&lt;/td&gt;
&lt;td&gt;KV reuse&lt;/td&gt;
&lt;td&gt;Not addressed&lt;/td&gt;
&lt;td&gt;Tiling schedule&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Explicit parallel/sequential split&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Prompt-wide decoder skip?&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes (early exit)&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;No — full recurrence&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Empirical validation&lt;/td&gt;
&lt;td&gt;✅ Extensive&lt;/td&gt;
&lt;td&gt;✅ Some&lt;/td&gt;
&lt;td&gt;✅ Some&lt;/td&gt;
&lt;td&gt;✅ Some&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;❌ Not yet&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




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

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;RLT carries the full decoder state&lt;/strong&gt; — final output plus layerwise SWA cache — across every prompt and response token &lt;strong&gt;with no boundary reset&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Reference configuration:&lt;/strong&gt; 48 tied encoder + 48 tied decoder layers = &lt;strong&gt;96 logical blocks per token.&lt;/strong&gt; State path has structural depth of &lt;strong&gt;48t blocks&lt;/strong&gt; after t tokens&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Hardware opportunities:&lt;/strong&gt; Encoder parallelism and batching across sequences. &lt;strong&gt;No parallel scan or reduced-prefill speedup is claimed&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;RL replay&lt;/strong&gt; rebuilds all states under current parameters while keeping recorded behavior log-probabilities as ratio denominators&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;No measured results:&lt;/strong&gt; Reasoning quality, efficiency, and RL scaling remain &lt;strong&gt;open validation targets&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Practical Tips
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Tip #1: Chain Your Prompts — Don't Dump Everything at Once
&lt;/h3&gt;

&lt;p&gt;More rounds mean more reasoning passes through the model's layer stack on accumulated context. Instead of one massive prompt, build context iteratively through back-and-forth conversation.&lt;/p&gt;

&lt;h3&gt;
  
  
  Tip #2: Recognize "State Reset" Failures in Production
&lt;/h3&gt;

&lt;p&gt;When AI contradicts earlier context or forgets constraints, don't just rephrase. Instead:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Restate key constraints&lt;/strong&gt; in your current message, or&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Start a fresh conversation&lt;/strong&gt; and rebuild context deliberately&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Tip #3: Audit Your RL State Handling
&lt;/h3&gt;

&lt;p&gt;If building RL training pipelines, check:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Are training states computed under &lt;strong&gt;current parameters?&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Are you &lt;strong&gt;reusing stale rollout states?&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Are behavior log-probabilities &lt;strong&gt;recorded correctly with all sampling transforms?&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Reconstruct states from the sequence start under current parameters — never reuse old states after parameter updates.&lt;/p&gt;




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

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;RLT — Zhang, Y. (2026)&lt;/strong&gt; — &lt;a href="https://github.com/yifanzhang-pro/recurrent-looped-tranformer" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;YOCO — Sun et al. (2024)&lt;/strong&gt; — &lt;a href="https://arxiv.org/abs/2405.05254" rel="noopener noreferrer"&gt;arXiv:2405.05254&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Feedback Transformer — Fan et al. (2020)&lt;/strong&gt; — &lt;a href="https://arxiv.org/abs/2002.09402" rel="noopener noreferrer"&gt;arXiv:2002.09402&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Recurrent Transformer — Oncescu et al. (2026)&lt;/strong&gt; — &lt;a href="https://arxiv.org/abs/2604.21215" rel="noopener noreferrer"&gt;arXiv:2604.21215&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Universal Transformers — Dehghani et al. (2018)&lt;/strong&gt; — &lt;a href="https://arxiv.org/abs/1807.03819" rel="noopener noreferrer"&gt;arXiv:1807.03819&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Recurrent Depth — Geiping et al. (2025)&lt;/strong&gt; — &lt;a href="https://arxiv.org/abs/2502.05171" rel="noopener noreferrer"&gt;arXiv:2502.05171&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prefill-Decode Mismatch — Zhang et al. (2026)&lt;/strong&gt; — &lt;a href="https://github.com/yifanzhang-pro/Pretraining-RL-Science/blob/master/Prefill_Decode_Kernel_Mismatch.pdf" rel="noopener noreferrer"&gt;GitHub PDF&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DeepSeek-V4.1-Flash — DeepSeek-AI (2026)&lt;/strong&gt; — &lt;a href="https://huggingface.co/deepseek-ai/DeepSeek-V4.1-Flash" rel="noopener noreferrer"&gt;HuggingFace&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;p&gt;&lt;strong&gt;Check out the &lt;a href="https://github.com/yifanzhang-pro/recurrent-looped-tranformer" rel="noopener noreferrer"&gt;Technical Report&lt;/a&gt;, &lt;a href="https://github.com/yifanzhang-pro/recurrent-looped-tranformer" rel="noopener noreferrer"&gt;GitHub repository&lt;/a&gt;, and Project Page. All credit goes to the researcher of this project.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>architecture</category>
      <category>machinelearning</category>
      <category>nlp</category>
    </item>
  </channel>
</rss>
