在下一个主要版本中将 `gradient_checkpointing` 重命名为 `activation_checkpointing`
作者: qgallouedec创建于 2026年9月28日更新于 2026年10月2日
检查点的是激活函数,而不是梯度:前向传播保留了一部分,而后向传播重新计算其余部分。"梯度检查点"来自 Chen et al. 2016 和 OpenAI 的 gradient-checkpointing 包,以及 transformer 保留了它。大部分栈后来都采用了"激活函数检查点":
| 库 | 名称 |
|---|---|
| PyTorch | 激活函数检查点技术 (torch.utils.checkpoint, apply_activation_checkpointing) |
| torchtitan | [activation_checkpoint] |
| DeepSpeed | activation_checkpointing 配置部分 |
| accelerate | fsdp_activation_checkpointing |
| Megatron-LM | 激活函数重新计算 (Korthikanti et al. 2022) |
| JAX | jax.checkpoint / jax.remat |
| transformers, PEFT | gradient_checkpointing |
因此,在 accelerate 的 FSDP 插件、DeepSpeed 和 transformers 之间转换的用户会遇到相同的技术,只是名字不同。时间安排合适: gradient_checkpointing_enable 刚刚获得了 every_n_layers 和 offload 选项,而选择性检查点(保存注意力输出)即将推出(审查提交 #7194)。最好在更多选项在旧名称下堆积之前确定名称。
内容来源: huggingface/transformers