摘要
arXiv:2502.07046v1 交叉公告类型
摘要:语言模型(LLMs),例如训练参数达到数十亿的基于变换器的神经网络,在软件工程(SE)中变得越来越普遍。这些模型在包含代码仓库的大量数据集上进行训练,展示了对SE任务的非凡能力。然而,评估它们的有效性面临重大挑战,主要原因是用于训练和评估的数据集之间可能存在重叠。为了解决这一问题,我们引入了SnipGen,这是一种全面的代码仓库挖掘框架,旨在利用提示工程设计多任务代码生成。SnipGen旨在通过生成稳健的测试环境和定制的数据点来减轻数据污染,从而帮助研究人员和从业人员评估LLMs在代码相关任务中的表现。在我们的探索性研究中,SnipGen从GitHub提交中的338,000个最近的代码变更中挖掘了大约227,000个数据点,重点关注方法级粒度。SnipGen包含一系列可以组合成类似于链式思维的一系列提示模板,这使得对LLMs代码生成质量进行细致评估成为可能。通过提供挖掘工具、方法和数据集,SnipGen使研究人员和从业人员能够严格评估并解释LLMs在软件工程背景下的表现。