DeepSeek V2通过多种创新技术和优化措施实现了42.5%的训练成本节省。以下是其主要实现方式:
- 稀疏MoE架构:DeepSeek V2采用了DeepSeekMoE混合专家架构,这种架构通过细粒度的专家分割和共享专家隔离等优化措施,显著降低了计算复杂度和内存需求,从而减少了训练成本。
- 激活参数减少:在生成每个token时,DeepSeek V2仅激活部分参数(约21亿参数),而不是像传统模型那样激活全部参数,这大大降低了计算量和训练成本。
- KV缓存优化:DeepSeek V2通过将KV缓存压缩为潜在向量(MLA),显著减少了所需的显存占用,从而降低了推理和训练成本。
- 高效训练方法:在实际训练中,DeepSeek V2采用了分布式训练技术和优化的通信策略,提高了模型FLOPs利用率,并减少了GPU小时数。例如,每训练一万亿个token,DeepSeek V2仅需172.8K GPU小时,而前代模型DeepSeek 67B则需要300.6K GPU小时。
- 参数精度优化:DeepSeek V2将参数转换为FP8精度,并应用KV缓存量化技术,进一步降低了计算资源的消耗。
- 创新架构设计:DeepSeek V2引入了Multi-head Latent Attention(MLA)和DeepSeekMoE架构,这些创新不仅提升了模型性能,还大幅降低了训练和推理成本。
通过以上技术手段,DeepSeek V2在保持高性能的同时,实现了显著的训练成本节省。
DeepSeekMoE混合专家架构的具体工作原理主要基于两个核心策略:细粒度专家细分和共享专家隔离。
-
细粒度专家细分:
- DeepSeekMoE将传统的MoE架构中的专家进一步细分为更小的单元。例如,如果传统MoE架构中有一个N个专家的集合,DeepSeekMoE会将其细分为mN个专家,并从中激活mK个专家。这种方法允许更灵活地组合激活的专家,从而提高模型的表达能力和知识分解的准确性。
- 这种细粒度的分割不仅增加了激活专家的数量,还通过减少中间隐藏层的维度(如从5120->1536->5120变为5120->1536->5120,其中1536/5120=1/3),使得模型能够更高效地处理复杂任务。
-
共享专家隔离:
- DeepSeekMoE将部分专家作为共享专家,专门用于捕获和整合共同知识。这些共享专家不参与特定任务的处理,而是用于减少路由专家之间的知识冗余,从而提高模型的整体效率。
- 共享专家的存在确保了每个专家在每次前向传播中都被激活,以集中共享知识并释放其他专家的额外参数。这有助于避免某些专家被过度使用,从而减少负载不平衡的问题。
-
设备受限路由机制&#x