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.
Summary
Close KTO Item of the Roadmap: #371
Implements the Kahneman-Tversky Optimization (KTO) loss function.
KTO Loss Function
For a policy π compared to a reference policy π₀:
When y is chosen:
When y is rejected:
where:
Intuition
KTO loss is inspired by prospect theory from behavioral economics, which models how humans make decisions under uncertainty.
The loss function is asymmetric, treating gains and losses differently, similar to
human decision-making patterns.
Credit by: https://www.youtube.com/watch?v=nSrj1J6ODoM&t=422s
Benchmark Result
Memory:
Speed:
Key Changes
LigerFusedLinearKTOLoss
classLigerFusedLinearKTOFunction
for the core KTO computationtest_kto_loss.py
HFKTOLoss
) based on Hugging Face's implementationReference
Testing Done
Test is passing now:
pytest test/chunked_loss/test_kto_loss.py
make test
to ensure correctnessmake checkstyle
to ensure code stylemake test-convergence
to ensure convergence