Промпт-инжиниринг: это практика написания, проверки и доработки инструкций для ИИ-модели, чтобы она стабильно выдавала нужный результат. Он охватывает то, что вы кладёте в промпт (задачу, контекст, примеры, входные данные), и то, как вы это располагаете (порядок, формат, разделители). Термин звучит технически, но по большей части это аккуратное письмо плюс проверка результатов.
Эта страница: оглавление руководства Coddy по промпт-инжинирингу. Здесь объясняется, почему этот подход работает, собрана карта основных техник со ссылками на страницы, где они разобраны, и показана разница между случайным промптом и продуманным.
Почему промпт-инжиниринг работает
Языковая модель генерирует текст, предсказывая, что идёт дальше, маленькими кусочками, на основе всего, что у неё перед глазами. У неё нет доступа к вашим намерениям, вашему проекту или прошлым чатам, если этого текста нет во входных данных. Поэтому промпт не просьба к разуму, который вас уже понимает; это вся ситуация, на которую модель отвечает.
Отсюда прямое следствие. Каждый вопрос, который промпт оставил открытым, модель обычно закрывает самым типичным вариантом: самый распространённый язык, самая обычная длина, самая обычная аудитория. Иногда типичный вариант и есть то, что вам нужно. Когда нет, решение в том, чтобы закрыть этот вопрос в промпте. Хороший промпт сужает круг правдоподобных ответов, пока большая часть оставшихся не станет полезной.
Ремесло определяют ещё два факта. Ответы сэмплируются, поэтому один и тот же промпт может давать разные ответы при разных запусках; промпт хорош, только если он работает в большинстве случаев, а не один раз. И модель считает любой текст в промпте потенциально значимым, поэтому вставленное письмо или случайная фраза могут быть прочитаны как инструкция, если вы явно не пометите их как материал.
Случайный промпт против продуманного
Обе вкладки просят одно и то же: разделить отзывы покупателей на положительные и отрицательные. Сравните, что возвращает каждая.
Вот разбор:
- Смешанный. Пользователю нравится скорость, но его раздражает, что его выкидывает из аккаунта.
- Положительный. Приложение отвечает его потребностям в учёте пробежек.
- Отрицательный. Пользователь недоволен тем, что поддержка не ответила.
В целом отзывы смешанные: один положительный, один отрицательный и один смешанный.
Случайный ответ разумен для человека, но программа не сможет его использовать: метки перемешаны с объяснениями, появилась третья категория, которую вопрос не предлагал, а в конце добавлен вывод. Продуманный промпт определяет каждую метку, фиксирует форму ответа примером и оборачивает отзывы в теги, чтобы их было труднее спутать с инструкциями. На тысяче отзывов он даёт вывод, который программа разберёт гораздо стабильнее, а когда нужна гарантия, остаток разрыва закрывают функции структурированного вывода в API и проверка в вашем коде.
Основные техники
Каждая техника ниже закрывает свой вид разрыва между тем, что вы имели в виду, и тем, что получила модель. Большинство реальных промптов сочетают несколько.
| Техника | Что делает | Когда применять |
|---|---|---|
| Zero-shot промптинг | Даёт инструкцию без примеров | Задача распространённая и ясно описана |
| Few-shot промптинг | Показывает несколько примеров входа и выхода | Формат или суждение проще показать, чем описать |
| Chain of thought (цепочка рассуждений) | Просит рассуждение перед ответом | В задаче несколько шагов, как в математике или логике |
| Ролевой промптинг | Задаёт, чьим голосом и по чьим стандартам писать | Важны аудитория и уровень |
| Структурированный вывод | Фиксирует ответ в JSON, таблице или шаблоне | Результат читает программа или таблица |
| Разделители и XML-теги | Отделяют инструкции от вставленного материала | В промпте есть документы, код или текст пользователя |
| Шаблоны промптов | Превращают удачный промпт в шаблон с пропусками | Вы повторяете однотипные запросы |
| Цепочки промптов | Делят работу на шаги, которые передают результат друг другу | Один промпт пытается сделать слишком много |
| Self-consistency | Берёт несколько ответов и выбирает большинство | Одна линия рассуждений ненадёжна |
| Tree of thought (дерево мыслей) | Исследует и оценивает несколько линий рассуждений | Задача требует планирования или перебора |
| ReAct | Чередует рассуждения с вызовами инструментов | Модели нужно что-то найти или выполнить действие |
| Мета-промптинг | Поручает модели написать или улучшить промпт | Вы не знаете, как сформулировать промпт |
| Контекст-инжиниринг | Проектирует всё, что видит модель, а не только инструкцию | Вы строите приложение или агента вокруг модели |
Если вы новичок, начните с частей одного промпта на странице как написать промпт, затем переходите к few-shot промптингу и структурированному выводу. Эти три темы закрывают большинство повседневных задач.
Промпт для программы
Промпты, встроенные в программы, запускаются тысячи раз на входных данных, которых ещё никто не видел, поэтому в них прописано больше, чем в сообщении в чате. Промпт ниже пишет сообщения коммитов по диффу кода. Отключайте части и смотрите, от чего защищает каждая: без примеров стиль уплывает, а без ограничений модель может использовать типы, которых нет в вашей команде, например perf или style.
function validatePassword(password) {
- if (password.length > 8) {
+ if (password.length >= 8) {
return null;
}
return 'Password must be at least 8 characters';
}fix(auth): accept passwords of exactly 8 characters
- The check used > 8, so an 8-character password was rejected
- The rule now matches the error message, which says "at least 8"
Как научиться промпт-инжинирингу
Учатся этому, запуская промпты и внимательно разглядывая, что приходит в ответ. Практичный путь:
- Изучите части промпта. Задача, контекст, входные данные, формат и ограничения. Большинство неудач сводятся к тому, что одной из них нет.
- Выберите реальную задачу, которую вы повторяете, например пересказ тикетов, объяснение ошибок или черновики писем, и напишите для неё промпт.
- Соберите от пяти до десяти тестовых входов, включая неудобные: пустой вход, очень длинный, вход на другом языке.
- Меняйте по одной вещи за раз и перезапускайте все входы. Если поменять три вещи и результат станет лучше, вы не узнаете, какая помогла. Этот цикл подробно разобран на странице доработка промптов.
- Добавляйте техники, когда их требует конкретная ошибка. Примеры, когда уплывает формат, пошаговые рассуждения, когда неверны многошаговые ответы, разделители, когда вставленный текст просачивается в инструкции.
Крупные разработчики моделей тоже публикуют руководства по промптингу для своих моделей, и их стоит прочитать: в каждом описано, на что лучше всего реагирует именно это семейство моделей.
Промпт-инженер: это профессия?
Некоторые компании нанимали людей на должность «промпт-инженер», особенно когда чат-модели только стали общедоступными. Чаще этот навык входит в другую работу. Разработчики пишут промпты для ИИ-функций, которые они создают, команды поддержки пишут их для ассистентов, отвечающих клиентам, а аналитики и авторы пользуются ими каждый день.
В командах, которые делают ИИ-продукты, работа стала шире. Выбор того, что попадает во вход модели (найденные документы, результаты инструментов, история переписки, память), важен не меньше, чем формулировка инструкции, и эту более широкую работу часто называют контекст-инжинирингом. Вторая половина: измерять, работает ли промпт на многих входах, это обычно называют оценкой (evaluation).
Что меняется с новыми моделями
Ранний промпт-инжиниринг держался на трюках: волшебные фразы, сложные персонажи, повтор одной инструкции несколько раз. Современные модели гораздо лучше следуют простым инструкциям, а рассуждающие модели и так прорабатывают задачу внутри перед ответом, поэтому просьба думать пошагово даёт меньше, чем раньше.
Не изменилось то, что никогда и не было трюком. Модель по-прежнему не может знать вашу аудиторию, ваши данные, ваши ограничения или то, как выглядит хороший результат, пока вы этого не скажете. Ясная постановка задачи: навык, который не устаревает, и именно ему посвящена большая часть страниц этого руководства.
Часто задаваемые вопросы
Что такое промпт-инжиниринг простыми словами?
Промпт-инжиниринг: это умение писать инструкции для ИИ-модели настолько точно, чтобы она давала нужный ответ, а потом проверять и дорабатывать их, пока она не начнёт делать это стабильно. Сюда входит, что вы сообщаете модели (задача, контекст, примеры), и как вы это располагаете (порядок, формат, разделители).
Можно ли изучить промпт-инжиниринг без программирования?
Да. Основные навыки: ясно ставить задачу, давать контекст, приводить примеры и задавать формат ответа. Всё это работает в обычном чат-приложении. Программирование пригодится, когда нужно запускать промпт много раз, проверять его на наборе входных данных или передавать результат в программу.
Сколько времени нужно, чтобы освоить промпт-инжиниринг?
На основы хватит одного дня: части хорошего промпта и несколько техник вроде few-shot примеров и структурированного вывода. Стабильные результаты на реальной задаче требуют больше времени, потому что они появляются, когда вы проверяете промпт на многих входных данных и исправляете случаи, где он ломается.
Промпт-инженер: это настоящая профессия?
Некоторые компании нанимали людей на должность «промпт-инженер», но чаще этот навык входит в другую работу: разработчиков ИИ-функций, авторов текстов, аналитиков, команд поддержки. В командах, которые делают ИИ-продукты, он пересекается с оценкой качества и с проектированием всего, что видит модель, это сейчас часто называют контекст-инжинирингом.
Нужен ли промпт-инжиниринг с новыми моделями?
Новым моделям нужно меньше трюков. Они лучше следуют простым инструкциям, а рассуждающие модели решают задачи по шагам без подсказки «думай пошагово». Полезным остаётся то, что никогда и не было трюком: сформулировать задачу, дать модели факты, которых она знать не может, и описать, как выглядит хороший ответ.