模型压缩-神经网络基础

45 阅读2分钟

zero-shot vs few-shot

zero-shot: 给出简单的任务描述,模型推理结果,没有微调。 few-shot:任务描述+示例

SpAtten: Efficient Sparse Attention Architecture with Cascade Token and Head Pruning

原理:Sparse Attention,自然语言中有很多冗余token,去除冗余token(那些对其他标记没有高度关注的冗余tokens)。

"As a visual treat, the film is almost prefect." => "As treat, film perfect" => "film perfect"

"I bet the video game is a lot more fun than the film" "bet, video, game, is, lot, fun"

Multi-models多模态

images, languages, audio, video, action投射到一个空间,理解并处理这些 vision-language, LLaVA项目

神经网络基础

等价术语: 权重/参数 特征/激活

Fully-Connected(Linear layer)

输出神经元与所有输入连接。
弄懂Tesors shape非常关键:
输入特征图 input features X: [n, cic_i] 输出特征图 output features Y: [n, coc_o] 权重 weights W: [coc_o, cic_i] Bias b: [coc_o]

LoRa:一种仅bias更新的技术,高效训练

Convolution Layer

输出神经元不是与所有输入相连,仅与感受野内相连。 弄懂Tesors shape非常关键: 2D 输入特征图 input features X: [n, cic_i, hih_i, wiw_i] 输出特征图 output features Y: [n, coc_o, hoh_o, wow_o] 权重 weights W: [coc_o, cic_i, khk_h, kwk_w] Bias b: [coc_o]

感受野:L层网络,感受野大小是L(k1)L\cdot{(k-1)} Problem:为了使每个输出都能“see”整个image,需要很多layers。
Solution:downsample下采样:Strided Conv layer

Strided Conv layer

好处:同样感受野,减少层数、减少权重、减少激活数量。牺牲一点准确性,因为模型容量在减小。

Grouped Conv layer 减少计算量,分成g个组,权重变成 [gco/gg\cdot{c_{o}/g}, ci/gc_i/g, khk_h, kwk_w],其他tensor shape不变。

Depthwise Conv layer 深度卷积层,grouped conv极端情况,每个channl有独立的filter,g=ci=cog=c_{i}=c_{o}

权重变成 [c, khk_h, kwk_w] 2016年MobileNet 发明

Pooling layer

Downsample 下采样特征图

Normalization layer**

把特征图归一化,以使优化更快 Batch Norm/Layer Norm/Instance Norm/Group Norm

Activation function

激活函数是典型非线性函数

根据稀疏性、量化、动态范围、易于实现,不同激活函数发展: Sigmoid/ReLu/ReLu6/Leaky ReLu/Swish/Hard Swish

Tanh/GELU/ELU/Mish