英伟达含量为零:华为密集模型盘古 Ultra 性能比肩 DeepSeek-R1,纯昇腾集群训练
密集模型的推理能力已经可以与 DeepSeek-R1 相媲美了吗?
华为通过纯昇腾集群训练出的盘古 Ultra,在数学竞赛和编程等推理任务中表现出色,与 R1 交锋频繁。
值得注意的是,模型的参数量仅为 135B,整个训练过程中完全没有使用英伟达的硬件,并且没有出现损失尖峰现象。
通过改进模型架构和系统优化,盘古 Ultra 实现了卓越的性能表现,算力利用率超过 52%。
还有网友提到,训练过程中没有损失尖峰的特点,似乎以前从未实现过。
135B 密集模型可与 DeepSeek-R1 对抗
作为一个参数量为 135B 的密集模型,盘古 Ultra 提供了同类模型的最佳性能,甚至能够与 DeepSeek-R1 等更大参数量的 MoE 模型竞争。
在预训练阶段的评测中,盘古 Ultra 在绝大多数英文基准任务和所有中文任务上表现最佳,超越了 Llama 405B、DeepSeek-V3 等基线模型。
尤其是在 MMLU、TriviaQA、GSM8K 等高挑战性数据集上,盘古 Ultra 展示了出色的语言理解和推理能力。
经过指令调优,盘古 Ultra 的性能进一步改进,尤其在 AIME 2024、MATH-500 等数学推理任务,以及 LiveCodeBench 编程竞赛中达到 SOTA 水平。
总而言之,盘古 Ultra 超越了 GPT-4o、Mistral-Large 2 等强大模型,与 DeepSeek-R1 等 MoE 模型之间的竞争也十分激烈。
此外,盘古 Ultra 在 Arena Hard、MMLU-pro 等涵盖通用语言理解和推理的评测中也表现出众。
那么,盘古 Ultra 是如何实现这一效果的呢?
“三明治”层归一化架构
正如前文所述,盘古 Ultra 是一款 135B 参数量的密集模型,采用 94 层的网络结构。
它运用了分组查询注意力(GQA)机制,包含 96 个查询头和 8 个键值头。
为了应对训练超深网络的不稳定性和收敛难题,盘古 Ultra 在模型架构上做出了两个关键改进:深度缩放的 Sandwich-Norm 层归一化和 TinyInit 参数初始化策略。
传统 Transformer 通常使用 Pre-LN 层归一化,但在深度模型中,这种方法容易引发每个子层输出尺度的波动,从而导致训练不稳定。
而盘古 Ultra 采用的 Sandwich-Norm 层归一化是在残差连接前对每个子层的输出进行归一化,并根据网络深度调整初始化值,有效消除了训练过程中的损失尖峰,使得训练过程更加平稳。
简单来说,传统方法仅在每个子层的输入上进行归一化,而盘古 Ultra 针对输出也进行了归一化,构建了一个 Pre-Norm + 子层 + Post-Norm 的“三明治”结构。
不过,仅使用 Sandwich-Norm 并不足以完全消除深度模型训练中的不稳定性——随着网络深度的增加,每层的输出尺度仍可能出现累积性漂移。
为此,盘古 Ultra 在 Sandwich-Norm 基础上引入了深度缩放机制,对 Post-Norm 中的放缩参数 γ 进行了与深度相关的初始化。
至于整个模型的初始化,传统的 Xavier 初始化方法通常仅考虑模型宽度,而盘古 Ultra 使用的 TinyInit 是同时依据模型深度和宽度来调整初始化权重的标准差。
这样的初始化方式有助于在前向和反向传播过程中,保持各层梯度的方差在合理范围内,防止梯度消失或爆炸,从而确保训练过程的稳定性,加速收敛。
实验证明,TinyInit 在深度模型训练中实现了更快的收敛速度和出色的下游任务性能;并且针对 embedding 层,保持权重的标准差接近 1 也提高了训练稳定性。
此外,盘古团队还优化了 Tokenizer,通过在普遍的中英文、代码和数学等不同领域进行词频统计,然后进行合并去重,最终获得了一个涵盖广泛且编码效率高的 153376 个 token 的平衡词表。
8192 张昇腾 NPU 训练集群
盘古 Ultra 的训练流程主要分为三个阶段——预训练、长上下文扩展和指令调优。
其中,预训练又分为三个子阶段:
-
通用阶段:着重于建立语言理解和知识储备,使用了大量中英文通用语料,涵盖网页、书籍、百科等多种来源;
-
推理阶段:引入更多高质量的数学和代码数据,增强模型的推理能力。同时使用 instruction 数据帮助模型学习任务的执行;
-
退火阶段:巩固模型的知识和推理能力,并强化其指令遵循能力。大量采用问答对和人类反馈数据。
研究人员采用了基于规则和模型的数据清洗方法,并设计了课程学习(curriculum learning)策略,使模型在不同难度的样本中逐步学习。
预训练中使用了 AdamW 优化器,并动态调整超参数。
预训练完成后,模型在最长为 128K 的长上下文数据上进行进一步训练,通过扩展 RoPE 的基频来实现长序列建模,从而增强处理长文档的能力。
最后的指令调优阶段使用监督微调(SFT)和强化学习(RL)来帮助模型更好地适应下游任务,学会执行指令并与人类偏好保持一致。
在设施方面,盘古 Ultra 采用由 8192 个昇腾 AI 处理器组成的大规模计算集群。
该集群的每个节点包含 8 个 NPU,通过华为的高速缓存一致性互联 HCCS 以全互联的拓扑结构连接,每个 NPU 配备 64GB 内存,节点间则以 200Gbps 的 RoCE(RDMA over Converged Ethernet)网络相连。
为了实现高效的盘古 Ultra 训练,研究团队还制定了一整套系统的并行策略和优化技术。
在并行策略的选取上,盘古 Ultra 综合考虑了模型规模、数据特性和硬件拓扑,最终采用了数据并行、张量并行、序列并行和流水线并行等多种并行方式的组合:
-
128 路数据并行,将训练数据分片到不同设备,以保证数据吞吐量;
-
8 路张量并行,利用设备内部高带宽切分层内张量,实现高效通信;
-
序列并行用于处理超长序列,以降低显存压力;
-
8 段流水线并行,将不同层分配到不同设备,形成高效的计算流水线。
在并行策略的基础上,盘古 Ultra 还从多个角度对训练系统进行了深入优化。
一方面,通过使用 ZeRO(Zero Redundancy Optimizer)分布式优化器,将模型状态分片到不同设备,极大地降低了单个设备的内存使用,同时提高数据并行度,确保每个设备的内存负担在合理范围内。
另一方面,研究者们通过多种通信和计算优化技术,最小化通信开销,提升计算效率:
-
通过算子融合(Kernel Fusion)将多个小算子合并,减少内存访问和内核启动时间;
-
通过通信计算重叠(Communication-Computation Overlapping)实现通信与计算的深度交织,隐藏通信延迟;
-
MC^2(Merged Computation & Communication)和 BOA(Batch Optimization Accelerator)分别对张量并行和归一化层的通信进行专门优化……
经过在算法、工程和数据等各个层面的精细优化,盘古 Ultra 实现了超过 52% 的算力利用率。
技术报告:
https://github.com/pangu-tech/pangu-ultra/blob/main/pangu-ultra-report.pdf
本文摘自微信公众号:量子位(ID:QbitAI),作者:克雷西,原标题《英伟达含量为零!华为密集模型性能比肩 DeepSeek-R1,纯昇腾集群训练》