PICARD: Parsing Incrementally for Constrained Auto-Regressive Decoding from Language Models

TL;DR

PICARD通过增量解析限制预训练语言模型的自动回归解码,有效提升SQL生成的正确率。

cs.CL 🔴 高级 2021-09-11 41 次浏览
Torsten Scholak Nathan Schucher Dzmitry Bahdanau
自然语言处理 语义解析 代码生成 约束解码 深度学习

核心发现

方法论

本文提出的PICARD方法利用增量解析技术,通过在每个解码步骤中筛查不合法的候选词,限制模型输出的合法性。具体实现包括四个模式:词法检查、无守卫语法解析、带守卫语法解析和最终验证。它结合了快速的单子合成器(monadic combinators)实现高效的逐步验证,兼容任何预训练的自回归模型,无需修改模型架构或词表。该方法在文本到SQL任务中,结合T5模型,显著减少无效SQL生成,提升准确率。

关键结果

  • 在Spider数据集上,T5-3B模型配合PICARD实现了75.5%的精确匹配率(比未限制模型提升约5个百分点),执行准确率达79.3%,超越现有SOTA方法。PICARD显著降低了无效SQL比例,从12%降至2%。在CoSQL任务中,PICARD提升了问答匹配率,达到最新最佳水平。
  • 不同的解码策略(贪婪、束搜索)结合PICARD均表现出性能提升,尤其在较大束宽(beam size)下效果更明显。只在终结时验证的限制模式效果较差,验证全过程的增量模式效果最佳。
  • ablation研究显示,词法检查已能带来一定提升,语法解析和带守卫解析进一步增强效果,验证了逐步约束的有效性。

研究意义

该研究突破了预训练模型在受约束的形式语言生成中的瓶颈,提供了一种无需修改模型架构的通用解码约束方案。其在SQL生成中的成功应用,推动了自然语言理解与自动代码生成的结合,为企业级智能问答、自动数据库接口等场景提供了高效、可靠的技术支撑。未来,该方法有望扩展到其他形式化语言和复杂推理任务中,具有广泛的应用潜力。

技术贡献

提出的PICARD方法通过增量解析实现对自回归解码的严格约束,结合monadic parser实现高效的逐步验证机制。它兼容任何预训练模型,无需架构改动,且在多任务中表现出优异的性能。该技术在保证模型灵活性的同时,显著提高了输出的合法性和准确性,为受约束生成提供了新思路。

新颖性

本研究首次将增量解析技术应用于预训练语言模型的解码过程,结合多层验证机制实现对SQL等形式语言的严格约束。不同于以往依赖特殊词表或架构的方案,PICARD实现了通用性和高效性兼备的约束解码,开创了自回归模型受控生成的新路径。

局限性

  • 当前方法主要针对SQL等结构化语言,对于自然语言或非结构化任务的适应性仍有限,需进一步扩展验证。
  • 增量解析在复杂查询或深层嵌套结构中可能带来计算开销,影响推理速度。
  • 对模型预测错误的早期阶段依赖较强,错误传播可能影响最终结果。

未来方向

未来将探索多模态数据的约束解码,扩展PICARD到其他形式化语言如逻辑表达式、程序代码等。同时,优化解析效率,结合学习式的验证策略,以提升大规模应用的实用性。还计划引入更丰富的语义守卫,增强模型在复杂推理中的表现。

AI 总览摘要

随着预训练语言模型在自然语言处理中的广泛应用,如何确保其输出的合法性和准确性成为关键难题。尤其在生成结构化代码如SQL时,模型常常产生语法错误或逻辑不符合约束的无效代码,限制了其实际应用。传统方法多依赖特殊词表或后处理筛查,或通过有限束搜索限制生成空间,但这些方案要么架构复杂,要么效率低下。本文提出的PICARD方法,利用增量解析技术在解码过程中逐步验证候选输出的合法性,有效避免无效生成。该技术结合monadic parser实现高效的逐步验证机制,兼容任何预训练自回归模型,无需架构改动。实验结果显示,在Spider和CoSQL数据集上,PICARD显著提升了SQL生成的准确率,达到75.5%的精确匹配率,优于多数现有方案。这一突破为受约束的自然语言生成提供了新思路,兼具效率与通用性。未来,PICARD有望推广到更多形式化语言和复杂推理任务,为智能问答、自动代码生成等场景带来深远影响。尽管如此,方法在处理深层嵌套和复杂查询时仍存在计算成本挑战,未来需优化解析效率和扩展验证策略,以实现更广泛的应用潜力。

深度解读

原文摘要

Large pre-trained language models for textual data have an unconstrained output space; at each decoding step, they can produce any of 10,000s of sub-word tokens. When fine-tuned to target constrained formal languages like SQL, these models often generate invalid code, rendering it unusable. We propose PICARD (code and trained models available at https://github.com/ElementAI/picard), a method for constraining auto-regressive decoders of language models through incremental parsing. PICARD helps to find valid output sequences by rejecting inadmissible tokens at each decoding step. On the challenging Spider and CoSQL text-to-SQL translation tasks, we show that PICARD transforms fine-tuned T5 models with passable performance into state-of-the-art solutions.

cs.CL cs.PL