最贵的一层:深入浅出 Liger Kernel 与 Cut Cross-Entropy
微调一个 2B 小模型也能 OOM?大词表时代,显存大头不是权重也不是注意力,而是交叉熵前那个「几万 token × 几十万词表」的 logits 矩阵,还一物多份。拆解两把砍掉它的刀——Liger Kernel 的分块融合 FLCE 与 Apple 的 Cut Cross-Entropy,附实操代码、一版讲透 use_reentrant 的纯 PyTorch 手写实现,以及昇腾 NPU 支持现状。
微调一个 2B 小模型也能 OOM?大词表时代,显存大头不是权重也不是注意力,而是交叉熵前那个「几万 token × 几十万词表」的 logits 矩阵,还一物多份。拆解两把砍掉它的刀——Liger Kernel 的分块融合 FLCE 与 Apple 的 Cut Cross-Entropy,附实操代码、一版讲透 use_reentrant 的纯 PyTorch 手写实现,以及昇腾 NPU 支持现状。