ORPO: Monolithic Preference Optimization without Reference Model

Jiwoo Hong, Noah Lee, James Thorne
3/12/2024
cs.CLcs.AI

No official code found. Best implementation: xfactlab/orpo (480 stars, Apache-2.0, last commit 2024-05-31). 1 more below.

Abstract

While recent preference alignment algorithms for language models have demonstrated promising results, supervised fine-tuning (SFT) remains imperative for achieving successful convergence. In this paper, we study the crucial role of SFT within the context of preference alignment, emphasizing that a minor penalty for the disfavored generation style is sufficient for preference-aligned SFT. Building on this foundation, we introduce a straightforward and innovative reference model-free monolithic odds ratio preference optimization algorithm, ORPO, eliminating the necessity for an additional preference alignment phase. We demonstrate, both empirically and theoretically, that the odds ratio is a sensible choice for contrasting favored and disfavored styles during SFT across the diverse sizes from 125M to 7B. Specifically, fine-tuning Phi-2 (2.7B), Llama-2 (7B), and Mistral (7B) with ORPO on the UltraFeedback alone surpasses the performance of state-of-the-art language models with more than 7B and 13B parameters: achieving up to 12.20% on $\text{AlpacaEval}_{2.0}$ (Figure 1), 66.19% on IFEval (instruction-level loose, Table 6), and 7.32 in MT-Bench (Figure 12). We release code and model checkpoints for Mistral-ORPO-$α$ (7B) and Mistral-ORPO-$β$ (7B).

View on arXivView PDF

Code Implementations(2)

xfactlab/orpoCommunity100%
Apache-2.0

Official repository for ORPO

48044Shell, PythonMar 11, 20242 years agoApache-2.0
Paul33333/ORPOCommunity70%
Apache-2.0

ORPO: Monolithic Preference Optimization without Reference Model

10Jupyter NotebookMar 23, 20241 years agoApache-2.0

Similar Papers

Cite this paper

@article{hong2024orpo,
  title  = {ORPO: Monolithic Preference Optimization without Reference Model},
  author = {Jiwoo Hong and Noah Lee and James Thorne},
  year   = {2024},
  eprint = {2403.07691},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2403.07691v2}
}

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/2403.07691.svg)](https://codeofpaper.com/paper/2403.07691)

Discussion