Skip to content

chore(deps): update trl requirement from >=0.9 to >=1.15.0 - #8

Closed
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/pip/trl-gte-1.15.0
Closed

dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/pip/trl-gte-1.15.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Oct 11, 2026

Copy link
Copy Markdown

Updates the requirements on trl to permit the latest version.

Release notes

Sourced from trl's releases.

v1.15.0

Features

⚡ Fused LM head: up to 6.9× longer sequences on the same GPU

SFT, DPO, KTO, GRPO, RLOO and Distillation now score tokens with a fused LM head: a Triton kernel projects the hidden states through the LM head in tiles and reduces to per-token log-probs and entropy directly, so the [batch, seq, vocab] logits tensor is never built. It is on by default, there is nothing to turn on.

Max trainable sequence length (gemma-3-1b, 262k vocabulary, 79 GiB of GPU memory, bf16, batch size 1, gradient checkpointing, sdpa):

Trainer v1.14.2 v1.15.0
DPO 10,240 59,392 5.80×
KTO (batch size 2) 9,216 63,488 6.89×
GRPO (scoring only) 28,672 114,688 4.00×
RLOO (scoring only) 23,552 100,352 4.26×
SFT (loss_type="nll") 20,480 107,520 5.25×
SFT (default chunked_nll) 107,520 107,520 1.00×

At 8,192 tokens, peak memory drops 52% to 82% and steps are 2.3% to 10.9% faster:

Trainer Peak GiB v1.14.2 → v1.15.0 Tokens/s
DPO 48.97 → 12.00 (-75.5%) 1.035×
KTO 64.91 → 11.98 (-81.5%) 1.045×
GRPO 24.15 → 10.30 (-57.4%) 1.023×
RLOO 29.28 → 14.02 (-52.1%) 1.029×
SFT (nll) 30.33 → 8.87 (-70.7%) 1.029×

The gain is largest for small models with large vocabularies. SFT's previous default (chunked_nll) already avoided full logits, so it is unchanged. Scoring needs Triton on a GPU (Linux with CUDA, ROCm or XPU).

💥 What this changes for you. The full-logits scoring path, the use_liger_kernel chunked path and _forward_redirection are gone from GRPO, RLOO, DPO and KTO:

  • A PEFT adapter on lm_head now raises. Use modules_to_save=["lm_head"] instead.
  • use_liger_kernel=True is deprecated in these four trainers and will be removed in v2.0.0. Liger's layer kernels still apply, but fused_linear_cross_entropy is forced to False (it would replace the fused head) and setting it explicitly raises. Use model_init_kwargs={"use_kernels": True}.
  • In DPO and KTO, compute_metrics and compute_loss(..., return_outputs=True) still receive the full logits, from an extra forward pass taken only when they are used. Both warn that this is deprecated and will be removed in v2.0.0.

Nothing else the trainers logged is lost: the kernel gained log_sum_sq_probs (WPO weighting), mean_logits (logits/chosen, logits/rejected) and is_top1 (DPO's mean_token_accuracy) as opt-in outputs, each checked against the full logits in tests.

1× B300 with the PyTorch allocator capped at 79 GiB (about an H100 80GB's usable memory), google/gemma-3-1b-pt built from its config with random bf16 weights, lr 1e-6, AdamW, synthetic token ids at exact length. Max length: one fresh process per attempt, 2 training steps, doubling from 8k then bisection to 1024 tokens, arms interleaved round-robin in the same job. Throughput: 12 steps, first 2 discarded, median of 3 A/B/A/B repeats in the same job. Noise floor (A vs A) is 0.1% to 0.8%, below every gap reported. GRPO/RLOO replace generation with fixed random completions, so only scoring is measured.

Not measured: H100 hardware itself, flash-attention (sdpa only), real generation, multi-GPU.

... (truncated)

Commits
  • dae7b6a Release: v1.15 (#7594)
  • 69518b3 Update "What's New" for the fused LM head (#7593)
  • 2a72cca Declare gradient accumulation loss scaling with loss_is_scaled_for_ga (#7508)
  • ebf09f6 Drop the deprecated use_liger_kernel from the docs (#7535)
  • b5c51de Compute the distillation divergence with a Triton kernel (#7465)
  • 77b9010 Run the async GRPO rollout loop tests on the real tokenizer and response pars...
  • a57bc7f Build the async rollout loops in tests through init (#7555)
  • 727a61d Keep SFT's MoE aux loss independent of world size and gradient accumulation (...
  • 7552d05 Build real configs instead of SimpleNamespace in the GOLD and GKD tests (#7564)
  • 179e1b3 Make SDFT importable without peft and align SSD (#7562)
  • Additional commits viewable in compare view

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Updates the requirements on [trl](https://github.com/huggingface/trl) to permit the latest version.
- [Release notes](https://github.com/huggingface/trl/releases)
- [Changelog](https://github.com/huggingface/trl/blob/main/RELEASE.md)
- [Commits](huggingface/trl@v0.9.3...v1.15.0)

---
updated-dependencies:
- dependency-name: trl
  dependency-version: 1.15.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot
dependabot Bot requested a review from aidless as a code owner October 11, 2026 22:54
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file python Pull requests that update python code labels Oct 11, 2026
@aidless aidless closed this Oct 16, 2026
@dependabot @github

dependabot Bot commented on behalf of github Oct 16, 2026

Copy link
Copy Markdown
Author

OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting @dependabot ignore this major version or @dependabot ignore this minor version. You can also ignore all major, minor, or patch releases for a dependency by adding an ignore condition with the desired update_types to your config file.

If you change your mind, just re-open this PR and I'll resolve any conflicts on it.

@dependabot
dependabot Bot deleted the dependabot/pip/trl-gte-1.15.0 branch October 16, 2026 17:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file python Pull requests that update python code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant