3,583 papers
arXiv:2605.14053 73 13 мая 2026 г. FREE

Derivation Prompting: правила вывода вместо свободного рассуждения

КЛЮЧЕВАЯ СУТЬ
Модель галлюцинирует не потому что «не знает» — а потому что при свободном рассуждении у неё нет стоп-сигнала перед домыслом. Chain-of-Thought улучшает ситуацию, но не лечит: в цепочке нет правил того, КАК именно строить каждый промежуточный шаг. Derivation Prompting позволяет синтезировать точный ответ из нескольких документов — без домыслов и с полной прозрачностью того, где именно что-то пошло не так. Фишка: дать модели 6 явных операций (Extract, Concat, Instantiate и др.) и запретить выходить за их рамки. Модель строит дерево вывода — каждый шаг привязан к конкретным источникам, каждый промежуточный вывод читаемый. Ошибку видно в конкретном узле, а не в конце чёрного ящика.
Адаптировать под запрос

TL;DR

Derivation Prompting — техника, которая заставляет модель строить ответ по явным правилам вывода, а не "думать как получится". Вместо того чтобы просить модель "ответь на основе этих текстов", вы даёте ей набор правил комбинирования информации и просите применять их шаг за шагом — пока не получится финальный ответ.

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

Метод решает это через шесть именованных правил (Извлечь, Объединить, Конкретизировать, Скомпоновать, Уточнить, НетИнформации). Каждый шаг рассуждения — это применение одного конкретного правила к конкретным фрагментам. Весь процесс записывается в виде дерева вывода. Результат: видно, где модель ошиблась, а неверных ответов становится заметно меньше.


🔬

Схема метода

ПОДГОТОВКА: Собери фрагменты текста (гипотезы h1, h2, h3...)
             + сформулируй вопрос q

ОДИН ПРОМПТ: Модель симулирует цикл вывода:
  ИТЕРАЦИЯ 1:
    → Выбрать правило из [Извлечь / Объединить / Конкретизировать /
                          Скомпоновать / Уточнить / НетИнформации]
    → Указать какие гипотезы использует
    → Сгенерировать промежуточный вывод c1
    → Проверить: c1 = финальный ответ? Нет → добавить c1 в гипотезы
  ИТЕРАЦИЯ 2, 3... (до финального ответа)

РЕЗУЛЬТАТ: Дерево вывода + финальный ответ

Всё происходит внутри одного запроса — через few-shot примеры (примеры выполнения цикла вручную), которые задают паттерн. Модель следует паттерну и генерирует весь цикл за один раз.


🚀

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

Задача: Вы HR-менеджер. Получили вопрос от сотрудника: "Если я беру отпуск с понедельника, праздники в середине недели считаются как дни отпуска?" Под рукой — три фрагмента из Трудового кодекса и внутреннего положения об отпусках.

Промпт:

Ты — ассистент, который отвечает на вопросы строго на основе 
предоставленных фрагментов текста. Ты строишь ответ через 
последовательное применение правил вывода.

ПРАВИЛА ВЫВОДА:
- Извлечь(h): вытащить конкретную часть гипотезы h как вывод
- Объединить(h1, h2): объединить две НЕЗАВИСИМЫЕ гипотезы в одну
- Конкретизировать(h): применить общее правило из h к конкретному случаю вопроса
- Скомпоновать(h1, h2): объединить гипотезы, связанные ОБЩИМ элементом
- Уточнить(h): слегка переформулировать h под вопрос, не меняя смысл
- НетИнформации(): использовать если ни одна гипотеза не даёт ответа

ПРИМЕР ВЫВОДА (для другого вопроса):
Вопрос: Нужна ли виза в Германию для белорусского паспорта?
h1: "Граждане стран СНГ для въезда в страны Шенгенской зоны 
     обязаны оформлять шенгенскую визу"
h2: "Беларусь входит в состав Содружества Независимых Государств"
---
Шаг 1: Извлечь(h1) → c1: "Для въезда в Шенгенскую зону гражданам 
       СНГ нужна шенгенская виза" [не финальный]
