DEV Community

Cover image for Liquid AI нашла способ вылечить «doom loop» рассуждающих моделей одним токеном за раз: языковая модель qwen
Promptra Team for Promptra

Posted on

Liquid AI нашла способ вылечить «doom loop» рассуждающих моделей одним токеном за раз: языковая модель qwen

Ты запускаешь рассуждающую модель на длинной задаче, она доходит до середины цепочки, говорит «Wait, let me reconsider…» - и всё. Дальше идёт не решение, а бесконечное самоедство: та же фраза, та же оговорка, тот же откат, пока не кончится контекстное окно и ты не увидишь оборванный вывод и счёт за тысячи бесполезных токенов.

Это называется doom loop, и 7 июля 2026 года Liquid AI опубликовала метод, который целится ровно в этот сбой, не переучивая модель целиком. По данным блога Liquid AI от 7 июля 2026, метод и датасет выложены открыто под названием Antidoom, а сам приём обучения - Final Token Preference Optimization, FTPO.

Разберём по порядку: что именно сломано, что именно починили, какие цифры заявлены и на каких моделях, и как ты можешь это пощупать сам. Без магии и без обещаний, что «теперь модели больше не зацикливаются».

Что произошло 7 июля и что реально изменилось

Главное: Liquid AI выложила открытый метод и датасет против зацикливания reasoning-моделей. Это не новая модель и не продукт, а способ дообучения плюс данные.

По публикации Liquid AI от 7 июля 2026 года, в открытый доступ выложены две вещи: сам метод FTPO и датасет LiquidAI/antidoom-mix-v1.0. Событие подхватили на Hacker News и в MarkTechPost - в обсуждении это отметили как редкий случай точечного, а не общего фикса для рассуждающих моделей. Это сигнал внимания сообщества, а не доказательство качества: обсуждение говорит, что тема задела людей, но проверять цифры всё равно придётся самому.

Что здесь важно разделить сразу:

  • Заявление вендора - Liquid AI утверждает, что FTPO снижает частоту зацикливания и при этом не роняет метрики.
  • Независимая проверка - на момент подготовки материала (14 июля 2026) в источниках нет сторонней воспроизводящей публикации, есть только обсуждение.
  • Вывод автора - метод выглядит логично и ограниченно проверен на двух контрольных точках, о чём сама Liquid AI и предупреждает.

Если ты гоняешь длинные цепочки рассуждений и платишь за токены, тебе стоит один раз собрать полигон, где ты сможешь сравнить разные семейства моделей на своей задаче - в том числе быстро подключить те же модели через один российский доступ, не собирая зоопарк ключей.

Что такое doom loop и почему это дорого

Главное: doom loop - это когда модель залипает на фразе сомнения и повторяет её до исчерпания окна.

По описанию Liquid AI, doom loop - частый сбой именно у reasoning-моделей. Механика простая и узнаваемая: модель произносит что-то вроде «Wait, let me reconsider…», а потом воспроизводит эту же конструкцию снова и снова. Цепочка не сходится к ответу, а наматывает круги, пока не упрётся в лимит контекста.

Почему это бьёт по карману и по продукту:

  1. Ты платишь за каждый токен вывода, а зацикленная генерация выедает окно целиком.
  2. Пользователь получает оборванный или пустой ответ - модель «думала», но не «додумала».
  3. Тайминги плывут: одна залипшая генерация может занять в разы больше времени, чем нормальная.
  4. Ретраи не спасают - при жадном сэмплировании модель детерминированно скатывается в ту же яму.

Важно не путать это с обычной «болтливостью». Болтливая модель хотя бы движется к ответу. Doom loop - это застревание на конкретном переходе, где вместо продолжения мысли модель раз за разом выбирает токен сомнения.

Как работает FTPO: фикс на завершающих токенах

Главное: FTPO находит токен, с которого стартует цикл, и учит модель предпочитать связные альтернативы именно в этой позиции, почти не трогая остальное распределение.

