Aitrainee | 公众号:AI进修生
🌟它是 DeepSeek 团队发布的一个新的开源专家混合模型。该模型在多个基准测试中击败了 GPT-4、ChatGPT、Claude-3、Gemini、Mixtral 8x22b 和 Llama 3。它可用于创建自己的 ChatGPT 克隆和 Github Copilot 替代品。
体验地址:https://chat.deepseek.com/coder
Hello,大家好,我是Aitrainee,欢迎阅读本期新文章。
这两天有个新模型引起了不少关注,那就是 DeepSeek-Coder-V2 。这个模型是DeepSeek-Coder的最新升级版,相比之前的版本有了很大的提升,特别是在 编码任务 方面的表现 令人惊艳 。
DeepSeek-Coder-V2一共有两个版本:标准版DeepSeek-Coder-V2和精简版DeepSeek-Coder-V2 Light。标准版的参数量高达2360亿,而精简版的参数量则是160亿。
虽然精简版的体积小了不少,但在本地推理时依然表现出色。两个版本都支持128k的上下文长度,并且兼容338种编程语言,远超之前仅支持86种语言的旧版。
新模型通过8万亿标记进行训练,不仅在代码相关任务中表现卓越,在推理和一般能力方面也有显著进步。DeepSeek-Coder-V2在多个基准测试中都击败了其他闭源模型, 如GPT-4 Turbo、Claude 3、Opus和Gemini 1.5 Pro。
▲ 在标准基准评估中,DeepSeek-Coder-V2 在编码和数学基准测试中的表现优于 GPT4-Turbo、Claude 3 Opus 和 Gemini 1.5 Pro 等闭源模型。
在HumanEval基准测试中,DeepSeek-Coder-V2取得了90.2的高分,超越了所有竞争对手。而在mbpp plus和GSM 8K基准测试中也表现优异,除了在GSM 8K中仅次于Claude 3 Opus,差距只有一个小数点。
更令人惊喜的是,DeepSeek-Coder-V2的定价非常合理, 每百万 输入标记只需14美分,输出标记为28美分,这 远低于 其他模型。而且,它采用MIT许可证,允许各种商业和非商业用途,非常灵活。
▲ 在DeepSeek 平台上提供与 OpenAI 兼容的 API:platform.deepseek.com。注册即可获得数百万个免费代币。还可以以无与伦比的价格按使用量付费。
如果你想试用这个模型,可以从Hugging Face下载权重文件,或者通过AMA平台直接使用。还可以免费试用DeepSeek Chat平台,只需注册账号即可。在界面中选择Coder V2选项就能开始体验。
我们来做几个测试。首先,我们让它生成一个Python版本的贪 吃蛇游戏程序, 代码解释详细且运行正常。
然后,我们尝试创建一个 现代化 的HTML、CSS和JavaScript登陆页面,效果也相当不错。
DeepSeek-Coder-V2的2000亿参数版本可以直接在平台上运行,而小版本需要本地运行。我在本地测试了相同的任务,小版本在大多数任务中的表现与大版本类似,虽然在非常高级的任务中略有下降,但整体仍然优于CodeStral。
总的来说,DeepSeek-Coder-V2在编码任务中表现非常出色,支持超过300种编程语言,可本地运行且完全免费用于商业用途。另外,它还提供500万免费API标记,非常适合小型和个人项目。你可以将其连接到如continue Dev这样的协作平台。
下面提供官方的 文档介绍、相关资源、部署教程 等,进一步支撑你的行动,以提升本文的帮助力。
- 介绍 =====
我们介绍了DeepSeek-Coder-V2,这是一种开源的Mixture-of-Experts(MoE)代码语言模型,在代码相关任务中达到了与GPT4-Turbo相媲美的性能。
具体来说,DeepSeek-Coder-V2是在DeepSeek-V2的一个中间检查点基础上,继续进行额外的6万亿个标记的预训练。通过这种持续的预训练,DeepSeek-Coder-V2显著增强了DeepSeek-V2的编码和数学推理能力,同时在一般语言任务中保持了相当的性能。
与DeepSeek-Coder-33B相比,DeepSeek-Coder-V2在代码相关任务以及推理和一般能力方面表现出显著进步。此外,DeepSeek-Coder-V2支持的编程语言从86种增加到338种,同时将上下文长度从16K扩展到128K。
▲ 上下文窗口:(NIAH) 测试的评估结果Needle In A Haystack。DeepSeek-Coder-V2 在高达128K的所有上下文窗口长度上表现良好。
在标准基准评估中,DeepSeek-Coder-V2在编码和数学基准测试中表现优于闭源模型如GPT4-Turbo、Claude 3 Opus和Gemini 1.5 Pro。支持的编程语言列表可以在这里找到。
- 模型下载
我们基于DeepSeekMoE框架发布了具有16B和236B参数的DeepSeek-Coder-V2,包括基础模型和指令模型,公开提供。
| 模型 | 总参数量 | 激活参数量 | 上下文长度 | 下载链接 | | DeepSeek-Coder-V2-Lite-Base | 16B | 2.4B | 128k | 🤗 HuggingFace | | DeepSeek-Coder-V2-Lite-Instruct | 16B | 2.4B | 128k | 🤗 HuggingFace | | DeepSeek-Coder-V2-Base | 236B | 21B | 128k | 🤗 HuggingFace | | DeepSeek-Coder-V2-Instruct | 236B | 21B | 128k | 🤗 HuggingFace |
- 评估结果
3.1 代码生成
| | 总参数量 | 激活参数量 | HumanEval | MBPP+ | LiveCodeBench | USACO | | 闭源模型 | | | | | | | | Gemini-1.5-Pro | - | - | 83.5 | 74.6 | 34.1 | 4.9 | | Claude-3-Opus | - | - | 84.2 | 72.0 | 34.6 | 7.8 | | GPT-4-Turbo-1106 | - | - | 87.8 | 69.3 | 37.1 | 11.1 | | GPT-4-Turbo-0409 | - | - | 88.2 | 72.2 | 45.7 | 12.3 | | GPT-4o-0513 | - | - | 91.0 | 73.5 | 43.4 | 18.8 | | 开源模型 | | | | | | | | CodeStral | 22B | 22B | 78.1 | 68.2 | 31.0 | 4.6 | | DeepSeek-Coder-Instruct | 33B | 33B | 79.3 | 70.1 | 22.5 | 4.2 | | Llama3-Instruct | 70B | 70B | 81.1 | 68.8 | 28.7 | 3.3 | | DeepSeek-Coder-V2-Lite-Instruct | 16B | 2.4B | 81.1 | 68.8 | 24.3 | 6.5 | | DeepSeek-Coder-V2-Instruct | 236B | 21B | 90.2 | 76.2 | 43.4 | 12.1 |
3.2 代码补全
| 模型 | 总参数量 | 激活参数量 | RepoBench (Python) | RepoBench (Java) | HumanEval FIM | | CodeStral | 22B | 22B | 46.1 | 45.7 | 83.0 | | DeepSeek-Coder-Base | 7B | 7B | 36.2 | 43.3 | 86.1 | | DeepSeek-Coder-Base | 33B | 33B | 39.1 | 44.8 | 86.4 | | DeepSeek-Coder-V2-Lite-Base | 16B | 2.4B | 38.9 | 43.3 | 86.4 |
3.3 代码修复
| | 总参数量 | 激活参数量 | Defects4J | SWE-Bench | Aider | | 闭源模型 | | | | | | | Gemini-1.5-Pro | - | - | 18.6 | 19.3 | 57.1 | | Claude-3-Opus | - | - | 25.5 | 11.7 | 68.4 | | GPT-4-Turbo-1106 | - | - | 22.8 | 22.7 | 65.4 | | GPT-4-Turbo-0409 | - | - | 24.3 | 18.3 | 63.9 | | GPT-4o-0513 | - | - | 26.1 | 26.7 | 72.9 | | 开源模型 | | | | | | | CodeStral | 22B | 22B | 17.8 | 2.7 | 51.1 | | DeepSeek-Coder-Instruct | 33B | 33B | 11.3 | 0.0 | 54.5 | | Llama3-Instruct | 70B | 70B | 16.2 | - | 49.2 | | DeepSeek-Coder-V2-Lite-Instruct | 16B | 2.4B | 9.2 | 0.0 | 44.4 | | DeepSeek-Coder-V2-Instruct | 236B | 21B | 21.0 | 12.7 | 73.7 |
3.4 数学推理
| | #TP | #AP | GSM8K | MATH | AIME 2024 | Math Odyssey | | 闭源模型 | | | | | | | | Gemini-1.5-Pro | - | - | 90.8 | 67.7 | 2/30 | 45.0 | | Claude-3-Opus | - | - | 95.0 | 60.1 | 2/30 | 40.6 | | GPT-4-Turbo-1106 | - | - | 91.4 | 64.3 | 1/30 | 49.1 | | GPT-4-Turbo-0409 | - | - | 93.7 | 73.4 | 3/30 | 46.8 | | GPT-4o-0513 | - | - | 95.8 | 76.6 | 2/30 | 53.2 | | 开源模型 | | | | | | | | Llama3-Instruct | 70B | 70B | 93.0 | 50.4 | 1/30 | 27.9 | | DeepSeek-Coder-V2-Lite-Instruct | 16B | 2.4B | 86.4 | 61.8 | 0/30 | 44.4 | | DeepSeek-Coder-V2-Instruct | 236B | 21B | 94.9 | 75.7 | 4/30 | 53.7 |
3.5 通用自然语言
| 基准测试 | 领域 | DeepSeek-V2-Lite Chat | DeepSeek-Coder-V2-Lite Instruct | DeepSeek-V2 Chat | DeepSeek-Coder-V2 Instruct | | BBH | 英文 | 48.1 | 61.2 | 79.7 | 83.9 | | MMLU | 英文 | 55.7 | 60.1 | 78.1 | 79.2 | | ARC-Easy | 英文 | 86.1 | 88.9 | 98.1 | 97.4 | | ARC-Challenge | 英文 | 73.4 | 77.4 | 92.3 | 92.8 | | TriviaQA | 英文 | 65.2 | 59.5 | 86.7 | 82.3 | | NaturalQuestions | 英文 | 35.5 | 30.8 | 53.4 | 47.5 | | AGIEval | 英文 | 42.8 | 28.7 | 61.4 | 60 | | CLUEWSC | 中文 | 80.0 | 76.5 | 89.9 | 85.9 | | C-Eval | 中文 | 60.1 | 61.6 | 78.0 | 79.4 | | CMMLU | 中文 | 62.5 | 62.7 | 81.6 | 80.9 | | Arena-Hard | - | 11.4 | 38.1 | 41.6 | 65.0 | | AlpaceEval 2.0 | - | 16.9 | 17.7 | 38.9 | 36.9 | | MT-Bench | - | 7.37 | 7.81 | 8.97 | 8.77 | | Alignbench | - | 6.02 | 6.83 | 7.91 | 7.84 |
- 模型训练
4.1 数据
DeepSeek-Coder-V2的初始权重来自于DeepSeek-V2,其中包含了大量从网络上收集的公共和许可证兼容的数据。此外,我们还通过包含许多语言的开源GitHub代码库来增强训练数据。特别是为了增强代码任务能力,我们从以下领域添加了高质量的开源数据:
-
- 常规代码数据: 包括GitHub代码、StackOverflow答案等。
-
- 数学数据: 包括用于增强数学推理能力的数学题库。
4.2 微调
DeepSeek-Coder-V2的训练分为两个阶段:
-
- 基础训练: 在DeepSeek-V2的一个中间检查点基础上进行额外的6万亿个标记的预训练。
-
- 微调: 为了提升指令跟随能力,我们在指令数据集上进行微调。
-
使用DeepSeek-Coder-V2
5.1 环境设置
首先,安装所需的库:
pip install torch transformers
5.2 加载模型
以下是一个简单的示例代码,演示如何加载和使用DeepSeek-Coder-V2进行推理:
import
torch
from
transformers
import
AutoTokenizer
,
AutoModelForCausalLM
# 加载tokenizer
tokenizer
=
AutoTokenizer
.
from\_pretrained
(
"deepseek-ai/DeepSeek-Coder-V2-Instruct"
)
# 加载模型
model
=
AutoModelForCausalLM
.
from\_pretrained
(
"deepseek-ai/DeepSeek-Coder-V2-Instruct"
)
# 输入文本
input\_text
=
"def add(a, b):"
inputs
=
tokenizer
(
input\_text
,
return\_tensors
=
"pt"
)
# 生成代码
output
=
model
.
generate
(**
inputs
)
print
(
tokenizer
.
decode
(
output
[
0
],
skip\_special\_tokens
=
True
))
5.3 示例
以下是使用DeepSeek-Coder-V2生成Python代码的示例:
from
transformers
import
AutoModelForCausalLM
,
AutoTokenizer
model\_name
=
"deepseek-ai/DeepSeek-Coder-V2-Instruct"
tokenizer
=
AutoTokenizer
.
from\_pretrained
(
model\_name
)
model
=
AutoModelForCausalLM
.
from\_pretrained
(
model\_name
)
inputs
=
tokenizer
(
"def add(a, b):"
,
return\_tensors
=
"pt"
)
outputs
=
model
.
generate
(**
inputs
,
max\_new\_tokens
=
50
)
print
(
tokenizer
.
decode
(
outputs
[
0
],
skip\_special\_tokens
=
True
))
参考链接:
[1]https://github.com/deepseek-ai/DeepSeek-Coder-V2
[2]https://chat.deepseek.com/coder
[3]https://www.youtube.com/watch?v=yY0RSqRs0xQ&t=92s
知音难求,自我修炼亦艰
抓住前沿技术的机遇,与我们一起成为创新的超级个体
(把握AIGC时代的个人力量)
点这里👇关注我,记得标星哦~
一键三连「分享」、「点赞」和「在看」
科技前沿进展日日相见 ~