Improve consistency of Liger Kernel initialization in DPO#6242
Merged
Conversation
|
The docs for this PR live here. All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update. |
qgallouedec
approved these changes
Jul 2, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Improve consistency of Liger Kernel initialization in DPO.
This PR refactors how the Liger kernel is integrated into the
DPOTrainer. The main changes improve consistency and clarity around enabling and initializing the Liger kernel and its associated loss function. It aligns the corresponding comments in the andKTOTrainerclass.Changes
Integration and initialization improvements for Liger kernel:
use_liger_kernelto useself.use_liger_kernelinstead of directly referencingargs.use_liger_kernelin bothDPOTrainerandKTOTrainerconstructors.self.liger_loss_fnfor the Liger kernel inDPOTrainerto after PEFT model checks, ensuring it is only set when appropriate.Note
Low Risk
Small constructor reordering and comment/consistency changes in trainer init; no change to loss computation paths for valid configurations.
Overview
Aligns Liger kernel setup in
DPOTrainerandKTOTrainerwith a shared# Liger losssection and consistent use ofself.use_liger_kernelin conditionals (DPO previously gated onargs.use_liger_kernel).In
DPOTrainer,self.liger_loss_fn(LigerFusedLinearDPOLoss) is now created after all Liger validation, including PEFT checks forlm_headadapters and prompt-learning methods, instead of immediately after the single-loss-type check. Invalid configs fail before the fused loss object is constructed; supported setups are unchanged.KTOTraineronly gets the matching comment tweak; behavior is unchanged.Reviewed by Cursor Bugbot for commit 090c74e. Bugbot is set up for automated code reviews on this repo. Configure here.