Diffusion On Syntax Trees For Program Synthesis

2024年05月30日
  • 简介
    大型语言模型逐个标记地生成代码。它们的自回归生成过程缺乏观察程序输出的反馈。由于缺乏丰富的编辑数据,训练LLM直接建议编辑可能具有挑战性。为了解决这些问题,我们提出了神经扩散模型,该模型可以操作任何上下文无关语法的语法树。与图像扩散模型类似,我们的方法也可以反转应用于语法树的“噪声”。我们不是逐个生成代码,而是在保留语法有效性的同时迭代地编辑代码,这使得将这个神经模型与搜索结合变得容易。我们将我们的方法应用于逆向图形任务,其中我们的模型学习将图像转换为生成这些图像的程序。结合搜索,我们的模型能够编写图形程序,查看执行结果并进行调试以满足所需的规格。我们还展示了我们的系统如何为手绘草图编写图形程序。
  • 图表
  • 解决问题
    论文提出了一种解决缺乏丰富编辑数据的大型语言模型生成代码的问题的方法,同时解决了模型生成代码时缺乏输出反馈的问题。
  • 关键思路
    论文提出了一种基于语法树的神经扩散模型,通过迭代地编辑语法树来生成代码,同时保持语法的有效性,结合搜索算法可以实现生成和调试图形程序。
  • 其它亮点
    论文将方法应用于反向图形任务中,通过学习将图像转换为生成这些图像的程序。论文还展示了如何使用该方法生成手绘草图的图形程序。实验使用了多个数据集,并提供了开源代码。
  • 相关研究
    与该论文相关的其他研究包括:1.《Neural Program Synthesis from Diverse Demonstration Videos》;2.《DeepCoder: Learning to Write Programs》;3.《Code Generation via Transformer》等。
PDF
原文
点赞 收藏 评论 分享到Link

沙发等你来抢

去评论