3,583 papers
arXiv:2512.18999 74 21 дек. 2025 г. FREE

Модульный контроль vs End-to-End: как LLM справляются со сложными структурированными опросниками

КЛЮЧЕВАЯ СУТЬ
LLM плохо справляется с длинными структурированными формами (40+ вопросов) в режиме «всё в одном промпте». Модель пропускает вопросы, задаёт повторно, нарушает логические переходы, теряет точность извлечения данных. Китайские исследователи проверили на медицинских опросниках: на простых формах (10 вопросов) всё работает, на сложных (50+ вопросов с логикой) начинает сыпаться. Модульный подход разделяет задачи: сначала группируй похожие вопросы (семантическая кластеризация), потом работай с каждой группой отдельно — генерация, сбор ответов, извлечение данных. Программный код контролирует переходы между секциями. Результат: −47% диалоговых раундов, −87% токенов, стабильная точность.
Адаптировать под запрос

TL;DR

Исследование показало, что LLM в режиме end-to-end плохо справляются с длинными структурированными формами (анкетами, опросниками). Китайские исследователи сравнили два подхода к созданию чат-ботов для медицинского наблюдения: (1) дать LLM всю форму сразу и просить вести диалог, (2) разбить процесс на модули с программным контролем. На простых формах (10 вопросов) оба подхода сработали. Но на сложных (45-53 вопроса с логическими переходами) end-to-end начал сыпаться: пропускал вопросы, задавал повторно, нарушал логику переходов, неточно извлекал данные.

Главная проблема: При работе с длинными формами LLM теряет контроль над структурой диалога. Модель пытается одновременно генерировать вопросы, извлекать ответы, отслеживать логические переходы и помнить что уже спросила — в длинном контексте это приводит к сбоям. Точность извлечения информации падает с ростом длины формы. Частые ошибки: начинает не с первого вопроса, преждевременно завершает диалог, меняет формулировки вопросов, тратит 5-8x больше токенов.

Модульный подход разделяет задачи: один запрос группирует похожие вопросы (семантическая кластеризация), другой генерирует естественные формулировки, третий извлекает структурированные данные из ответов с помощью примеров (RAG), а программный код контролирует переходы между секциями. Это сократило число диалоговых раундов на 47%, потребление токенов — на 80-87%, и стабилизировало точность.

🔬

Схема методов

End-to-End подход (контрольная группа):

Один промпт содержит:
→ Всю форму целиком (структура, вопросы, опции, логика переходов)
→ История диалога
→ Инструкции: читай форму, задавай вопросы, извлекай ответы, управляй потоком
→ LLM делает всё сам → выдаёт JSON с результатом

На простых формах: работает
На сложных формах: сыпется (пропуски, повторы, нарушение логики)

Модульный подход (экспериментальная группа):

ШАГ 1: Структурирование формы → JSON с типами вопросов и логикой
ШАГ 2: Семантическая кластеризация → группы похожих вопросов
ШАГ 3: Генерация вопроса → естественная формулировка для группы
ШАГ 4: Извлечение намерения → структурированные данные из ответа (с few-shot)
ШАГ 5: Программный контроль → следующая группа вопросов по правилам

Каждый шаг — отдельный запрос к LLM.
Переходы между шагами контролирует код, не модель.
🧠

Почему это работает (и не работает)

Почему end-to-end сыпется:

LLM генерирует текст поочередно, а не "держит в голове" всю структуру формы. Когда промпт содержит 50+ вопросов плюс историю диалога, модель теряет фокус — какие вопросы уже задали, куда переходить по логике, в каком формате извлекать данные. Это как пытаться вести совещание, читать повестку и протоколировать одновременно — что-то обязательно упустишь.

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

Почему модульный подход работает:

Семантическая кластеризация объединяет связанные вопросы ("Курите ли вы?", "Сколько сигарет в день?", "Когда бросили?") в один диалоговый раунд — это зеркалит живое общение, где интервьюер не читает анкету построчно, а группирует темы. Сокращает число раундов почти вдвое.

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

