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]

各部分计算复杂度:

  1. X -> Q, K, V:[N, d] 与 [d, d] 矩阵相乘 O (Nd^2)
  2. Q*K: [N, d] 与 [d, N] 矩阵相乘 O (N^2d)
  3. softmax:[N, N] O(N^2)
  4. Output:[N, N] 与 [N, d] 相乘 O (N^2d)
  5. 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 前的顺序
    • A32=6A_3^2=6,一共有 3 个维度(frame height width),进行置换(permute),一共有 6 种 reorder 方案,对于不同的 QK(一个 head)选择哪一种呢?
      • offline 预先决定好(应该指的是人工确定好方案)
      • 因为观察到 attention head 中的 pattern 基本不会变化
      • 也就是说每个 head 的 reorder 方案可以提前被唯一确定
  • 如何确定每个 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 的大小怎么确定