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 |
总参数量 | 激活参数量 | 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 |
模型 | 总参数量 | 激活参数量 | 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 |
总参数量 | 激活参数量 | 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 |
#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 |
基准测试 | 领域 | 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 |
DeepSeek-Coder-V2的初始权重来自于DeepSeek-V2,其中包含了大量从网络上收集的公共和许可证兼容的数据。此外,我们还通过包含许多语言的开源GitHub代码库来增强训练数据。特别是为了增强代码任务能力,我们从以下领域添加了高质量的开源数据:
DeepSeek-Coder-V2的训练分为两个阶段:
首先,安装所需的库:
pip install torch transformers
以下是一个简单的示例代码,演示如何加载和使用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))
以下是使用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