中文

FRANC:一种用于高质量代码生成的轻量级框架

软件工程 2024-08-29 v2 机器学习

摘要

近年来,利用基于 Transformer 的生成模型进行自动化源代码生成的应用日益广泛,这些模型能够根据开发者的需求生成可用代码。然而,近期研究表明,这些自动生成的源代码可能包含漏洞及其他质量问题。尽管研究人员与从业者试图改进代码生成模型,但重新训练与微调大语言模型(LLM)耗时且耗费资源。为此,我们提出 FRANC,一种轻量级框架,用于从基于 Transformer 的代码生成模型中推荐更安全且高质量的源代码。FRANC 包含一个静态过滤器,借助启发式方法使生成代码可编译,以及一个质量感知排序器,依据质量分数对代码片段排序。此外,该框架利用提示工程修复持续存在的质量问题。我们使用五个 Python 与 Java 代码生成模型以及六个提示数据集(包括本工作中新创建的 SOEval)对框架进行了评估。静态过滤器在可编译性方面将 Java 建议提升 9% 至 46%,将 Python 建议提升 10% 至 43%。排序系统的 NDCG@10 分数平均提升 0.0763,修复技术可修复最高 80% 的提示。FRANC 处理 Java 平均耗时 1.98 秒,处理 Python 耗时 0.08 秒。

关键词

引用

@article{arxiv.2307.08220,
  title  = {FRANC: A Lightweight Framework for High-Quality Code Generation},
  author = {Mohammed Latif Siddiq and Beatrice Casey and Joanna C. S. Santos},
  journal= {arXiv preprint arXiv:2307.08220},
  year   = {2024}
}

备注

Accepted at the 24th IEEE International Conference on Source Code Analysis and Manipulation (SCAM 2024)