Zero-shot и Few-shot

zero-shot и few-shot prompting — запрос без примеров и запрос с примерами

Раздел
Промпты
Обновлено
11.08.26

Zero-shot означает, что модель получает инструкцию и новую задачу без готовых примеров. При few-shot в тот же контекст добавляют несколько демонстраций «вход → ответ». Они показывают желаемый формат и границы задачи, но не меняют веса модели и не гарантируют улучшение сами по себе.

Коротко

Коротко. При zero-shot модель получает инструкцию и новый вход без готового образца. При few-shot перед новым входом лежат несколько примеров того, как связаны задача и правильный ответ. Примеры могут подсказать формат, стиль, категории и нужное правило, но способны также передать ошибку или нежелательный перекос.

Что означают shot

Слово shot здесь означает демонстрационный пример внутри текущего контекста.

  • Zero-shot — ни одного примера.
  • One-shot — один пример.
  • Few-shot — небольшая подборка примеров.
  • Many-shot — большая подборка, которая занимает значительную часть контекста.

Жёсткой границы между few-shot и many-shot нет. Эти слова описывают режим работы, а не стандартное число карточек в запросе.

Представим задачу: определить настроение питомца на снимке. В zero-shot запрос содержит инструкцию, фотографию корги и перечень допустимых ответов. В few-shot перед фотографией появляются другие снимки с готовыми метками: спящий кот — «спокойно», шипящий — «сердито», играющий — «весело».

Новый снимок остаётся тем же. Меняется контекст перед ним.

Что модель получает в каждом случае

Упрощённый zero-shot запрос выглядит так:

Определи настроение питомца.
Допустимые ответы: спокойно, сердито, весело.

Новый снимок: [фотография корги]
Ответ:

В few-shot запросе между инструкцией и новым снимком есть демонстрации:

Определи настроение питомца.
Допустимые ответы: спокойно, сердито, весело.

[спящий кот] → спокойно
[шипящий кот] → сердито
[играющий кот] → весело

Новый снимок: [фотография корги]
Ответ:

Примеры одновременно сообщают несколько вещей: какие метки разрешены, как выглядит ответ, какие признаки связаны с каждой категорией и насколько подробно требуется отвечать.

In-context learning

Поведение, при котором модель подхватывает закономерность из примеров в запросе, называют in-context learning, или обучением в контексте.

Слово «обучение» здесь легко понять слишком буквально. Обычный few-shot запрос не запускает тренировку и не переписывает параметры модели. Демонстрации влияют на продолжение текста только пока остаются в доступном контексте. В следующем независимом запросе их снова придётся передать или сохранить средствами самого приложения.

In-context learning — более широкое понятие, чем few-shot. К нему относят работу с разным числом демонстраций, а иногда и другие способы задать временную закономерность внутри контекста.

Зачем добавляют примеры

Инструкция часто допускает несколько разумных трактовок. Фраза «выдели главное» не говорит, нужен ли один тезис, список или краткий абзац. Один хороший пример способен показать это быстрее длинного описания.

Демонстрации особенно заметно меняют задачи, где важны:

  • закрытый набор категорий;
  • необычная разметка;
  • строгая последовательность полей;
  • единый тон коротких ответов;
  • связь между входными признаками и меткой;
  • редкий формат, который трудно описать словами.

Но деление «zero-shot для творчества, few-shot для классификации» слишком грубое. Обе схемы встречаются и в генеративных, и в аналитических задачах. Всё зависит от того, помогает ли пример снять конкретную неоднозначность.

Почему few-shot не всегда лучше

Модель замечает не только полезное правило. Она может перенять случайную особенность примеров: длину фразы, порядок меток, частый класс, лишний знак или фактическую ошибку.

Проблемы появляются, когда примеры:

  • противоречат инструкции;
  • содержат ошибочные ответы;
  • представляют только одну категорию;
  • слишком похожи друг на друга;
  • заметно отличаются от нового входа;
  • включают лишние детали, которые модель принимает за правило;
  • используют разные форматы ответа без объяснения.

В такой ситуации zero-shot запрос с ясной инструкцией бывает надёжнее перегруженного few-shot запроса.

Качество и разнообразие примеров

Полезная подборка показывает и обычные, и пограничные случаи. Для классификации важен баланс категорий. Для извлечения данных — разные варианты отсутствующих и заполненных полей. Для преобразования текста — несколько длин, тонов и структур входа.

Случайные примеры из общей коллекции не всегда подходят новому запросу. Близкая по смыслу демонстрация часто полезнее формально разнообразной, потому что модель видит сопоставимые признаки. При этом слишком близкий пример может подтолкнуть её к механическому копированию.

Поэтому ценность примера определяется не только его правильностью. Важны его роль в подборке и связь с теми входами, которые встретятся позже.

Порядок тоже влияет

Одинаковые примеры в разном порядке способны дать разные ответы. Причина не сводится к одному эффекту: модель может сильнее учитывать последние демонстрации, перенимать частоту меток или строить другое представление задачи по первым карточкам.

Особенно заметны:

  • перекос частоты, когда одна метка встречается чаще других;
  • эффект соседства, когда новый вход напоминает ближайший пример;
  • эффект порядка, когда удачная последовательность для одной модели или задачи не переносится на другую;
  • перекос формулировки, когда привычное слово-метка кажется модели вероятнее редкого обозначения.

Это не означает, что существует одна универсальная сортировка. Скорее, порядок — ещё одна часть запроса, которую учитывает оценка качества.

Сколько примеров бывает достаточно

