论文

正式思想的编织

Weave of Formal Thought

模型推理解码与生成控制

摘要

大语言模型 在代码上获得了显着的表面流畅性,但它们并没有正式保证其输出的语法有效性,通常也没有利用定义目标语言的层次结构。虽然现有的受限解码框架为前者提供了解决方案,但它们主要在严格的假设下运行,这些假设排除了现代解析器所依赖的关键词汇机制(例如 Python 缩进)。在这项工作中,我们提出了一个形式引擎和受约束的解码器,通过使用一种新颖的推测词法分析结构来增强广义 LR (GLR) 解析,该结构保持与 GLR 图结构堆栈同步的并发词法分析器状态假设,从而相对于完整的 Tree-sitter 规范来说是健全和完整的。我们还引入了形式思维编织(WoFT),这是一种潜变量 微调 方法,可训练语言模型将非终结符语法符号直接插入生成过程中。利用重新加权唤醒-睡眠 (RWS) 算法来优化表面文本的重要性加权证据下界 (IW-ELBO),该模型学会选择性地保留形式推导作为自适应结构便签本。在跨越多种范式的十种广泛使用的编程语言中,采用 WoFT 的 微调 StarCoder2-3B 始终优于纯文本 SFT 基线,表面标记交叉熵相对减少了 14.9%,并证明了任意潜在语法可以恢复平坦自回归训练丢弃的关键结构信息。我们的代码和实现可在 https://github.com/alexbouayad/formal 上公开获取。