本文作者:访客

华为是怎么让大模型提速的?

访客 2025-05-22 12:03:17 75058 抢沙发

华为是怎么让大模型提速的?

没有人不在期待大模型能够成为下一个电动车,作为代表中国的新兴产业,在世界范围内掀起狂澜。

然而主流的MoE架构大模型,却苦于其结构上的“先天不足”:巨大的硬件成本与多重拖累效率的环节,使得中国企业在这场芯片堆砌与效率挖掘的苦径上难以提速。

作为智能基础设施提供商,华为在这场战役中另辟蹊径,利用其在数学算法和工程领域的深厚积累,为DeepSeek显著提升了效率及用户体验。

山就在那里,但中国企业找到了不一样的登顶之路。

近期,虎嗅将打造《华为技术披露集》系列内容,全面揭秘超大规模MoE模型推理部署技术,通过一连串的技术报告,首次全面披露技术细节。

希望本系列内容能为业界起到参考价值,也希望更多人能与华为一起,共同打造长期持续的开放协作生态环境,让昇腾生态在中国茁壮成长。

《华为技术披露集》系列 VOL.3 :投机推理

随着以DeepSeek V3/R1为代表的超大规模MoE模型走向主流,如何对如此超高参数量的模型进行推理优化,成了业界普遍关注的议题。

作为目前普遍采用的大模型推理加速技术之一,投机推理为大模型生成推理草稿,一次生成多个token,但面临调度时延过高,算力浪费的问题,就此华为团队提出投机推理框架 FusionSpec,持续提升 MTP 投机在昇腾上的推理性能,使其调度耗时从10ms降为1ms。

而作为另一加速推理的技术,量化技术是DeepSeek模型采用FP8进行训练的核心,而推理时采用Int8部署,亟需突破FP8到int8的无损量化,为此华为团队也提出了OptiQuant量化框架和算法,让INT8性能可以打平FP8。

下面就分别介绍华为团队的这两个创新技术。

高吞吐推理投机

昇腾超大规模MoE模型推理的加速利器

在大语言模型(LLMs)的应用中,推理速度是影响用户体验和应用效率的关键因素。(回想下你一直苦等结果的时候)

传统的自回归解码方式,每次仅能生成一个输出 token,且需将历史输出作为输入进行下一步解码,导致推理过程串行、效率低下。

为解决这一问题,投机推理技术应运而生。投机推理(Speculative Inference),也被称为推测性解码,其核心思想是利用计算代价远低于大模型的小模型,先行对后续可能的输出进行猜测,然后由大模型对这些猜测结果进行验证,从而实现并行化推理,提升整体推理速度。

打个比方,就像你写作文时,先在草稿纸上列几个可能的句子(小模型猜测),再挑出合适的句子写到作文里(大模型验证),写错了就擦掉重写(回退修正)。这种 “先试错再优化” 的思路,让大模型能更快、更准地给出回答。现有的投机推理技术,为以下几种类型:

独立草稿生成(Independent Drafting):在这种方式下,小模型独立运行,对大模型未来可能生成的多个 token 进行预测,形成候选序列。

自我草稿生成(Self - Drafting):自我草稿生成是一种相对新颖的方式,它利用大模型自身的某些机制或中间层输出来生成候选 token。

树形验证(Token Tree Verification):当小模型生成多个候选序列后,将这些序列组织成树形结构,可有效减少冗余存储开销。SpecInfer 提出的树形注意力(Tree Attention)计算方法是树形验证的典型代表。

投机推理面临的困难,主要在于以下两方面:

其一是推测准确性与草稿生成效率的权衡。小模型的主要任务是快速生成可能的输出,但这往往与生成结果的准确性相矛盾。需要在这两者之间找到最佳平衡点。

其二是批处理推理场景的适配问题。在实际应用中,批处理推理可以提高系统的整体吞吐量。然而,投机推理技术在批处理场景下的应用并不简单。投机推理本质上来说是用空闲的算力换取更高的吞吐,需要处理好投机模型和投机框架引入的耗时,不然无法发挥投机推理在批处理场景下的加速潜力。

针对投机推理在模型解码阶段的高计算密度、天然匹配昇腾高计算带宽比的特点,为了充分发挥这一优势,在低时延大并发场景下实现高吞吐,解决上面提到的诸多问题,华为团队提出了投机推理框架 FusionSpec 深度优化 MTP 在昇腾上的推理性能,框架耗时从10ms优化至小于1ms,其主要特性为:投机框架优化、投机场景算子优化。

先看前者。

为了充分发挥昇腾的计算能力,减少 NPU 的空闲时间,团队对投机推理的框架进行了优化:

1. 考虑 DeepSeek 的模型架构,MTP 层需要主体模型的最后一层结果作为输入,将 MTP 层的执行直接排在主体模型执行之后。

· 优化后的调度顺序避免了推理的步间数据传输

· 同时在 PD 分离的部署场景下也有效减少了节点间的数据传输。

