Liquid AI が Antidoom を発表——推論モデルの「無限ループ」問題を、トークン1個の修正だけで解決、すでにオープンソース化

無限ループの起点となるトークン1個だけを微調整するだけで、2つのモデルのループ発生率がどちらも約1%まで下がった。
著者:Liquid AI07-08 · 8 分で読了⚑ 研究論文
🎧 ポッドキャスト版0:00 / --:--
0:00 / --:--
研究解読 · 小互解読
速覧
  • Liquid AI は2026年7月7日、Final Token Preference Optimization(FTPO)という手法でAI推論モデルの「無限ループ」を専門的に修復するAntidoomを発表した。無限ループとは、モデルが同じ一文(例えば「Wait, let me reconsider...」)を延々と繰り返し出力し、コンテキストウィンドウを使い切ってしまう現象を指す。
  • LFM2.5-2.6Bの初期チェックポイントでは、難易度の高い数学・コード問題でのループ発生率が10.2%から1.4%に低下。Qwen3.5-4Bではgreedyサンプリング下で22.9%から1%に低下した。
  • この手法は「ループを引き起こしたそのトークン1個」だけをピンポイントで再学習し、モデルがその位置で首尾一貫した別の候補語を選びやすくする。それ以外の出力分布にはほぼ影響を与えない。
  • 無限ループは3つのメカニズムが重なって生じる——過剰に学習された高頻度語(the、So、Wait など)がモデルの迷いどきに保険的な選択肢として選ばれる、上文の繰り返しがループ確率をどんどん1に近づける、低温度のgreedyサンプリングにはループから抜け出す出口がない、の3つだ。
  • 学習・検出・生成のコード一式はGitHubで公開されている(Liquid4All/antidoom)。READMEには完全なハイパーパラメータ選定ガイドが付属し、NVIDIA/CUDAとAMD Instinct MIシリーズ(ROCm)の両方をサポートする。
⚑立場の明示:本稿が解説するのはLiquid AI公式のブログとオープンソースプロジェクトです。文中のループ発生率や評価スコアの向上などの数字はすべてベンダー自身による評価であり、現時点で第三者による独立した再現は行われていません。
1無限ループとは何か

AIも壊れたレコードのように詰まることがある

Liquid AIは2026年7月7日、AI推論モデルの「無限ループ」を専門的に修復するAntidoomを発表し、GitHubでコードを全面公開した。

無限ループ(doom loop)は推論モデルによくある失敗の1つだ。モデルはまず短い一文、例えば「Wait, let me reconsider...」を吐き出し、そのあとこの一文を延々と繰り返し、コンテキストウィンドウを埋め尽くすまで続ける。しかし答えは最後まで出てこない。小規模な推論モデルほど、長い思考連鎖と難しい問題でこの症状に陥りやすい。

reasoning trace · 難問を推論中

この問題の2ステップ目の導出をもう一度確認してみよう。

Wait, let me reconsider...

Wait, let me reconsider...

Wait, let me reconsider...

Wait, let me reconsider...

Wait, let me recons

(コンテキストウィンドウが埋め尽くされ、答えは最後まで出てこなかった)

数学の問題や1段のコードで詰まると、モデルはこうして同じ一文を繰り返し唱え続け、貴重なコンテキストがすべてその場での空回りに消費されてしまう。Antidoomが修復するのはまさにこの欠陥だ。
📊公式データ:LFM2.5-2.6Bの初期チェックポイントは難問でのループ発生率が10.2%から1.4%に低下。Qwen3.5-4Bはgreedyサンプリング下で22.9%から1%に低下。Liquid AIによれば、この手法はループ発生率を最大9割削減できるという。
2既存の対策

従来のやり方が根本解決にならない理由

Antidoom以前、無限ループへの対処法は主に2つの方向があり、それぞれに弱点があった。

