3,583 papers
arXiv:2512.03818 80 3 дек. 2025 г. FREE

Определение важнее трюков: что действительно работает в промптах для классификации

КЛЮЧЕВАЯ СУТЬ
Парадокс: все гоняются за техниками промптинга (персоны «ты психолог», цепочки рассуждений), а главное — в определении задачи. Разница между «найди благодарность» и точным определением что такое благодарность = 75% точности. Добавление «ты эксперт» или «давай пошагово» к плохому промпту = +2-5%. К хорошему промпту эти техники вообще ничего не добавляют. Метод позволяет строить промпты для классификации, которые работают на порядок лучше через итеративный перебор формулировок определения. Фишка: пишешь 5-10 вариантов определения конструкта вручную → тестируешь на размеченных данных → берёшь лучший и просишь модель сгенерировать ещё 10 вариантов → снова тестируешь → победитель + 3-5 примеров с ответами. Предсказать лучшую формулировку заранее невозможно — только эмпирически.
Адаптировать под запрос

TL;DR

Определение задачи в промпте важнее всех техник. Исследователи протестировали тысячи вариантов промптов для классификации текстов — от простых задач (распознать благодарность) до сложных (найти специфические психологические паттерны). Сравнивали популярные техники: персоны ("Ты психолог"), chain-of-thought ("давай пошагово"), автогенерацию промптов моделью, few-shot примеры.

Персоны и CoT почти не помогают. Если базовый промпт сформулирован плохо — нечёткое определение, размытая задача — никакие "давай подумаем пошагово" или "ты эксперт" не спасут. Разница между плохим и хорошим промптом доходила до 75% точности. При этом добавление персоны или CoT к плохому промпту давало прирост максимум 2-5%. К хорошему промпту эти техники вообще ничего не добавляли.

Работает итеративный перебор формулировок. Лучшие результаты получались когда: 1) писали несколько вариантов определения конструкта вручную, 2) тестировали на размеченных данных, 3) брали лучший вариант и просили модель сгенерировать ещё варианты, 4) снова тестировали. Few-shot примеры (3-5 штук) стабильно давали небольшой прирост. Предсказать лучшую формулировку заранее невозможно — только эмпирически.

📌

Схема подхода

ШАГ 1: Напиши 5-10 вариантов определения конструкта
→ Меняй формулировки, структуру, акценты

ШАГ 2: Протестируй на 20-30 примерах с известными ответами
→ Посчитай совпадения с правильными ответами

ШАГ 3: Возьми лучший вариант → попроси модель сгенерировать ещё 10 вариантов
→ "Перефразируй это определение 10 способами"

ШАГ 4: Снова протестируй все варианты
→ Выбери финального победителя

ШАГ 5 (опционально): Добавь 3-5 few-shot примеров
→ Небольшой прирост точности
🚀

Пример применения

Задача: Отбираешь отклики клиентов на продукт, где есть конкретные предложения по улучшению (не просто "плохо", а "добавьте функцию X" или "уберите баг с Y"). Нужно автоматически фильтровать сотни комментариев.

Итерация 1 — Плохой промпт:

Определи, содержит ли этот отзыв конструктивное предложение.

Текст: [отзыв клиента]

Ответь: Да или Нет

Итерация 2 — Уточнили определение:

Конструктивное предложение — это когда клиент описывает:
- Конкретную функцию, которую нужно добавить
- Конкретный баг или проблему, которую нужно исправить
- Конкретное изменение в интерфейсе или работе продукта

НЕ считается предложением:
- Общая похвала или критика без деталей
- Эмоциональная реакция без указания что менять

Содержит ли этот отзыв конструктивное предложение?

Текст: [отзыв клиента]

Ответь: Да или Нет

Итерация 3 — Попросили модель перефразировать лучший вариант:

Вот моя задача классификации. Сгенерируй 10 вариантов формулировки определения "конструктивного предложения", меняя структуру, акценты, примеры.

[вставить промпт из Итерации 2]

