【量化】Post-training quantization for vision transformer.

摘要

基本上,量化任务可被视为分别为权重和输入寻找最优的低比特量化区间。为了保持注意力机制的功能性,我们在传统的量化目标中引入了一种排序损失(ranking loss),旨在量化后保持自注意力结果的相对顺序。此外,我们深入分析了不同层的量化损失与特征多样性之间的关系,并通过利用每个注意力图和输出特征的核范数,探索了一种混合精度量化方案。

文章目录

Introduction

本文研究了面向视觉Transformer模型的后训练量化方法,采用混合精度以实现更高的压缩率和加速比 。我们将Transformer中的量化过程形式化为一个优化问题,旨在寻找最优的量化区间。

具体而言,我们的目标是最大化全精度输出与量化输出之间的相似性。为了更好地保留注意力机制的功能,我们深入分析了注意力层与传统层(如多层感知机MLP)之间的差异。随后,引入了一种排序损失(ranking loss),以保持注意力值的相对顺序。

此外,我们提出根据特征多样性确定各层的位宽,即通过注意力图和输出特征计算核范数。我们交替搜索所有层中权重和输入的量化区间,以获得最佳的量化效果。此外,引入偏置校正以减少累积量化误差。在多个基准数据集上的实验结果表明,我们所提出的算法在性能上优于当前最先进的后训练量化方法。

3 Methodology

在本节中,我们详细阐述针对视觉Transformer提出的混合精度训练后量化方案。具体介绍了面向全连接层的相似度感知量化方法,以及面向自注意力层的排序感知量化方法。此外,还引入了用于优化的偏置校正方法,以及基于注意力图与输出特征核范数的混合精度量化策略。

3.2 Optimization for Post-Training Quantization

第一部分:线性操作的相似度感知量化 (Similarity-Aware Quantization)

文本首先关注 Transformer 层中的线性操作(Linear Operations),这包括多头注意力中的线性投影(MSA)和前馈神经网络(MLP)。

原始输出公式为:
O l = X l W l O_l = X_l W_l Ol=XlWl

其中 X l X_l Xl 是输入, W l W_l Wl 是权重。

量化后的输出 O ^ l \hat{O}_l O^l 涉及对权重和输入进行量化和反量化操作。文本指出,量化区间( Δ \Delta Δ)实际上控制了量化过程中的截断阈值 。如果 Δ \Delta Δ 选得不好,量化后的特征图与原特征图之间的差异(相似度)就会很大。

我们的动机在于优化权重 Δ W l \Delta _W^l ΔWl 和输入 Δ X l \Delta _X^l ΔXl 的量化区间,以提升 O l O^l Ol 与其估计值 O ^ l \widehat{O}^l O l 之间的相似度,其中输入 X l X^l Xl 源自一个具有 N N N 个样本的给定校准数据集。具体而言,该校准数据集的大小远小于常规的训练数据集。在第 l l l 个 Transformer 层中,相似度感知的量化可形式化为

优化目标

其中, Γ ( O i l , O ^ i l ) Γ(O_i^l, \hat{O}_i^l) Γ(Oil,O^il) 表示原始输出特征图与量化后输出特征图之间的相似度。在本文中,我们采用皮尔逊相关系数作为相似度的度量标准。

作者的目标是优化权重量化区间 Δ W l \Delta W_l ΔWl 和输入量化区间 Δ X l \Delta X_l ΔXl ,以最大化原始输出 O l O_l Ol 与量化输出 O ^ l \hat{O}_l O^l 之间的相似度

数学表达为优化问题:
max ⁡ Δ W l , Δ X l 1 N ∑ i = 1 N Γ ( O l i , O ^ l i ) \max_{\Delta W_l, \Delta X_l} \frac{1}{N} \sum_{i=1}^{N} \Gamma(O^i_l, \hat{O}^i_l) ΔWl,ΔXlmaxN1i=1∑NΓ(Oli,O^li)

约束条件: Δ W l , Δ X l ∈ R + \Delta W_l, \Delta X_l \in \mathbb{R}_+ ΔWl,ΔXl∈R+(即量化区间必须为正数)。

相似度度量:皮尔逊相关系数

文本采用**皮尔逊相关系数(Pearson Correlation Coefficient)**作为相似度度量 Γ \Gamma Γ。

  • 为什么用这个? 皮尔逊相关系数衡量的是两个变量之间的线性相关程度。在量化中,我们不仅希望数值接近,更希望特征图的"分布形状"和"相对关系"保持一致。相关系数为 1 表示完全正相关,即两者变化趋势完全一致。

第二部分:自注意力的排名感知量化 (Ranking-Aware Quantization)

