Liquid AI Antidoom: Final Token Preference Optimization Cuts Doom Loops 90%
Liquid AI Antidoom (July 7, 2026) uses FTPO to retrain single overtrained tokens — Wait, So, Alternatively — cutting LFM2.5 doom loops 10.2% to 1.4% and Qwen3.5-4B 22.9% to 1%. Open source on GitHub.
On July 7, 2026, Liquid AI published Antidoom — an open-source fix for doom loops: the failure mode where reasoning models repeat the same span ("Wait…", "Alternatively…", "So…") until the context window dies. The @liquidai thread frames it as surgical: retrain one overtrained token at the loop's start, leave the rest of the distribution alone.
For anyone running local Qwen reasoning models or small LFM checkpoints, this is the first production-oriented answer to a problem that looked like bad prompting — but is often distribution pathology at a single token position.
TL;DR
Question
Answer (Liquid AI, July 2026)
Problem
Doom loops — repetitive degeneration on hard math/coding prompts
Method
FTPO (Final Token Preference Optimization) — DPO-family, one trailing token
LFM2.5-2.6B early
10.2% → 1.4% loop rate; evals up (no new skills taught)
Qwen3.5-4B
22.9% → 1% under greedy sampling
Loop starters
Often the, So, Alternatively, Wait, But
Train cost
~1 hr dataset gen (8× MI325), ~1–2 hr LoRA train (1× MI325); tweet cites ~2 hr + 1–2 hr on H100 for 2–4B
Sampling after fix
Near-greedy often beats high temp once loops are gone
The model emits a span (often something like "Wait, let me reconsider…"), then repeats the same span again and again, until the context window is exhausted.
This is distinct from:
Normal self-correction — a single "wait" that changes strategy
Long reasoning — verbose but progressive chains
repetition_penalty band-aids — inference-time reweighting that can hurt quality
Small thinking models loop more on long traces and hard problems per Liquid's prior LFM2.5-Thinking work.
HN and X reactions match lived experience: Claude Opus 4.8 users report surprise loops; local Qwen builders call Antidoom "finally usable."
Three mechanisms (why loops stick)
Liquid AI identifies a stack:
#
Mechanism
Effect
1
Overtrained tokens + uncertainty
High-prior discourse markers (Wait, So, Alternatively) become fallback when stuck
2
Prior context reinforces
Each repeat makes the span more likely — probabilities climb toward 1
3
Greedy / low-temp sampling
No exit when loop token dominates; high temp helps less once mechanism 2 saturates
On an early LFM2.5-2.6B checkpoint, tokens starting loops:
Chosen: up to 20 plausible alternatives from top-k logprobs (filtered noise)
Regularize so suppressing Wait/So/ the does not over-crush reasoning
3. FTPO training
Final Token Preference Optimization vs standard DPO:
FTPO property
Why it matters
Trailing token only
Mid-generation surgical edit
Multiple chosen tokens
Avoid swapping one overtrained token for another
KL-like loss in logit space
Less gradient spill to rest of vocab
Two-part regularization
Chosen/rejected move freely; other logits stay near reference
Practical hyperparameters (from blog):
LoRA one epoch, rank 128–256 (attention + MLP + lm_head)
LR ~4e-6 to 2e-5
Early stop at chosen_win ≈ 0.35 — training longer creates new loops
Multiple Antidoom rounds may be needed as new failure tokens surface
Results
LFM2.5-2.6B early checkpoint
Doom-loop rate: 10.2% → 1.4%
Eval scores up across the board — attributed to fewer truncated-by-loop completions
After Antidoom: performance drops at temp=1.0 (expected without loop-driven "exploration")
Qwen3.5-4B
Doom-loop rate: 22.9% → 1% (greedy)
Larger uplift than LFM — same temperature pattern: biggest win at low temp
Liquid AI's conclusion: the belief that reasoning models need high temperature may conflate exploration with escaping doom loops. Remove loops → near-greedy often optimal.
What Antidoom does not fix
From HN/X edge reports — worth tracking:
Tool-calling stacks (e.g. OpenClaw) may need integration work — one user reported Antidoom breaks tool invocation patterns
Not consciousness — loops are decoding pathology, not emergent inner life (AllTheTokens joke aside)
Not RL replacement — RL can target loops but needs costly rollouts; Antidoom is cheap offline preference patch
For agent harnesses, pair Antidoom-tuned weights with loop engineering stop conditions — fixing generation pathology does not replace /goal evaluators.
Stops after collecting ~20k pairs (depends on base model loop rate).
Connection to Antislop
Antidoom adapts Antislop (Paech et al., ICLR 2026) — Liquid's framework for identifying and eliminating repetitive patterns in LMs. FTPO is the final-token specialization for reasoning-loop starts rather than generic slop phrases like "delve."
Same design philosophy as Antidoom's tweet:
The training teaches the model nothing new. It clears the looping that blocked answers the model could already produce.
Implications for local inference
Before Antidoom
After Antidoom
Crank temperature to escape loops
Try near-greedy first
Blame prompt for "Wait Wait Wait"
Check loop rate on hard prompt mix
repetition_penalty as default
Prefer distribution surgery at loop token
Small reasoning models "unusable" on hard tasks
Qwen3.5-4B class may recover lost accuracy
Complements fix local LLM looping sampler advice — Antidoom attacks the model weights, not just decoding knobs.
Loop rates, hyperparameters, and model checkpoints follow Liquid AI's July 7, 2026 blog. Reproduce on your checkpoint before shipping to production — over-training FTPO can introduce new loop tokens.