Hugging Face 于 2026-09-25 发布 TRL v1.14.0:移除 `trl.losses` 中 Liger 风格 fused loss 复写,DPO/KTO/GRPO 统一走 `_ChunkedLogProbFunction` 再进各自原有 loss,避免公式漂移与 plain DDP 下梯度未 all-reduce;内置 Triton logprob+entropy 融合核(相对 selective_log_softmax+entropy_from_logits 约 14×);单 H100、Qwen3-0.6B、bs=4、seq 512 上,chunked+precompute_ref_log_probs 中位 step 0.1971s(相对 v1.13 fused 降 12.1%)、峰值 4.83GB(降 31%)。并删除 6 个低使用 experimental trainer,vLLM 支持窗升至 ≤0.30.0。

核心要点速览 (Key Takeaways)

  • ✓发版:v1.14.0 = PyPI trl 1.14.0,文档 huggingface.co/docs/trl
  • ✓架构:删除 `trl.losses`(含 `FusedLinearDPOLoss` 等);DPO/KTO/GRPO = backbone → `_ChunkedLogProbFunction` → 各自原 loss;`use_liger_kernel=True` 仍启 Liger 模型核,但 loss 改走 TRL chunked path
  • ✓性能(官方表,1×H100 / Qwen3-0.6B / bs=4 / seq512):v1.13 fused 0.2243s / 7.05GB → v1.14 chunked+`precompute_ref_log_probs=True` **0.1971s(−12.1%)/ 4.83GB(−31%)**
  • ✓内核:`trl.kernels` 融合 logprob+entropy,H100 bf16 V=151936 H=4096 8192 tokens:**0.89ms vs 12.8ms(约 14×)**,默认 CUDA/ROCm/XPU 开启
  • ✓破坏:移除 BCO/PRM/XPO/NashMD/GRPOWithReplayBuffer/GSPO-token 等 6 个 experimental trainer;修 plain DDP 下 KTO 梯度未 all-reduce;vLLM 支持窗 `>=0.20.0,<=0.30.0`
🔬

深度技术解析与实战评估

核心背景与行业痛点

后训练栈(DPO / KTO / GRPO)既要省显存,又要保证损失公式与分布式语义正确。TRL v1.13 把 Liger chunked_loss 厂商到 trl.losses 后出现双份公式漂移:GRPO grad_norm 不一致、KTO 在 PEFT 下忽略参考模型、DPO label_smoothing 被静默丢掉;更严重的是 plain DDP 下 fused path 在 unwrap 模型上算 loss,各 rank 梯度互不 all-reduce——这是静默训练错误,比「慢一点」更危险。

架构亮点与底层机制

v1.14.0(2026-09-25)删除 trl.losses:各 trainer 统一走 backbone → _ChunkedLogProbFunction → 既有 loss,只流式取选中 token 的 log-prob,仍不物化完整 logits。use_liger_kernel=True 继续启用 Liger 模型核,但 DPO/KTO/GRPO 的 loss 改走 TRL chunked path。内置 trl.kernels Triton 融合 logprob+entropy(CUDA/ROCm/XPU 默认开启)。同时删除 6 个低使用 experimental trainer,并写明 experimental 退出准则。

权威 Benchmark 与实测跑分对比

官方单卡 H100、Qwen3-0.6B、bs=4、seq 512:v1.13 fused inline-ref 0.2243s / 7.05GB;v1.14 chunked + precompute_ref_log_probs=True 0.1971s(−12.1%)/ 4.83GB(−31%)——该配置此前被 fused path 直接拒绝。内核微基准(bf16,V=151936,H=4096,8192 tokens):selective_log_softmax+entropy_from_logits 12.8ms / 2.32GiB → 融合核 0.89ms(约 14×)。

开发者实战落地与开箱指南

执行 pip install -U trl==1.14.0。迁移时去掉 from trl.losses import FusedLinear*;需要省显存时打开 precompute_ref_log_probs=True。仍拒绝的组合见发行说明。vLLM 额外依赖支持窗改为 >=0.20.0,<=0.30.0。文档:huggingface.co/docs/trl。