The Wire · Showcase
TRL TRAINERS NOW ACCEPT DATASET DICTS DIRECTLY, KTO STREAMING GETS FASTER
By RepoJournal · Filed · About Hugging Face
TRL's stable trainers just got simpler: evaluate() now takes DatasetDict and IterableDatasetDict without forcing you to pick a split first.
The evaluate() method across DPO, KTO, Reward, and SFT trainers now formally support DatasetDict and IterableDatasetDict [1], matching what load_dataset() actually returns when you don't specify a split. This closes a friction point where developers had to manually extract a split before evaluation. In parallel, KTO's KL divergence construction got a major overhaul [2]: mismatched completion pairs are now built with a single batched map operation instead of creating a separate dataset and joining it back, which means streaming datasets no longer force upstream tokenization to run multiple times per example. The performance win here is significant for anyone running KTO on large streaming datasets. Transformers shipped v5.13.1 [3] focused on vllm compatibility, addressing defensive handling of custom model layer types and fixing registration issues that broke downstream tools. On infrastructure, AMD daily CI is migrating from retired MI325 hardware to MI300 runners [4], keeping the testing pipeline current.
Action items
- → Upgrade TRL to pick up DatasetDict eval support in your DPO/KTO/SFT training pipelines huggingface/trl [plan]
- → If you run KTO on streaming datasets, update TRL for the KL completion optimization huggingface/trl [plan]
- → Upgrade transformers to v5.13.1 if you use vllm or custom model layers huggingface/transformers [plan]
References
- [1] Support DatasetDict and IterableDatasetDict as eval_dataset in evaluate ↗ huggingface/trl
- [2] Simplify KTO KL completion construction into a single batched map ↗ huggingface/trl
- [3] Patch release v5.13.1 ↗ huggingface/transformers
- [4] Switch AMD daily CI to mi300 runners ↗ huggingface/transformers