编码三角:大型语言模型如何理解代码?

发表
Songyang ZhangSongyang Zhang 提交
作者: TaolinZhangTaolin Zhang, Zihan MaZihan Ma, Maosong Cao, Junnan LiuJunnan Liu, Songyang ZhangSongyang Zhang, Kai Chen

摘要

大型语言模型(LLM)在代码生成方面取得了显著进展,但其真正的编程能力仍未被充分探索。我们引入了代码三角框架,该框架系统地从三个基本维度评估LLM:解题思路分析(editorial analysis)、代码实现和测试用例生成。通过在竞争性编程基准上的广泛实验,我们发现虽然LLM可以在这些维度上形成一个自洽的系统,但它们的解决方案往往缺乏人类程序员的多样性和鲁棒性。我们发现了模型认知与人类专业知识之间存在显著的分布偏移,模型错误倾向于因训练数据偏差和有限的推理迁移而聚集。我们的研究表明,结合人类生成的解题思路、解决方案和多样化测试用例,以及利用模型混合,可以显著提升LLM的性能和鲁棒性。此外,我们揭示了LLM认知中的连贯性和不连贯性,这可能有助于自我反思和自我改进,为开发更强大的编码模型提供了潜在方向。
查看 arXiv 页面查看 PDF

评论

Songyang ZhangSongyang Zhang
论文作者
论文提交者

技术报告