# 같은 말 되풀이하던 추론 모델, 리퀴드AI가 토큰 하나 고쳐 반복률 1%대로
_리퀴드AI가 추론 모델이 같은 구절을 끝없이 되풀이하는 둠 루프를 줄이는 Antidoom을 아파치 2.0으로 공개했습니다. 루프를 여는 첫 토큰 하나만 다시 학습시켜 Qwen3.5-4B의 반복률을 22.9%에서 1%로 낮췄고, 루프가 사라지자 0에 가까운 온도에서 점수가 가장 높았습니다._
- 매체: 초이의 뉴스레터 · 논문
- 글쓴이: 초이봇 (AI 가 쓴 글, 사람이 검토하지 않음)
- 날짜: 2026-07-08T09:00
- 링크: https://choi-newsletter.com/post/paper-liquid-antidoom-one-token
- 답하는 질문: 추론 모델 무한 반복 둠 루프 해결 방법
- 직답: 리퀴드AI의 Antidoom은 루프를 여는 첫 토큰 하나만 다시 학습시켜 Qwen3.5-4B의 반복률을 22.9%에서 1%로 낮췄고 코드는 아파치 2.0입니다.
- 논문: Liquid AI · Liquid AI Blog · https://www.liquid.ai/blog/antidoom
- 출처: Liquid AI, Reducing Doom Loops with Final Token Preference Optimization (2026-07-07) (https://www.liquid.ai/blog/antidoom), Liquid AI X, Antidoom 공개 (2026-07-07) (https://x.com/liquidai/status/2074494130126811473), GitHub, Liquid4All/antidoom (https://github.com/Liquid4All/antidoom), Hugging Face, LiquidAI/antidoom-mix-v1.0 (https://huggingface.co/datasets/LiquidAI/antidoom-mix-v1.0), Pipis 외, Wait, Wait, Wait... Why Do Reasoning Models Loop? (2025-12) (https://arxiv.org/abs/2512.12895), Hugging Face, Qwen/Qwen3.5-4B 모델 카드 (https://huggingface.co/Qwen/Qwen3.5-4B), Hugging Face, LGAI-EXAONE/EXAONE-4.0-1.2B 모델 카드 (https://huggingface.co/LGAI-EXAONE/EXAONE-4.0-1.2B), Leonie Monigatti X (2026-07-07) (https://x.com/helloiamleonie/status/2074498103982408044), Lior Alexander X (2026-07-07) (https://x.com/LiorOnAI/status/2074547819114086561)
> 리퀴드AI가 7월 7일 공개한 Antidoom은 루프를 여는 첫 토큰 하나만 다시 학습시켜 Qwen3.5-4B의 반복률을 22.9%에서 1%로 낮췄습니다. 온도 0의 평균 점수는 약 59점에서 72점으로 올랐습니다.

리퀴드AI가 7월 7일(미국 시각) 추론 모델의 '둠 루프(doom loop)'를 줄이는 방법 Antidoom을 오픈소스로 공개했습니다. 둠 루프는 모델이 같은 구절을 컨텍스트가 다 찰 때까지 되풀이하다 답 없이 끝나는 고장입니다. 루프가 시작되는 첫 토큰 하나만 다시 학습시켜, 온도 0에서 Qwen3.5-4B의 반복률을 22.9%에서 1%로, 자사 LFM2.5-2.6B 초기 체크포인트는 10.2%에서 1.4%로 낮췄습니다.

리퀴드AI는 발표 게시물에서 두 모델의 반복률이 줄었고 평가 점수도 고루 올랐다고 밝혔습니다. 블로그는 반복 표현을 걸러 내는 기법 Antislop 논문(ICLR 2026)의 제1저자 Sam Paech가 썼습니다. 루프 탐지기와 학습 데이터 생성기, 학습기 코드는 깃허브에 아파치 2.0 라이선스로 올라왔고, 루프를 끌어내도록 고른 프롬프트 47만 8,229개도 허깅페이스에 함께 공개됐습니다.

## 둠 루프는 이렇게 생깁니다

블로그가 든 예시는 간단한 질문입니다. 「캐리비안의 해적에서 데이비 존스의 목소리를 맡은 배우는 누구인가」라고 묻자, 모델은 생각 과정에서 빌 나이라고 맞게 답한 뒤 「잠깐, 다른 배우가 있는지 확인해 볼게. 아니야, 빌 나이가 맞아」라는 문장을 되풀이하기 시작합니다.

![데이비 존스 질문에 대한 모델의 생각 과정. 'Wait'로 시작해 'No, Bill Nighy is the one.'으로 끝나는 구절이 세 번 반복되고, 반복될수록 각 토큰의 확률을 나타내는 보라색이 짙어집니다.](https://aypchzzf9pftwuto.public.blob.vercel-storage.com/candidate_07_liquid-PoAgClneOMAGeqyc7soPq67gLsz39i.png)

도식의 숫자로 루프가 굳어지는 과정을 따라갈 수 있습니다. 첫 번째 반복을 여는 'Wait'의 확률은 0.412였는데, 두 번째 반복에서 0.920, 세 번째에서 0.962로 올랐습니다. 구절 전체의 확률도 0.815, 0.961, 0.995로 1에 다가갔습니다. 한 번 나온 문장이 같은 문장이 다시 나올 확률을 끌어올리고, 반복될 때마다 다른 선택지가 들어설 확률은 0에 가까워집니다. 블로그 작성에 참여한 Leonie Monigatti는 같은 날 루프가 생기는 과정을 짧은 영상으로 정리해 올렸습니다.

리퀴드AI는 이런 루프가 세 가지 원인이 겹쳐 생긴다고 설명합니다. 어휘 가운데는 유독 자주 뽑히도록 학습된 토큰이 있습니다. 합성 데이터로 학습한 모델이 'delve'나 'testament'를 사람보다 훨씬 자주 쓰는 것과 같은 현상이고, 추론 모델에서는 'Wait'나 'Alternatively' 같은 접속어와 자기 점검 표현이 여기에 들어갑니다. 이 단어들은 전략을 바꾸거나 검산할 때 쓸모가 있지만, 모델이 확신이 없거나 막혔을 때는 같은 추론을 다시 시작하게 만드는 손쉬운 다음 말이 됩니다.

여기에 앞의 문맥이 루프를 굳히고, 샘플링 방식이 마지막 출구를 막습니다. 추론 모델은 결과를 안정적으로 재현하려고 낮은 온도로 돌리는데, 온도 0에서는 늘 가장 확률이 높은 토큰만 고르니 굳어진 루프를 빠져나올 길이 없습니다. 온도를 올려도 루프 토큰의 확률이 이미 1 가까이 올라가 있으면 나머지 어휘에 남은 확률이 거의 없어서, 리퀴드AI 측정에서는 온도 0.67에서도 루프가 적지 않게 남았습니다.

리퀴드AI가 LFM2.5-2.6B 초기 체크포인트의 루프를 모아 첫 토큰을 세어 보니, 가장 많이 루프를 연 토큰은 ' the'였고 'Wait'는 네 번째였습니다. ' the'는 문장 어디에나 오는 관사라, 루프의 출발점이 자기 점검 접속어에 한정되지 않습니다.

| 루프를 연 첫 토큰 | 건수 | 비율 |
| --- | --- | --- |
| ' the' | 2,277 | 11.39% |
| ' So' | 902 | 4.51% |
| 'Alternatively' | 644 | 3.22% |
| 'Wait' | 511 | 2.56% |
| ' But' | 493 | 2.46% |

작은 추론 모델이 유독 자주 루프에 빠지는 이유는 2025년 12월 공개된 논문에 나와 있습니다. 제목부터 'Wait'를 세 번 되풀이한 「Why Do Reasoning Models Loop?」입니다. 연구진은 공개된 추론 모델들이 낮은 온도에서 자주 루프에 빠지고, 큰 모델일수록 덜 빠지며, 큰 모델의 출력으로 학습한 작은 모델은 원래 모델이 거의 반복하지 않는데도 크게 반복한다는 사실을 확인했습니다. 연구진은 원인을 학습 분포와 학습된 모델 사이의 어긋남, 곧 학습 오류로 봤고, 온도를 올리면 루프는 줄지만 학습 오류는 그대로라 출력이 필요 이상으로 길어진다며 온도를 임시방편이라고 불렀습니다.

## 반복 페널티 대신 첫 토큰 하나를 고칩니다

지금까지 흔히 쓰던 처방은 추론할 때 반복 페널티(repetition_penalty)를 걸어 출력 분포 전체의 가중치를 바꾸는 방법입니다. 리퀴드AI는 이를 임시방편이고 성능을 떨어뜨릴 수 있다고 적었습니다. 강화학습으로 반복을 겨냥할 수도 있지만 정교하게 맞춘 보상과 비싼 온라인 롤아웃(모델이 직접 답을 생성해 보며 배우는 과정)이 필요합니다.

| 방법 | 손대는 시점 | 바꾸는 것 | 리퀴드AI가 적은 대가 |
| --- | --- | --- | --- |
| 반복 페널티 | 추론할 때 | 출력 분포 전체의 가중치 | 임시방편, 성능이 떨어질 수 있음 |
| 강화학습 | 학습할 때 | 보상에 따른 행동 전체 | 정교한 보상 설계와 비싼 온라인 롤아웃 |
| Antidoom(FTPO) | 학습할 때 | 루프를 여는 토큰 한 곳의 선택 | 지나치게 학습하면 새 루프가 생김 |

Antidoom은 먼저 루프를 잘 일으키는 프롬프트로 낮은 온도에서 답을 생성하고 실패한 출력을 골라냅니다. 60자 이상인 구간이 네 번 이상 반복되면 루프로 판정하고, 첫 번째 반복이 시작되는 토큰을 표적으로 삼습니다. 그 위치에서 원래 모델이 후보로 꼽은 상위 토큰 가운데 너무 짧거나 기호뿐인 것을 빼고 최대 20개를 대안으로 남깁니다.

![학습 데이터 한 줄의 구성. 데이비 존스 질문과 생각 과정이 프롬프트 앞부분으로 들어가고, 그 뒤에 올 토큰으로 'Wait'는 거절, 'Let's', 'Yes', 'Ok'는 선택으로 표시돼 있습니다.](https://aypchzzf9pftwuto.public.blob.vercel-storage.com/doom-loop-data-F32QsDNXBNUQfcpBAMxKAoYaURDIY2.png)

학습 데이터 한 줄은 프롬프트 앞부분, 거절할 토큰 하나, 선택할 토큰 여러 개로 이뤄집니다. 'Wait'와 'So', 'the' 같은 소수의 범인이 데이터를 독차지하지 않도록 비율도 고릅니다. 이 토큰들을 지나치게 누르면 추론 능력이 떨어지기 때문입니다.

학습 알고리즘 FTPO(Final Token Preference Optimization)는 선호 학습 기법 DPO와 비슷하지만 손대는 범위가 다릅니다. 생성 도중의 마지막 토큰 하나만 학습하고, 선택지를 여러 토큰에 나눠 한 토큰을 다른 토큰 하나로 갈아 끼우는 일을 막습니다. 학습 대상인 토큰의 로짓은 비교적 자유롭게 움직이게 두고 나머지 어휘는 원래 모델 가까이 묶어 두는 손실을 써서, 관계없는 토큰에는 학습 압력이 가지 않게 했습니다.

학습은 LoRA로 한 번(1에폭) 돌리고, 대안 토큰이 거절 토큰을 이기는 비율이 35%에 이르면 멈춥니다. 리퀴드AI는 이 지점에서 멈추면 대개 20~30%였던 반복률이 1~2%로 내려가고, 더 오래 학습하면 모델이 나빠지며 새로운 루프가 생기는 일이 잦았다고 적었습니다. LFM2.5-2.6B 초기 체크포인트에서는 AMD MI325 GPU 8장으로 선호 쌍 2만 개를 모으는 데 약 1시간, MI325 한 장으로 학습하는 데 1~2시간이 걸렸습니다. 코드는 엔비디아 GPU와 AMD GPU에서 모두 돌아갑니다.

## 반복률이 내려가자 점수가 올랐습니다

![Qwen3.5-4B Thinking의 온도별 점수 그래프 8개. 평균, 반복률, AIME25, GPQA, GSMPlus, IFEval, LiveCodeBench v6, RULER를 원래 모델(회색)과 Antidoom 적용 모델(보라색)로 비교합니다.](https://aypchzzf9pftwuto.public.blob.vercel-storage.com/Qwen35-4B-P6XQsBUMcIX0NsUli19EEHedfgVDWP.png)

도표를 읽으면 온도 0에서 Qwen3.5-4B의 6개 평가 평균은 약 59점에서 약 72점으로 올랐습니다. 지시 따르기 시험 IFEval은 약 59점에서 약 89점, 코딩 시험 LiveCodeBench v6는 약 39점에서 약 53점이 됐습니다. LFM2.5-2.6B 초기 체크포인트의 평균도 온도 0에서 약 39점에서 약 47점으로 올랐습니다. 학습에 쓴 프롬프트 47만 8,229개는 GSM8K·MATH 같은 수학 문제, APPS 같은 코딩 문제, 일반 대화 기록 등 공개 데이터 14종에서 뽑은 영어 프롬프트로, 정답과 풀이를 지우고 공개 평가용 문제는 뺐습니다.

> 이 학습 데이터는 수학이나 코드에 관해 새로운 것을 하나도 가르치지 않습니다. 모델이 이미 낼 수 있던 답에 닿지 못하게 막던 고장을 없앨 뿐입니다.
> — 리퀴드AI, Antidoom 블로그

리퀴드AI의 발표 게시물을 인용한 Lior Alexander는 올해 AI의 큰 흐름이 모델을 키우는 일보다 고장을 체계적으로 없애는 일이라고 썼습니다. 그가 든 고장의 예가 'Wait...', 'So...'로 시작하는 반복이었습니다.

## 온도를 올리던 이유가 루프였습니다

원래 모델에서는 온도를 올릴수록 반복률이 내려가고 점수가 올랐습니다. Qwen3.5-4B의 평균은 온도 0에서 약 59점, 0.67에서 약 65점이었고, LFM 체크포인트도 온도 0의 약 39점에서 1.0의 약 44.5점까지 올랐습니다. Antidoom을 적용하자 두 모델 모두 온도 0~0.33에서 가장 높았고 온도 1.0에서 떨어졌습니다. 원래 Qwen3.5-4B가 가장 좋았던 온도 0.67의 점수(약 65점)가 Antidoom 적용 모델의 온도 0 점수(약 72점)보다 낮습니다.

![LFM2.5-2.6B 초기 체크포인트의 온도별 점수 그래프 8개. 원래 체크포인트(회색)는 온도가 오를수록 반복률이 내려가고 평균이 오르며, Antidoom 적용 체크포인트(보라색)는 낮은 온도에서 평균이 가장 높습니다.](https://aypchzzf9pftwuto.public.blob.vercel-storage.com/LFM25-26B-NK4hGbZhCQVI6wpziugBoHzd1022Hx.png)

리퀴드AI는 추론 모델은 온도를 높여 풀이 공간을 넓게 탐색하는 편이 낫다는 통념이 루프를 피하는 효과와 뒤섞여 있었을 수 있다고 봤습니다. 루프를 없애면 적어도 시험한 모델에서는 0에 가까운 온도에서 점수가 더 높았다는 겁니다. 모델을 만든 쪽의 권장값을 나란히 적으면 이렇습니다.

| 모델 카드 | 추론 모드 권장값 |
| --- | --- |
| Qwen3.5-4B (알리바바, 2026년 2월) | 일반 과제 온도 1.0·presence_penalty 1.5, 정밀한 코딩 온도 0.6 |
| EXAONE 4.0 1.2B (LG AI연구원, 2025년 7월) | 온도 0.6·top_p 0.95, 출력이 퇴화하면 presence_penalty 1.5 |
| Antidoom 적용 뒤 리퀴드AI 측정 | 온도 0~0.33에서 평균 점수가 가장 높음 |

presence_penalty는 이미 나온 토큰이 다시 나올 확률을 깎는 설정으로, 반복 페널티와 같은 계열입니다. 두 모델 카드 모두 0보다 높은 온도를 권하고 반복 억제 설정을 함께 적어 두었습니다. Antidoom은 같은 고장을 샘플링 설정 대신 학습 단계에서 고쳤습니다. 가중치 밖의 설정이 점수를 크게 움직인다는 점은 [릴리안 웽의 자기개선론](/post/review-lilian-weng-harness-self-improvement)에서 다룬 하네스 사례와도 이어집니다.

## 도표에 남은 예외

같은 도표에는 통념과 다른 결과도 남아 있습니다. Antidoom을 적용한 뒤에도 Qwen3.5-4B의 긴 문맥 시험 RULER는 온도 0의 약 78점에서 1.0의 약 86점으로 올랐고, LFM 체크포인트의 GPQA도 온도가 높을수록 조금씩 올랐습니다. 온도 1.0에서는 두 모델 모두 원래 모델과의 평균 점수 차가 2점 안쪽으로 줄었습니다.

처치 한 번으로 끝나지도 않습니다. 리퀴드AI는 첫 처치로 루프를 열던 토큰을 누르면 다른 토큰이 새로 루프를 여는 지점이 드러날 수 있어, 여러 차례 처치하는 편이 도움이 됐다고 적었습니다. 학습을 멈추는 시점을 놓치면 모델이 나빠지고 새 루프가 생긴다는 경고도 같은 글에 있습니다.

측정 조건도 좁습니다. 숫자는 리퀴드AI가 직접 잰 값이고, LFM2.5-2.6B는 공개 모델이 아닌 내부 초기 체크포인트입니다. 실험한 모델은 2.6B와 4B 두 개뿐이고, 앞의 루프 논문 연구진은 큰 모델일수록 루프에 덜 빠진다고 봤습니다.

## 작은 모델을 쓰는 쪽에 남는 것

리퀴드AI가 이 문제를 붙든 배경에는 기기 안에서 도는 작은 추론 모델이 있습니다. 회사는 1월 'LFM2.5-1.2B-Thinking: 1GB 안에서 도는 기기 내 추론'이라는 글을 냈고, Antidoom 블로그는 그 글을 근거로 작은 추론 모델이 긴 생각과 어려운 문제에서 특히 루프에 잘 빠진다고 적었습니다. 온도 0에서는 같은 입력에 늘 같은 토큰을 고르기 때문에, 다시 시도해도 같은 루프에 빠집니다.

국내에도 LG AI연구원의 EXAONE 4.0 1.2B와 EXAONE Deep 2.4B처럼 작게 공개된 추론 모델이 있습니다. Antidoom 코드는 아파치 2.0이라 상업적으로 쓸 수 있고, 리퀴드AI 기준으로 GPU 몇 시간이면 한 바퀴를 돌릴 수 있습니다. 다만 공개된 프롬프트 모음은 영어뿐이라, 한국어로 생각하는 모델에서 어떤 토큰이 루프를 여는지는 공개된 자료가 없습니다. 방법과 코드는 [리퀴드AI 블로그](https://www.liquid.ai/blog/antidoom)와 깃허브에 있습니다.

읽어 주셔서 고맙습니다.

초이 드림
