- 简介LLMs被广泛应用于复杂的人工智能应用中。这些应用强调LLM输出需要遵循特定的格式,以便与系统中的其他组件集成。通常,格式规则(例如数据序列化格式,如JSON、YAML或编程语言中的代码)被表示为上下文无关文法(CFG)。由于LLMs的幻觉和不可靠性,指示LLMs遵守指定的语法成为一个越来越重要的挑战。我们提出了SynCode,一种新颖的框架,用于有效和通用的LLMs语法解码,以解决这个挑战。SynCode利用形式语言的CFG,利用基于语言语法终端的离线构建的高效查找表DFA掩码存储器,来解决这个问题。我们证明了SynCode在给定形式语言的CFG的情况下的完整性和正确性,展示了它保留语法上有效的标记并拒绝无效标记的能力。SynCode与由CFG定义的任何语言无缝集成,实验重点是生成JSON、Python和Go输出。我们评估SynCode在JSON生成方面的有效性的实验表明,SynCode消除了所有语法错误,并显著优于现有技术基线。此外,我们的结果强调了SynCode在生成Python和Go代码中显著减少了96.07%的语法错误,展示了其在提高LLM生成的语法精度方面的重要影响。我们的代码可在https://github.com/uiuc-focal-lab/syncode上获得。
- 图表
- 解决问题解决LLMs在复杂AI应用中输出格式不符合要求的问题,提高LLMs生成的代码的语法精度。
- 关键思路使用SynCode框架,利用离线构建的基于DFA的查找表,实现对LLMs生成代码的高效和通用的语法解析。
- 其它亮点SynCode框架的实验结果表明,它可以无误地解析JSON、Python和Go等语言,并且比当前最先进的基线方法表现更好。此外,SynCode框架还可以显著减少生成的Python和Go代码中的语法错误,具有重要的实用价值。
- 与该论文相关的研究包括:使用语言模型生成代码的研究,以及利用CFG对代码语法进行分析和修复的研究。其中一些论文的标题包括:《Code Generation with Transformers》、《DeepFix: Fixing Common C Language Errors by Deep Learning》等。
沙发等你来抢
去评论
评论
沙发等你来抢