Идея кажется простой, но эффект оказался серьёзным. Если модели позволено развернуть рассуждение, она реже срезает углы и реже ошибается там, где задача требует нескольких шагов.
Варианты
- Простой — добавить в промпт фразу «рассуждай шаг за шагом перед ответом».
- С примером — показать на паре примеров прямо в запросе, как именно нужно рассуждать.
- Самосогласование — попросить модель сгенерировать несколько вариантов рассуждения и выбрать наиболее частый ответ.
- Скрытое рассуждение — попросить рассуждать в отдельной служебной части, а пользователю показать только итоговый ответ.
Что важно помнить
- Цепочка рассуждений увеличивает длину ответа и его стоимость.
- Иногда модель «рассуждает» правдоподобно, но всё равно приходит к неверному ответу — это не универсальное решение.
- Логические и математические задачи
- Задачи с несколькими условиями и подзадачами
- Когда модель явно «срезает углы» и ошибается на простых вопросах
- Простые классификации и короткие фактические ответы — рассуждение тут только увеличит стоимость
- Когда ответ нужен в чётком коротком формате (например, одно слово или структура JSON)
Если попросить модель «сколько грузовиков нужно, чтобы перевезти 12 тонн груза при грузоподъёмности 1,8 тонн», она может уверенно ответить «6». Добавляем «рассуждай шаг за шагом», и модель пишет: «1,8 × 6 = 10,8 — не хватает; 1,8 × 7 = 12,6 — достаточно; значит, нужно 7 грузовиков». Маленькое изменение промпта — заметно более надёжный ответ.
В продуктовых интерфейсах обычно не нужно показывать пользователю всё рассуждение модели — оно длинное и часто шумное. Удобный приём — попросить модель рассуждать «во внутренней секции» и выдать пользователю только итоговый ответ, а внутреннее рассуждение использовать только для журналов и отладки.