15 марта 2023 года, около 11 утра. Я сидел в кофейне на Крещатике, смотрел в экран и понимал, что потратил на этот проект уже 12 часов - а результат стал хуже, чем был вчера.
Клиент из Сан-Франциско ждал рабочий прототип AI-ассистента. Я переписывал промпты снова и снова. Модель отвечала быстро, уверенно, и почти всегда мимо.
---
Проблема была не в модели. Проблема была в том, как я с ней разговаривал.
Я давал задачу - и сразу просил ответ. Модель отвечала. Ответ выглядел логично, был хорошо оформлен, и при проверке разваливался на третьем шаге.
Это классика. ChatGPT оптимизирован на то, чтобы ответить убедительно, а не на то, чтобы ответить правильно. Это разные вещи.
Когда ты просишь решение в лоб - модель берёт самый короткий путь к ответу, который звучит хорошо. Она не рассуждает. Она предсказывает текст, который похож на правильный ответ.
Для простых задач это работает. Для сложных - нет.
Я переделывал выходные эти вручную, добавлял условия, уточнял постановку. Каждая итерация занимала 20-40 минут. За 12 часов я прошёл примерно 18 таких кругов и по факту стоял на месте.
Клиент видел прогресс в отчётах. Я видел, что проект горит.
Я собрал промпты по этой теме в PDF. Забери бесплатно: https://t.me/airozov_bot
---
Случайность выглядела вот так. Я устал переформулировать задачу и написал просто:
*"Прежде чем отвечать - разбери задачу по шагам. Какие допущения ты делаешь? Где может быть ошибка в логике? Только после этого дай ответ."*
Модель выдала что-то неожиданное. Она начала рассуждать вслух. Нашла два противоречия в моей же постановке задачи. Предложила три варианта решения с объяснением, почему каждый работает или не работает.
Я использовал второй вариант. Он закрыл задачу.
Это называется chain of thought - цепочка рассуждений. Ты не просишь ответ. Ты просишь модель думать вслух перед тем, как отвечать.
Вот три конкретных конструкции, которые я с тех пор использую постоянно.
Первая - "шаг за шагом". Самый простой вариант. Добавь в конец любого запроса: *"Думай шаг за шагом."* Звучит банально. Работает стабильно. На задачах с логикой, кодом или анализом качество ответа вырастает заметно - в моём случае количество переделок сократилось примерно на 40% по сравнению с прямыми запросами.
Вторая - "сначала допущения". Перед ответом прошу модель написать, что она считает истинным в условии задачи. Это ловит момент, когда я сам плохо сформулировал запрос. Часто оказывается, что проблема не в модели - я поставил задачу с дырой, и модель честно туда провалилась.
Третья - "три варианта и один лучший". Вместо одного ответа прошу три подхода к задаче и объяснение, какой из них предпочтительнее и почему. Это работает особенно хорошо для архитектурных решений и формулировок. Я трачу немного больше токенов, зато сразу вижу пространство решений, а не одну точку.
Те 40 минут в кофейне окупили 12 часов потерянного времени. Проект я сдал через два дня. Клиент остался доволен и вернулся с ещё одним заказом на $650.
---
Я думал, что chain of thought - это про качество ответов. Оказалось, это в первую очередь про качество моих вопросов.
Когда модель думает вслух - ты видишь, как она понимает твой запрос. И очень часто понимает не так, как ты хотел. Это не баг модели. Это зеркало твоей формулировки.
После нескольких недель работы с такими промптами я начал иначе ставить задачи. Стал добавлять контекст, убирать двусмысленность, явно указывать ограничения. Не потому что прочитал об этом в каком-то курсе - а потому что видел, где модель уходит не туда, и понимал почему.
Это улучшило работу не только с ChatGPT. С Claude, который я использую сейчас как основной инструмент, такие промпты дают ещё более чистый результат - потому что модель лучше держит контекст длинной цепочки рассуждений.
Есть ещё один момент, который мало кто упоминает. Chain of thought замедляет ответ. Модель пишет больше текста. Новичкам это кажется неэффективным - зачем столько слов, если можно сразу получить ответ?
Но я считаю иначе. Мне не нужен быстрый ответ. Мне нужен ответ, который я не буду переделывать следующие два часа.
Каждый день разбираю один такой инструмент в Telegram: https://t.me/yevheniirozov
---
Зайди на claude.ai или в ChatGPT. Возьми любую задачу, с которой застрял в последние дни.
Напиши вот этот промпт:
*"Прежде чем отвечать, выпиши все допущения, которые ты делаешь о задаче. Затем разбери решение по шагам. Укажи, где в логике может быть слабое место. После этого дай итоговый ответ."*
Посмотри, что изменится в ответе по сравнению с тем, что получал раньше.
Это займёт 5 минут. И с высокой вероятностью сэкономит тебе следующие несколько часов переделок.
• [Реально ли зарабатывать 300 000 как промпт-инженер?](https://telegra.ph/Realno-li-zarabatyvat-300-000-kak-prompt-inzhener-04-05-2)
• [Я стал промпт-инженером и зарабатываю 300 000 в месяц](https://telegra.ph/YA-stal-prompt-inzhenerom-i-zarabatyvayu-300-000-v-mesyac-04-05)
• [Как я освоил промпт-инжиниринг и вышел на 300 000 в месяц](https://telegra.ph/Kak-ya-osvoil-prompt-inzhiniring-i-vyshel-na-300-000-v-mesyac-04-05-2)
[teletype] Один промпт заменил мне 3 часа дебага в день