1.简介
近日,百度ERNIE团队发布的ERNIE 4.5模型家族。该家族包含10种不同的大规模多模态模型变体,涵盖了47B和3B激活参数的混合专家(MoE)模型,以及拥有424B总参数的模型和一个0.3B的密集模型。这些模型采用了新颖的异构模态结构,支持跨模态的参数共享,同时允许每个模态拥有独立的参数,以增强多模态理解能力,且不会损害文本相关任务的性能。所有模型均使用PaddlePaddle深度学习框架进行高效训练,实现了高性能推理和简化部署。
ERNIE 4.5模型家族具有三大关键创新:
- 多模态异构MoE预训练:为了在训练过程中避免一种模态对另一种模态的学习造成阻碍,作者设计了异构MoE结构,引入了模态隔离路由机制,并采用了路由器正交损失和多模态标记平衡损失。这些架构选择确保了两种模态都能得到有效的表示,从而在训练中实现相互强化。
- 高效可扩展的基础设施:作者提出了一种新颖的异构混合并行策略和分层负载均衡策略,用于高效训练ERNIE 4.5模型。通过采用节点内专家并行、内存高效的流水线调度、FP8混合精度训练以及细粒度重计算方法,作者实现了显著的预训练吞吐量。在推理阶段,作者提出了多专家并行协作方法和卷积编码量化算法,实现了4位/2位无损量化。此外,作者引入了PD解耦和动态角色切换,以有效利用资源,提升ERNIE 4.5 MoE模型的推理性能。基于PaddlePaddle构建的ERNIE 4.5在多种硬件平台上实现了高性能推理。
- 模态特定的后训练:为了满足现实世界应用的多样化需求,作者针对特定模态对预训练模型的不同变体进行了微调。作者的语言模型(LLM)针对通用语言理解和生成进行了优化,而视觉语言模型(VLM)则专注于视觉语言理解,并支持思考模式和非思考模式。每种模型都采用了监督微调(SFT)、直接偏好优化(DPO)或一种名为统一偏好优化(UPO)的改进型强化学习方法进行后训练。
ERNIE 4.5的所有模型及其开发工具包均已开源,包括ERNIEKit和FastDeploy,这些工具包具备工业级能力、资源高效训练和推理工作流以及多硬件兼容性。模型在多个文本和多模态基准测试中表现出色,尤其在指令遵循、世界知识记忆、视觉理解和多模态推理方面取得了最先进的性能。
ERNIE 4.5模型家族的区别如下:

模型体验:文心一言
权重地址(huggingface):https://huggingface.co/baidu
权重地址(飞桨):模型库-飞桨AI Studio星河社区
代码示例:https://github.com/PaddlePaddle/ERNIE/tree/develop/cookbook
ERNIE-4.5-300B-A47B性能

ERNIE-4.5-21B-A3B性能

多模态模型在思考模式的性能
多模态模型在非思考模式的性能
2.论文详解
模型结构
图1展示了ERNIE 4.5采用的Transformer架构。它支持图像、视频和文本模态作为输入,并以文本作为输出。对于视觉模态(图像和视频),采用可变分辨率的ViT编码器,随后通过适配器将表示投影到与文本共享的嵌入空间。ERNIE 4.5随后应用带有多种模态位置嵌入的细粒度混合专家(MoE)架构,以对跨模态的统一隐藏状态进行建模。
该架构的关键组件包括:
- 异构MoE:文本和视觉特征被路由到各自的专家集合,同时它们也都会经过一组共享专家以及所有自注意力参数。视觉专家的参数量是文本专家的三分之一。
- 视觉编码器:作者采用了一个配备自适应分辨率变换和二维旋转位置嵌入(RoPE)的视觉编码器。
- 适配器:适配器对视觉和文本模态的表示进行对齐,并结合了空间和时间压缩。
- 多模态位置嵌入:作者在视觉语言模型中使用三维RoPE,分别对时间、宽度和高度位置进行编码。

异构MoE
ERNIE 4.5基于细粒度的混合专家(MoE)架构构建。
在多模态模型中,MoE路由器容易出现不稳定,尤其是在数据分布突然变化时 。例如,将仅处理文本的MoE模型扩展为处理多模态输入,可能会导致路由器崩溃,进而导致文本能力的退化。图2展示了在保留数据集上不同层的专家激活率热图。它表明,文本专家的激活集中在少数几个专家上,而视觉专家的激活模式则更为分散。

