Урок 2

Few-Shot Learning

Учимся на примерах

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

Решение: Покажи, а не рассказывай

Few-shot промптинг означает дать модели несколько разобранных примеров задачи прямо в промпте, перед тем как просить её обработать новый ввод. Вместо того чтобы описывать правила словами, ты показываешь модели две-пять пар «вход → выход» и даёшь ей самой вывести закономерность (паттерн). Это как ввести в курс дела нового сотрудника через образцы работы, а не через 10-страничную инструкцию: и люди, и языковые модели часто учатся быстрее на демонстрациях, чем на абстрактных предписаниях. В отличие от Zero-Shot (совсем без примеров), few-shot учит через показ.

Механизм, который за этим стоит, называется обучением в контексте (in-context learning): модель не дообучается и не меняет свои веса, она просто строит следующее предсказание с опорой на всё, что уже есть в промпте, включая твои примеры. Поскольку примеры лежат в контекстном окне (context window), они направляют модель к нужному формату, тону и границе принятия решений для одного запроса, а затем исчезают, на сами веса модели они не влияют. Поэтому few-shot незаменим, когда нужна очень конкретная форма вывода (JSON-схема, фиксированный набор меток, определённый стиль текста), которую трудно точно описать словами. Он хорошо сочетается и с другими приёмами: для многошаговых рассуждений комбинируй его с Chain-of-Thought, чтобы каждый пример показывал не только итоговый ответ, но и сам ход рассуждения.

Компромиссы и разобранный пример

Главные издержки, это токены и смещение (bias). Каждый добавленный пример занимает место в контекстном окне, увеличивает задержку и стоимость, а модели чувствительны к порядку примеров и балансу классов: если показать четыре положительных отзыва, а потом один отрицательный, предсказания могут перекоситься в сторону «положительно». Решение, это отбор, а не количество: 3-5 разнообразных, правильно размеченных примеров, покрывающих сложные граничные случаи, обычно работают лучше, чем 20 случайных. Конкретно: чтобы классифицировать обращения в поддержку, можно показать «С карты дважды списали деньги» → Оплата, «Приложение падает при входе» → Баг и «Добавьте тёмную тему» → Запрос фичи. Получив новое обращение вроде «Меня списали после отмены», модель теперь надёжно выдаёт Оплата ровно в том однословном формате, который задали примеры, без всяких длинных инструкций.

Представьте это как обучение нового сотрудника:

  • 1. Пример 1: "Когда клиент говорит 'Я злюсь', мы отвечаем: 'Понимаю ваше разочарование...'"
  • 2. Пример 2: "Когда говорят 'Это сломано', мы отвечаем: 'Мне жаль это слышать...'"
  • 3. Теперь ты: "Клиент говорит 'Хочу возврат'..."
  • 4. Сотрудник учится: Паттерн эмпатичных, полезных ответов

Где это используется?

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

Интересный факт: Исследования показывают, что 3-5 хорошо подобранных примеров часто работают лучше, чем 20+ случайных. Качество важнее количества! Примеры должны покрывать разные случаи и граничные ситуации.

Попробуйте сами!

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

Few-Shot Learning — Учимся на примерах

📚 Few-shot — техника, где мы показываем модели несколько примеров ПЕРЕД задачей. Чем больше примеров — тем точнее понимание формата!

Выбери задачу:
Количество примеров:
0
Промпт который получит модель:
Определи тональность текста
Input: Неплохо, но могло быть лучше
Ответ модели:
Zero-shot(без примеров)
Это выражает смешанные чувства с небольшим разочарованием...
РежимПримеровКачествоКогда использовать
Zero-shot0⭐⭐Простые задачи
One-shot1⭐⭐⭐Показать формат
Few-shot2-5⭐⭐⭐⭐⭐Сложные/нестандартные задачи
Практические примеры промптов

Готовые шаблоны для копирования. Замените {review} на свой текст.

Zero-shotБез примеров

Классифицируй отзыв как позитивный или негативный:
"{review}"

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

One-shotОдин пример

Классифицируй отзыв как позитивный или негативный.

Пример:
Отзыв: "Отличный товар, рекомендую!"
Ответ: позитивный

Теперь классифицируй:
Отзыв: "{review}"
Ответ:

Показывает точный формат ответа. Достаточно для задач с чётким паттерном.

Few-shot (5)Несколько примеров

Классифицируй отзыв как позитивный или негативный.

Примеры:
Отзыв: "Отличный товар!"
Ответ: позитивный

Отзыв: "Ужасное качество, деньги на ветер"
Ответ: негативный

Отзыв: "Быстрая доставка, всё работает"
Ответ: позитивный

Отзыв: "Не рекомендую, разочарован покупкой"
Ответ: негативный

Отзыв: "Соотношение цена/качество отличное"
Ответ: позитивный

Теперь классифицируй:
Отзыв: "{review}"
Ответ:

Идеально для сложных задач. Разнообразные примеры покрывают больше edge cases.

Советы по использованию:
  • Начинайте с zero-shot, добавляйте примеры только если результат неточный
  • 3-5 примеров обычно достаточно, больше = больше токенов без гарантии лучшего качества
  • Примеры должны быть разнообразными и покрывать крайние случаи
  • Используйте одинаковый формат для всех примеров (Input/Output, Question/Answer и т.д.)
Ключевая идея

Few-shot примеры работают как "калибровка" — они показывают модели ТОЧНЫЙ формат, который ты ожидаешь. 3-5 разнообразных примеров обычно достаточно. Больше примеров = больше токенов, но не всегда лучше качество.

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

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

Обычно оптимально 2-5 примеров. Слишком мало — модель не уловит паттерн, слишком много — тратите токены и можете запутать модель. Начните с 3 разнообразных примеров и корректируйте по качеству вывода.

Когда использовать few-shot вместо zero-shot?

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

Как выбрать хорошие примеры для few-shot промптов?

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

Работает ли few-shot со всеми LLM?

Да, few-shot работает со всеми современными LLM: GPT-4, Claude, Gemini и open-source моделями. Крупные модели обычно лучше учатся на меньшем числе примеров, а маленьким может потребоваться больше.

Попробуй сам

Интерактивное демо этой техники

Сравнение техник
Демо режим
Предзаписанные ответы
ЗадачаНачинающийТекст

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

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

Это смешанный отзыв. Клиент отмечает как положительные, так и отрицательные моменты.

Токены:35/28
Время:380ms
Качество:
С Few-Shot Learning
С техникой
Промпт
Классифицируй отзывы как позитивный, негативный или нейтральный. Отзыв: "Потрясающее место! Обязательно вернусь." Классификация: позитивный Отзыв: "Ужасный опыт. Никому не рекомендую." Классификация: негативный Отзыв: "Нормально, ничего особенного." Классификация: нейтральный Отзыв: "Еда была неплохой, но обслуживание оставляет желать лучшего." Классификация:
Ответ

негативный

👁️Примеры показывают формат ответа
🧠"неплохой" — слабый позитив, "оставляет желать лучшего" — негатив
Общий тон склоняется к негативному
Токены:125/5
Время:280ms
Качество:
Почему это работает

Few-shot примеры показали модели точный формат ответа (одно слово) и установили стандарт классификации. Без примеров модель отвечает "по-своему".

1 / 5

Квиз по уроку

1 из 3

1.Что такое «обучение в контексте» (in-context learning) в контексте few-shot промптинга?

Практика

Создайте бесплатный аккаунт для решения челленджей

4 челленджей с AI-проверкой для этого урока

Связанные уроки:Zero ShotChain Of Thought

Этот урок — часть структурированного курса по LLM.

Мой путь обучения