首页 > 其他分享 >DeepSeek-Coder-V2: Breaking the Barrier of Closed-Source Models in Code Intelligence

DeepSeek-Coder-V2: Breaking the Barrier of Closed-Source Models in Code Intelligence

时间:2024-06-19 15:58:23浏览次数:10  
标签:Coder Code 训练 Barrier 模型 编程语言 V2 DeepSeek

DeepSeek-Coder-V2: Breaking the Barrier of Closed-Source Models in Code Intelligence

相关链接:arxiv github
关键字:开源代码智能混合专家模型(MoE)编程语言支持上下文长度扩展

摘要

我们介绍了DeepSeek-Coder-V2,这是一个开源的混合专家(MoE)代码语言模型,其性能与GPT4-Turbo在代码特定任务中相当。具体来说,DeepSeek-Coder-V2是从DeepSeek-V2的中间检查点进一步预训练而来,额外使用了6万亿个token。通过这种持续的预训练,DeepSeek-Coder-V2在编码和数学推理能力上大幅度增强了DeepSeek-V2的能力,同时在一般语言任务中保持了相当的性能。与DeepSeekCoder-33B相比,DeepSeek-Coder-V2在代码相关任务的各个方面以及推理和通用能力上都显示出了显著的进步。此外,DeepSeek-Coder-V2将其对编程语言的支持从86种扩展到338种,并将上下文长度从16K扩展到128K。在标准基准测试中,DeepSeek-Coder-V2在编码和数学基准测试中的性能优于GPT4-Turbo、Claude 3 Opus和Gemini 1.5 Pro等闭源模型。

核心方法

image.png

DeepSeek-Coder-V2的核心方法和架构主要包括以下几个关键点:

  • 混合专家模型(MoE):采用MoE架构,增强模型的编码和数学推理能力。
  • 持续预训练:在DeepSeek-V2的基础上,额外预训练了6万亿个token,提升了模型性能。
  • 编程语言支持:支持从86种扩展到338种不同的编程语言。
  • 上下文长度扩展:将模型的上下文长度从16K扩展到128K,以处理更复杂的编码任务。
  • 数据集构成:预训练数据集由60%的源代码、10%的数学语料库和30%的自然语言语料库组成。
  • 模型架构:与DeepSeek-V2保持一致,调整了部分超参数以适应新的训练需求。
  • 训练策略:采用了Next-Token-Prediction和Fill-In-Middle训练策略,增强了模型的代码补全能力。
  • 强化学习:使用Group Relative Policy Optimization (GRPO)算法,优化模型响应以符合人类偏好。

实验说明

实验结果使用多个基准测试来评估DeepSeek-Coder-V2的性能,包括HumanEval、MBPP、LiveCodeBench、SWE-Bench等。以下是部分实验结果的展示:

基准测试DeepSeek-Coder-V2GPT-4-TurboClaude 3 OpusGemini 1.5 Pro
HumanEval90.2%95.0%81.7%84.9%
MBPP76.2%72.0%60.1%50.4%
LiveCodeBench73.7%---

实验数据显示DeepSeek-Coder-V2在多个基准测试中均展现出与闭源模型相媲美的性能。数据来源于公开的基准测试集,要求模型在零样本情况下完成任务,反映了模型在实际编程任务中的泛化能力。

结论

本文介绍的DeepSeek-Coder-V2通过持续预训练,显著提升了模型在编码和数学推理方面的能力,同时保持了与DeepSeek-V2相当的一般语言性能。与现有的开源代码模型相比,DeepSeek-Coder-V2在支持的编程语言数量和上下文长度上都有了显著扩展,并在标准基准测试中展现出与闭源模型相媲美的性能。尽管在指令遵循能力上与最先进的模型还存在差距,但DeepSeek-Coder-V2的开源特性为代码智能领域的发展提供了重要的推动力。


请注意,表格中的数据仅为示例,具体数值应参考原文中的实验结果部分。此外,由于原文中未提供所有模型在LiveCodeBench上的数据,所以在表格中留空。在撰写时,应确保所有数据和信息的准确性,并与原文保持一致。

