AI Coders Are Among Us: Rethinking Programming Language Grammar Towards Efficient Code Generation

2024年04月25日
  • 简介
    除了人类和机器,随着大型语言模型(LLMs)时代的到来,人工智能(AI)模型已成为编程语言的另一个重要受众。LLMs现在可以在编程比赛中表现出色,甚至可以像开发人员一样编写程序来解决各种任务,例如数学计算。然而,现有程序的语法和布局是为人类设计的。特别是,为了使代码对人类更易读,包括了大量的语法标记和格式标记。虽然有益,但这种以人为中心的设计给LLMs带来了不必要的计算负担,其中每个标记(无论是消耗还是生成)都消耗计算资源。为了提高推理效率并减少计算成本,我们提出了AI导向语法的概念,旨在以更适合AI模型工作机制的方式表示代码。使用AI导向语法编写的代码放弃了格式,并使用最少的标记有效地传达代码语义。为了证明这个概念的可行性,我们探索并实现了Python的第一个AI导向语法,名为Simple Python(SimPy)。通过一系列启发式规则修订原始的Python语法来打造SimPy。使用SimPy编写的程序与标准Python中的程序保持相同的抽象语法树(AST)结构,可以通过修改后的AST解析器执行。此外,我们探索了使现有的LLMs能够熟练理解和使用SimPy的方法,并确保这些更改对人类开发人员来说是不可感知的。与原始的Python相比,SimPy不仅将CodeLlama和GPT-4的标记使用量分别减少了13.5%和10.4%,而且还可以实现与在Python代码上训练的模型相当甚至更好的性能。
  • 图表
  • 解决问题
    提高大型语言模型在编程语言中的推理效率和降低计算成本。
  • 关键思路
    提出了面向人工智能的语法概念,通过一系列启发式规则修改 Python 语法,实现了用更少的标记传达代码语义的 Simple Python(SimPy),并探索了使现有 LLMs 能够熟练理解和使用 SimPy 的方法。
  • 其它亮点
    SimPy 可以减少 CodeLlama 和 GPT-4 的标记使用量,同时在 Python 代码上训练的模型上实现了等效甚至更好的性能。实验使用了开源的 Python 代码和数据集,并且修改后的 SimPy 仍然可以通过修改后的 AST 解析器执行。
  • 相关研究
    近期相关研究包括:1. CodeBERT: A Pre-Trained Model for Programming and Natural Language Processing; 2. GPT-Code: Generating High-Quality Code from Natural Language Input with a Large-scale Transformer Model; 3. Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context。
PDF
原文
点赞 收藏 评论 分享到Link

沙发等你来抢

去评论