Результат: Модель выдаст 10 вариантов. Ты тестируешь каждый на своих 20-30 отзывах с известными ответами (которые сам разметил), считаешь процент совпадений, выбираешь лучший. Разница между худшим и лучшим вариантом может быть 30-50% точности на твоих данных.

🧠

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

LLM не понимает задачу "в общем" — она ищет паттерны в твоих словах. Если ты написал "конструктивное предложение" без определения, модель возьмёт значение из своих обучающих данных — а там это может быть что угодно. Если определил точно ("конкретная функция" + "конкретный баг") — модель знает на что смотреть.

Популярные техники работают через усиление базового промпта. Персона ("ты менеджер продукта") или CoT ("подумай пошагово") пытаются активировать дополнительный контекст из обучающих данных. Но если базовое определение размыто — дополнительный контекст тоже размыт. Это как пытаться увеличить резкость размытой фотографии — не работает. Сначала нужна чёткая фотография (определение), потом можно улучшать детали.

Невозможно предсказать лучшую формулировку потому что мы не знаем точно какие паттерны модель зацепила в обучающих данных. Слово "конструктивный" может активировать один набор паттернов, "actionable feedback" — другой. Единственный способ узнать — протестировать на реальных примерах.

Рычаги управления: - Структура определения (список критериев vs описание vs примеры) → меняй и тестируй что работает - Негативные примеры ("НЕ считается") → уточняют границы, особенно для размытых понятий - Few-shot примеры (0 vs 3-5) → добавь к финальному варианту для +5-10% точности - Число тестовых итераций (5 vs 50 вариантов) → больше итераций = выше шанс найти лучший промпт

📌

Практический протокол

Шаг 1: Определи конструкт максимально конкретно

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

❌ Плохо: "токсичный комментарий"

✅ Хорошо: "комментарий содержит: оскорбление конкретного человека ИЛИ призыв к насилию ИЛИ дискриминацию по признаку (пол, национальность, религия)"

Шаг 2: Создай тестовый набор

Вручную разметь 20-50 примеров. Это твой бенчмарк для сравнения промптов. Без этого не поймёшь какой промпт лучше.

Шаг 3: Сгенерируй 5-10 вариантов промпта вручную

Меняй: - Порядок критериев - Уровень детализации - Добавляй/убирай негативные примеры - Меняй формат (список vs текст vs таблица)

Шаг 4: Протестируй каждый вариант

Прогони каждый промпт через свой тестовый набор. Считай процент совпадений с твоей разметкой.

Промпт для тестирования:

Вот мой промпт для классификации:
[твой промпт]

Примени его к этим текстам и выдай результаты в формате CSV:

Текст 1: [текст]
Текст 2: [текст]
...

Формат ответа:
номер,результат
1,Да
2,Нет
...

Шаг 5: Автогенерация вариантов лучшего промпта

Возьми лучший вариант из Шага 4:

Ты помогаешь оптимизировать промпт для классификации текстов.

Вот текущий промпт:
[лучший вариант]

Он показал точность 75% на тестовых данных.

Сгенерируй 10 альтернативных формулировок:
- Сохрани смысл и критерии
- Меняй структуру, порядок, примеры
- Пробуй разные способы объяснения
- Можешь добавлять/убирать детали

Выдай каждый вариант отдельным блоком, пронумеруй.

Шаг 6: Снова протестируй все новые варианты

Повтори процесс из Шага 4 с новыми промптами.

Шаг 7: Добавь few-shot примеры к финальному варианту

Возьми победителя и добавь 3-5 примеров с правильными ответами:

[твой лучший промпт]

Примеры:

Текст: "Ужасный продукт, всё плохо!"
Ответ: Нет

Текст: "Добавьте кнопку экспорта в Excel — сейчас приходится копировать руками"
Ответ: Да

Текст: "Баг: при нажатии на «Сохранить» вылетает ошибка 404"
Ответ: Да

Теперь классифицируй этот текст:
[новый текст]
⚠️

Ограничения

⚠️ Нужен размеченный датасет: Без 20-50 примеров с правильными ответами не сможешь сравнить промпты. Придётся разметить вручную.

