分类
模型结构
Post Log — 2026
FlashAttention:快不是靠少算,是靠少搬模型结构
FlashAttention 的全部机制只有三条:分块做 online softmax(前向不造 N×N 矩阵)、反向重算(不存 S 和 P)、单 kernel 融合(一次读写)。这篇把三条逐一拆开,重点讲透分块合并时「打折」这一步从哪来、为什么不能省,再给一段可跑的 PyTorch 代码逐行认领,最后算清 HBM 读写为什么能从 Θ(N²) 降到 Θ(N)。
从 ReLU 到 SwiGLU:FFN 的门是怎么装上的模型结构
SwiGLU 不是换了个激活函数,是给 FFN 装了个门——内容路做菜、门路上菜,看菜下饭。这篇按「是什么 → 为什么 → 划算吗」讲清楚,参数账用 Llama 的 11008 真算一遍,代码就十行。
从 MHA 到 MQA 到 GQA:KV 头是怎么一步步省下来的模型结构
MHA 每个 Q 头配一份 KV,MQA 把所有头的 KV 合成一份,GQA 折中成每组一份。这篇按演进顺序讲清楚每一步省下了什么、付出了什么,以及为什么主流模型最后都停在分组共享上。
RoPE:位置不是加进去的,是旋转出来的模型结构
RoPE 的全部数学只有四个公式——频率 ω、角度 θ=mω、二维旋转、R(m)ᵀR(n)=R(n−m)。逐条讲透第四条为什么是核心,代码逐行对应公式编号,最后用 d=4 的手算数字把数学和代码焊在一起。
RMSNorm:归一化只需要缩放,不需要中心化模型结构
从 LayerNorm 到 RMSNorm:μ 和 β 是如何被证明可以扔掉的——公式推导、两行实现、以及在 Llama 里的位置。