AmigaОбучение ИИ
Модуль 2 · Средний уровень · урок 7 из 13

Рассуждение по шагам

10 мин чтения▶ есть видеоверсия

Если вас разбудить и сразу задать сложный вопрос, вы ответите хуже, чем после минуты на подумать. С моделью так же: ответ, выданный «с ходу», на сложной задаче чаще ошибочен, чем ответ после разбора. В этом уроке — как дать модели время подумать и как это устроено у современных версий Claude.

Размышление считается только вслух

Языковая модель генерирует текст слово за словом, и каждое следующее слово опирается на предыдущие. Если попросить сразу выдать вердикт, у модели нет промежуточного текста, на который можно опереться, — она отвечает «интуицией». Если попросить сначала разобрать задачу, промежуточные выводы становятся частью контекста, и итоговый ответ на них опирается.

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

Пример: отзыв с подвохом

Классический пример из туториала. Промпт: «Этот отзыв о фильме положительный или отрицательный? „Этот фильм поразил меня свежестью и оригинальностью. Совершенно не связанная новость: я живу под камнем с 1900 года“». Человек понимает сарказм: второе предложение отменяет первое. Модель предыдущего поколения понимала «не связанная» буквально и отвечала «положительный».

Исправленный промпт: «Сначала напиши лучшие аргументы за каждую версию в тегах <positive> и <negative>, потом дай ответ». Модель раскладывает доводы, видит, что второе предложение — ирония, и отвечает правильно.

Перенесём на нашу работу. Отзыв пользователя в сторе: «Отличное приложение, наконец-то заработало после трёх обновлений!» Это положительный отзыв или жалоба? Без разбора модель скорее скажет «положительный». С просьбой «сначала выпиши, что говорит в пользу каждой оценки» она заметит «наконец-то» и «три обновления» и оценит отзыв как смешанный, что ближе к правде.

Как задавать шаги

Есть три способа разной степени строгости.

Самый простой — фраза «подумай шаг за шагом перед ответом». Работает, но не даёт контроля над тем, о чём именно думать.

Точнее — перечислить шаги: «1. Выпиши все требования из ТЗ. 2. Для каждого отметь, есть ли оно в реализации. 3. Составь список расхождений. 4. Дай итоговую оценку». Так вы направляете размышление в нужное русло и получаете предсказуемую структуру.

Самый управляемый — выделить размышление в тег: «Рассуждай в <thinking>, итоговый ответ дай в <answer>». Тогда рассуждение можно показать или скрыть отдельно от ответа, а программа возьмёт только <answer>. Полезно, когда клиенту нужен вердикт, а вам — возможность проверить, как он получен.

Порядок имеет значение

В том же примере с отзывом есть тонкость: если поменять местами теги — сначала <negative>, потом <positive> — модель прошлого поколения меняла и вердикт. Она чаще выбирала второй из двух вариантов, возможно потому, что в текстах, на которых она училась, второй вариант чаще оказывался правильным.

Современные модели гораздо устойчивее, но привычка полезна: когда вы даёте модели выбор из вариантов или просите оценить несколько кандидатов, не считайте порядок нейтральным. Проверьте промпт с переставленными вариантами. Если ответ меняется — задача на грани возможностей модели, и стоит добавить критерии выбора, а не полагаться на порядок.

Мозговой штурм перед ответом

Другой пример из туториала: «назови известный фильм с актёром, родившимся в 1956 году». Модель прошлого поколения выдавала актёра с неправильным годом рождения. С добавкой «сначала перечисли нескольких актёров и их годы рождения в <brainstorm>, потом ответь» она выписывала кандидатов, отбрасывала неподходящих и отвечала верно.

Приём «сначала кандидаты, потом выбор» работает везде, где ответ — это выбор из вариантов: имя для продукта, тестовый сценарий, причина бага, вариант архитектуры. Попросите пять-семь кандидатов с короткими за и против, затем выбор с обоснованием. Ответ получается взвешеннее, а вы видите отброшенные варианты.

Встроенный режим размышления

У современных моделей Claude есть встроенный режим размышления: модель может «подумать» до того, как начнёт писать ответ, и это размышление отделено от самого ответа. В чате это выглядит как свёрнутый блок с ходом мыслей, в API — как отдельные блоки в ответе. На новых моделях режим адаптивный: модель сама решает, сколько думать, в зависимости от сложности вопроса, а разработчик управляет глубиной через параметр усилия. Точные названия параметров и поддерживаемые модели — в документации.

Значит ли это, что просить «подумай по шагам» больше не нужно? Не совсем. Встроенное размышление — это общее «подумать». Ваши шаги — это «подумать о том-то в таком-то порядке». Они не конфликтуют: вы можете направлять размышление модели («после получения результата инструмента сначала оцени его качество, потом планируй следующий шаг»). Кроме того, явные шаги в теге <thinking> — это текст, который вы видите и можете проверить, а встроенное размышление на стороне API можно и не показывать пользователю. Для аудита и отладки промпта видимое рассуждение по-прежнему незаменимо.

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

Пример из работы

