3,583 papers
arXiv:2604.23430 74 25 апр. 2026 г. FREE

Prompt Chaining для иерархической классификации: пошаговое сужение вместо одного большого запроса

КЛЮЧЕВАЯ СУТЬ
Попросишь LLM выбрать из 100+ вариантов сразу — она не сужает пространство логически, она угадывает «примерно подходящее». Метод Prompt Chaining позволяет точно классифицировать тексты, товары и документы по сложным многоуровневым деревьям категорий — точнее, чем один большой запрос. Фишка: на каждый уровень иерархии — отдельный запрос, и каждый следующий видит только подсписок внутри уже выбранного. Модель не «прыгает» через уровни, она последовательно сужает — как человек, который сначала выбирает город, потом район, потом улицу.
Адаптировать под запрос

TL;DR

Prompt Chaining — техника, которая разбивает сложную многоуровневую классификацию на цепочку отдельных запросов. Каждый следующий промпт использует ответ предыдущего и предлагает только релевантный подсписок вариантов: сначала широкий уровень, потом уже по его результату — узкий.

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

Решение: три отдельных промпта вместо одного. На первом шаге — только список верхнего уровня. На втором — только подкатегории внутри выбранного. На третьем — только темы внутри выбранного подраздела. Каждый шаг сокращает пространство выбора и снижает ошибку.


🔬

Схема метода

Три отдельных запроса — каждый в той же переписке.

ЗАПРОС 1: Дай текст + список категорий верхнего уровня
          → LLM выбирает одну категорию

ЗАПРОС 2: Дай тот же текст + список подкатегорий
          ТОЛЬКО внутри выбранной категории
          → LLM выбирает одну подкатегорию

ЗАПРОС 3: Дай тот же текст + список конкретных тем
          ТОЛЬКО внутри выбранной подкатегории
          → LLM выбирает финальную метку

Важно: каждый следующий запрос содержит сужённый список, а не полную таксономию. В этом и есть механика.


🚀

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

⚠️ Сильная зона метода: задачи с заранее заданной иерархией категорий. Слабая — когда категории размытые, субъективные или иерархии нет.


Задача: Ты продавец на Wildberries, у тебя 40 новых товаров. Нужно правильно разместить каждый в дереве категорий, чтобы карточки находили поиском. Дерево Wildberries глубокое: Одежда → Женская → Верхняя → Куртки утеплённые. Ошибёшься на первом уровне — потеряешь весь трафик.


Промпт 1 — верхний уровень:

Я добавляю товар на Wildberries.

Описание товара:
[вставь название и описание товара]

Выбери ОДНУ категорию верхнего уровня из этого списка:
— Одежда
— Обувь
— Дом и сад
— Электроника
— Красота и здоровье
— Спорт
— Детские товары

Ответь только названием категории, без объяснений.

Промпт 2 — средний уровень:

Товар: [то же описание]
Мы уже определили: категория верхнего уровня — [ответ из шага 1].

Теперь выбери подкатегорию из этого списка:
[вставь только подкатегории внутри выбранной категории]

Ответь только названием, без объяснений.

Промпт 3 — нижний уровень:

Товар: [то же описание]
Категория: [ответ шага 1] → [ответ шага 2]

Выбери финальную подкатегорию из этого списка:
[вставь только подкатегории третьего уровня]

Ответь только названием.

Результат: На каждый запрос модель даст короткий чёткий ответ — одно название категории. По итогу трёх запросов получишь путь вида: «Одежда → Женская → Куртки утеплённые». Если добавить few-shot (примеры похожих товаров с правильными метками) в каждый промпт, точность вырастет ещё заметнее.


🧠

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

Слабость LLM: когда в промпте длинный список вариантов всех уровней сразу, модель теряется в пространстве выбора. Она видит сотни меток — и начинает угадывать «примерно правильную», а не логически сужать.

Сильная сторона LLM: модель хорошо справляется с выбором из короткого, конкретного списка вариантов. Это она делает уверенно. Ключевое слово — короткого.

Как метод использует сильное: вместо одного большого выбора мы даём серию маленьких. Каждый раз модель смотрит только на 4–10 вариантов, а не на 100+. Ошибиться на маленьком списке значительно сложнее.

Рычаги управления: - Количество шагов → если иерархия двухуровневая, хватит двух запросов вместо трёх - Few-shot примеры в каждом промпте → добавь 1–2 примера правильной классификации похожих текстов — точность растёт, особенно на втором и третьем уровнях - Температура ~0.8 → исследование показало, что это лучше крайностей: нулевая температура (строго детерминированная) справляется хуже, чем умеренная. В ChatGPT температуру не настроить напрямую, но модели по умолчанию близки к этому значению - Инструкция "только название" → убирает объяснения и лишний текст, делает результат машинообрабатываемым


📋

Шаблон промпта

Промпт 1 — верхний уровень:

Классифицируй {объект} по следующей системе категорий.

{объект}: {описание или текст}

Выбери ОДНУ категорию из списка:
{список категорий верхнего уровня — по одной на строку}

Ответь только названием категории.

Промпт 2 — средний уровень:

