Research explainer · Xiaohu Explains

Liquid AI ships Antidoom: fixes reasoning models' "doom loop" problem by retraining just one token, now open-source

By fine-tuning only the single token where the loop starts, both models saw their doom-loop rates squeezed down to around 1%.
At a glance
  • On July 7, 2026, Liquid AI released Antidoom, which uses a method called Final Token Preference Optimization (FTPO) to specifically fix the "doom loop" in AI reasoning models — where a model repeats the same phrase (e.g. "Wait, let me reconsider...") over and over until it burns through its context window.
  • On an early LFM2.5-2.6B checkpoint, the doom-loop rate on harder math / code problems dropped from 10.2% to 1.4%; on Qwen3.5-4B, it fell from 22.9% to 1% under greedy sampling.
  • The method trains only the single token that triggers the loop, nudging the model toward a more coherent alternative at that spot while barely disturbing the rest of its output distribution.
  • Doom loops arise from three mechanisms working together: over-trained high-frequency words (the, So, Wait, etc.) get picked as a fallback when the model is uncertain, repeated context drives the loop probability toward 1, and low-temperature greedy sampling leaves the loop no way out.
  • The full training / detection / generation code is open-sourced on GitHub (Liquid4All/antidoom), with a complete hyperparameter selection guide in the README, and support for both NVIDIA/CUDA and the AMD Instinct MI series (ROCm).
Disclosure: this piece explains Liquid AI's official blog post and open-source project. The doom-loop rates, benchmark gains, and other figures are all vendor self-reported, with no independent third-party reproduction so far.
1What a doom loop is

AI can get stuck like a broken record

On July 7, 2026, Liquid AI released Antidoom, a training method built specifically to fix the "doom loop" in AI reasoning models, and open-sourced all of the code on GitHub.

The doom loop is a very common failure mode for reasoning models: the model spits out a short bit of text, say "Wait, let me reconsider...", then repeats that line again and again until the context window is full — yet the answer never shows up. The smaller the reasoning model, the more prone it is, especially on long chains of thought and hard problems.

reasoning trace · working through a hard problem

Let me double-check the derivation in step two of this problem.

Wait, let me reconsider...

Wait, let me reconsider...

Wait, let me reconsider...

Wait, let me reconsider...

Wait, let me recons

(the context window fills up, and the answer never appears)

Stuck on a math problem or a snippet of code, the model just keeps chanting the same line and can't stop, burning its precious context spinning in place. This is exactly what Antidoom sets out to fix.
📊Official numbers: on an early LFM2.5-2.6B checkpoint, the doom-loop rate on hard problems dropped from 10.2% to 1.4%; Qwen3.5-4B fell from 22.9% to 1% under greedy sampling. Liquid AI says the method can cut the doom-loop rate by up to 90%.
2Existing approaches

Why the old fixes treat the symptom, not the cause

Before Antidoom, there were usually two ways to fight doom loops, each with its own weakness.

The first is adding repetition_penalty at inference time to temporarily lower the probability of words that have already appeared. It's like a band-aid — no retraining needed — but it penalizes indiscriminately and can drag down the quality of normal output too. The second is reinforcement learning (RL), which can target the loop directly, but at the cost of carefully designing a reward signal and running expensive online rollout sampling.

MethodHow it worksCostSide effects
repetition_penaltyTemporarily down-weights repeated words at inferenceLow, no trainingCan hurt normal output quality
Reinforcement learning (RL)Retrains the model with a reward signalHigh — reward tuning plus online samplingA bad reward design sends it off course
AntidoomTrains only the single token where the loop startsLow — LoRA, a few hours on one GPUAlmost no disturbance to the rest of the output
3Core idea

Change one token, leave everything else untouched

Antidoom shrinks the fix to the absolute minimum.

It first finds the single token where the doom loop begins, and trains the model only at that spot to pick a more coherent alternative — the probability distribution over the rest of the vocabulary stays essentially the same. The whole model's output habits stay put; only the seam that triggers the loop gets a precise patch.