Few-shot примеры из RAG показывают модели как извлекать структурированные данные из разговорных ответов. База знаний: "вопрос — ответ пациента — правильный JSON". Модель находит похожие диалоги и понимает паттерн.

Программный контроль потока гарантирует, что логические переходы ("если ответ X, задать вопрос Y") выполняются точно. LLM хороши в генерации, но слабы в строгом следовании правилам при длинном контексте — код компенсирует эту слабость.

📌

Применимые принципы для работы в чате

Принцип 1: Семантическая кластеризация

Если у тебя длинная анкета или чек-лист — не заливай всё в один промпт. Попроси LLM сначала сгруппировать похожие пункты.

Пример задачи: У тебя анкета для клиента на 40 вопросов (бриф для дизайна сайта).

Промпт кластеризации:

Вот анкета для клиента [вставить анкету].

Сгруппируй вопросы по смысловым блокам. Объедини те, которые про одну тему 
и можно задать вместе в разговоре. Дай названия группам.

Формат вывода:
ГРУППА 1: [Название]
- Вопрос 1
- Вопрос 2

ГРУППА 2: [Название]
...

Результат: LLM разобьёт анкету на 5-7 тематических блоков. Потом работай с каждым блоком отдельно — генерируй вопросы, собирай ответы, извлекай данные. Это эффективнее и точнее, чем пытаться управлять всей анкетой в одном промпте.


Принцип 2: Разделение задач (декомпозиция)

Для сложных структурированных задач не проси LLM делать всё за раз. Разбей на этапы: (1) генерация, (2) извлечение, (3) проверка.

Пример задачи: Собрать обратную связь от команды по 20 критериям, извлечь структурированные оценки.

Вместо: "Вот 20 критериев. Поговори с пользователем, собери ответы, выдай JSON."

Делай:

ЧАТ 1 (Генерация вопросов):
Вот критерии оценки [список]. Преобразуй в разговорные вопросы, 
сгруппируй по темам.

ЧАТ 2 (Сбор ответов):
[Копируешь вопросы из Чата 1]
Задавай эти вопросы по группам. Я буду отвечать.

ЧАТ 3 (Извлечение данных):
Вот диалог [копируешь из Чата 2]. 
Извлеки структурированные оценки по критериям.

Формат: {критерий: оценка/комментарий}

Почему работает: Каждый чат делает одну задачу. Короткий контекст = выше точность. Ты контролируешь переходы между этапами.


Принцип 3: Few-shot для извлечения структурированных данных

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

Пример задачи: Клиент описал бюджет словами, нужно извлечь число.

Промпт без примеров (слабо):

Извлеки бюджет из ответа клиента: "Ну рублей 200-300 тысяч, не больше"

Промпт с примерами (сильно):

Извлекай бюджет из ответов клиента в формат JSON.

ПРИМЕРЫ:

Ответ: "Да тысяч 100 примерно"
Результат: {"budget_min": 100000, "budget_max": 100000, "currency": "RUB"}

Ответ: "От полмиллиона до 700 где-то"
Результат: {"budget_min": 500000, "budget_max": 700000, "currency": "RUB"}

Ответ: "Ну рублей 200-300 тысяч, не больше"
Результат:

Результат: Модель видит паттерн и точно извлекает {"budget_min": 200000, "budget_max": 300000, "currency": "RUB"}.


⚠️

Ограничения

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

⚠️ Не для простых форм: Если у тебя 5-10 вопросов без логических переходов — end-to-end справится. Модульный подход оправдан при 20+ вопросах с вложенной логикой.

⚠️ Логические переходы вручную: В чате тебе придётся самому решать "если ответ X, то перейти к вопросу Y". LLM может подсказать, но контроль на тебе.

🔍

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

Команда из Чжэцзянского университета (Китай) взяла 32 реальные медицинские формы наблюдения и отобрала три типа: простую (10 вопросов, только выбор), среднюю (45 вопросов) и сложную (53 вопроса с множественным выбором, текстовыми полями и логическими переходами).

