Перевод с разбором · для Сони
Использование примеров (few-shot)
Адаптация для Сони · 2026-04-27
Что такое few-shot
Few-shot prompting (в дословном переводе — «промпт с
несколькими выстрелами/попытками», но в русском прижилось английское
«few-shot») — это техника, при которой ты в самом промпте показываешь
модели несколько готовых примеров «вход → правильный выход», прежде
чем дать ей реальный запрос.
Anthropic в оригинале формулирует так: «примеры — один из самых
надёжных способов управлять форматом, тоном и структурой ответа».
Это работает потому, что модель — это машина-продолжатель паттернов:
если в промпте уже есть три похожих диалога, в которых ассистент
отвечает спокойно и коротко — четвёртый ответ почти наверняка тоже
будет спокойным и коротким.
Когда few-shot реально помогает
Не каждое поведение нужно объяснять примерами. Few-shot оправдан,
когда:
-
Объяснить словами трудно, показать — легко.
«Спокойный тон без морализаторства» — расплывчатое; пример
«правильного» ответа на типичный запрос гораздо точнее.
-
Нужен жёсткий формат. Если бот должен отвечать
строго списком из 3–5 пунктов с глаголов — три примера такого
списка надёжнее любого описания.
-
Есть граничный случай. «Мне грустно» — это
не кризис; пример, где бот реагирует мягко, но не
переключается в кризисный режим, экономит часы дебага.
Когда few-shot не нужен: у тебя простой формат («ответь
одним предложением»), и пример занял бы больше места, чем
инструкция.
Три критерия хороших примеров
Из оригинала Anthropic, дословно применимо:
-
Релевантные — близко к реальным запросам в
твоём боте, а не «вообще диалоги».
-
Разнообразные — покрывают разные ситуации, а не
три варианта одной и той же. Иначе модель «выучит» что
ассистент отвечает только так, и на новом типе запроса
сломается.
-
Структурированные — каждый пример обёрнут в
явный маркер (тег, разделитель). Anthropic советует
<example> внутри
<examples>; в OpenAI можно так же или
использовать ### Пример N. Главное — чтобы модель
не путала пример с реальным запросом пользователя.
Эвристика: 3–5 примеров — обычно оптимально. Меньше
трёх — модель не видит паттерна. Больше пяти — экономия токенов и
риск переобучения на узкий стиль.
Пример для твоего бота
Допустим, ты хочешь, чтобы бот в ответ на «помоги составить план»
выдавал короткий список из 3–5 пунктов с глагола. Few-shot блок в
системном промпте:
<examples>
<example>
Пользователь: Помоги составить план дня. Сегодня надо сделать стирку,
ответить на письма, пройтись.
Ассистент:
- Запустить стирку (5 мин)
- Пока стирается — пройтись 20 минут
- После прогулки ответить на 3 самых важных письма (30 мин)
</example>
<example>
Пользователь: Не знаю с чего начать. Куча всего, голова кругом.
Ассистент: Это знакомо. Давайте начнём с малого. Назовите три задачи,
которые сегодня хотелось бы закрыть. Дальше расставим порядок вместе.
</example>
<example>
Пользователь: Мне грустно сегодня.
Ассистент: Это бывает. Хотите немного об этом поговорить, или вам сейчас
важнее тишина и пара простых дел?
</example>
</examples>
Что здесь сделано хорошо:
-
Три разные ситуации — конкретный план, размытый
запрос, эмоциональное сообщение. Не три варианта «помоги с
планом».
-
Разные форматы ответа — список / абзац с
встречным вопросом / абзац с выбором. Модель учится: «формат
зависит от ситуации, не один на все».
-
Третий пример — граничный. «Грустно» — не
кризис. Бот реагирует мягко, не переключается в экстренный
режим, не выдаёт телефоны помощи. Этот пример прямо учит модель
различать «плохое настроение» и «острый кризис».
-
Обёртка
<examples> — модель
понимает, что это иллюстрации, а не часть текущего диалога.
Чего не делать
-
Не делай примеры одинаковыми. Если все три
примера — про планирование с одинаковым форматом списка,
модель применит этот формат к запросу про эмоции. Это плохо.
-
Не клади примеры в начало или в конец промпта.
Это место для критичных правил (см.
структуру
системного промпта). Few-shot — в середине.
-
Не используй идеализированные примеры, которых не
бывает. Если в твоём логе пользователи пишут «мб
сегодня попробую делать дела», не показывай в примере
«Здравствуйте, я хотел бы попросить вас помочь мне составить
план дня». Иначе бот не справится с реальной речью.
-
Не клади ответ ассистента, который ты сама бы не
одобрила. Каждый пример — это эталон. Плохой пример
обучит плохо.
Как набрать примеры
Есть два надёжных источника:
-
Реальные диалоги из бота. Найди в БД 5–10
типичных запросов пользователей. По каждому напиши, как ты
хотела бы, чтобы бот ответил. Из них выбери 3–5 разнообразных.
-
Сгенерируй и отредактируй. Попроси Claude
Code или Claude Chat: «вот моя роль бота, дай 5 примеров
разнообразных диалогов user → assistant в этом стиле». Получишь
черновик. Дальше обязательно отредактируй: модель
сгенерирует «средний» стиль, а у тебя бот с конкретным голосом.
Памятка
-
Few-shot — показать паттерн примерами, а не
описывать словами.
-
Три критерия: релевантность, разнообразие, структура.
-
3–5 примеров — обычно оптимум.
-
Обязательно граничный пример (что
не делать), иначе модель путает похожие ситуации.
-
Few-shot блок — в середине системного промпта,
не в начале и не в конце (там критичное).
-
Источник примеров — реальные диалоги из
бота, а не идеализированные.