cheetsheet

Neural Net Basics

Xavier Initialization

对于某一层的weight,初始化分布N(0, \frac{1}{n_{in}}) 或者 N(0, \frac{2}{n_{in} + n_{out}}). 前者scale by 输入的neuron个数,使forward pass的每一个output neuron方差相同。后者考虑了backprop pass的gradient值方差,取了平均。

pytorch的实现用了uniform distribution (-a, a):

variance of the activations remains roughly the same across layers, preventing gradients from vanishing or exploding during training

使每一个激活层的初始值方差相同,避免梯度消失或爆炸

需要搭配tanh使用,不要搭配ReLu,确保gradient在0时为1 (近似线性)

LayerNorm

LayerNorm normalizes all dimensions except batch: (N, C, H, W) normalizes over (C, H, W)

Think about for NLP, it makes no sense to normalize over batch_size, as opposed to CV

如果像CV一样做batch norm,那么同一个句子中各个token之间的关系不被保留

大模型

大模型显存占用

1. 1B参数量,float32在推理时大约占用4G显存,fp16/bf16/int8/int4相应除以2;推理中除了模型参数其他的overhead占用<20%。

2. 微调中,除了推理的占用,还有activations, gradients, 和optimizer的state。

如何减少微调显存占用?

mixed precision

offloading: 例如优化器AdamOffloading 。。。

大模型PEFT微调方法

Lora

P-tuning V1 & V2

QLora

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值