最近,DeepSeek团队发布了一篇围绕DeepSeek-V3的技术论文,名为《Insights into DeepSeek-V3:Scaling Challenges and Reflections on Hardware for Al Architectures(深入了解DeepSeek-V3:人工智能架构硬件的扩展挑战与思考)》。在论文中,团队把DeepSeek-V3在训练和推理过程中,如何解决“硬件瓶颈”的方法公布了出来。
随着OpenAI GPT-3、DeepSeek-R1、Claude-3.7 Sonnet等前沿模型的出现,对硬件、算力资源的需求快速上升。在内存方面,存在着严重的内存供需失衡的问题,严重制约了大模型的进一步发展;在计算效率方面,传统的计算架构难以满足大规模模型训练和推理的高效需求;在互连带宽方面,现有网络架构在处理大规模数据传输时也面临着带宽不足和延迟过高等难题。好在DeepSeek-V3通过软件、硬件创新解决了这些难题。
DeepSeek-V3是在2048块NVIDIA H800 GPU集群上进行训练,展示了硬件感知模型协同设计如何高效地应对这些限制,并最终实现了经济高效的大规模训练与推理。
这篇V3最新论文并非重复DeepSeek-V3的详细架构和算法细节,而是从硬件架构和模型设计的双重视角,探讨它们之间在实现经济高效的大规模训练和推理过程中复杂的相互作用。通过探究这种协同作用,研究者旨在提供切实可行的见解,以洞悉如何在不牺牲性能或可访问性的情况下高效扩展LLM。
DeepSeek-V3采用了DeepSeekMoE架构和多头潜在注意力(MLA)架构。其中,DeepSeekMoE充分释放了混合专家(MoE)架构的潜力,而MLA则通过压缩键值(KV)缓存显著降低了内存消耗。同时,DeepSeek-V3引入了FP8混合精度训练技术,在保证模型质量的同时大幅降低了计算成本,使大规模训练更加可行。
此外,为了提高推理速度,DeepSeek-V3引入了多标记预测(MTP)框架。该框架允许模型在每个推理步骤中同时生成多个候选标记,而不是仅仅生成一个标记,这些候选标记可以并行计算和验证,从而显著减少了生成整个序列所需的时间。
1、DeepSeek-MoE
DeepSeek-MoE充分挖掘了混合专家(MoE)架构的潜力,其优势主要体现在两方面。在训练过程中,通过选择性地激活专家参数的子集,MoE模型能够在大幅增加总参数数量的同时保持相对适度的计算需求;在个人使用和本地部署场景中,MoE模型同样展现出独特优势。由于每个请求仅激活一小部分参数,内存和计算需求大幅降低。
2、多头潜在注意力(MLA)
多头潜在注意力(MLA)架构则通过压缩键值(KV)缓存显著降低了内存消耗。它利用投影矩阵将所有注意力头的KV表示压缩成一个更小的潜在向量,并与模型联合训练。在推理过程中,只需要缓存该潜在向量,与存储所有注意力头的KV缓存相比,大大减少了内存占用。
通过采用MLA,DeepSeek-V3显著减少了KV缓存大小,每个token仅需70KB,远低于LLaMA-3.1 4050亿参数模型的516KB和Qwen-2.5 720亿参数模型的327KB。为进一步减小KV缓存的大小,DeepSeek还提出了多种方法。例如共享KV,即多个注意力头共享一组KV配对,以显著压缩KV存储,代表性方法包括GQA和MQA;窗口KV,对于长序列,仅在缓存中保留KV配对的滑动窗口;量化压缩,使用low-bit存储KV配对,进一步减少内存使用。
3、FP8混合精度训练方法
在训练技术方面,DeepSeek-V3引入了FP8混合精度训练技术,这在保证模型质量的同时大幅降低了计算成本,使得大规模训练更加经济可行。虽然GPTQ和AWQ等量化技术已将位宽减少到8位、4位甚至更低,但这些技术主要应用于推理阶段以节省内存,在训练阶段的应用相对较少。在DeepSeek-V3之前,几乎没有利用FP8进行训练的开源大型模型。
DeepSeek通过基础设施和算法团队之间的深度合作,为MoE模型开发了与FP8兼容的训练框架,在训练管道中使用FP8精度的前向和后向过程计算组件。然而,要充分发挥FP8在加速训练方面的巨大潜力,还需要解决一些硬件限制。
在对原生细粒度量化的支持方面,硬件应支持原生细粒度量化,使Tensor Core能够接收缩放因子并通过组缩放实现矩阵乘法,避免频繁的数据移动以减少去量化开销。
在网络通信环节,DeepSeek-V3架构采用低精度压缩进行网络通信。在EP并行期间,使用细粒度的FP8量化来调度令牌,与BF16相比,通信量减少了50%,显著缩短了通信时间。DeepSeek建议,为FP8或自定义精度格式定制的压缩和解压缩单元提供本机支持,是未来硬件的可行发展方向,这有助于最大限度地减少带宽需求并简化通信管道,大幅提升MoE训练等带宽密集型任务的效率。
4、多标记预测(MTP)
多标记预测(MTP)框架通过引入多个轻量级的预测模块来实现这一目标,每个预测模块负责生成一个特定位置的标记。例如,在生成当前标记的同时,MTP模块可以预测下一个标记、下下个标记等,这些预测模块共享模型的上下文信息,但各自独立生成标记。通过这种方式,模型能够在一次推理步骤中生成多个标记,而不是逐个生成。
生成多个候选标记后,MTP框架会通过并行验证来确定哪些候选标记是合理的。这一过程利用了模型的上下文信息和已生成的标记,通过一系列的验证步骤来评估每个候选标记的合理性,最终模型会选择最合适的标记作为输出。