⚠️ Трудозатраты на итерации: Чтобы найти лучший промпт, нужно протестировать десятки вариантов. Это время, хоть и разовое вложение.

⚠️ Не работает для очень редких паттернов: Если конструкт встречается в 2-3% случаев (как positive meaning making в исследовании — 17%), модель склонна отвечать "нет" почти всегда. Нужны специальные техники балансировки.

⚠️ Субъективные конструкты сложнее: Чем более интерпретативная задача (не "есть ли число" а "есть ли глубокая психологическая трансформация"), тем сложнее модели и тем важнее точное определение.

🔍

Как исследовали

Команда взяла три задачи классификации — от простой к сложной. Простая: найти благодарность в Reddit-постах (эмоция, которую люди легко распознают — согласие между разметчиками 75%). Средняя: найти негативные базовые убеждения в текстах людей с ментальными проблемами ("я никчёмный", "мир опасен" — согласие 82%). Сложная: найти positive meaning making — когда человек описывает рост через травму ("после смерти мамы я стал сильнее" — согласие 70%).

На каждой задаче протестировали тысячи комбинаций промптов: базовые определения (написанные вручную и сгенерированные моделью), персоны ("ты психолог"), chain-of-thought ("думай пошагово"), объяснения в few-shot примерах, zero-shot vs few-shot. Сравнивали с разметкой экспертов-психологов.

Результаты удивили: популярные техники вроде CoT и персон дали прирост максимум 2-5%, и только когда базовый промпт был плохим. Лучший результат давала комбинация: вручную сформулировать определение → протестировать варианты → взять лучший → попросить модель сгенерировать ещё варианты → снова протестировать. Разница между худшим и лучшим промптом достигала 75% точности на сложной задаче и 16% на простой.

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

💡

Адаптации и экстраполяции

📌

🔧 Техника: A/B тестирование определений вместо полного перебора

Если нет времени на десятки итераций, сделай мини-тест:

Вот две формулировки одной задачи классификации.

Вариант А:
[первое определение]

Вариант Б:
[второе определение]

Примени оба к этим 10 текстам. Для каждого текста выдай результат в формате:

Текст 1:
- Вариант А: Да/Нет
- Вариант Б: Да/Нет

[10 текстов для классификации]

Сравни результаты со своей разметкой, выбери лучший вариант. Это не оптимально, но лучше чем вообще не тестировать.

📌

🔧 Техника: Попроси модель объяснить почему она ошиблась

Когда нашёл лучший промпт, но точность всё равно не 100%, возьми ошибочные случаи:

Вот мой промпт для классификации:
[промпт]

Вот текст, который ты классифицировал как "Да", но правильный ответ "Нет":
[текст где ошиблась]

Объясни:
1. Почему ты решил что это "Да"?
2. Какие части текста ввели в заблуждение?
3. Как мне изменить определение в промпте, чтобы избежать таких ошибок?

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

📌

🔧 Техника: Chain-of-thought для отладки, не для продакшена

CoT в исследовании не дал прироста точности. Но он полезен для понимания почему модель классифицирует так, а не иначе:

[твой промпт]

Прежде чем ответить, объясни пошагово свои рассуждения:
1. Какие ключевые элементы ты видишь в тексте?
2. Соответствуют ли они критериям из определения?
3. Какие сомнения у тебя есть?

Затем дай финальный ответ: Да или Нет

Используй это на этапе разработки промпта чтобы понять логику модели. В финальной версии убери CoT — он добавляет токены без прироста точности.

🔗

Ресурсы

Improving Alignment Between Human and Machine Codes: An Empirical Assessment of Prompt Engineering for Construct Identification in Psychology

Авторы: Kylie L. Anglin, Stephanie Milan, Brittney Hernandez, Claudia Ventura

University of Connecticut (Department of Educational Psychology, Department of Psychological Sciences)

