🌐 DeepSeek Coder介绍
DeepSeek Coder由一系列代码语言模型组成,每个模型都在2T令牌上从头开始训练,其中87%是英文和中文的代码,13%是自然语言。我们提供各种尺寸的代码模型,范围从1B到33B版本。每个模型都通过使用16K的窗口大小和额外的填空任务在项目级代码语料库上进行预训练,以支持项目级代码补全和填充。在编码能力方面,DeepSeek Coder在多种编程语言和各种基准测试的开源代码模型中实现了最先进的性能。
🔗 DeepSeek Coder(coder.deepseek.com/)
您好,我是由中国的深度求索(DeepSeek)公司开发的编程智能助手DeepSeek Coder,基于DeepSeek-Coder模型。我专门用来回答计算机科学相关的问题。
作为一个AI编程助手,我被设计用来帮助用户解答计算机科学和编程相关的问题。我的主要功能包括:
-
编程问题解答:我可以帮助解答各种编程语言的问题,包括但不限于Python、Java、C++、JavaScript等。我可以解释代码的运行原理,帮助调试代码,提供代码优化建议等。
-
代码生成:我可以根据用户的描述生成代码片段,这对于快速原型开发和代码生成任务非常有用。
-
代码审查:我可以对代码进行静态分析,找出潜在的错误、性能问题、代码风格问题等,并提供改进建议。
-
学习资源推荐:我可以推荐适合初学者和进阶者的编程学习资源,包括书籍、在线课程、教程等。
-
技术文档查询:我可以帮助查询和理解各种编程语言和框架的官方文档,提供关键概念的解释和示例代码。
-
编程语言教学:我可以作为一个编程语言的教学工具,帮助用户理解和学习新的编程语言和概念。
-
代码翻译:我可以将一种编程语言的代码翻译成另一种语言,帮助用户理解不同语言的异同。
-
代码优化:我可以帮助用户优化代码,提高性能和效率。
-
代码生成:我可以根据用户的需求生成代码,包括但不限于数据库操作、网络请求、文件操作等。
-
代码片段管理:我可以帮助用户管理和组织他们的代码片段,方便他们在需要时查找和使用。
请注意,虽然我可以提供大量的帮助,但我不能保证所有问题的答案都是100%准确的,因为我的知识是基于我被训练的数据集。对于复杂的问题,我可能需要进一步的上下文信息才能给出准确的答案。
海量训练数据: 在2T token上从头开始训练,包括87%的代码和13%的英文和中文语言数据。
高度灵活和可扩展: 提供1B、5.7B、6.7B和33B型号尺寸,使用户能够选择最适合其要求的设置。
卓越的模型性能: 在HumanEval、MultiPL-E、MBPP、DS-1000和APPS基准测试中公开可用的代码模型中具有最先进的性能。
高级代码补全能力: 16K窗口大小和填空任务,支持项目级代码补全和填空任务。
支持的编程语言:
['ada', 'agda', 'alloy', 'antlr', 'applescript', 'assembly', 'augeas', 'awk', 'batchfile', 'bluespec', 'c', 'c-sharp', 'clojure', 'cmake', 'coffeescript', 'common-lisp', 'cpp', 'css', 'cuda', 'dart', 'dockerfile', 'elixir', 'elm', 'emacs-lisp', 'erlang', 'f-sharp', 'fortran', 'glsl', 'go', 'groovy', 'haskell', 'html', 'idris', 'isabelle', 'java', 'java-server-pages', 'javascript', 'json', 'julia', 'jupyter-notebook', 'kotlin', 'lean', 'literate-agda', 'literate-coffeescript', 'literate-haskell', 'lua', 'makefile', 'maple', 'markdown', 'mathematica', 'matlab', 'ocaml', 'pascal', 'perl', 'php', 'powershell', 'prolog', 'protocol-buffer', 'python', 'r', 'racket', 'restructuredtext', 'rmarkdown', 'ruby', 'rust', 'sas', 'scala', 'scheme', 'shell', 'smalltalk', 'solidity', 'sparql', 'sql', 'stan', 'standard-ml', 'stata', 'systemverilog', 'tcl', 'tcsh', 'tex', 'thrift', 'typescript', 'verilog', 'vhdl', 'visual-basic', 'xslt', 'yacc', 'yaml', 'zig']
评价结果:
我们在各种与编码相关的基准测试中评估DeepSeek Coder。
结果表明,DeepSeek-Coder-Base-33B显着优于现有开源代码LLMs。与CodeLlama-34B相比,在HumanEval Python、HumanEval Multilingual、MBPP和DS-1000上分别领先7.9%、9.3%、10.8%和5.9%。令人惊讶的是,我们的DeepSeek-Coder-Base-7B达到了CodeLlama-34B的性能。指令调整后的DeepSeek-Coder-Instruct-33B模型在HumanEval上的表现优于GPT35-turbo,并在MBPP上达到与GPT35-turbo相当的结果。
更多评估详情可以在详细评估中找到。
数据创建和模型训练的过程
数据创建
步骤1:从GitHub收集代码数据,并应用与StarCoder Data相同的过滤规则来过滤数据。
步骤2:解析同一存储库内文件的依赖关系,根据依赖关系重新排列文件位置。
步骤3:连接相关文件以形成单个示例,并使用存储库级minhash进行重复数据删除。
步骤4:进一步过滤低质量代码,例如语法错误或可读性差的代码。