Универсального числа нет. Один пример иногда полностью объясняет формат. В другой задаче небольшая подборка не покрывает важные случаи, а десятки или сотни демонстраций продолжают улучшать результат.

Количество ограничивают:

  • длина доступного контекста;
  • стоимость и задержка обработки входа;
  • объём качественно размеченных данных;
  • способность модели находить полезный пример в длинном контексте;
  • риск противоречий и лишних закономерностей.

Many-shot режим показывает, что польза не обязана заканчиваться после первых нескольких примеров. Но рост подборки сам по себе не гарантирует роста качества: разные задачи и модели используют длинный контекст по-разному.

Как это проверяют

Пользу демонстраций видно только в сравнении на наборе типичных входов. Zero-shot и few-shot варианты получают одинаковые инструкции и настройки, а различаются демонстрациями.

Для классификации смотрят не только общую долю верных ответов, но и ошибки по каждой категории. Для извлечения данных отдельно замечают пропущенные поля и выдуманные значения. Для генеративного ответа оценивают соблюдение формата, смысл и устойчивость на разных темах.

Проверка на одном красивом примере легко скрывает перекос. Небольшая, но разнообразная выборка лучше показывает, что именно добавили демонстрации.

Few-shot и структурированный ответ

Пример способен показать структуру ответа, но не делает её технически обязательной. Модель всё ещё может пропустить поле, поменять тип значения или добавить пояснение.

Если приложение ожидает машинно читаемый результат, few-shot помогает передать семантику полей, а проверка схемы отвечает за техническую корректность. Эти механизмы дополняют друг друга: демонстрация объясняет смысл, валидатор ловит нарушение формата.

Мультимодальные примеры

Shot не обязан быть только текстовым. Мультимодальная модель может получить несколько пар «изображение → подпись», «аудиофрагмент → метка» или «документ → извлечённые поля», а затем обработать новый материал по показанному образцу.

Принцип остаётся тем же: примеры находятся в текущем контексте и задают временную закономерность. Возможности и ограничения зависят от того, какие типы данных поддерживает конкретная модель.

С чем часто путают

  • С fine-tuning. Дообучение меняет параметры модели и сохраняет эффект после завершения тренировки. Few-shot передаёт примеры заново в контексте запроса.
  • С RAG. Поиск добавляет документы с фактами, нужными для ответа. Few-shot обычно добавляет образцы поведения. Один и тот же фрагмент иногда выполняет обе роли, но цели различаются.
  • С системной инструкцией. Инструкция задаёт правила словами, демонстрации показывают их на конкретных парах. Они могут находиться в разных частях сообщения и работать вместе.
  • С памятью диалога. Предыдущие сообщения тоже становятся контекстом, однако не вся история чата задумана как аккуратный набор демонстраций.
  • С chain-of-thought. Пример может содержать объяснение решения, но few-shot не обязан раскрывать рассуждение. Можно показывать только вход и итоговый ответ.
  • С обучением на нескольких объектах. В классическом машинном обучении few-shot learning может означать адаптацию по малому набору данных. Few-shot prompting — более узкий сценарий с примерами внутри запроса.

Частые ошибки

  • Выбирать примеры только потому, что они короткие. Краткость не компенсирует нерепрезентативность.
  • Смешивать правильные и приблизительные ответы. Модель может принять разницу за допустимую вариативность.
  • Показывать один класс чаще остальных без причины. Частота меток способна сместить ответы.
  • Не отделять примеры от нового входа. Неясная разметка увеличивает риск, что модель продолжит демонстрацию вместо решения задачи.
  • Считать формат гарантированным. Даже хороший образец не заменяет проверку структуры на стороне приложения.
  • Менять сразу инструкцию и подборку. Тогда трудно понять, что именно повлияло на результат.
  • Судить по одному запуску. Чувствительность к формулировке и порядку остаётся незаметной без нескольких входов.

Частые вопросы

Few-shot меняет веса модели?

Нет. В обычном запросе демонстрации влияют на текущий контекст, а параметры модели остаются прежними.

Few-shot и in-context learning — одно и то же?

Few-shot prompting — распространённый случай in-context learning. Само понятие ICL шире и не обязано ограничиваться небольшой подборкой.

Всегда ли примеры повышают точность?

Нет. Неподходящие, ошибочные или несбалансированные примеры способны ухудшить результат и добавить новый перекос.

Можно ли обойтись одним примером?

Иногда да, особенно если требуется лишь показать форму ответа. Сложная граница между категориями обычно требует более разнообразного контекста.

Почему одна и та же подборка работает по-разному после перестановки?

Модель учитывает последовательность токенов. Положение примера, соседство с новым входом и распределение меток меняют вероятности продолжения.

Few-shot заменяет fine-tuning?

Не всегда. Он удобен для временной адаптации без изменения модели. Дообучение решает другую задачу: закрепляет поведение в параметрах и не требует каждый раз передавать весь набор демонстраций.

Примеры обязательно хранить в системном сообщении?

Нет. Важнее, чтобы модель получила их в доступном контексте и однозначно отличала демонстрации от нового входа. Конкретная структура сообщений зависит от интерфейса модели.

Главное

Zero-shot и few-shot различаются количеством демонстраций в текущем контексте. Zero-shot опирается на инструкцию и знания модели. Few-shot добавляет несколько образцов «вход → ответ», которые помогают показать формат и локальное правило, не меняя веса модели. Польза зависит не от магического числа примеров, а от их качества, разнообразия, порядка и соответствия реальным входам.