Вот идея метода по описанию Liquid AI. Обычный doom loop начинается не «вообще», а в конкретной точке генерации - на определённом завершающем токене, после которого модель сваливается в повтор. FTPO работает адресно с этими позициями.

Три отличия FTPO от стандартного DPO, как их формулирует Liquid AI:

  • Только завершающие токены. DPO обычно оптимизирует предпочтение на уровне целых ответов. FTPO обучается именно на финальных токенах - там, где рождается зацикливание.
  • Несколько выбранных альтернатив на пример. Вместо жёсткой пары «хороший ответ против плохого» FTPO допускает несколько приемлемых продолжений на один пример.
  • KL-подобный лосс в пространстве логитов. Обучение построено так, чтобы менять распределение минимально - подправить поведение в проблемной точке и не разболтать всё остальное.

Последний пункт - ключевой для практики. Именно из-за минимального вмешательства в распределение метрики на бенчмарках не проседают: ты чинишь узкий дефект, а не переобучаешь всю модель под новую цель.

Схема FTPO: как метод правит распределение только на завершающем токене цикла

По заявлению Liquid AI, весь процесс дообучения занимает несколько часов. Это не многодневный прогон - это точечная операция поверх уже готовой контрольной точки.

Какие цифры заявлены и на каких моделях

Главное: цифры хорошие, но они с двух конкретных чекпоинтов, а не «в общем».

Liquid AI приводит два результата.

Модель (чекпоинт) Частота doom loop до После FTPO Условие
LFM2.5-2.6B (ранняя контрольная точка) 10.2% 1.4% по данным Liquid AI
Qwen3.5-4B 22.9% 1% жадное сэмплирование, по данным Liquid AI

По публикации Liquid AI, на Qwen3.5-4B частота зацикливания при жадном сэмплировании упала с 22.9% до 1%, и при этом оценки на бенчмарках выросли, а не просели. На ранней контрольной точке LFM2.5-2.6B частота doom loop снизилась с 10.2% до 1.4%.

Теперь честная рамка. Liquid AI сама предупреждает: результаты приведены на конкретных контрольных точках LFM2.5 и Qwen3.5, а обобщаемость метода на другие архитектуры не заявлена как проверенная. То есть языковая модель qwen здесь - не «доказательство для всех Qwen вообще», а один прогон на версии Qwen3.5-4B. Переносить эти проценты на свою модель без собственного замера нельзя.

Отдельно проговорим частую путаницу. Запрос «языковая модель qwen» часто задают так, будто Qwen - это одна модель. На деле это семейство разных по размеру моделей, и в этом эксперименте фигурирует конкретный чекпоинт Qwen3.5-4B. Никакого «фикса для всего Qwen» в источнике нет - есть результат на одной точке.

Как повторить это у себя: шаги и код

Главное: метод и датасет открыты, так что базовый воспроизводящий прогон реально собрать самому.

Порядок действий получается такой:

  1. Возьми свою reasoning-модель или чекпоинт, на котором видишь зацикливание.
  2. Собери или подтяни датасет LiquidAI/antidoom-mix-v1.0 - он выложен открыто.
  3. Прогони дообучение по схеме FTPO (лосс в пространстве логитов, обучение на завершающих токенах, несколько альтернатив на пример).
  4. Замерь частоту doom loop до и после на своём наборе промптов, обязательно с жадным сэмплированием - именно там дефект проявляется детерминированно.
  5. Сверь бенчмарки до и после, чтобы поймать возможную деградацию.

Ключевой момент - как ты вообще детектируешь зацикливание, чтобы измерить эффект. Простой полуавтоматический детектор ловит повтор одной и той же фразы-триггера в хвосте генерации:

import re
from collections import Counter

TRIGGERS = [
    "wait, let me reconsider",
    "hold on, let me rethink",
]