1つ目はrepetition_penaltyを推論時に加える方法で、すでに出現した語の確率を一時的に下げるやり方だ。これは絆創膏のようなもので、再学習は不要だが、抑え方が無差別なため、正常な出力の質まで一緒に引き下げてしまう可能性がある。2つ目は強化学習(RL)で、ピンポイントでループに対処できるが、報酬設計を丹念に作り込み、高コストなオンラインrolloutサンプリングを回す必要がある。

手法やり方コスト副作用
repetition_penalty推論時に重複語の重みを一時的に下げる低い、学習不要正常な出力の質を損なう可能性
強化学習(RL)報酬信号でモデルを再学習高い、報酬設計とオンラインサンプリングが必要報酬設計を誤ると方向がずれる
Antidoomループの起点となるトークン1個だけを学習低い、LoRA+単一GPUで数時間それ以外の出力にはほぼ影響なし
3コアの発想

トークン1個だけ変える、他は一切いじらない

Antidoomは修復範囲を極限まで絞り込んだ。

まず無限ループが始まったそのトークンを特定し、そこだけモデルがより首尾一貫した別の候補語を選ぶよう学習させる。語彙表のそれ以外の部分の確率分布はほぼ元のままだ。モデル全体の出力の癖は変えず、ループを引き起こす接合点だけに精密なパッチを当てる。

コアイノベーション

これは外科手術のようなピンポイント修復だ。モデル全体を再調整するのは、答案用紙全体を丸ごと採点し直すようなものだが、Antidoomは生徒が繰り返し間違えているその1問の横にだけ印をつける。正解した他の問題には一切手を触れない。改変が小さいほど、モデル本来の能力への損傷も小さくなる。

このマスだけ再学習
1本の帯がモデルの次の語に対する確率分布を表す。Antidoomはハイライトされたこの1マス(ループを引き起こしたトークン)だけを再学習し、他の数十マスはそのままにする。
4原因の分解

無限ループはどこから来るのか:3つの力の重なり

無限ループの背後では、3種類のメカニズムが同時に働いている。

メカニズム1:過剰学習された高頻度語が、モデルの迷いにぶつかる

もともと選ばれやすい語というものが存在する。業界で見られてきた例にはdelve、testamentなどがあり、合成データを使った学習によってこれらの語の出現頻度が人間の執筆よりも高く釣り上げられている可能性がある。推論モデルでは、この種の高頻度語はしばしばWait、Alternativelyといった、方向転換や検証のステップを示す接続語だ。これら自体は悪いものではなく、方針転換や検証を示すマーカーとして機能しうる。しかしモデルが詰まり、次のステップに自信を持てなくなると、これらは手っ取り早い保険的選択肢になり、同じ推論を最初からやり直してしまう。

LFM2.5-2.6Bの初期チェックポイントで、無限ループを最も多く引き起こす起点語(全ループ起点に占める割合):

' the'
11.39%
' So'
4.51%
'Alternatively'
3.22%
'Wait'
2.56%
' But'
2.46%

メカニズム2:上文が自己を強化する

すでに出現した文字列は、同じ文字列を後で再び出現しやすくする。繰り返すたびに、その文中の各トークンが再び選ばれる確率は雪だるま式に1へと近づいていき、止まらなくなる。Duanらの研究は、この現象を一種の「V字型」アテンションパターンと結びつけており、意味的な繰り返し(モデルが同じ考えに詰まっている状態)が字句的な繰り返しに先行して現れることも見出している。

ループ内の各トークンの確率が繰り返し回数とともに1へ近づいていく様子
ループ内の各トークンが再度選ばれる確率は、繰り返し回数とともに1に向かって上昇し続け、自己強化が形成される。画像出典:Liquid AI

メカニズム3:低温度サンプリングには出口がない

推論モデルは一般に非常に低いサンプリング温度で動かされ、推論プロセスの安定性と再現性を保つ。(サンプリング温度は、モデルが語を選ぶ際にどれだけ低確率の語に挑戦するかを制御するパラメータだ。温度が低ければほぼ毎回最も確率の高い語を選び、温度が高ければ低確率の語も試しやすくなる。)温度がゼロなら常に最も確率の高い語を選ぶため、いったん強化されたループには出口がなくなる。理論上は温度を上げれば助けになるはずだが、メカニズム2によってループ語の確率がほぼ1に押し上げられると、残りの語にはほとんど確率が配分されなくなり、高温にしても結局詰まってしまう。公式データでもtemp=0.67の時点で明確なループが確認されている。温度が低いほど、無限ループは深刻になる。

