输入x,然后做归一化得到x_norm(具体实现是乘一个缩放系数)对x_norm做三个投影K Q V做attention softmax计算后得到包含上下文关系的context矩阵对context做一次投影得到attn_out最后再接入残差网络,作为attention部分的输出x1。其中x1=x+attn_out>接下来就到了FFN的部分,这里普遍采用SwiGLU的结构。首先对x1做归一化,得到x1_norm。对x1_norm做两次投影得到a和 b其中a还需要通过SiLU激活函数,得到a=a*sigmod(a)然后对a,b进行逐元素乘,得到hidden最后将hidden投影,得到输出out到此,一个transformer的层就计算完了,这个out就成为了下一层的输入x