Skip to main content
QUICK REVIEW

[论文解读] Automatic Code Documentation Generation Using GPT-3

Junaed Younus Khan, Gias Uddin|arXiv (Cornell University)|Sep 6, 2022
Machine Learning and Data Classification被引用 7
一句话总结

本文评估了基于 GPT-3 的模型 Codex 在六种编程语言上的自动代码文档生成能力,该模型在代码和自然语言上进行了微调。仅使用单样本提示(one-shot prompting),Codex 在该任务中取得了 20.6 的 BLEU 分数,显著优于先前的最先进方法,提升了 11.2%,表明其在代码文档生成任务中具备强大的零样本和少样本泛化能力。

ABSTRACT

Source code documentation is an important artifact for efficient software development. Code documentation could greatly benefit from automation since manual documentation is often labouring, resource and time-intensive. In this paper, we employed Codex for automatic code documentation creation. Codex is a GPT-3 based model pre-trained on both natural and programming languages. We find that Codex outperforms existing techniques even with basic settings like one-shot learning (i.e., providing only one example for training). Codex achieves an overall BLEU score of 20.6 for six different programming languages (11.2% improvement over earlier state-of-the-art techniques). Thus, Codex shows promise and warrants in-depth future studies for automatic code documentation generation to support diverse development tasks.

研究动机与目标

  • 探究基于 GPT-3 的模型 Codex 在无需微调的情况下生成代码文档的有效性。
  • 将 Codex 的性能与现有最先进模型在自动代码文档生成任务中的表现进行比较。
  • 通过自动指标(BLEU)和人工可读示例,评估生成文档的质量。
  • 探索少样本和零样本提示在代码文档生成任务中的潜力。

提出的方法

  • 使用在多样化编程语言和自然语言数据上预训练的基于 GPT-3 的模型 Codex 进行代码文档生成。
  • 采用单样本学习提示方法,即通过提供一个代码-文档对示例来引导生成。
  • 评估在 CodeSearchNet 数据集上进行,涵盖六种编程语言:Python、Java、PHP、Go、JavaScript 和 Ruby。
  • 使用 BLEU 分数对生成的文档与真实人工编写的文档进行自动指标对比。
  • 研究还包含对生成文档的定性分析,将其与真实文档在清晰度和完整性方面进行比较。
  • 参数设置依据官方 OpenAI 文档选定,未进行任何模型微调。

实验结果

研究问题

  • RQ1Codex 是否能够在仅使用单样本提示且不进行微调的情况下生成高质量的代码文档?
  • RQ2Codex 在代码文档生成任务中的表现与现有最先进模型(如 CodeBERT、PLBART 和 CoTexT)相比如何?
  • RQ3少样本提示对生成文档的质量和一致性有何影响?
  • RQ4Codex 生成的文档在清晰度和完整性方面与人工编写的文档相比如何?
  • RQ5在实际软件工程环境中,使用 Codex 进行代码文档生成存在哪些局限性?

主要发现

  • Codex 在 CodeSearchNet 数据集上取得了 20.6 的 BLEU 分数,相较于之前最先进技术提升了 11.2%。
  • 即使提示信息极少(单样本提示),Codex 的表现仍优于需要任务特定微调或重新训练的现有模型。
  • 在定性分析中,Codex 生成的文档在多个案例中比真实人工编写的版本更具可读性或语义丰富性。
  • 例如,Codex 正确地将一个 PHP 函数描述为将 256 进制数转换为 10 进制数,而原始文档使用了不够精确的术语“decimal”。
  • 在 Ruby 中,Codex 补充了正确的语义细节:'如果路径不存在,则执行空操作(noop)',而原始文档中缺失了这一信息。
  • 本研究证实,像 Codex 这类基于 GPT-3 的模型可作为代码文档生成任务中强大的零样本或少样本基线模型,值得进一步研究。

更好的研究,从现在开始

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

无需绑定信用卡

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