Created by AIImproved by people
Riqli · living documents · updated continuously
Where AI knowledge meets human practice.
Share with friends

Введение
Аннотация. Промпт-инжиниринг превратился из вспомогательной техники в фундаментальную дисциплину, определяющую эффективность работы с большими языковыми моделями. Этот курс предлагает систематическое и структурированное погружение в мир создания промптов, от простых инструкций до сложных многошаговых стратегий. Основная проблема, которую решает курс, — это недетерминированность и нестабильность результатов работы LLM, которую можно преодолеть, овладев арсеналом техник и пониманием внутренних механизмов моделей. Курс предназначен для широкого круга специалистов, стремящихся не просто использовать нейросети, а управлять их поведением для получения предсказуемых и качественных результатов.
Цель курса. После прохождения курса вы сможете самостоятельно проектировать и применять передовые техники промптинга для решения широкого спектра задач — от классификации текста до сложного многошагового планирования — с максимальной эффективностью и минимальными затратами.
Результаты обучения.
- Знать: основные понятия и терминологию промпт-инжиниринга; архитектурные ограничения трансформеров и способы их преодоления; принципы работы техник Zero-shot, Few-shot, Chain-of-Thought (CoT), Tree of Thoughts (ToT), ReAct, Self-Consistency и Role Prompting; различия между системными и пользовательскими промптами.
- Уметь: применять техники in-context learning для решения практических задач; проектировать эффективные системные промпты для ограничения и управления поведением модели; использовать JSON mode и другие форматы для структурирования вывода; комбинировать различные техники для достижения синергетического эффекта.
- Владеть: навыками итеративной разработки и тестирования промптов; методологиями оценки качества промптов и их оптимизации; подходами к управлению контекстом в многошаговых диалогах и сложных задачах.
Для кого этот курс.
Курс создан для разработчиков, интегрирующих LLM в свои приложения, специалистов по данным, продакт-менеджеров, аналитиков и всех, кто хочет использовать AI для автоматизации рабочих процессов, создания контента или исследований. Он будет полезен как новичкам, стремящимся освоить востребованную профессию, так и опытным инженерам, желающим систематизировать знания и узнать о новейших техниках, таких как «супервайз» CoT и методы управления контекстом.
Этот курс не предназначен для пользователей, которые ищут простые «волшебные» промпты без понимания принципов их работы, или для тех, кто не знаком с основами работы с вычислительными системами. Программа требует базового понимания логики построения запросов и готовности к экспериментам и анализу результатов.
Модуль 1. Основы и базовая терминология промпт-инжиниринга
Определение и фундаментальные понятия. Промпт-инжиниринг — это дисциплина, занимающаяся разработкой, оптимизацией и тонкой настройкой инструкций (промптов) для больших языковых моделей (LLM) с целью получения желаемого результата. Промпты служат основным инструментом взаимодействия с LLM, позволяя направлять их поведение и управлять качеством генерируемого контента. В основе дисциплины лежит понимание того, что промпт — это не просто вопрос, а инструкция, определяющая правила, процессы и формат вывода. Инжиниринг в данном контексте подразумевает системный и итеративный подход к созданию промптов, аналогичный разработке программного обеспечения . Эффективный промпт должен быть четким, конкретным и содержать всю необходимую информацию для выполнения задачи, минимизируя двусмысленность.
Архитектурные ограничения трансформеров и необходимость промптинга. Современные LLM, основанные на архитектуре Transformer, имеют фундаментальное ограничение: фиксированную глубину вычислений. Это означает, что модель не может бесконечно «думать» над задачей внутри своих слоев, а выполняет ограниченное количество последовательных шагов. Это теоретически ограничивает класс задач, которые модель может решать «из коробки», сводя их к задачам уровня сложности TC0 . Промпт-инжиниринг, в частности техника Chain-of-Thought, позволяет обойти это ограничение, «вынося» процесс рассуждения во внешнее текстовое пространство. Модель записывает свои промежуточные шаги, что позволяет ей выполнять вычисления, которые она не может провести внутри себя. Таким образом, промптинг служит своего рода «костылем», расширяющим вычислительные возможности модели .
Ключевые термины: токены, контекстное окно, температура. Понимание базовых параметров работы LLM критически важно для эффективного промптинга. Токены — это минимальные единицы текста, которые модель обрабатывает (это могут быть слова, части слов или символы). Стоимость запроса и время генерации прямо пропорциональны количеству токенов. Контекстное окно — это максимальное количество токенов, которое модель может «помнить» и обрабатывать в рамках одного запроса, включая сам промпт и генерируемый ответ. Эффективное управление контекстным окном — ключ к решению сложных задач, особенно тех, что требуют анализа больших документов. Температура — это гиперпараметр, контролирующий степень случайности и креативности ответа. Значения близкие к 0 делают ответ детерминированным и предсказуемым, а высокие — более случайным и «творческим». Выбор температуры напрямую влияет на успех таких техник, как Self-Consistency, где требуется разнообразие в сгенерированных путях .
Модуль 2. Базовые техники промптинга
Zero-shot (нулевой выстрел). Это самый простой и распространенный метод, при котором модель получает инструкцию без каких-либо примеров. Эффективность Zero-shot промпта полностью зависит от предварительного обучения модели: чем лучше модель понимает задачу «из коробки», тем успешнее будет результат. Это хорошая отправная точка для любой задачи. Пример: «Классифицируй это заявление как позитивное или негативное: "Согласно моему предыдущему письму"» . Zero-shot экономичен, так как генерирует меньше токенов, но может быть недостаточным для сложных или специфических задач. Он идеально подходит для работы с хорошо обученными моделями (например, инструктивно-настроенными) и для создания базового бенчмарка производительности . Если результаты неудовлетворительны, следует переходить к методам с примерами.
Few-shot и One-shot (мало и один выстрел). Эти техники предлагают модели один (One-shot) или несколько (Few-shot) примеров правильного выполнения задачи в самом промпте. Это реализация in-context learning, когда модель учится на лету на предоставленных примерах. Качество и релевантность примеров имеют решающее значение: чем более похожи примеры на реальную задачу, тем лучше результат. Высокоэффективная стратегия — Retrieval-Augmented Few-Shot Prompting, когда примеры извлекаются из базы данных на основе семантического сходства с запросом . Few-shot позволяет модели адаптироваться к специфике задачи без переобучения, но требует больше токенов и, соответственно, ресурсов. Исследования показывают, что использование 20 релевантных примеров может значительно повысить точность в сложных задачах, таких как обнаружение уязвимостей в коде .
Role Prompting (ролевой промптинг). Эта техника заключается в том, чтобы явно назначить модели определенную роль, личность или экспертный статус для выполнения задачи . Например, инструкция может начинаться со слов: «Вы — опытный специалист по кибербезопасности...» или «Ты — терпеливый учитель математики...». Это задает не только стиль и тон ответа, но и фокусирует внимание модели на соответствующем наборе знаний и паттернов поведения. Role Prompting широко используется в чат-ботах, где роль «полезного ассистента» является стандартной. Однако, исследования показывают неоднозначность этого метода в плане повышения фактической точности: в некоторых случаях он может улучшить результат, а в других — ухудшить или даже «сломать» ответ . Рекомендуется использовать нейтральные роли («коллега», «ментор») и применять двухэтапный подход: сначала дать инструкцию о роли, а затем — основной запрос . Ролевые промпты также используются для создания многопользовательских симуляций (Multi-agent systems), где каждый агент играет свою роль.
Модуль 3. Передовые техники рассуждения
Chain-of-Thought (CoT, цепочка рассуждений). Это фундаментальная техника, которая предлагает модели «думать шаг за шагом», записывая промежуточные рассуждения. Обычно это достигается добавлением фразы «Let's think step by step» в промпт. Теоретически, CoT позволяет обойти ограничения архитектуры Transformer, делая модель «Turing-полной» при идеальных условиях . Несмотря на свою эффективность, у стандартного CoT есть недостаток: модель сама генерирует шаблон рассуждения («алгоритм»), который может быть неоптимальным для данной задачи. Например, задача, требующая DFS (поиска в глубину), может решаться с помощью шаблона BFS (поиска в ширину), что приведет к ошибкам или высокой стоимости . Это называется «одним промптом для всех» и является основным ограничением CoT.
Supervised Chain-of-Thought (контролируемый CoT). Для преодоления ограничений «неконтролируемого» CoT была предложена техника «супервайз» (с учителем). Вместо того чтобы полагаться на модель в выборе шаблона рассуждения, разработчик предоставляет конкретные, релевантные задаче примеры рассуждений в промпте . Это направляет модель в промпт-пространстве, помогая ей выбрать правильный алгоритм для решения задачи. Например, для задачи планирования маршрута промпт может содержать пример пошагового рассуждения, использующего DFS. Supervised CoT требует больше усилий при проектировании промпта, но значительно повышает точность, гарантируя, что модель использует правильную методологию для поиска решения в пространстве ответов . Это ключевое отличие от таких подходов, как Tree of Thoughts, которые улучшают поиск в пространстве ответов, но не затрагивают промпт-пространство.
Tree of Thoughts (ToT, дерево мыслей). Это обобщение Chain-of-Thought, где процесс рассуждения организуется не как линейная цепочка, а как дерево. Каждый узел дерева представляет собой промежуточную «мысль» — законченный смысловой блок (например, уравнение в математической задаче или абзац плана) . Модель генерирует несколько возможных вариантов продолжения на каждом шаге (ветвление), а затем оценивает их с помощью самой же модели. Для навигации по этому дереву используются классические алгоритмы поиска: BFS (поиск в ширину) и DFS (поиск в глубину). ToT позволяет модели исследовать альтернативные пути рассуждения, возвращаться назад при обнаружении тупика и делать глобальное планирование . Эксперименты показывают драматическое улучшение результатов: например, в задаче «Game of 24» успешность решения выросла с 4% (CoT) до 74% (ToT) на GPT-4 .
ReAct (Reasoning and Acting). Эта техника объединяет рассуждение (Reasoning) и действие (Acting). Модель не просто генерирует текст, но и выполняет действия во внешней среде (например, вызывает API, делает запросы к базам данных, использует инструменты) . ReAct реализует цикл «рассуждение-действие»: модель анализирует задачу, определяет, какое действие нужно выполнить, выполняет его, получает результат, анализирует его и повторяет процесс до завершения задачи. Это позволяет решать комплексные задачи, разбивая их на подзадачи. Такой подход широко используется в AI-агентах для автоматизации сложных рабочих процессов. Важно отметить, что классический ReAct Agent не имеет долгосрочной памяти, что ограничивает его применение в многозадачных диалогах, но делает его идеальным для обработки одного сложного запроса .
Self-Consistency (самосогласованность). Эта техника направлена на повышение надежности результатов в задачах, требующих многошагового рассуждения. Вместо того чтобы полагаться на один «жадный» путь рассуждения, модель генерирует множество различных цепочек рассуждений (CoT) для одного и того же запроса (например, 20 или 40 раз). Это достигается путем установки высокой температуры, чтобы вносить разнообразие в генерацию. Затем из всех сгенерированных ответов выделяются финальные результаты (например, числовые значения), и путем простого голосования выбирается наиболее частый ответ . Этот метод, известный как «ансамблирование», значительно повышает точность. Например, на бенчмарке GSM8K точность модели PaLM-540B выросла с 56.6% (CoT) до 74.4% (Self-Consistency) . Однако у метода есть недостатки: высокие вычислительные затраты (многократная генерация) и ограниченная применимость для задач с открытым ответом. Для таких задач разработан Universal Self-Consistency, где для голосования используется сама LLM как «судья» .
Модуль 4. Управление контекстом и системные промпты
Системные и пользовательские промпты: ключевые различия. Понимание разницы между этими типами промптов критически важно для проектирования надежных AI-приложений. Системный промпт (System prompt) определяет поведение модели, ее роль, тон, ограничения и формат ответа на уровне всей сессии. Это, по сути, «инструкция по эксплуатации», которую разработчик передает модели перед началом взаимодействия и которая обычно скрыта от конечного пользователя . Пользовательский промпт (User prompt) — это конкретный запрос от пользователя, на который модель должна ответить. Он краткий и сфокусированный на конкретной задаче . Например, системный промпт может гласить: «Ты — ассистент, который всегда отвечает в формате JSON. Ты помогаешь с поддержкой клиентов», а пользовательский промпт: «У меня проблема с оплатой. Что делать?». Системный промпт обеспечивает стабильность и безопасность, а пользовательский — гибкость и конкретику запроса.
Context Engineering (инжиниринг контекста). Это современная и комплексная дисциплина, выходящая за рамки простого написания промптов. Context Engineering — это практика проектирования динамических систем, которые наполняют контекстное окно модели релевантной информацией, памятью, инструментами и ограничениями, необходимыми для выполнения конкретной задачи . Это включает в себя не только инструкции, но и извлечение документов через RAG, управление историей диалога, вызов внешних инструментов и контроль над токен-бюджетом. В отличие от промпт-инжиниринга, который фокусируется на формулировке инструкций, Context Engineering охватывает весь поток информации, который попадает в модель. Этот подход является определяющим для создания надежных AI-агентов, способных работать в сложных производственных сценариях. Как отметил Андрей Карпаты, это «заполнение контекстного окна правильной информацией для следующего шага» .
Context Management (управление контекстом). Это инфраструктурный уровень, который обеспечивает масштабирование Context Engineering на уровне организации. В то время как инжиниринг контекста решает вопрос «что положить в это контекстное окно?», управление контекстом отвечает на вопрос «как все команды в организации могут получить доступ к надежному, проверенному и управляемому контексту для своих агентов?» . Отсутствие управления контекстом приводит к тому, что каждый агент переоткрывает информацию по-своему, что порождает несогласованность и дублирование усилий. Context Management предполагает создание единой «графовой» платформы, которая объединяет техническую и бизнес-метаданные, документацию и инциденты, и предоставляет к ним доступ через стандартизированные протоколы (например, MCP Server). Это гарантирует, что все агенты в компании используют один и тот же источник правды, что критично для масштабирования AI .
Модуль 5. Практические аспекты и управление выводом
Форматирование вывода и JSON mode. Для интеграции LLM в бизнес-приложения критически важно получать структурированный вывод, а не просто текст. JSON mode — это режим, доступный во многих современных моделях (например, в GPT-4), который гарантирует, что ответ модели будет представлен в формате JSON. Это позволяет легко парсить результаты и использовать их в программном коде. Для активации этого режима необходимо явно указать в промпте требование вернуть результат в виде JSON и, при необходимости, описать схему объекта. Пример: «Верни ответ в формате JSON с полями "имя" и "возраст"». Некоторые платформы, такие как Scheer PAS, используют данный подход для автоматической обработки ответов AI-агентов и передачи их в последующие системы . Правильное использование JSON mode — обязательный навык для инженера, работающего с LLM.
Пошаговый процесс разработки промпта. Разработка эффективного промпта — это итеративный процесс, а не разовое действие. Рекомендуется следующий подход: 1) Определить задачу — четко сформулировать, что должен сделать AI. 2) Создать базовый промпт — начать с простой инструкции (Zero-shot). 3) Протестировать и оценить — запустить промпт и проанализировать результат. 4) Итерировать — если результат неудовлетворительный, добавить примеры (Few-shot), уточнить инструкцию, изменить формат или применить одну из передовых техник (CoT, Role Prompting). 5) Оптимизировать — для повышения стабильности можно использовать Self-Consistency. Этот цикл требует времени и внимания к деталям. Как правило, системный промпт разрабатывается в несколько итераций и тщательно тестируется перед финальным внедрением .
Советы, анти-паттерны и соображения безопасности. В процессе работы с промптами важно помнить о распространенных ошибках. Анти-паттерн №1: Слишком длинные и расплывчатые промпты, которые размывают фокус модели. Решение: оптимизировать токен-бюджет, оставляя только высокоинформативные сигналы . Анти-паттерн №2: Злоупотребление Role Prompting, которое может активировать стереотипы или ухудшить точность . Решение: использовать эту технику с осторожностью и предварительным тестированием. Анти-паттерн №3: Игнорирование безопасности. Злоумышленники могут использовать техники джейлбрейка (Jailbreaking) для обхода системных ограничений, часто через сложные ролевые игры . Решение: тщательно проектировать системный промпт для защиты от инъекций и валидировать ввод пользователя. Важно помнить, что промпт-инжиниринг — это не только создание эффективных запросов, но и обеспечение надежности и безопасности AI-систем.