中文

GENCNIPPET:自动生成支持编程问题的代码片段

软件工程 2025-04-24 v1

摘要

背景:软件开发者经常在技术问答论坛如 Stack Overflow(SO)上提问,以求解其编程相关问题(如代码错误和异常行为)的解决方案。问题:许多问题因缺乏 readily 可用代码、时间限制、雇主限制、保密顾虑或对应分享代码 uncertainty 而缺少必需的代码片段。不幸的是,缺失但必需的代码片段会阻止问题获得及时和适当的解决方案。目标:我们计划引入 GENCNIPPET,一个设计用于集成到 SO 提问提交系统的工具。GENCNIPPET 将生成相关代码示例(如需)以支持问题的及时解决方案。方法:我们首先下载了 SO 2024 年 4 月的数据转储,其中包含 194 万个与 Python 相关且包含代码片段的提问,以及 143 万个与 Java 相关的提问。随后,我们筛选这些提问以识别真正需要代码片段的提问,采用最先进的机器学习模型。接着,我们选择得分积极的提问,以确保数据质量。我们的计划是对 Llama-3 模型(如 Llama-3-8B)进行微调,训练集占选中选提问的 80%,验证集占 10%。选择 Llama 模型的主要原因是其开源可访问性和强大的微调能力,这对于部署一个免费可访问的工具至关重要。GENCNIPPET 将作为浏览器插件集成到 SO 提问提交系统中。它将与微调后的模型通信,以生成针对目标提问的定制化代码片段。对生成代码示例的有效性将通过自动评估、用户视角以及在真实场景中的野生测试进行评估。

关键词

引用

@article{arxiv.2504.16292,
  title  = {GENCNIPPET: Automated Generation of Code Snippets for Supporting Programming Questions},
  author = {Saikat Mondal and Chanchal K. Roy},
  journal= {arXiv preprint arXiv:2504.16292},
  year   = {2025}
}

备注

Accepted in the International Conference on Mining Software Repositories (MSR 2025 Registered Reports Track)