Диагностика Mock-интервью
Главная · LLM: обучение и инференс

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-токены как за обычные выходные.

💡 Ключевая мысль Test-time compute — третья ось масштабирования после данных и параметров: одна и та же модель отвечает тем точнее, чем больше токенов рассуждения ей разрешили, — но точность растёт с насыщением, а цена и латентность — линейно.

Обрати внимание: у «2+2» кривая плоская с самого верха — думать незачем, любой бюджет — переплата. У алгебры точность быстро растёт и насыщается около сотен токенов. У олимпиадной задачи рост медленный и долгий — ей нужен большой бюджет. А цена и латентность растут линейно для всех трёх одинаково.

Когда reasoning окупается, а когда вреден

Окупается на задачах с длинной цепочкой зависимых шагов: математика, отладка и написание кода, многошаговое планирование (в том числе в агентных циклах), сложный анализ с перекрёстными ограничениями. Вреден там, где ответ и так известен: извлечь имя из письма, классифицировать тональность, переформулировать абзац. На простых задачах reasoning-модель отвечает не точнее обычной, но в разы дороже и медленнее — а для чатов и автодополнения лишние секунды латентности убивают продукт. Практическое правило: сначала пробуй обычную модель, reasoning включай тогда, когда упёрся в качество на верифицируемо сложной задаче.

Дистилляция и параллельный compute

Рассуждения переносимы: можно нагенерировать сильной моделью тысячи reasoning-трейсов и дообучить на них маленькую — так DeepSeek дистиллировал R1 в модели вплоть до 7B, и те стали рассуждать заметно лучше исходных (подробнее — в теме про дистилляцию).

Кроме последовательного «думай дольше» есть параллельное test-time compute: сгенерировать несколько независимых решений и выбрать лучшее. Self-consistency — сэмплируем N цепочек рассуждений и берём ответ большинством голосов; best-of-N — ранжируем кандидатов отдельной моделью-оценщиком. Это тоже обмен вычислений на точность, только вширь, а не вглубь.

⚠️ Подводный камень Reasoning — не бесплатная кнопка «сделать умнее». Точность растёт с насыщением, а счёт за токены и латентность — линейно: после «колена» кривой ты платишь за воздух. На простых задачах длинное размышление может даже навредить (overthinking): модель успевает передумать верный ответ.
🎤 На собеседовании
  • «Чем reasoning-модель отличается от обычной с CoT-промптом?» — CoT-промпт лишь просит уже обученную модель писать шаги; reasoning-модель обучена через RL (RLVR) вырабатывать стратегии — декомпозицию, самопроверку, откат — и её рассуждение реально находит и чинит собственные ошибки.
  • «Когда брать reasoning-модель, а когда обычную?» — по сложности задачи против цены и латентности: математика, код, планирование — да; извлечение, классификация, чат с требованием мгновенного ответа — нет.
  • «Что такое RLVR и почему без разметчиков?» — RL с проверяемыми наградами: ответ задачи сверяется, код гоняется тестами; награда объективна, человеческие сравнения ответов не нужны.
  • «Как ещё потратить test-time compute, кроме длинного рассуждения?» — параллельно: self-consistency (голосование N цепочек) и best-of-N с оценщиком.