← 最新论文
💻 computer science

GRID: Grammar-Railed Decoding for Enterprise SQL Generation

本文介绍了 GRID,一种利用 LALR(1) 解析器状态和字节级前缀树遍历的语法约束解码引擎,旨在生成具有可证明保证、近乎常数解码成本且具备防篡改审计追踪的符合语法且符合策略的 SQL,从而显著提高企业环境下的执行准确性。

原作者: Mohsen Arjmandi

发布于 2026-07-15
📖 1 分钟阅读☕ 轻松阅读

原作者: Mohsen Arjmandi

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

想象一下你有一个超级聪明的机器人朋友(一个大语言模型),它热爱编写被称为 SQL 的计算机指令。这个机器人非常擅长猜测句子中的下一个词,但它也有点像个混乱的梦想家。在正常的对话中,如果机器人说了一些傻话,比如本该是“SELECT”(查询)却说了“DELETE ALL THE TABLES”(删除所有表),没人会受到伤害。但在银行或医院里,这种错误是一场灾难。

于是有了 GRID(语法约束解码)。把 GRID 想象成不是一个在机器人犯错后大喊“不!”的老师,而是一条机器人必须行驶在上面的魔法铁轨。机器人仍然可以发挥创意,但它在物理上无法让火车脱离轨道。如果铁轨不存在,机器人甚至无法想到那个词。

魔法铁轨

通常,当你要求机器人编写代码时,你会让它去猜下一个词,然后检查整个句子是否有意义。如果没意义,你就删除它并重试。这既慢又危险。

GRID 改变了游戏规则。它不是在句子结束时才检查整个句子,而是在机器人被允许挑选单词之前的每一步进行检查。它通过查看语法的“地图”(语言的规则)以及机器人在该地图上的当前位置来实现这一点。

  • 旧地图的问题: 之前的方法试图记住机器人可能写出的每一句可能的句子。论文解释说,这是不可能实现的。如果你试图列出所有长度适中的有效句子,这个列表会比整个宇宙中的原子数量还要多。
  • GRID 的解决方案: GRID 不记句子,而是记录配置(configurations)。想象机器人是一个徒步旅行者。旧方法试图记住徒步旅行者可以走的所有路径。GRID 则只是检查:“徒步旅行者目前是否站在一条有效的路径上?”如果是,机器人就可以继续行走。如果不是,路径就被封锁了。这使得系统即使对于很长的句子也能保持高效。

“禁区”(策略与规则)

在大型公司中,不同的人有不同的规则。初级员工可能只被允许查看数据(SELECT),而经理则可以删除数据。

GRID 将这些规则直接构建在铁轨之中。

  • 基于角色的铁轨: 如果机器人扮演的是“初级员工”,那么“DELETE”或“UPDATE”的铁轨就完全不存在。机器人甚至无法想象它们。这并不是在告诉机器人“不,不要这样做”,而是由于处于这种模式,单词“DELETE”对它来说是不可见的。
  • 模式(Schema)铁轨: 机器人还准确知道数据库中存在哪些表和列。如果一个表不存在,通往它的铁轨也就消失了。机器人不会意外输入一个虚假的表名。

论文非常诚实地说明了这条魔法铁轨不能做什么。它证明了铁轨无法阻止机器人为特定行选择错误的列(例如在应该选“姓名”时选了“薪水”),因为这种决策取决于只有在句子结束后才会出现的上下文。对于这些棘手的案例,GRID 使用了一个“检查器”来查看完成的句子,并在必要时进行修正。

速度与安全:“平坦”成本

人们对这些安全检查是否会影响速度最大的担忧之一。通常,句子变得越长,安全检查的速度就越慢。论文称之为“需求 R”。

GRID 承诺了一件特别的事:检查成本保持平坦。

  • 无论机器人是在写第 5 个词还是第 16,000 个词,检查下一个词是否被允许所需的时间都大致相同。
  • 作者在强大的计算机(H100 GPU)上测量了这一点。他们发现,当系统预热完毕并准备就绪时,对于每个 token(词元),检查时间在 3.6 到 6.7 微秒之间(那是百万分之一秒)。
  • 即使机器人遇到一个从未见过的全新数据库,系统也能优雅地处理。初始化阶段(建立新轨道)可能会稍微慢一点(约 27.3 毫秒),但一旦完成后,它就会全速运行。至关重要的是,这种设置时间不会减慢同时工作的其他机器人的速度。

“黑盒”收据(审计追踪)

在银行中,你需要知道到底发生了什么。如果机器人做了一个决定,你需要能够稍后重放它,以证明它是安全的。

GRID 保留了一个哈希链式审计追踪。想象一下,对于机器人被允许说的每一个词,都有一个数字收据。这些收据像纸夹链一样连接在一起。如果有人试图更改过去的一个单词,整个链条就会断裂,你会立即知道记录被篡改了。论文表明,他们可以重放 1,000 次这些决策的生成过程,并且每次都能得到完全相同的结果,具有 100% 的篡改检测能力。

效果如何?

论文并不仅仅是声称它有效;他们使用真实数据(Spider 数据集,包含 1,000 多个复杂问题)对其进行了测试。

  • 对于较小的机器人(0.5B 参数): 使用 GRID 将正确答案的数量提高了 13 个百分点。主要原因在于?机器人不再犯低级的语法错误。
  • 对于更大、更聪明的机器人(7B 参数): 仅靠语法检查带来的提升很小(约 +1 点),但当他们加入了用于修复棘手列错误的“检查器”后,成功率跃升至 94.5%

诚实的真相

作者非常小心,没有过度承诺。他们承认了几点:

  1. 它并不完美适用于所有语言: 它最适合遵循特定规则(LALR(1))的语言,比如 SQL。它目前还无法处理世界上所有可能的语法类型。
  2. 它改变了“风格”: 通过强迫机器人留在铁轨上,它略微改变了机器人选择单词的方式。论文测量了这一点,发现对于非常小的机器人,这种变化很重要,但对于大而聪明的机器人来说,正确的收益超过了风格变化的轻微影响。
  3. 冷启动: 当一个全新的数据库到达时,会出现短暂的、暂时的减速(约 34%),这是因为系统正在构建新的铁轨。但这仅在每个新数据库出现时发生一次,并且不会阻碍其他机器人工作。

简而言之,GRID 就像是为人工智能构建了一个超级安全、高速的列车系统。它不仅仅是告诉 AI“不要撞车”;它直接建造了铁轨,使得撞车在物理上变得不可能,同时保持列车运行速度足够快,以满足现实世界的使用需求。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →