Self-Augmented Preference Optimization: Off-Policy Paradigms for Language Model Alignment

Yueqin Yin, Zhendong Wang, Yujia Xie, Weizhu Chen, Mingyuan Zhou
5/31/2024
cs.CLcs.LG

Official code: yinyueqin/SAPO (5 stars, Apache-2.0, last commit 2024-07-08).

Abstract

Traditional language model alignment methods, such as Direct Preference Optimization (DPO), are limited by their dependence on static, pre-collected paired preference data, which hampers their adaptability and practical applicability. To overcome this limitation, we introduce Self-Augmented Preference Optimization (SAPO), an effective and scalable training paradigm that does not require existing paired data. Building on the self-play concept, which autonomously generates negative responses, we further incorporate an off-policy learning pipeline to enhance data exploration and exploitation. Specifically, we employ an Exponential Moving Average (EMA) model in conjunction with a replay buffer to enable dynamic updates of response segments, effectively integrating real-time feedback with insights from historical data. Our comprehensive evaluations of the LLaMA3-8B and Mistral-7B models across benchmarks, including the Open LLM Leaderboard, IFEval, AlpacaEval 2.0, and MT-Bench, demonstrate that SAPO matches or surpasses established offline contrastive baselines, such as DPO and Odds Ratio Preference Optimization, and outperforms offline self-play methods like SPIN. Our code is available at https://github.com/yinyueqin/SAPO

View on arXivView PDF

Code Implementations(1)

yinyueqin/SAPOOfficial100%
Apache-2.0

Self-Augmented Preference Optimization: Off-Policy Paradigms for Language Model Alignment (SAPO)

50Shell, PythonJul 8, 20242 years agoApache-2.0

Cite this paper

@article{yin2024selfaugmented,
  title  = {Self-Augmented Preference Optimization: Off-Policy Paradigms for Language Model Alignment},
  author = {Yueqin Yin and Zhendong Wang and Yujia Xie and Weizhu Chen and Mingyuan Zhou},
  year   = {2024},
  eprint = {2405.20830},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2405.20830v1}
}

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

Discussion