Шаг 2: Скомпоновать(c1, h2) → c2: "Беларусь — страна СНГ, значит 
       гражданам белорусского паспорта нужна шенгенская виза 
       для въезда в Германию" [финальный]
---

ТВОЙ ВОПРОС: Если отпуск начинается с понедельника, 
             входят ли праздники в середине недели в дни отпуска?

ФРАГМЕНТЫ ТЕКСТА:
h1: [вставь первый фрагмент из ТК или положения]
h2: [вставь второй фрагмент]
h3: [вставь третий фрагмент]

Построй вывод по аналогии с примером. 
Указывай правило, гипотезы, промежуточный вывод и финальность каждого шага.

Результат: Модель покажет 2–4 шага вывода с явным указанием правила (например: "Шаг 1: Извлечь(h1) → ..."). Промежуточные выводы будут добавляться как новые гипотезы. В финале — конкретный ответ на вопрос. Если в текстах нет нужной информации — модель явно скажет об этом через правило НетИнформации, а не придумает ответ.


🧠

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

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

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

Работает это потому что few-shot примеры (образцы заполненного вывода) создают жёсткий паттерн генерации. Модель следует структуре примера — со всеми его ограничениями. Чем больше и качественнее примеры, тем строже модель держится паттерна. Поэтому метод лучше работает с мощными моделями — они точнее следуют инструкции.

Рычаги управления: - Правила → можно заменить или добавить свои. Например, для юридических задач добавить правило "Применить исключение(h1, h2)" — когда одна норма делает исключение из другой - Число few-shot примеров → больше примеров = строже следование паттерну; для простых задач хватит 1–2 - Правило НетИнформации → ключевой антигаллюцинатор. Если его не включить — модель будет пытаться ответить из "головы" - Число входных гипотез → чем больше фрагментов, тем длиннее дерево вывода; для коротких задач хватит 2–3


📋

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

Ты — ассистент, который строит ответ строго на основе предоставленных 
фрагментов текста через последовательное применение правил вывода.

ПРАВИЛА ВЫВОДА:
- Извлечь(h): вытащить конкретную часть гипотезы h как вывод
- Объединить(h1, h2): объединить две независимые гипотезы в одну
- Конкретизировать(h): применить общее правило из h к конкретному 
  случаю из вопроса
- Скомпоновать(h1, h2): объединить гипотезы через общий элемент
- Уточнить(h): слегка переформулировать h под вопрос, не меняя смысл
- НетИнформации(): если ни одна гипотеза не содержит нужных данных

ПРИМЕР (заполни вручную для своей области):
Вопрос: {пример_вопроса}
h1: "{пример_фрагмента_1}"
h2: "{пример_фрагмента_2}"
---
Шаг 1: {Правило}({аргументы}) → {промежуточный_вывод} 
        [финальный / не финальный]
Шаг 2: {Правило}({аргументы}) → {итоговый_вывод} [финальный]
---

ВОПРОС: {твой_вопрос}

ФРАГМЕНТЫ:
h1: "{фрагмент_текста_1}"
h2: "{фрагмент_текста_2}"
h3: "{фрагмент_текста_3}"

Построй вывод, следуя структуре примера. 
Для каждого шага укажи: правило, аргументы, вывод, финальность.

Что подставлять: - {пример_вопроса} — любой вопрос из твоей области с известным ответом - {пример_фрагмента_1/2} — реальные куски текста, которые дают ответ - Шаги примера заполни вручную, пройдя логику вывода сам — это и есть few-shot - {твой_вопрос} — реальный вопрос пользователя/сотрудника - {фрагмент_текста_1/2/3} — куски из документа, которые могут содержать ответ


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

Вот шаблон метода Derivation Prompting для ответов на вопросы 
по документам. Адаптируй под мою задачу: {твоя задача}.
Задай вопросы, чтобы заполнить все поля, особенно few-shot пример.

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

LLM спросит: какая предметная область, какой пример вопроса с известным ответом, какие документы ты используешь — потому что без конкретного few-shot примера под твою задачу метод не даст нужного паттерна. Она построит пример и адаптирует шаблон под твой контекст.


