Глава 7. Примеры (few-shot): самый недооценённый приём
Есть приём, который почти всегда даёт больше, чем ещё один абзац инструкций: показать модели примеры того, что вы хотите получить. Или того, чего не хотите. Примеры работают сразу на два фронта: помогают получить правильный ответ по сути — и в правильном формате.
У этого приёма есть имя — few-shot промптинг. «Shot» здесь — это один пример в промпте. Отсюда весь словарь:
- zero-shot — вы просто ставите задачу, без единого примера;
- one-shot — задача плюс один пример;
- few-shot (или n-shot) — задача плюс несколько примеров.
Никакой магии за терминами нет — это просто счётчик примеров. Но разница в качестве ответа между zero-shot и few-shot бывает драматическая. Сейчас увидите.
Что означает «shot» в термине few-shot промптинг?
Бот для родителей
Представьте: вы делаете «бота-родителя», который отвечает на вопросы детей. Спрашиваем Claude напрямую, без примеров — zero-shot:
Дед Мороз принесёт мне подарки на Новый год?
Это зависит от традиций вашей семьи. Дед Мороз — фольклорный персонаж, и подарки под ёлку обычно кладут родители или близкие. Если в вашей семье принято отмечать Новый год с подарками, то, скорее всего, подарки будут.
Формально всё верно. Фактически — сердце ребёнка разбито. Ответ сухой, взрослый и по-канцелярски честный не там, где надо.
Можно долго описывать нужный тон словами: «отвечай тепло, поддерживай веру в чудо, обращайся ласково…» А можно поступить проще — показать один образцовый ответ и попросить продолжить в том же духе:
Продолжи диалог: напиши следующую реплику от лица «О».
В: А зубная фея существует?
О: Конечно, солнышко. Заверни зубик и положи сегодня под подушку. Может быть, утром тебя будет ждать сюрприз.
В: Дед Мороз принесёт мне подарки на Новый год?
О: Обязательно, малыш! Если ты вёл себя хорошо весь год — а я в этом уверена, — Дед Мороз точно заглянет к нам. Напиши ему письмо и не забудь оставить угощение у ёлки!
Заметьте: мы ни слова не сказали про тон. Один пример с зубной феей — и модель сама поняла жанр: тёплый взрослый разговаривает с ребёнком и бережёт волшебство. Пример передал то, что словами описывать пришлось бы абзацем — и всё равно менее точно.
Почему пример с зубной феей сработал лучше, чем описание тона словами?
Формат через примеры
Второй суперсилой примеров пользуются, когда нужен строгий формат вывода. Задача: из текста о городке вытащить имена и профессии жителей и оформить их пронумерованным списком в тегах <individuals>.
Можно расписать пошаговую инструкцию по форматированию. А можно дать два текста с уже готовыми правильными ответами — и третий текст без ответа. Модель сама достроит закономерность:
Текст про деревню Силвермист-Холлоу (врач, архитектор, музыкант, шеф-повар...)
<individuals>
1. Доктор Лиам Патель [НЕЙРОХИРУРГ]
2. Оливия Чен [АРХИТЕКТОР]
3. Итан Ковач [МУЗЫКАНТ И КОМПОЗИТОР]
4. Изабелла Торрес [ШЕФ-ПОВАР]
</individuals>
Текст про город Риверсайд-Гроув (шеф, библиотекарь, художница, тренер...)
<individuals>
1. Оливер Гамильтон [ШЕФ-ПОВАР]
2. Элизабет Чен [БИБЛИОТЕКАРЬ]
3. Изабелла Торрес [ХУДОЖНИЦА]
4. Маркус Дженкинс [ТРЕНЕР]
</individuals>
Текст про городок Оук-Вэлли (фермер Лора Симмонс, учитель танцев
Кевин Альварес, волонтёр Рэйчел О'Коннор) — без ответа
И в реплику assistant кладём префилл <individuals> — тот самый приём «вложить слова в уста Claude» из главы 5, чтобы модель сразу начала с нужного тега. Ответ:
<individuals>
1. Лора Симмонс [ФЕРМЕР]
2. Кевин Альварес [УЧИТЕЛЬ ТАНЦЕВ]
3. Рэйчел О'Коннор [ВОЛОНТЁР]
</individuals>
Ни одной инструкции по формату — только два образца. Нумерация, квадратные скобки, капс в профессиях, теги — всё воспроизведено. Так же в продуктах задают формат JSON, таблиц, карточек: пара образцов надёжнее страницы правил.
Нужен ответ строго в виде «Имя [ПРОФЕССИЯ]» с нумерацией. Что сработает надёжнее всего?
Упражнение
Упражнение 7.1 — Классификация писем через примеры
Помните задачу про сортировку писем поддержки? Вернёмся к ней, но теперь решим через few-shot. Категории те же:
- (A) Вопрос перед покупкой
- (B) Сломанный или бракованный товар
- (C) Вопрос по оплате
- (D) Другое (с пояснением)
Задача: составить промпт с примерами «письмо → категория» так, чтобы последним символом ответа была буква категории — и ничего после неё. Проверьте на письме: «Я ЧЕТЫРЕ МЕСЯЦА ЖДУ, КОГДА С МЕНЯ ПЕРЕСТАНУТ СПИСЫВАТЬ ДЕНЬГИ ПОСЛЕ ОТМЕНЫ ПОДПИСКИ!! ЧТО ПРОИСХОДИТ???»
Решение упражненияСначала попробуйте сами — потом сверьтесь
Отнеси письмо к категории: (A) вопрос перед покупкой, (B) брак или поломка, (C) оплата, (D) другое. Отвечай в том же формате, что и в примерах — последним символом должна быть буква категории.
В: Как настроить громкость в блендере Mixmaster 4000?
О: Пользователь спрашивает про функции товара до покупки. Категория: A
В: Мой миксер странно шумит и пахнет палёным пластиком. Нужна замена.
О: Пользователь сообщает о неисправности купленного товара. Категория: B
В: Я ЧЕТЫРЕ МЕСЯЦА ЖДУ, КОГДА С МЕНЯ ПЕРЕСТАНУТ СПИСЫВАТЬ ДЕНЬГИ ПОСЛЕ ОТМЕНЫ ПОДПИСКИ!! ЧТО ПРОИСХОДИТ???
О: Пользователь жалуется на списания после отмены подписки. Категория: C
Обратите внимание на трюк: в примерах ответ построен так, что буква стоит в самом конце («…Категория: A»). Модель копирует этот шаблон — и последний символ ответа гарантированно оказывается буквой, которую легко вытащить программой. Формат заложен в образцы, а не описан правилами.
Что запомнить
- Few-shot = примеры в промпте. Zero-shot — ноль примеров, one-shot — один, few-shot — несколько.
- Примеры работают сразу на суть и на форму: задают тон (бот для родителей) и формат (список в тегах).
- Нестандартный формат надёжнее показать 2–3 образцами, чем описывать словами.
- Комбо «примеры + префилл ответа» из главы 5 даёт почти железный контроль над выводом.
- Если модель отвечает «не так» — прежде чем писать ещё абзац инструкций, добавьте пример.
Дочитали и сделали упражнение? Зафиксируйте прогресс — отметка сохранится в вашем браузере.