Few-shot промптинг: как обучить LLM на примерах в запросе
Практика3 минРедакция Innovialabs
Коротко
Few-shot промптинг — это несколько готовых пар «вход → выход» прямо в запросе: модель повторяет показанный формат и логику без дообучения. Работают 2–5 разнообразных, чётко оформленных примеров, которые покрывают типичные и пограничные случаи.
Что такое few-shot и когда он нужен
Few-shot промптинг — это когда вы не только описываете задачу словами, но и показываете модели несколько примеров: вот входные данные, вот правильный ответ. Модель не переобучается — она просто подстраивается под образец внутри одного запроса.
Это полезно, когда:
- нужен строгий формат ответа (метки, короткие фразы, определённая структура);
- задачу трудно объяснить словами, но легко показать — например, тон ответа клиенту;
- модель без примеров «плавает»: то отвечает абзацем, то списком.
Если задача простая и инструкция однозначна, примеры не нужны — это zero-shot. Начинайте с него и добавляйте примеры, только когда видите нестабильность.
Как подбирать примеры
Качество примеров важнее их количества.
- Разнообразие. Покрывайте разные варианты входа: короткие и длинные, простые и сложные, разные категории ответа. Если все примеры про один класс, модель будет склоняться к нему.
- Пограничные случаи. Добавьте хотя бы один пример, где правильный ответ неочевиден: смешанный отзыв, пустое поле, сообщение не по теме.
- Реалистичность. Берите примеры, похожие на настоящие данные, а не идеальные учебные фразы.
- Безупречность. Ошибка в примере почти наверняка повторится в ответах. Проверяйте каждый пример вручную.
Как оформлять
Модели лучше всего понимают примеры с явными разделителями. Используйте одинаковую структуру для всех примеров и для реального запроса.
Определи тональность отзыва: positive, negative или mixed.
<example>
Отзыв: Доставили быстро, но коробка была мятая.
Ответ: mixed
</example>
<example>
Отзыв: Всё отлично, закажу ещё.
Ответ: positive
</example>
Отзыв: {текст}
Ответ:
Правила оформления:
- одинаковые метки («Отзыв:», «Ответ:») во всех примерах;
- примеры отделены от инструкции и от реального входа;
- инструкция всё равно нужна — примеры её дополняют, а не заменяют.
Сколько примеров и в каком порядке
Универсального числа нет. На практике часто хватает 2–5 примеров. Больше — дольше и дороже запрос, а прирост качества может быть незаметен. Проверяйте на своих данных: добавили пример — сравнили результаты.
Порядок имеет значение. Модели могут сильнее опираться на последние примеры. Поэтому:
- перемешивайте классы, не ставьте подряд три примера одного типа;
- не заканчивайте всегда одним и тем же ответом;
- если примеров много, держите баланс между категориями.
Типичные ошибки
| Ошибка | Что происходит | Как исправить |
|---|---|---|
| Примеры слишком похожи | Модель копирует их буквально | Разнообразьте длину, тему, формулировки |
| Перекос по классам | Ответы смещаются к частому классу | Сбалансируйте примеры |
| Конкретные детали в примерах | Модель вставляет их в чужие ответы | Используйте нейтральные данные |
| Нет инструкции | Модель угадывает цель по примерам | Добавьте короткое описание задачи |
| Разный формат примеров | Нестабильный формат ответов | Единый шаблон для всех |
Отдельная проблема — буквальное копирование. Если во всех примерах ответ начинается одной фразой, модель будет начинать так же. Если нужна вариативность, прямо скажите: «Примеры показывают формат, а не содержание — не повторяйте их формулировки».
Как проверить, что примеры работают
- Соберите небольшой набор тестовых входов с правильными ответами — отдельно от примеров в промпте.
- Прогоните промпт без примеров, затем с ними.
- Сравните точность и стабильность формата.
- Меняйте по одному примеру за раз, чтобы понимать, что именно помогло.
Если примеров становится много, а качество не растёт, подумайте о динамическом подборе: для каждого запроса выбирать наиболее похожие примеры из базы (например, через векторный поиск).