3,583 papers
arXiv:2605.30151 74 28 мая 2026 г. FREE

Few-Shot для классификации: 2 примера на категорию надёжнее, чем обновление модели

КЛЮЧЕВАЯ СУТЬ
Парадокс: бенчмарки зелёные, точность прежняя — а клиент из «горячего» превратился в «тёплый». Это невидимый дрейф: модель обновилась под капотом, твой промпт не изменился, а классификации тихо съехали. Few-shot якорение позволяет зафиксировать эталон прямо в промпте — вместо «текущих внутренних настроек» модель опирается на твои образцы. Добавь 2 размеченных примера на каждую категорию — и классификация перестаёт плыть при обновлениях модели.
Адаптировать под запрос

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


📋 Дайджест исследования

Ключевая суть

Парадокс: бенчмарки зелёные, точность прежняя — а клиент из «горячего» превратился в «тёплый». Это невидимый дрейф: модель обновилась под капотом, твой промпт не изменился, а классификации тихо съехали. Few-shot якорение позволяет зафиксировать эталон прямо в промпте — вместо «текущих внутренних настроек» модель опирается на твои образцы. Добавь 2 размеченных примера на каждую категорию — и классификация перестаёт плыть при обновлениях модели.

Принцип работы

Стандартный подход: описываешь критерии словами и надеешься что модель поняла правильно. Few-shot: показываешь как выглядит правильный ответ на конкретных образцах. Не объясняешь — демонстрируешь. Примеры становятся якорем — модель ориентируется на твои эталоны, а не на свои внутренние веса. Это обучение в контексте (in-context learning): никакого переобучения, просто модель схватывает паттерн прямо во время диалога и следует ему. Порядок примеров важен — от простого к сложному работает лучше, чем вперемешку.

Почему работает

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

Когда применять

Классификация и оценка → для любой задачи где нужно стабильно сортировать объекты по категориям: заявки от клиентов, отзывы, идеи, контент, задачи по приоритету — особенно когда используешь один промпт регулярно и хочешь получать согласованные результаты неделю за неделей. НЕ подходит для категорий с принципиально размытыми границами — там даже двадцать примеров дают лишь 33% точности.

Мини-рецепт

1. Назови категории: для каждой опиши критерии — что конкретно должно быть в объекте, чтобы попасть в эту группу.
2. Подбери по 2 примера на категорию: бери типичные случаи, не крайние. К каждому добавь 1–2 строки объяснения — почему именно эта категория.
3. Расставь от простого к сложному: случайный порядок ослабляет паттерн.
4. Добавь задачу с форматом вывода: попроси обоснование плюс таблицу — категория / ключевые признаки / рекомендуемое действие.
5. Сохрани промпт как шаблон: при серийной классификации вставляешь только объект, всё остальное остаётся.

Примеры

[ПЛОХО] : Это заявка от потенциального клиента. Скажи насколько он горячий: «Интересует ваш продукт, хотим узнать подробности»
[ХОРОШО] : Используй фреймворк оценки входящих заявок. Горячий лид — конкретная боль, бюджет, лицо принимающее решение написало само. Пример горячего: «200 человек в команде, теряем заявки, бюджет 500 тысяч в год, директор по продажам, нужно до конца квартала» — конкретная боль + дедлайн + бюджет + ЛПР. Тёплый лид — есть интерес, нет чёткого запроса или непонятен бюджет. Пример тёплого: «рассматриваем варианты автоматизации продаж» — интерес есть, бюджет и сроки неизвестны. Холодный лид — общий интерес, нет признаков реальной потребности. Пример холодного: «Привет, расскажите что у вас есть» — нет контекста, нет боли. Классифицируй заявку: {вставить текст}. Выведи в таблице: категория | ключевые признаки | рекомендуемое действие.
Источник: Temporal Stability and Few-Shot Prompting in Math Task Assessment
ArXiv ID: 2605.30151 | Сгенерировано: 2026-05-29 15:25

Проблемы LLM

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

Методы

МетодСуть
Примеры-эталоны как защита от дрейфа при классификацииДобавь в промпт 2 размеченных примера на каждую категорию — до задачи. Порядок примеров: от простых случаев к сложным. Случайный порядок хуже. Почему работает: Без примеров модель опирается на внутренние веса — они меняются при каждом обновлении. С примерами модель схватывает паттерн прямо из промпта и следует ему. Твои эталоны заменяют её "текущие настройки". Рабочий минимум: 2 примера на категорию. После ~20 прирост точности останавливается. Когда не работает: категории без чётких критериев (творческие, субъективные задачи) — примеры слабо помогают
📖 Простыми словами

Temporal Stability and Few-ShotPromptingin Math Task Assessment

arXiv: 2605.30151

Суть проблемы в том, что у нейросетей напрочь отсутствует внутренняя шкала измерений. Когда ты просишь модель оценить «теплоту» лида или сложность задачи, она не лезет в палату мер и весов, а каждый раз гадает заново, опираясь на свои плавающие внутренние настройки. В итоге сегодня клиент с бюджетом в миллион для неё горячий, а завтра — просто перспективный. Это называется отсутствием временной стабильности: модель лажает не потому, что глупая, а потому что у неё нет жесткой точки отсчета.

Это как если бы ты нанял стажера сортировать яблоки, но не показал, что считать «гнилым», а что «идеальным». В понедельник он выкидывает яблоки с пятнышком, а в среду, когда у него хорошее настроение, считает их вполне съедобными. Без эталона перед глазами любой оценщик — будь то человек или AI — начинает нести отсебятину, превращая твою аналитику в рандомный набор слов.

Решение тупое до безобразия, но эффективное: метод few-shot prompting. Ты просто впихиваешь в промпт по два конкретных примера на каждую категорию. Хочешь сортировать заявки? Покажи: «Вот текст письма от идеального клиента, это категория А. А вот спам про увеличение продаж — это категория Г». Когда у модели есть 2 размеченных примера, она перестает философствовать и начинает просто копировать паттерн. Это дает тот самый фундамент, который превращает нейронку из капризного художника в четкого контролера ОТК.

Тестировали это на математических задачах, но принцип универсален. Будь то скоринг клиентов в B2B, модерация комментариев или классификация юридических документов — few-shot работает везде. Модели плевать на контекст, ей важна структура. Если ты не дашь ей примеры, она будет подстраиваться под каждый новый запрос, и через неделю ты обнаружишь, что твоя база данных превратилась в информационную помойку, где одни и те же сущности названы по-разному.

Короче: завязывай верить в то, что AI «сам всё поймет» из короткой инструкции. Без примеров любая классификация — это игра в рулетку. Хочешь стабильный результат — дай модели по паре образцов на каждый вариант ответа. Это единственный способ заставить AI работать по твоим правилам, а не по настроению его алгоритмов. Два примера на категорию — и твоя автоматизация перестанет быть хрупкой поделкой.

Работа с исследованием

Адаптируйте исследование под ваши задачи или создайте готовый промпт на основе техник из исследования.

0 / 2000
~0.5-2 N-токенов ~10-30с
~0.3-1 N-токенов ~5-15с