TL;DR
Когда просишь AI последовательно классифицировать или оценивать несколько объектов, добавь в промпт 2 размеченных примера на каждую категорию — это работает надёжнее, чем надеяться на «умность» модели. Техника называется few-shot prompting: ты показываешь модели несколько правильных ответов перед задачей, она ловит паттерн и воспроизводит его.
Главная боль — AI, которому ты доверяешь, незаметно деградирует. Не так, что вдруг начинает выдавать явную чушь. А так: в прошлом месяце верно классифицировал клиентские запросы, в этом — делает это иначе, при том что твой промпт не менялся. Это prompt drift — когда модель обновилась «под капотом», а ты об этом не знаешь. Особенно коварен «невидимый дрейф»: общая точность остаётся прежней, но конкретные объекты классифицируются иначе. Бенчмарки этого не показывают — выглядит стабильно, а по факту поведение изменилось.
Few-shot промпт это решает. Добавляешь эталонные примеры — и модель ориентируется на них, а не на свои «текущие настройки». Исследование показало: даже 2 примера на категорию восстанавливают точность после деградации. Это дешевле и надёжнее, чем ждать правильного обновления модели.
Схема метода
Всё выполняется в одном промпте:
ШАГ 1: Критерии → описываешь фреймворк классификации
ШАГ 2: Примеры (2 на категорию) → размеченные эталоны в промпте
ШАГ 3: Задача → объект для классификации
→ Результат: классификация с обоснованием
Пример применения
Задача: Артём запускает B2B SaaS в России и каждую неделю получает 30–40 заявок от потенциальных клиентов. Нужно быстро сортировать их по «теплоте» — чтобы менеджеры фокусировались на горячих, а не тратили время на нецелевых.
Промпт:
Используй следующий фреймворк оценки входящих заявок:
**Горячий лид** — есть конкретная боль, бюджет, и ЛПР (лицо принимающее решение)
написал сам. Нужно связаться в течение 24 часов.
**Тёплый лид** — есть интерес, но нет чёткого запроса или непонятен бюджет.
Требует квалификации.
**Холодный лид** — общий интерес, нет признаков реальной потребности.
Уходит в email-nurturing.
Примеры:
**Горячий лид:**
Заявка: «Мы в Ромашка.ру, 200 человек в команде. Сейчас теряем заявки из-за
отсутствия CRM. Директор по продажам хочет запустить до конца квартала.
Бюджет — до 500 тыс. руб./год. Когда можно поговорить?»
Почему горячий: конкретная боль + дедлайн + ЛПР + бюджет
**Тёплый лид:**
Заявка: «Интересно узнать про ваш продукт. Мы небольшая компания,
рассматриваем варианты автоматизации продаж.»
Почему тёплый: есть интерес, нет конкретики по бюджету и срокам,
непонятно кто пишет
**Холодный лид:**
Заявка: «Привет, расскажите что у вас есть»
Почему холодный: нет контекста, нет боли, нет признаков реальной потребности
Теперь классифицируй следующую заявку.
Дай обоснование и выведи результат: категория + приоритет действия +
ключевые признаки.
Заявка: {вставить текст заявки}
Результат: Модель выдаст категорию (Горячий / Тёплый / Холодный), конкретное обоснование — какие признаки из фреймворка присутствуют или отсутствуют, и рекомендацию по действию. При классификации следующих 30 заявок — вставляешь каждую в тот же промпт, результаты будут согласованными между собой.
Почему это работает
Слабость модели — у неё нет фиксированной шкалы оценки. Попроси «оцени потенциал клиента» — она будет каждый раз по-разному взвешивать признаки. Что значит «тёплый»? Это внутренние веса, которые меняются от запроса к запросу и от обновления к обновлению.
Сильная сторона модели — она отлично схватывает паттерны из примеров прямо во время диалога. Это называется in-context learning: не переобучение, не настройка весов — просто модель видит образцы и следует логике, которую ты в них заложил.
Как метод использует это — примеры в промпте становятся «якорем». Ты не объясняешь критерии абстрактно, ты показываешь как выглядит правильный ответ. Модель ориентируется на твои эталоны, а не на свои текущие внутренние настройки. Это и делает классификацию стабильной.
Рычаги управления: - Число примеров → 2 на категорию — рабочий минимум. До ~20 — рост точности. После — плато - Качество примеров → выбирай репрезентативные, не крайние случаи. Пример должен быть типичным для категории, а не исключением - Порядок примеров → исследование показало: случайный порядок хуже последовательного (от простого к сложному) - Формат → попроси «обоснование + таблицу» — видишь логику, можешь поймать ошибку
Шаблон промпта
Используй следующий фреймворк для классификации {объектов}:
**{Категория 1}** — {описание критериев категории 1}
**{Категория 2}** — {описание критериев категории 2}
**{Категория 3}** — {описание критериев категории 3}
Примеры:
**{Категория 1}:**
{Объект}: {текст примера 1}
Почему {категория 1}: {краткое объяснение]
**{Категория 2}:**
Объект: {текст примера 2}
Почему {категория 2}: {краткое объяснение}
**{Категория 3}:**
Объект: {текст примера 3}
Почему {категория 3}: {краткое объяснение}
Теперь классифицируй следующий {объект}.
Дай подробное обоснование. Выведи результат в таблице:
категория | ключевые признаки | рекомендуемое действие.
{Объект}: {вставить контент}
Плейсхолдеры:
- {объектов} — что классифицируешь: заявки, идеи, отзывы, контент, задачи
- {Категория N} — твои уровни/группы со своими названиями
- {описание критериев} — признаки, по которым объект попадает в эту категорию
- {текст примера} — реальный образец, который уже точно относится к этой категории
- {краткое объяснение} — 1–2 признака, почему именно эта категория
🚀 Быстрый старт — вставь в чат:
Вот шаблон few-shot промпта для классификации.
Адаптируй под мою задачу: {твоя задача}.
Задавай вопросы, чтобы заполнить поля.
[вставить шаблон выше]
LLM спросит: какие объекты классифицировать, сколько категорий, есть ли готовые примеры — потому что ей нужны твои эталонные образцы, именно они делают классификацию стабильной. Она возьмёт структуру шаблона и подставит твои данные.
Ограничения
⚠️ Потолок точности: Few-shot не помогает преодолеть принципиальные сложности задачи. Самые «открытые» категории — где нет однозначных критериев — по-прежнему классифицируются хуже всего. В исследовании «Doing Mathematics» (самая творческая категория) давал только 33% даже с примерами.
⚠️ Размер примеров: Если твои примеры слишком громоздкие (длинные документы, таблицы), это создаёт нагрузку на контекстное окно. Лучше сокращать примеры до сути — ключевые признаки, не весь объём.
⚠️ Drift никуда не девается: Few-shot смягчает последствия обновлений, но не защищает полностью. Если модель существенно обновилась, примеры нужно перепроверить — остались ли они репрезентативными.
⚠️ Выборка мала: Исследование проводилось на 12 задачах и 2 моделях. Направление верное, но конкретные цифры (67%, 75%) не стоит воспринимать как универсальные.
Как исследовали
Команда из Питтсбургского университета взяла 12 математических задач, заранее размеченных экспертами по четырём уровням сложности. Два AI-инструмента — Gemini и Coteach — классифицировали эти задачи трижды: сначала без примеров (baseline), потом через 7 недель снова без примеров (чтобы поймать эффект обновления модели), и сразу после — с 2 примерами на категорию. Это позволило разделить два эффекта: что делает время и обновление модели vs что делает промпт-инжиниринг.
Самое интересное — Gemini показал «невидимую деградацию»: общая точность осталась 58%, но три задачи, которые раньше решал верно, стал решать неверно — и наоборот. Это значит, что если ты смотришь только на среднюю точность (как в бенчмарках), ты пропустишь реальное изменение поведения. Coteach, наоборот, явно просел с 75% до 50% — это заметно, но понятно что делать.
Любопытная деталь дизайна: исследователи специально не рандомизировали порядок примеров — шли от простых категорий к сложным. Это осознанное решение, потому что рандомный порядок примеров, по данным других работ, ухудшает результат.
Главный инсайт: few-shot дал больший прирост, чем пассивное ожидание обновления модели. Ты контролируешь промпт. Ты не контролируешь, когда и как модель обновят.
Адаптации и экстраполяции
🔧 Техника: «Диагностика дрейфа» — когда AI вдруг стал хуже
Если AI-инструмент, которым ты пользуешься регулярно, начал давать странные ответы на привычные запросы — скорее всего, произошёл тихий апдейт.
Добавь свои старые удачные ответы как примеры:
Раньше ты отвечал на такие задачи вот так — это правильно: [пример 1 + правильный ответ] [пример 2 + правильный ответ] Теперь реши эту задачу в том же формате: [новая задача]Это не fine-tuning. Это просто «напоминание» через контекст — работает в обычном чате.
🔧 Техника: Few-shot для тона и стиля, не только для классификации
Тот же принцип работает для любой задачи с субъективными критериями: тон письма, стиль поста, уровень формальности.
Вот примеры текстов в нужном мне стиле: Пример 1: [текст] Пример 2: [текст] Напиши в том же стиле: [задача]Слова «пиши неформально» — абстракция. Два примера — конкретика.
Ресурсы
Temporal Stability and Few-Shot Prompting in Math Task Assessment — Danielle S. Fox, Brenda L. Robles, Elizabeth DiPietro Brovey, Christian D. Schunn
Learning Research and Development Center & Institute for Learning, University of Pittsburgh
Связанные работы: Schulhoff et al. (2024) — обзор техник промпт-инжиниринга; Brown et al. (2020) — оригинальная работа по few-shot prompting; Chen et al. (2023) — исследование временной нестабильности GPT-4; Liu et al. (2021) — влияние выбора примеров на few-shot
