中文

优、劣与缺失:面向机器学习任务的神经代码生成

软件工程 2024-01-17 v1

摘要

机器学习(ML)已日益应用于多种领域,而解决 ML 编程任务因其与自然构造及通用编程任务的根本差异带来了独特挑战,尤其对于没有 ML 背景的开发者而言。从自然语言描述生成代码片段的自动代码生成可成为加速 ML 编程任务的一种有前景的技术。近年来,尽管许多基于深度学习的神经代码生成模型以高准确率被提出,但大多数主要在通用编程任务上评估的事实,令其在 ML 编程任务中的有效性与实用性存疑。本文着手研究现有神经代码生成模型在 ML 编程任务上的有效性。为分析,我们选取六个最先进的神经代码生成模型,并在四个广泛使用的 ML 库上,以新创建的 83K 对自然语言描述的 ML 编程任务评估其性能。我们的实证研究揭示了神经代码生成模型在 ML 任务上的一些优、劣与缺失方面,以下列出几个主要方面。(优)神经代码生成模型在 ML 任务上显著优于非 ML 任务。(劣)大多数生成代码在语义上不正确。(劣)代码生成模型不能显著改善开发者的完成时间。(优)生成的代码可通过为开发者提供正确使用 API 的线索来帮助其编写更正确的代码。(缺失)我们用户研究的观察揭示了 ML 任务代码生成的缺失方面,例如将分治的代码生成分解为两个任务:API 序列识别与 API 用法生成。

关键词

引用

@article{arxiv.2305.09082,
  title  = {The Good, the Bad, and the Missing: Neural Code Generation for Machine Learning Tasks},
  author = {Jiho Shin and Moshi Wei and Junjie Wang and Lin Shi and Song Wang},
  journal= {arXiv preprint arXiv:2305.09082},
  year   = {2024}
}

备注

20 pages