Что такое Chain of Thought и зачем он нужен
Что такое Chain of Thought и зачем он нужен
До сих пор мы просили модель дать ответ — и она его давала. Но на сложных задачах (математика, логика, многошаговые инструкции) модель часто ошибается, если отвечает сразу. Причина та же, что у человека: пытаться решить задачу «в голове», без промежуточных шагов, — рискованно.
Chain of Thought (CoT) — техника, при которой модель явно проговаривает шаги рассуждения перед тем, как дать окончательный ответ. Это радикально снижает количество ошибок.
Проблема «быстрого ответа»
Вход (без CoT):
В магазине акция: купи 2 футболки по 800 ₽, третья — за полцены.
Сколько будут стоить 3 футболки?
Выход (ошибка модели при быстром ответе):
Три футболки будут стоить 2000 ₽.
Модель ошиблась. Правильный ответ: 2 × 800 + 400 = 2000 ₽. Подождите... это правильно: 800 + 800 + 400 = 2000.
Давайте другой пример, где ошибка очевиднее:
Вход (без CoT):
В классе 15 учеников. Каждый пожал руку каждому ровно один раз.
Сколько всего рукопожатий?
Выход (типичная ошибка модели):
15 × 14 = 210 рукопожатий.
Ошибка: модель забыла, что рукопожатие между А и Б — то же самое, что между Б и А, и посчитала каждое дважды. Правильный ответ: 15 × 14 / 2 = 105.
Как CoT это исправляет
Вход (с CoT):
В классе 15 учеников. Каждый пожал руку каждому ровно один раз.
Сколько всего рукопожатий?
Давай подумаем шаг за шагом.
Выход:
Шаг 1: Каждый из 15 учеников пожимает руку остальным 14.
Если просто перемножить — 15 × 14 = 210.
Шаг 2: Но рукопожатие между учеником А и учеником Б — то же самое,
что между Б и А. То есть каждое рукопожатие посчитано дважды.
Шаг 3: Значит, 210 нужно разделить на 2.
210 / 2 = 105.
Ответ: 105 рукопожатий.
CoT превращает «чёрный ящик» в прозрачный процесс. Мы видим, КАК модель пришла к ответу, и можем проверить логику.
Почему CoT работает
При обычной (без CoT) генерации модель на каждом шаге предсказывает следующий токен. Для задачи про рукопожатия первый токен ответа может быть «210» — модель «увидела» 15 × 14 и выдала результат, не проверив логику.
При CoT модель генерирует промежуточные шаги. Когда она пишет «каждое рукопожатие посчитано дважды», этот текст попадает в контекст и влияет на следующий токен. Модель буквально «читает» собственное рассуждение и корректирует его.
Когда CoT особенно полезен
- Математические задачи — вычисления в несколько действий.
- Логические задачи — головоломки, задачи на условия.
- Многошаговые инструкции — «сначала сделай А, потом на основе А сделай Б».
- Сравнение и анализ — когда нужно сравнить несколько вариантов по критериям.
- Отладка кода — найти ошибку, объяснить причину, предложить исправление.
Когда CoT НЕ нужен
- Простые фактические вопросы — «Какая столица Франции?» — модель ответит правильно без рассуждений.
- Перевод — «Переведи на английский» — CoT только добавит лишнего текста.
- Генерация простого текста — написать поздравление или описание товара.
CoT — это инструмент для СЛОЖНЫХ задач. Не используй его там, где ответ очевиден.
Проверь себя
Вот задача: «Если поезд выехал из Москвы в 9:00 со скоростью 80 км/ч, а другой — из Петербурга в 10:00 со скоростью 120 км/ч, когда они встретятся, если расстояние 650 км?» Модель дала ответ «12:30» без объяснения. Стоит ли попросить её рассуждать шаг за шагом? Почему?
Ответ: да. Это задача с несколькими переменными (разное время выезда, разные скорости, расстояние), где легко ошибиться в расчётах. CoT покажет, правильно ли модель учла разницу во времени выезда и правильно ли составила уравнение.
Итог
- Chain of Thought — техника, при которой модель явно проговаривает шаги рассуждения перед финальным ответом.
- Без CoT модель «думает» одним шагом и часто ошибается на сложных задачах.
- С CoT каждый шаг рассуждения попадает в контекст и влияет на следующие шаги — модель как бы «читает» свою логику и корректирует ошибки.
- CoT полезен для математики, логики, многошаговых инструкций, анализа. Не нужен для простых фактов и переводов.
Что дальше
Теперь ты знаешь, ПОЧЕМУ CoT работает. В следующем уроке — самый простой и элегантный способ его применить: zero-shot CoT. Достаточно добавить в промпт одну фразу, и модель начнёт рассуждать шаг за шагом.