5データと学習

問題のトークンをどう見つけ、どう学習させるか

無限ループを直すには、まずそれを学習可能なデータに変換する必要がある。

やり方はこうだ。無限ループを誘発するために特別に設計されたプロンプト集(LiquidAI/antidoom-mix-v1.0)を使い、低温度でモデルの出力を大量に生成し、そこから失敗サンプルを掘り出す。ある一文が少なくとも4回繰り返され、かつ長さが60文字以上ある場合に初めて無限ループと判定する。この2つの閾値は誤判定と見逃しを同時に避けるためのものだ。ループを見つけたら、最初の繰り返しの最初のトークンを特定し、それをrejected(選ぶべきでないもの)としてラベル付けする。この位置でモデル自身が出したtop-k候補を取り、短すぎるものや英数字以外のノイズを取り除き、最大20個の妥当な代替語をchosen(より良い選択肢)として残す。学習データはこうした三つ組——上文、1個のrejectedトークン、1個以上のchosenトークン——として構成される。

低温度で大量生成
→
ループ検出
≥4回 / ≥60文字
→
起点トークンをマーク
rejected
→
代替候補を選ぶ
最大20個のchosen
→
分布を正則化
→
FTPOでLoRAを学習
→
必要に応じてもう1周
無限ループ学習データのサンプル
無限ループ学習データのサンプル。失敗した出力から最初の繰り返しの起点トークンを特定し、rejectedとしてラベル付けする。画像出典:Liquid AI

学習の前には、rejectedとchosenの分布に正則化処理を施す必要がある。そうしないとWait、So、theといった高頻度語が学習全体を支配してしまい、かといってこれらを抑え込みすぎると今度はモデルの推論能力自体が損なわれてしまう。

偏好最適化とは何か

DPO、FTPOはいずれも「偏好最適化」という部類に属する手法だ。そのやり方はこうだ。モデルに2種類のサンプルを見せる。1つは「これは選ぶな」(rejected)、もう1つは「これらのほうが良い」(chosen)。モデルはこれを何度も見ることで自分の選択の傾向を調整し、その過程で新しい知識は一切注入されない。答案の採点で知識を教え直すのではなく、繰り返し間違えているその1問の横にバツをつけ、より良い答えをいくつか書き添えるようなものだ。

FTPOとDPOの違い

FTPO(Final Token Preference Optimization)はDPOに似た偏好最適化アルゴリズムだが、設計の当初から「トークンをごくわずかだけ動かし、モデルのそれ以外の部分をできるだけ揺さぶらない」ことを目指している。DPOと比べて4つの違いがある。

FTPOのやり方何を解決するか
系列の末尾にある1個のトークン(生成途中のシーケンス)だけを学習する改変を1つの位置に厳密に限定する
1サンプルに複数のchosen候補を対応させる確率を一群の代替語に分散させ、単に高頻度語を別の高頻度語に置き換えるだけになるのを避ける
logit空間でKL的な制約をかけ、softmaxをスキップする無関係なトークンに勾配の圧力をかけず、他の能力が引きずられないようにする
2段階の正則化学習対象のchosen/rejectedは動かしやすくしつつ、語彙表のそれ以外の部分はより強く抑える
6学習規模

どれくらい学習するか、いつ止めるべきか

この学習の規模は、意外なほど小さい。

LoRAによる微調整(大規模モデルにパッチを当てるような微調整手法で、全パラメータを再学習せず、新規に挿入した一部のパラメータだけを学習する。低コストで元のモデルへの影響も小さい)を用い、通常は1エポックしか回さない。経験上、LoRAのrankを128から256に設定するのが最も効果的だ。より柔軟に学習しつつ副作用も小さく抑えられる。学習範囲は全アテンション層、MLP層、加えてlm_headをカバーし、学習率はおおむね4e-6から2e-5の間だ。

