【PTQ】Cross-Layer Equalization跨层均衡-证明和实践详细解读

本文对Cross-Layer Equalization跨层均衡进行解读,介绍符合规则的模型结构,阐述优化目标,通过公式推导解优化目标,还指出其存在只适合对称量化权重的PTQ方式、可能导致后量化效果差等限制和缺陷,最后展示实操结果,表明cle前后模型输出基本一致,权重更均衡。

Cross-Layer Equalization跨层均衡

aimet解读

符合规则的模型结构

  • 统一要求:单数据流,中间激活不流向其他地方
  • 概念说明:
    • Conv: gruoups=1的普通卷积,包括TransposedConv和Conv
    • DepthwiseConv: 深度可分离卷积,groups=in_channels, in_channels=out_channels。
  • cle均衡块:(相邻块的连接中间可能穿插Relu或者是Relu6等正缩放线性运算的算子)
    • Conv ==> Conv
    • Conv ==> DepthwiseConv ==> Conv
    • DepthwiseConv ==> Conv

优化目标

  • 前提说明:

    • 正缩放线性运算函数特性: f ( s x ) = s f ( x ) \begin{align} f(sx)=sf(x) \end{align} f(sx)=sf(x),relu/relu6等算子符合该特性
    • 我们优化的函数总是以cle均衡块:Conv ==> Conv作为基础的情况,使用函数可表达为如下的函数
      h = f ( W ( 1 ) x + b ( 1 ) ) y = f ( W ( 2 ) h + b ( 2 ) ) y = f ( W ( 2 ) f ( W ( 1 ) x + b ( 1 ) ) + b ( 2 ) ) \begin{align} h=&f(W^{(1)}x+b^{(1)}) \\ y=&f(W^{(2)}h+b^{(2)}) \\ y=&f(W^{(2)}f(W^{(1)}x+b^{(1)})+b^{(2)}) \end{align} h=y=y=f(W(1)x+b(1))f(W(2)h+b(2))f(W(2)f(W(1)x+b(1))+b(2))
    • 提出的优化目标和思路:
      • 出发点:cle的目的就是想要在模型推理结果不变的情况下,通过调整相连conv层的weight的每通道的权重,使得同一个weight的数值范围能够基本保持一致,这样能够让后续的per-layer量化效果能够和per-channel量化效果相当。
      • 思路:使用对角矩阵调整conv的每channel权重,使得该conv的每channel权重的数值范围range能够大致相同。而如何保证调整conv层权重后的模型推理运算结果不变,利用了正缩放线性运算函数特性。
    • 具体的权重调整公式如下所示:
      S = d i a g ( s i ) h = S f ( S − 1 W ( 1 ) x + S − 1 b ( 1 ) ) y = f ( W ( 2 ) S f ( S − 1 W ( 1 ) x + S − 1 b ( 1 ) ) + b ( 2 ) ) = f ( W ~ ( 2 ) f ( W ~ ( 1 ) x + b ~ ( 1 ) ) + b ( 2 ) ) \begin{align} S=&diag(s_{i}) \\ h=&Sf(S^{-1}W^{(1)}x+S^{-1}b^{(1)}) \\ y=&f(W^{(2)}Sf(S^{-1}W^{(1)}x+S^{-1}b^{(1)})+b^{(2)}) \\ =&f(\tilde{W}^{(2)}f(\tilde{W}^{(1)}x+\tilde{b}^{(1)})+b^{(2)}) \end{align} S=h=y==diag(si)Sf(S1W(1)x+S1b(1))f(W(2)Sf(S1W(1)x+S1b(1))+b(2))f(W~(2)f(W~(1)x+b~(1))+b(2))
    • 上述的推演公式可知如下的调整后的新的权重:
      • (9)公式:对应pre-layer(也就是第一个conv)的权重的调整,即对每output_channel上进行了对应的调整
      • (10)公式:对应cur-layer(也就是第二个conv)的权重的调整,即对每input_channel上进行了对应的调整
        W ~ ( 1 ) = S − 1 W ( 1 ) W ~ ( 2 ) = W ( 2 ) S b ~ ( 1 ) = S − 1 b ( 1 ) \begin{align} \tilde{W}^{(1)}=&S^{-1}W^{(1)} \\ \tilde{W}^{(2)}=&W^{(2)}S \\ \tilde{b}^{(1)}=&S^{-1}b^{(1)} \end{align} W~(1)=W~(2)=b~(1)=S1W(1)W(2)SS1b(1)
    • 具体的优化目标:
      • 理想情况下,对于同一个权重而言,希望每channel权重的range同整个权重的range相等。

      • 因此提出如下的优化目标:

        • r ~ i ( 1 ) \tilde{r}^{(1)}_{i} r~i(1):表示每channel通道权重的数值范围(都是按照对称量化进行衡量的
        • R ~ ( 1 ) \tilde{R}^{(1)} R~(1):表示每整个权重的数值范围
        • (13)公式:最终的优化目标,获得一个 S S S能够数值最大

        p ~ i ( 1 ) = r ~ i ( 1 ) R ~ ( 1 ) max ⁡ S ∑ i p ~ i ( 1 ) p ~ i ( 2 ) \begin{align} \tilde{p}^{(1)}_{i}=\frac{\tilde{r}^{(1)}_{i}}{\tilde{R}^{(1)}} \\ \mathop{\max}\limits_{S} \sum\limits_{i} \tilde{p}^{(1)}_{i} \tilde{p}^{(2)}_{i} \end{align}

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值