本文是LLM系列文章,针对《A Survey on Language Models for Code》的翻译。
摘要
在这项工作中,我们系统地回顾了语言模型在代码处理方面的最新进展,涵盖了50多个模型、30多个评估任务、150多个数据集和550项相关工作。我们将代码处理模型分解为以GPT家族为代表的通用语言模型和专门针对代码进行预训练的专用模型,通常具有定制的目标。我们讨论了这些模型之间的关系和差异,并强调了代码建模从统计模型和RNN到预训练的Transformers和LLM的历史转变,这与NLP所走的路线完全相同。我们还讨论了代码特定的功能,如AST、CFG和单元测试,以及它们在训练代码语言模型中的应用,并确定了该领域的关键挑战和潜在的未来方向。我们在github存储库上保持调查的开放和更新https://github.com/codefuse-ai/Awesome-Code-LLM。