为缓解这一问题,作者提出了模态隔离路由策略: 具体而言,ERNIE 4.5中的前馈神经网络(FFN)专家被分为三种类型:文本专家、视觉专家和共享专家。文本和视觉标记都会以非路由的方式经过共享专家处理,而每种模态的标记则会独立路由到其对应的模态特定专家。具体来说,文本专家仅处理文本标记,视觉专家仅处理视觉标记,而共享专家则同时处理两种模态。MoE层的最终输出是通过将共享专家和模态特定专家的输出相加得到的。 其中视觉专家的参数量仅为文本专家的三分之一,
此外,一些工程决策进一步增强了作者方法的可扩展性和效率。**鉴于视觉标记的冗余性,视觉组的专家使用比文本专家小三分之一的中间维度。**由于FFN层的浮点运算量(FLOPs)与输入维度和中间维度的乘积成正比,这一调整使得视觉标记的每个标记在FFN的计算量大约减少了66%。
作者进一步在最后的Transformer层中移除了视觉专家,因为它们的权重对交叉熵损失没有贡献。
总之,异构MoE设计带来了几个关键优势:
- 统一的多模态建模:它使得构建一个统一的多模态模型成为可能,其中所有参数------文本和视觉的------都能联合优化。与部分微调方法相比,这种设计更加数据高效且更具可扩展性,支持模型增长到数百亿参数。
- 路由稳定性:视觉专家可以在训练的后期阶段引入,避免路由崩溃。这种分阶段训练减少了总体计算量,同时保留了性能,因为视觉理解在很大程度上依赖于先前的文本知识。
- 计算效率:文本和视觉专家可以分别部署。在仅处理文本的推理场景中,可以跳过视觉专家以减少内存开销。对于多模态推理,作者支持模态感知的推理流水线分区。具体来说,为每种模态分配不同的推理预算,独立部署预填充文本、预填充视觉和解码文本模块,可以显著减少跨设备通信。
Vision Encoder
图像编码 :视觉Transformer(ViT)被广泛用于视觉语言模型作为视觉编码器。然而,现有的ViT通常是在固定分辨率输入上进行预训练的,这要求在处理之前将图像调整为正方形。在本工作中,作者使用了一种自适应分辨率的视觉编码器。与强制使用正方形输入不同,独立调整每张输入图像的高度和宽度,使其分别成为ViT块大小的最近倍数。 这种方法大致保留了原始宽高比 ,避免了固定尺寸调整大小带来的失真。自适应调整大小的图像随后被划分为块,形成可变长度的一维标记序列。 为了对每个块的二维空间起源进行编码,作者采用了二维旋转位置嵌入(RoPE),分别对高度和宽度维度的空间信息进行编码。
此外,**作者采用了图像打包技术,该技术可以高效地将多张图像打包到一个批次中,同时保持块之间的位置一致性。**这使得计算资源的利用更加高效,而无需对模型架构进行修改。
通过图像打包,可以将多个图像或视频帧的块合并成一个紧凑的序列,从而减少内存占用。这对于处理大规模数据集和高分辨率输入尤为重要。
视频编码 :长视频处理会很快耗尽模型有限的长度预算。为此,作者提出了一种**自适应视频采样策略,根据每段视频的时长和可用的序列长度动态调整帧的数量及其空间分辨率。**具体而言:
-
固定帧率采样:根据预定义的帧率(例如每秒2帧)从视频中均匀采样帧。如果采样后的帧数超过模型的序列长度限制,则进一步调整帧率或分辨率。
-
动态调整:如果采样后的帧数仍然超过限制,会进一步降低分辨率,直到帧数和分辨率的组合符合模型的输入要求。如果帧数仍然过多,会进一步减少帧数。
-
多视频输入:对于包含多个视频的输入,根据每个视频的长度按比例分配帧数,以确保每个视频的代表性。
为了进一步增强时间建模,**作者引入了一种时间戳渲染技术,将绝对时间戳叠加到每一帧上。**这种方法适用于任何帧率,不消耗额外的标记,并且降低了学习难度,使得时间理解更加准确。
适配器
文心一言的适配器结合了空间和时间标记压缩,用于执行特征融合并减少序列长度。具体而言,空间压缩操作在不重叠的2×2块上进行,沿空间维度的标记数量减少4倍,而时间压缩将序列长度减少2倍。
这两种压缩操作都利用了**像素洗牌(pixel shuffle)技术,它将空间上或时间上相邻的标记特征重新排列成更紧凑的形式。重新排列后的特征随后通过多层感知机(MLP)层进行处理。**为了统一处理图像和视频,每张静态图像通过复制图像特征被当作一个合成的两帧视频来处理,从而在不同模态之间实现一致的时间建模。
以下是像素洗牌的具体实现步骤:
输入特征图:假设输入特征图 F 的大小为 H×W×C。
分块 :将 F 按照 s×s 的块进行划分,每个块包含
个像素。
重排 :将每个 s×s 块中的像素重新排列,形成一个新的特征图 F′,其大小为 H′×W′×C′,其中 H′=H/s,W′=W/s,C′=C×
。
MLP 处理:将重排后的特征图 F′ 输入到 MLP 层中进行进一步处理,以增强特征的表达能力。
总体而言,适配器不仅通过时空融合高效地压缩标记,更重要的是,通过训练将多模态特征空间对齐到文本嵌入空间,从而促进后续Transformer层中更深入的跨模态交互。
多模态位置嵌入
为了有效处理包含文本、图像和视频的多模态序列,作者在视觉语言Transformer的输入层采用了统一的三维旋转位置嵌入(3D RoPE)方案。3D RoPE通过为视觉输入的每个轴分配不同的频率带,分别对时间和空间位置进行编码,而对于文本标记则默认使用标准的一维RoPE。
其中,较低的频率被分配给变化最慢的时间轴,而其余频率则在空间轴(高度和宽度)之间交错分配,从而实现了对称的空间建模和强大的长期时间建模。
实证结果表明,3D RoPE显著提升了多模态理解能力,尤其是在需要序列长度外推的长视频理解任务中表现尤为突出。
预训练
数据
ERNIE 4.5模型的训练数据来源于网页、学术论文、文档、图像、视频以及合成模态转换数据 。鉴于数据来源的多样性和原始数据集中存在的大量噪声,作者分别针对文本、图像、视频和音频实现了全面的数据质量过滤流程,主要包括去重、去除噪声和无关内容等操作 。随后,作者对数据进行标注和聚类,以提取数据集中的模式并发现其中的知识。 最后,作者通过分析模型在数据集上的表现来识别数据的薄弱环节,并指导优化,建立了一种人机协作的迭代数据精炼方法。
以下是这一过程的关键步骤:
- 数据去噪与合成 :作者的数据过滤流程结合了启发式规则和基于模型的方法。启发式过滤用于去重和移除低质量数据,而基于模型的过滤则利用质量评估模型自动筛选低质量样本,确保数据质量。 噪声过滤不可避免地会导致数据规模缩小,从而产生质量和数量之间的矛盾。为此,作者引入了数据合成解决方案来补充高价值数据。例如,作者采用自蒸馏和多模态转换方法来丰富数据源,这在很大程度上缓解了高价值领域数据稀缺的问题。
- 数据分析 :作者从语言、知识、应用和质量等多个方面对数据进行分类。
- 人机协作的数据精炼 :为了持续提升数据质量,作者设计了一种人机协作的数据精炼流程。该流程包括选择核心数据集、挑选用于数据评估的候选模型以及手动分析结果等阶段。通过这一数据迭代循环,作者可以确保每种过滤和数据挖掘策略的有效性,从而提高文本、图像和视频数据的整体质量。
各种数据源的构建过程如下:
- 基于知识的数据 。自然语言语料库中所包含的知识量是不均匀的,并且可以系统地划分为多个层次。因此作者定义了五个不同的知识层级,并开发了一个知识层级分类模型,用于根据这些层级自动标注预训练数据。
基于这一框架,作者的分析发现高价值数据稀缺,仅占可用语料库的一小部分。 为解决这一稀缺问题,作者采用数据合成方法来扩充有限的高价值训练数据。 具体而言,作者提出了一种基于关键点的数据合成方法 ,为确保知识覆盖范围广泛,**作者以教科书和教育网站为种子来源,提取结构化的关键点以指导数据生成过程。**此外,为提升模型在推理任务上的表现,作者对与推理相关的语料库进行了一系列针对性处理步骤。这些步骤包括选择代表性样本、按推理类型进行组织、分级难度水平以及过滤低质量条目以保留有价值实例。实证结果表明,这些处理显著提升了模型的推理能力。 - 交错文本-图像数据 。交错文本-图像数据在推进多模态学习能力方面发挥着至关重要的作用,然而现有的数据集存在规模有限以及视觉和文本组件对齐薄弱的问题 。为解决这些挑战,作者开发了一种全面的数据策划策略。作者首先系统地收集了大量的网络数据,识别出具有良好整合视觉元素的高质量网页和文档。然后,通过从视频源中提取大量的交错内容来扩充这一数据集,具体通过关键帧提取和自动语音识别(ASR)来实现。 最后,作者实施了严格的**质量提升程序,包括页面内图像-文本去重、过滤低分辨率图像和无关内容、移除乱码文本和广告以及检测混乱内容。**通过这一多方面的方法,作者显著丰富了交错数据集,并观察到这种增强的交错数据极大地提升了模型的知识容量和多模态理解能力。
- 图像-文本对 。图像-文本对对于在视觉语言模型中学习可迁移的表示至关重要。尽管互联网上存在大量此类数据,但它们存在大量噪声,例如不相关的描述、琐碎或泛化的标题、冗余的图像以及数据质量参差不齐等问题。为解决这些挑战**,作者采用了过滤技术,包括图像-文本相似性评分(例如,通过CLIP分数阈值过滤)来筛选相关性低的配对,随后对图像和文本进行去重。接着,作者对图像进行分类和标记** ,将图像分为自然场景、表格、屏幕截图、图表、文档等类型。最后,作者对数据的一个子集进行重新描述,以提升图像-文本对齐的质量。 为了**进一步提升模型对网格式图像的理解能力,作者通过将多张图像拼接成网格布局,并将对应的标题拼接成匹配的结构来合成训练样本。**这种策略有助于模型更好地定位和解读复合视觉输入中的信息。
- 特定领域的数据。 为了增强模型在特定领域任务中的能力,作者构建了涵盖工业、金融、医疗保健、消费娱乐等垂直领域的大型数据集。 该方法主要包括以下两个主要数据来源:
- 逐步挖掘与条件训练 :作者采用**逐步挖掘方法系统地提取大量特定领域的数据。**在预训练过程中,作者发现条件预训练方案显著提高了此类领域数据的学习效率,尤其是在创意写作任务中。
- 音频转录与增强:作者利用自动语音识别(ASR)模型从音频源(包括视频音轨和播客)中转录有价值的特定领域内容,并开发了一套全面的重写和过滤流程,以减少转录噪声,同时用口语化和对话式文本数据丰富数据集。
逐步挖掘(Progressive Mining)
逐步挖掘是一种数据挖掘技术,主要用于从大规模数据集中逐步提取有用信息。其核心思想是通过分阶段的方式,先从宏观层面提取数据的基本特征和模式,然后逐步深入到更细粒度的分析,以发现更复杂和具体的规律。
通常结合多种数据挖掘算法,如分类、聚类和关联规则挖掘等,先进行初步的数据分析,再逐步细化挖掘目标。
条件训练(Conditional Training)
条件训练是一种机器学习方法,旨在根据特定条件或约束来优化模型的训练过程。它是指在模型训练过程中,引入额外的条件信息(如类别标签、上下文信息等),以指导模型学习特定的任务或模式。其目的是使模型在特定条件下表现得更好,例如在特定数据分布或任务需求下。
通过在损失函数中加入条件约束项,或在模型结构中引入条件输入,使模型能够根据条件信息调整学习策略。
REEAO:位确定性预训练数据管理器
训练大规模自回归语言模型涉及处理跨异构数据集的数万亿标记,以及动态变化的计算基础设施。大规模训练通常会涉及频繁的波动 ,例如从检查点恢复、从节点故障中恢复、调整计算资源、处理可变序列长度以及更新数据集等。这些变化通常会扰乱底层数据管道,可能导致诸如意外数据重复或遗漏等严重问题。
为应对这些挑战,作者引入了REEAO(Record Everything Everywhere All at Once,随时随地记录一切)------一种基于五个核心原则构建的数据流管理器:可复现性、效率、弹性、适应性和可观察性。**REEAO将多模态数据源分割成固定长度的记录,并从根本上保证训练过程产生一个位确定性的标记序列,该序列在预训练数据配置完成且实际训练开始之前就已完全确定。**即使在复杂场景下,例如训练节点数量、分布策略、全局批量大小或上下文长度发生变化时,这一保证依然有效。此外,REEAO还维护一个与分布式无关的数据源消费记录,以确保不会重复使用数据------即使在动态扩展资源或实时更新训练数据时也是如此。
预训练方案
作者开发了一系列基于Transformer架构的模型,这些模型在规模、注意力配置以及可选的混合专家(MoE)模块方面各不相同,且每个模型的架构选择都根据其参数预算进行了定制。表2总结了ERNIE 4.5家族在大规模和轻量化配置下,架构超参数以及与规模相关的训练设置。
对于所有模型,作者在预训练阶段都采用了分阶段预训练策略,如表3所示。在预训练阶段,作者采用了 Warmup-Stable-Decay 学习率策略,并根据每个模型的特点进行了具体配置。为了确保多模态联合训练的稳定性,作者为ERNIE 4.5设计了分阶段的预训练策略,如表3所示。
第一阶段:仅文本训练
此阶段专注于构建强大的语言骨干网络 ,确保模型具备强大的语言理解能力以及高效的长距离依赖建模能力。通过逐步增加上下文长度并调整位置编码,语言模型能够应对常规和长上下文任务,为后续的多模态预训练奠定稳定基础。
- 短上下文:作者首先在大规模预训练阶段使用来自不同领域的数万亿纯文本标记进行训练。这一子阶段主要发展核心语言能力、事实知识库以及在标准短上下文(8k序列长度)配置下的文本生成能力。
- 长上下文 :为了将模型的上下文长度扩展到128k标记,在此子阶段,作者首先通过将旋转位置嵌入(RoPE)的频率基底θ从10k增加到160k,将最大序列长度增加到32k ,并继续训练以使模型适应更长的序列。**接着,作者进一步将序列长度扩展到128k标记,并将RoPE频率基底θ的上限从160k增加到500k,使用长上下文数据对模型进行训练。**在此过程中,作者对超过16k标记长度的文档进行上采样,以确保模型能够充分接触到长距离依赖关系。基准评估表明,这一阶段使模型能够支持长达128k标记的输入序列,同时在标准任务上保持其原有能力。
第二阶段:仅视觉训练
此阶段专注于将视觉理解能力整合到预训练语言模型中。通过精心设计对齐策略,作者确保视觉知识能够高效地融入模型,同时不损害模型现有的语言能力,从而为未来的多模态学习奠定坚实基础。
- 视觉编码器 :作者**首先将视觉编码器与一个较小的语言模型一起进行预训练,使用大规模的图像-文本对数据集。**这一过程促使视觉编码器捕捉全面的视觉知识。
- 视觉预对齐 :在这一阶段,**所有语言模型(LLM)的参数被冻结,而视觉适配器、视觉专家和视觉路由器被训练。**适配器从零开始初始化,视觉专家通过结构化剪枝从文本专家派生而来。这一阶段确保视觉模块能够与LLM骨干网络顺畅整合,同时不降低其性能。
- 视觉整合 :随后,**视觉编码器被解冻,允许对整个视觉通路进行联合优化。**训练重点是高质量的图像-文本对,例如标题和替代文本,以对齐视觉和语言表示。
第三阶段:联合多模态训练
在最后阶段,作者解冻整个模型,并在标准和扩展上下文长度的多模态数据上进行联合训练。这一训练阶段使模型能够在长上下文中处理复杂的多模态任务。
- 短上下文多模态 :作者解冻整个模型,并在标准上下文长度的文本、图像和视频数据混合体上进行联合训练。这一阶段作为融合阶段,巩固了特定模态的对齐。
- 长上下文多模态:最后,联合训练扩展到128k的上下文长度。这使得模型能够在长上下文的多模态任务中有效泛化。
模型优化
训练多模态混合专家(MoE)模型面临诸多挑战,例如由于输入长度的可变性导致的专家负载不平衡和梯度不稳定。为解决这些问题,除了标准的辅助损失(auxiliary loss)和z-loss之外,**作者引入了两种新的损失函数:路由器正交化损失(Router Orthogonalization Loss)和标记平衡损失(Token-Balanced Loss)。**这些新提出的损失函数旨在促进专家的平衡利用并稳定梯度,从而实现更稳健的优化和更有效的多模态预训练。
路由器正交化损失
混合专家(MoE)模型常常面临专家同质化问题,即不同专家学习到高度重叠或冗余的表示。为解决这一问题,作者提出了**路由器正交化损失,该损失函数通过鼓励路由器的专家权重向量之间相互正交,从而实现更平衡的路由分配和更好的专家专业化。**正交化损失定义如下:
其中, 表示第 i 个专家的权重向量,
是克罗内克(Kronecker)函数。通过鼓励这些列向量之间的正交性,路由器能够产生更均匀的专家选择分布,这有助于专家之间的专业化,并提升模型在分布外(Out-of-Distribution, OOD)任务上的泛化能力。与权重衰减类似,这种正交化损失仅依赖于路由器的权重。
然而直接将该损失项纳入总损失会破坏Adam优化器的梯度估计 ,从而导致次优的训练动态。为解决这一问题,作者对Adam优化器进行了类似于AdamW的修改,使得正交化损失能够直接更新路由器权重,而不会干扰Adam的梯度估计。
标记平衡损失
传统的交叉熵损失是对样本中所有有效标记的平均损失。然而,**在多模态训练中,只有文本标记对损失有贡献,且它们在不同样本中的比例差异显著。**这种差异可能引起较大的梯度方差,破坏优化的稳定性和效率。为解决这一问题,作者提出了标记平衡损失,该损失函数通过总序列长度对损失进行归一化,从而减少梯度方差,并在多模态设置中促进更稳定和一致的优化。
在多模态训练期间,图像标记和提示位置被遮蔽并排除在交叉熵损失计算之外。 设和
分别表示样本i的损失掩码及其补集(未遮蔽区域)。样本i的传统损失为:
这种公式无意中引入了梯度不平衡:**未遮蔽标记较少的样本贡献了不成比例的较大梯度,从而偏向了优化过程。**为解决这一梯度不平衡问题,作者引入了标记平衡损失函数:
其中 表示单个标记损失贡献。归一化因子
确保每个样本的损失贡献按其总序列长度的倒数加权,与具体的遮蔽配置无关。
指数移动平均(Exponential Moving Average,EMA)
**指数移动平均(EMA)模型是一种用于平滑时间序列数据的技术,它通过赋予最近的数据点更高的权重,使得模型能够更灵敏地反映近期的变化。**在机器学习中,EMA常用于模型参数的平滑处理,以提高模型的稳定性和泛化能力。
EMA的计算公式为
,其中
是平滑因子,取值范围在 0 到 1 之间。较大的
值意味着模型对最近的数据点赋予更高的权重,从而使EMA对近期变化更敏感。
EMA在机器学习中的具体实现通常涉及对模型参数进行平滑处理,例如在训练过程中,使用EMA对模型参数进行更新,可以减少参数的剧烈波动,提高模型的稳定性。此外,EMA还可以用于在线学习场景,快速适应新数据,同时保留历史信息。在本文中,EMA被用于模型参数的平滑处理,通过调整平滑因子
,优化模型的训练过程,提高模型的性能和泛化能力。
指数移动平均(EMA)在大规模预训练中被广泛采用,以稳定训练动态并提高泛化能力。尽管它在经验上取得了成功,但EMA衰减系数α的选择往往是启发式的,缺乏理论指导。
为了更好地理解其作用,作者进行了理论分析,并证明**EMA可以被视为类似于学习率衰减。**具体来说,作者引入了一个框架来控制衰减窗口的大小,以优化模型性能。
通过有效学习率衰减分析EMA 。作者表明,**EMA以类似于学习率衰减的方式对参数更新应用指数加权,从而在训练过程中产生单调递减的"有效学习率"。**具体来说,设δt = θt+1 − θt为第t步的更新;那么,经过n步后的EMA参数可以写成:,其中
表示分配给第 i 次更新的有效学习率。
这种形式揭示了,与普通参数更新(对所有更新分配单位权重)不同,EMA逐渐降低了最近更新的权重。 图3进一步可视化了 的衰减形状如何镜像显式学习率计划,如余弦或预热-稳定衰减 ,并证明较大的
产生更平滑、更长的衰减窗口。至关重要的是,这一视角提供了一种选择
的原则性方法------直接将其与所需的有效窗口大小联系起来,而不是依赖经验法则的选择。

