记录科研过程中学习的一些内容
李宏毅老师的课程:
一些博客:
Four kinds of parallelism
Flash Attention
原论文,按照版本升序
博客:
Sequence Parallelism
一些论文:
博客:
Distributed System
论文:
博客:
Diffusion
论文:
博客:
Sora技术报告:
DiTFastAttn
论文:
xFusion
论文:
一些问题
不同的Normalization
BN是在一个batch内,针对每一个特征做归一化;LN是指对于每个样本做归一化;IN是指对于通道内的每个特征做归一化;GN是指对通道内的一组特征做归一化
对于一个y = [batch_size, channel_num, width, height] = [N, C, W, H]
的张量:
- BN对于批次中的每一个通道作归一化,即:
μcσc2ynchw′=NHW1n=1∑Nh=1∑Hw=1∑Wynchw=NHW1n=1∑Nh=1∑Hw=1∑W(ynchw−μc)2=γ(σcynchw−μc)+β
- LN为对批次中每一个样本做归一化:
μnσn2ynchw′=CHW1c=1∑Ch=1∑Hw=1∑Wynchw=CHW1c=1∑Ch=1∑Hw=1∑W(ynchw−μn)2=γ(σnynchw−μn)+β
- IN为对样本的特征做归一化:
μncσnc2ynchw′=HW1h=1∑Hw=1∑Wynchw=HW1h=1∑Hw=1∑W(ynchw−μnc)2=γ(σncynchw−μnc)+β
- GN是对样本的一组特征做归一化:
首先将[N, C, H, W]
划分为[N, G, S, H, W]
,之后:μngσng2yngshw′=SHW1s=1∑Sh=1∑Hw=1∑Wyngshw=SHW1s=1∑Sh=1∑Hw=1∑W(yngshw−μng)2=γ(σngyngshw−μng)+β
当G=1的时候,GN退化为LN;当G=C的时候,GN退化为IN
一般来说,LN更适用于数据量小、批大小更小的时候