2. 参考 MTP 层训练模式,将 MTP 层视为模型的一部分,注意力算子复用主体模型的控制参数。参数复用省去了控制参数的重新构造,降低了框架耗时。

华为是怎么让大模型提速的?

通过优化点1和2,团队压缩了单步推理内主体模型与投机模型间的框架耗时,实现了较低时延下的高并发、大吞吐。为了进一步压缩框架内的前后处理耗时,无论是 Multi-step 还是前后处理全异步方案,都需要提供投机场景昇腾上的轻量步间准备能力。

华为是怎么让大模型提速的?

3. 团队通过 NPU 上的轻量步间准备,实现了 MTP 场景下的 CPU 单次准备、NPU 多次推理,进一步降低了步间的框架耗时。

再看另一点,投机场景算子优化。

为了在投机推理开启时进一步发挥昇腾的计算能力,压缩端到端时间,团队对采样操作以及投机场景的多头潜在注意力(MLA)计算进行了优化。

未来,投机推理的发展方向有三点。

首先是多头投机。DeepSeek V3 在训练中使用了多层 MTP,并开源了第一层 MTP 的权重。团队利用轻量的算子,使用该层 MTP 权重,实现了对复数 token 的自回归预测。当然,也可以使用多层 MTP 进行复数 token 的投机,未来华为会对此进行支持。

其次是拒绝采样的昇腾适配加速。投机 token 的接受率直接决定了投机推理的收益上限。在保证主体模型生成概率不变的情况下,提升投机的接受率是进一步提升 FusionSpec 的关键所在。

当前 FusionSpec 采用直接判定主体生成的 token 与投机 token 是否一致这一基本方案。该方案的优势在于无需维护投机 token 的生成概率,但其接受率在模型的信息熵较大时较低。

但事实上,只要投机模型的 token 生成概率接近主体模型的生成概率时,就应当尽可能接受投机 token 。Rejection Sampling 方案就基于投机模型的生成概率,提升了投机 token 的接受率,但也同时极大增加了 PD 分离场景下节点间的数据传输量和 decode 步骤间的数据维护量。为此,团队将进一步优化FusionSpec 框架:1)增量维护 decode 阶段的概率矩阵;2)优化昇腾算子提升计算效率。

最后是采样优化。采样操作一般包含温度、TopK、TopP 三步,其中 TopK、TopP 朴素算法需对长度为词表大小(在 DeepSeek V3 模型中为 129280)的概率表进行排序、计算前缀和,是采样操作的瓶颈。未来可以采用流式过滤策略、利用昇腾归并排序API,优化TopK、TopP的计算,避免全量排序、全量前缀和。

OptiQuant量化框架和算法

加速昇腾大模型MoE推理性能

大模型量化技术是一种用于减少AI模型大小和提高其运行效率的技术。

通过量化,模型的权重从高精度的浮点数转换为比特数更少的整数或浮点数表示,从而减少模型的存储需求、带宽和计算量。将模型权重、激活值、以及KV cache量化为低精度格式(如INT4或INT8)成为缓解资源约束、优化部署效率的关键手段,能够在大幅压缩显存占用的同时尽量保留模型的原始能力,使得诸如DeepSeek类的大模型的高效部署成为可能。

现有的大模型量化技术可以分为两类:激活值无感的权重量化和激活值感知的量化。经典的量化不需要使用校准技术,不依赖于大模型的输入数据及其分布,而直接对模型参数进行量化。Qserve提出一种双阶段量化策略,针对W4A8量化场景,基于截断范围参数和缩放系数优化int4参数;HQQ提出基于Lp-范数的稀疏优化模型调整量化的缩放系数和偏移量。

激活值感知的权重量化算法需要通过校准集逐层生成对应的激活值。该激活值可以被用来分析异常值分布,进而设计量化算法及参数。在异常值抑制算法中,可以根据校准集的性质设计算法将校准集的激活数据平滑化,使真实数据的激活值更容易量化。由于校准集的统计特性反映了真实数据的统计特性,因此,校准集的选取至关重要。SmoothQuant通过构造数学等价变换,使能激活值的channel维度缩放。

然而存在Channel维度的数值缩放无法充分抑制异常值,OstQuant采用了channel维度缩放和正交旋转相结合的异常值抑制技术。GPTQ通过二阶Hessian信息对剩余权重进行矫正,补偿量化引入的误差,从而最小化量化前后模型的输出差异。该方法存在泛化性能力不足的问题。

为什么要研究大模型量化技术?

DeepSeek等大模型的出现给昇腾系统带来了新的问题:

其一,基于BF16的DeepSeek需要1.3TB的显存空间,同时导致极大的算力和跨机通信开销。

其二,校准集的泛化性缺失导致了在很多任务上难以达到与原有模型相近的精度水平,甚至在某些场景下精度下降十分严重。

其三,如何设计昇腾亲和的量化算法,以发挥硬件性能。激活无感的权重量化导致参数量化时无法考虑激活的异常值分布,在低比特量化时造成了推理精度损失;激活感知的权重可以通过数据校准实现精度补偿,然而过度补偿导致了部分数据集精度偏高,部分数据集精度偏低。