Упоминания из исследования: - Automatic Prompt Engineering (APE) метод Zhou et al. 2022 - Chain-of-Thought работы: Wei et al. 2022 (few-shot CoT), Kojima et al. 2022 (zero-shot CoT) - Explanatory prompting: Lampinen et al. 2022 - GoEmotions датасет: Demszky et al. 2020


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

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

Парадокс: все гоняются за техниками промптинга (персоны «ты психолог», цепочки рассуждений), а главное — в определении задачи. Разница между «найди благодарность» и точным определением что такое благодарность = 75% точности. Добавление «ты эксперт» или «давай пошагово» к плохому промпту = +2-5%. К хорошему промпту эти техники вообще ничего не добавляют. Метод позволяет строить промпты для классификации, которые работают на порядок лучше через итеративный перебор формулировок определения. Фишка: пишешь 5-10 вариантов определения конструкта вручную → тестируешь на размеченных данных → берёшь лучший и просишь модель сгенерировать ещё 10 вариантов → снова тестируешь → победитель + 3-5 примеров с ответами. Предсказать лучшую формулировку заранее невозможно — только эмпирически.

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

Не угадывай формулировку — перебирай десятки вариантов с тестированием. Вместо абстрактного слова даёшь операциональное определение — конкретные критерии что должно присутствовать в тексте. Не «токсичный комментарий», а «оскорбление конкретного человека ИЛИ призыв к насилию ИЛИ дискриминация по признаку». Процесс: создал 5-10 вариантов → прогнал через 20-50 размеченных примеров → взял лучший (допустим 70% совпадений) → попросил модель перефразировать 10 способами → снова протестировал все → выбрал финального победителя (80-85%) → добавил few-shot примеры (+5-10%). Суть: невозможно предсказать какая формулировка активирует нужные паттерны в обучающих данных модели. Слово «конструктивный» цепляет одни паттерны, «actionable feedback» — другие. Единственный способ узнать — протестировать на реальных примерах.

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

LLM не понимает задачу «в общем» — она ищет паттерны в твоих словах. Написал «конструктивное предложение» без определения? Модель возьмёт значение из своих обучающих данных — а там это может быть что угодно. Определил точно («конкретная функция» + «конкретный баг») — модель знает на что смотреть. Популярные техники работают через усиление базового промпта. Персона («ты менеджер продукта») или CoT («подумай пошагово») пытаются активировать дополнительный контекст из обучающих данных. Но если базовое определение размыто — дополнительный контекст тоже размыт. Это как пытаться увеличить резкость размытой фотографии — не работает. Сначала нужна чёткая фотография (определение), потом можно улучшать детали. Исследование на тысячах вариантов промптов: разница между худшим и лучшим определением — до 75% точности. Персоны и CoT к плохому промпту = +2-5%. К хорошему промпту = 0%.

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

Классификация текстов → конкретно для задач где нужно найти специфический паттерн (благодарность в отзывах, конструктивная обратная связь, токсичные комментарии, психологические конструкты), особенно когда базовый промпт даёт низкую точность и ты не понимаешь почему. НЕ подходит для очень редких паттернов (встречаются в 2-3% случаев) — модель склонна отвечать «нет» почти всегда, нужны специальные техники балансировки.

Мини-рецепт

1. Создай операциональное определение: вместо «токсичный комментарий» → «оскорбление конкретного человека ИЛИ призыв к насилию ИЛИ дискриминация по признаку (пол, национальность, религия)». Чем конкретнее критерии — тем лучше.

2. Разметь 20-50 примеров вручную: это твой бенчмарк для сравнения промптов. Без этого не поймёшь какой промпт лучше.

3. Напиши 5-10 вариантов промпта: меняй порядок критериев, уровень детализации, формат (список vs текст vs таблица). Добавляй/убирай негативные примеры («НЕ считается»).

4. Протестируй каждый вариант: прогони через тестовый набор, считай процент совпадений с твоей разметкой. Промпт для тестирования: Вот мой промпт: [твой промпт]. Примени его к этим текстам и выдай результаты в формате CSV: номер,результат.

