Zero-shot и few-shot: почему примеры работают

Иногда достаточно описать задачу словами (zero-shot), а иногда несколько примеров дают то, чего не добиться никаким описанием.

Few-shot — приём, когда в промпт добавляют несколько примеров «вход → желаемый выход», по которым модель достраивает ответ для нового входа. Zero-shot — без примеров, только описание задачи.

Zero-shot

Zero-shot — это просто инструкция без примеров. Современные модели хорошо справляются с типовыми задачами в этом режиме.

Определи тональность отзыва: положительная, отрицательная или нейтральная.

Отзыв: "Доставка опоздала на три дня, но товар отличный."

Тут модель, скорее всего, ответит верно. Но формат ответа может «гулять»: «Скорее нейтральная», «Смешанная (mixed)», «Положительная с оговоркой» — а вам нужно одно слово из трёх.

Few-shot фиксирует и поведение, и формат

Добавим примеры. Они задают и логику разметки, и точный формат выхода.

Определи тональность отзыва. Отвечай ровно одним словом:
положительная, отрицательная или нейтральная.

Отзыв: "Прекрасный сервис, вернусь снова!"
Тональность: положительная

Отзыв: "Ужасно, деньги на ветер."
Тональность: отрицательная

Отзыв: "Заказ пришёл, всё по описанию."
Тональность: нейтральная

Отзыв: "Доставка опоздала на три дня, но товар отличный."
Тональность:

Теперь модель почти наверняка ответит одним словом из трёх — потому что три примера задали шаблон, который она достраивает. Это и есть сила few-shot: вы показываете, а не только рассказываете.

Почему это работает

С точки зрения предсказания токенов few-shot создаёт в промпте локальный «образец задачи». Модель видит повторяющуюся структуру (Отзыв → Тональность → одно слово) и продолжает её. Это особенно ценно, когда задачу трудно описать словами, но легко показать примерами: специфический стиль, нестандартная разметка, ваш внутренний формат.

Сколько примеров

Обычно 2–5. Один пример («one-shot») задаёт формат, но мало показывает разнообразие. Слишком много примеров раздувают промпт (дороже, медленнее) и иногда вредят, если примеры однобокие. Начинайте с 3 и смотрите.

Когда хватает zero-shot

Если задача типовая (перевод, суммаризация, простая классификация) и формат вы и так задали явной инструкцией — примеры могут не понадобиться. Few-shot нужен, когда: формат нестандартный, важны граничные случаи, или zero-shot стабильно ошибается в одну и ту же сторону.

Итог

  • Zero-shot — инструкция без примеров; хорош для типовых задач.
  • Few-shot — 2–5 примеров «вход → выход»; фиксирует и логику, и формат.
  • Примеры показывают то, что трудно описать словами.
  • Не переусердствуйте: лишние примеры дороже и могут смещать ответ.
Проверьте себя
1. Что отличает few-shot от zero-shot?
AFew-shot дообучает модель на сервере
BFew-shot добавляет в промпт несколько примеров «вход → выход», zero-shot — только описание задачи
CZero-shot всегда точнее
DFew-shot работает только для перевода
2. Главная причина, по которой few-shot стабилизирует формат ответа?
AПримеры увеличивают температуру
BПримеры задают повторяющийся шаблон, который модель продолжает
CПримеры удаляют лишние токены
DПримеры меняют модель
3. Сколько примеров обычно разумно начать давать в few-shot?
A20–30 для надёжности
BРовно 1 всегда
CОколо 2–5, начиная с 3
DЧем больше, тем лучше, без ограничений
Поддержать проект