需要注意的是,尽管EMA表现出类似的衰减效果,但它并不等同于显式学习率衰减计划。 在实际的**学习率衰减训练中,每次更新 是基于应用衰减学习率后的模型计算的,而在EMA中,更新是在使用原始优化器学习率计算后聚合的。**然而,通过作者的实证研究,发现在预训练期间应用连续EMA可以达到与显式学习率衰减相当的性能。基于这一观察,作者提出了一种"不再衰减"的方法:与其使用重复学习率衰减来捕捉模型早期阶段的性能,不如直接使用EMA。
学习率更新规则:
这意味着在每次参数更新时,都会根据当前的学习率来计算梯度(gradient)并更新模型的权重。
EMA的更新规则如下:
在EMA中,参数更新是基于使用原始优化器学习率计算后的聚合值,而不是直接基于调整后的学习率,也就是说,EMA不仅考虑了原模型
,还考虑了上一次的EMA模型
。
这意味着,尽管EMA在更新时隐式地考虑了学习率的影响(因为参数更新的聚合会根据学习率的调整而变化),但它并不像显式学习率衰减那样直接调整每个更新步骤中的学习率。
总结来说,学习率衰减训练中每次更新是基于应用衰减学习率后的模型计算的,而EMA中,更新是在聚合使用原始优化器学习率计算后的参数更新。EMA通过指数加权平均的方式平滑参数更新,而不是直接调整学习率。
控制EMA的有效衰减窗口 。除了塑造衰减行为外,EMA衰减系数 还导致了一个有效衰减窗口------最近更新中受EMA平滑显著影响的范围。为了通过
精确控制有效衰减窗口的大小,作者引入了一个小的阈值
(例如,
)。
- 如果更新
的有效学习率满足
,则认为它在有效衰减窗口之外。在这种情况下,更新几乎不受EMA平滑的影响,表现为非EMA模型。
- 相反,如果
,则认为更新
在有效衰减窗口内,表明它仍然受到EMA过程的显著影响。
有效窗口大小与 之间的关系由下面给出。这种公式使得通过为指定的阈值
选择合适的EMA衰减系数
来精确控制所需的衰减窗口大小
成为可能:
在实践中,EMA通常每s个训练步骤更新一次,作者称之为EMA间隔。 在训练过程中,EMA衰减窗口跨越个训练步骤。受显式学习率计划中衰减行为的启发,作者将T设置为总训练步骤的十分之一。此外,作者的初步实验表明,更高的合并频率可以提高性能 。因此,在预训练阶段,作者设置s = 4,并根据上式确定α。为了在不影响训练效率的情况下实现高频模型合并,作者进一步引入了一种异步在线EMA机制。
**此外,作者实现了一种异步在线EMA机制,它通过直接将GPU参数卸载到主机内存中,而无需中断训练循环,从而实现极高频率的EMA。**一个独立的基于CPU的工作者异步执行EMA累积,并定期将生成的检查点写入磁盘。
后训练
作者的模型设计旨在在多模态预训练后实现文本部分和视觉相关组件之间的清晰分离。 具体来说,通过移除多模态专家、视觉编码器和适配器层,模型简化为一个纯语言模型,可以在仅文本场景中更高效地使用。
利用这种模块化设计,作者对文本特定参数进行后续训练,以获得针对仅文本任务优化的ERNIE 4.5。包括文本和视觉组件在内的完整参数集进一步调整,以获得多模态模型ERNIE-4.5-VL。

