Using Grammar Masking to Ensure Syntactic Validity in LLM-based Modeling Tasks

📄 arXiv: 2407.06146v2 📥 PDF

作者: Lukas Netz, Jan Reimer, Bernhard Rumpe

分类: cs.CL, cs.AI, cs.SE

发布日期: 2024-07-08 (更新: 2024-07-09)

备注: Preprint to be published in the MODELS Workshop "MDE Intelligence"


💡 一句话要点

提出语法掩码方法,确保LLM在建模任务中生成符合语法的模型

🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)

关键词: 大型语言模型 语法掩码 约束解码 领域特定语言 模型生成

📋 核心要点

  1. 现有prompt工程方法在处理复杂语法时面临挑战,耗时且效果不佳,限制了LLM在建模任务中的应用。
  2. 论文提出语法掩码方法,通过约束解码将LLM的输出限制在给定语法范围内,确保生成句法正确的模型。
  3. 实验结果表明,语法掩码显著提升了LLM的建模能力,降低了对prompt工程的依赖,并提高了生成正确模型的概率。

📝 摘要(中文)

本文提出并评估了一种名为语法掩码的方法,该方法旨在引导大型语言模型(LLM)生成符合给定上下文无关文法的句法正确的模型。诸如少样本学习或 priming 等 prompt 工程方法可以提高 LLM 产生正确语法的可能性,但语法越复杂,这些方法就越耗时且效果越不理想。先前的工作主要集中在使用语言模型训练或 prompt 工程上。本文提出了一种方法,该方法使用约束解码将输出限制为给定的语法,以确保输出符合有效的语法。我们使用 MontiCore 构建的多个 DSL,并让多个 LLM 在有和没有约束解码的情况下生成模型。使用相应的解析器来确认每个模型的句法正确性。我们表明,语法掩码可以显著提高多个 LLM 的建模能力,减少对精细 prompt 的需求,同时增加生成正确模型的机会。

🔬 方法详解

问题定义:论文旨在解决LLM在建模任务中生成不符合语法规则的模型的问题。现有方法,如prompt工程,在处理复杂语法时效果不佳,需要耗费大量时间和精力进行prompt设计,且无法保证生成模型的句法正确性。

核心思路:论文的核心思路是利用约束解码,在LLM生成模型的过程中,通过语法掩码限制其输出,使其只能生成符合预定义语法的token序列。这样可以从根本上保证生成模型的句法正确性,无需依赖复杂的prompt工程。

技术框架:该方法的技术框架主要包括以下几个步骤:1. 定义目标领域的上下文无关文法。2. 使用LLM生成模型。3. 在解码过程中,根据定义的文法,对LLM的输出进行约束,即语法掩码。4. 使用解析器验证生成模型的句法正确性。

关键创新:该方法最重要的创新点在于将约束解码应用于LLM的建模任务,通过语法掩码确保生成模型的句法正确性。与传统的prompt工程方法相比,该方法无需复杂的prompt设计,且能从根本上保证生成模型的句法正确性。

关键设计:关键设计在于如何有效地实现语法掩码。具体来说,需要在解码的每一步,根据当前已生成的token序列,计算出下一步可以生成的token集合(即符合语法的token集合),然后只允许LLM从该集合中选择token。这可以通过维护一个状态机来实现,状态机根据文法规则,记录当前已生成的token序列所处的状态,并根据状态确定下一步可以生成的token集合。具体的参数设置和网络结构取决于所使用的LLM。

🖼️ 关键图片

fig_0
fig_1
fig_2

📊 实验亮点

论文通过实验验证了语法掩码方法的有效性。实验结果表明,使用语法掩码可以显著提高LLM生成句法正确模型的概率,降低对prompt工程的依赖。具体而言,在多个DSL建模任务中,使用语法掩码后,LLM生成正确模型的概率提升了显著幅度,具体数值未知,但效果显著。

🎯 应用场景

该研究成果可广泛应用于各种基于LLM的建模任务,例如代码生成、领域特定语言(DSL)建模、自然语言生成等。通过确保生成模型的句法正确性,可以提高模型的可用性和可靠性,降低后续处理的难度,并加速模型开发过程。该方法具有重要的实际应用价值和广阔的应用前景。

📄 摘要(原文)

We present and evaluate a method called grammar masking, which is used to guide large language models (LLMs) toward producing syntactically correct models for a given context-free grammar. Prompt engineering methods such as few-shot learning or priming can be used to improve the chances of an LLM producing correct syntax, but the more complex the grammar, the more time-consuming and less promising these methods become. Previous work is focused primarily on the usage of either language model training or prompt engineering. In this work, a method is presented that restricts the output to a given grammar using constrained decoding to ensure the output adheres to a valid syntax. We use several DSLs built with MontiCore and task multiple LLMs to produce models with and without constrained decoding. A corresponding parser is used to confirm the syntactic correctness of each model. We show that grammar masking can dramatically improve the modeling capabilities of several LLMs, reducing the need for well-refined prompting while increasing the chance of producing correct models.