LysandreJik· @LysandreJik · X·· 2 天前AI 评分
TRL v1.15 发布:默认启用 fused LM head 大幅降低后训练显存
TRL v1.15 发布,SFT、DPO、KTO、GRPO、RLOO 和蒸馏默认改用 fused LM head,用 Triton kernel 直接计算所需 token 级量,不再生成巨大的 [batch, seq, vocab] logits 张量。
TRL v1.15 发布了,这是内存高效后训练方面一个绝对重磅的版本。
主要变化:SFT、DPO、KTO、GRPO、RLOO 和蒸馏现在默认使用融合的 LM head。
不再生成巨大的 [batch, seq, vocab] logits 张量,而是由一个 Triton 内核直接计算我们实际需要的 token 级别量。
效果非常显著 👇
在 Gemma 3 1B 上,词表大小为 262k,使用同一块 GPU:
DPO:最大序列长度 10k → 59k
KTO:9k → 63k
GRPO:28k → 114k
RLOO:23k → 100k
SFT:20k → 107k
序列长度最高可提升 6.9 倍,在 8k 上下文时峰值内存降低了 52-82%。
速度没有受到负面影响:训练速度最高提升约 11%。
无需手动开启:这在 TRL v1.15 中已是默认行为!
这个版本还有更多内容:SFT 的选择性激活检查点、视觉数据集的仅助手损失、更好的对话日志记录、AsyncGRPO / AsyncDistillation 的改进,以及一长串修复。
我非常喜欢这类优化:底层实现大幅改进的同时,训练 API 并不需要变得更复杂。
github.com/huggingface/trl/r…
来源:LysandreJik · x.com