中文

CodeBERTScore:基于代码预训练模型评估代码生成

软件工程 2023-11-01 v2 机器学习 编程语言

摘要

随着神经自然语言到代码模型(NL->Code)的兴起,这类模型可生成较长的表达式与语句而非单个下一 token,其生成输出的可靠评估成为主要问题之一。本文提出 CodeBERTScore:一种用于代码生成的评估指标,构建于 BERTScore(Zhang et al., 2020)之上。与 BERTScore 中仅编码生成 token 不同,CodeBERTScore 还编码生成代码之前的自然语言输入,从而也对生成代码与其给定自然语言上下文之间的一致性建模。我们在四种编程语言上对 CodeBERTScore 进行了广泛评估。我们发现,CodeBERTScore 与人工偏好及功能正确性的相关性均高于所有现有指标。即,获得更高 CodeBERTScore 分数的生成代码更可能被人类偏好,且在执行时更可能功能正确。我们发布了五个特定语言的预训练模型以供在我们的公开代码中使用。我们的特定语言模型已在 Huggingface Hub 上被下载超过 1,000,000 次。我们的代码与数据可在 https://github.com/neulab/code-bert-score 获取。

关键词

引用

@article{arxiv.2302.05527,
  title  = {CodeBERTScore: Evaluating Code Generation with Pretrained Models of Code},
  author = {Shuyan Zhou and Uri Alon and Sumit Agarwal and Graham Neubig},
  journal= {arXiv preprint arXiv:2302.05527},
  year   = {2023}
}