3,583 papers
arXiv:2608.00538 80 1 авг. 2026 г. FREE

DE-NER: LLM сама себе задаёт уточняющие вопросы, прежде чем назвать сущности в тексте

КЛЮЧЕВАЯ СУТЬ
21% точности на спорных сущностях с одной попытки — модель угадывает тип и не пересматривает догадку, даже если она явно кривая. DE-NER позволяет доставать имена, компании, даты и термины из текста там, где обычный промпт путается — сокращения, омонимы, спорные границы названий. Фишка: модель не отвечает сразу, а устраивает себе внутренний допрос — делает черновик, потом в роли Вопрошающего находит слабое место, в роли Отвечающего лезет обратно в текст за доказательством. После 2-4 раундов точность на спорных случаях подскакивает в разы.
Адаптировать под запрос

TL;DR

DE-NER — техника извлечения сущностей (имён, организаций, дат, терминов) из текста, где модель не выдаёт ответ сразу, а сначала прогоняет внутренний диалог: делает черновой вариант, потом в роли "Вопрошающего" задаёт себе уточняющий вопрос про слабое место в этом варианте, в роли "Отвечающего" отвечает на него, опираясь только на текст, и после нескольких раундов в роли "Финализатора" выдаёт итоговый список.

Модели плохо справляются с извлечением сущностей именно там, где есть неоднозначность — непонятно, к какому типу отнести объект, где заканчивается название, не пропущено ли что-то. В одну попытку модель "застревает" на первой догадке и не пересматривает её. На категории смешанных/спорных сущностей (типа "разное") точность в одношаговом промпте была катастрофически низкой — около 21%.

DE-NER разбивает эту неоднозначность на конкретные узкие вопросы по 4 категориям: тип неясен, граница спорная, сущность пропущена, тип назначен неверно. За 2-4 раунда такого самоопроса модель находит и исправляет ошибки черновика, прежде чем дать финальный ответ.


🔬

Схема метода

ШАГ 0 (один запрос): Черновой список сущностей → без диалога, просто "извлеки сущности"

Повторить N раз (N = 2-4):
  ШАГ N.1 (роль "Вопрошающий"): Один уточняющий вопрос по категории 
    [тип неясен / граница спорная / пропущена сущность / тип неверен] 
    → текст вопроса
  ШАГ N.2 (роль "Отвечающий"): Ответ на вопрос строго по тексту 
    → текст ответа

ШАГ ФИНАЛ (роль "Финализатор"): Итоговый список сущностей с учётом всего диалога 
    → финальный JSON-список

Все шаги можно выполнить в одном промпте — модель проигрывает все роли последовательно в одном ответе.


🚀

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

Задача: Ты SMM-менеджер, и тебе нужно из дайджеста новостей про российские IT-стартапы вытащить упоминания компаний, персон и продуктов — для тегов в посте. Текст полон сокращений и неоднозначностей: "Т-Банк" — это компания или продукт другой компании, "Точка" — банк или просто слово.

Промпт:

Ты выполняешь задачу извлечения сущностей через внутренний диалог с самим собой.

ТЕКСТ: «Т-Банк совместно с командой Точка запустил пилот нового сервиса Юmoney Pro. 
В презентации участвовал основатель Точки Дмитрий, а также представитель ЦБ.»

ТИПЫ СУЩНОСТЕЙ: Компания, Продукт, Персона, Организация

Выполни по шагам, показывая каждый шаг:

ШАГ 0 — Черновой ответ:
Извлеки сущности из текста. Выведи список в формате [Сущность: Тип].

Повтори 3 раза следующий цикл:

ШАГ N.1 — Вопрошающий:
Посмотри на черновой ответ и историю диалога. Задай ОДИН уточняющий вопрос, 
который лучше всего поможет исправить ошибку. Вопрос должен относиться к одной из категорий:
- [Неоднозначность типа] — тип сущности неясен
- [Спорная граница] — неясно, где начинается/заканчивается сущность
- [Пропущенная сущность] — возможно, упущена сущность
- [Ошибка типа] — сущность может быть неправильно классифицирована
Не повторяй вопросы, которые уже были заданы.

