Today we release Antidoom, an open-source method that removes a common failure mode in reasoning models: the doom loop. Doom-loop rates before and after, with eval scores up across the board: > Early LFM2.5-2.6B checkpoint: 10.2% → 1.4% > Qwen3.5-4B: 22.9% → 1% (greedy sampling) 🧵
A doom loop happens when the model emits a span, then repeats it over and over until the context window runs out. Small reasoning models hit it most on hard math and coding. The usual fixes are stopgaps. Applying repetition_penalty can degrade quality. RL needs calibrated rewards and costly rollouts. (2/6)

Our approach is surgical. The loop almost always starts on one overtrained token, often an interruptive the model overproduces ("Wait," "So," "Alternatively"). We retrain that single token to prefer coherent alternatives and leave the rest of the distribution largely intact. (3/6)

It runs on Final Token Preference Optimization (FTPO), in the DPO family: > trains only the trailing token, mid-generation > spreads probability across multiple chosen tokens > KL-like loss in logit space, so training doesn't disturb the rest of the vocabulary The training teaches the model nothing new. It clears the looping that blocked answers the model could already produce. (4/6)

If small reasoning models stall in repeated spans, this recovers the accuracy those loops cost in a few H100 hours, without repetition penalties or RL rollouts, and suggests near-greedy sampling wins once the looping is gone.
Checking sign-in…
Loading comments…