def looks_like_doom_loop(text: str, min_repeats: int = 3) -> bool:
    low = text.lower()
    for t in TRIGGERS:
        if low.count(t) >= min_repeats:
            return True
    # общий признак: одинаковые строки-хвосты подряд
    tail = [ln.strip() for ln in low.splitlines() if ln.strip()][-8:]
    if tail:
        top, n = Counter(tail).most_common(1)[0]
        if n >= min_repeats:
            return True
    return False
Enter fullscreen mode Exit fullscreen mode

Это не метрика Liquid AI, а грубый детектор для твоего замера - настрой список триггеров под свою модель и язык. Порог min_repeats подбирай по глазам: реальные рассуждения тоже иногда повторяют формулировки.

Чтобы прогонять сам замер по многим семействам моделей единообразно, удобно дёргать их через один OpenAI-совместимый эндпоинт. Ключ и адрес - плейсхолдеры, подставь свои:

from openai import OpenAI

client = OpenAI(
    api_key="ВСТАВЬ_СВОЙ_КЛЮЧ",          # секрет, не коммить
    base_url="https://api.provod.ai/v1",  # OpenAI-совместимый эндпоинт
)

resp = client.chat.completions.create(
    model="qwen-max",                     # подставь нужный чекпоинт
    messages=[{"role": "user", "content": "Реши задачу пошагово: ..."}],
    temperature=0.0,                       # жадное сэмплирование для детекта
)
print(looks_like_doom_loop(resp.choices[0].message.content))
Enter fullscreen mode Exit fullscreen mode

Поток авторизации: один ключ и base_url для единообразного прогона моделей

Смысл единого эндпоинта здесь не в удобстве ради удобства, а в чистоте эксперимента: одинаковый код, одинаковые параметры, разные модели. Так ты не спутаешь разницу в SDK с разницей в поведении моделей.

Как выбрать модель и не разориться на замерах

Главное: сам по себе Antidoom - про дообучение; но чтобы решить, стоит ли овчинка выделки, тебе сначала нужен дешёвый способ гонять сравнение.

Практический вопрос звучит так: чинить конкретную модель методом FTPO или просто сменить модель, у которой doom loop встречается реже на твоих задачах? Ответ зависит от того, где ты вообще запускаешь инференс и сколько это стоит.

Небольшая таблица для решения:

Ситуация Что разумнее Почему
Модель самохостится, зацикливание массовое Пробовать FTPO Есть контроль над весами, дообучение - часы по заявлению Liquid AI
Ты дёргаешь модель только по API Сначала сравнить модели Веса тебе недоступны, дообучать нечего
Нужен быстрый ответ «какая модель меньше залипает» Прогнать один бенч по семействам Дешевле, чем строить пайплайн дообучения
Требуется on-prem и приватность FTPO на своей инфраструктуре API-агрегаторы тут не помогут по определению

Для второго и третьего случая тебе нужен доступ к разным семействам моделей через один интерфейс. Если сравниваешь зарубежные модели из России, provod.ai держит Claude, GPT, Gemini, DeepSeek и Qwen в одном чате и в одном API, с одним рублёвым балансом и оплатой российской картой, через СБП или по счёту - без VPN и зарубежных карт. Для команды это ещё и договор, счёт и закрывающие документы.

Важная честная оговорка: через такой доступ ты берёшь стоковые модели семейств для сравнения и роутинга. Готового чекпоинта с уже вшитым FTPO-фиксом там нет - его ты получаешь только сам, дообучив свою модель по методу Liquid AI. Агрегатор помогает выбрать и сравнить, а не заменяет дообучение.

Сравнение моделей и стоимость прогона: где FTPO окупается, а где дешевле сменить модель

Частые ошибки при замере и разборе в пайплайне

Главное: большая часть провалов - не в методе, а в том, как ты меряешь и как собираешь цепочку.

