Qwen2.5-Coder系列开源:强大、多样、实用的代码模型
Qwen2.5-Coder系列开源,涵盖0.5B至32B六种尺寸,其中32B Instruct模型在代码生成、修复等任务上达到开源SOTA,性能媲美GPT-4o,并探索了代码助手和Artifacts等实际应用场景。
GITHUB HUGGING FACE MODELSCOPE KAGGLE DEMO DISCORD介绍今天,我们很高兴开源“强大”、“多样化”和“实用”的Qwen2.5-Coder系列,致力于持续推动开放代码大语言模型的发展。
- 强大:Qwen2.5-Coder-32B-Instruct已成为当前最先进的开源代码模型,编码能力与GPT-4o相当。在展现出强大、全面的编码能力的同时,还拥有良好的通用和数学能力;
- 多样化:基于之前开源的1.5B和7B两种尺寸,本次发布带来四种模型尺寸,包括0.5B、3B、14B和32B。截至目前,Qwen2.5-Coder已覆盖六种主流模型尺寸,满足不同开发者的需求;
- 实用:我们探索了Qwen2.5-Coder在代码助手和Artifacts两种场景中的实用性,并通过一些示例展示了其在现实场景中的潜在应用。
强大:代码能力达到开源模型最先进水平代码生成:Qwen2.5-Coder-32B-Instruct作为本次开源版本的旗舰模型,在多个流行的代码生成基准测试(EvalPlus、LiveCodeBench、BigCodeBench)上取得了开源模型中的最佳性能,
并与GPT-4o具有竞争力。代码修复:代码修复是一项重要的编程技能。Qwen2.5-Coder-32B-Instruct可以帮助用户修复代码中的错误,使编程更高效。
Aider是代码修复的流行基准,Qwen2.5-Coder-32B-Instruct得分为73.7,在Aider上与GPT-4o表现相当。代码推理:代码推理是指模型学习代码执行过程并准确预测模型输入和输出的能力。
最近发布的Qwen2.5-Coder-7B-Instruct在代码推理方面已经表现出令人印象深刻的性能,而这款32B模型更进一步。多种编程语言:智能编程助手应该熟悉所有编程语言。
Qwen2.5-Coder-32B-Instruct在超过40种编程语言中表现出色,在McEval上得分为65.9,在Haskell和Racket等语言上表现尤为突出,这得益于我们在预训练阶段独特的数据清理和平衡。
此外,Qwen2.5-Coder-32B-Instruct的多语言代码修复能力同样令人印象深刻,帮助用户理解和修改他们熟悉的编程语言,显著降低了学习不熟悉语言的成本。
与McEval类似,MdEval是一个多语言代码修复基准,Qwen2.5-Coder-32B-Instruct得分为75.2,在所有开源模型中排名第一。
- 人类偏好对齐:为了评估Qwen2.5-Coder-32B-Instruct与人类偏好的对齐性能,我们构建了一个内部带注释的代码偏好评估基准,名为Code Arena(类似于Arena Hard)。
我们使用GPT-4o作为偏好对齐的评估模型,采用“A vs B胜率”评估方法,该方法衡量测试集中模型A的分数超过模型B的实例的百分比。下面的结果展示了Qwen2.5-Coder-32B-Instruct在偏好对齐方面的优势。
多样化:丰富的模型尺寸这次,Qwen2.5-Coder开源了丰富的模型尺寸,包括0.5B、1.5B、3B、7B、14B和32B,不仅满足了开发者不同资源场景的需求,也为研究界提供了良好的实验平台。
下表提供了详细的模型信息:我们一直相信缩放定律的理念。我们评估了不同尺寸Qwen2.5-Coder在所有数据集上的性能,以验证缩放定律在代码大语言模型中的有效性。
对于每种尺寸,我们都开源了Base和Instruct模型,其中Instruct模型作为官方对齐模型,可以直接对话,而Base模型作为开发人员微调自己模型的基础。
以下是不同尺寸Base模型的性能:以下是不同尺寸Instruct模型的性能:我们在核心数据集上对不同尺寸的Qwen2.5-Coder与其他开源模型进行了比较。- 对于Base模型,我们选择MBPP-3shot作为评估指标。
我们广泛的实验表明,MBPP-3shot更适合评估基础模型,并且与模型的实际性能相关性良好。
- 对于Instruct模型,我们选择了LiveCodeBench最近4个月(2024年7月至2024年11月)的问题作为评估,这些是最新发布的问题,不可能泄露到训练集中,反映了模型的分布外能力。
模型尺寸与模型性能之间存在正相关关系,Qwen2.5-Coder在所有尺寸上均达到了最先进性能,这鼓励我们继续探索更大尺寸的Coder。
实用:邂逅Cursor和Artifacts实用的Coder一直是我们的愿景,为此,我们探索了Qwen2.5-Coder在代码助手和Artifacts场景中的实际表现。Qwen2.5-Coder 🤝 Cursor代码助手已被广泛使用,但目前大多数都依赖于闭源模型。
我们希望Qwen2.5-Coder的出现能为开发者提供一个友好且强大的选择。以下是Qwen2.5-Coder在Cursor中的一个示例。
此外,Qwen2.5-Coder-32B在预训练模型上展示了强大的代码补全能力,在总共5个基准测试上达到了最先进性能:Humaneval-Infilling、CrossCodeEval、CrossCodeLongEval、RepoEval和SAFIM。
为了保持公平比较,我们将最大序列长度控制为8k,并使用中间填充模式进行测试。
在CrossCodeEval、CrossCodeLongEval、RepoEval和Humaneval-Infilling四个评估集中,我们评估了生成的内容是否完全等于真实标签(精确匹配)。在SAFIM中,我们使用一次性执行成功率(Pass@1)进行评估。
Qwen2.5-Coder 🤝 ArtifactsArtifacts是代码生成的重要应用,帮助用户创建可视化作品。我们选择Open WebUI来探索Qwen2.5-Coder在Artifacts场景中的潜力,以下是一些具体示例。
我们很快将在通义官网https://tongyi.aliyun.com推出代码模式,支持一键生成网站、小游戏和数据图表等可视化应用。欢迎大家体验!
模型许可Qwen2.5-Coder 0.5B、1.5B、7B、14B和32B采用Apache 2.0许可,而3B采用Qwen-Research许可;Qwen-Coder的下一步是什么?我们相信本次发布能够真正帮助开发者,并与社区一起探索更多有趣的应用场景。
此外,我们正在深入研究以代码为中心的强大推理模型,相信很快会与大家见面!
引用@article{hui2024qwen2,title={Qwen2.5-Coder Technical Report},author={Hui,Binyuan and Yang,Jian and Cui,Zeyu and Yang,Jiaxi and Liu,
Dayiheng and Zhang,Lei and Liu,Tianyu and Zhang,Jiajun and Yu,Bowen and Dang,Kai and others},journal={arXiv preprint arXiv:2409.
12186},year={2024}}@article{yang2024qwen2,title={Qwen2 technical report},author={Yang,An and Yang,Baosong and Hui,Binyuan and Zheng,
Bo and Yu,
Bowen and Zhou,Chang and Li,Chengpeng and Li,Chengyuan and Liu,Dayiheng and Huang,Fei and others},journal={arXiv preprint arXiv:
2407.10671},year={2024}}