Reasoning-модели и test-time compute
Точность LLM можно масштабировать не только данными и параметрами, но и вычислениями на инференсе: reasoning-модели (o1, DeepSeek R1, Claude с extended thinking) учатся «думать» перед ответом через RL с проверяемыми наградами. Разбираем chain-of-thought, thinking-бюджет и когда всё это окупается.
Интуиция
Годами прогресс LLM описывался одной формулой: больше данных + больше параметров = умнее модель. Test-time compute — сдвиг парадигмы: оказалось, есть третья ось. Возьми уже обученную модель и дай ей больше вычислений в момент ответа — разреши сгенерировать длинное рассуждение, прежде чем выдать финальный ответ, — и точность на сложных задачах вырастет. Как человек: на вопрос «сколько будет 2+2» ты отвечаешь мгновенно, а олимпиадную задачу решаешь на черновике — разбиваешь на шаги, проверяешь себя, зачёркиваешь и начинаешь заново. Черновик и есть test-time compute.
От промпта «думай пошагово» к обученному рассуждению
Начиналось всё с chain-of-thought (CoT): если попросить модель «думай пошагово» (let's think step by step), точность на арифметике и логике заметно растёт. Механизм честный: на генерацию каждого токена трансформер тратит фиксированное количество вычислений, поэтому промежуточные шаги — это буквально дополнительный компьют и «рабочая память» — промежуточные результаты записываются в контекст, и следующие шаги на них опираются.
Reasoning-модели делают следующий шаг: рассуждение не выпрашивается промптом, а встроено обучением. Ключевой рецепт — RLVR (RL with Verifiable Rewards): модель решает задачи, где ответ проверяется автоматически — математика со сверяемым ответом, код с тестами. Награда объективна, человеческая разметка предпочтений не нужна (чем это отличается от RLHF — см. alignment). Дальше происходит самое интересное: модель сама, без явного обучения этому, открывает стратегии — разбить задачу на подзадачи, проверить промежуточный результат, заметить ошибку, откатиться и попробовать другой путь. Длинное рассуждение с самопроверкой выживает в RL просто потому, что чаще приводит к верному ответу.
Технически рассуждение — это thinking-токены: отдельный блок текста до финального ответа. У одних провайдеров он скрыт (виден только пересказ), у других открыт полностью. Важно для практики: бюджет размышлений (thinking budget) — регулируемый параметр инференса, и платишь ты за все thinking-токены как за обычные выходные.
Обрати внимание: у «2+2» кривая плоская с самого верха — думать незачем, любой бюджет — переплата. У алгебры точность быстро растёт и насыщается около сотен токенов. У олимпиадной задачи рост медленный и долгий — ей нужен большой бюджет. А цена и латентность растут линейно для всех трёх одинаково.
Когда reasoning окупается, а когда вреден
Окупается на задачах с длинной цепочкой зависимых шагов: математика, отладка и написание кода, многошаговое планирование (в том числе в агентных циклах), сложный анализ с перекрёстными ограничениями. Вреден там, где ответ и так известен: извлечь имя из письма, классифицировать тональность, переформулировать абзац. На простых задачах reasoning-модель отвечает не точнее обычной, но в разы дороже и медленнее — а для чатов и автодополнения лишние секунды латентности убивают продукт. Практическое правило: сначала пробуй обычную модель, reasoning включай тогда, когда упёрся в качество на верифицируемо сложной задаче.
Дистилляция и параллельный compute
Рассуждения переносимы: можно нагенерировать сильной моделью тысячи reasoning-трейсов и дообучить на них маленькую — так DeepSeek дистиллировал R1 в модели вплоть до 7B, и те стали рассуждать заметно лучше исходных (подробнее — в теме про дистилляцию).
Кроме последовательного «думай дольше» есть параллельное test-time compute: сгенерировать несколько независимых решений и выбрать лучшее. Self-consistency — сэмплируем N цепочек рассуждений и берём ответ большинством голосов; best-of-N — ранжируем кандидатов отдельной моделью-оценщиком. Это тоже обмен вычислений на точность, только вширь, а не вглубь.
- «Чем reasoning-модель отличается от обычной с CoT-промптом?» — CoT-промпт лишь просит уже обученную модель писать шаги; reasoning-модель обучена через RL (RLVR) вырабатывать стратегии — декомпозицию, самопроверку, откат — и её рассуждение реально находит и чинит собственные ошибки.
- «Когда брать reasoning-модель, а когда обычную?» — по сложности задачи против цены и латентности: математика, код, планирование — да; извлечение, классификация, чат с требованием мгновенного ответа — нет.
- «Что такое RLVR и почему без разметчиков?» — RL с проверяемыми наградами: ответ задачи сверяется, код гоняется тестами; награда объективна, человеческие сравнения ответов не нужны.
- «Как ещё потратить test-time compute, кроме длинного рассуждения?» — параллельно: self-consistency (голосование N цепочек) и best-of-N с оценщиком.