Примеры в промпте: как few-shot улучшает ответы нейросети

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

Few-shot prompting — это когда вы показываете нейросети 2–5 образцов желаемого ответа прямо в запросе. Модель подстраивается под формат, тон и логику примеров и реже уходит в сторону. Метод работает без дообучения и подходит новичкам.

Что такое few-shot и чем он отличается от обычного запроса

Few-shot prompting — это режим, в котором в запрос к модели кладут несколько готовых пар «задача — ответ» до того, как попросить её решить новую задачу. Модель видит образец и продолжает в том же духе: держит структуру, длину и стиль. Обучение при этом не происходит — примеры действуют только в рамках одного запроса.

Сравнивать удобно по числу образцов. В zero-shot вы даёте только инструкцию и ничего не показываете. В one-shot добавляете один пример. В few-shot примеров несколько — обычно от двух до пяти. Чем больше образцов, тем яснее модели, что от неё ждут, но каждый пример занимает место в контексте.

РежимСколько примеровКогда подходитРиск
Zero-shotНи одногоПростая задача, понятная формулировкаМодель сама выбирает формат
One-shotОдинНужно задать образец структурыОдин пример легко скопировать слишком буквально
Few-shotДва–пятьСложный формат, свой тон, нестандартная разметкаЛишние или небрежные примеры сбивают ответ

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

Разница с обычным запросом не в длине текста, а в наличии эталона. Обычная просьба описывает желаемое словами, few-shot показывает его на деле. Когда требования трудно объяснить формулировкой, но легко продемонстрировать, примеры экономят итерации.

Почему примеры работают: модель копирует логику, а не только формат

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

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

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

Отдельно стоит учитывать, что образцы работают как неявная инструкция о приоритетах. Если в одном примере модель видит, что при противоречивых данных ответ всё равно даётся, она будет давать ответ и в спорных случаях. Логика, заложенная в примерах, переносится на новые входы последовательнее, чем любые словесные указания в теле запроса.

Примеры задают не шаблон оформления, а способ рассуждать — и именно он определяет, что модель посчитает важным в новом запросе.

Сколько примеров давать и как их подбирать

Оптимальное количество

Начинайте с двух-трёх образцов: этого хватает, чтобы модель уловила формат и логику ответа. Если результат нестабилен, добавляйте по одному примеру и смотрите, меняется ли поведение. Пять образцов — практический потолок для большинства задач; дальше прирост качества обычно незаметен, а запрос растёт и дорожает по токенам.

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

Какие примеры брать

Качество образцов важнее их числа. Подбирайте так, чтобы модель видела именно то поведение, которое вам нужно воспроизвести.

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

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

Как собрать промпт с примерами: пошаговый порядок

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

  1. Сформулируйте задачу одной фразой. Опишите, что должно получиться на выходе: короткий отзыв, JSON с полями, письмо клиенту. Чем конкретнее формулировка, тем проще понять, какие образцы нужны.
  2. Задайте правила, которым должны следовать примеры. Зафиксируйте ограничения по длине, тону, языку, структуре. Правила и образцы должны говорить одно и то же, иначе модель начнёт выбирать между ними.
  3. Подберите примеры под эти правила. Возьмите реальные пары «вход — выход», которые вы сами считаете эталонными. Уберите всё, что нарушает заявленные ограничения, даже если ответ красивый.
  4. Оформите запрос единообразно. Отделите инструкцию от примеров, подпишите каждый блок («Вход:», «Выход:») и сохраните одинаковый порядок полей во всех образцах. Последним оставьте пример, ближайший к текущей задаче.
  5. Добавьте сам запрос и проверьте ответ. Поставьте новый вход после примеров в том же формате. Если модель отклонилась от структуры, сначала правьте образцы, а не инструкцию.

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

Если после правок примеров ответ всё равно нестабилен, вернитесь к первому шагу: скорее всего, задача сформулирована расплывчато, и образцы просто не могут её закрыть.

Типичные ошибки: когда примеры вредят

Few-shot не всегда улучшает ответ. Если образцы подобраны небрежно, модель начинает воспроизводить их слабые места, и результат становится хуже, чем при обычном запросе без примеров.

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

Перед отправкой запроса полезно пройтись по короткому чек-листу:

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

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

Примеры для разных задач: текст, разметка, извлечение данных

Генерация текста

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

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

Разметка и классификация

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

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

Извлечение полей из документов

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

Ниже — как смещаются акценты в примерах в зависимости от типа задачи.

Тип задачиЧто задают примерыНа что смотреть при подборе
Генерация текстаТон, ритм, структуру абзацаРазнообразие длины и зачинов
КлассификацияГраницы между меткамиНаличие пограничных случаев
Извлечение полейПравила заполнения и пропусковЕдиный формат ответа

Когда few-shot не нужен: проверьте zero-shot первым

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

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

  • Задача типовая и модель знает её по обучающим данным: перевод, пересказ, ответ на вопрос по тексту.
  • Формат ответа простой: одно предложение, список, короткое резюме.
  • Требования можно описать словами точнее, чем показать на примерах.
  • Запрос уже длинный, и добавление образцов размывает основную инструкцию.
  • Ответ нужен один раз, а не потоком однотипных запросов.

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

Отдельно проверьте, не подменяет ли few-shot ясность инструкции. Иногда достаточно переписать требование к формату, чтобы модель перестала ошибаться. Примеры стоит вводить, когда словами объяснить логику сложно, а показать — легко.

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

Сколько примеров достаточно для few-shot?

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

Можно ли использовать примеры из чужого промпта?

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

Чем few-shot отличается от дообучения модели?

Few-shot — это примеры прямо в запросе, модель не меняется. Дообучение — отдельный процесс на своих данных, который требует подготовки и ресурсов.

Что делать, если модель копирует примеры дословно?

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

Работают ли примеры для длинных ответов?

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

Нужно ли менять примеры при смене задачи?

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

Читайте также