Типичные грабли:

  • Меряешь не тем сэмплированием. Doom loop у Qwen3.5-4B в источнике заявлен при жадном сэмплировании. Если ты замеряешь с высокой температурой, картина смажется, и ты сделаешь неверный вывод.
  • Считаешь любой повтор дефектом. Повтор формулировки в длинном рассуждении - норма. Дефект - это застревание без прогресса к ответу. Разделяй.
  • Обобщаешь два чекпоинта на всё. Цифры 10.2% -> 1.4% и 22.9% -> 1% - это две точки. Liquid AI прямо не заявляет переносимость на другие архитектуры.
  • Путаешь снижение зацикливания с ростом качества. По данным Liquid AI, метрики выросли, но это её замер на её бенчах; на твоей задаче проверяй отдельно.

Если ты оркестрируешь вызовы в low-code, например в n8n, добавь узел-детектор сразу после ноды генерации: он гоняет ответ через тот же looks_like_doom_loop, и при срабатывании ветка идёт на повтор с другой моделью или на алерт. Так ты не отправишь пользователю оборванную цепочку и соберёшь честную статистику залипаний по продакшену.

Карта отладки: где в пайплайне ловить зацикливание и куда ветвить n8n

Ещё одна ловушка пайплайна - логи. Если ты режешь длинные ответы при записи, зацикливание в логах выглядит как обычный длинный текст. Пиши хотя бы длину вывода и число срабатываний детектора, иначе позже не докажешь себе, что фикс сработал.

Чего этот метод не решает

Скажем прямо, без приукрашивания.

  • Это не «конец галлюцинаций» и не рост интеллекта. FTPO целится в один конкретный сбой - зацикливание на завершающем токене. Про другие ошибки reasoning в источнике речи нет.
  • Это не подтверждённая универсальность. Liquid AI сама пишет, что обобщаемость на другие архитектуры не заявлена как проверенная. Два чекпоинта - это два чекпоинта.
  • Это не продукт и не готовая модель. Опубликованы метод и датасет. Дообучение и замер - на тебе.
  • Это не независимо воспроизведено. На 14 июля 2026 в источниках - публикация Liquid AI и обсуждение сообщества, а не сторонний повтор эксперимента.
  • Это не замена инфраструктуре. Если тебе нужен on-prem, приватность или встроенные фичи конкретного вендора, никакой агрегатор и никакой внешний API этого не заменят - ровно как и provod.ai не подменяет GigaChat, автоматизацию, приватную инфраструктуру или работу по внедрению.

Если убрать пафос, честный итог такой: появился аккуратный, узко нацеленный приём против дорогой и раздражающей поломки, с открытым кодом и датасетом и с прозрачно ограниченной доказательной базой. Это хорошая новость для тех, кто держит reasoning-модели у себя и устал платить за пустые круги генерации.

Источники

  • Liquid AI, «Antidoom», 7 июля 2026 (первичный источник фактов 1-7): https://www.liquid.ai/blog/antidoom
  • Сигнал обсуждения: Hacker News и MarkTechPost, 7 июля 2026 - реакция сообщества, не независимая проверка.

Все проценты, названия моделей, размер выборки и дата взяты из публикации Liquid AI. Детектор в коде и таблицы решений - авторская практическая надстройка, а не часть оригинального метода.

provod.ai: один доступ к Claude, GPT, Gemini, DeepSeek и Qwen из России

Собери свой полигон для сравнения моделей за один вечер: подключись к provod.ai, залей рублёвый баланс и прогони doom-loop детектор по семействам моделей через один OpenAI-совместимый ключ.


provod.ai — Russian LLM API aggregator. One OpenAI-compatible endpoint to all flagship models: OpenAI (GPT-5.6, GPT-5.5), Anthropic (Claude Opus 4.8, Sonnet 4.6), Google (Gemini 3.1 Pro, 3.5 Flash), DeepSeek V4 Pro, Qwen 3.6 Plus. Provider prices at the CBR rate, no token markup. Pay in rubles to a Russian legal entity with full closing documents.

Try: provod.ai · model catalog · docs

Top comments (0)