应该是一个比较常见的手段了,之前在Megatron MoE的paper中他们有系统的讲。今天在看recompute相关的东西的时候突然想到了这个,就来整理一下。 逻辑是这样的,在MoE fc2之后,我们有一步根据probs加权的操作。 考虑到,对于一个matmul(fc2)来说,他的backward只依赖他的输入,不依赖他的输出。 也就是说如果没有最后那个加权,FC2的输出是不需要save的。 这里就结合到矩阵乘法的特性,g * (h @ W2) = (g * h) @ W2。只要满足g是在行这个维…