无限光年:代码大模型OpenCoder发布

在这里插入图片描述

📖标题:OpenCoder: The Open Cookbook for Top-Tier Code Large Language Models
🌐来源:arXiv, 2411.04905

🌟摘要

🔸用于代码的大型语言模型 (LLM) 在各个领域都变得不可缺少,包括代码生成、推理任务和代理系统。虽然开放访问代码llm越来越多地接近专有模型的性能水平,但适合严格科学研究的高质量代码LLM,特别是那些具有可重复数据处理管道和透明训练协议的代码LLM仍然有限。稀缺性是由于各种挑战,包括资源限制、伦理考虑以及保持模型先进竞争优势。
🔸为了解决这一差距,我们引入了OpenCoder,这是一个顶级代码LLM,它不仅实现了与领先模型相当的性能,而且可以作为研究社区的“开放食谱”。与大多数先前的工作不同,我们不仅发布了模型权重和推理代码,还发布了可重复的训练数据、完整的数据处理管道、严格的实验消融结果以及开放科学研究的详细训练方案。
🔸通过这个全面的发布,我们确定了构建顶级代码LLM的关键因素:(1)代码优化的数据清理启发式规则和重复数据删除方法,(2)回忆与代码相关的文本语料库,(3)退火和监督微调阶段的高质量合成数据。通过提供这一开放水平,我们的目标是扩大对顶级代码LLM的各个方面的访问,OpenCoder作为一个强大的模型和一个用于加速研究的开放基础,并使代码AI的可重现进步成为可能。主页见https://opencoder-llm.github.io

🛎️文章简介

🔸研究问题:开源代码大语言模型(Code LLM)在性能上与顶尖私有模型存在差距,主要由于训练数据的不透明性限制了研究社区的发展。
🔸主要贡献:论文提出了OpenCoder,一个开源的代码大语言模型,并通过详细的数据处理和训练方法,显著提升了模型在多个代码生成评估基准上的表现。

📝重点思路

🔺相关工作

🔸代码大语言模型:开源模型包括CodeGen、StarCoder、CodeLlama和DeepSeekCoder等。
🔸代码基准:根据给定的问题描述自动创建编程解决方案,涉及代码检索、代码翻译、代码效率以及具有挑战性的存储库级代码完成任务。
🔸开源大语言模型:包括模型如LLaMA、Mistral、Qwen和ChatGLM,数据包括WildChat和LMSYS-Chat-1M等,以及许多训练细节。

🔺预训练数据构建

🔸预训练阶段:强调了数据清理的重要性,去除非信息性数据,如纯十六进制代码和过短的代码片段。
🔸退火阶段:需要高质量数据,对于进一步增强模型能力至关重要,因此进一步合并了算法语料库和合成数据。

🔺预训练

🔸模型架构:有1.5B和8B两个版本,都使用SwiGLU激活函数,词汇量为96640。
🔸训练细节:数据集包含中文和英文,以及607种编程语言,都采用了WSD训练计划。

🔺后训练数据

🔸开源指令:从网站上收集了开源指令语料库,并通过LLM提取与代码相关的片段,剔除低质量响应。
🔸教学合成指令:为了确保指令调整数据集的多样性和丰富性,使用评分器模型识别高质量种子数据。
🔸包相关指令:预训练数据中存在大量过时的包,因此通过外部文档合成了工具使用指令。
🔸大规模多样化指令:为了增加指令数据集的多样性,创建了一个大规模指令数据合成框架。

🔺两阶段微调

🔸阶段1:侧重于合成与理论计算机科学相关的问答对,如算法、数据结构和网络原理,让模型首先获取广泛能力。
🔸阶段2:从理论知识转移到实际编码任务,使用GitHub上的高质量代码创建了一个数据集,旨在提高模型生成和使用代码的能力。

💡个人观点

论文的核心在于提高各阶段训练数据的质量和任务分布,并做好每阶段的能力学习。

🧩附录

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大模型任我行

随意啦,喜欢就好~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值