Все уроки · 44
Техники промптинга: Zero-shot, Few-shot, CoT, ReAct
Четыре основные техники промптинга, которыми пользуется каждый AI-инженер: zero-shot, few-shot, chain-of-thought и ReAct — с промптами, которые можно скопировать, и разбором того, когда какая помогает.
Четыре техники — одна идея
Любая техника промптинга отвечает на один и тот же вопрос: что должна увидеть модель, чтобы дать правильный ответ? Иногда ничего лишнего, иногда примеры, иногда время на размышление, а иногда инструменты.
Четыре техники нужны потому, что «работает» и «работает каждый раз» — разные вещи. Большая часть разочарований от промптинга — это одна из четырёх проблем под маской: неверный формат (лечится примерами), неверный ответ (лечится рассуждением), недостающая информация (лечится инструментами) или вообще никакой проблемы. В последнем случае просто спросите прямо и перестаньте усложнять.
В реальных проектах вы будете использовать все четыре, обычно вперемешку. Разберём их по порядку сложности.
Это краткая версия
Четыре основные техники — этого достаточно, чтобы выпускать рабочие функции. Ищете конкретный приём — Tree of Thoughts, самосогласованность (self-consistency), step-back, автоматическое проектирование промптов? Все они собраны в уроке Полный каталог техник промптинга. Сначала прочитайте этот урок; обращайтесь к каталогу, когда промпт «почти работает» и нужен инструмент поточнее.
Zero-shot: просто спросите
Zero-shot означает просить модель выполнить задачу вообще без примеров — «ноль примеров», отсюда и название. Вы полагаетесь на всё, чему она научилась при обучении. Распространённые задачи, которых в обучающих данных было много, — кратко пересказать, перевести, определить тональность, исправить грамматику — современные модели решают без проблем.
Определи тональность этого отзыва: «positive»,
«negative» или «neutral».
Отзыв: «Батарея держит вечно, но приложение — катастрофа.»
Ответь одним словом.Используйте zero-shot, когда задача простая и распространённая. Если нужен конкретный формат или у задачи есть необычные крайние случаи, берите приёмы посильнее.
Few-shot: покажите примеры
Few-shot-промптинг помещает несколько пар «вход — выход» прямо в промпт («несколько примеров» — обычно от двух до пяти). Модель повторяет увиденную закономерность. Это самый дешёвый способ управлять форматом и крайними случаями: никакого дообучения (fine-tuning — повторного обучения модели на ваших данных), никакого пайплайна обучающих данных — только текст. (Примеры — один из шести блоков в уроке Анатомия промпта: из чего он состоит; здесь мы превращаем этот блок в технику.)
Вот разница на практике. Одна и та же задача классификации, сначала без примеров:
Непоследовательно: сначала одна метка, затем фраза из четырёх слов. Модель гадает, какой стиль вам нужен. А теперь с двумя примерами:
Та же модель, та же задача — но теперь каждый ответ можно разобрать программой. Вот что даёт few-shot: единообразие.
Скопируйте этот пример и подставьте свои метки:
Размечай каждое обращение в поддержку ровно одной меткой
из списка: billing, bug, how_to, refund, other.
Отвечай только меткой, без объяснений.
Обращение: «Приложение вылетает, когда я загружаю фото.»
Метка: bug
Обращение: «Как сменить пароль?»
Метка: how_to
Обращение: «С меня дважды списали деньги, верните, пожалуйста, один платёж.»
Метка: refund
Обращение: «У вас есть тариф для команд из 20 человек?»
Метка:От двух деталей зависит успех: дайте модели закрытый список меток (иначе она
выдумает новые) и оставьте последнюю строку Метка: пустой, чтобы модель
продолжила шаблон, а не пересказывала его.
Chain-of-thought: дайте модели подумать
Для математики, логики, сравнений и многошаговых решений требование мгновенного ответа вредит качеству: модель вынуждена выбирать каждое слово, не успев «додумать» мысль до конца. Chain-of-thought (CoT, «цепочка рассуждений») просит модель рассуждать шаг за шагом перед ответом: она выписывает промежуточные шаги, и каждый шаг становится контекстом, облегчающим следующий.
Простейший вариант — одна строка:
В магазине блокноты продаются упаковками по 6 штук за 4 доллара
и по 10 штук за 6 долларов. Мне нужно 50 блокнотов.
Какая комбинация упаковок самая дешёвая и сколько она стоит?
Думай шаг за шагом: сначала посчитай, сколько нужно упаковок,
затем проверь, не окажется ли дешевле упаковка побольше,
затем дай окончательный ответ в последней строке в виде
«Ответ: ...».Два практических замечания:
- Рассуждение стоит токенов. Включайте CoT там, где задаче нужны шаги; для «перескажи этот абзац» оно лишнее.
- Если вы не хотите показывать пользователям рассуждение, попросите модель поместить окончательный ответ в структурированное поле (например, в JSON) и показывайте только его.
Современные рассуждающие модели многое из этого делают внутри себя, но для обычных моделей — и чтобы увидеть, почему ответ неверен, — явный промптинг «по шагам» остаётся нужным инструментом.
ReAct: рассуждать и действовать с инструментами
ReAct (Reason + Act, «рассуждай и действуй») — это CoT плюс возможность что-то делать. Модель думает, вызывает инструмент (функцию, которую она может попросить запустить ваш код: найти заказ, узнать цену, поискать в интернете), наблюдает результат и повторяет, пока не сможет ответить. Этот цикл лежит в основе большинства AI-агентов.
Трассировка (trace) — журнал одного такого цикла — выглядит так:
- Мысль: Мне нужен сегодняшний курс обмена, чтобы посчитать итог.
- Действие: вызвать инструмент
get_rateс параметрами EUR → USD. - Наблюдение: 1.09
- Мысль: Теперь можно посчитать: 250 EUR — это 272,50 USD.
- Ответ: Сумма заказа — 272,50 USD.
В ReAct промпт перестаёт быть одним сообщением и превращается в цикл: ответ модели становится вызовом инструмента, а результат инструмента — новым входом. Как строятся такие циклы, мы разберём в уроке Что такое AI-агенты, а сами вызовы инструментов подключим в уроке Инструменты и вызов функций.
Как выбрать
Начинайте с zero-shot. Если формат неверный или крайние случаи обрабатываются небрежно, добавьте few-shot-примеры; если рассуждение неверно — chain-of-thought; если задаче нужны данные из реального мира или действия, вам нужен ReAct.
Проверьте себя
Ваш классификатор всё время выдумывает новые метки вместо ваших пяти. Какая техника это исправит и как?
Задаче нужен сегодняшний курс обмена валют. Какая техника необходима?
Когда chain-of-thought — это трата денег впустую?
Одними промптами нельзя дать модели знания, которых у неё нет: ваши документы, ваши продукты, данные ваших пользователей. Это уже другая проблема, и дальше в этой дорожной карте мы решим её с помощью эмбеддингов (способа, которым модели превращают смысл в числа) и RAG.
А когда этих четырёх недостаточно, полный каталог техник продолжает с того места, где заканчивается этот урок.
Есть вопросы?
Присоединяйтесь к Telegram-каналу — с радостью обсудим техники и поделимся примерами.