Создали трёх виртуальных пациентов с разными стилями общения: чёткий и краткий, чёткий но многословный, расплывчатый и уходит от темы. Каждого "пациента" прогнали через диалог с чат-ботами на базе Qwen-plus, DeepSeek-chat и GPT-4.1 — по 10 раундов на каждую форму.

Контрольная группа: end-to-end подход — один промпт с полной формой, историей диалога и инструкциями. Модель самостоятельно управляет всем процессом.

Экспериментальная группа: модульный подход на базе Qwen-plus — код контролирует поток, LLM выполняет отдельные задачи (кластеризация, генерация, извлечение).

Измеряли: число диалоговых раундов, потребление токенов, точность извлечения данных, типы ошибок (пропуски вопросов, повторы, нарушения логики).

Результаты удивили масштабом проблемы: На простой форме все модели сработали хорошо. Но на средней форме начались пропуски до 29 вопросов (GPT-4.1), повторы, ошибки в логических переходах. На сложной форме — катастрофа: модели начинали не с первого вопроса, преждевременно завершали диалог, изменяли формулировки, не извлекали структурированные данные из текстовых полей. Точность извлечения упала ниже 0.7 при длинных формах.

Модульный подход стабильно держал точность выше 0.9 на всех формах, сократил раунды на 47% и токены на 80-87%. Особенно впечатляет: GPT-4.1 в end-to-end режиме не смог завершить среднюю форму за 80 раундов ни разу — модульный подход справлялся за 23 раунда в среднем.

Инсайт для практики: Длинные структурированные задачи — слепое пятно LLM в режиме end-to-end. Как только форма превышает ~20-30 элементов с логикой — модель начинает деградировать. Разделение на модули не просто оптимизация, а необходимость для надёжности.

🔗

Ресурсы

Evaluating the Challenges of LLMs in Real-world Medical Follow-up: A Comparative Study and An Optimized Framework

Код и промпты: https://github.com/LiuJnYn/LLM_follow-up

Авторы: Jinyan Liu, Zikang Chen, Qinchuan Wang, Tan Xie, Heming Zheng, Xudong Lv College of Biomedical Engineering and Instrument Science, Zhejiang University, China


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

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

LLM плохо справляется с длинными структурированными формами (40+ вопросов) в режиме «всё в одном промпте». Модель пропускает вопросы, задаёт повторно, нарушает логические переходы, теряет точность извлечения данных. Китайские исследователи проверили на медицинских опросниках: на простых формах (10 вопросов) всё работает, на сложных (50+ вопросов с логикой) начинает сыпаться. Модульный подход разделяет задачи: сначала группируй похожие вопросы (семантическая кластеризация), потом работай с каждой группой отдельно — генерация, сбор ответов, извлечение данных. Программный код контролирует переходы между секциями. Результат: −47% диалоговых раундов, −87% токенов, стабильная точность.

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

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

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

Длинный контекст убивает фокус. Когда промпт содержит 50+ вопросов плюс историю диалога, модель теряет контроль — какие вопросы уже задала, куда переходить по логике, в каком формате извлекать данные. Это как вести совещание, читать повестку и протоколировать одновременно — что-то упустишь. Разделение задач позволяет каждому запросу делать одну вещь хорошо: генерация вопросов не смешана с извлечением данных, извлечение не смешано с контролем потока. Семантическая кластеризация зеркалит живое общение — интервьюер группирует темы, а не читает построчно. Исследование показало: модульный подход сократил раунды диалога на 47%, потребление токенов — на 80-87%, точность извлечения данных стабилизировалась даже на формах из 53 вопросов.

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

Для сбора данных по длинным структурированным формам → брифы для клиентов (дизайн, разработка), анкеты обратной связи, опросники удовлетворённости, медицинские анамнезы — когда 20+ вопросов с логическими переходами (если ответ X, задать вопрос Y). НЕ подходит для простых форм до 10 вопросов без вложенной логики — там end-to-end справится.

Мини-рецепт

