TL;DR
Исследователи измерили 124 лингвистические характеристики текста — длину слов и предложений, глубину грамматических конструкций, число подчинений — и проверили, можно ли по ним предсказать качество ответа LLM ещё до запуска модели. Оказалось: да, эти характеристики достоверно предсказывают, справится ли модель с задачей.
Главная находка простая и неожиданная: не словарный запас решает, а грамматическая сложность. Длинные предложения, вложенные подчинительные конструкции («если… в случае когда… при условии что…»), длинные цепочки определений — всё это снижает точность модели. При этом лексическое разнообразие (синонимы, богатство словаря) вообще не влияет на результат — можно повторять одни и те же слова, это не проблема.
Практический вывод: когда пишешь промпт с правилами или критериями классификации, следи за простотой грамматики, а не за красотой языка. Модель путается не от повторов слов, а от синтаксической запутанности фразы.
Схема метода
ШАГ 1: Проверь длину предложений в промпте → если больше 20 слов, разбей
ШАГ 2: Найди вложенные подчинения ("если... в случае когда...") → замени на простой список пунктов
ШАГ 3: Проверь цепочки предлогов и определений подряд → сократи структуру
ШАГ 4: Не трогай словарь и терминологию → разнообразие слов не влияет на качество
Это не многошаговый метод внутри одного запроса — это чек-лист для ревизии своего промпта перед отправкой.
Пример применения
Задача: Настраиваете промпт для GPT/Claude, который классифицирует тикеты поддержки банка: «срочно» / «не срочно». Определение критериев получилось длинным и с кучей вложенных условий.
Промпт:
Вот промпт, который я использую для классификации тикетов поддержки:
«Тикет считается срочным, если клиент сообщает о проблеме,
которая, в случае если она не будет решена в течение суток,
может привести к финансовым потерям, при условии что клиент
является премиум-пользователем или обращение связано с
блокировкой доступа к счёту, которая произошла вследствие
технической ошибки на стороне банка.»
Проверь этот промпт на грамматическую сложность:
1. Есть ли предложения длиннее 20 слов? Разбей их короче.
2. Есть ли вложенные подчинительные конструкции ("если... в случае
когда... при условии что")? Замени на простой список пунктов.
3. Есть ли длинные цепочки предлогов и определений подряд?
Упрости структуру.
4. Не меняй терминологию и лексику — синонимы и разнообразие слов
не влияют на качество, важна только грамматическая простота.
Выдай упрощённую версию, сохранив смысл.
Результат: Модель перепишет определение как список из 3-4 коротких пунктов вместо одного длинного предложения с вложенными условиями. Смысл сохранится, но структура станет плоской — без цепочек «если… в случае… при условии». Такой промпт с большей вероятностью даст стабильную классификацию тикетов.
Почему это работает
Небольшие модели (в исследовании — 7-8 млрд параметров) теряют нить смысла в длинных грамматических цепочках. Пока модель «разматывает» вложенное подчинение — где начинается условие, где заканчивается исключение — она чаще ошибается в финальной классификации.
При этом модель устойчива к бедности словаря — повторение одних и тех же слов не мешает ей понять правило. Это разрушает интуицию «пиши разнообразнее, чтобы звучало умнее» — для точности задачи это не нужно.
Метод использует то, что LLM, как и человек, лучше обрабатывает прямые, синтаксически плоские инструкции. Исследование прямо показало: паттерны, которые усложняют понимание текста человеком, совпадают с паттернами, которые снижают точность модели. Если правило тяжело читать вслух — модель тоже вероятно споткнётся.
Рычаги управления: - Длина предложений → короче = точнее, особенно для правил и критериев классификации - Количество подчинений («если», «когда», «при условии») → замена на списки снижает нагрузку на модель - Словарное разнообразие → можно игнорировать, не тратить время на подбор синонимов
Ограничения
⚠️ Домен исследования узкий: проверено только на бинарной классификации (функциональное/нефункциональное требование). Неизвестно, работает ли принцип для генеративных задач — написания текста, кода, творческих ответов.
⚠️ Частичная управляемость: даже целенаправленное упрощение конкретной грамматической метрики срабатывало в нужную сторону только в 30-60% случаев. Модель, которая переписывает текст «проще», не всегда попадает точно в цель — упрощение сложно контролировать точечно.
⚠️ Проверено на маленьких моделях: все пять протестированных LLM — открытые модели 7-8 млрд параметров. Неизвестно, так же ли чувствительны к синтаксической сложности крупные модели типа GPT-4 или Claude — возможно, они устойчивее.
Как исследовали
Команда взяла 100 исходных формулировок правил классификации требований (функциональное/нефункциональное) и попросила модель Qwen3:32B переписывать их, целенаправленно увеличивая или уменьшая 30 конкретных грамматических метрик — длину слов, глубину подчинений, число союзов. Получилось 9000 вариантов промптов.
Каждый вариант прогнали через пять открытых LLM (Qwen2, Falcon3, Granite, Ministral, Llama-3, все 7-8B) на задаче классификации 625 размеченных требований из известного датасета PROMISE-NFR. Затем построили регрессионные модели, которые предсказывали точность классификации только по лингвистическим свойствам промпта, без запуска модели.
Модели предсказания сработали достоверно — грамматические свойства промпта действительно объясняют часть разброса в качестве ответа. Что удивило: лексическое разнообразие оказалось нерелевантным — вопреки распространённой практике «разнообразь формулировки», это не помогло и не помешало. А вот синтаксическая сложность — длина предложений, вложенные конструкции, цепочки зависимостей — оказалась главным виновником падения точности во всех пяти моделях.