いつ止めるべきか?chosen_winという指標を早期停止の判断基準として使う。これは無限ループの起点位置において、モデルが元の(ループを誘発しやすい)語ではなく「より良い代替語」を選ぶ割合をどれだけ増やせたかを測るものだ。chosen_win=0.35あたりで止めれば、通常は無限ループ発生率を20〜30%から1〜2%まで下げられる。学習しすぎると、逆に別の場所で新たな無限ループを生み出してしまう。

128-256
最も効果的なLoRA rankの範囲
0.35
早期停止の判断基準chosen_win、ここに達したら止める
≤20
起点ごとに保持する代替候補語の上限
1-2時間
MI325 GPU 1枚でのFTPO学習にかかる時間
ハイパーパラメータ推奨値役割
LoRA rank128から256rankが高いほど柔軟に学習でき、副作用も小さい
学習率4e-6から2e-5早期停止と組み合わせて過学習を防ぐ
早期停止 chosen_win0.35前後この値に達したら止める
chosen候補数最大20個確率を一群の代替語に分散させる
学習エポック数通常1エポック学習しすぎると新たなループを生む
学習対象モジュール全アテンション/MLP層 + lm_head全層を学習したほうが効果が高い

コストはどれくらい低いのか。LFM2.5-2.6Bの初期チェックポイントを例に取ると、学習セットの生成に約1時間(MI325 GPU 8枚)、学習自体に約1〜2時間(MI325 GPU 1枚)かかる。生成段階は2万組のサンプルが集まった時点で打ち切る。

7オープンソースでの再現

コードはすでに公開済み、自分で再現できる

この手法は完全にオープンソース化されており、誰でもそのまま再現できる。

生成、検出、FTPOトレーナーの一式コードはすべてGitHub(Liquid4All/antidoom)に置かれており、READMEには完全なハイパーパラメータ選定ガイドが付属している。使用されているプロンプトデータセットLiquidAI/antidoom-mix-v1.0は純粋なプロンプトのみで構成され、標準解答、推論プロセス、隠しテスト、正解ラベルは意図的にすべて除外されている。役割はあくまで無限ループを誘発することにあり、新しい知識を教えることは一切ない。

つまり、推論モデルを手元に持つチームなら理論上、自分のモデルに対して同じ流れをそのまま再現でき、事前学習をやり直す必要はない。環境を整えれば、「生成+学習」の完全な流れが一行のコマンドで完了する。

リポジトリのクローン、依存関係のインストール、生成+学習の完全な流れを実行
git clone https://github.com/Liquid4All/antidoom
cd antidoom
uv sync

uv run antidoom -c configs/default.yaml -r runs/antidoom1 \
  --temp 0.01 \
  --model-name LiquidAI/LFM2.5-1.2B-Base

NVIDIA専用というわけでもない。AntidoomはAMD Instinct MIシリーズGPU(ROCm環境)でも同様に動作し、Nvidia GPUを持たないチームにも道を残している。

ROCm環境ならではの2つの変更点

AMD(MI325 / gfx942で検証済み)で動かすには、専用のROCm仮想環境を立て、configs/default_amd.yamlを使う必要がある。vLLMのアテンションバックエンドをTRITON_ATTNに切り替えている(ROCmのデフォルトのアテンションカーネルはLFM2でメモリエラーを起こす)。また、オプティマイザはadamw_torchに変更されている(ROCmでは扱いにくいbitsandbytes依存を回避するため)。

8効果データ

結果:2つのモデルとも無限ループ発生率を約1%まで抑え込んだ

2つのモデルとも学習後、無限ループ発生率が1%前後まで下がった。

LFM2.5-2.6Bの初期チェックポイントは10.2%から1.4%まで低下し、評価スコアも全面的に向上した。この向上はすべて無限ループの減少に由来する。学習セット自体は新しい数学やコードの知識を一切教えていない。ただ、モデルと答えの間にずっと立ちはだかっていた障害物を取り除いただけで、モデルはもともと自力で到達できたはずの答えにたどり着けるようになった。Qwen3.5-4Bはさらに効果が大きく、greedyサンプリング下で22.9%から1%まで低下し、評価スコアも大幅に上昇した。