5. Автогенерация вариантов: возьми лучший вариант (допустим 70% точности) → попроси модель: Сгенерируй 10 альтернативных формулировок этого промпта: сохрани смысл, меняй структуру, порядок, примеры. Выдай каждый вариант отдельным блоком.

6. Снова протестируй все новые варианты: повтори процесс из шага 4. Выбери финального победителя.

7. Добавь 3-5 примеров с ответами: возьми победителя и добавь few-shot примеры в формате Текст: [пример] → Ответ: Да/Нет. Это даст +5-10% точности.

Примеры

[ПЛОХО] : Определи, содержит ли этот отзыв конструктивное предложение. Ответь: Да или Нет — модель не знает что такое «конструктивное», возьмёт своё понимание из обучающих данных.
[ХОРОШО] : Конструктивное предложение — это когда клиент описывает: конкретную функцию для добавления, конкретный баг для исправления, конкретное изменение интерфейса. НЕ считается: общая похвала/критика без деталей, эмоции без указания что менять. Содержит ли этот отзыв конструктивное предложение? Текст: [отзыв]. Ответь: Да или Нет — операциональное определение + негативные примеры. После тестирования лучшего варианта (допустим 75% точности): Ты помогаешь оптимизировать промпт для классификации. Вот текущий промпт: [вставить лучший]. Он показал 75% точности на тестовых данных. Сгенерируй 10 альтернативных формулировок: сохрани смысл и критерии, меняй структуру, порядок, примеры. Пробуй разные способы объяснения. Выдай каждый вариант отдельным блоком, пронумеруй.
Источник: Improving Alignment Between Human and Machine Codes: An Empirical Assessment of Prompt Engineering for Construct Identification in Psychology
ArXiv ID: 2512.03818 | Сгенерировано: 2026-01-10 00:13

Методы

МетодСуть
Автогенерация вариантов промптаНапиши базовый промпт. Протестируй на 20-30 примерах. Возьми лучший вариант и попроси модель: "Перефразируй это определение 10 способами, меняя структуру и акценты". Снова протестируй все варианты. Почему работает: Модель генерирует формулировки которые ты сам не придумал бы. Разные слова активируют разные паттерны из обучающих данных. Невозможно угадать какая формулировка сработает лучше — только эмпирически. Когда применять: задача классификации или извлечения информации, есть 20+ размеченных примеров для теста. Не работает: если нет способа проверить какой вариант лучше
📖 Простыми словами

Определение важнее трюков: что действительно работает в промптах для классификации

arXiv: 2512.03818

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

Это как нанять стажера и сказать ему: «сделай нормально». Стажер покивает, сделает по-своему, и в итоге вы оба будете недовольны, потому что ваше «нормально» — это две разные вселенные. Можно нацепить на него бейдж «Старший эксперт» или заставить его проговаривать действия вслух, но если он изначально не понял, что именно нужно получить на выходе, результат будет херней. Никакие ролевые игры не заменят четкой инструкции, где прописано, что «нормально» — это когда отчет сдан в PDF и в нем нет опечаток.

Ученые прогнали тысячи тестов и выяснили: модные техники вроде Chain-of-Thought (давай пошагово) или Personas (представь, что ты Фрейд) работают через раз и часто вообще не влияют на результат. Что реально тащит, так это Few-shot примеры (когда ты даешь 3-5 образцов «правильно/неправильно») и автогенерация промптов самой моделью, когда она сама пытается уточнить твои корявые мысли. Но даже это вторично по сравнению с качественным определением конструкта: если ты четко прописал критерии, модель внезапно «умнеет» на глазах.

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

Короче: хватит тратить время на приписки в духе «ты лучший в мире аналитик» или «я дам тебе 20 долларов чаевых». Это не работает, если сама задача описана как кусок фигни. Четкое определение и пара примеров — это 90% успеха в классификации текстов. Сначала выстрой логику и критерии, а уже потом играйся с «пошаговым мышлением», иначе просто получишь очень уверенный и красиво оформленный бред. Кто умеет ставить ТЗ машине, тот и получает валидные данные, остальные продолжают жаловаться, что «нейронка тупит».

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

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

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