research → practice
01 / 21
Research paper explainer

Thinking with
Looped Flows

A recurrent model that learns to improve its internal state while moving from noise towards a solution.

Ayhan Suleymanzade et al. arXiv:2609.11801v1 10 September 2026

Open the paper ↗

noisestatesolution
recurrent
denoiser
01 · plain-English TL;DR

Give the model a path to think along.

Looped flows combine two ideas: a loop that keeps updating hidden state, and a flow that gradually turns noise into a candidate answer. Training supervises small denoising steps in sequence, so the state can become more useful over time without backpropagating through a long unrolled computation.

The loop

Reuse the same model

Each recurrence update shares parameters but receives a changing state. Effective depth grows at inference time.

The flow

Move from noisy to clean

A probability path provides local denoising targets at progressively lower noise levels.

The payoff

Spend more compute when useful

Use a finer time grid, stochastic sampling, or several trajectories when the problem deserves more search.

Source: paper abstract, pp. 1–5 ↗

02 · why it matters

Reasoning quality can depend on how long you let the process run.

One-shot model

Fixed computation

1Map the problem directly to one prediction.
2More capacity usually means a larger model or deeper network.
3Hard to trade extra inference budget for a single instance.
Looped flow

Adjustable computation

1Start with a noisy flow state and a recurrent state.
2Iteratively denoise while updating the hidden state.
3Spend more steps, or sample more trajectories, when needed.
Design implication

This is a compute-allocation mechanism. It doesn’t guarantee better reasoning by itself: the recurrence must be trained so later updates can use earlier state.

Source: introduction and background, pp. 1–3 ↗

03 · benefits & use cases

Where this pattern is most interesting.

The paper tests structured reasoning problems. The first two cards below are directly evidenced by those experiments; the third is a practical inference from the mechanism.

01

Hard constraint solving

Sudoku, maze paths, and abstract ARC tasks are useful because correctness is inspectable rather than judged only by a language-model preference.

Demonstrated in the paper.

02

Several valid answers

N-Queens and graph colouring let the model sample different valid solutions and measure coverage, not just the first answer.

Demonstrated in the paper.

03

Budget-aware agents

Potential fit: agent workflows where a cheap first pass can escalate to finer integration or multiple candidates when confidence is low.

Design implication, not tested here.

“The model can spend more computation through a finer temporal grid.”

Source: abstract and Section 3.2, pp. 1, 5 ↗

Section break

Deep dive:
how the loop learns

The central trick is temporal alignment: make neighbouring denoising tasks related enough that a recurrent state can carry useful computation forward.

04 · the training problem

Truncated backprop makes the early loop guess.

A conventional looped model can stop gradients between updates to keep training practical. That saves memory, but a later loss can’t directly teach an early state what future steps will need.

What gets cut

Long-range credit assignment

With stop-gradient between recurrent steps, every step gets a local target, but early states aren’t rewarded for making later computation easier.

z₀z₁z₂z₃stop-gradstop-gradstop-grad
What can go wrong

Unstable recurrences

The paper connects this setup to two failure modes: a recurrence can settle into a wrong but stable attractor, or fail to converge at all.

12.6%
of tested TRM Sudoku cases failed, according to the paper’s analysis.
90.9%
of those TRM failures were resolved by looped flows.

Source: Sections 2 and 5.1, pp. 2–3, 7–8 ↗

05 · core mechanism

One stateful denoiser, two things moving.

At each time step, the denoiser predicts a cleaner solution and updates a recurrent hidden state. A numerical integration step then moves the flow state forward.

problem ccontext flow state xₜ hidden zₜ stateful denoiserD̂ₜ(xₜ, zₜ ; c)predict + update prediction x̂ₜ new state zₜ₊₁ flow state xₜ₊₁ denoiserecurODE/SDE step

Source: Figure 1 and Equation 8, pp. 1, 4 ↗

06 · training

Make adjacent steps share the same story.

Temporal alignment

Progressively less noise

Sample ordered times t₀ < t₁ < … < tₖ. The associated interpolants become easier to denoise as time advances.

ADraw one problem, solution, and noise sample.
BReuse that same triplet across the ordered times.
CApply a local cross-entropy loss at every step.
Credit assignment without BPTT

Stop gradients between states

Each denoising objective stays local. The sequence itself teaches the recurrence to carry useful state forward, while adaptive computation time ignores steps after accuracy saturates.

high noiselow noiset₀t₁t₂tₖ

Source: Section 3.1 and Algorithm 1, pp. 4–5 ↗

07 · inference

At test time, the grid becomes your compute dial.

