0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

首个Mamba系列模型量化方案MambaQuant解读

后摩智能 来源:后摩智能 2025-03-05 11:10 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

MambaQuant在Mamba系列模型上实现了W8A8/W4A8量化的方法,精度逼近浮点,超过Quarot等SOTA方法。该工作已被人工智能顶会ICLR-2025接收。

Abstract

Mamba是一种高效的序列模型,可与Transformer相媲美,在各类任务中展现出作为基础架构的巨大潜力。量化技术常用于神经网络,以减小模型大小并降低计算延迟。然而,将量化应用于Mamba的研究尚少,现有的量化方法虽然在CNN和Transformer模型中效果显著,但对Mamba模型却不太适用(例如,即使在W8A8配置下,QuaRot在Vim-T模型上的准确率仍下降了21%)。我们率先对这一问题展开探索,并识别出几个关键挑战。

首先,在门投影、输出投影和矩阵乘法中存在大量异常值。其次,Mamba独特的并行扫描操作进一步放大了这些异常值,导致数据分布不均衡且呈现长尾现象。第三,即使应用了Hadamard变换,权重和激活值在通道间的方差仍然不一致。为此,我们提出了MambaQuant,这是一种训练后量化(PTQ)框架,包含:1)基于Karhunen-Loève变换(KLT)的增强旋转,使旋转矩阵能适应不同的通道分布;2)平滑融合旋转,用于均衡通道方差,并可将额外参数合并到模型权重中。

实验表明,MambaQuant能够将权重和激活值量化为8位,且基于Mamba的视觉和语言任务的准确率损失均小于1%。据我们所知,MambaQuant是首个针对Mamba系列模型的综合性PTQ设计,为其进一步的应用发展奠定了基础。

•论文链接:https://arxiv.org/abs/2501.13484

•单位:后摩智能、哈尔滨工业大学(深圳)、南京大学、东南大学

Introduction

为了建立一套针对Mamba模型的综合量化方法,我们首先研究其中涉及的潜在限制和挑战:

Mamba模型的权重和激活值中都存在显著的异常值。我们观察到,线性层的权重中存在异常值,尤其是在用于语言任务的 Mamba-LLM 的门投影层(图1a)中。我们还发现,线性层的某些输入在通道维度上表现出显著的方差。这种情况在用于视觉任务的 Vim 的输出投影层(图1b)中尤为明显。

并行扫描(PScan)进一步放大了激活值的异常值。为了在每个时间戳获得隐藏状态,PScan算子(Smith等人,2022)会对一个固定的参数矩阵不断进行自乘运算。在这种情况下,值较高的通道会被放大,而值相对较低的通道则会被削弱。这种通道间明显的数值差异会直接扩展到激活值上(例如,如图1(c)所示的矩阵乘法的输入变量,以及图2所示)。

be6a0ce0-f8a5-11ef-9310-92fbcf53809c.png

be79d9ea-f8a5-11ef-9310-92fbcf53809c.png

最近,基于 Hadamard 的方法因其能够使最大值均匀化以及具有等价变换特性,在 Transformer-based LLMs (T-LLMs) 的量化中取得了显著成功。例如,使用 QuaRot 将 LLAMA2-70B 量化为 4 位时,能保持 99% 的零样本性能。然而,将这种方法直接应用于 Mamba 模型会导致准确率大幅下降(例如,即使在 8 位量化的情况下,在 Vim上平均准确率仍然下降超过 12%)。

为了解决上述问题,我们发表了MambaQuant这篇文章,(据我们所知)这是首个在Mamba系列模型上实现了高准确率W8A8/W4A8量化的工作,主要贡献包括:

a. 在离线模式下,我们提出基于 Karhunen - Loève 变换(KLT)的增强旋转。此技术将 Hadamard 矩阵与 KLT 矩阵相乘,使旋转矩阵能够适应不同的通道分布。

b. 在在线模式下,我们引入平滑融合旋转。这种方法在 Hadamard 变换之前进行平滑处理。额外的平滑参数被灵活地整合到 Mamba 模块的权重中,以避免额外的内存空间和推理步骤成本。

因此,量化数据的最大值和方差在通道维度上都得到了充分对齐,方法效果如图3所示:

be8afd24-f8a5-11ef-9310-92fbcf53809c.png

实验表明,MambaQuant 能够高效地将权重和激活值量化为8位,且在基于Mamba的视觉和语言任务上,准确率损失均小于1%。

be9a2a10-f8a5-11ef-9310-92fbcf53809c.png

Method

对Hadamard旋转效果不佳的分析

我们发现,该方法无法对齐量化变量的通道方差,从而忽略了不同通道之间的分布一致性。详细来说,给定一个中心化的数据矩阵(矩阵的列均值为零)X(权重或激活值),其维度为(n, m),以及维度为(m, m)的Hadamard变换矩阵H,变换后的矩阵XH的协方差矩阵可以表示为:

beac00f0-f8a5-11ef-9310-92fbcf53809c.jpg

协方差矩阵的第l个对角元素可以表示为:

beb50fd8-f8a5-11ef-9310-92fbcf53809c.jpg