此外,一些伪量化算法的反量化实现在分离式架构上会导致多次访存,带来性能下降。

为了应对上述挑战,团队提出了OptiQuant量化框架,并设计了创新算法和算子,在保证模型精度的同时显著提升推理效率:

层间自动混精:基于模型权重的四分位极差统计,动态选择最优量化策略。

混合校准:利用多样化校准数据增强泛化性,确保关键业务的高精度。

离群值转移:通过数学等价变换,将激活中的导致量化误差的离群值转移到参数。

可学习截断阈值:逐层最小化量化MSE,求解最优截断系数以降低整数量化误差。

SSZW算法:采用梯度下降法依次迭代优化缩放因子(s)、零点偏移(z)及量化权重(W);

昇腾亲和的量化算子:根据昇腾Cube和Vector分离、内存总线、集群互联的硬件特征,设计相应的硬件友好的算子,极大发挥硬件计算能力。

具体的解决方案如下:

OptiQuant是一个基于华为昇腾芯片模型量化算法的精度解决方案。除了支持业界主流量化算法功能之外,它新增支持以下三个功能:

1. 支持接入自定义量化算法和数值类型,可以将多种量化算法的自由组合搭配使用;

2. 支持业内主流评测数据集和用户自定义的数据校准集;

3. 支持数据并行和流水并行,针对不同大小的大语言模型实现精度验证性能加速。

华为是怎么让大模型提速的?

图:OptiQuant量化整体框架

如图所示,OptiQuant框架主要由以下几个模块组成:

1. 量化类型和数值类型:OptiQuant支持了Int2/4/8和FP8/HiFloat8等数据类型,支持业界的Qserve,HQQ,LUT等量化方法,在此基础上提出了可学习截断和量化参数优化等算法,进一步减少了量化误差。

2. 多样化测试数据集和用户自定义校准集:OptiQuant支持了判断题,问答题,代码题和数学题等多种测试类别,语种上支持了十种常见语言。此外,OptiQuant支持用户自定义校准集,提升模型量化过程中的泛化性。

3. 量化权重生成:OptiQuant提出了自适应层间混精算法,并且根据对应的量化配置生成对应的权重参数,通过去冗余技术减少参数保存的参数量;OptiQuant进一步提出了FlexSQ等算法,在数据校准过程中,对大模型激活异常值进行了平滑处理,有助于对激活做低比特量化。

基于Atlas 800I A2服务器的精度测试结果如下:对于DeepSeek-V3-0324模型,W8A8C16和W4A8C16均采用Per-channel量化,实现推理精度与FP8-GPU持平。

华为是怎么让大模型提速的?

华为是怎么让大模型提速的?

通过OptiQuant和相关优化算法,实现了W8A8C16/W4A8C16的模型精度持平FP8的模型精度,并充分发挥了昇腾硬件性能。

在后续的研究中,团队将探索PD差异量化、KV cache量化、TopK专家剪枝、通用的等价变换建模、和量化微调等方向,实现更高效、更低比特的权重、激活和KV cache的量化模型推理技术:

PD差异量化:由于大模型Prefill阶段和Decode阶段具有不同的计算和访存特性,并且对误差的容忍程度不同,可以对PD设计差异化的量化策略,极致平衡大模型的推理性能和精度。

多维度异常值抑制算法:对于前文所述的各类量化算法,如通道维度缩放、矩阵旋转变换、数值截断、量化参数寻优等,可通过上述模型进行合并和统一。基于逐层误差或端到端的量化误差作为训练损失函数,学习得到各策略下的最优参数值,可进一步提升方案的量化精度。

KV cache/MLA全量化:KV cache量化技术可以进一步降低显存,使能大batch场景,提升推理吞吐性能。然而,DeepSeek-V3架构的Cache共享机制使得上述量化方式失效。因此,需要设计切实可行的KV cache量化方案,进一步压缩Cache显存。此外,采用MLA全量化可以利用Cube-Core算力,降低推理时延。

量化微调:量化微调是一类常用的量化保精方法,针对DeepSeek-V3架构,量化微调一方面需要解决相比后训练量化(PTQ)技术更加高效资源利用率,另一方面为了避免模型因过拟合部分任务而牺牲通用能力,需要构建更加全面的指令微调数据集,兼顾模型在各个领域上的能力。

专家剪枝:在DeepSeek-V3架构下,可以设计合适的专家剪枝策略,在模型量化的基础上进一步提升参数压缩率,降低数据的通信量和计算量,提升推理性能。

能够实现高吞吐的投机推理和低比特实现足够精度运算的量化技术,是超大规模MoE模型推理部署中的技术难点,华为团队通过推出基于昇腾的FusionSpec投机推理框架以及OptiQuant量化框架,给出了全新的解决方案和思路,相信这两个技术会对大模型推理技术的发展产生巨大的推动作用,同时给用户带来更流畅的体验。

阅读
分享

发表评论

快捷回复:

评论列表 (暂无评论,75058人围观)参与讨论

还没有评论,来说两句吧...