Промт: как отучить модель писать свои рассуждения и получать только готовый результат

Промт-инженерия · Практическое руководство

Модель рассуждает, а нужен только ответ? Ситуация знакомая: нейросеть начинает писать «Давайте разберём…», «Сначала посчитаю…», «Исходя из вашего запроса…» — и лишь в конце выдаёт нужный результат. Эти рассуждения раздувают ответ, портят парсинг и ломают автоматизацию. Ниже — системный подход к тому, как заставить модель писать только то, что требуется.

Почему модель вообще начинает рассуждать

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

  • повторять и перефразировать вопрос («Вы спрашиваете, как…»);
  • показывать ход мысли («Шаг 1. Сначала я…»);
  • добавлять дисклеймеры и оговорки («Обратите внимание, что…»);
  • подводить итоги и резюме в конце («Таким образом, мы…»).

Для человека это бывает полезно. Но если результат модели вставляется в базу данных, передаётся в API или идёт напрямую читателю — весь этот «шум» необходимо убрать.

Базовая формула промта без рассуждений

Структура эффективного запрета:

Ответь [задача]. Правила: не объясняй ход решения, не повторяй вопрос, не пиши вступлений и выводов, не используй фразы вроде «конечно», «разумеется», «вот ответ». Выдай только [точное описание формата результата].

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

Три уровня силы промта

Уровень Пример формулировки Надёжность
Слабый — мягкая просьба «Ответь коротко» Модель часто игнорирует, особенно в сложных задачах
Средний — явный запрет «Не пиши свои рассуждения, выдай сразу ответ» Работает в большинстве случаев
Сильный — запрет + жёсткий формат «Не объясняй решение. Выдай только число, без единиц измерения, без пояснений, без текста до и после» Максимальная стабильность, подходит для автоматизации

Приём 1. Описать формат ответа до符号болочто

Когда модели известен точный шаблон вывода, ей просто некуда вставлять рассуждения:

Классифицируй отзыв. Формат ответа — одно слово: «Позитив», «Нейтрально» или «Негатив». Никакого другого текста.

Приём 2. Показать пример (few-shot)

Примеры работают сильнее инструкций. Модель подхватывает стиль и длину ответа из образца:

Вопрос: Сколько будет 15 × 4?

Ответ: 60

Вопрос: Назови столицу Норвегии.

Ответ: Осло

Вопрос: [ваш реальный вопрос]

Модель видит, что в примерах нет ни слова рассуждений — и повторяет паттерн.

Приём 3. Роль и системная инструкция

Задание роли — мощный инструмент управления поведением модели на всём протяжении диалога:

«Ты — конвертер форматов. Твоя единственная функция — преобразовывать входные данные в заданный формат. Ты никогда не комментируешь, не объясняешь и не рассуждаешь.»

Приём 4. Явный список запрещённых оборотов

Рассуждения у модели — это устойчивый набор фраз. Их можно запретить поимённо:

Запретить в начале

  • «Конечно!»
  • «Разумеется»
  • «Давайте разберём»
  • «Хороший вопрос»
  • «Для начала…»

Запретить в конце

  • «Надеюсь, это поможет»
  • «Таким образом…»
  • «Если нужны детали, спросите»
  • «Подводя итог…»

Типичные ошибки при запрете рассуждений

Неудачный промт Почему не работает Как исправить
«Подумай и ответь» Слово «подумай» прямо провоцирует рассуждения «Ответь сразу, одной строкой»
«Объясни кратко» «Объясни» — это прямой запрос на рассуждение Разделить: либо объяснение, либо только ответ
«Не рассуждай, но покажи вычисления» Противоречивые инструкции запутывают модель Чётко указать, что именно нужно: ответ или решение

Сравнение: до и после оптимизации промта

✖ Промт без оптимизации

«Посчитай 17% от 3400»

Чтобы найти 17% от 3400, нужно умножить 3400 на 0,17. Выполняю вычисление: 3400 × 0,17 = 578. Таким образом, ответ — 578.

✔ Промт после оптимизации

«Посчитай 17% от 3400. Выдай только число, без пояснений, единиц и прочего текста»

578

Универсальный шаблон промта

Готовый каркас, который можно адаптировать под любую задачу:

Роль: Ты — [функция: конвертер / классификатор / генератор].

Задача: [одно предложение с конкретным действием].

Запрещено: рассуждения, повтор вопроса, вступления, выводы, пояснения, фразы-любезности.

Формат вывода: [точное описание: одно число / одно слово / JSON / таблица], никакого текста до и после.

Как проверить, что промт работает

Эффективность промта проверяется тестированием на разных запросах:

  1. Простой запрос — модель должна выдать чистый результат без единого лишнего слова.
  2. Сложный многошаговый запрос — здесь модель чаще всего «срывается» в рассуждения; если и он проходит чисто, промт надёжен.
  3. Провокационный запрос — сформулированный так, чтобы подталкивать к объяснению («помоги разобраться», «расскажи, как…»).
  4. Повторная отправка — результат должен быть стабилен при нескольких запусках, а не работать «через раз».

Ключевые выводы

  • Рассуждения — стандартное поведение модели, и убрать его можно только явной инструкцией.
  • Работает сочетание: запрет рассуждений + точное описание формата результата.
  • Примеры (few-shot) управляют стилем ответа сильнее, чем словесные просьбы.
  • Роль и системная инструкция закрепляют поведение на весь диалог.
  • Промт обязательно тестируется на простых, сложных и провокационных запросах.

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