Промпт-инжиниринг
Промпт-инжиниринг
Промпт-инжиниринг — это практика составления текстовых инструкций для языковых моделей (LLM) таким образом, чтобы получать от них максимально точные, полезные и воспроизводимые результаты. Проще говоря: умение правильно ставить задачу нейросети.
История
Языковые модели существовали и до нейросетей — статистические n-граммные модели в 1990-х, нейросетевые языковые модели в 2010-х. Но понятие «промпт» как осознанного инструмента управления поведением модели появилось с GPT-2 от OpenAI в феврале 2019 года. Исследователи заметили: одна и та же модель даёт радикально разные ответы в зависимости от того, как сформулирован входной текст.
Настоящий взрыв интереса произошёл в 2020 году, когда OpenAI выпустила GPT-3 (175 миллиардов параметров). В статье «Language Models are Few-Shot Learners» (Браун и др., 2020) авторы показали: если в запрос вставить 2–3 примера желаемого поведения (few-shot prompting), модель «понимает» задачу без всякого обучения. Это был поворотный момент — стало ясно, что формат запроса влияет на качество ответа не меньше, чем архитектура модели.
В 2022 году команда Google Brain (Вэй и др.) опубликовала работу «Chain-of-Thought Prompting Elicits Reasoning in Large Language Models». Оказалось: если попросить модель рассуждать шаг за шагом, она резко лучше справляется с математическими и логическими задачами. Фраза «Let's think step by step» стала мемом в сообществе AI-инженеров.
Параллельно в 2022 году появился термин «prompt engineering» как профессиональное направление — первые вакансии с зарплатой от 100–300 тысяч долларов в год появились в американских компаниях. Anthropic, OpenAI, Google начали публиковать внутренние гайдлайны по составлению промтов.
К 2023–2024 годам сформировались устойчивые техники: ReAct (рассуждение + действие), Tree of Thoughts (дерево мыслей), Reflexion (самокоррекция), Prompt Chaining (цепочки промтов). Параллельно выяснилось: с выходом GPT-4 и Claude 3 многие «магические» трюки для слабых моделей стали не нужны — сильные модели понимают естественный язык достаточно хорошо.
Сегодня промпт-инжиниринг — зрелая инженерная дисциплина с собственными паттернами, анти-паттернами и даже фреймворками для автоматической оптимизации промтов (DSPy от Стэнфорда, 2022).
Что это такое
Когда ты пишешь в ChatGPT «напиши письмо клиенту», ты составляешь промт. Когда ты пишешь «Ты — опытный менеджер по продажам в компании, которая продаёт CRM-системы малому бизнесу. Напиши вежливое, но настойчивое письмо клиенту, который три недели назад запросил демо, но не ответил на два наших письма. Тон — дружелюбный, без давления. Длина — 3 абзаца» — ты занимаешься промпт-инжинирингом.
Разница между первым и вторым запросом — это разница между «попросить что-то» и «поставить техническое задание». Промпт-инжиниринг — это методология создания таких ТЗ.
Ключевые элементы хорошего промта:
- Роль — кем должна быть модель («ты — юрист», «ты — Python-разработчик»)
- Контекст — что было до, какая ситуация, какие ограничения
- Задача — что именно нужно сделать, какой формат вывода
- Примеры — образцы правильного ответа (few-shot)
- Ограничения — что нельзя делать, какой стиль, какую длину
Чем отличается от обычного запроса?
Обычный запрос рассчитан на то, что собеседник (человек или ИИ) «поймёт» намерение. Промт в инжиниринговом смысле — воспроизводимая инструкция. Хороший промт даёт одинаково хороший результат при многократных запусках, в разных сессиях, возможно — разными моделями.
Промпт-инжиниринг vs. файн-тюнинг (fine-tuning):
Файн-тюнинг (дообучение) — это изменение весов модели на специализированных данных. Дорого, требует тысячи примеров, зато результат «встроен» в модель навсегда. Промпт-инжиниринг — это управление поведением без изменения модели, через текст в контексте. Дёшево, быстро, гибко, но работает только в рамках одного запроса или серии запросов.
Аналогии из жизни
Аналогия 1: Поиск в Google
Когда ты ищешь «котлеты рецепт», ты получаешь тысячи результатов. Когда ты пишешь «котлеты из говяжьего фарша без яйца с хлебом на молоке сочные жареные на сковороде» — ты получаешь именно то, что нужно. Промт работает так же: более точная формулировка → более релевантный ответ.
Где ломается: Google ищет существующую информацию в индексе. LLM генерирует новую. Уточнение запроса в поиске сужает выборку, уточнение промта меняет саму генерацию. Эффект другой по природе.
Аналогия 2: Техническое задание для разработчика
Опытный менеджер знает: чем чётче ТЗ — тем меньше правок. «Сделай форму обратной связи» получишь одно, «Сделай форму с тремя полями: имя, телефон, вопрос; кнопка "Отправить"; после отправки — всплывающее сообщение "Мы перезвоним в течение 30 минут"; данные летят на адрес info@company.ru» — совсем другое.
Где ломается: разработчик может уточнить непонятное, задать вопрос, предложить альтернативу. LLM в режиме одного запроса «угадывает» намерение и выдаёт результат. Если промт неоднозначный — результат непредсказуем. Итеративный диалог частично решает это, но каждый новый запрос в диалоге стоит токенов.
Аналогия 3: Бриф для дизайнера
Агентство, получившее бриф «логотип для стоматологии», сделает что-то стандартное — зубы, зелёный цвет, скучно. Бриф «стоматология для обеспеченных клиентов 35–55 лет, премиум-сегмент; цвета — тёмно-синий и золото; без зубов на логотипе, акцент на профессионализм и спокойствие; референсы: [три примера]» — это уже совсем другой разговор.
Где ломается: дизайнер со временем накапливает понимание клиента, его вкусов, корпоративной культуры. LLM каждый раз начинает с нуля (если нет system prompt с историей). Промт должен всё это компенсировать явно.
Как это работает
LLM (большая языковая модель) — это, грубо говоря, очень умный движок предсказания следующего слова (токена). Модель обучена на огромных корпусах текста и «знает», что за фразой «Столица Франции —» обычно следует «Париж».
Когда ты пишешь промт, ты задаёшь начальный контекст. Модель «смотрит» на всё, что ты написал, и генерирует продолжение — то, что с наибольшей вероятностью следует за твоим текстом в рамках её обучения.
Вот почему промт важен:
Рассмотрим два запроса:
1. «Переведи текст»
2. «Ты — профессиональный переводчик с английского на русский.
Сохраняй деловой стиль. Не переводи имена собственные и
названия продуктов. Текст: [...]»
Первый запрос оставляет модели слишком много свободы: какой язык? Какой стиль? Переводить имена? Модель «заполняет» неопределённость своими предположениями, которые могут не совпадать с твоими.
Второй запрос явно задаёт роль, стиль и ограничения — модель активирует паттерны, связанные с профессиональным переводом.
Основные техники:
Zero-shot — просто сформулировать задачу без примеров:
Классифицируй текст как спам или не спам.
Текст: "Выиграй iPhone, нажми сюда"
Few-shot — дать 2–5 примеров:
Спам: "Кредит без проверок, звони сейчас"
Не спам: "Ваш заказ отправлен"
Спам: "Заработай 1000$ за день"
Классифицируй: "Поздравляем с днём рождения!"
Chain-of-Thought (CoT) — попросить рассуждать вслух:
Реши задачу шаг за шагом.
У Ани 5 яблок, она отдала треть Боре, потом купила ещё 2.
Сколько яблок у Ани?
Без «шаг за шагом» модель может ошибиться. С — значительно точнее.
Structured Output — задать формат ответа:
Ответь строго в JSON-формате:
{"name": "...", "age": ..., "status": "spam|legit"}
Role Prompting — задать роль и персонажа:
Ты — опытный кардиолог с 20-летней практикой.
Объясни пациенту 60 лет без медицинского образования,
что такое фибрилляция предсердий.
Почему роль работает
Когда ты указываешь роль — модель «выбирает» паттерны из обучения, связанные с этой ролью: словарь, стиль, уровень детализации. Это не магия — просто активация нужного «кластера» данных.
System Prompt — это специальный блок инструкций, который задаётся до разговора и задаёт постоянные правила поведения. В Claude Code, например, весь CLAUDE.md файл — это по сути расширенный system prompt.
Prompt Chaining — разбить сложную задачу на цепочку промтов:
1. Сначала попросить модель составить план
2. Потом — написать черновик
3. Потом — отредактировать черновик по критериям
Распространённые ошибки
Слишком длинный промт ≠ лучший результат. Если промт больше ~4000 токенов, модель начинает «терять» детали из начала. Ключевые инструкции лучше размещать в начале и в конце, не в середине.
Где встречается в обычной жизни
Голосовые ассистенты. «Окей, Гугл, поставь будильник на 7:30» — это промт. Но «Окей, Гугл, напомни мне через час, что надо позвонить маме» — это уже промт с контекстом и задержкой. Алиса, Siri, Google Assistant под капотом используют языковые модели, и каждая твоя фраза — это промт.
Чат-боты в поддержке. Когда ты пишешь в чат банка «где моя карта», а бот отвечает «По вашему запросу нашёл 3 варианта» — это prompt engineering в действии: бот натренирован на system prompt, который описывает, как отвечать на запросы клиентов.
Поиск в Яндекс.Документах или Notion AI. Кнопка «улучшить текст», «сделать короче», «перевести в bullet points» — каждая из них за кулисами отправляет твой текст с шаблонным промтом вида «Ты — редактор. Улучши следующий текст: [...]».
Рекомендательные системы. Когда Netflix подбирает тебе сериал, а Яндекс.Музыка — плейлист, там нет LLM, но логика похожа: запрос (твоя история просмотров + текущий контекст) → предсказание (что понравится). Промт-инжиниринг для LLM — это аналог feature engineering (разработки признаков) для классических ML-систем.
Автодополнение в Gmail. «Спасибо за ваше...» — Gmail предлагает «...письмо. Я рассмотрю его и отвечу до конца недели». Это языковая модель, которая видит первые слова как промт и предсказывает продолжение.
Где встречается в IT и бизнесе
Автоматизация бизнес-процессов. Классификация входящих обращений (спам / не спам, тема обращения), извлечение данных из документов (ИНН из договора, сумма из счёта), генерация ответов на типовые вопросы.
Code Generation. GitHub Copilot, Cursor, JetBrains AI — всё это системы, которые берут код и комментарий как промт и дополняют следующую строку или функцию.
Контент-маркетинг. Генерация SEO-статей, email-рассылок, описаний товаров — компании типа Jasper.ai или Copy.ai построили целый бизнес на шаблонах промтов для разных маркетинговых задач.
Аналитика и отчётность. Запрос к данным на естественном языке: «Покажи продажи за прошлый квартал по регионам в сравнении с предыдущим годом» — система переводит это в SQL-запрос. Text-to-SQL — отдельное направление промпт-инжиниринга.
Мультиагентные системы. Claude Code, Auto-GPT, LangGraph — системы, где несколько моделей работают в цепочке, и каждый «агент» получает свой промт с конкретной подзадачей. Оркестрация таких цепочек — это продвинутый промпт-инжиниринг.
Кто пользуется
Anthropic опубликовала подробный гайд по промпт-инжинирингу для Claude (docs.anthropic.com/en/docs/build-with-claude/prompt-engineering). Там описаны паттерны под конкретные задачи: классификация, суммаризация, ролевые игры, structured output.
OpenAI ведёт Prompt Engineering Guide на platform.openai.com — там детально разобраны best practices для GPT-4 и GPT-4o.
Google в своих продуктах (Gemini API, Vertex AI) даёт рекомендации по промтам для каждого сценария: генерация кода, анализ изображений, извлечение данных.
Масштаб применения огромный. По данным на 2024 год, ChatGPT используют более 100 миллионов пользователей еженедельно — и каждый из них, осознанно или нет, занимается промпт-инжинирингом каждый раз, когда формулирует запрос.
Стэнфорд публикует Crfm (Center for Research on Foundation Models) — там регулярно выходят академические работы по теме. DSPy (Declarative Self-improving Python) — фреймворк автоматической оптимизации промтов — набрал более 20 тысяч звёзд на GitHub к 2025 году.
Альтернативы и конкуренты
Fine-tuning (дообучение модели)
Плюсы: результат «встроен» в модель, не зависит от длины контекста, воспроизводим.
Минусы: дорого (тысячи долларов для больших моделей), требует тысячи качественных примеров, долго (часы-дни на обучение), при смене модели нужно обучать заново.
RAG (Retrieval-Augmented Generation)
Плюсы: модель получает актуальные данные из базы знаний, не «выдумывает» факты.
Минусы: нужна инфраструктура для хранения и поиска документов, сложнее в разработке.
Rule-based системы (классические алгоритмы)
Плюсы: детерминированы, не зависят от LLM, работают без интернета.
Минусы: негибкие, не справляются с нестандартными входами, дорого поддерживать.
Symbolic AI (логические системы)
Плюсы: объяснимы, воспроизводимы.
Минусы: требуют явного программирования знаний, не масштабируются на широкие домены.
Когда НЕ стоит использовать
Когда нужна детерминированность. Если результат должен быть один и тот же при одинаковом входе — LLM ненадёжна даже при temperature=0. Для критических финансовых расчётов, юридических формул, выдачи медицинских дозировок лучше использовать обычный код.
Когда данные конфиденциальны. Каждый запрос к внешнему API (OpenAI, Anthropic, Google) отправляет данные на серверы компании. Паспортные данные, медкарты, внутренняя финансовая отчётность — всё это может подпадать под соглашения о конфиденциальности или требования регуляторов. В таких случаях нужна либо локальная модель (Llama, Mistral на собственном сервере), либо корпоративный тариф с соответствующими гарантиями.
Когда задача хорошо решается классическим кодом. «Отформатируй дату из DD.MM.YYYY в ISO 8601» — не надо LLM. Одна строка Python. LLM оправдана там, где нужно понимание смысла, а не трансформация по правилу.
Практическая подсказка
Начни с простого: возьми три своих типичных запроса к ChatGPT или Claude из последней недели. Добавь к каждому роль, контекст и формат ответа. Сравни результаты. Почти всегда вторая версия заметно лучше.
Связанные понятия
- Токен — минимальная единица текста, с которой работает LLM (примерно 3/4 английского слова или 1–2 русских). Цена запроса к API считается в токенах.
- Контекстное окно (context window) — максимальный объём текста, который модель «видит» за один раз. У Claude 3.5 — до 200 тысяч токенов, у GPT-4 Turbo — до 128 тысяч. Весь промт + диалог + ответ должны помещаться в это окно.
- Temperature (температура) — параметр от 0 до 1 (или 2), контролирующий «случайность» генерации. 0 — максимально детерминированный ответ, 1+ — творческий и разнообразный.
- RAG (Retrieval-Augmented Generation) — подход, при котором к промту автоматически добавляются релевантные фрагменты из базы знаний, чтобы модель отвечала на основе актуальных данных.
- Fine-tuning — дообучение модели на специализированном датасете для улучшения качества в конкретной задаче.
- Агент (AI Agent) — система, где LLM не только генерирует текст, но и вызывает инструменты (поиск, код, API), принимает решения о следующем шаге и может работать итеративно.
- System prompt — специальный блок инструкций, который задаётся до разговора и определяет базовое поведение модели в течение всей сессии.
Литература и источники
- «Prompt Engineering Guide» (promptingguide.ai) — самый полный бесплатный ресурс на английском по техникам промтинга. Охватывает zero-shot, few-shot, CoT, ReAct и десятки других техник с примерами.
- Anthropic Prompt Engineering Documentation (docs.anthropic.com) — официальный гайд по промтингу для Claude. Особенно полезны разделы про XML-теги и structured output.
- «Chain-of-Thought Prompting Elicits Reasoning in Large Language Models» — статья Wei et al. (2022, Google Brain), пионерская работа по CoT. Найти в Google Scholar по названию.
- «Language Models are Few-Shot Learners» — статья Brown et al. (2020, OpenAI), описывает GPT-3 и концепцию few-shot prompting. Доступна на arxiv.org.
- DSPy: Compiling Declarative Language Model Calls (github.com/stanfordnlp/dspy) — фреймворк Стэнфорда для автоматической оптимизации промтов, если хочешь уйти от ручного написания.
- «The Prompt Report» (2024) — систематическое исследование 58 промт-техник от команды LearnPrompting. Найти по запросу «The Prompt Report 2024 arxiv».
Где встретилось у меня
Вчера я работал параллельно над тремя задачами, и промты были в каждой. Нутрициолог-бот получает структурированный промт с планом питания, историей дня и каталогом блюд — и должен выбрать только из допустимых вариантов. Автовалидатор лидов в CRM использует многоэтапный промт для скоринга: каждый этап — отдельная инструкция со своей логикой подсчёта баллов. При этом я сравнивал, как разные модели (DeepSeek v3.2, Gemini 2.5 Flash, Яндекс GPT) отрабатывают один и тот же промт — и каскадировал их: первая модель обрабатывает поток, вторая перепроверяет спорные случаи.
Краткое резюме
- Промпт-инжиниринг — это методология составления текстовых инструкций для LLM, которая даёт воспроизводимые, точные и полезные результаты.
- Ключевые элементы: роль, контекст, задача, примеры, ограничения, формат вывода.
- Основные техники: zero-shot, few-shot, chain-of-thought, structured output, prompt chaining.
- Не заменяет fine-tuning там, где нужна глубокая специализация, и не подходит для данных с высокими требованиями к конфиденциальности.
- Это навык, а не магия: один и тот же промт, улучшенный добавлением роли и примеров, даёт заметно лучший результат — это проверяется за 10 минут практики.