大型语言模型(LLMs)的后训练
LLMs的整个后训练流程如图4所示。监督式微调是初始步骤;然后,作者利用从统一奖励系统中获得的见解,通过强化学习进一步增强和微调模型的性能。
监督式微调
本节详细说明了为ERNIE-4.5实施的监督式微调(SFT)过程。为了最大化模型的效果,作者实施了一个系统的分类法,将监督式微调(SFT)数据分类到不同的主题领域。
具体来说,作者开发了一套全面的十个不同主题领域,涵盖科学与数学、编程、逻辑、信息处理、创意写作、多语言、知识问答、多轮次与角色扮演以及安全性等领域。
除此之外,SFT数据还被进一步系统地分类为推理和非推理任务。推理数据包括需要扩展思维链(CoT)的复杂任务 ,以确保这些任务的复杂性和多样性被充分捕捉。相比之下,**非推理数据包括不需要深入推理的任务,但确保这类数据的准确性和简洁性对于提升模型的整体性能和多功能性至关重要。**SFT数据的质量和多样性构成了后续强化学习(RL)阶段的基础元素。
**为了进一步增强监督式微调(SFT)数据的多样性,作者在推理任务中的一些查询下引入了具有不同推理内容的多个响应。**这种关注对于提高模型的基础能力以及为其在RL训练过程中进行探索所需的韧性至关重要。基于前一段中定义的方法,作者构建了一个包含230万个样本的SFT数据集。然后,作者在这个数据集上进行了平均两次训练周期,以优化模型的性能。
统一奖励系统
本节展示了用于后续强化学习的统一奖励系统。该系统经过精心设计,通过采用不同的奖励组合来适应推理和非推理任务。它提供了精确和全面的反馈信号,促进偏好学习。
- 大型语言模型作为评判者(RLLM) :利用大型语言模型(LLM)的高级能力,将它作为一个公正的评估者,严格地将模型生成的输出与定义良好的参考答案语料库进行基准测试。
- 沙盒 :沙盒是一个安全且隔离的测试环境,旨在**支持与编程相关的计算任务的执行和系统评估。**通过在受控和隔离的上下文中运行,模型生成的响应经过严格测试,以直接评估其功能、正确性、可靠性和对特定要求的遵守情况。
- 判别式奖励模型(RDRM) :与传统模型独立工作不同,RDRM在评分过程中明确地由参考答案引导 。与要求模型完全依赖其内部知识的闭卷考试不同,**RDRM可以访问参考答案,**有效地将评估过程转变为开卷考试。RDRM确保模型的输出紧密接近参考答案的内容和结构特征,从而保证全面覆盖。
在非推理任务的背景下,这些任务本质上是开放性的,并依赖于个人解释性判断,作者实施了一种方法论范式,以有效适应这些特定的认识特征:
- 清单感知验证器 :首先精心定义一组明确的标准 。这些标准经过精心设计,既清晰可定义又可客观评估,确保模型输出应实现的目标没有歧义。 通过建立这一严格定义但可适应的评估框架,清单感知验证器确保生成的响应始终符合既定的规范标准。
- 生成性奖励模型(GRM) :通过进一步推进评估过程,结合多维评估标准和动态反馈机制,GRM对每个查询进行定制评估,从而实施更系统和细致的评估,提高评估结果的准确性和鲁棒性。
- 判别式奖励模型(DRM) :DRM构成经典强化学习框架的一个基本方面,其中奖励函数通过判别任务学习,以有效地引导模型产生更符合预期目标的输出。
通过系统地根据推理和非推理任务的不同要求定制奖励系统,ERNIE-4.5能够在多种应用中展示出增强的能力。统一奖励系统不仅实质性地提高了模型的整体性能,而且还促进了对人类判断中固有的潜在偏好和评估标准的更细致的阐明,从而促进向更细致、更复杂和更符合人类对齐的交互发展。
强化学习
作者在近端策略优化(PPO)框架内进行ERNIE-4.5的强化学习(RL)训练过程。为了增强训练稳定性并优化模型的最终性能,作者介绍了RL训练方案的关键技术:
- 渐进式强化学习(PRL) :PRL实现了一个三阶段的强化学习(RL)算法,如图4所示,该算法采用分阶段进展:
(1)在初始阶段,模型仅在逻辑语料库上进行训练 ,系统地建立起逻辑分析和抽象推理的坚实基础能力,为PRL框架内所有后续学习阶段奠定基石。
(2)进入第二阶段,训练语料库主要包括数学和编程代码 。这种整合有助于将抽象推理技能转移到对结构表达和可执行精度要求更高的任务上。
(3)在第三阶段,模型在包含非推理和推理任务的通用数据集上进行训练,通过系统利用早期阶段获得的知识,增强在广泛任务上的泛化能力。 - 统一偏好优化(UPO) :在传统的强化学习算法如PPO中,训练旨在最大化与每个给定查询生成的单个响应相关的预期奖励,并且缺乏明确的成对比较信号来指导学习过程。 我们引入了一种新颖的UPO策略。具体来说,UPO将成对偏好建模损失,即直接偏好优化(DPO)损失,整合到PPO框架中。
基于构建成对偏好数据的不同方式,UPO算法可以分为在线和离线版本。在线UPO通过在每次强化训练迭代中为每个查询生成的多个响应上采用拒绝采样策略来构建偏好对,而在离线UPO中,每个查询的所有偏好数据在RL训练过程之前预先生成。
通过整合从捕获实质性行为差异的偏好对中学习,而不是完全依赖可能不可靠的奖励信号,UPO算法不仅增强了强化学习训练的稳定性,而且有效降低了奖励黑客攻击的风险。
为了进一步增强训练稳定性并优化模型的最终性能,作者实施了一系列改进。具体来说,作者从为支持验证器量身定制的数据集中排除了与1或0准确性相关的提 示,其奖励信号表现出明确的可验证性。对于剩余的提示,作者根据每个样本队列内奖励信号的组内方差来过滤提示。 换句话说,与方差不大的组对应的提示缺乏辨别信息,被排除在训练过程之外。此外,在每次训练迭代中,来自验证器和奖励模型的奖励首先被分离,并根据特定主题领域进一步分层,产生多个特定主题领域的子集。对每个子集独立应用奖励归一化。
实证评估表明,这些改进有效减少了不同来源和领域之间奖励信号的异质性,从而增强了强化学习期间的稳定性和收敛性。
视觉语言模型(VLM)的后训练
整个视觉语言模型(VLM)后训练过程如图5所示,包括三个监督式微调(SFT)阶段和一个推理强化学习(RL)阶段。值得注意的是,第三个SFT阶段旨在整合思考型和非思考型数据的混合,以促进通用视觉理解和复杂视觉推理能力的提升。

监督式微调
作者设计了一个监督式微调框架,以加强多模态模型的两个关键方面:图像理解和推理能力。因此,作者专注于通过有针对性的数据构建来增强视觉感知,并通过渐进式训练策略统一思考和非思考行为。
数据 :在训练过程中通过实证观察,**作者发现某些具有挑战性的任务------如谜题测试、几何问题、函数分析和图表解释------需要强大的推理能力,而视觉语言模型(VLMs)往往在基础感知理解方面存在困难。**虽然增强这种感知能力至关重要,但主要障碍在于自然语料库中缺乏密集的图像-标题对。
为了克服这一点,作者合成了大量的感知数据 ,包括程序生成的谜题、几何图形和数学函数。这些合成数据集允许对空间布局和结构属性进行细粒度控制,从而能够生成高质量的视觉-文本对,并且歧义最小。然而,尽管合成数据干净且可扩展,但缺乏现实世界图像的视觉多样性、噪声和上下文丰富性------限制了它们的泛化能力,并促使作者转向重新描述自然STEM图像。
因此,作者对大规模真实STEM图像集合进行了细粒度的标题合成。 与合成数据不同,自然图像需要既信息丰富又抗幻觉的标题。数据的标题由VLM生成,并通过仅文本模型的重复推理进行验证。只有产生一致正确答案的样本才被保留。 此外,作者过滤掉通过可见文本(例如,OCR)可解决的样本,确保整个过程需要视觉理解。然后在后训练期间整合这种合成感知数据。
思考和非思考联合训练。为冷启动训练获取高质量的多模态推理数据面临重大挑战。虽然手动注释的样本可以确保高度准确性,但它们往往在多样性和覆盖范围上不足。为了克服这些挑战并减少广泛手动注释的成本,作者提出了一个三阶段渐进式训练框架,该框架利用跨模态转移能力和专家合并技术。
- 步骤1:仅文本推理冷启动。 作者收集了一个多样化的仅文本推理数据语料库,涵盖数学、科学、代码生成、指令执行和对话。为了确保高质量的推理监督,作者应用了基于代理和基于规则的过滤器组合来移除表现出逻辑缺陷的样本,包括循环推理、矛盾和概念错误。值得注意的是,尽管模型仅在策划的文本数据上训练,从未接触过视觉输入,但它表现出了新兴的多模态推理行为,例如产生反思性提示,如"让我再看一下图像"。
- 步骤2:**拒绝采样以增强多模态能力。**在步骤1模型的基础上,作者采用拒绝采样生成与视觉相关的能力推理数据,涵盖STEM、理解任务、图表和文档分析以及创意写作。这一过程在确保数据质量的同时,通过可验证奖励机制系统地扩展了推理能力的覆盖范围。此外,在RL训练阶段,作者通过验证系统持续跟踪更高质量的响应轨迹。这些优越的轨迹被不断记录,并逐步纳入以更新和丰富作者的监督式微调(SFT)多模态推理数据集。
- 步骤3:思考和非思考融合。 在通过步骤2中针对性的数据生成加强多模态推理之后,作者通过两种方法将推理和非推理能力统一到一个模型中:
- 推理和非推理数据混合训练:作者使用推理(在步骤2中生成)和非推理数据集进行联合训练。对于所有非推理数据,**作者在响应前添加空的思考标签<think>\n\n</think>,这些标签被遮蔽并从梯度更新中排除。**这种方法使模型在保持非推理能力的同时保留推理能力。
- 专家合并:遵循DeepSeek-R1T-Chimera,**作者通过将非推理模型中的多模态专家转移到推理模型中来合并思考和非思考模型的专家。**这种融合策略创建了一个具有推理和非推理能力的统一模型,其中非推理性能超过了原始基线。这种方法使作者能够有效地结合在推理和视觉感知方面具有不同优势的模型。
这种渐进式训练方法成功地解决了多模态推理模型的冷启动挑战,同时在推理和非推理任务中实现了卓越的性能。
可验证奖励的强化学习
可验证奖励的强化学习(RLVR)已成为在可进行真实性验证的领域中提高多模态语言模型一致性和性能的关键范式。
视觉STEM 。视觉STEM(科学、技术、工程和数学)问题包括基于图像的问题,并附有真实答案,使其特别适用于RLVR。作者从开源资源和专有的K-12教育资源中策划了多样化的视觉STEM问题集合。作者将多项选择题重新表述为开放式格式,以阻止模型随机猜测。此外,作者还筛选出了模型始终正确或错误回答的示例,因为这类问题对学习进展贡献不大,并且降低了训练效率。这个策划流程确保了高质量、具有挑战性的数据集,有利于有效的策略学习。
视觉谜题 。视觉谜题是基于图像的推理任务,需要视觉感知和认知推理才能得出正确答案,包括模式识别和图形推理。作者合成了一个包含10,000多个视觉谜题及其验证解决方案的数据集,用于RLVR训练。视觉谜题数据的预处理遵循与视觉STEM任务相似的方法。与传统的验证方法不同,后者提示模型以带框格式输出最终答案,并通过字符串匹配评估正确性,**作者采用两个大型语言模型(LLMs)来评估策略模型响应的正确性。一个LLM用于评估响应是否包含任何内部不一致或相互矛盾的答案,而另一个验证最终答案的正确性。**只有当两个LLM都返回正面评估时,响应才被视为正确。这种评估策略不对策略模型的响应格式施加限制,从而实现更灵活和可泛化的输出。
UI2Code 。为了增强模型在实际多模态应用中的能力,作者收集了UI2Code和Image2Struct数据集,这些数据集专注于从UI设计图像生成HTML代码。**作者部署了一个UI2Code验证环境,评估用户提供的参考图像(通常是UI设计模型)与由VLM生成的HTML代码渲染的UI之间的视觉保真度。**这确保了VLM学会生成语法正确且视觉忠实的HTML表示。
混合强化学习 。为了使模型在推理和通用能力方面都表现出色,作者设计了一个统一的强化学习框架,整合了RLVR和RLHF。因此,作者开发了一个使用Bradley-Terry奖励建模目标训练的多模态奖励模型。奖励模型从ERNIE-4.5-Base初始化 ,以有效处理包含视觉输入的查询。作者采用GRPO作为强化学习算法,融入了DAPO启发的改进,包括动态采样、过长过滤等。这些策略共同确保了稳定的训练动态,并增强了探索能力。
训练框架
ERNIE 4.5的训练由PaddlePaddle支持。多模态模型的固有异构性结合大规模MoE架构,在大规模分布式训练中提出了显著的系统性挑战。作者引入了一个优化的训练框架,具有以下关键创新:
- 多模态模型训练的异构并行性 :ERNIE 4.5结合了ViT编码器和多模态MoE骨干网络。这些组件之间在参数规模、计算复杂性和内存需求上的基本差异为同质并行策略创造了挑战。为了缓解这一点,作者引入了一种异构并行策略,以实现高效的联合训练。 此外,作者提出了一种层次化的负载平衡方法,以提高可变分辨率训练的扩展效率。
- MoE骨干网络的混合并行性 :通过与ERNIE 4.5架构的精心共同设计,作者实现了**节点内专家并行性,以消除与跨节点全对全通信相关的开销。**此外,作者提出了一种内存高效的流水线调度方法,以减少大规模训练期间的激活内存。
异构并行策略是一种并行计算方法,它旨在利用不同类型的处理器或计算资源来共同完成任务。根据每个模型组件的需求和特性,分配最合适的计算资源。例如,对于计算密集型的组件,可以分配更强大的处理器;而对于内存密集型的组件,则可以分配具有更大内存的资源。
节点内专家并行性 (Intra-node Expert Parallelism)是混合专家(Mixture of Experts, MoE)模型中的一种并行策略,一组"专家"网络(通常是小型神经网络)被用来处理输入数据的不同部分,然后将这些专家的输出合并以形成最终的模型输出。由于所有专家都在同一个节点内并行执行,因此它们之间的通信开销相对较低,这有助于减少跨节点通信带来的延迟和带宽消耗。
此外,作者还进行了其他显著的优化,以进一步提高训练性能和稳定性。
- FP8混合精度训练:作者引入了一个具有细粒度内存优化、设计良好的操作符融合和通信优化的FP8混合精度训练框架。每个操作符和通信的精度都经过精心设计,以同时最大化训练吞吐量,同时保持收敛性。
- 计算优化 :为了最小化重计算开销,作者提出了一种优化的重计算策略,实现了优越的计算-内存权衡。作者还整合了FlashMask,以加速注意力操作符。
- 框架原生容错系统 :作者引入了一个容错系统 ,该系统与训练框架深度集成,以克服大规模训练中频繁故障的挑战。特别是,作者提出了一种零成本检查点技术,这是一种优越的检查点方法,以最小化中断成本。
重计算策略 是一种优化内存使用的关键手段,通过避免冗余数据存储以减少内存占用。传统的实践要求存储前向传播阶段产生的激活值,以供后续反向传播过程中的梯度计算使用。 这一需求导致了激活值保存数量随模型深度线性增长的现象,显著加剧了对硬件显存资源的压力。为了应对上述挑战,提出了重计算策略。具体而言,**在前向传播与损失函数计算阶段,即时释放不再需要的激活值内存空间,仅在反向传播时根据需要重新计算激活值。**此方法通过有效缩短激活值的生命周期,显著减轻了显存负担,提升了整体的资源利用效率。
用于多模态模型训练的异构算法
异构并行架构
对于ERNIE-4.5-VL-424B-A47B-Base,视觉输入(图像和视频)由一个包含6.3亿参数的统一ViT编码器处理。该编码器与采用大规模MoE架构的主干网络联合训练,总共有4240亿参数,计算过程中激活了470亿参数。大规模MoE骨干网络需要混合并行训练,ERNIE-4.5结合了专家并行(EP)、流水线并行(PP)和可选的张量并行(TP),并与ZeRO-1数据并行(DP)集成。