1. Кластеризация: Дай LLM весь опросник, попроси сгруппировать похожие вопросы по темам. Промпт: Вот анкета [вставить]. Сгруппируй вопросы по смысловым блокам. Объедини те что про одну тему и можно задать вместе. Дай названия группам

2. Работа по группам: Для каждой группы отдельно — попроси LLM сгенерировать разговорные формулировки вопросов, собери ответы, извлеки данные. Три отдельных чата на группу

3. Извлечение с примерами: Когда извлекаешь структурированные данные из разговорных ответов — дай 2-3 примера формата. Промпт: ПРИМЕРЫ: Ответ: "Да тысяч 100 примерно" → {"budget": 100000}. Ответ: "От полмиллиона до 700" → {"budget_min": 500000, "budget_max": 700000}. Теперь извлеки из: [ответ клиента]

Примеры

[ПЛОХО] : Вот анкета для клиента на 40 вопросов [вставить всё]. Поговори с пользователем, собери ответы по всем пунктам, выдай структурированный JSON — модель начнёт пропускать вопросы, путать порядок, терять точность
[ХОРОШО] : Сгруппируй эти 40 вопросов по темам → получил 6 групп → для первой группы Преобразуй эти вопросы про бюджет в разговорные формулировки → собрал ответы → Извлеки бюджет из диалога [копируешь]. ПРИМЕРЫ: "тысяч 200-300" → {"budget_min": 200000, "budget_max": 300000} → точные данные. Повторяешь для остальных групп
Источник: Evaluating the Challenges of LLMs in Real-world Medical Follow-up: A Comparative Study and An Optimized Framework
ArXiv ID: 2512.18999 | Сгенерировано: 2026-01-08 23:11

Проблемы LLM

ПроблемаСутьКак обойти
LLM теряет контроль над структурой диалога при длинных формах (45+ вопросов с логикой)Один промпт содержит всю форму + историю диалога + инструкции модель пропускает вопросы, задаёт повторно, нарушает логические переходы, копирует полные предложения вместо структурированных данных; при 45-53 вопросах точность извлечения падает, токенов 5-8× большеРазбивай на отдельные запросы: (1) кластеризация похожих вопросов, (2) генерация формулировок для группы, (3) извлечение данных с few-shot примерами, (4) программный код контролирует переходы между группами

Тезисы

ТезисКомментарий
LLM генерирует текст поочередно, не держит всю структуру в памяти — теряет фокус при длинном контексте с множественными задачамиПромпт с 50+ вопросами + история + инструкции (генерируй/извлекай/управляй) модель теряет фокус: какие вопросы задали, куда переходить, в каком формате извлекать. Применяй: для длинных структурированных задач не проси LLM делать всё за раз
Один запрос = одна задача точнее чем всё сразу в длинном контекстеРазделение: генерация вопросов отдельно от извлечения данных, извлечение отдельно от контроля потока — короткие промпты с одной задачей выше точность, меньше токенов (80-87% в эксперименте). Применяй: декомпозируй сложные структурированные задачи на этапы (генерация сбор извлечение), контролируй переходы между запросами
📖 Простыми словами

Модульный контроль vs End-to-End: как LLM справляются со сложными структурированными опросниками

arXiv: 2512.18999

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

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

Исследователи доказали, что end-to-end подход — когда мы надеемся на «ум» одной модели — в медицине пока не катит. Реально работает только модульная архитектура. Это когда за логику опроса отвечает жесткий программный код, а нейронка используется только как «переводчик» с человеческого на компьютерный. Один модуль вытягивает конкретный ответ, другой проверяет его по базе, а третий решает, какой вопрос задать следующим. Только так можно добиться точности, когда на кону стоит диагноз или план лечения.

Хотя тестировали это на китайских медицинских опросниках, принцип универсален для любого сложного процесса. Будь то оформление страховки, технический аудит или сложный банковский скоринг — если в процессе больше 15-20 шагов, «голая» LLM начнет лажать. Нельзя доверять нейронке управление логикой, она должна быть лишь интерфейсом. Гибридные системы — это единственный способ заставить ИИ работать в реальном мире, а не только в демонстрационных чатах.

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

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

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

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