标签:Coder,Code,训练,Barrier,模型,编程语言,V2,DeepSeek
From: https://blog.csdn.net/liferecords/article/details/139805202

相关文章

  • 常用的vscode配置
    {"extensions.autoUpdate":"onlySelectedExtensions","workbench.iconTheme":"material-icon-theme","vsicons.dontShowNewVersionMessage":true,"editor.fontSize":16,"editor.codeAct......
  • LeetCode80. 删除有序数组中的重复项 II题解
    LeetCode80.删除有序数组中的重复项II题解题目链接:https://leetcode.cn/problems/remove-duplicates-from-sorted-array-ii/题目描述:给你一个有序数组nums,请你原地删除重复出现的元素,使得出现次数超过两次的元素只出现两次,返回删除后数组的新长度。不要使用额外的数......
  • LeetCode26. 删除有序数组中的重复项题解
    LeetCode26.删除有序数组中的重复项题解题目链接:https://leetcode.cn/problems/remove-duplicates-from-sorted-array题目描述:给你一个非严格递增排列的数组nums,请你原地删除重复出现的元素,使每个元素只出现一次,返回删除后数组的新长度。元素的相对顺序应该保持一......
  • QEMU + Vscode + Arm Arch's Linux调试小记
    QEMU+Vscode+ArmArch'sLinux调试小记​ 前几天看到了一篇讲授如何调试ARMLinux内核的文章,这里现在记录一下调试ARMLinux内核的办法下载QEMU​ 对于ArchLinux用户而言,没有必要自己编译,直接上AUR源下载就行。我自己有打算研究和调试多个架构,所以我自己下载了:yay-Sqem......
  • python模块之codecs
    python模块codecspython对多国语言的处理是支持的很好的,它可以处理现在任意编码的字符,这里深入的研究一下python对多种不同语言的处理。有一点需要清楚的是,当python要做编码转换的时候,会借助于内部的编码,转换过程是这样的:原有编码->内部编码->目的编码python的内部......
  • 代码随想录 算法训练营day11 Leetcode150 逆波兰表达式求值 Leetcode239 滑动窗口最大
    Leetcode150逆波兰表达式求值题目链接栈classSolution{publicintevalRPN(String[]tokens){Deque<Integer>stack=newLinkedList();for(Strings:tokens){if("+".equals(s)){//leetcode内置jdk的问题,不能使用==......
  • simd example code
    Sure,hereisasimpleCexamplethatusesSIMD(SingleInstruction,MultipleData)instructionswithIntel'sSSE(StreamingSIMDExtensions)orAVX(AdvancedVectorExtensions)intrinsics.Thiscodemultipliestwoarraysoffloatselement-wiseusing......
  • 解决VSCode中Debug和运行路径不一致
    哈喽,大家好,我是木头左!当尝试调试程序时,程序的运行路径与预期不符。这通常会导致程序无法正确读取文件或访问资源,从而影响调试过程。为了解决这个问题,可以在launch.json文件中配置CWD参数,以确保Debug和运行路径一致。配置launch.json文件launch.json文件是VSCode中用于配置调......
  • python系列:[Python]在VSCode中搭建Python开发环境
    [Python]在VSCode中搭建Python开发环境[Python]在VSCode中搭建Python开发环境前言安装1.安装VSCode的Python插件2.选择python解释器3.运行代码配置python检查项安装对应的库修改vscode的配置文件[Python]在VSCode中搭建Python开发环境前言之前用过Anaconda......
  • Ubuntu 使用Vscode的一些技巧 ROS
    UbuntuVSCode的一些设置(ROS)导入工作空间推荐只导入工作空间下的src目录如果将整个工作空间导入VSCode,那么这个src就变成了次级目录,容易在写程序的时候把本应该添加到具体工程src目录里的代码文件给误添加到这个catkin_ws下这个src目录里Ctrl+Shift+B快捷编译设置......