虽然直接的方法是将ViT编码器仅放置在MoE骨干网络的第一个流水线阶段,但这会在流水线阶段之间引起严重的工作负载不平衡,显著降低训练效率。 鉴于其相对较小的参数数量,ViT编码器最适合数据并行。为了实现ViT编码器和MoE骨干网络的高效联合训练,作者提出了图6中所示的异构并行策略。**ViT编码器参数在所有设备上复制,ViT编码器的数据并行维度嵌套在MoE骨干网络的混合并行拓扑中。在前向传播中,每个设备上的ViT编码器独立计算视觉特征。**然后,这些特征被收集到MoE骨干网络的第一个流水线阶段。随后的前向传播通过MoE骨干网络的流水线并行阶段进行。
数据并行是一种常见的并行化策略,它将数据集分割成多个子集,每个子集在不同的设备上并行处理。
在前向传播阶段,每个设备上的ViT编码器独立计算其分配到的视觉特征。计算完成后,这些特征被收集并传递到MoE骨干网络的第一个流水线阶段,然后通过MoE骨干网络的流水线并行阶段继续前向传播。
然而,在反向传播过程中,不能直接计算ViT编码器参数的梯度。这是因为流水线并行的自动微分反向传播自然结束于MoE骨干网络的第一个模块 ,而不是ViT编码器。为了解决这一挑战,作者在图7中实现了一种定制的反向传播机制来训练ViT编码器。 完成MoE骨干网络的反向传播后,所有视觉特征梯度在第一个流水线阶段可用。然后,**这些梯度被分散到MoE骨干网络的每个流水线阶段,允许每个具有不同数据并行等级的ViT编码器接收特定于其本地视觉特征的梯度。**通过这种方式,作者可以对ViT编码器执行标准的自动微分反向传播。最后,由于ViT以数据并行模式运行,其参数梯度应通过所有设备上的全归约通信进行同步,以确保参数更新的一致性。值得注意的是,图7中ViT编码器的重计算是可选的,旨在减少ViT编码器的激活内存。
第一个流水线阶段会收集所有视觉特征的梯度。然后,这些梯度被分散到MoE骨干网络的每个流水线阶段,使得每个ViT编码器都能接收到与其本地视觉特征相关的梯度。

分层负载均衡策略
ERNIE 4.5支持任意和连续可变的分辨率的输入图像和视频。
为了使ViT编码器能够处理可变分辨率的训练,作者将图像或视频帧的补丁化标记组织成打包序列。 然而,多模态数据表现出显著的不平衡挑战 :不仅图像和视频数据在空间分辨率上有所不同,而且由于时间长度的变化,视频数据表现出更严重的不平衡。因此,**每个训练样本的打包序列数量和每个打包序列的标记数量都表现出显著的变化。这种可变性导致ViT编码器不同数据并行等级之间在计算和内存上的极端不平衡。**为了解决这些挑战,作者提出了一种分层多模态负载平衡策略,如图8所示。作者的负载平衡方法总结如下:
- 第一级:粗粒度负载平衡 。首先,作者收集并按ViT编码器数据并行组中的标记数量升序排序所有打包序列。 然后,使用循环分配算法,将打包序列分配给每个设备,以确保总标记数量大致平衡。这种打包序列的重新分配实现了粗粒度的计算和内存负载平衡,如图8(b)所示。
- 第二级:细粒度动态平衡分区 。由于每个打包序列中自然存在的标记数量差异,粗粒度负载平衡后每个设备上的总标记数量可能有很大差异。具体来说,作者在注意力操作符内外执行动态分区方法以进一步实现负载平衡 ,如图8(c)所示:
- 注意力操作外 :作者提出了用于注意力外操作符的打包序列并行(PSP)策略。与MegatronLM中提出的基于张量并行和分区模型参数的序列并行不同,作者提出的打包序列并行方法连接打包序列,并沿序列长度维度均匀分区。打包序列并行也应用于图6中的适配器模块。
- 注意力操作内:由于注意力操作符需要每个打包序列的完整序列长度维度,作者在注意力计算之前执行全对全通信以交换序列长度和注意力头维度。注意力计算完成后,这些维度被交换回来以恢复打包序列并行。
打包序列并行(PSP)策略
序列连接:PSP策略将多个打包序列(由图像或视频帧的补丁化标记组成)连接起来,形成一个更长的序列。
均匀分区:沿着序列长度维度,将连接后的长序列均匀地分配给不同的处理单元或设备,以实现并行处理。
通过作者的分层负载平衡策略,计算、内存和通信的资源利用效率得到了显著提高。实验结果表明,与没有负载平衡的基线方法相比,ERNIE-4.5-VL424B-A47B-Base在端到端多模态训练中实现了高达32%的整体性能提升。

用于MoE骨干的混合异构
为了有效地扩展ERNIE 4.5语言模型的训练,作者在MoE骨干网络上采用了三维并行性,具体来说,是专家并行性、流水线并行性和ZeRO-1数据并行性,用于文本预训练 。至于其多模态模型预训练,作者加入了张量并行性,以适应增加的序列长度和额外的视觉专家参数。此外,作者引入了几种技术来优化内存占用并减少通信开销,最终提高了训练效率。这些创新确保了作者的方法在大规模MoE模型训练中提供了优越的可扩展性和性能。
节点内专家并行性 作者设计了模型架构和配置,以避免代价高昂的节点间专家并行通信。通过将专家并行通信限制在节点内 ,作者实现了基于与NCCL兼容的集体原语的MoE全对全通信。这种方法在ERNIE 4.5上实现了与基于DeepEP的MoE实现相当的端到端吞吐量,并且可以轻松部署在没有NVIDIA GPU和InfiniBand(IB)网络的AI集群上。如图9(a)所示,传统的MoE实现在第二次全对全通信之后应用门控概率乘法操作符。这种方法需要保留第二次全对全通信的输出张量以进行反向传播,造成显著的内存压力。 作者在图9(b)中的解决方案是在专家计算块内重新定位门控概率乘法操作符。 这种架构修改使得在消耗后可以立即释放第二次全对全输出张量。虽然引入了通过概率排列和额外的轻量级全对全操作引入的轻微开销,但这种优化显著减少了峰值内存使用,并消除了反向传播期间的众多重计算。
全对全(all-to-all)通信是分布式计算和并行计算中的一种通信模式,其中每个处理器(或计算节点)都需要与所有其他处理器进行数据交换。
在全对全通信中,每个参与的节点都会:
发送数据:将数据发送给所有其他节点。
接收数据:从所有其他节点接收数据。