ШАГ N.2 — Отвечающий:
Ответь на этот вопрос, опираясь СТРОГО на текст, не выдумывай.

ФИНАЛЬНЫЙ ШАГ — Финализатор:
Учитывая весь диалог выше, выведи финальный список сущностей 
в формате [Сущность: Тип].

Результат: Модель покажет черновой список (вероятно, спутает "Точка" как продукт vs компанию, упустит "ЦБ" как организацию), затем 3 раунда внутренних вопросов-ответов вида "Точка в тексте — это название сервиса или отдельной компании?", "ЦБ упомянут как организация — это пропущенная сущность?". В финале — уточнённый список, где такие спорные случаи разрешены с опорой на контекст, а не угаданы с первого раза.


🧠

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

Модель, отвечая на всё сразу, не может пересмотреть свою первую догадку — она просто выдаёт текст один раз и на этом останавливается. Особенно плохо это работает на объектах, которые можно отнести к разным категориям одновременно.

Но модель отлично отвечает на узкий конкретный вопрос. Спросить "это организация или продукт?" — гораздо точнее, чем сразу просить "найди все сущности и определи их тип".

DE-NER использует эту разницу: превращает одну сложную неоднозначную задачу в серию узких точных вопросов, а черновой ответ — в чек-лист, который модель сама себе проверяет и исправляет.

Рычаги управления: - Число раундов (N) — 2-4 в исследовании; для простых текстов хватит 2, для сложных (юридические, медицинские) стоит попробовать 4. - Категории вопросов — можно заменить под свою задачу. Для анализа отзывов клиентов вместо "тип неясен" подойдёт "тональность неясна" или "категория товара под вопросом". - Роли — можно дать более конкретные персоны ("ты дотошный редактор, который придирается к каждому слову") для более острых вопросов.


📋

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

Ты выполняешь задачу извлечения сущностей через внутренний диалог с самим собой.

ТЕКСТ: {текст}
ТИПЫ СУЩНОСТЕЙ: {типы_сущностей}

Выполни по шагам, показывая каждый шаг:

ШАГ 0 — Черновой ответ:
Извлеки сущности из текста. Выведи список в формате [Сущность: Тип].

Повтори {число_раундов} раз следующий цикл:

ШАГ N.1 — Вопрошающий:
Посмотри на черновой ответ и историю диалога. Задай ОДИН уточняющий вопрос, 
который лучше всего поможет исправить ошибку. Вопрос должен относиться к одной из категорий:
- [Неоднозначность типа] — тип сущности неясен
- [Спорная граница] — неясно, где начинается/заканчивается сущность
- [Пропущенная сущность] — возможно, упущена сущность
- [Ошибка типа] — сущность может быть неправильно классифицирована
Не повторяй вопросы, которые уже были заданы.

ШАГ N.2 — Отвечающий:
Ответь на этот вопрос, опираясь СТРОГО на текст, не выдумывай.

ФИНАЛЬНЫЙ ШАГ — Финализатор:
Учитывая весь диалог выше, выведи финальный список сущностей 
в формате [Сущность: Тип].

Подставь {текст} — фрагмент, из которого нужно извлечь объекты, {типы_сущностей} — список категорий (компании, персоны, продукты, локации и т.д.), {число_раундов} — 2-4, больше раундов для более неоднозначных текстов.

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

Вот шаблон DE-NER для извлечения сущностей через самодиалог. Адаптируй под мою задачу: {твоя задача}.
Задавай вопросы, чтобы заполнить поля.

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

LLM спросит какие категории сущностей тебе нужны и сколько раундов уточнений сделать — потому что метод работает через конкретные категории неоднозначности, а не абстрактный список.


⚠️

Ограничения

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

⚠️ Примеры (few-shot) вредят: если добавить в промпт готовые примеры разметки, точность падает, и чем больше примеров — тем хуже. Метод рассчитан на рассуждение по конкретному случаю, а не на подгонку под образцы.

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


🔍

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