{объект}: {то же описание}
Уровень 1: {ответ из промпта 1}

Теперь выбери подкатегорию:
{список подкатегорий только внутри выбранной категории}

Ответь только названием.

Промпт 3 — финальный уровень:

{объект}: {то же описание}
Уровень 1: {ответ 1} → Уровень 2: {ответ 2}

Выбери финальную категорию:
{список финальных категорий внутри выбранной подкатегории}

Ответь только названием.

Что подставлять: - {объект} — что классифицируем: товар, статья, задача, заявка, резюме - {описание или текст} — текст, по которому классифицируем - Списки категорий — твоё дерево категорий, нарезанное по уровням


🚀 Быстрый старт — вставь в чат:

Вот шаблон Prompt Chaining для иерархической классификации.
Адаптируй под мою задачу: {опиши свою задачу}.
Задавай вопросы, чтобы заполнить поля.

[вставить шаблон выше]

LLM спросит твои категории и их структуру — потому что без конкретного дерева категорий цепочка не работает. Она возьмёт паттерн из шаблона и подставит твои уровни.


⚠️

Ограничения

⚠️ Нет иерархии — нет смысла: Если у тебя плоский список категорий без уровней вложенности, обычного zero-shot или few-shot промпта будет достаточно. Цепочка здесь избыточна.

⚠️ Третий уровень нестабилен: Даже с Prompt Chaining точность на самом глубоком уровне иерархии падает примерно до 50%. Чем точнее и уже тема — тем выше риск ошибки. Для критичных задач третий уровень стоит проверять вручную.

⚠️ Нужна готовая таксономия: Метод работает только когда у тебя есть чёткое дерево категорий. Если категории размытые или субъективные — модель всё равно будет угадывать.

⚠️ Длинные многозначные метки: Если названия категорий длинные и похожи друг на друга («Гидрология, лимнология, городское водоснабжение» vs «Гидрогеология, гидрология» и т.д.) — модель путается вне зависимости от метода.

⚠️ Трата токенов: Три запроса вместо одного. Для разовых задач — нормально. Для обработки тысяч объектов — нужно автоматизировать, что требует кода.


🔗

Ресурсы

Работа: Automating Categorization of Scientific Texts with In-Context Learning and Prompt-Chaining in Large Language Models

Авторы: Gautam Kishore Shahi, Oliver Hummel — Technische Hochschule Mannheim, Germany

Контакт: g.shahi@hs-mannheim.de

Датасет: FORC (Field of Research Classification) Shared Task — 50 441 научных текстов

Таксономия: ORKG (Open Research Knowledge Graph) — https://orkg.org/fields


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

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

Попросишь LLM выбрать из 100+ вариантов сразу — она не сужает пространство логически, она угадывает «примерно подходящее». Метод Prompt Chaining позволяет точно классифицировать тексты, товары и документы по сложным многоуровневым деревьям категорий — точнее, чем один большой запрос. Фишка: на каждый уровень иерархии — отдельный запрос, и каждый следующий видит только подсписок внутри уже выбранного. Модель не «прыгает» через уровни, она последовательно сужает — как человек, который сначала выбирает город, потом район, потом улицу.

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

Три отдельных запроса, каждый короче предыдущего: 1. Первый запрос — только список верхнего уровня (5–10 вариантов). Модель выбирает одну категорию. 2. Второй запрос — список подкатегорий только внутри выбранной. Снова 5–10 вариантов. Модель выбирает одну. 3. Третий запрос — финальный список тем внутри выбранной подкатегории. На каждом шаге — уверенный маленький выбор вместо одного большого неуверенного. Дополнительно: добавь в каждый промпт 1–2 примера правильной классификации похожих объектов (few-shot — подсказки с готовыми ответами). Исследование показало, что это дополнительно подтягивает точность на всех уровнях.

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

LLM хорошо справляется с выбором из короткого конкретного списка — 5–10 вариантов. Из длинного — плохо. Когда вся таксономия в одном промпте, модель видит сотни похожих меток и начинает ехать по верхам. Большой список — это не выбор, это угадайка. Цепочка убирает лишний шум на каждом шаге, и модель не теряется. Ещё один нетривиальный момент из исследования: низкая температура (строгая, детерминированная) проигрывает умеренной — около 0.8. В ChatGPT температуру напрямую не настроишь, но модели по умолчанию близки к этому диапазону. Важная оговорка: даже с цепочкой третий уровень иерархии даёт около 50% точности — чем глубже и уже тема, тем выше риск ошибки. Финальный уровень желательно проверять.

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

Товарные каталоги маркетплейсов (Wildberries, Ozon) → расстановка карточек по глубокому дереву категорий, особенно когда на третьем уровне больше 20 вариантов. Отдел персонала → сортировка резюме и заявок по специализациям и уровням должностей. Контент-менеджеры → тегирование статей, видео, кейсов по вложенным рубрикам. Базы знаний → классификация обращений, документов, задач по отделам и темам. НЕ подходит для: плоских списков без вложенности — там обычный промпт справится быстрее и дешевле. И не поможет, если у тебя вообще нет готового дерева категорий: метод работает только с заранее структурированной таксономией.