内存高效的流水线调度 在扩展到更大的集群训练时,保持固定的全局批量大小需要减少梯度累积步骤,这反过来增加了流水线气泡时间比例,显著降低了训练吞吐量。 通常采用虚拟流水线并行(VPP)来减少流水线气泡时间比例。通常,VPP的第一个流水线阶段预计会消耗最多的激活内存。然而,最后一个流水线阶段涉及损失函数计算,这可能反而成为内存瓶颈。为了解决这个问题,**作者提出了一种内存高效的虚拟流水线调度策略。一旦最后一个流水线阶段完成了损失函数的前向计算,它立即开始其反向计算并释放损失函数的激活内存。**通过这种方式,最后一个流水线阶段最多应保留单个VPP块的激活内存。
在实际操作中,由于不同阶段的计算和通信负载可能不均衡,会导致某些阶段需要等待其他阶段完成其任务,从而产生气泡时间。
虚拟流水线调度通过以下方式来解决这个问题:
重叠计算:在等待数据到来的同时,计算单元可以开始处理其他任务。这种方法允许不同阶段的计算重叠,减少了空闲时间。
动态调整:根据当前的计算负载和队列状态,动态调整任务分配,以平衡各个阶段的负载。
减少等待:通过最小化等待时间,确保每个计算单元都能尽可能地保持忙碌。
提高资源利用率:通过更有效地使用所有计算资源,提高整体的训练效率。
图10和图11展示了作者在前向-然后-反向(F-then-B)和一次前向一次反向(1F1B)下的内存高效流水线调度。当梯度累积步骤少于流水线并行度的两倍时,只能使用F-then-B调度方法。 在这些情况下,作者提出了一种参数梯度释放技术来减少内存使用。**在每个训练步骤结束时,作者释放为参数梯度分配的内存。**参数梯度释放方法显著减少了F-then-B调度中的峰值内存使用,特别是在BF16或FP8混合精度训练期间保持FP32梯度时。
FP8混合精度训练
FP8混合精度训练 FP8格式相比于BF16将位宽减少了一半,在大规模模型训练中提供了显著的优势,包括提高计算吞吐量、减少内存消耗和降低通信开销。ERNIE 4.5在MoE前馈送网络(FFN)模块中采用了与DeepSeek-V3类似的量化策略,**利用E4M3 FP8数值格式,并采用在线量化策略,**对权重进行块状量化,对激活进行平铺量化。图12展示了ERNIE 4.5的FP8混合精度训练策略。

FP8训练的细粒度内存优化 FP8混合精度训练的主要好处来自于内存节省,以提高吞吐量。在MoE FFN模块中,主要的激活内存来自于上行门控线性层、下行线性层、SwiGLU和门控概率乘法的输入激活。
- 对于上行门控线性层,作者在反向传播中保留其FP8输入激活XFP8,而不是BF16张量XBF16。在反向传播中,需要FP8量化版本的转置XBF16来计算权重梯度。因此,作者需要在权重梯度计算期间对XFP8应用去量化-转置-量化操作。通过这种方式,作者可以减少上行门控线性层的内存使用,并且第一次全对全通信可以在FP8精度下执行,以节省通信成本。
- 对于下行线性层,有两种节省内存的选项:(1)保留上行门控线性层的BF16输出张量;(2)使用上述XFP8张量重新计算上行门控线性层,以生成上行门控线性层的BF16输出张量。这两种方法都需要对SwiGLU和门控概率乘法操作符进行轻量级重计算,以便节省这两个操作符的输入张量的内存。
FP8量化操作符融合优化作者通过操作符融合减少数据移动开销并提高计算强度,具体包括:(1)在前向传播中融合置换和FP8量化,以及(2)在前向和反向传播中融合SwiGLU、门控概率乘法和FP8量化。
FP8通信优化和重叠在前向传播中,第一次全对全通信以FP8精度执行,以减少与BF16相比的通信成本。在反向传播中,第二次全对全通信与上行门控线性权重梯度的计算重叠。
计算优化
重计算与最佳计算-内存权衡 传统的重计算策略在模块级别上操作,通过专注于性价比高的模块来最小化计算开销。相比之下,ERNIE 4.5采用了操作符级别的重计算策略 ,从而进一步优化训练性能。为了开发一种最优的重计算策略,作者对模型中的每个操作符进行了详细分析,评估其内存使用与计算时间。通过选择性地对最具成本效益的操作符应用操作符级别的重计算------即那些提供显著内存节省且运行时惩罚最小的操作符------作者设计了一种最优的检查点方案,以最大化训练效率。
重计算 (Recomputation)指的是在训练过程中重新计算某些已经计算过的中间结果,而不是将它们存储下来以供后续使用。这种做法通常是为了节省内存消耗,因为存储大量的中间激活(activations)需要占用大量的内存资源。然而,当需要这些中间结果来进行梯度的反向传播时,就必须重新执行之前的计算步骤来得到它们。
在某些情况下,为了避免在训练过程中保存大量的中间激活数据,可能会选择不存储这些数据,而是在需要时重新计算它们。这在资源受限或者当模型太大以至于无法将所有激活都保存在内存中时特别有用。但这样做的缺点是会增加计算成本,因为同样的计算被执行了两次。
FlashMask用于灵活的注意力掩码和长上下文训练 作者提出FlashMask以适应ERNIE 4.5多模态预训练中所需的多样化注意力掩码。FlashMask引入了一种内存高效的注意力掩码表示方法 ,用于文本和多模态训练中的各种任务,将内存复杂度从O(N^2)降低到O(N)。作者还将FlashMask应用于监督式微调(SFT)、直接策略优化(DPO)和强化学习训练,特别是长上下文训练,以减少内存使用并提高吞吐量。
框架原生容错系统
使用大规模GPU集群会引入较高的故障中断,这对训练效率构成了重大挑战。为了减轻ERNIE 4.5训练期间的中断频率并最小化恢复成本,作者提出了一种新颖的框架原生容错系统,该系统覆盖整个模型、框架和底层硬件,如图13所示。与传统的容错系统不同,ERNIE 的系统利用了关于训练过程中计算和通信工作负载的详细信息,实现了强大的故障检测和快速恢复。

TraceHang 在大规模集群上训练时,没有明确故障的挂起问题可能特别令人困扰。为了解决这个问题,作者提出了TraceHang技术,**该技术利用并行信息和通信记录自动诊断此类挂起的发起者。**通过系统地分析这些数据,TraceHang可以识别挂起的根本原因,促进更快的解决并最小化停机时间。
挂起(Hang)问题通常是指计算机程序、系统或网络服务在执行过程中出现的无响应状态。这种情况可能由多种原因引起。
在线SDC扫描器 静默数据损坏(SDC)由于其难以捉摸的特性,对模型收敛构成重大威胁,传统上需要昂贵的离线诊断程序来检测。作者观察到,**流水线并行自然引入了设备上的空闲期,即流水线气泡时间。在流水线并行的每个阶段的这些气泡时间内,执行具有固定输入的计算和通信,随后将结果与真实值进行验证。**这种在线方法成功地识别了几个SDC节点,而没有对训练吞吐量产生不利影响。
静默数据损坏(Silent Data Corruption,简称SDC)是指在计算过程中数据发生的错误或损坏,但这些错误并没有立即表现出来,也不会导致程序崩溃或明显的错误提示。这种情况之所以被称为"静默",是因为损坏的数据可能在后续的处理中才显现出影响,而且这种影响可能难以追踪和诊断。
并行预热 初始化阶段可能会导致性能下降。这是因为在训练开始时,需要初始化各种资源 ,例如内存分配、通信通道建立(如NCCL通信句柄)、数学库初始化(如cuBLAS库)等。并行预热的目的是在训练正式开始之前,预先激活和"预热"这些资源,以减少训练开始时的性能损失。
零成本检查点(ZCC) 。当节点**发生故障时,通常需要移除故障节点,用新节点替换,并从最近的检查点重新开始训练。**检查点的频率是影响中断后恢复时间的关键因素;然而,过多的检查点会严重影响训练效率。
为了克服这一挑战,作者引入了零成本检查点(ZCC)技术。这种创新方法能够在每个训练步骤中保存检查点,而不会对训练吞吐量产生任何开销,从而确保在中断期间不会丢失训练进度。如图14所示,ZCC在两个方面操作:训练框架端和集群端。
- 在训练框架 端,基于一个关键观察结果,即在训练过程中,模型参数和优化器状态在优化器执行之外保持不变。 利用这一特性,ZCC技术能够在训练过程中的非冲突任务期间,将检查点的保存操作 与训练任务并行执行 ,从而避免了检查点保存对训练吞吐量的显著影响。
然而,在检查点期间的从设备到主机的复制和训练期间的节点间通信争夺PCIe总线上的相同物理资源。为确保异步检查点不会降低训练吞吐量,作者将训练例程分为两种类型:冲突例程(涉及节点间通信,如流水线并行发送/接收和ViT视觉特征收集/散布)和非冲突例程(如注意力操作符、密集前馈网络和节点内通信)。从设备到主机的复制被精细分解并分配给这些非冲突例程,以避免影响训练过程。 - 在集群端 ,作者提出了一种零成本传输技术。当检测到故障节点时,ZCC技术利用所有可用的健康网络接口卡(NIC)以最大带宽进行快速的RDMA点对点传输,将最新的内存检查点从故障节点传输到新的健康节点。
推理和部署
ERNIE 4.5系列包括具有不同参数大小的MoE和密集模型,适用于各种部署场景。由于ERNIE 4.5的参数尺寸紧凑,即使是其最大的模型也可以高效部署。为了适应多样化的应用场景和硬件平台,**作者提供了多种量化方案,包括FP8、INT8、INT4,甚至是2位权重仅量化。**具体来说,ERNIE-4.5-A47B模型可以在8个GPU上以8位参数运行,或者在4个GPU上以4位参数运行。此外,作者还提供了带有大规模专家并行的预填充-解码(PD)解耦合部署。
量化
W4A8 量化
在 ERNIE-4.5-300B-A47B 模型中,专家权重占总参数的 90% 以上,在预填充阶段消耗了约 40% 的推理时间,在推理的解码阶段消耗了约 60% 的时间。为了实现快速且低成本的推理,作者对与专家组件相关的通用矩阵乘法(GEMMs)采用了 W4A8(INT4 权重和 INT8 激活)量化。 通过创新设计推理友好的 W4A8 量化算法,作者在不损失准确性和几乎不增加推理时间开销的情况下实现了加速。为了在准确性和推理成本之间取得最佳平衡,作者对专家权重采用通道静态 INT4 量化,对激活采用张量静态 INT8 量化。
在 ERNIE 4.5 的 MoE 压缩过程中,出现了以下几项挑战:
- MoE 的 GPTQ 速度慢:GPTQ 是一种广泛使用的权重量化方法。然而,对于 MoE 模块的 GPTQ,需要一个大型数据集,不仅用于激活所有专家,还用于优化数千个线性层。这一过程会产生显著的校准成本,尤其是在 ERNIE-4.5-300B-A47B 中有 64 个专家时。
- 节点间异常值:当使用张量并行(TP)进行部署时,权重、激活及其异常值会被分割到所有 GPU 节点中,导致全局分布的量化误差。
- 节点内异常值:在 MoE 模块的每个 GEMM 操作中,权重和激活中都存在异常值。像 SmoothQuant 和自适应权重量化(AWQ)等方法的效果有限,因为它们倾向于在激活和权重之间转移异常值,而不是从根本上解决这一问题。
作者设计了一个量化框架,以增强并确保量化精度,同时将推理时间开销降至最低,如图 15 所示。具体而言,作者引入了多专家并行协作(MEPC)算法来简化校准过程。此外,作者还设计了一个框架,结合了异常值转移和层自适应排列旋转技术,以显著减少量化误差。
作者将量化后的模型与 W8A16 基线模型在六个核心任务类别上进行了对比评估。结果显示,作者的方法有效保留了模型性能:在通用任务(-0.49%)、指令遵循(-0.06%)、推理任务(+0.11%)、数学任务(-0.02%)和代码任务(-1.10%)上,性能与基线水平相当,从而证实了量化方法的有效性。