Исследователи взяли три эталонных набора текстов — новости (CoNLL03), статьи из Википедии (WikiGold) и биомедицинские тексты (GENIA) — и сравнили три подхода: обычный прямой запрос, диалог без дообучения и полный DE-NER с обученным "Вопрошающим". Вопрошающего дообучали без разметки: модель прогоняла диалог несколько раз с разной "температурой", выбирала самый частый ответ голосованием и учила модель повторять именно тот путь рассуждений, который привёл к этому ответу.

DE-NER в среднем дал прирост в 3.75 балла точности по сравнению с конкурентами, но самое интересное — прирост оказался неравномерным: на чётких категориях (имена людей) улучшение было небольшим, а на смешанной/спорной категории — почти +28 баллов. Это подтверждает главный вывод: диалог помогает именно там, где есть неоднозначность, а не улучшает всё подряд.

Неожиданным результатом стало то, что добавление примеров-подсказок (few-shot) портило результат — авторы объясняют это тем, что метод заточен под рассуждение о конкретном тексте, а фиксированные примеры сбивают модель на поверхностные паттерны вместо разбора конкретного случая.


🔗

Ресурсы

DE-NER: Zero-shot Named Entity Recognition via Dialogue Elicitation of Large Language Models — Xuankang Zhang, Jiangming Liu, Yunnan University. Код: github.com/kkkenshi/DE-NER


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

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

21% точности на спорных сущностях с одной попытки — модель угадывает тип и не пересматривает догадку, даже если она явно кривая. DE-NER позволяет доставать имена, компании, даты и термины из текста там, где обычный промпт путается — сокращения, омонимы, спорные границы названий. Фишка: модель не отвечает сразу, а устраивает себе внутренний допрос — делает черновик, потом в роли Вопрошающего находит слабое место, в роли Отвечающего лезет обратно в текст за доказательством. После 2-4 раундов точность на спорных случаях подскакивает в разы.

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

Никогда не проси модель решить всё одним махом — дроби неоднозначность на конкретные вопросы. Процесс простой: черновик → вопрос по одной из 4 категорий (тип неясен, граница спорная, сущность пропущена, тип назначен неверно) → ответ строго по тексту → повтор 2-4 раза → финальный список. Узкий вопрос всегда точнее общей команды "найди все сущности" — это и есть весь трюк.

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

Модель, отвечая сразу, не может передумать — выдала текст один раз и остановилась. Но если спросить "это компания или продукт?" — ответ будет куда точнее, чем на общий запрос без уточнений. Модель отлично различает узкие альтернативы, но плохо держит в голове всю неоднозначность целиком — DE-NER просто нарезает одну сложную задачу на несколько простых вопросов, на которые модель отвечает почти без ошибок.

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

Извлечение сущностей → конкретно для текстов с сокращениями, омонимами и спорными названиями (юридические договоры, медицинские записи, новости про стартапы с похожими названиями продуктов и компаний), особенно когда обычный промпт путает тип или пропускает объект. НЕ подходит для слабых моделей без базовых знаний — диалог там только портит результат, и НЕ подходит если в тексте нет реальной неоднозначности — лишние раунды просто тратят токены впустую.

Мини-рецепт

1. Сделай черновик: одним запросом попроси список сущностей без всякого диалога
2. Задай категории вопросов: тип неясен, граница спорная, сущность пропущена, тип назначен неверно — под свою задачу можно заменить (для отзывов: тональность неясна, категория товара под вопросом)
3. Запусти 2-4 раунда: роль Вопрошающего задаёт один вопрос по черновику, роль Отвечающего отвечает строго по тексту, без выдумок
4. Не повторяй вопросы: явно укажи модели не задавать один и тот же вопрос дважды
5. Финализируй: попроси собрать итоговый список с учётом всего диалога
6. Не добавляй готовые примеры разметки — чем больше их в промпте, тем хуже результат, метод рассчитан на рассуждение, а не подгонку

Примеры

