ai工具集2

deepseek coder

deepseek coder,代码生成,跨文件代码补全,程序解数学题等

标签:ai工具集2deepseek deepseek ai deepseek coder deepseek coder官网

deepseek coder官网,代码生成,跨文件代码补全,程序解数学题等

什么是deepseek coder?

DeepSeek-Coder的训练数据集由87%的源代码,10%的与英语相关的自然语言语料库和3%的与代码无关的中文自然语言语料库组成英语语料库包括来自GitHub的Markdown和StackExchange的材料,这些材料用于增强模型对与代码相关的概念的理解,并提高其处理库使用和错误修复等任务的能力。与此同时,中文语料库包括旨在提高模型对中文语言的理解能力的高质量文章! 

deepseek coder官网: https://chat.deepseek.com/coder

deepseek coder

DeepSeek,作为幻方量化旗下人工智能公司深度求索(DeepSeek)的旗舰产品,是一个由大语言模型驱动的智能助手。

技术报告Highlights

  1. 数据首次构建了仓库级代码数据,并用拓扑排序解析文件之间依赖,显著增强了长距离跨文件的理解能力。
  2. 训练:在传统的预测下一个单词任务基础上,增加了Fill-In-Middle方法,大幅提升了代码补全的能力。
  3. 效果:对比开源模型,DeepSeek Coder的各尺度模型在代码生成、跨文件代码补全、以及程序解数学题等多个任务上均超过开源标杆CodeLllama。对比闭源模型,DeepSeek-Coder-33B-Instruct甚至超越了最新闭源模型GPT-3.5-Turbo,是最接近GPT-4-Turbo能力的开源代码模型

deepseek coder

数据
DeepSeek Coder的训练数据集构成如下:
  • 87%代码数据:主要来自2023年2月前的GitHub,覆盖87种编程语言
  • 10%代码相关的英文语料:主要来自GitHub的Markdown格式文件以及StackExchange
  • 3%非代码相关的中文语料:旨在提高模型对中文理解能力
代码数据过滤结合了规则、编译器和质量打分模型,来去除含有语法错误、可读性差和模块化低的代码,最终得到798G大小的高质量代码数据,共6亿个代码文件。为了确保预训练数据不被来自测试集数据污染(比如类似HumanEval和MBPP等普遍存在于GitHub上),我们采纳了一个n-gram过滤方法:如果一段代码包含与测试数据中任何10-gram字符串相同的内容,则会被从预训练数据中删除。

为了处理在实际应用中项目级别(Repo-Level)的代码场景,我们在提出了一个全新的拓扑排序方法,来利用同一代码库中文件之间的依赖关系,构建能反映真实的编码实践和结构的数据集。去重策略也是基于Repo-Level数据。

训练

训练包含三个阶段,先在Code和中英混合数据上预训练了1.8T Tokens,再进行长度插值外扩继续训练了200B Tokens,最后进行指令微调了2B Tokens。

deepseek coder

训练任务

由于编程语言中的特定依赖性,仅根据上文预测下文是不够的,典型的常见如代码补全,需要基于给定上文和后续文本生成相应插入代码。因此我们沿用前人提出的提出了FIM(Fill-in-the-Middle)方法,即:填补中间代码的预训练方法。

这种方法涉及将文本随机分成三部分(Prefix、Middle、Suffix),然后将Prefix和Suffix顺序打乱来预测Middle。具体来说,我们采用了两种不同新的数据拼接模式:PSM(Prefix-Suffix-Middle)和SPM(Suffix-Prefix-Middle)。这两种模式对于增强模型处理代码中各种结构排列的能力非常重要。考虑到尽量保持自然序列关系,最终我们选择了PSM模式。

deepseek coder
上图设计了消融实验对比FIM数据占比对训练的影响,发现FIM数据50%占比(红色)能更好兼顾代码生成(HumanEval、MBPP)和代码补全(HumanFIM)类任务。

训练超参

DeepSeek Coder全系列模型训练超参数如下:
deepseek coder

长度外扩

为了支持仓库级的代码训练,我们重新配置了RoPE的参数,并采用了线性缩放策略,将缩放因子从1增加到4,并将基础频率从10000改为100000。修改了配置的模型使用了512的Batch Size和16K的序列长度继续训练了1000步。理论上,最终的模型能够处理64K的上下文。但我们实验发现,16K内窗口内的模型结果比较可靠。