多专家并行协作量化(MEPC) :为了解决上述混合专家(MoE)大型语言模型(LLMs)激活校准和GPTQ的瓶颈问题,作者在校准过程中采用了仅预填充的方法,以确保激活足够数量的专家。对于未激活的专家,作者采用了共享量化参数策略。具体来说,未激活专家的量化参数被设置为同一层中所有激活专家的参数平均值。 这种方法是基于作者的实证观察,即同一层的专家在量化过程中往往具有高度相似的量化参数。
跨GPU节点的异常值转移算法 :如前所述,分布在GPU节点上的激活异常值可能导致所有节点的量化损失。在张量并行(TP)的背景下,Down Linear被分割到N个GPU节点上,每个节点维护自己的量化比例。 受RPTQ的启发,作者实现了一种异常值转移算法,将所有异常值聚合到单个节点上,同时将常规(非异常值)激活分布到剩余节点上。 具体来说,作者首先收集所有N个GPU的通道绝对最大激活值。 利用这些统计数据,**作者全局地对Up-Gate Linear的列和Down Linear的行进行排名,将具有相似激活范围的权重通道共定位到同一个GPU上。**这种重新排序调整了局部权重和激活布局,而不影响最终模型输出,因为后续的AllReduce操作通过元素级求和恢复了一致性。值得注意的是,作者的方法在离线执行此重新排序,从而在不损害推理效率的情况下生成了量化友好的模型。
层适应性排列旋转量化 :INT8静态量化因其优越的推理效率和广泛的硬件兼容性而被广泛采用。然而,它在存在节点内异常值时会遭受显著的性能下降。动态量化或FP8等替代方法虽然在处理异常值方面有效,但往往受到计算开销或硬件支持的限制。为了解决这一挑战,作者提出了一种层适应性排列旋转量化框架,该框架在保持硬件友好性的同时有效减轻了异常值的影响。 受Quarot启发,作者首先采用块旋转策略来平滑权重或激活中的异常值。为了进一步增强这种方法的鲁棒性,**作者整合了一种排列机制,使得每个块内的异常值可以更灵活地重新分配。作者的方法首先预先分析每层激活中的异常值分布,以确定是否应优先平滑权重或激活。对于表现出聚集异常值的层,作者应用排列-旋转过程在旋转块内重新分配这些异常值,从而减少量化噪声并保持模型精度。**这种设计在量化粒度、计算效率和硬件兼容性之间实现了平衡。
2位量化
为了进一步降低ERNIE 4.5的部署门槛,作者实现了一种几乎无损的2位量化算法,从而将其模型大小从BF16基线减少了80%。2位ERNIE-4.5-300BA47B可以部署在一个141GB的H20 GPU上。对于基于标量的量化方法,将模型压缩到2位会导致模型效果显著下降。**目前,最先进的权重仅量化算法主要关注使用向量量化和非一致处理来优化极低比特量化下的模型性能。**然而,这两种方法在推理过程中都引入了计算开销。
- 去量化的指数成本:向量量化需要额外的码本存储质心向量,去量化过程涉及在庞大的码本空间内进行索引操作以重建权重,这是一个耗时的任务。
- 非一致处理的计算开销:同时,尽管权重仅量化中的非一致处理可以减轻量化误差,但它需要在推理阶段对权重进行额外的实时处理。
为了解决上述问题,**作者提出了基于卷积码的卷积码量化(CCQ),这是一种标量量化算法。该方法不仅保留了向量量化的高精度数据量化能力,还保持了标量量化的低计算复杂性。**结合比例量化和优化,作者在实现最高可能的压缩比的同时,最小化推理开销。
卷积码本 受QTIP的启发,作者通过一系列精心设计的编码结构,创新性地将卷积码与标量量化集成。基于卷积码,作者构建了一个无需查找的码本,实现了码本与权重向量之间的线性映射,从而优化推理性能。同时,借鉴向量量化中的数据映射概念,作者在极低比特条件下最小化模型性能下降。
混合编码 作者采用具有不同编码配置的卷积码来适应INT8和INT16格式的编码值存储。结果,作者成功将4位标量量化压缩到等效于2.75位,将3位标量量化压缩到2.5位。
码聚类 此外,通过分析每个通道中编码值的分布,作者观察到它们符合正态分布,这使得沿编码维度可以进行更深层次的压缩。通过卷积码的聚类,作者可以将任何编码配置压缩到等效于2位,从而进一步提高模型压缩率。
注意力和KV缓存量化
支持更大的批量大小和更长的上下文长度对于降低每次请求的成本和适应多样化的应用场景至关重要。关键-值(KV)缓存的GPU内存开销和注意力机制的计算成本线性甚至二次方增长,为推理计算带来了新的瓶颈。主流方法如KIVI和KVQuant通过在推理时采用动态标记级量化和异常值隔离来保持KV缓存量化期间的准确性。然而,这种动态处理会导致推理延迟。为了缓解这个问题,作者提出了一种静态量化解决方案,用于KV缓存和注意力机制(如图16所示)。在追求模型准确性和推理性能之间的最佳权衡时,作者引入了几个关键策略。
- 灵活的量化配置:作者提出的方法支持两种不同的量化粒度,即头级和通道级。作者提供了多种精度级别,如FP8、INT8和INT4,以满足不同的推理需求和硬件限制。
- 静态量化:作者利用静态量化,采用从SFT阶段派生的专用采样数据集,这避免了推理过程中对比例集合的需求。
- 轻量级随机哈达玛变换(RHT):作者利用了分块随机哈达玛变换(RHT)。这种技术被用来减轻激活中异常值的影响。值得注意的是,RHT操作可以无缝集成到矩阵Wv和Wo中,因此在推理过程中不会产生额外的计算开销。为了进一步提高FP8量化的精度,作者采用了减少FP8值表示范围的策略,这在量化性能上取得了显著改进。实验结果表明,这种方法在推理任务上实现了大约2%的准确性提升。作者将这种改进归因于E4M3 FP8格式的特性,该格式表现出显著的稀疏性,并且在其极端值(±448)附近有较大的量化误差。为了解决这个问题,作者在标定过程中主动裁剪或排除某些异常值。具体来说,作者为fp8 max设置了一个自定义值(与默认的448不同),如方程所示。

