PARO
# 基础知识
# CogVideo & Transformer
CogVideo 采用了 3D full attention:把视频的每一帧都 concat 起来
# Self-Attention(单个 head)
X ~ [N, d] ---Linear---> Q, K, V ~ [N, d]
Attention Map: Attn = Softmax(Q*K / sqrt(d)) ~ [N, N]
Output: O = Attn*V ~ [N,d]
各部分计算复杂度:
- X -> Q, K, V:[N, d] 与 [d, d] 矩阵相乘 O (Nd^2)
- Q*K: [N, d] 与 [d, N] 矩阵相乘 O (N^2d)
- softmax:[N, N] O(N^2)
- Output:[N, N] 与 [N, d] 相乘 O (N^2d)
- FNN:[N, d] 与 [d, d] 相乘 O (Nd^2)
# multi-head self-attention
把 d 均分为多份,每一份经过一个独立的 head,最后的结果拼接起来重新得到 d,再经过一个线性层
复杂度与 single-head 是一致的
Transformer block:包含了 MHA FNN 残差连接 LayerNorm
head:MHA 中的单个注意力分支,有独立的 Q K V 权重矩阵
# 量化
W8A8:Weight and Activation 均量化到 8bits
量化方法:
# Paper
Main idea: 对 Attention Map 中出现的对角线结构进行重排序(reorder),按照 block 进行量化(每一个 block 有一个量化精度)
主要技术:
Reorder
- 为什么会有对角线的 pattern:local aggregation 3D full attention 把 frame height width 拼接在一起
- 感觉可以进一步探究每一种对角线的 pattern 在什么情况下会出现,具有什么意义
- 对 QK 进行 reorder(嵌入向量 d) - 矩阵乘法后自然 reorder - 对最终计算的 output 恢复 reorder 前的顺序
- ,一共有 3 个维度(frame height width),进行置换(permute),一共有 6 种 reorder 方案,对于不同的 QK(一个 head)选择哪一种呢?
- offline 预先决定好(应该指的是人工确定好方案)
- 因为观察到 attention head 中的 pattern 基本不会变化
- 也就是说每个 head 的 reorder 方案可以提前被唯一确定
- 为什么会有对角线的 pattern:local aggregation 3D full attention 把 frame height width 拼接在一起
如何确定每个 block 的量化精度:
论文中量化了 “Quantization sensitivity” 这一指标,由 Block Importance 和 Quantization Difficulty 两个指标刻画
Block Importance:Block 平均的数值,决定了这个 block 对于 attention map 的重要性
Quantization Difficulty:量化的难度,由量化误差决定(quantization error)
对于每个 block,我们希望能得到一个量化的位数,论文中预设了一个 average bitwidth budget 即位宽的预算,然后求解整数规划问题,即求解 integer programming problem
PE 单元,被设计用于同时加速 QK, AttnV 的计算
- PE 可以执行 2 * 8, 4 * 8, 8 * 8 的运算
- AttnV:Attn 是混合精度量化的一个 attention map,V 是 8 位量化
- QK:QK 是 8 位量化,QK 经过 Softmax 后需要进行混合精度的量化
- 引出一个问题:貌似对 QK 进行 8bit 计算有些浪费了,能不能计算的时候使用低一些的位宽
- 解决方案:根据 Attn 的量化方案,相应地选择 K 中的若干位(2, 4, 8)与 8 位的 Q 进行计算
- 如何选择 K 中的若干位?前导 0(LDZ Unit):以正数为例,找到最高位的 1,选择一定位数,之后的计算再左移回去
- dispatcher:起调度的作用,用于平衡 blocks 间的工作负载(workload)(很好奇具体是怎么工作的)
- ablation study:消融实验,论文中用于评估方法的每一改进部分的提升效果
- cycle-accurate simulator
- 评估指标:
- FVD-FP16:保真度 fidelity,通过量化前后的 feature space difference 评估
- CLIPSIM:text-video alignment
- CLIP-Temp:每一帧之间 clip feature 的一致性(consistency)
- VQA:aesthetic 和 technical 角度对视频质量的评估
Q:每一个 block 的大小怎么确定