О grammar constraints, валидном JSON и ошибочном понимании языка
Кажется, что разговор о формальных грамматиках в LLM - это узкая инженерная тема для тех, кто заставляет модель соблюдать формат ответа. Но вокруг этого частного приема все чаще вырастает более сильный тезис: будто ограничение генерации не просто делает вывод надежнее, а подводит модель ближе к смыслу и даже к самой природе языка. Именно в этот момент технический разговор перестает быть только инженерным.
При этом сегодня постоянно смешиваются два уровня: инженерный и теоретический. На инженерном уровне grammar-constrained decoding действительно полезен: он делает вывод структурно предсказуемым и снижает вероятность формальных ошибок. Но из того, что модель стала аккуратнее оформлять ответ, совсем не следует, что она приблизилась к человеческому пониманию. На эту подмену, например, указывал Ноам Хомский с соавторами в эссе The False Promise of ChatGPT (NYT, 2023), где называл доминирующую линию современной AI-индустрии следствием ошибочного понимания языка и знания.

Где реальная польза и где начинается подмена
Начать стоит с честного признания: формальные грамматики - это сильный инженерный инструмент, особенно там, где выход должен соответствовать контракту, парсеру или исполняемой схеме. Работы по grammar-based decoding показывают, что такой подход может улучшать структурированную генерацию и в ряде задач конкурировать даже с более тяжелыми схемами дообучения, особенно когда данных мало, а формат ответа заранее известен. Именно поэтому constrained decoding отлично чувствует себя в задачах вроде information extraction, генерации формальных структур и агентных пайплайнов, где ошибка формата дороже, чем потеря литературной свободы.
Проблема начинается в тот момент, когда практическую пользу начинают превращать в философию языка. В хомскианской рамке язык - это не каскад фильтров, который ограничивает звуки, слова и предложения ради коммуникации, а внутренняя когнитивная система, способная порождать потенциально бесконечное число структурированных выражений из конечных средств. Поэтому описание языка как цепочки "ограничений" слишком легко соскальзывает в старую структуралистскую интуицию: будто смысл возникает просто потому, что мы все сильнее сужаем пространство допустимых комбинаций.
Еще важнее другое. В такой картине синтаксис почти незаметно отождествляется с линейной последовательностью токенов. Для Хомского это и есть ошибка уровня постановки задачи: синтаксис естественного языка работает не только и не столько как контроль порядка слов, сколько как построение иерархических структур, которые затем уже выстраиваются в речь или текст. Иначе говоря, модель, которая научилась не ломать JSON-скобки, еще не приблизилась к тому, как человеческий разум строит языковую структуру. Подробнее на эту тему можно почитать не только Хомского, но и, например, Mission: Impossible Language Models (Kallini et al., arXiv:2401.06416 / ACL 2024).
Почему синтаксис не рождает семантику
Самая соблазнительная мысль в подобных дискуссиях звучит так: если жестче контролировать синтаксис, то автоматически освобождается место для семантики. Но даже прикладные исследования по grammar-constrained decoding прямо показывают, что синтаксическая валидность не устраняет смысловые ошибки: модель может строго следовать грамматике и одновременно заполнять корректную структуру неверным содержанием. Идеально валидный JSON не перестает быть галлюцинацией только потому, что его удобно распарсить (см. подробнее - Grammar-Constrained Decoding Makes Large Language Models Better Logical Parsers (Raspanti et al., 2025)).
Здесь хомскианская критика становится особенно неудобной. В эссе Noam Chomsky: The False Promise of ChatGPT Хомский, Иэн Робертс и Джеффри Ватумалл утверждают, что доминирующая линия современного AI опирается на ошибочное понимание языка и знания. Их главный тезис прост: статистическое предсказание последовательностей и объяснение мира - не одно и то же. Человеческий интеллект важен не только тем, что продолжает паттерны, но и тем, что различает возможное и невозможное, строит каузальные объяснения и связывает высказывания с истиной, а не только с вероятностью.
Здесь полезно вспомнить другую типичную ошибку AI-рынка: внешний эффект слишком легко принимают за внутреннее качество системы. Так же как LLM-обвязку с planner’ом, памятью, валидаторами и guardrails нередко поспешно называют "агентом", грамматически ограниченную генерацию легко начать считать шагом к пониманию языка. Но в обоих случаях мы часто видим не новое когнитивное свойство, а более жестко организованную архитектуру вокруг модели.
Надежность возрастает, формат стабилизируется, число синтаксических ошибок падает - однако из этого еще не следует, что система обрела семантику, цель или внутреннее представление о мире. И если это различие кажется слишком философским, у него есть вполне прикладные последствия.
Даже если вынести в сторону философию и оставить только компьютерную науку, у grammar-constrained decoding есть вполне приземленные ограничения. Одно из ключевых - token misalignment: парсер оперирует терминалами грамматики, а LLM генерирует субсловные токены, и эти два уровня далеко не всегда совпадают. Из-за этого модель иногда вынуждена проходить через неудобные промежуточные токены или "мостики", которые искажают ее естественное вероятностное распределение и ухудшают качество генерации. “Поскольку субсловные токены LLM не совпадают напрямую с большинством заданных синтаксических ограничений, ключевой задачей в ограниченном декодировании является сопряжение словаря LLM с синтаксическим ограничением” (см. DOMINO: A Dual-System for Synergistic Large Language Model and Program Execution (Beurer-Kellner et al., 2024) и связанные работы по GCD).
Есть и второй неприятный момент: слишком жесткая грамматика может ухудшать собственно рассуждение модели. В работах по constrained reasoning (CRANE: Reasoning with constrained LLM generation (Banerjee et al., ICML 2025 / arXiv:2502.09061, The Hidden Cost of Structure: How Constrained Decoding Affects Language Model Performance (Schall & de Melo, RANLP 2025)) показано, что если разрешить модели только финальные синтаксически правильные ответы и запретить промежуточные шаги, ее способность к reasoning падает, а для восстановления качества приходится специально расширять грамматику под промежуточные рассуждения. Иными словами, жесткий контроль вывода нередко лечит формат ценой потери гибкости мышления - ровно там, где многие и ждут от LLM наибольшей пользы.
Вместо заключения
Из всего этого не следует, что формальные грамматики бесполезны; наоборот, они очень хороши там, где задача уже сведена к формальному контракту, а мир заранее описан схемой, типами, допустимыми сущностями и правилами валидации. Но из этого следует другое: грамматики стоит понимать как способ дисциплинировать вывод, а не как мост от статистической генерации к человеческой семантике.
Если перевести это на язык без лишней метафизики, вывод будет простым. Grammar constraints - это хороший инфраструктурный слой для надежного вывода: они нужны, когда вы строите агента (что бы вы не вкладывали в это понятие), генератор структур, extractor, router или typed API. Но как только из этого начинают делать вывод, что "синтаксическое сито" само по себе рождает смысл, мы уже говорим не об инженерии, а об очень сомнительной теории языка.
Самый продуктивный взгляд здесь, на мой вкус, предельно приземленный: constrained decoding не заменяет семантику, а покупает дисциплину формата. Все остальное по-прежнему приходится добирать отдельно - retrieval, верификацией, исполнением кода, проверкой по внешнему миру, доменными ограничениями и нормальной архитектурой системы.
И в этом, возможно, нет никакой драмы. Драма начинается только тогда, когда удобный инженерный патч начинают выдавать за модель мышления.
Никита Поляков
? lexometrica.com | neshemyaka.ru
Почитать есть у нас:
Raspanti, Ozcelebi, Holenderski, Grammar-Constrained Decoding Makes Large Language Models Better Logical Parsers (ACL 2025)
Kallini et al., Mission: Impossible Language Models (ACL 2024)
Beurer-Kellner et al., Guiding LLMs The Right Way: Fast, Non-Invasive Constrained Generation (ICML 2024, DOMINO)
Banerjee et al., CRANE: Reasoning with constrained LLM generation (2025)
Schall, de Melo, The Hidden Cost of Structure: How Constrained Decoding Affects Language Model Performance (RANLP 2025)
Chomsky, Roberts, Watumull, The False Promise of ChatGPT (NYT, 2023)
Комментарии (3)

rsashka
26.04.2026 03:34Спасибо за статью и ссылки на исследования.
Это дает теоретическое обоснование необходимости разработки универсальной грамматики, которая позволит исключить сложность парсинга синтаксиса у современных языков программирования с различными историческими наслоениями при их развитии.
Подобный синтаксис может стать своего рода “Esperanto for machines”, универсальную грамматикой для выражения синтаксических конструкций, который напрямую описывают вычислительные алгоритмы без учета особенностей человеческой психики :-)