The paper integrates from t = 0 to t = 1. A finer temporal grid means more denoising-and-state updates. Stochastic integration adds controlled variation so different runs can explore different valid answers.

Dial 01

Finer grid

Increase the number of integration steps without changing the trained model.

Dial 02

ODE or SDE

Deterministic ODE integration preserves diversity; stochastic SDE integration can improve validity and coverage.

Dial 03

Ensemble

Run independent trajectories, then use the ACT head’s score to select a candidate.

Interactive view · Sudoku inference budget

8 steps · 74.5% reported
8163264128 steps
conceptual trend from Figure 3 selected budget

Only the paper’s reported endpoints are labelled here: 74.5% at 8 steps and 97.9% at 128 steps. Intermediate values are intentionally not asserted.

Source: Figure 3 and Section 3.2, pp. 5, 7 ↗

08 · evidence

Strongest gains show up on structured reasoning.

The authors compare small models against prior looped methods on four benchmark families. The looped-flow models use 5–7M parameters in this table.

MethodParamsSudokuMazeARC-1ARC-2
TRM5–7M87.485.344.67.8
FPRM7M94.287.047.56.2
GRAM10M52.011.1
Looped flows5–7M97.9 ± 0.486.7 ± 1.158.8 ± 1.812.2 ± 1.9

Single-trajectory results. Sudoku and Maze are exact accuracy; ARC columns are pass@2. Dashes mean the cited comparison did not report that result in Table 1.

Source: Table 1 and Section 5.1, pp. 7–8 ↗

09 · stability

Better recurrence means fewer dead ends.

TRM failure analysis
12.6%

of around 65,000 tested Sudoku-Extreme instances failed under TRM. Among these failures, 88.3% did not converge and 11.7% reached a wrong stable attractor.

initial statewrong / unstable
Looped-flow recovery
90.9%

of TRM failure cases were resolved by looped flows: 89.9% of non-convergence cases and 98.0% of spurious-attractor cases.

89.9%
non-convergence cases recovered
98.0%
spurious-attractor cases recovered
!
Read this carefully

These are recovery rates on the baseline’s failure cases, not a universal error reduction claim. The analysis is on Sudoku-Extreme and compares with TRM.

Source: Section 5.1 and Figure 4, pp. 7–8 ↗

10 · diversity

Don’t just find an answer. Find the valid answer space.

For multi-solution tasks, the paper runs 20 independent inferences and measures validity plus coverage: how much of the set of compatible solutions was recovered.

TaskValidity / conflictsCoverageWhat it tests
N-Queens 8×899.9 ± 0.1% accuracy91.4 ± 0.4%Many valid board layouts
N-Queens 10×1094.4 ± 0.7% accuracy61.5 ± 0.1%Larger solution space
Graph colouring 80.7 ± 0.6 conflicts89.4 ± 0.7%Valid colour assignments
Graph colouring 101.0 ± 1.0 conflicts55.2 ± 0.3%Larger graph

Why stochasticity helps

Different initial noise samples can be transported towards different valid solutions. In the paper, SDE generally improves coverage, especially on larger tasks.

Why determinism still matters

ODE integration retains diversity in the reported experiments, so variation isn’t solely attributed to injected noise.

Source: Table 2 and Tables 4–5, pp. 9–10 ↗

11 · ablations

The recipe is not one trick. It’s a bundle.

Removing temporal conditioning, interpolants, decreasing noise, or shared noise lowers ARC performance. The largest drop in the table comes from removing both time conditioning and interpolants.

ConfigurationARC-AGI-1ARC-AGI-2Interpretation
Full looped flow58.8 ± 1.812.2 ± 1.9All components
Without time conditioning56.49.9Model loses explicit t
Without interpolant51.59.9No noisy-to-clean path
Without time + interpolant43.65.0Both signals removed
Without decreasing noise51.69.9Breaks temporal curriculum
Without noise sharing56.410.8Less cross-step association

The paper reports pass@2 accuracy for ARC. Values without ± are shown as reported in Table 3.

Source: Table 3 and Section 5.3, p. 10 ↗

12 · limits & open questions

Promising mechanism. Early evidence.

What the paper establishes

What it doesn’t establish

Open question from the paper

The conclusion points to simulation-free training methods that could retain looped-flow benefits while changing the training procedure.

Source: Sections 3.1, 5, Appendix B, and Conclusion, pp. 4–10, 14–16 ↗

Section break

Implementation guide:
from problem to loop

A research-oriented recipe you can adapt to a structured task. Start with inspectable correctness, then earn complexity one component at a time.

13 · step-by-step

Build the smallest loop that can be measured.