⚠️

Ограничения

⚠️ Слабые модели: С менее мощными моделями (уровень GPT-3.5, Haiku) метод сокращает неверные ответы, но одновременно снижает полноту — правильных полных ответов становится меньше. Используй GPT-4o, Claude Sonnet/Opus или аналоги.

⚠️ Нужен качественный few-shot пример: Без примера выполнения алгоритма метод не работает так же чётко. Придётся потратить время на его составление вручную. Примеры из исследования — на GitHub репозитория.

⚠️ Улучшает точность, не полноту: Метод снижает галлюцинации и ложные ответы, но не делает ответы более полными. Если информации в текстах не хватает — модель честно скажет НетИнформации, а не достроит ответ.

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

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


🔗

Ресурсы

Работа: Derivation Prompting: A Logic-Based Method for Improving Retrieval-Augmented Generation

GitHub с промптами: https://github.com/nsuruguay05/derivation-prompting

Авторы: Ignacio Sastre, Guillermo Moncecchi, Aiala Rosá

Институт: Instituto de Computación, Facultad de Ingeniería, Universidad de la República, Монтевидео, Уругвай


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

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

Модель галлюцинирует не потому что «не знает» — а потому что при свободном рассуждении у неё нет стоп-сигнала перед домыслом. Chain-of-Thought улучшает ситуацию, но не лечит: в цепочке нет правил того, КАК именно строить каждый промежуточный шаг. Derivation Prompting позволяет синтезировать точный ответ из нескольких документов — без домыслов и с полной прозрачностью того, где именно что-то пошло не так. Фишка: дать модели 6 явных операций (Extract, Concat, Instantiate и др.) и запретить выходить за их рамки. Модель строит дерево вывода — каждый шаг привязан к конкретным источникам, каждый промежуточный вывод читаемый. Ошибку видно в конкретном узле, а не в конце чёрного ящика.

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

Стандартный подход: дай источники + вопрос — модель рассуждает как хочет. Нет ограничений на механику — есть галлюцинации. Derivation Prompting меняет правила: каждый шаг рассуждения — это конкретная операция над конкретными кусками текста. Extract — вырви нужное из одного фрагмента. Instantiate — примени общее правило из источника к конкретному случаю из запроса. Compose — соедини два куска через общий элемент. И главное — NoInfo: если данных нет — скажи об этом явно, не придумывай. Не цепочка мыслей, а сборочный конвейер: у каждой операции чёткие входы и выход. Модель не едет по открытой дороге, а движется по рельсам.

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

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

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

Работа с несколькими документами одновременно — юридические регламенты, технические условия, нормативные акты, договоры — особенно когда нужно соединить условия из разных источников в один точный вывод. Хорошо работает: «из этих трёх кусков текста — дай мне ответ на этот конкретный вопрос». НЕ подходит для простых вопросов, где ответ лежит в одном абзаце — дерево вывода там избыточно. Важное ограничение: на слабых моделях метод снижает галлюцинации, но растёт число ответов «нет информации». Полная сила — только с мощными моделями: GPT-4o, Claude Sonnet и выше.

Мини-рецепт

1. Нарежь источники: Скопируй 3–5 конкретных фрагментов из документов — каждый обозначь [h1], [h2], [h3]. Не весь документ, а куски с нужной информацией.
2. Вставь правила операций: Возьми шесть правил — Extract, Concat, Instantiate, Compose, Refine, NoInfo — и объясни каждое одной строкой. NoInfo усиль явной пометкой: «если сомневаешься — используй NoInfo, не домысливай».
3. Задай формат каждого шага: Потребуй писать: правило → использованные гипотезы → вывод. Так дерево будет читаемым и проверяемым.
4. Сформулируй запрос с конкретными данными: Не «что мне делать», а «компания с такими-то параметрами — подходит ли под такие-то условия». Чем конкретнее данные, тем точнее Instantiate.
5. Осторожно с Refine: Если используешь — добавь ограничение «без добавления новых фактов». Именно это правило чаще других провоцирует домыслы — модель «слегка уточняет» и незаметно добавляет то, чего в источнике нет.

