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 — техника, где мы показываем модели несколько примеров ПЕРЕД задачей. Чем больше примеров — тем точнее понимание формата!
Это выражает смешанные чувства с небольшим разочарованием...
| Режим | Примеров | Качество | Когда использовать |
|---|---|---|---|
| Zero-shot | 0 | ⭐⭐ | Простые задачи |
| One-shot | 1 | ⭐⭐⭐ | Показать формат |
| Few-shot | 2-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 моделями. Крупные модели обычно лучше учатся на меньшем числе примеров, а маленьким может потребоваться больше.
Попробуй сам
Интерактивное демо этой техники
Классифицируй отзыв как позитивный, негативный или нейтральный: "Еда была неплохой, но обслуживание оставляет желать лучшего."
Это смешанный отзыв. Клиент отмечает как положительные, так и отрицательные моменты.
негативный
Few-shot примеры показали модели точный формат ответа (одно слово) и установили стандарт классификации. Без примеров модель отвечает "по-своему".
Создайте бесплатный аккаунт для решения челленджей
4 челленджей с AI-проверкой для этого урока
Этот урок — часть структурированного курса по LLM.
Мой путь обучения