对于给定的l值,公式(2)表示第l个通道的方差。由于向量随l变化,在大多数情况下无法证明通道方差在数值上接近。此外,考虑到H是一个固定矩阵,而K和λ都取决于输入,在所有情况下,Hadamard变换都不可能统一调整通道方差。Hadamard变换的这一特性不可避免地为每个通道形成了不同的分布,从而导致次优的量化效果。

KLT增强旋转

为了克服上述限制,我们引入了KLT来均衡通道方差。KLT识别数据中的主成分,并将数据投影到这些成分上,通过关注方差最大的方向来保留每个通道的最关键信息。在实际应用中,Mamba权重和激活值的均值通常接近于零,满足KLT的适用条件。具体而言,我们对由校准数据得到的中心化矩阵X的协方差矩阵进行特征值分解来应用KLT:

bec032aa-f8a5-11ef-9310-92fbcf53809c.jpg

接下来,如公式(4)所示,通过将KLT应用于Hadamard矩阵H,可以得到KLT增强旋转矩阵:

becd9ef4-f8a5-11ef-9310-92fbcf53809c.jpg

在公式(4)基础上,公式(1)可因此转化为公式(5):

bedf3c54-f8a5-11ef-9310-92fbcf53809c.jpg

而公式(2)可变为公式(6):

bee950ea-f8a5-11ef-9310-92fbcf53809c.jpg

这样,每个通道的方差变得相同,使得量化变得容易得多。这种变换具有双重目的:它不仅均衡了不同通道之间的方差,还体现了KLT矩阵与Hadamard矩阵的独特属性,后者能够平衡最大值。在实践中,KLT是离线执行的,以避免额外的计算成本。为了将这种KLT增强的旋转矩阵应用于Mamba结构,我们修改了QuaRot中的离线变换。如图5所示,我们将此策略应用于LoRA模块和层间连接(其中输出投影、门投影和状态投影被变换)。

bef89b5e-f8a5-11ef-9310-92fbcf53809c.png

Smooth对齐旋转

为了在在线旋转中实现通道方差对齐,我们在执行在线Hadamard旋转之前引入了平滑(smooth)技术。采用这种方法的动机是通过一个平滑向量来使通道方差均匀化。通常,平滑因子可以被吸收到量化层的相邻层中例如SmoothQuant, OmniQuant。这种操作有效地避免了因引入额外参数而产生的额外内存分配和计算开销需求。然而,这种方法在Mamba模块中并不完全适用,这是由于非逐元素的SiLU操作以及PScan的复杂循环结构。为此,我们分别针对输出投影和矩阵乘法提出了两种不同的设计。

bf047258-f8a5-11ef-9310-92fbcf53809c.png

对于输出投影层:我们提出S - SiLU,改进了传统的SiLU激活函数,以满足平滑融合量化的需求:

bf150f96-f8a5-11ef-9310-92fbcf53809c.jpg

如图6(a)所示,S - SiLU函数在门投影上的应用可以表示为如下公式:

bf2183a2-f8a5-11ef-9310-92fbcf53809c.jpg

对于矩阵乘法层:如图6(b)所示,平滑参数s可以被自然的吸收到权重B和权重C中,然而A矩阵会在推理时执行多次的自乘运算,因此我们引入了计算友好的addcmul算子,仅对第一个时间步的A矩阵的运算做s参数的吸收融合,如公式(8)所示:

bf2d8d3c-f8a5-11ef-9310-92fbcf53809c.jpg

经过平滑处理后,输出投影和矩阵乘法的激活值的通道方差变得相对均匀。随后,我们针对Mamba结构修改并应用了在线Hadamard旋转,如图7所示。Hadamard矩阵H被动态地应用于输出投影和矩阵乘法的输入激活值,而转置后的H^T可以被吸收到相应的权重中。

Experiments

实验结果表明,MambaQuant 在 Mamba 系列模型上都取得了惊人的效果,表现超过Quarot,并远超其他的量化方案。例如其W8A8的精度在多种视觉语言的评估任务上都表现出小于1%的精度损失,其W4A8的量化也是实现了SOTA的效果。

be9a2a10-f8a5-11ef-9310-92fbcf53809c.png

值得一提的是,我们的通道方差对齐方法对精度有很明显的提升,该提升的可视化效果也十分显著,比如KLT:

bf43b828-f8a5-11ef-9310-92fbcf53809c.png

这项工作首次在Mamba模型上实现了高精度量化,为Mamba模型的高效部署和推理开辟了新的途径,尤其是边缘设备上。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 神经网络
    +关注

    关注

    42

    文章

    4827

    浏览量

    106797
  • 人工智能
    +关注

    关注

    1813

    文章

    49735

    浏览量

    261532
  • 模型
    +关注

    关注

    1

    文章

    3648

    浏览量

    51712
  • 后摩智能
    +关注

    关注

    0

    文章

    44

    浏览量

    1593

原文标题:后摩前沿 | MambaQuant:首个Mamba系列模型量化方案,精度近乎无损