推理加速
在充分考虑了与量化算法和硬件架构的协作后,作者开发了一系列高效优化的推理内核。对于MoE W4A8量化,一个高效的CUTLASS内核,通过快速位移去量化,显著提高了内存吞吐量和推理速度。对于注意力和KV量化,作者为不同GPU架构上的INT8格式和FP8格式的softmax计算设计了不同的指数函数多项式近似,实现了比FlashAttention-2快1.68倍,比FlashAttention-3快1.48倍。
W4A8内核加速 在LLM推理中,4位权重仅和INT8/FP8量化是常用的加速技术,但基于W4A8的MoE模块的GEMM提供了两个关键优势:(1)与FP8/INT8量化相比,4位权重表示可以减少50%的内存,(2)通过利用INT8 Tensor Core,理论上计算吞吐量比FP16或BF16基线提高2倍。为了优化计算效率,作者简化了从INT4到INT8权重的快速转换过程,这与量化算法共同设计。技术细节如下:
- 范围映射:INT4的可表示范围为[-8, 7]。作者将映射范围限制为[-7, 7]。
- 位移转换:INT4权重通过4位左移操作转换为INT8,结果为INT8权重的有效映射范围[-112, 112]。
- 权重布局优化:为了最小化实现Tensor Core兼容INT8权重布局所需的操作,作者采用了一种权重预打包策略,以交错格式排列权重。这种设计使得每八个INT8数据元素仅使用3条指令即可转换(通过高效利用LOP3和位移操作)。
作者利用Tensor Core单元进行乘累加操作,并通过CUTLASS实现高效内核,去量化在尾声阶段进行,以最大化流水线吞吐量。一个访客模块动态平衡专家工作负载,而系统的超参数预调优使得推理期间能够实时自适应配置。上述优化为W4A8 MoE GEMM内核带来了以下性能提升:
- 对于解码器形状的工作负载,实现了70%至80%的内存带宽。
- 与W4A16相比,在编码器形状的工作负载上速度提升超过100%,在解码器形状的工作负载上速度提升超过20%。
为了减轻中间计算过程中的精度损失,作者在整个MAC阶段保持INT32累加精度。对于激活,作者支持灵活的量化粒度(每个标记或每个专家),而对于权重,作者采用每个通道量化以实现最佳精度。
高效注意力内核为了在注意力量化中平衡准确性与硬件能力,作者在Hopper架构GPU上利用FP8计算,在Ampere架构GPU上利用INT8。当批量GEMM计算利用基于Tensor Core的INT8或FP8时,它们的执行时间显著减少。因此,在CUDA Cores上计算的softmax和去量化操作成为性能瓶颈。为了解决这个问题,作者采用了一种新颖的指数函数和去量化实现,以最小化在CUDA Cores上的计算开销。
INT8格式注意力 作者实现了一种快速的指数计算,对于浮点数据x的指数函数可以表示为:,其中scale和bias是预定义的常数,⌊⌋是通过整数转换计算的,Ffloat代表程序中的浮点重解释转换。在Q∗KT操作的INT8量化之后,去量化步骤(用系数Sqk表示)和随后的指数操作可以合并为一个单一的融合乘加(FMA)指令,如下公式所述:
实验结果表明,这种方法在A800 GPU上,输入序列长度为128K时,在预填充阶段比FlashAttention-2的性能提高了68%。FP8格式注意力。对于使用C4(KV缓存的对称通道4位量化)的注意力模块,作者将两个GEMM操作量化为FP8E4M3格式,并实现了以下优化:
- 快速转换 :通过将4位KV数据放置在FP8E4M3数据的低4位,建立了UINT4到FP8E4M3的转换:
。同样,UINT8到BF16的转换也可以采用这种方法。对于Cache KV存储,原始数据序列[0,1,2,3,4,5,6,7]交错为[0,4,1,5,2,6,3,7],使得八个4位值的转换可以通过单个位操作和LOP3指令完成。这将每个值转换的成本降低到0.25条指令。
- 快速去量化:对于K的去量化,以下等价成立:
,其中Zk是K的去量化零点,Sqk是Q和K的去量化比例的乘积。快速UINT4到FP8E4M3转换可以应用于K,这只需要位移和位与操作,显著减少了FMA指令和数据类型转换开销。对于V的去量化,计算如下:
,其中Zv和Sv是V的量化零点和系数。由于P ×V的矩阵乘法沿着序列长度维度累积,而Sv是通道参数,V的去量化可以推迟到P × V之后。此外,项P × Zv × Sv可以有效地使用预先存储的softmax行求和计算。
- 矩阵转置:Hopper架构要求矩阵B在A*B中从共享内存加载进行GEMM。因此,作者重新构建了4位量化K和V的计算流程,转换为以下公式
,以避免将量化的K和V从寄存器移动到共享内存。这些优化通常使C4解码注意力的输入128k序列长度达到理论带宽利用率的80%以上。在FP8注意力中,指数函数是使用其极限近似的。最终,与FlashAttention-3的FP8实现相比,这种方法在输入序列长度为128K的预填充阶段平均速度提高了50%。
ERNIE 4.5配备了一个多标记预测(MTP)模块,因此在推理阶段使用推测性解码。作者实现了一个统一的推测性解码框架,该框架具有并行提议架构,能够与MTP方案无缝集成。通过利用并行采样和验证,以及深度定制的注意力内核,MTP在保持与自回归解码相当的每次输出标记时间(TPOT)的同时,实现了输出吞吐量的60%提升。
部署
对于ERNIE-4.5-300B-A47B模型,作者通过专家并行的PD解耦合部署优化系统吞吐量和延迟。具体来说,预填充阶段采用8路专家并行(EP8)而不使用张量并行的注意力模块。在解码阶段,系统支持从EP8到EP64配置的灵活并行化。鉴于预填充和解码阶段的不同计算特性,作者为每个阶段的需求采用了不同的量化方案。预填充阶段利用块状FP8量化,而解码阶段采用W4A8量化以优化内存带宽并减少延迟。PD解耦合系统的有效性严重依赖于三个关键因素:(1)KV缓存的节点间传输效率,(2)专家路由的全对全通信效率,以及(3)分布式计算资源的负载平衡。这些组件共同决定了解耦合架构的整体系统性能和可扩展性。
KV缓存传输作者开发了一个基于远程内存访问(RDMA)的跨节点KV缓存传输模块,具有最小的依赖性。它仅需要一个基本的RDMA运行时环境,如OFED,使其轻量且易于部署。此外,为了实现更好的性能,作者的实现与现有解决方案有一些详细差异,包括减少完成队列(CQE)的数量并启用PCIe宽松排序。此外,基于统一的KV缓存传输设计,作者的系统智能地通过最佳通道路由KV缓存流量,利用NVLink节点内和RDMA节点间。全对全通信。对于全对全通信,作者利用NVLink P2P复制进行节点内数据传输低延迟场景。这一增强在小规模解码实例中提高了解码吞吐量,与EP16相比,EP8部署的效率提高了70%。多级负载平衡。负载平衡在大规模PD解耦合系统中极为重要,该系统结合了数据并行和专家并行。作者在系统中实施了多级负载平衡。
- 数据并行的负载平衡:全局负载感知调度器根据KV缓存命中率和标记计数基于查询,确保每个DP等级在预填充和解码阶段处理的标记数量相对平衡。
- 专家并行的负载平衡:我们的系统结合了动态专家冗余量策略并执行全局专家重新调度,以优化MoE计算中的负载平衡。为了减少专家重新排列对在线服务的影响,作者采用了一种权重预取和异步加载的方案,实现了极低的服务停滞。使用灰色级重新排列策略避免出现雷鸣现象并确保整体服务的稳定性。
- PD解耦合的负载平衡:在PD解耦合系统中,不匹配的PD比例可能使其难以满足服务级目标(SLO),可能导致GPU利用率低。在在线服务中,动态变化的输入和输出长度导致预填充和解码阶段之间的负载不平衡。为了减轻这一点,作者持续监控所有实例的工作负载并动态调整预填充和解码之间的比例,以实现相对平衡。然而,作者观察到系统吞量仍然经常受到预填充阶段资源限制的瓶颈。为了解决这一限制,我们的系统支持实例的动态角色切换。这种能力使解码实例能够根据实时负载条件智能处理短输入请求。至关重要的是,这种方法在几乎不影响每次输出标记时间(TPOT)的同时,提高了解码阶段的资源利用率。
利用上述优化策略,ERNIE-4.5-300B-A47B实现了每H800节点56k输入TPS和18k输出TPS,对于输入长度为2K和输出长度为400的提示缓存,约束为50ms的每次输出标记(TPOT)延迟。
值得注意的是,在作者的PD解耦合部署方案中,最大的ERNIE 4.5语言模型,预填充和解码都需要至少一个节点的8个GPU,这显著提高了操作效率并减少了集群集生产环境中的复杂性。
虽然在大规模GPU集群上的PD解耦合提供了出色的性能,但简化的单节点部署为快速应用在多样化场景中提供了优势。
开源开发工具
作者基于PaddlePaddle框架开源了ERNIEKit1和FastDeploy2,以简化ERNIE 4.5的模型训练和部署。这些工具包具有工业级功能、资源高效的训练和推理工作流程,以及多硬件兼容性。
ERNIEKit
ERNIEKit是ERNIE 4.5的工业级开发工具包。它提供了模型训练和压缩能力,包括预训练、监督式微调(SFT)、低秩优化(LoRA)、直接偏好优化(DPO)、量化感知训练(QAT)和训练后量化(PTQ)技术。为了使开发者能够充分体验ERNIE 4.5的能力,作者引入了以下技术创新:
- 工业级高性能预训练:该工具包提供了我们最大的ERNIE 4.5语言模型预训练的高性能实现,包括混合并行训练策略和FP8混合精度优化。
- 低位量化感知微调:为了显著减少ERNIE 4.5的微调和部署资源,作者引入了一种新颖的FP8-QAT解决方案,将低位精度训练与优化器卸载相结合。生成的模型与BF16微调(SFT)模型的质量相匹配,同时将我们最大的ERNIE 4.5语言模型的最小GPU需求从96个GPU降低到16个GPU。至关重要的是,与需要动态(块/平铺式)量化的预训练FP8方案不同,我们的FP8-QAT模型支持高效的离线张量FP8推理,消除了运行时量化开销。
- 视觉训练与推理接口:集成的基于Gradio的WebUI支持ERNIE 4.5的零代码微调、对齐和推理操作,具有开箱即用功能。
FastDeploy
FastDeploy是用于大型语言模型和视觉语言模型的推理和部署的工具包。它设计用于易于使用,提供与vLLM接口的即用即用兼容性。为了满足企业和个人开发者的需求,作者引入了以下技术特性:
- PD解耦合与多级负载平衡:作者开源了工业级预填充-解码解耦合部署,具有上下文缓存。它为基于ERNIE 4.5架构特性的NVIDIA GPU提供最优分布式推理配置。得益于统一的KV缓存传输设计,我们的系统自动选择NVLink和RDMA之间最有效的通信链路。在多机部署期间,实例根据负载条件在预填充和解码角色之间动态切换,以提高吞吐量。
- 全面的低位量化推理支持:FastDeploy支持多种量化精度,包括W8A8、W8A16、W4A8、W4A16和W2A16,数据类型如INT4、INT8和BF16。值得注意的是,作者提供了内置的2位权重仅量化模型,以降低ERNIE 4.5的部署资源需求。该模型在多个基准测试中与FP8精度相比几乎无损性能,同时在具有141GB内存的NVIDIA H20 GPU上实现单卡推理。
- 多硬件支持:得益于PaddlePaddle的多硬件适应能力,除了NVIDIA GPU外,ERNIE 4.5还支持在包括昆仑XPU、Hygon DCU和Ascend NPU在内的各种芯片上进行推理部署。
3.使用入门
ERNIEKit
ERNIEKit 是一个面向 ERNIE 4.5 的产业级开发套件。它提供了模型训练和压缩功能,包括预训练,SFT,LoRA, DPO,量化感知训练(QAT)和训练后量化(PTQ)等技术。
# Download model
huggingface-cli download baidu/ERNIE-4.5-300B-A47B-Base-Paddle \
--local-dir baidu/ERNIE-4.5-300B-A47B-Base-Paddle
# SFT
erniekit train examples/configs/ERNIE-4.5-300B-A47B/sft/run_sft_wint8mix_lora_8k.yaml \
model_name_or_path=baidu/ERNIE-4.5-300B-A47B-Base-Paddle
# DPO
erniekit train examples/configs/ERNIE-4.5-300B-A47B/dpo/run_dpo_wint8mix_lora_8k.yaml \
model_name_or_path=baidu/ERNIE-4.5-300B-A47B-Base-Paddle
获取更详细的示例,请参阅 ERNIEKit 仓库。
FastDeploy
FastDeploy 是基于飞桨的大模型高效部署套件。提供了一行代码开箱即用的多硬件部署体验,使用接口兼容vLLM和OpenAI协议。针对 ERNIE 4.5 模型部署提供了多级负载均衡的多机PD分离部署产业级方案,支持丰富的低比特量化推理、上下文缓存、投机解码等加速技术。
本地推理示例:
python
from fastdeploy import LLM, SamplingParams
prompt = "Write me a poem about large language model."
sampling_params = SamplingParams(temperature=0.8, top_p=0.95)
llm = LLM(model="baidu/ERNIE-4.5-0.3B-Paddle", max_model_len=32768)
outputs = llm.generate(prompt, sampling_params)
服务部署示例:
python
python -m fastdeploy.entrypoints.openai.api_server \
--model "baidu/ERNIE-4.5-0.3B-Paddle" \
--max-model-len 32768 \
--port 9904
一旦使用FastDeploy启动并运行服务,它提供了一个OpenAI兼容的API,允许轻松与现有工具和工作流集成。
有关详细文档、安装指南和高级配置选项,请参阅ERNIEKit和 FastDeploy 仓库。
4.总结
文心4.5系列开源模型共10款,涵盖了激活参数规模分别为47B和3B的混合专家(MoE)模型(最大的模型总参数量为424B),以及0.3B的稠密参数模型。
文心4.5系列模型均使用飞桨深度学习框架进行高效训练、推理和部署。在大语言模型的预训练中,模型FLOPs利用率(MFU)达到47%。模型在多个文本和多模态数据集上取得了 SOTA 的性能,尤其是在指令遵循、世界知识记忆、视觉理解和多模态推理方面。