自注意力(Self-Attention)是 Transformer 的核心,它计算序列中所有位置之间的全局相关性。

  • 现象 :文本通过实验发现(参考 Fig 1),量化后,注意力图(Attention Map)中值的相对顺序(Rank)发生了改变
  • 后果:即使数值差异很小,如果关键位置(权重最大的位置)的排名变了,模型就会"看错"重点,导致性能显著下降。
解决方案:引入排名损失 (Ranking Loss)

为了解决这个问题,作者在优化目标中引入了一个排名损失项(Ranking Loss)

新的优化目标公式:
max ⁡ Δ W l , Δ X l 1 N ∑ i = 1 N Γ ( O l i , O ^ l i ) − γ ⋅ L r a n k i n g \max_{\Delta W_l, \Delta X_l} \frac{1}{N} \sum_{i=1}^{N} \Gamma(O^i_l, \hat{O}^i_l) - \gamma \cdot L_{ranking} ΔWl,ΔXlmaxN1i=1∑NΓ(Oli,O^li)−γ⋅Lranking

这里有两个竞争目标:

  1. 最大化相似度(第一项):保持输出特征的整体一致性。
  2. 最小化排名损失(第二项):保持注意力权重的相对顺序。

γ \gamma γ 是一个权衡超参数,用于平衡这两个目标的重要性。

排名损失的定义 ( L r a n k i n g L_{ranking} Lranking)

L r a n k i n g = ∑ h , k ∑ i = 1 w − 1 ∑ j = i + 1 w Φ ( ( A ^ k i − A ^ k j ) ⋅ sign ( A k i − A k j ) ) L_{ranking} = \sum_{h,k} \sum_{i=1}^{w-1} \sum_{j=i+1}^{w} \Phi((\hat{A}{ki} - \hat{A}{kj}) \cdot \text{sign}(A_{ki} - A_{kj})) Lranking=h,k∑i=1∑w−1j=i+1∑wΦ((A^ki−A^kj)⋅sign(Aki−Akj))

  • 解释
    • A A A 是原始注意力图, A ^ \hat{A} A^ 是量化后的注意力图。
    • sign ( A k i − A k j ) \text{sign}(A_{ki} - A_{kj}) sign(Aki−Akj) 判断原始图中位置 i i i 和 j j j 的大小关系。
    • ( A ^ k i − A ^ k j ) (\hat{A}{ki} - \hat{A}{kj}) (A^ki−A^kj) 是量化后的大小关系。
    • 如果两者符号相反(即顺序颠倒了),或者差距不够大,损失函数 Φ \Phi Φ(铰链损失 Hinge Loss)就会产出正值。
    • 目的:惩罚那些在量化后发生了顺序反转或排序错误的情况,强制模型保留原始注意力图的"排名结构"。

算法实现:交替搜索策略

为了求解上述复杂的优化问题,文本提出了一种简单高效的交替搜索方法(Alternating Search Method)

  1. 初始化

    • Δ W l \Delta W_l ΔWl(权重区间)初始化为权重的最大值。
    • Δ X l \Delta X_l ΔXl(输入区间)初始化为输入的最大值。
    • 这是基于经验,因为最大值通常能覆盖大部分数据分布。
  2. 交替优化

    • 步骤 1 :固定输入量化区间 Δ X l \Delta X_l ΔXl,优化权重量化区间 Δ W l \Delta W_l ΔWl。
    • 步骤 2 :固定权重量化区间 Δ W l \Delta W_l ΔWl,优化输入量化区间 Δ X l \Delta X_l ΔXl。
    • 重复步骤 1 和 2,直到目标函数收敛或达到最大迭代次数。
  3. 搜索策略

    • 搜索空间被线性划分为 C C C 个候选选项,范围在 [ α Δ l , β Δ l ] [\alpha \Delta_l, \beta \Delta_l] [αΔl,βΔl] 之间( α , β \alpha, \beta α,β 是缩放系数,如 0.5 到 1.5,用于扩展原始最大值形成的区间,以寻找更好的边界)。
    • 在这 C C C 个候选值中进行简单的搜索,找到使目标函数最优的那个 Δ \Delta Δ。
为什么这个方法重要?
  1. 针对性强 :传统的量化方法通常只关注数值误差(如 MSE),但 Transformer 对结构信息(如注意力的排名)非常敏感。该方法明确指出了这一点并加以解决。
  2. 双管齐下
    • 对于线性层 ,关注整体特征的相关性(Similarity)
    • 对于注意力层 ,关注决策依据的顺序(Ranking)
  3. 计算效率高:提出的交替搜索策略避免了复杂的梯度下降,仅需简单的搜索和固定变量优化,适合在实际部署中进行离线量化校准。
