这里统一规定笔记中的数学记号。
一些常用算子符号:
Transformer的接口;
Transformer中FFN层;
目前先定义这些,后续再进行补充。
Last updated 1 year ago
向量用小写mathbf字体表示:x∈Rd\mathbf x \in \mathbb R^dx∈Rd(所有向量均为列向量,即x∈Rd×1\mathbf x \in \mathbb R^{d\times 1}x∈Rd×1);
矩阵用大写mathbf字体表示,X∈Rn×d\mathbf X\in \mathbb R^{n\times d}X∈Rn×d:
xi\mathbf x_ixi表示矩阵X\mathbf XX的第iii行的转置;
标量用常规字体表示α,β\alpha, \betaα,β;
默认用nnn表示序列长度,ddd表示嵌入维度,bbb表示batch size;
Score Matrix:S=QK⊤\mathbf S=\mathbf Q \mathbf K^{\top}S=QK⊤;
Attention Matrix:A=f(S)\mathbf A = f(\mathbf S)A=f(S);
一般场景下f=Softmaxf=\mathrm{Softmax}f=Softmax,但是也可以有别的选择;
Softmax(X,d=−1):Rn×d→Rn×d\mathrm{Softmax}(\mathbf X,d=-1): \mathbb R^{n\times d}\to \mathbb R^{n\times d}Softmax(X,d=−1):Rn×d→Rn×d:
ddd为归一化维度,不指定时为最后一维,这里表示映射时没有考虑ddd,做个不严格的简化定义;
Norm(X,d=−1):Rn×d→Rn×d\mathrm{Norm}(\mathbf X,d=-1): \mathbb R^{n\times d}\to \mathbb R^{n\times d}Norm(X,d=−1):Rn×d→Rn×d:
各种归一化方式,具体类型使用文字说明,符号中不体现,ddd为归一化维度,不指定时为最后一维;
MHA(X,Y):Rn×d×Rm×d→Rn×d\mathrm{MHA}(\mathbf X, \mathbf Y):\mathbb R^{n\times d}\times \mathbb R^{m\times d}\to \mathbb R^{n\times d}MHA(X,Y):Rn×d×Rm×d→Rn×d:
一种MHA\mathrm {MHA}MHA的接口,最具体来说X\mathbf XX对应query,Y\mathbf YY对应key, value;
MHA(Q,K,V):Rn×d×Rm×d×Rm×d→Rn×d\mathrm{MHA}(\mathbf Q, \mathbf K,\mathbf V):\mathbb R^{n\times d}\times \mathbb R^{m\times d}\times \mathbb R^{m\times d}\to \mathbb R^{n\times d}MHA(Q,K,V):Rn×d×Rm×d×Rm×d→Rn×d:
另一种MHA\mathrm{MHA}MHA的接口,不常使用;
Tran(X,Y):Rn×d×Rm×d→Rn×d\mathrm{Tran}(\mathbf X, \mathbf Y):\mathbb R^{n\times d}\times \mathbb R^{m\times d}\to \mathbb R^{n\times d}Tran(X,Y):Rn×d×Rm×d→Rn×d
FFN(X):Rn×d→Rn×d\mathrm {FFN}(\mathbf{X}): \mathbb R^{n\times d} \to \mathbb R^{n\times d}FFN(X):Rn×d→Rn×d:
Sum(X,d=0):Rn×d→Rd\mathrm{Sum}(\mathbf X,d=0): \mathbb R^{n\times d} \to \mathbb R^{d}Sum(X,d=0):Rn×d→Rd