[ПЛОХО] : Извлеки все сущности из текста: компании, персоны, продукты
[ХОРОШО] : ШАГ 0: дай черновой список сущностей. Затем 3 раунда: Вопрошающий задаёт один вопрос из категорий [тип неясен / граница спорная / пропущена сущность / тип неверен], Отвечающий отвечает строго по тексту. В финале собери уточнённый список
Источник: DE-NER: Zero-shot Named Entity Recognition via Dialogue Elicitation of Large Language Models
ArXiv ID: 2608.00538 | Сгенерировано: 2026-08-04 04:23

Проблемы LLM

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

Методы

МетодСуть
Самодиалог с узкими вопросами по категориям неоднозначностиСначала модель делает черновой ответ. Дальше 2-4 раза повторяется цикл: роль "Вопрошающий" задаёт один узкий вопрос по конкретной категории неясности (тип неверен, граница спорная, объект пропущен, тип неясен), роль "Отвечающий" отвечает строго по тексту. В конце роль "Финализатор" выдаёт итог с учётом всего диалога. Всё можно сделать в одном промпте, без реального чата — модель проигрывает роли по очереди. Работает потому что узкий конкретный вопрос модель решает точнее, чем сразу всю сложную задачу. Черновик становится чек-листом, который модель сама себе проверяет. Работает: классификация, извлечение, разметка с неоднозначными категориями. Не работает: маленькие/слабые модели (диалог только вредит), задачи с few-shot примерами в промпте

Тезисы

ТезисКомментарий
Узкий конкретный вопрос модель решает точнее, чем сложную комплексную задачуКогда просишь модель сделать всё сразу ("найди сущности и определи типы"), внимание распыляется и модель угадывает на неоднозначных местах. Когда задаёшь один узкий вопрос ("это организация или продукт?"), модель фокусируется и отвечает точнее. Применяй: разбивай сложные классификационные запросы на серию узких точных вопросов вместо одной общей просьбы
Примеры-образцы мешают рассуждению по неоднозначным случаямЕсли задача требует разбираться в конкретном контексте, а не подгонять ответ под шаблон, добавление примеров разметки (few-shot) сбивает модель. Она начинает копировать образец вместо анализа текста, и чем больше примеров — тем хуже итог. Применяй: для задач с явной неоднозначностью используй только инструкции и рассуждение, без готовых примеров разметки
📖 Простыми словами

DE-NER : Zero-shot Named Entity Recognition via Dialogue Elicitation ofLargeLanguageModels

arXiv: 2608.00538

Классическое извлечение данных из текста работает как допрос в полиции: ты задаешь вопрос, и модель выдает список имен и дат. Проблема в том, что LLM часто «галлюцинирует» или путается в сложных случаях, выдавая первый пришедший в голову вариант за истину. Метод DE-NER меняет саму механику процесса: вместо того чтобы сразу вывалить ответ, модель устраивает внутри себя контролируемый спор. Она разделяется на несколько ролей и прогоняет информацию через фильтр сомнения, пока не отсеет весь мусор и неоднозначности.

Это как если бы ты попросил пьяного друга вспомнить, кто был на вечеринке, а он начал бы сам с собой дискутировать: «Так, был Вася... Погоди, а Вася ли это был? Нет, Вася в это время был в отпуске, значит, это был Петя в Васиной куртке». В итоге ты получаешь не просто первый попавшийся бред, а верифицированный результат, который прошел через внутреннюю проверку на вшивость. Модель сама себе выступает и адвокатом, и прокурором, вычищая ошибки еще до того, как ты их увидишь.

В основе лежат три роли: Вопрошающий, Отвечающий и Финализатор. Сначала модель делает черновой набросок, затем Вопрошающий ищет в нем слабые места и задает уточняющие вопросы, а Отвечающий копается в исходном тексте, чтобы подтвердить или опровергнуть догадку. Например, если в тексте есть слово «Точка», система не запишет его в «банки» на автомате, а сначала выяснит, идет ли речь о финансовой организации или о знаке препинания в конце предложения. Только после нескольких раундов такой «прожарки» Финализатор выдает итоговый список сущностей.

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

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

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

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

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