DeepSeek-V3 的这次发布,伴随三项创新:Multi-head Latent Attention (MLA)、DeepSeekMoE 架构以及无额外损耗的负载均衡策略。
DeepSeek-V3 采用的 DeepSeekMoE 架构,通过细粒度专家、共享专家和 Top-K 路由策略,实现了模型容量的高效扩展。每个 MoE 层包含 1 个共享专家和 256 个路由专家,每个 Token 选择 8 个路由专家,最多路由至 4 个节点。这种稀疏激活的机制,使得 DeepSeek-V3 能够在不显著增加计算成本的情况下,拥有庞大的模型容量。
DeepSeek-V3 的这次发布,伴随多项工程优化贯穿了流水线并行、通信优化、内存管理和低精度训练等多个方面。
DeepSeek-V3 采用了一种名为 DualPipe 的创新流水线并行策略。与传统的单向流水线 (如 1F1B) 不同,DualPipe 采用双向流水线设计,即同时从流水线的两端馈送 micro-batch。这种设计可以显著减少流水线气泡 (Pipeline Bubble),提高 GPU 利用率。
跨节点 MoE 训练的一大挑战是巨大的通信开销。DeepSeek-V3 通过一系列精细的优化策略,有效地缓解了这一瓶颈。
节点限制路由 (Node-Limited Routing): 将每个 Token 最多路由到 4 个节点,有效限制了跨节点通信的范围和规模。
定制化 All-to-All 通信内核: DeepSeek 团队针对 MoE 架构的特点,定制了高效的跨节点 All-to-All 通信内核。这些内核充分利用了 IB 和 NVlink 的带宽,并最大程度地减少了用于通信的 SM 数量。
Warp 专业化 (Warp Specialization): 将不同的通信任务 (例如 IB 发送、IB-to-NVlink 转发、NVlink 接收等) 分配给不同的 Warp,并根据实际负载情况动态调整每个任务的 Warp 数量,实现了通信任务的精细化管理和优化。
自动调整通信块大小: 通过自动调整通信块的大小,减少了对 L2 缓存的依赖,降低了对其他计算内核的干扰,进一步提升了通信效率。
DeepSeek-V3 在内存管理方面也做到了极致,通过多种策略最大程度地减少了内存占用。
RMSNorm 和 MLA 上投影的重计算 (Recomputation): 在反向传播过程中,DeepSeek-V3 会重新计算 RMSNorm 和 MLA 上投影的输出,而不是将这些中间结果存储在显存中。这种策略虽然会略微增加计算量,但可以显著降低显存占用。
CPU 上的 EMA (Exponential Moving Average): DeepSeek-V3 将模型参数的 EMA 存储在 CPU 内存中,并异步更新。这种策略避免了在 GPU 上存储 EMA 参数带来的额外显存开销。
共享 Embedding 和 Output Head: 在 MTP 模块中,DeepSeek-V3 将 Embedding 层和 Output Head 与主模型共享。这种设计减少了模型的参数量和内存占用。
DeepSeek-V3 的训练策略涵盖了数据构建、分词其、超参数设置、长上下文扩展和多 Token 预测等多个方面。
DeepSeek-V3 的预训练语料库规模达到了 14.8 万亿 Token,这些数据经过了严格的筛选和清洗,以确保其高质量和多样性。相比于前代模型 DeepSeek-V2,新模型的数据构建策略更加精细。首先,大幅提升了数学和编程相关数据在整体数据中的占比,这直接增强了模型在相关领域的推理能力,使其在 MATH 500、AIME 2024 等数学基准测试和 Humaneval、LiveCodeBench 等代码基准测试中表现突出。其次,进一步扩展了多语言数据的覆盖范围,超越了传统的英语和中文,提升了模型的多语言处理能力。
本文地址:http://xiaoguoguo.dbeile.cn/quote/7242.html 多贝乐 http://xiaoguoguo.dbeile.cn/ , 查看更多