Примеры

[ПЛОХО] : Вот три договора. Что я должен по ним заплатить?
[ХОРОШО] : Ты применяешь метод Derivation Prompting. На каждом шаге выбираешь одно правило из набора и применяешь его к указанным гипотезам. Правила: - Extract: извлеки конкретную часть из одной гипотезы - Instantiate: примени общее правило из гипотезы к конкретному случаю из запроса - Compose: соедини две гипотезы через общий элемент в новый вывод - NoInfo: используй, если данных для шага нет — не домысливай Формат каждого шага: Шаг N: Правило: [название] Гипотезы: [h1], [h2] Вывод: [текст] [h1]: По договору штраф — 5% от суммы, если просрочка до 30 дней. [h2]: Просрочка считается с момента выставления счёта, а не подписания акта. [h3]: Счёт выставлен 1 апреля, акт подписан 10 апреля, оплата поступила 18 апреля. Запрос: сумма договора — 200 000 рублей. Есть ли просрочка и каков штраф? Построй дерево вывода. Последний шаг — финальный ответ.
Источник: DerivationPrompting: A Logic-Based Method for Improving Retrieval-Augmented Generation
ArXiv ID: 2605.14053 | Сгенерировано: 2026-05-15 05:41

Проблемы LLM

ПроблемаСутьКак обойти
При свободном синтезе нескольких источников модель домысливаетДаёшь модели три куска текста и просишь ответить. Она соединяет их — и незаметно добавляет то, чего в источниках нет. Нет ограничений на то, как строить промежуточные шаги. Цепочка рассуждений (CoT) помогает, но не устраняет проблему: в ней нет правил того, как именно объединять информацию. Обнаружить где оступилась — сложноЗадай явные правила комбинирования. Не "рассуждай пошагово", а "на каждом шаге выбери одно правило из списка и применяй только к указанным кускам"

Методы

МетодСуть
Явные правила комбинирования — ограничивают модель источникамиПередаёшь модели: (1) пронумерованные куски текста — гипотезы, (2) набор правил операций над ними, (3) вопрос. Модель строит дерево шагов: выбирает правило применяет к конкретным гипотезам получает промежуточный вывод идёт дальше. Каждый шаг привязан к источнику. Набор правил для старта: Extract — вытащи факт из одной гипотезы. Concat — объедини две независимые гипотезы. Instantiate — применить общее правило к конкретному случаю из запроса. Compose — объедини две гипотезы через общий элемент. Refine — уточни гипотезу под запрос (осторожно: чаще всего здесь появляются галлюцинации). NoInfo — ни одна гипотеза не содержит ответа на этот шаг. Почему работает: правила — ограничители. Модель не может "улететь" в домыслы без явного нарушения инструкции. Каждый шаг прозрачен и проверяем. Когда применять: несколько кусков документов, нужно синтезировать точный ответ, важно понять откуда что взялось. Когда не работать: простой вопрос с ответом в одном куске текста — дерево избыточно. Слабые модели (GPT-3.5, маленький Haiku) — снижают галлюцинации, но чаще отвечают "нет информации". Полная сила только на GPT-4o, Claude Sonnet/Opus
📖 Простыми словами

DerivationPrompting: A Logic-Based Method for Improving Retrieval-Augmented Generation

arXiv: 2605.14053

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

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

В реальности это работает через набор правил комбинирования. Допустим, у тебя есть три разных документа. Вместо того чтобы просто их прочитать, модель получает алгоритм: «Если в документе А сказано Х, а в документе Б сказано Y, то примени правило Z и получи вывод С». Она буквально строит дерево доказательств. Если ей нужно ответить на сложный вопрос по трудовому праву, она не просто «вспоминает» закон, а берет фрагмент кодекса, применяет к нему внутреннее положение компании и выдает результат только тогда, когда логическая цепочка замкнулась. Это снижает риск того, что модель «додумает» связь между абзацами, которой на самом деле нет.

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

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

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

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

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