Промпт-инжиниринг
Материал из MachineLearning.
| | Claude Sonnet 4 |
|
Про́мпт-инжини́ринг (англ. prompt engineering) — дисциплина и практика составления текстовых инструкций (промптов), управляющих поведением больших языковых моделей (LLM) и других генеративных систем искусственного интеллекта с целью получения точных, релевантных и полезных ответов[1]. В отличие от классического программирования, где поведение задаётся кодом и обновлением параметров, промпт-инжиниринг действует на уровне входа: формулировка запроса, примеры, роль и ограничения включаются в контекстное окно модели и меняют распределение генерируемых токенов без изменения весов.
Наглядно: LLM — это чрезвычайно начитанный, но «безвольный» собеседник. Промпт — не магическая заклинательная формула, а спецификация задачи: что считать успехом, в каком формате отвечать, какие шаги допустимы и чего нельзя делать. Хороший промпт снижает неоднозначность; плохой — провоцирует галлюцинации, уход от темы или избыточную осторожность.
История
Понятие «промпт» восходит к режиму дополнения текста (text completion) в ранних языковых моделях. Уже GPT-2 (2019) чувствительно реагировала на формулировку начала; GPT-3 (2020) сделала few-shot learning массовым явлением: несколько демонстраций в контексте резко улучшали качество без градиентного обновления[1].
Ключевые вехи:
- 2020 — few-shot / in-context learning в GPT-3: демонстрации в промпте задают формат и семантику задачи;
- 2022 — chain-of-thought (CoT): явные промежуточные рассуждения улучшают решение арифметических и логических задач[1];
- 2022–2023 — InstructGPT и ChatGPT: модели, выровненные через RLHF, стали следовать инструкциям, из-за чего промпт-инжиниринг превратился из академического трюка в повседневную практику;
- 2023 — руководства DAIR.AI «Prompt Engineering Guide», распространение ReAct, Tree of Thoughts, RAG-пайплайнов;
- 2024–2026 — автоматическая оптимизация промптов (APE, DSPy), системные промпты корпоративных ассистентов, защита от prompt injection.
Исторически промпт-инжиниринг и дообучение (fine-tuning / RLHF) шли параллельно: первое дёшево и быстро, второе закрепляет поведение в весах. На практике их комбинируют.
Базовые техники
Zero-shot prompting
Задача формулируется без примеров. Модель опирается на знания предобучения и (если есть) выравнивание. Пример: «Переведи на французский: …». Zero-shot прост, но уязвим к неоднозначности формата и критериев качества.
Аналогия: вы просите специалиста решить задачу, не показав ни одного образца отчёта — он может ответить верно по сути, но «не так, как принято у вас».
Few-shot prompting
В промпт включают пар «вход → выход» (shots), задающих желаемый формат и стиль. Если
— целевой запрос, а
— демонстрации, промпт строится как конкатенация:
и модель максимизирует . Эмпирически важен не только что показано, но и порядок, разнообразие и близость примеров к запросу (retrieval of demonstrations).
Ловушка: плохо подобранные few-shot примеры могут ухудшить результат сильнее, чем zero-shot — модель копирует систематическую ошибку демонстраций.
Chain-of-Thought (CoT)
CoT побуждает модель генерировать промежуточные шаги рассуждения перед финальным ответом. Классический триггер — фраза «Давай думать шаг за шагом» (Let's think step by step) в zero-shot CoT; в few-shot CoT демонстрации сами содержат цепочки рассуждений.
Формально ответ можно мыслить как:
где — цепочка рассуждений. CoT особенно полезен на задачах, требующих многошаговой декомпозиции (математика, логика, планирование), но увеличивает расход токенов и может «убедительно» обосновывать неверный итог.
Self-consistency
Модель несколько раз генерирует цепочки рассуждений при температуре ; финальный ответ выбирается большинством голосов (majority voting) среди извлечённых ответов. Идея: разные траектории рассуждения сходятся к верному ответу чаще, чем к одному и тому же ошибочному.
Цена — -кратный инференс. Метод хорошо сочетается с CoT на закрытых задачах с однозначным ответом и хуже работает там, где «правильный» ответ субъективен.
Tree of Thoughts (ToT)
Расширение CoT: вместо одной линейной цепочки строится дерево кандидатных шагов. На каждом узле модель (или эвристика) оценивает перспективность ветки; далее применяют поиск (BFS/DFS, beam search)[1]. ToT ближе к осознанному планированию, чем «однопроходное» мышление, но дорог по compute и требует аккуратной оценки узлов.
ReAct
ReAct (Reasoning + Acting) чередует шаги «мысль → действие → наблюдение»[1]. Модель не только рассуждает, но и вызывает инструменты (поиск, калькулятор, API, код). Это основа многих агентных систем поверх трансформерных LLM.
Связь с механизмом внимания: инструменты расширяют «контекст» фактами извне, а attention внутри модели распределяет вес между инструкцией, историей и результатами действий.
Системные промпты и роли
Современные чат-модели обычно различают роли сообщений:
- system — политика, роль, стиль, запреты, формат (часто скрыт от конечного пользователя);
- user — запрос пользователя;
- assistant — ответ модели;
- иногда tool / function — результат вызова инструмента.
Системный промпт задаёт «конституцию» сессии: кто модель, что она умеет, как обрабатывать неоднозначность, когда отказывать. На практике системный промпт — главный рычаг продуктовой безопасности и бренда ассистента, но он не абсолютен: возможны обходы (jailbreak) и конфликты с user-сообщением.
Хороший системный промпт конкретен (критерии, примеры допустимого/недопустимого), измерим (что считать успехом) и не перегружен противоречивыми правилами. Плохой — длинный список запретов без приоритетов, из-за чего модель либо игнорирует часть инструкций, либо впадает в over-refusal.
Продвинутые методы
Prompt chaining
Сложная задача разбивается на последовательность промптов: выход одного — вход следующего (извлечение сущностей → проверка → генерация ответа). Chaining упрощает отладку и снижает нагрузку на одно длинное рассуждение, но накапливает ошибки на стыках этапов.
Retrieval-Augmented Generation (RAG)
RAG динамически подмешивает в промпт фрагменты документов, найденные по запросу. Типичный пайплайн: запрос → эмбеддинг → поиск ближайших чанков → сборка контекста → генерация. RAG снижает галлюцинации по фактам из корпоративной базы и даёт актуальность без переобучения модели[1].
Промпт-инжиниринг в RAG критичен на этапе сборки: как маркировать источники, что делать при пустом retrieval, как запретить выдумывать факты вне контекста. Ошибка retrieval нельзя «заговорить» красивым промптом — нужна диагностика индекса и метрик retrieval/generation по отдельности.
Автоматический промпт-инжиниринг (APE) и DSPy
APE (Automatic Prompt Engineer) использует саму LLM для предложения и отбора кандидатных инструкций по метрике на валидации[1]. Формально ищут
где — модель с промптом
,
— пространство кандидатов.
DSPy предлагает декларативный подход: программа описывает модули (retrieve, reason, answer), а оптимизатор подбирает промпты/демонстрации под метрику. Это сдвиг от «ручного искусства формулировок» к инженерии с тестами и регрессиями.
Soft prompting и prefix-tuning
Вместо дискретного текста оптимизируют непрерывные префиксы в пространстве встраиваний (prompt tuning / prefix-tuning). Это мост между промпт-инжинирингом и параметрической адаптацией: «промпт» становится обучаемым тензором.
Prompt injection и защита
Prompt injection — атака, при которой недоверенный ввод (письмо, веб-страница, документ в RAG) пытается переопределить системные инструкции («игнорируй предыдущие правила…»). Различают прямую инъекцию (в user-сообщении) и косвенную (в retrieved-контенте).
Защиты: разделение доверенного/недоверенного контекста, явная разметка источников, фильтрация, отдельная политика для tool-calling, минимизация полномочий агента. Полной гарантии нет: это открытая область безопасности LLM.
Режимы отказа и когда промпт бесполезен
Промпт-инжиниринг не заменяет недостающие знания, инструменты и выравнивание. Типичные случаи, когда «лучший промпт» почти не помогает:
- факт отсутствует в параметрах и в retrieved-контексте — модель будет галлюцинировать или отказываться;
- нужна гарантированная структура/схема — надёжнее constrained decoding / JSON-schema / грамматика, а не «пожалуйста, верни JSON»;
- задача требует свежих данных или точных вычислений — нужны инструменты (ReAct), а не более витиеватая инструкция;
- конфликт целей (полезность vs безопасность) заложен в RLHF/политике — промпт лишь частично смягчает поведение;
- длинный шумный контекст: attention «размазывается», mid-context instructions теряются (lost in the middle).
Связь с alignment: промпт — поверхностное управление; RLHF и конституциональные методы задают базовые предпочтения. Если политика модели противоречит запросу, борьба промптом — признак необходимости продуктового решения (инструменты, дообучение, явные отказы), а не бесконечной полировки формулировок.
Смежные генеративные парадигмы (например, диффузионные модели изображений и текста) также управляются текстовыми условиями, но пространство «промпта» там иное: чаще речь о conditioning и guidance, чем о ролях system/user.
Метрики и оценка
Оценивают не «красоту промпта», а систему «промпт + модель + (опционально) retrieval/tools»:
- точность / Exact Match / F1 на закрытых бенчмарках (MMLU, GSM8K, HumanEval и доменные наборы);
- LLM-as-a-judge и человеческая оценка полезности/безопасности (с оговоркой о предвзятости судьи);
- консистентность (self-consistency rate, стабильность формата);
- стоимость: число входных/выходных токенов, число вызовов при ToT/self-consistency;
- латентность: TTFT (time to first token), end-to-end latency;
- для RAG — Recall@k / nDCG retrieval и groundedness генерации.
Практическое правило: фиксируйте eval-набор до творческой правки промпта, иначе легко подогнать формулировку под любимые примеры (prompt overfitting).
Связь с дообучением и выравниванием
| Подход | Что меняется | Когда уместен | |---|---|---| | Промпт-инжиниринг | только вход | быстрые итерации, разные задачи на одной модели | | Soft prompt / adapters (LoRA) | малая доля параметров | стабильный доменный стиль при ограниченном compute | | SFT / RLHF / DPO | веса политики | устойчивое следование инструкциям, безопасность, тон бренда |
Промпт и RLHF дополняют друг друга: RLHF учит модель хотеть быть полезной и безопасной; промпт уточняет конкретную задачу сессии. Векторные представления промптов и документов связывают дисциплину с нейросетевым встраиванием в RAG и soft prompting.
Инструменты и фреймворки
- LangChain / LlamaIndex — цепочки промптов, агенты, RAG;
- DSPy — оптимизация программ и промптов под метрики;
- PromptFlow (Azure), OpenAI Evals, самописные eval-харнессы;
- шаблонизаторы промптов (Jinja и аналоги) для версионирования и A/B-тестов.
Применения
- обработка естественного языка: суммаризация, перевод, классификация, извлечение информации;
- генерация и объяснение кода;
- корпоративные ассистенты на RAG;
- агенты с инструментами (ReAct);
- творческая генерация и редактура при жёстких бренд-гайдлайнах в system prompt;
- управление мультимодальными и генеративными пайплайнами, включая текстовые условия для диффузионных моделей.
См. также
- Большая языковая модель
- Трансформер (модель)
- Механизм внимания
- Нейросетевое встраивание
- Обучение с подкреплением из обратной связи человека (RLHF)
- Диффузионная модель
Примечания
Литература
- Brown T. B. et al. Language Models are Few-Shot Learners // Advances in Neural Information Processing Systems. — 2020. — Т. 33. — С. 1877–1901.
- Wei J. et al. Chain-of-Thought Prompting Elicits Reasoning in Large Language Models // Advances in Neural Information Processing Systems. — 2022. — Т. 35.
- Yao S. et al. ReAct: Synergizing Reasoning and Acting in Language Models // International Conference on Learning Representations. — 2023.
- Yao S. et al. Tree of Thoughts: Deliberate Problem Solving with Large Language Models // Advances in Neural Information Processing Systems. — 2023. — Т. 36.
- Zhou Y. et al. Large Language Models Are Human-Level Prompt Engineers // International Conference on Learning Representations. — 2023.
- Lewis P. et al. Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks // Advances in Neural Information Processing Systems. — 2020. — Т. 33.
- Sahoo P. et al. A Systematic Survey of Prompt Engineering in Large Language Models: Techniques and Applications // arXiv. — 2024.
- Liu P., Yuan W., Fu J., Jiang Z., Hayashi H., Neubig G. Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in NLP. — ACM Computing Surveys. — 2023 T. 55. — С. 1–35.

