摘要:感受深度思考的震撼,通俗易懂地带你了解为什么DeepSeek会如此之火?
本文分享自华为云社区《DeepSeek带来的Deepshock,一次看懂DeepSeek》,作者:王同学
2025年初,为什么DeepSeek会一夜火出圈?为什么会让行业兴奋?它的出现,是否让大模型对GPU/NPU的算力需求还要那么大?本文从几个维度尝试分析一下。
DeepSeek V3模型的创新最多,R1模型的影响最大
DeepSeek总共有2个主流版本,在2024年12月发布了V3版本,在2025年1月发布了R1的版本,这两个模型定位并不相同。先回顾一下历史,2024年7月份OpenAI用5级能力体系定义AGI,L1是聊天机器人,例如ChatGPT,GPT4o等L2是推理者,例如o1、o3,L3是代理型智能体,例如Operator(1月24日发布),L4是创新者,能给出人类没想到的科研与产业创新方案,L5是组织者,一组AI形成有效协同的生产力组织。
V3模型对标GPT4o,属于L1的聊天机器人,工程创新最多,优势是性价比。R1模型对标的是OpenAI-o1, 属于推理模型,产业影响大,我们看一下这两个模型是怎么做到的。
DeepSeekV3,一个低成本的基础模型
对应的论文为:[2412.19437] DeepSeek-V3 Technical Report [1]
DeepSeek-V3 是一个 MoE(Mixture-of-Experts)语言模型,总参数量 671B,每个 Token 激活的参数量为 37B。为实现高效训练与推理,DeepSeek-V3 延续了 DeepSeek-V2 的 MLA(Multi-head Latent Attention)及 DeepSeekMoE 架构。此外,DeepSeek-V3 首创了无需辅助损失的负载均衡策略,还使用了多Token 预测训练目标以节省计算量。
低成本是DeepSeek-v3的最大亮点,训练成本的计算过程如下:
DeepSeek V3其训练数据量达到了14.8万亿个token,而训练成本仅为557.6万美元。这一成本远低于行业平均水平(Gemini为198M USD)。如下图所示,总共训练 2788K H800 小时,按照每个 H800 每小时 2 美元的成本,总成本大约为 560 万美元。
为了追求低成本,V3创造了两个核心的技术优化点:
不变的:仍然是基于transformer的架构,在有限的GPU集群下协同工作,训练海量的语料的架构。
变化的:改造了FFN:DeepSeekMoE+动态路由(减少激活参数)。
1、改造了FFN:DeepSeekMoE+动态路由(减少激活参数)。
MoE通俗一点讲是一个大模型在参数量非常大的情况下,在处理每个token的过程中不需要将全部参数量同时激活,而是将参数部分激活,将一个大的模型分拆成多个小的专家模型。MoE 架构通过将模型分解为多个专家,每个专家专注于特定任务,从而保持参数规模的同时降低计算成本。
挑战:
现有的 MoE 架构在确保专家专业化方面面临挑战,即每个专家获取的知识应该是不重叠且专注的。
解决方法:
DeepSeekMoE 通过以下两个主要策略来解决这一问题:
• 将专家细分为更细的粒度以实现更高的专家专业化的知识获取。
• 隔离一些共享专家以减轻路由专家之间的知识冗余, DeepSeek V3MoE的模型参数是671B(GPT-3的参数是175B,GPT的参数规模是1.8T),每个token会激活37B参数,激活参数大约占比是5.5%。总共包括61层Transformer。然后在FFN网络,除了前三层以外,全部替换成MoE。采用的细粒度专家,包括1个共享专家和256个路由专家。每个token会激活8个路由专家。路由部分加入了智能化,让激活路由到小参数量的专家模型,降低路由损失。
通俗易懂版:
通过把大模型切分成小的专家模型,一次token不需要所有的参数被激活,来寻求性能和计算量的一个平衡,测试表明,DeepSeekMoE 扩展到 16B 参数,结果表明其性能与 LLaMA2 7B 相当,计算量仅为 LLaMA2 7B 的 40%。
(DeepSeekMoE技术报告链接:https://github.com/DeepSeek-ai/DeepSeek-MoE/blob/main/DeepSeekMoE.pdf)
2、改造注意力模块:多头潜在注意力MLA(降低KV Cache)
背景信息:
在大模型的推理过程中有很多的KV重复计算,如果序列长度越长重复计算越多, KV Cache是显存资源巨大开销的元凶之一,如下图所示,在模型推理时,KV Cache在显存占用量可达30%以上。
当Context长度足够长时,占用的显存可能超出一张卡甚至一台机(8张卡)的总显存量,而部署模型的原则是:能一张卡部署的,就不要跨多张卡;能一台机部署的,就不要跨多台机。这是因为“卡内通信带宽 > 卡间通信带宽 > 机间通信带宽”,由于“木桶效应”,模型部署时跨的设备越多,受设备间通信带宽的的“拖累”就越大,所以才说需要降低这种KV重复计算,减少缓存占用成本;传统的方法有MHA,MQA等。
挑战
MHA:没有从根本上改变KV Cache占用空间巨大的问题,GQA/MQA: 虽然较大降低了KV cache计算量,但性能相比MHA下降太多了。
解决方法
DeepSeek-DeepSeekV3 使用 Multi-Head Latent Attention (MLA) 对键和值矩阵进行低秩压缩,来降低KV Cache开销,在训练过程中,模型需要存储大量的中间激活值(如 Q、K、V 矩阵),这些激活值占用了大量的显存,尤其是在处理长序列时MLA 通过低秩压缩技术,将 Q、K、V 矩阵压缩到低维空间,从而显著减少了激活值的显存占用。在反向传播过程中,模型需要存储梯度信息,这些梯度信息也占用了大量的显存。MLA 减少了激活值的显存占用进一步降低了训练时的显存需求。
另外,在分布式训练中,模型需要在不同的设备之间传输大量的数据(如 Q、K、V 矩阵),这些数据传输占用了大量的通信带宽。MLA 通过压缩 Q、K、V 矩阵,减少了数据传输量,从而降低了通信开销。示意图如下:
通俗易懂版:
MHA简单理解为两个超级大的矩阵做矩阵乘,这个计算量非常大,尤其是上下文非常长的时候,计算量是指数级的增长,MLA将两个大矩阵改为了线性代数当中的低秩矩阵的近似,一个巨大矩阵可以分拆成两个矩阵的乘积,其中一个矩阵在训练完成后冻住,用小的矩阵做推理,对整个计算量的要求是指数级的降低,同时保障性能的损耗小。
3、分布式训练集群的深度优化
DeepSeek V3 在包含 2048 H800 GPU 的集群上训练,每个节点包含 8 个 H800 GPU,并使用 NVLink + NVSwitch 实现全互联(需要说明的是,H800 的 NVLink 带宽为 400 GB/s,而 H100 的 NVLink 带宽为 900 GB/s,这也是 H800 与 H100 的主要区别)。此外,节点间通过 IB 网络实现互联。DeepSeek-V3 预训练 14.8T Token,在 2048 H800 GPU 训练了不到 2 个月(2664K GPU 小时, 3.7*24*2048*14.8=2692K),如果上述训练时长是纯粹的有效训练时长,则可以估算其 MFU 为(按 BF16 计算):(14.8T*37B*6) / (2664K*989T*3600) = 34.7%。
LLaMA 3.1 70B 总共训练了 15T Token,训练了 7.0M H100 小时,如果按照上述方式推导出的 MFU 为:(15T*70B*6) / (7000K*989T*3600)= 25.2%。
通俗易懂版:
集群的利用率超出LlaMa 10个百分点。
其他:
多token的预测,大模型对下一个token的预测都需要基于上下文所有的token进行卷积,比如一句话有16个字,在进行第17个字的预测的时候,要根据前16个字来计算第17个字出现的概率,如此反复循环;DeepSeek V3中采用了同时预测下一个字,再下一个字,来减少下一侧预测的计算量。
(讲人话)一次性预测多个token,减少计算量。
FP8混合精度,从FP32到F16 精度逐渐下降,随之也会对准确度造成影响,DeepSeek支持了FP8更低的精度来降低计算量,FP8 混合精度训练框架中,大多数计算密集型操作以 FP8 执行,而少数关键操作则保留其原始数据格式,以平衡训练效率与数值稳定性。
通俗易懂版:
降低精度换区更少的计算量。
DualPipe算法以实现高效的流水线并行。与现有 PP 方法相比,DualPipe 具有更少的 PP Bubble。更重要的是,它在 Forward 和 Backward 过程中 Overlap 了计算与通信,从而解决了跨节点的高通信开销问题。
通俗易懂版:
Bubble的意思是“气泡”,形象的表示了GPU的空闲时间窗口,在网络通信的过程中,不能让GPU闲着,挤破“气泡”。
总之,以上所有的架构调整和技术微创新造就的DeepSeekV3意义是在于给了业内一种在资源有限情况下,如何通过机制的工程优化实现最佳性价比来获取满意的模型性能的工程实践方案。
DeepSeek-R1,对标OpenAI o1是一个迈向更强推理能力的模型
去年Ilya(前OpenAI首席科学家)曾经说过,我们的预训练可能时代可能即将结束了。其中一个非常重要的原因就是数据没有在增长。因为没有数据,所以AI产业的发展目标可能就转向到比如强化学习、推理时计算这种Scaling。推理时间长度越长,它的性能可以继续得以改进,以o1为代表的新一代推理模型的出现,这使得大家对下一代大模型的发展抱以新期望。
OpenAI o1本身并没有提供任何关于它是如何实现的细节,相当于o1给你做出了一道菜“鱼香肉丝”,但没有告诉大家秘方。需要能够从头自己去寻找到底如何能够复现出这个能力,DeepSeek-R1对标 OpenAI o1的价值主要体现在能够复现OpenAI o1的深度推理能力,R1的出现让整个产业“兴奋”,在R1的训练过程中,逐渐涌现出这种长CoT(思维链)能力,另外它也发现了一些“aha moment”(顿悟时刻),模型训练过程中能够自我发现并尝试修复一些以前的推理错误(Reflection)。
该模型通过结合强化学习(RL)和监督微调(SFT),实现了在多个推理基准测试中领先的性能表现与o1持平。
R1的几个关键技术:
• “长”思维链(Chain-of-Thought, CoT),鼓励模型将复杂的推理问题分解成多个中间步骤,并逐步进行推导。传统的 LLM 通常倾向于直接输出最终答案,这种“一步到位”的推理方式在处理简单问题时或许有效,但面对复杂问题时则容易出错,且其推理过程缺乏透明度和可解释性。而 DeepSeek-R1 倡导的 CoT 机制,则使得模型的推理过程更加清晰可见,每一步的推导都有迹可循,这不仅提高了推理的准确性,也便于人们理解模型的推理逻辑,从而进行针对性的改进。(说人话)模型先想清楚并告诉你解决问题的步骤,再去stepbystep的来解决。
• 纯强化学习的“零样本”训练方式,验证通过纯强化学习训练,模型可自行涌现出长思维链能力。传统训练AI推理能力时,通常会以大量具有人类思维过程的数据,让模型学会思考。而DeepSeek R1-Zero(用来训练R1的中间模型),通过纯强化学习仅依靠奖惩训练让模型自行涌现出推理能力,探索出了可行的推理能力训练路径,并消除人工瓶颈。(说人话)就是用RL为中心来驱动模型的能力提升。
• 模型蒸馏:蒸馏的含义是以一个AI模型的数据输出来训练另一个大模型,DeepSeek-R1 模型的知识迁移到更小型的模型中,以降低计算成本和部署难度(说人话,用模型来训练模型)。DeepSeek R1蒸馏小模型可以使其性能大幅提升,例如,DeepSeek-R1-Distill-Qwen-7B 在 AIME 2024 考试中的 Pass@1 准确率达到了 55.5%,超过了 QwQ-32B-Preview 模型(说人话,就是让基础模型吐出的数据来训练小参数量的推理模型,将大型模型的知识迁移到小型模型)。
• 冷启动数据(主要是长CoT一些示例、可读性更高的回答格式等)对基础模型进行一次 SFT。然后再进行大规模 RL 训练,后续还会结合 SFT 数据以及进一步的 RL 训练完成全流程。(说人话,就是给模型一些题目+正确答案,让模型根据这些例题来自己学习规律)。
此外,研究团队还观察到模型出现了 “顿悟时刻”,即模型在训练过程中突然 “开窍”,展现出新的推理能力。
DeepSeek的出现,模型对GPU/NPU的算力需求是否还需要那么大了?
训练:随着自然数据的耗尽,基础大模型的训练算力将呈现对数发展,但是随着行业智能化的加速,使用行业数据对模型进行微调将进一步推动POST-training的算力增加。
推理:随着大模型走向端侧(PC,Phone,眼镜,车…),部署门槛的降低,推理算力将呈现指数发展。
另一方面,DeepSeek的开源,让更多企业和个人使用模型的成本降低,就好比更省油的车出现,并不是抑制了汽油的消费,而是更多的人开始买车了,反而汽油的消耗随之增加,符合Jevons矛盾(即:技术进步使某种资源的使用效率提高后,反而会导致资源的总消耗量增加,而不是减少)所以,笔者判断对于算力总需求是指数级的增长。
DeepSeek为什么让行业兴奋?三个“因为”
因为免费+开源,因为与o1相差不大,因为展示了深度思考过程。
DeepSeek 完全开源了模型权重,所遵循的 MIT License 开源协议极为宽松,允许其他开发者将模型用于商业用途并进行模型蒸馏,被Facebook首席人工智能科学家杨立昆誉为“开源模型对闭源模型的胜利”。DeepSeek-R1的出现在历史上应该是更像是2023年的Meta Llama。它通过开源复现,并且把这些事情公开给全球,让大家能够快速建立起相关能力。DeepSeek-R1能够取得如此全球性的成功也跟OpenAI采用的“错误”决策有非常大的关系。Sam Altman承认在开源策略上“站在了历史错误的一边”,并表示正在讨论开源部分模型。
我们会看到OpenAI在发布了o1之后的三个“错误”,第一,不开源;第二,把o1深度思考过程隐藏起来;第三,o1收费非常高(200USD/月),不能在全球让尽可能多的人去普惠、去感受深度思考所带来的震撼。而DeepSeek R1的深度思考让所有人真正地感受到了震撼。这是DeepSeek R1出圈的非常重要的原因。
另外,近日在Github上出现了一个Open-R1的项目来复现R1,已经开源了为何还要复现?因为大模型的开源和传统软件开源不一样,大模型开源只是公布了模型的参数和架构,能够被下载部署和二次训练,但是训练数据集,调测方式和训练过程等工程细节尚未公布(说人话,大模型的开源只告诉你了模型长啥样,你拿去用,并没有告诉你模型是怎么造出来的),所以Open-R1的目的是复现从数据准备到最终训练出R1模型效果的模型全过程。
未来,数据是根本,谁有“实时数据”,谁将会有更好效果的大模型,成为价值分配者。
参考链接
1. https://arxiv.org/abs/2412.19437
2. https://github.com/DeepSeek-ai/DeepSeek-V3
3. https://arxiv.org/abs/2408.15664
4. https://arxiv.org/abs/2404.19737
5. https://www.high-flyer.cn/blog/hai-llm/
6. https://arxiv.org/abs/2401.10241
7. https://arxiv.org/abs/2310.10537
8. https://github.com/NVIDIA/cutlass
9. https://huggingface.co/meta-llama/Llama-3.1-8B
10. https://www.lepton.ai/pricing
11. https://ai.meta.com/research/publications/the-llama-3-herd-of-models/