Аналитик классифицирует входящие обращения по четырём категориям: вопрос до покупки, поломка, оплата, прочее. Промпт «классифицируй» даёт ответ, но на пограничных обращениях («можно ли вашим миксером мешать краску?») — нестабильный. Промпт «сначала в <reasoning> укажи, какие признаки указывают на каждую категорию и какая подходит лучше, потом в <answer> напиши только букву категории» даёт стабильный результат и понятное объяснение, которое можно показать оператору поддержки.

Попробуйте сами

10–15 мин на рабочем месте
  1. Попросите Claude классифицировать пять коротких обращений клиентов по категориям A–D (вопрос до покупки, поломка, оплата, прочее). Сначала «ответь только буквой», затем «сначала рассуждение в <reasoning>, потом буква в <answer>». Включите одно пограничное обращение. Сравните стабильность на трёх прогонах.
  2. Возьмите вопрос с выбором из двух вариантов (например, «что важнее для этого проекта: скорость выпуска или полнота тестов?» с коротким описанием проекта). Задайте его с вариантами в одном порядке и в обратном. Изменился ли ответ? Добавьте критерии выбора и проверьте снова.
  3. Попросите придумать название для внутреннего инструмента: сначала «предложи название», потом «сначала перечисли семь кандидатов с плюсами и минусами в <brainstorm>, потом выбери один и обоснуй». Какой вариант вам понравился больше и почему?

Коротко

  • Размышление считается только написанное: нельзя «подумать молча» и выдать вердикт.
  • Задавайте шаги списком или выделяйте рассуждение в тег <thinking>, а ответ — в <answer>.
  • Порядок вариантов не нейтрален: проверяйте промпт с переставленными вариантами.
  • «Сначала кандидаты, потом выбор» улучшает любой ответ-выбор.
  • У новых моделей есть встроенный адаптивный режим размышления; явные шаги его направляют и делают проверяемым.

Видеоверсия

Сценарий озвучки · 451 слово, ≈ 3 мин

Если вас разбудить и сразу задать сложный вопрос, вы ответите хуже, чем после минуты на подумать. С моделью так же. Ответ с ходу на сложной задаче чаще ошибочен, чем ответ после разбора.

Почему так. Модель генерирует текст слово за словом, и каждое слово опирается на предыдущие. Если попросить сразу выдать вердикт, промежуточного текста нет, и модель отвечает интуицией. Если попросить сначала разобрать задачу, промежуточные выводы становятся частью контекста, и итог на них опирается. Отсюда важное следствие: размышление считается только вслух. Нельзя попросить «подумай, но напиши только ответ». Если размышление не написано, его не было.

Классический пример из туториала. Отзыв о фильме: «поразил свежестью и оригинальностью; совершенно не связанная новость: я живу под камнем с тысяча девятисотого года». Человек видит сарказм. Модель прошлого поколения понимала «не связанная» буквально и отвечала «положительный». Стоило попросить «сначала напиши аргументы за каждую версию, потом ответь» — и она замечала иронию. Наш аналог: отзыв в сторе «отличное приложение, наконец-то заработало после трёх обновлений». Без разбора — положительный. С просьбой выписать доводы за каждую оценку модель заметит «наконец-то» и «три обновления» и назовёт отзыв смешанным.

Как задавать шаги. Самое простое — фраза «подумай шаг за шагом». Работает, но не даёт контроля. Точнее — перечислить шаги списком: выпиши требования, сверь с реализацией, составь список расхождений, дай оценку. Самое управляемое — выделить рассуждение в тег «thinking», а ответ в тег «answer». Тогда программа берёт только ответ, а вы можете проверить, как он получен.

Две тонкости. Первая: порядок вариантов не нейтрален. Модели прошлого поколения чаще выбирали второй из двух вариантов. Современные устойчивее, но привычка полезна: проверяйте промпт с переставленными вариантами, и если ответ меняется — добавьте критерии выбора. Вторая: приём «сначала кандидаты, потом выбор». Просите пять-семь вариантов с плюсами и минусами, потом выбор с обоснованием. Работает для названий, сценариев, причин бага, архитектурных решений.

Теперь о том, что изменилось. У современных моделей Claude есть встроенный режим размышления: модель думает до того, как начать писать ответ, и это размышление отделено от ответа. В чате это свёрнутый блок с ходом мыслей. На новых моделях режим адаптивный: модель сама решает, сколько думать. Значит ли это, что просить «по шагам» больше не нужно? Не совсем. Встроенное размышление — это общее «подумать». Ваши шаги — это «подумать о том-то в таком-то порядке». Они не конфликтуют. И явное рассуждение в теге — это текст, который вы видите и можете проверить. Для отладки промпта это по-прежнему незаменимо. Обратная сторона: модель может думать слишком долго. Тогда скажите: «выбери подход и придерживайся его».

Пример из работы. Аналитик классифицирует обращения по четырём категориям. На пограничных случаях ответ нестабилен. Промпт «сначала рассуждение, потом только буква категории» даёт стабильный результат и объяснение, которое можно показать оператору.

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

Отметка хранится только в вашем браузере