文章出处:【微信号:后摩智能,微信公众号:后摩智能】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    解读模型FP量化的解决方案

    63.1 的分数,只比完整精度模型低了 5.8 分,且比之前的 SOTA 方法平滑量高出了 12.7,这是目前少数已知可行的 4-bit 量化方案了。
    发表于 11-24 11:15 1519次阅读
    <b class='flag-5'>解读</b>大<b class='flag-5'>模型</b>FP<b class='flag-5'>量化</b>的解决<b class='flag-5'>方案</b>

    瑞芯微模型量化文件构建

    模型是一张图片输入时,量化文件如上图所示。但是我现在想量化deepprivacy人脸匿名模型,他的输入是四个输入。该模型训练时数据集只标注
    发表于 06-13 09:07

    模型量化会带来哪些好处?

    量化算法具有什么特点?模型量化会带来哪些好处?
    发表于 09-28 06:32

    为什么量化caffe模型完,模型的input_shape被output_shape替换了?

    使用model_transform.py和model_deploy把caffe模型bf16量化成cvimodel,原模型的输入shape是3*112*112,输出是2*1*1,量化完测
    发表于 09-18 07:19

    INT8量化常见问题的解决方案

    一、int8的输出和fp32模型输出差异比较大 解决方案: 检查前后处理是否有问题,int8网络输入输出一般需要做scale处理,看看是否遗漏? 通过量化可视化工具分析int8的输出和fp32
    发表于 09-19 06:09

    可以使用已有的量化表作为输入来完成BModel模型量化吗?

    可以使用已有的量化表(比如 TensorRT 量化后得到的量化表)作为输入 来完成BModel模型量化吗?
    发表于 09-19 06:04

    【KV260视觉入门套件试用体验】Vitis AI 进行模型校准和来量化

    量化 七、Vitis AI 通过迁移学习训练自定义模型 八、Vitis AI 将自定义模型编译并部署到KV260中 铺垫 校准和量化有什么却别? 校准和
    发表于 10-15 10:51

    TensorFlow模型优化:模型量化

    大家都知道模型是有权重 (w) 和偏置 (b) 组成,其中 w,b 都是以 float32 存储的,float32 在计算机中存储时占 32bit,int8 在计算机中存储时占 8bit;模型量化
    的头像 发表于 02-04 15:40 2499次阅读
    TensorFlow<b class='flag-5'>模型</b>优化:<b class='flag-5'>模型</b><b class='flag-5'>量化</b>

    谈谈MNN的模型量化(一)数学模型

    最近调研了一些关于CNN网络量化的论文,结合之前基于MNN的使用感受,打算跟大家谈一谈MNN中的模型量化以及其相关的数学模型。本文可能关...
    发表于 02-07 12:22 2次下载
    谈谈MNN的<b class='flag-5'>模型</b><b class='flag-5'>量化</b>(一)数学<b class='flag-5'>模型</b>

    YOLOv8模型ONNX格式INT8量化轻松搞定

    深度学习模型量化支持深度学习模型部署框架支持的一种轻量化模型与加速模型推理的一种常用手段,ONN
    的头像 发表于 07-18 09:34 5623次阅读
    YOLOv8<b class='flag-5'>模型</b>ONNX格式INT8<b class='flag-5'>量化</b>轻松搞定

    Transformer迎来强劲竞争者 新架构Mamba引爆AI圈!

    作为通用序列模型的骨干,Mamba 在语言、音频和基因组学等多种模态中都达到了 SOTA 性能。在语言建模方面,无论是预训练还是下游评估,他们的 Mamba-3B 模型都优于同等规模的
    发表于 12-07 14:14 799次阅读
    Transformer迎来强劲竞争者 新架构<b class='flag-5'>Mamba</b>引爆AI圈!

    幻方量化发布了国内首个开源MoE大模型—DeepSeekMoE

    幻方量化旗下组织深度求索发布了国内首个开源 MoE 大模型 —— DeepSeekMoE,全新架构,免费商用。
    的头像 发表于 01-23 11:28 3976次阅读
    幻方<b class='flag-5'>量化</b>发布了国内<b class='flag-5'>首个</b>开源MoE大<b class='flag-5'>模型</b>—DeepSeekMoE

    深度学习模型量化方法

    深度学习模型量化是一种重要的模型量化技术,旨在通过减少网络参数的比特宽度来减小模型大小和加速推理过程,同时尽量保持
    的头像 发表于 07-15 11:01 1638次阅读
    深度学习<b class='flag-5'>模型</b><b class='flag-5'>量化</b>方法

    Mamba入局图像复原,达成新SOTA

    图像复原又来新突破了!还记得性能超越SwinIR(基于Transformer)的MambaIR吗?一种基于Mamba的图像复原基准模型,登上ECCV 2024。最近原作者又开发了新版本
    的头像 发表于 12-30 18:09 1617次阅读
    <b class='flag-5'>Mamba</b>入局图像复原,达成新SOTA

    NVIDIA Nemotron Nano 2推理模型发布

    NVIDIA 正式推出准确、高效的混合 Mamba-Transformer 推理模型系列 NVIDIA Nemotron Nano 2。
    的头像 发表于 08-27 12:45 1396次阅读
    NVIDIA Nemotron Nano 2推理<b class='flag-5'>模型</b>发布