О 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

Почитать есть у нас:

Комментарии (13)


  1. forthuse
    26.04.2026 03:34

    Существующий, как класс и парадигма (конкатенации) без "синтаксиса" языков (синтаксис порождается как контекст по договорённости взаимодействующих слов) и мета-программирования с цельностью заложенных основ в построение таких языков программирования, как Форт (Forth) и его "потомки" https://concatenative.org уже показали свою практичность при своей минималистичности.

    P.S. Не удивлюсь, если внутреннее содержание LLM будет строится и с использованием такого понимания, как заложено в цепочечных языках программирования. Тот же Форт, помимо разного его применения и бывает неожиданногго (или вполне ожидаемого, как запуск в рамках графических ускорителей, ...) вполне неплох в базисе использования для моделей ИИ, что также использовалось в ранних экспериментах в области ИИ, а может и сейчас где то активно исследуется.


  1. rsashka
    26.04.2026 03:34

    Спасибо за статью и ссылки на исследования.

    Это дает теоретическое обоснование необходимости разработки универсальной грамматики, которая позволит исключить сложность парсинга синтаксиса у современных языков программирования с различными историческими наслоениями при их развитии.

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


    1. amcured
      26.04.2026 03:34

      Подобный синтаксис может стать своего рода «Esperanto for machines» […]

      И обязательно им станет: как эсперанто не использует для общения или создания литературы ни один нормальный человек — так и про эту грамматику никто кроме сумасшедших авторов не узнает.


      1. rsashka
        26.04.2026 03:34

        Вы не учитываете геополитику и человеческий менталитет.

        Эсперанто очень даже используется при общении и создании литературы. Но все это делается только силами энтузиастов без поддержки корпораций и государственной помощи. Корпорациям это ненужно, а государствам нужно защищать свои интересы, которые тесно связаны с национальными языками.

        Однако у эсперанто для машин нет национальности и он не пересекается с какими либо государственными интересами, ведь он нужен не для людей. А если корпорации увидят реальную экономию за счет упрощения обучения моделей (например, за счет уменьшения количества ошибок), то сразу появится и финансовая поддержка и его продвижение.


        1. amcured
          26.04.2026 03:34

          Эсперанто очень даже используется при общении и создании литературы.

          Этот прекрасный тезис я даже комментировать не стану.

          государствам нужно защищать свои интересы, которые тесно связаны с национальными языками

          В период нахождения Франко у власти в Испании (1939–1974) за использование национальных языков на улице (каталанского и баскского, в основном) — можно было неиллюзорно присесть на пару лет. Тем не менее, Ферратер-и-Солер (и многие другие) продолжали писать и переводить. Безо всяких корпораций.

          если корпорации увидят реальную экономию за счет упрощения обучения моделей

          Корпорации — те же государства, только с гораздо более драконовскими законами, и договариваться они умеют гораздо хуже.


          1. rsashka
            26.04.2026 03:34

            с чем вы спорите или пытаетесь доказать?


            1. amcured
              26.04.2026 03:34

              Я ничего никогда никому не пытаюсь доказать. Умный поймет и без меня, а дураков образовывать — не моё.

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

              Поэтому я просто автоматически указываю на логические нестыковки, из которых состоит буквально любой ваш комментарий в этой ветке.


              1. rsashka
                26.04.2026 03:34

                А раз у вас нет аргументов, кроме как потешаться, то может быть стоит над этим подумать и попробовать разобраться в этом вопросе? :-)


                1. amcured
                  26.04.2026 03:34

                  может быть стоит над этим подумать и попробовать разобраться в этом вопросе?

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

                  Но помилуйте — не на хабре же все это обсуждать. Серьезные решения я обсуждаю с профессионалами.


                  1. rsashka
                    26.04.2026 03:34

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


                    1. amcured
                      26.04.2026 03:34

                      Позволяю.


  1. OlegZH
    26.04.2026 03:34

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

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

    А ещё я слышал, что есть контекстно-свободные и контекстно-зависимые грамматики. Обычно рассматриваются и используются контекстно-свободные, и эта свободность грамматики, во многом, обеспечивает замкнутость и вычислительную эффективность языков программирования. Для моделирования реального мира нужно, конечно, использовать контекстно-зависимые грамматики. При этом мы должны всегда помнить о естественных ограничениях сякого формального подхода. Модели всегда останутся лишь подобиями объектов реального мира. Тем более, что, выделяя какие-то объекты, мы уже допускаем некоторую вольность речи ("Мысль изречённая есть ложь.") И дело не только в теореме Гёделя. Хотя, и в ней, тоже. Дело ещё и в том, что в реальной жизни смысл оказывается, скорее, не тем, что изначально дано, а тем, что привносится субъектом информационного взаимодействия. Традиционная семантическая теория — это денотативная теория, где субъекты взаимодействия обмениваются денотатами — дескрипторами, к которым привязаны заранее заданные смысловые единицы, отсюда и аналитическая теория языка. Но есть и альтернатива — коннотативная семантическая теория, где смысл привносится субъектом. (Это можно сравнить с катушками индуктивности, где токи одной катушки наводят токи в другой катушке.) Здесь может быть построена совершенно новая синтетическая теория языка.

    (Вот это разделение теорий, хорошо известное философам и лингвистам, имеет важное (по)следствие для программирования: пока мы используем аналитические языки (например, UML), мы хорошо описываем существующие системы и их структуру; но если нам нужны языки именно для разработки систем, нам понадобятся принципиально новые синтетические языки. Функциональный подход, с его процессным разворачиванием каждой синтаксической конструкции в последовательность объектов, сменяющих друг друга, и отдельные решения, вроде Форта и Смолтолка, гораздо ближе к делу, чем традиционное императивное программирование.)

    P.S. Важнейшее свойство живых объектов — это создание знаковых систем. Наталья Черниговская могла бы многое рассказать о том, какие загадочные явления такого рода возникают в ИИ-моделях, которыми занимаются её сотрудники.


    1. pecheny
      26.04.2026 03:34

      А что вы вкладываете в понятия “синтетический язык” и “аналитический язык”?