3 个月前

命名如何影响LLMs在代码分析任务中的表现?

命名如何影响LLMs在代码分析任务中的表现?

摘要

大型语言模型(LLM),如GPT和BERT,最初为自然语言处理(NLP)任务而提出,已展现出作为通用语言模型的广阔前景。越来越多的工业界从业者与研究者开始将LLM应用于程序分析任务。然而,编程语言与自然语言之间存在一个显著差异:程序员在程序中可自由为变量、方法和函数命名,而自然语言作者则不具备这种命名自由度。直觉上,程序中命名的质量会影响LLM在程序分析任务中的表现。本文系统研究了命名对LLM在代码分析任务中性能的影响。具体而言,我们构建了一组数据集,其中包含变量、方法和函数使用无意义或具有误导性的名称的代码。随后,我们利用训练良好的模型(CodeBERT)在这些数据集上执行代码分析任务。实验结果表明,命名对基于LLM的代码分析任务性能具有显著影响,说明基于LLM的代码表示学习高度依赖于代码中命名的规范性与语义明确性。此外,我们还以GPT为工具,针对若干特殊代码分析任务开展了案例研究,进一步深化了对这一问题的理解。

基准测试

基准方法指标
code-generation-on-mbppGPT-4 (ChatGPT Plus)
Accuracy: 87.5
code-generation-on-mbppClaude
Accuracy: 71.4
code-generation-on-mbppBard (PaLM 2/chat-bison-001)
Accuracy: 76.2
code-generation-on-mbppGPT-4 (Bing Chat)
Accuracy: 82
code-generation-on-mbppGPT-3.5 Turbo (ChatGPT)
Accuracy: 83.2

用 AI 构建 AI

从想法到上线——通过免费 AI 协同编程、开箱即用的环境和市场最优价格的 GPU 加速您的 AI 开发

AI 协同编程
即用型 GPU
最优价格
立即开始

Hyper Newsletters

订阅我们的最新资讯
我们会在北京时间 每周一的上午九点 向您的邮箱投递本周内的最新更新
邮件发送服务由 MailChimp 提供
命名如何影响LLMs在代码分析任务中的表现? | 论文 | HyperAI超神经