开源大模型在代码编辑方面与 OpenAI 相去甚远


这篇论文介绍了有关代码编辑任务的研究,重点关注了使用大型语言模型进行指导性代码编辑的行为。通过评估几种最先进的语言模型,发现了开放模型和封闭模型之间存在显著差距。作者还介绍了一个精心设计的代码编辑任务基准和一个训练集,通过这些可以显著提高开放模型的代码编辑能力。

三个主要要点是:

  • 通过对代码编辑任务进行评估,揭示了现有大型语言模型在教学代码编辑方面的能力差距。
  • 引入了一个经过精心设计的代码编辑任务基准,并使用该基准评估了几种前沿的语言模型。
  • 引入了一个新的、经过精心策划的、许可证宽松的代码编辑训练集,展示了如何通过这个训练集对开放式代码语言模型进行微调,显著提高其代码编辑能力。

详细:
大量研究都集中在为各种代码合成任务开发和评估大型语言模型上。

这些任务包括根据自然语言指令合成代码、根据代码合成测试和合成代码解释。相比之下,人们对使用 LLM 编辑教学代码的行为研究不足。在这些任务中,模型被指示更新提示中提供的代码块。编辑指令可能要求添加或删除一个功能、描述一个错误并要求修复、要求一种不同的解决方案,或者其他许多常见的代码编辑任务。

我们引入了一个精心制作的代码编辑任务基准,并用它来评估几种最先进的 LLM。我们的评估揭示了最先进的开放式和封闭式模型之间的巨大差距。例如,即使是 GPT-3.5-Turbo 在编辑代码方面也比最好的开放模型好 8.8%。

我们还引入了一个新的、经过精心策划的、经过许可的代码编辑训练集,其中包含自然语言指令。通过使用该训练集,我们证明可以对开放式代码 LLM 进行微调,从而显著提高其代码编辑能力。

网友讨论:
我分享这篇论文是为了引发讨论。免责声明:本文来自我们的研究小组,但无意在此进行自我推销。

  • 开源代码 LLM 在程序合成评估中的表现正慢慢接近 GPT-4 性能,而在使用 HumanEval、MBPP 和*新* LeetCode 问题(这是为了尽量减少污染)等常见基准时,则超过了 GPT-3.5-turbo(见 DeepSeek Coder:https://github.com/deepseek-ai/DeepSeek-Coder)。

然而,这只是表面:通常情况下,我们需要的是修改一段代码,并附带自然语言指令(例如,Cursor IDE 已从 GitHub Copilot 风格转向只专注于代码编辑:https://cursor.sh/features)。此外,简单的代码生成(可由接受过代码编辑训练的模型实现)也可视为代码编辑的一个子集,方法是在窗口前用空白提示模型。

在我们的各种研究项目中,我们都看到过代码 LLM 在代码编辑方面的挣扎。因此,我们做了一件显而易见的事情,那就是研究这些模型在这项特定任务中的表现。令人惊讶的是,与 GPT-3.5-turbo 相比,在简单合成方面表现出色的模型在代码编辑方面的表现却不尽如人意。

为什么会出现这种情况?虽然有人认为是数据污染造成的,但鉴于这些模型在新的和未见过的基准上的有效性,我怀疑这不是主要因素。会不会是 OpenAI 专门为代码或语言编辑等任务提供了特定的数据子集(然后将模型推广到代码)?

======================================================

我的意思是,基准测试中没有任何 70b 型号。当你把它与 8x110b MOE 机型(传闻中的 gpt4)进行比较时,它显然不尽如人意。我不具备对实际基准进行评论的专业知识,但这种比较似乎不够充分。我希望能将这一基准应用于 Llama 2 型号和可能更大的专有型号(如 Gemini Ultra),因为我担心代码编辑是更大型号表现更好的事情。

总的来说,我认为这种基准测试很好,因为对 llms 的测试越多越好,但在我看来,所做的基准测试还远远不够。因此,请在其中添加一些更大的指导-调整模型。)

======================================================
我不是唯一一个觉得最近发表的大量研究论文感觉有点毫无意义的人。除了到处流传的谣言之外,我们对 GPT-4 几乎一无所知。
如果能看到某种深入的思考过程,了解开源模型究竟在哪里失败,更重要的是为什么失败,那就太好了。除了简单的“更多参数、更多模型、更多数据好”之外。

我们现在都是 OpenAI 的无薪产品测试员。
======================================================
这是一个循序渐进的过程;可解释性工作(试图回答问题:“为什么这些模型更好?”)现在正在进行中。是的,我们无法对这些闭源模型进行解释,但我们不应该忽视它们,因为它们被许多人使用。

本文的目的是提供一份关于代码编辑性能最高的模型的报告,并强调,虽然开源模型在代码生成方面已接近 OpenAI 的能力,但它们在代码编辑方面却落后了,而代码编辑是一项在两个行业中越来越普遍的任务和学术界。

======================================================
除了规模之外,还有一个因素是 OA 有大量的实时反馈和编辑会话可供培训。所有这些 ChatGPT 和 Playground 用户(更不用说他们从 MS 获得的用于 Github Copilot 的数据)都在进行编辑,就像他们在生成数据一样。开放数据集不会包含那么多这样的内容,而且,即使它们包含任何 "编辑",也将是 "非政策性的",因为它必须源于早期的模型(而且可能差得多),因此不像 OA 的反馈对重新训练相同的 OA 模型那么有用。