实验
代码生成能力

对于Base模型,DeepSeek-Coder-Base 33B在HumanEval基准测试中的多个代码语言上均能大幅超越目前开源代码模型。惊艳的是,DeepSeek-Coder-Base 6.7B也超过了CodeLlama 34B的性能,但参数量仅为后者的20%

在经过指令微调后,我们的模型在HumanEval基准测试中超过了闭源的GPT-3.5-Turbo模型,是目前最接近GPT-4的性能的开源代码模型。

deepseek coder

为了验证模型在样本外下真实的代码理解和生成能力,我们构造了一个全新的数据集,题目均来自LeetCode每周更新的编程题,按照难度区分为:Easy、Medium、Hard。

deepseek coder

上图可以看出,33B的DeepSeek-Coder同样超过了GPT-3.5-Turbo,并且我们发现COT(Chain-of-Thought)的方式可以更好增加我们模型的代码能力。故而强烈推荐在一些复杂的代码任务上使用DeepSeek Coder模型的时候,简单在Prompt里面增加一句:

You need first to write a step-by-step outline and then write the code.

跨文件代码补全能力

在实际代码补全应用中,理解跨众多依赖代码文件之间的关系是至关重要的。

受益于Repo-Level的预训练任务,DeepSeek-Coder-Base 6.7B的跨文件代码补全在大部分语言上都表现更佳。

deepseek coder

基于程序的数学推理能力

基于程序的数学推理可以评估大模型通过编程理解和解决数学问题的能力。

deepseek coder

上图展示了在七个不同的数学能力基准测试中,DeepSeek-Coder-Base多尺度的各个模型都取得了出色的表现,尤其是更大尺度的33B模型,展示了复杂数学计算和问题解决的潜力。

公开竞赛超过GPT3.5逼近4

在诸多代码能力公开竞赛榜单上,都能看到DeepSeek Coder是目前最贴近GPT4-Turbo版本(绿线)的开源模型,在同等非COT设置下,也超过了CPT-3.5-Turbo(红线)。

deepseek coder
deepseek coder

案例分析

与经过指令微调的DeepSeek-Coder-Instruct进行对话,可以轻松创建小型游戏或进行数据分析,并且在多轮对话中满足用户的需求。

deepseek coder
全新代码模型v1.5开源

伴随此次技术报告还有一个模型开源,DeepSeek-Coder-v1.5 7B:在通用语言模型DeepSeek-LLM 7B的基础上用代码数据进行继续训练了1.4T Tokens,最终模型全部训练数据的组成情况如下:

deepseek coder

相比上次开源的同尺度的6.7B的Coder,DeepSeek-Coder-v1.5获得了更好的语言理解、代码编程和数学推理等能力。更大尺度、更强综合能力的Coder模型正在训练中,我们会持续贡献给开源社区!

deepseek coder
HuggingFace下载地址:

https://huggingface.co/deepseek-ai

deepseek coder
关于DeepSeek

回顾下DeepSeek目前开源模型列表:

deepseek coder

下一步,深度求索会继续开源更大尺度、创新框架、以及复杂推理能力更好的模型!

数据评估

deepseek coder浏览人数已经达到45,如你需要查询该站的相关权重信息,可以点击"5118数据""爱站数据""Chinaz数据"进入;以目前的网站数据参考,建议大家请以爱站数据为准,更多网站价值评估因素如:deepseek coder的访问速度、搜索引擎收录以及索引量、用户体验等;当然要评估一个站的价值,最主要还是需要根据您自身的需求以及需要,一些确切的数据则需要找deepseek coder的站长进行洽谈提供。如该站的IP、PV、跳出率等!

关于deepseek coder特别声明

本站ai导航提供的deepseek coder都来源于网络,不保证外部链接的准确性和完整性,同时,对于该外部链接的指向,不由ai导航实际控制,在2024年5月8日 下午12:14收录时,该网页上的内容,都属于合规合法,后期网页的内容如出现违规,可以直接联系网站管理员进行删除,ai导航不承担任何责任。

相关导航

暂无评论

暂无评论...