OlegZH
26.04.2026 03:34Самая соблазнительная мысль в подобных дискуссиях звучит так: если жестче контролировать синтаксис, то автоматически освобождается место для семантики.
Очень жаль, что я не специалист в грамматиках, хотя это чрезвычайно интересная тема, которая, наверное, ещё ждёт важнейших достижений, но даже я могу сказать, что семантика — это штука, которая является внешней по отношению к синтаксису. При разработке языка программирования можно поставить цель — сделать так, чтобы синтаксис гарантировал определённую семантику. Пример неясной семантики — это всякие побочные эффекты.
А ещё я слышал, что есть контекстно-свободные и контекстно-зависимые грамматики. Обычно рассматриваются и используются контекстно-свободные, и эта свободность грамматики, во многом, обеспечивает замкнутость и вычислительную эффективность языков программирования. Для моделирования реального мира нужно, конечно, использовать контекстно-зависимые грамматики. При этом мы должны всегда помнить о естественных ограничениях сякого формального подхода. Модели всегда останутся лишь подобиями объектов реального мира. Тем более, что, выделяя какие-то объекты, мы уже допускаем некоторую вольность речи ("Мысль изречённая есть ложь.") И дело не только в теореме Гёделя. Хотя, и в ней, тоже. Дело ещё и в том, что в реальной жизни смысл оказывается, скорее, не тем, что изначально дано, а тем, что привносится субъектом информационного взаимодействия. Традиционная семантическая теория — это денотативная теория, где субъекты взаимодействия обмениваются денотатами — дескрипторами, к которым привязаны заранее заданные смысловые единицы, отсюда и аналитическая теория языка. Но есть и альтернатива — коннотативная семантическая теория, где смысл привносится субъектом. (Это можно сравнить с катушками индуктивности, где токи одной катушки наводят токи в другой катушке.) Здесь может быть построена совершенно новая синтетическая теория языка.
(Вот это разделение теорий, хорошо известное философам и лингвистам, имеет важное (по)следствие для программирования: пока мы используем аналитические языки (например, UML), мы хорошо описываем существующие системы и их структуру; но если нам нужны языки именно для разработки систем, нам понадобятся принципиально новые синтетические языки. Функциональный подход, с его процессным разворачиванием каждой синтаксической конструкции в последовательность объектов, сменяющих друг друга, и отдельные решения, вроде Форта и Смолтолка, гораздо ближе к делу, чем традиционное императивное программирование.)
P.S. Важнейшее свойство живых объектов — это создание знаковых систем. Наталья Черниговская могла бы многое рассказать о том, какие загадочные явления такого рода возникают в ИИ-моделях, которыми занимаются её сотрудники.
forthuse
Существующий, как класс и парадигма (конкатенации) без "синтаксиса" языков (синтаксис порождается как контекст по договорённости взаимодействующих слов) и мета-программирования с цельностью заложенных основ в построение таких языков программирования, как Форт (Forth) и его "потомки" https://concatenative.org уже показали свою практичность при своей минималистичности.
P.S. Не удивлюсь, если внутреннее содержание LLM будет строится и с использованием такого понимания, как заложено в цепочечных языках программирования. Тот же Форт, помимо разного его применения и бывает неожиданногго (или вполне ожидаемого, как запуск в рамках графических ускорителей, ...) вполне неплох в базисе использования для моделей ИИ, что также использовалось в ранних экспериментах в области ИИ, а может и сейчас где то активно исследуется.