Skip to main content
QUICK REVIEW

[论文解读] GPT-Neo: Large Scale Autoregressive Language Modeling with Mesh-Tensorflow

Dan Hendrycks, Steven Basart|arXiv (Cornell University)|Mar 21, 2021
Software Engineering Research参考文献 32被引用 137
一句话总结

本文在 APPS 上评估代码生成,提出了一个 10,000 题基准,并显示在 APPS 上微调的 GPT-Neo 在代码生成方面取得显著但有限的能力,语法错误随模型规模增大而下降。

ABSTRACT

GPT-Neo is an implementation of model & data-parallel GPT-2 and GPT-3-like models, utilizing Mesh Tensorflow for distributed support. This codebase is designed for TPUs. It should also work on GPUs, though we do not recommend this hardware configuration.

研究动机与目标

  • 定义一个严格的基准(APPS)用于从自然语言到 Python 的代码生成。
  • 评估大型语言模型在使用自动测试用例评估的真实代码生成任务中的表现。
  • 分析模型规模、微调和解码策略对代码生成性能的影响。

提出的方法

  • 构建 APPS,包含 10,000 道题、131,777 个测试用例和 232,421 个人工编写的解答。
  • 在 GitHub 派生的 Python 数据上对 GPT-2 进行去污染预训练;在 APPS 上使用题干和格式进行微调。
  • 通过让生成的程序在测试用例上执行来评估代码(测试用例平均),并要求所有测试用例通过(严格准确度)。
  • 使用束搜索,束宽为 5,并对每道题评估五束。
  • 将 GPT-2 及其变体、GPT-Neo、GPT-3(few-shot)和 Codex 风格的更大模型在入门/面试/竞赛难度水平进行比较。

实验结果

研究问题

  • RQ1当给出自然语言描述时,大型语言模型能够生成 Python 代码到何种程度?
  • RQ2相比通用预训练,在专门的代码生成基准上的微调是否能提高性能?
  • RQ3模型规模、语法错误与 APPS 上代码正确性之间的关系如何?
  • RQ4自动评估指标(测试用例准确性与 BLEU)与真实代码正确性之间的相关性如何?

主要发现

  • GPT-Neo 2.7B 在入门题上,随生成一个解答,约通过 15% 的测试用例,严格准确度约 4%。
  • 语法错误随模型规模和微调显著下降;GPT-Neo 2.7B 在入门题上的语法错误约为 3%。
  • BLEU 分数并非代码正确性的可靠指标,并且可能与黄金标准准确性呈负相关。
  • GPT-3(175B)在 APPS 的少量示例设置中解决的问题极少,表明该设置下的代码生成能力有限。
  • 更大且专注于代码的模型(类似 Codex)表现优于 GPT-Neo 2.7B,但仍未能完全解决 APPS。
  • Beam search(Top-5)提升正确解的比率,使 GPT-Neo 2.7B 在入门题上实现更高的严格准确度。

更好的研究,从现在开始

从论文设计到论文写作,大幅缩短您的研究时间。

无需绑定信用卡

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