Discovering Preference Optimization Algorithms with and for Large Language Models

Chris Lu, Samuel Holt, Claudio Fanconi, Alex J. Chan, Jakob Foerster +2 more
6/12/2024
cs.LG

No official code found. Best implementation: luchris429/DiscoPOP (65 stars, MIT, last commit 2024-06-13).

Abstract

Offline preference optimization is a key method for enhancing and controlling the quality of Large Language Model (LLM) outputs. Typically, preference optimization is approached as an offline supervised learning task using manually-crafted convex loss functions. While these methods are based on theoretical insights, they are inherently constrained by human creativity, so the large search space of possible loss functions remains under explored. We address this by performing LLM-driven objective discovery to automatically discover new state-of-the-art preference optimization algorithms without (expert) human intervention. Specifically, we iteratively prompt an LLM to propose and implement new preference optimization loss functions based on previously-evaluated performance metrics. This process leads to the discovery of previously-unknown and performant preference optimization algorithms. The best performing of these we call Discovered Preference Optimization (DiscoPOP), a novel algorithm that adaptively blends logistic and exponential losses. Experiments demonstrate the state-of-the-art performance of DiscoPOP and its successful transfer to held-out tasks.

View on arXivView PDF

Code Implementations(1)

luchris429/DiscoPOPCommunity100%
MIT

Code for Discovering Preference Optimization Algorithms with and for Large Language Models

6534Shell, PythonJun 11, 20242 years agoMIT

Similar Papers

Cite this paper

@article{lu2024discovering,
  title  = {Discovering Preference Optimization Algorithms with and for Large Language Models},
  author = {Chris Lu and Samuel Holt and Claudio Fanconi and Alex J. Chan and Jakob Foerster and Mihaela van der Schaar and Robert Tjarko Lange},
  year   = {2024},
  eprint = {2406.08414},
  archivePrefix = {arXiv},
  doi    = {10.48550/arXiv.2406.08414},
  url    = {http://arxiv.org/abs/2406.08414v3},
  journal = {NEURIPS 2024 2024}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2406.08414.svg)](https://codeofpaper.com/paper/2406.08414)

Discussion