ZS4C:利用大语言模型对不完整代码片段进行零样本可编译代码合成
软件工程
2024-12-10 v3 人工智能
摘要
技术问答网站对寻求知识的软件开发者很有价值,但它们提供的代码片段往往因未解析的类型和缺失的库而无法编译且不完整。这给希望重用或分析这些片段的用户带来了挑战。现有方法要么不专注于创建可编译代码,要么成功率较低。为解决此问题,我们提出了 ZS4C,这是一种利用大语言模型 (LLM) 从不完整片段零样本合成可编译代码的轻量级方法。ZS4C 分两个阶段运作:首先,它使用一个 LLM(如 GPT-3.5)来识别片段中缺失的导入语句;其次,它与一个验证器(例如编译器)协作,修复由错误导入和语法问题引起的编译错误。我们在 StatType-SO 基准测试和一个新数据集 Python-SO 上评估了 ZS4C,后者包含来自 Stack Overflow 的 539 个 Python 片段,涵盖 20 个最流行的 Python 库。ZS4C 显著优于现有方法,与最先进的 SnR 相比,将编译成功率从 63% 提高到 95.1%,提升了 50.1%。平均而言,ZS4C 能推断出比 SnR 更准确的导入语句(F1 分数为 0.98),F1 值提高了 8.5%。
引用
@article{arxiv.2401.14279,
title = {ZS4C: Zero-Shot Synthesis of Compilable Code for Incomplete Code Snippets using LLMs},
author = {Azmain Kabir and Shaowei Wang and Yuan Tian and Tse-Hsun Chen and Muhammad Asaduzzaman and Wenbin Zhang},
journal= {arXiv preprint arXiv:2401.14279},
year = {2024}
}
备注
This paper has been accepted and published in ACM Transactions on Software Engineering and Methodology (TOSEM), [2024], [https://dl.acm.org/doi/10.1145/3702979]