LFM2.5-2.6B 初期チェックポイント
学習前
10.2%
学習後
1.4%
Qwen3.5-4B(greedyサンプリング)
学習前
22.9%
学習後
1%
無限ループ発生率、低いほど良い。4本のバーは同一の尺度で揃えている。
学習前後の無限ループ発生率の比較
学習前後の無限ループ発生率の比較。画像出典:Liquid AI
9直感に反する発見

意外な発見:温度は高ければ高いほど賢いわけではない

学習の過程で、直感に反する結果もついでに浮かび上がってきた。

業界にはずっと「推論モデルは比較的高いサンプリング温度を使うべきだ、そのほうがより広い範囲でさまざまな解法を試せる」という説がある。しかしAntidoomで学習したモデルは、temp=1.0でむしろ性能が落ちた。理由はさほど複雑ではない。学習前は、低温域のスコアがずっと無限ループに足を引っ張られていた。いったん無限ループが取り除かれると、greedyサンプリングに近い低温域のほうがむしろスコアが最も高くなる。これまでの「高温度のほうが良い」という経験則は、実は高温度によって無限ループが部分的に覆い隠されていた効果を、温度そのものの利点だと誤解していた可能性が高い。

低温度(greedyに近い) temp=1.0 サンプリング温度 → 評価スコア → 学習前 学習後
概念図:評価スコアがサンプリング温度によってどう変化するか。学習前(グレーの点線)は低温域が無限ループに引きずられ、温度が上がるにつれて改善していく。学習後(実線)は低温域が最も良く、temp=1に近づくにつれてやや落ち込む。

2つのモデルはどちらも同じパターンを描いている。学習前は、低温域のスコアが無限ループに引っ張られて低くなり、学習後は低温域が最も良く、temp=1に近づくとやや低下する。

LFM2.5-2.6Bの評価スコアが温度によって変化する様子
LFM2.5-2.6B初期チェックポイント:評価スコアがサンプリング温度によってどう変化するか、学習前後の比較。画像出典:Liquid AI
Qwen3.5-4Bの評価スコアが温度によって変化する様子
Qwen3.5-4B:同じパターンが見られる。低温域で恩恵が最も大きく、temp=1に近づくと学習後はやや低下する。画像出典:Liquid AI

実践では複数回のAntidoomを行うこともできる。1回目でループを起こしやすい語を抑え込んだ後、別の箇所で新たな問題が露呈することがある——それまで目立たなかった一部のトークンが新しいループの起点になってしまうのだ。もう1周回すことで、この新たに現れたループにピンポイントで対処し、無限ループ発生率をさらに押し下げることができる。

学習セットはモデルに新しい数学やコードの知識を何も教えていない。ただ、モデルをずっと妨げ、本来なら到達できたはずの答えにたどり着けなくしていた、あの失敗パターンを取り除いただけだ。Liquid AI · Antidoom ブログ
オープンソースと参考文献
本稿が解説するのはLiquid AI公式ブログ『Reducing Doom Loops with Final Token Preference Optimization』(2026年7月7日、Sam Paechほか著)およびそのオープンソースリポジトリLiquid4All/antidoomです。文中の無限ループ発生率、評価スコアの向上などのデータはすべて公式由来であり、ループ発生率の低下幅はベンダー自己評価であって第三者による再現はまだ行われていません。図表は自作のものを除きすべて公式ブログからの引用です。
出典
Liquid AILiquid AI·原文を見る
↑ 本文ここまで
✓ この記事は全文無料です

メンバーは全文 Markdown のコピー・保存に加え、自分の AI に購読・質問させることができます。

原文を読む ↗
📮 新着解説をメールでいち早く

役に立ちましたか?メールを登録すると、新着解説を公開と同時にお届けします。解除はいつでも。