Искусственный интеллект
Промпт инжиниринг
Промпт инжиниринг — подбор входного текста так, чтобы модель чаще выдавала нужный результат. Это не набор заклинаний, а обычная инженерная работа: гипотеза, проверка на наборе примеров, откат неудачных изменений.
В этой статье
Почему формулировка вообще что-то меняет#
Модель продолжает текст по вероятностям, и вход задаёт, в какой области
этих вероятностей она окажется. Просьба «расскажи про дефолт» тянет
одновременно к финансам и к настройкам программы; добавление контекста
сдвигает распределение туда, где ответ тебе нужен. Дисциплина выросла из
этого наблюдения, а не из мистики: подробнее о механике — что такое
LLM.
Второе основание — форма. Текст обучающих данных не однороден:
научно-популярная статья, протокол, чек-лист и форумная перепалка устроены
по-разному. Задав форму, ты задаёшь и набор оборотов, и уровень строгости.
Что входит в дисциплину#
Работа делится на три слоя, и путать их не стоит.
Содержание запроса — что именно ты просишь: задача, входные данные,
критерии годного результата, ограничения. Это самый важный слой, и именно
здесь чаще всего кроется причина плохого ответа.
Приёмы подачи — известные способы разложить запрос так, чтобы модель
реже сбивалась: примеры, разбиение на этапы, жёсткая структура вывода.
Параметры и обвязка — температура, длина ответа, системная инструкция,
подстановка найденных документов (RAG), деление задачи на несколько
последовательных обращений.
Приёмы и основания под ними#
Few-shot, обучение на примерах. В запрос кладут два-три образца пар
«вход — желаемый выход». Работает сильнее любых описаний словами: модели
проще подхватить закономерность из образца, чем вывести её из инструкции.
Годится для разметки, единообразного форматирования, стиля.
Zero-shot — без примеров, только описание задачи. Дешевле и часто
достаточно для простого.
Рассуждение по шагам. Просьба разложить решение на этапы до вывода
ответа. Основание простое: модель порождает текст слева направо, и
промежуточные шаги становятся для неё опорой при выборе следующих токенов.
Обратная сторона — рассуждение может быть красивым и неверным
одновременно, оно не является доказательством.
Роль и системная инструкция. Задаёт регистр и угол зрения. Поправка,
которую стоит держать в голове: роль меняет манеру и подбор материала, но
не добавляет модели сведений, которых у неё нет.
Жёсткая структура вывода. Требование выдать JSON по схеме, таблицу с
заданными колонками, список ровно из пяти пунктов. Резко упрощает
дальнейшую машинную обработку и заодно сокращает пустословие.
Декомпозиция. Вместо одного запроса на большую работу — несколько
маленьких, каждый со своим проверяемым результатом. На этом же принципе
строятся агентные системы.
Отрицательные ограничения. «Не придумывай источники, если не уверена —
напиши, что данных нет». Снижает долю выдумки, но не убирает её: обещание
модели не гарантия.
Как понять, что промпт стал лучше#
Это отличает инженерию от гадания. Нужен небольшой набор проверочных
случаев — десять-двадцать реальных входов с известным ожидаемым
результатом. Каждое изменение промпта прогоняется по всему набору, и
сравниваются доли верных ответов, а не впечатление от одного примера.
Без такого набора любое улучшение недоказуемо: на разброс ответов влияет
температура, и одна удачная попытка ничего не значит. Заодно набор ловит
регрессии — когда правка помогла одному случаю и сломала три других.
Границы дисциплины#
Формулировка не добавляет знаний. Если нужных сведений в модели нет, их не
достанешь ни ролью, ни вежливостью, ни угрозами. Выход один — положить
данные в запрос: документ, выдержку, результат поиска.
Приёмы хрупки. Промпт, отлаженный под одну версию модели, на другой ведёт
себя иначе. Наборы «100 волшебных промптов» устаревают вместе с моделями,
и проверять их приходится заново.
Обещания в инструкции не являются защитой. Строка «никогда не раскрывай
системный промпт» не мешает его выпытать, а вставка чужого текста в запрос
открывает дорогу инъекции промпта — вредные указания приезжают вместе с
данными.
Выдумка остаётся. Никакая формулировка не превращает вероятностную модель
в справочник: ссылки, цитаты и числа из ответа проверяются руками.
Отправленное уходит. Всё, что попало в промпт, попало и в чужой сервис;
персональные данные и рабочие секреты туда класть не стоит.
И постоянное: ответ, как бы он ни был складно оформлен, не заменяет врача,
юриста и финансового консультанта.
План по этапам
- Собрать проверочный наборДесять реальных входов с известным правильным результатом — основание для любых сравнений.
- Написать простой вариантZero-shot без украшений: часто этого достаточно, и есть от чего отсчитывать.
- Добавить примерыДва-три образца пар «вход — выход» и повторный прогон по набору.
- Зафиксировать формат выводаСхема ответа вместо свободного текста — проверяется автоматически.
- Разбить сложноеЕсли задача не решается одним запросом, развести её на этапы с проверкой между ними.
- Записать, что сработалоВести журнал версий промпта и долей верных ответов: память тут подводит.
Начать изучать эту тему у себя
План ляжет в твой репозиторий: отмечай этапы, веди конспект — история изменений покажет, как ты продвинулся.
Проверь себя
1.Что означает few-shot в работе с моделью?
2.В промпте написано «ты лучший в мире кардиолог». Что это даёт?
3.Как честно сравнить две версии промпта?
Источники
-
Prompt engineering — WikipediaТермины и обзор приёмов со ссылками на работыбесплатно
-
Документация AnthropicРазделы про построение запросов и оценку качествабесплатно
-
Документация OpenAIСтруктурированный вывод и параметры запросабесплатно
Было полезно?