欢迎关注我的公众号“ NLP前沿 ”,日更最新论文/博客速读,周更AI领域近一周发生的那些事儿 。欢迎投稿! 行文仓促,有理解错误,欢迎指正 !
https://github.com/deepseek-ai/DeepSeek-V2/tree/main
https://github.com/deepseek-ai/DeepSeek-V2/tree/main#2-model-downloads
https://github.com/deepseek-ai/DeepSeek-V2/blob/main/deepseek-v2-tech-report.pdf
- 128k上下文
- 总参数量236B,21B活跃参数
- code能力开源模型最强,数学 推理能力开源模型最强
- mmlu、ceval等基准不逊色于qwen1.5 72b , mixtral 8*22B, llama3 70b等
- 几乎全绿的大海捞针结果
- 使用multi-head latent attention (MLA) & deepseek moe, 技术细节后文细说
- 对比deepseek 67b降低了42.5%的训练成本,降低了93.3的kv-cache推理成本
- 预训练了8.1T token的多语言
- 强化学习使用的GRPO
Standard Benchmark
Benchmark | Domain | QWen1.5 72B Chat | Mixtral 8x22B | LLaMA3 70B Instruct | DeepSeek V1 Chat (SFT) | DeepSeek V2 Chat(SFT) | DeepSeek V2 Chat(RL) |
---|---|---|---|---|---|---|---|
MMLU | English | 76.2 | 77.8 | 80.3 | 71.1 | 78.4 | 77.8 |
BBH | English | 65.9 | 78.4 | 80.1 | 71.7 | 81.3 | 79.7 |
C-Eval | Chinese | 82.2 | 60.0 | 67.9 | 65.2 | 80.9 | 78.0 |
CMMLU | Chinese | 82.9 | 61.0 | 70.7 | 67.8 | 82.4 | 81.6 |
HumanEval | Code | 68.9 | 75.0 | 76.2 | 73.8 | 76.8 | 81.1 |
MBPP | Code | 52.2 | 64.4 | 69.8 | 61.4 | 70.4 | 72.0 |
LiveCodeBench (0901-0401) | Code | 18.8 | 25.0 | 30.5 | 18.3 | 28.7 | 32.5 |
GSM8K | Math | 81.9 | 87.9 | 93.2 | 84.1 | 90.8 | 92.2 |
Math | Math | 40.6 | 49.8 | 48.5 | 32.6 | 52.7 | 53.9 |
Chinese Open Ended Generation Evaluation
Alignbench
模型 | 开源/闭源 | 总分 | 中文推理 | 中文语言 |
---|---|---|---|---|
gpt-4-1106-preview | 闭源 | 8.01 | 7.73 | 8.29 |
DeepSeek-V2 Chat(RL) | 开源 | 7.91 | 7.45 | 8.36 |
erniebot-4.0-202404(文心一言) | 闭源 | 7.89 | 7.61 | 8.17 |
DeepSeek-V2 Chat(SFT) | 开源 | 7.74 | 7.30 | 8.17 |
gpt-4-0613 | 闭源 | 7.53 | 7.47 | 7.59 |
erniebot-4.0-202312(文心一言) | 闭源 | 7.36 | 6.84 | 7.88 |
moonshot-v1-32k-202404(月之暗面) | 闭源 | 7.22 | 6.42 | 8.02 |
Qwen1.5-72B-Chat(通义千问) | 开源 | 7.19 | 6.45 | 7.93 |
DeepSeek-67B-Chat | 开源 | 6.43 | 5.75 | 7.11 |
Yi-34B-Chat(零一万物) | 开源 | 6.12 | 4.86 | 7.38 |
gpt-3.5-turbo-0613 | 闭源 | 6.08 | 5.35 | 6.71 |
deepseek moe 之前写过了,与常规的相比就是多了共享专家的概念。这里主要介绍 Multi-head Latent Attention以及路由的负载均衡策略
传统的 Transformer 模型通常采用多头注意力 (multi-head attention),在推理过程中,KV缓存将成为限制推理效率的瓶颈。然后就有很多研究,比如multi-query attention ,group query attention,通过在头上共享kv,降低了kv-cache的大小。他们的具体形式如下图
mla的核心是对kv进行低秩联合压缩,以降低kv cache的大小
这里的维度,h_t (batch_size, sentence_length, hidden_size) 省略为 (hidden size) W_Q、W_K、W_V 省略为 (head_size * num_head, hidden_size) q_t、k_t、v_t 省略为 (head_size * num_head)
W_dkv的第一个维度 (d_c 远小于上面的head_size * num_head),通过先将h_t下投影到c_t,然后再上投影得到kv,实际的时候只需要缓存
为了降低训练过程中的消耗,对q也同样进行低秩压缩
为了计算方便,q,k分一部分出来计算rope,最后拼接起来,做矩阵相乘算attention weights,完整的计算如下图
moe负载均衡的辅助损失,不平衡的负载会增加路由崩溃的风险,使一些专家无法得到充分的培训和利用。另外当采用专家并行时,不平衡负载会降低计算效率。论文中使用了3种策略,分别用于控制专家级负载均衡、设备级负载均衡和通信均衡。
这里基础的策略是使用的swith transformers里边的方法,另外2个是第一个的变体,之前也写过,简单看下,如下图