Мини-рецепт

1. Подготовь дерево категорий: нарежь его по уровням — отдельный список для каждого. Не вали всё в один промпт.
2. Первый запрос — верхний уровень: дай текст или описание объекта + список категорий верхнего уровня. Попроси ответить только одним словом — названием категории.
3. Второй запрос — средний уровень: тот же текст + «Уровень 1: [ответ из шага 1]» + только подкатегории внутри выбранной. Снова — только название.
4. Третий запрос — финальный уровень: тот же текст + оба предыдущих ответа + только темы внутри выбранной подкатегории.
5. Точно нужно: в каждый промпт добавь 1–2 примера — покажи похожий объект с правильной меткой на этом уровне. Без примеров работает, с примерами — заметно лучше.
6. Третий уровень нестабилен: проверяй финальные метки вручную, если точность критична.

Примеры

[ПЛОХО] : Определи раздел, подраздел и конкретную тему для этой статьи по физике согласно классификации OECD: [полный список 150 категорий через запятую]
[ХОРОШО] : Запрос 1: Классифицируй научную статью. Текст: [аннотация]. Выбери ОДНУ область из списка: Естественные науки / Технические науки / Медицина / Социальные науки / Гуманитарные науки. Ответь только названием области. Запрос 2: Текст: [та же аннотация]. Область: Естественные науки. Выбери ОДНУ дисциплину: Математика / Компьютерные науки / Физика / Химия / Биология / Науки о Земле. Ответь только названием дисциплины. Запрос 3: Текст: [та же аннотация]. Область: Естественные науки → Физика. Выбери ОДНУ тему: Физика конденсированного состояния / Ядерная физика / Оптика / Астрофизика / Физика частиц. Ответь только названием темы.
Источник: Automating Categorization of Scientific Texts with In-Context Learning and Prompt-Chaining in Large Language Models
ArXiv ID: 2604.23430 | Сгенерировано: 2026-04-28 05:41

Проблемы LLM

ПроблемаСутьКак обойти
Точность падает когда список вариантов длинныйДаёшь модели 50–100+ вариантов для выбора. Она не сужает логически. Она угадывает «примерно похожее». Чем больше список — тем выше вероятность ошибки. Проблема для любой задачи с выбором из большого числа вариантов: категории, теги, коды, рубрикиРазбей большой список на уровни. Сначала выбор из 5–10 крупных групп. Потом из 5–10 вариантов внутри выбранной группы. Каждый раз — короткий список, не полный

Методы

МетодСуть
Цепочка запросов с сужением — точная классификация по иерархииЕсть иерархия категорий с уровнями вложенности. Не давай всё сразу. Разбей на цепочку: Запрос 1 — только верхний уровень (5–10 вариантов) получаешь ответ. Запрос 2 — тот же текст + только подкатегории внутри выбранного получаешь ответ. Запрос 3 — тот же текст + только финальный уровень внутри выбранного. Каждый запрос заканчивается: Ответь только названием категории. Почему работает: модель хорошо выбирает из короткого списка. Плохо — из длинного. Цепочка превращает один большой выбор в несколько маленьких. Когда применять: есть готовое дерево категорий с чёткими уровнями — товары, контент, заявки, резюме. Когда не работает: плоский список без иерархии — обычный запрос проще. Третий уровень нестабилен — точность около 50%, стоит проверять вручную
📖 Простыми словами

Automating Categorization of Scientific Texts with In-Context Learning andPrompt-Chaining inLargeLanguageModels

arXiv: 2604.23430

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

Это как если бы ты пришел в огромную библиотеку и спросил у библиотекаря, где лежит книга про квантовую физику. Плохой библиотекарь вывалил бы перед тобой список всех десяти тысяч книг в здании — разбирайся сам. Хороший же сначала отправит тебя в зал естественных наук, там укажет на стеллаж с физикой, и только в конце ткнет пальцем в нужную полку. Prompt Chaining делает ровно это: он превращает хаотичный поиск в логичный маршрут, где каждый следующий шаг отсекает 90% ненужного мусора.

В реальности это работает через цепочку из трех запросов. Сначала мы скармливаем модели текст и просим выбрать верхний уровень, например, Точные науки. Получив ответ, мы даем второй промпт, где список вариантов уже сужен до физики, математики и химии. В финале модель выбирает конкретную подкатегорию вроде Квантовой оптики. Главная фишка здесь — релевантный контекст: на каждом этапе у AI перед глазами всего несколько вариантов, а не бесконечная простыня текста, в которой так легко запутаться.

Хотя метод тестировали на скучных научных статьях, принцип универсален. Эту схему можно натянуть на любую сложную классификацию: от сортировки жалоб клиентов в техподдержке до тегирования товаров в маркетплейсе. Везде, где есть жесткая иерархия, цепочка промптов разносит классический подход в пух и прах. Но есть нюанс: если категории размыты или субъективны, магия исчезает. Метод требует четкой структуры, иначе модель просто начнет уверенно сворачивать не туда в самом начале пути.

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

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

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

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