WaveCoder与CodeOcean:高效编码LLM训练新策略

2024年01月03日 由 daydream 发表 301 0

大型语言模型(LLM),例如GPT-4,在编写软件代码方面具有惊人的能力。但是这些模型的成本和不透明性激发了人们对更经济、更小型的编码语言模型的兴趣。


微信截图_20240103133038


这些替代方案可以针对特定任务进行微调,并且运营成本只是一小部分。在开发这些LLM时,一个主要挑战是找到训练数据集的大小和模型性能之间的最佳平衡。


为了应对这一挑战,最近一篇微软研究论文介绍了一种使用更少示例训练高效编码语言模型的新技术。论文介绍了WaveCoder,这是一个声称在相似大小的数据集上训练的模型中表现最好的模型。


作为WaveCoder的补充,微软开发了CodeOcean,这是一个包含20,000个多样化代码示例的精选数据集。这个数据集可以增强基础模型在编码应用程序中的微调。


选择正确的编码样本


微信截图_20240103145026


虽然WaveCoder是一个令人印象深刻的模型,但论文中更有趣的部分是伴随它的数据集CodeOcean。CodeOcean解决了一个重大挑战:创建一个平衡成本效益和质量的数据集。研究人员假设,即使数据集包含有限的示例,具有最大多样性的数据集也能产生令人印象深刻的结果。


团队开始使用CodeSearchNet,这是一个庞大的编码数据集,包括200万对注释和代码。他们使用基于BERT的转换器模型为每个示例生成嵌入,将复杂信息转换为数字列表。


他们将聚类算法应用于嵌入,根据相似性对示例进行分类。这种方法让研究者能够从原始数据集中提取一个最大化多样性的子集。


添加指令


在建立核心数据集之后,研究人员必须创建包括代码和指令的训练示例。为此,他们创造了一个生成器-鉴别器框架,用于基于原始代码示例生成指导性数据。一开始,他们使用GPT-4来在特定情境上下文中制定任务定义。这些初步的任务定义,结合指令提示,被提供给GPT-3.5来为其他示例生成相应的指令。


微信截图_20240103145107


对于鉴别器组件,研究人员制定了一个单独的评估提示。这个提示连同代码和指令示例一起给了GPT-4进行评估。然后管道使用好的示例来生成未来的训练示例。


通过这个迭代的过程,团队生成了20,000个高质量的指导性样本。这些示例涵盖了四个不同的编码任务类别:代码生成、代码摘要、语言转换(从一种编程语言转换到另一种)、以及代码修复。这四个类别包含了大部分LLM编码任务。


训练WaveCoder


微信截图_20240103145133


有许多方法可以为编码LLM生成训练示例。但是,微软的CodeOcean因其重视概括性和示例效率而区别于其他研究。不同于依赖大量数据的研究,CodeOcean通过较小的数据集实现了高性能。


为了展示CodeOcean的有效性,研究者对三个编码语言模型进行了微调:StarCoder-15B、CodeLLaMA(7B和13B),以及DeepseekCoder-6.7B。考虑到数据集的大小,微调过程既快速又具有成本效益。研究人员通过三个关键的编码标准进行了微调模型的评估:HumanEval、MBPP和HumanEvalPack。


仅在CodeOcean上进行了几个训练周期,所有模型在这些基准上都显示出显著的改进。在代码生成方面,研究人员描述了WaveCoder的影响和局限性:“微调过程结束后,我们的模型的性能在与基础模型以及一系列开源模型相比时表现出了实质性的提升,但仍然落后于专有模型[如GPT-4和Gemini][以及]经过超过70,000训练数据训练的指令模型。”


WaveCoder与具有78,000训练示例的WizardCoder之间的性能差异很小。这表明"精炼和多样的指导数据能够显著提高指令微调的效率"。


WaveCoder在代码摘要和修复任务上特别优越。它在几乎所有编程语言中都胜过了其他开源模型。这一成就强调了“定义和分类代码相关任务对提高代码LLM的泛化能力的有效性”。


微软还未发布WaveCoder和CodeOcean的模型、代码和数据。但在Hugging Face上的讨论表明,微软正在审查是否将它们发布。展望未来,研究人员旨在探索更大数据集的效果,以及将CodeOcean与其他编码数据集结合使用的潜在好处。

文章来源:https://bdtechtalks.com/2024/01/02/microsoft-wavecoder-llm/
欢迎关注ATYUN官方公众号
商务合作及内容投稿请联系邮箱:bd@atyun.com
评论 登录
热门职位
Maluuba
20000~40000/月
Cisco
25000~30000/月 深圳市
PilotAILabs
30000~60000/年 深圳市
写评论取消
回复取消