Skip to main content
QUICK REVIEW

[论文解读] Few-shot training LLMs for project-specific code-summarization

Toufique Ahmed, Prémkumar Dévanbu|arXiv (Cornell University)|Jul 9, 2022
Software Engineering Research被引用 10
一句话总结

本文提出仅使用10个项目特定的代码-注释对,对Codex语言模型进行少样本微调,显著提升了代码摘要性能。通过利用项目本地示例的少样本提示,该方法在零样本、一样本以及传统微调模型上均实现了统计上显著的性能提升,其表现优于使用数千个样本训练的模型,且仅需极少数据。

ABSTRACT

Very large language models (LLMs), such as GPT-3 and Codex have achieved state-of-the-art performance on several natural-language tasks, and show great promise also for code. A particularly exciting aspect of LLMs is their knack for few-shot and zero-shot learning: they can learn to perform a task with very few examples. Few-shotting has particular synergies in software engineering, where there are a lot of phenomena (identifier names, APIs, terminology, coding patterns) that are known to be highly project-specific. However, project-specific data can be quite limited, especially early in the history of a project; thus the few-shot learning capacity of LLMs might be very relevant. In this paper, we investigate the use few-shot training with the very large GPT (Generative Pre-trained Transformer) Codex model, and find evidence suggesting that one can significantly surpass state-of-the-art models for code-summarization, leveraging project-specific training.

研究动机与目标

  • 探究仅使用项目特定示例的少样本提示是否能显著提升代码摘要性能,超越零样本或一样本设置。
  • 评估仅使用10个示例的少样本训练是否能超越需要数千个项目特定样本的传统微调方法。
  • 在性能与泛化能力方面,比较同项目少样本训练与跨项目少样本提示的效果。
  • 评估在真实软件工程场景中,使用极少量开发者标注的代码-注释对实现高精度代码摘要的可行性和有效性。

提出的方法

  • 本研究使用Codex语言模型(GPT-3的微调版本)进行代码摘要,利用其少样本上下文学习能力。
  • 通过在待摘要代码之前包含10个项目特定的代码-注释对作为示范,构建少样本提示。
  • 模型通过自回归方式预测token,基于提示生成文档字符串,且无需任何参数更新。
  • 在涵盖6种编程语言的8个开源项目项目特定数据集上,使用BLEU-4和ROUGE-L指标评估性能。
  • 通过对比零样本、一样本、跨项目少样本和同项目少样本设置,隔离项目特定数据的影响。
  • 使用配对t检验在多个项目和编程语言上评估性能提升的统计显著性。

实验结果

研究问题

  • RQ1仅使用10个项目特定示例的少样本提示是否能显著提升代码摘要性能,相比零样本或一样本设置?
  • RQ2在代码摘要任务中,同项目少样本训练是否优于跨项目少样本训练?
  • RQ3使用极少量数据(10个示例)的少样本方法是否能超越需要数千个标注示例的传统微调方法?
  • RQ4在多种编程语言和项目中,少样本提示带来的性能提升是否具有统计显著性?

主要发现

  • 在所有8个评估项目中,使用10个示例的同项目少样本训练相比跨项目少样本训练,代码摘要性能提升了2%至46%。
  • 同项目少样本方法在8个项目中的2个中表现出统计显著的改进,且在所有项目中整体性能提升均具有统计显著性。
  • 在所有6种编程语言中,跨项目少样本训练使性能提升了1%至15%,其中4种语言的提升具有统计显著性。
  • 使用Codex进行零样本和一样本提示的平均BLEU-4得分分别为2.96和6.22,表明性能较差,证实了少样本方法在代码摘要中的必要性。
  • 随着少样本示例数量的增加,模型性能平滑提升,表明其具备泛化能力而非对测试数据的记忆。
  • 本研究证明,极少量项目特定数据(10个示例)即可产生优于在数千个样本上微调的模型的结果,凸显了少样本提示的样本效率。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。