1Choose a structured task. Begin with Sudoku, paths, scheduling, or another problem with an executable validator.
2Define context and target. Encode problem c and solution x₁ as categorical sequences or another state space.
3Define the interpolant. Create Iₜ = (1−t)x₀ + tx₁ from noise x₀ to target x₁.
4Make the denoiser stateful. Return both a denoised prediction and the next recurrent hidden state.
5Train local losses. Sample ordered times, share the triplet, apply cross-entropy at each step, and stop gradients between state updates.
6Add adaptive computation time. Train a head to identify when later steps no longer help.
7Integrate at inference. Start from noise, use Euler or an SDE scheme, and let the grid determine compute.
8Validate the loop. Track accuracy, convergence, invalid outputs, calibration, and solution coverage across compute budgets.

Source: Algorithms 1–2 and Sections 3.1–3.2, pp. 4–5 ↗

14 · pseudocode

Keep training and inference conceptually separate.

# one local loss per ordered denoising objective
for (c, x1) in dataset:
  x0 ← sample_noise()
  z ← z0
  times ← sort(sample_uniform(k + 1))

  for t in times:
    It ← (1 − t) · x0 + t · x1
    x_hat, z_next ← denoiser(It, stop_grad(z), c, t)
    loss ← cross_entropy(x_hat, x1)
    loss.backward()      # local, not through prior z
    z ← z_next

  update_parameters()
# integrate the learned probability flow
x ← sample_noise()
z ← z0
times ← grid(0, 1, n + 1)

for (t, next_t) in adjacent(times):
  x_hat, z ← denoiser(x, z, c, t)
  velocity ← (x_hat − x) / (1 − t)
  x ← x + (next_t − t) · velocity
  # optional: add SDE noise / use a better integrator

return round(x)

This is a teaching simplification of Algorithms 1–2. The paper’s full inference algorithm includes stochastic integration details and noise backtracking.

Source: Algorithms 1–2, pp. 4–5 ↗

15 · starter recipe

Use the paper’s defaults as a baseline, not a promise.

Training horizon
k = 16

Local denoising steps used for training.

ACT weight
λ = 0.5

Weight for the adaptive computation-time loss.

Inference
n = 128

Representative steps for Sudoku in the task-specific table.

Optimiser and numeric setup

Mean StableMax cross-entropy, Adam-atan2 with β₁ = 0.9 and β₂ = 0.95, peak learning rate 10⁻⁴, 2k-step warmup, batch size 768, gradient clipping 1.0, parameter EMA decay 0.999, and bfloat16 forward passes.

Time sampling

Sort k + 1 independent draws from Uniform[0, 1] so the model sees an ordered sequence of decreasing noise levels. The paper also studies a random-start sampler.

Regularisation note

For some single-solution tasks, the authors use pseudotargets in later interpolants to reduce exposure to nearly-clean targets. Treat this as a task-specific option.

Source: Appendix D and Appendix E.1, pp. 16–17 ↗

16 · validation plan

Measure the trajectory, not only the final answer.

Core evals

Failure analysis

Done condition

You can plot quality against inference compute and explain why an extra step, another trajectory, or stochasticity changed the result.

Source: Sections 5.1–5.3 and Tables 1–7, pp. 7–17 ↗

17 · takeaways

Three ideas worth carrying forward.

01

Temporal structure can make local training useful. A sequence of related denoising objectives can teach a recurrent state to accumulate computation without full BPTT.

02

Inference-time compute is a product knob. Finer grids and multiple trajectories create a controllable quality–cost trade-off on the tested tasks.

03

Validity and diversity should be separate metrics. A model that returns one valid answer isn’t necessarily good at exploring a problem with many valid answers.

The useful abstraction is not “make the model think harder”. It is “learn a state transition that remains useful as computation continues”.

The final sentence is an interpretation of the paper’s mechanism, not a quotation.

18 · source notes

Read the paper for the details.

This deck is an evidence-grounded explainer of the supplied PDF. Metrics, algorithms, and limitations below are drawn from the paper; broader use cases are labelled as implications.

Primary source
Thinking with Looped Flows · arXiv:2609.11801v1 ↗
We propose looped flows, an approach that sidesteps this issue by training the recurrence with local denoising objectives.
Evidence anchor
Across six reasoning benchmarks including two multi-solution benchmarks, looped flows outperform prior state-of-the-art looped models overall.
Scope note
The paper reports benchmark experiments using small task-specific models and preprocessing. It doesn’t establish general-purpose agent or language-model performance.
Designed as a shareable, self-contained HTML deckUse ← → or swipe to navigate
navigate · swipe on touch