潜在疑问解答
  • Q: 为什么不用梯度下降直接优化 Δ \Delta Δ?

    • A: 量化操作(Quants/Dequants)通常是不可微的(非连续),导致梯度无法直接回传。因此,作者采用了基于搜索(Search-based)的方法,这在量化领域是一种常见且有效的技巧(如 QDrop, SmartQuant 等思路类似)。
  • Q: 校准数据集很少怎么办?

    • A: 文本提到校准数据集 D D D 远小于训练数据集。由于使用的是基于统计特性的相似度相关系数和排名损失,少量的代表性数据通常足以捕捉分布特征,不需要全量数据。
  • Q: γ \gamma γ 参数怎么调?

    • A: γ \gamma γ 控制排名损失的权重。如果 γ \gamma γ 太大,模型可能过于关注顺序而忽略数值精度;如果太小,则无法纠正注意力顺序错误。通常需要通过验证集进行超参数搜索。

这段文字描述了一种先进的 Transformer 量化框架。它不再盲目地最小化量化误差,而是语义驱动地优化量化参数:

  1. 数值层面,通过最大化皮尔逊相关系数,保证特征图的统计相似性。
  2. 结构层面,通过最小化排名损失,保证注意力机制中关键信息的相对顺序不被破坏。

这种方法通过交替优化权重和输入的量化区间,能够在保持极低精度的同时,最大限度地保留 Transformer 模型的性能。

3.3 Mixed-Precision Quantization for Vision Transformer

我们探索混合精度量化,其中为更敏感的层分配更多的位,以保留性能。考虑到变换器层的独特结构,我们为 MSA 或 MLP 模块中的所有操作分配相同的位宽。这也有利于硬件实现,因为权重和输入都被分配了相同的位宽。

奇异值分解 (Singular value decomposition, SVD) 是线性代数中一种重要的矩阵分解方法。它处理一个基因表达数据的矩形矩阵,其表述可以写为: M = U Σ V M = UΣV M=UΣV

其中,Σ 的对角线元素 σ i = Σ i i σ_i = Σ_{ii} σi=Σii 被称为矩阵 M 的奇异值。核范数是奇异值之和,反映了矩阵的数据相关性。

在本文中,我们提出通过 MSA 模块中注意力图以及 MLP 模块中输出特征的核范数来估计 Transformer 层的敏感度。

核范数可用于缩减混合精度设置的搜索空间,从而为对模型更敏感的层分配更高的位宽,反之则为对模型较不敏感的层分配更低的位宽。

受文献 [10] 中方法的启发,我们采用帕累托前沿方法Pareto frontier来确定位宽。其主要思想是依据以下指标,根据各候选位宽配置所引起的总二阶扰动大小,对每个候选位宽配置进行排序:

给定目标模型规模,我们根据候选位宽配置的 Ω 值对其进行排序,并选择具有最小 Ω 值的位宽配置。各 Transformer 层中注意力图和输出特征的核范数如图 1 所示。可以看出,它们在不同 Transformer 层中呈现出多样性。

5 Conclusion

在本文中,我们提出了一种针对视觉Transformer的新型训练后量化方案,其中:

  • (1)各层的位宽基于Transformer层中注意力图的核范数和输出特征而动态变化。
  • (2)为解决量化带来的优化问题,我们提出搜索最优量化区间,以在量化特征图与原始特征图之间保持相似度。
  • (3)此外,我们深入分析了注意力层与传统卷积层之间的差异,并引入排序损失,以保持注意力值的相对顺序。
相关推荐
圣殿骑士-Khtangc4 小时前
深入浅出 Hermes Agent 架构:一个自进化 AI Agent 的设计哲学
人工智能
小当家.1054 小时前
Codex + SSH 远程运维实战:让 AI 管你的云服务器
运维·服务器·人工智能·ssh·codex·ai-coding
1368木林森4 小时前
RAG查询改写②【第十篇】:HYDE、StepBack、子问题拆分,高阶改写算法生产落地
人工智能·算法·rag
逆境不可逃4 小时前
【与我学 ClaudeCode】工具与执行篇:从 0 到 1 拆解 Agent Loop 与 Tool Use 的极简设计哲学
人工智能·学习·agent·claudecode
cd_949217214 小时前
星思半导体:深耕芯片研发,助力卫星互联网产业高质量发展
网络·人工智能
xiaoxiaoxiaolll4 小时前
Light首次发表:动量空间穆勒矩阵偏振测量,破解纳米手性结构表征难题
人工智能·算法
kishu_iOS&AI4 小时前
NLP —— Transformer底层源码剖析(解码器部分+输出)
人工智能·自然语言处理·transformer
迦南的迦 亚索的索4 小时前
机器学习_01_基础
人工智能·机器学习
百珏4 小时前
AI 应用技术演进串讲大纲
人工智能·后端·架构