**DPO outline.** The general DPO pipeline is as follows: 1) Sample completions \(y_{1},y_{2}\sim\pi_{\text{ref}}(\cdot\mid x)\) for every prompt \(x\), label with human preferences to construct the offline dataset of preferences \(\mathcal{D}=\{x^{(i)},y_{w}^{(i)},y_{l}\}_{i=1}^{N}\) and 2) optimize the language model \(\pi_{\theta}\) to minimize \(\mathcal{L}_{\text{DPO}}\) for the given \(\pi_{\text{ref}}\) and \(\mathcal{D}\) and desired \(\beta\). In practice, one would like to reuse preference datasets publicly available, rather than generating samples and gathering human preferences. Since the preference datasets are sampled using \(\pi^{\text{STF}}\), we initialize \(\pi_{\text{ref}}=\pi^{\text{SFT}}\) whenever available. However, when \(\pi^{\text{SFT}}\) is not available, we initialize \(\pi_{\text{ref}}\) by maximizing likelihood of preferred completions \((x,y_{w})\), that is, \(\pi_{\text{ref}}=\arg\max_{\pi}\mathbb{E}_{x,y_{w}\sim\mathcal{D}}\left[\log \pi(y_{w}\mid x)\right]\). This procedure helps mitigate the distribution shift between the true reference distribution which is unavailable, and \(\pi_{\text{ref}}\) used by DPO. Further details related to the implementation and hyperparameters can be found in Appendix B.
**DPO 개요.** 일반적인 DPO 파이프라인은 다음과 같습니다: 1) 모든 프롬프트 \(x\)에 대해 완료 샘플 \(y_{1},y_{2}\sim\pi_{\text{ref}}(\cdot\mid x)\)을 생성하고, 인간의 선호도를 라벨링하여 선호도의 오프라인 데이터셋 \(\mathcal{D}=\{x^{(i)},y_{w}^{(i)},y_{l}\}_{i=1}^{N}\)을 구성합니다. 2) 주어진 \(\pi_{\text{ref}}\)와 \(\mathcal{D}\), 그리고 원하는 \(\beta\)에 대해 언어 모델 \(\pi_{\theta}\)를 최적화하여 \(\mathcal{L}_{\text{DPO}}\)를 최소화합니다. 실제로는 샘플을 생성하고 인간의 선호도를 수집하는 대신, 공개된 선호도 데이터셋을 재사용하는 것이 좋습니다. 선호도 데이터셋은 \(\pi^{\text{STF}}\)를 사용하여 샘플링되므로, 가능할 때마다 \(\pi_{\text{ref}}=\pi^{\text{SFT}}\)로 초기화합니다. 그러나 \(\pi^{\text{SFT}}\)가 사용 불가능할 경우, 선호되는 완료 \((x,y_{w})\)의 우도 최대화를 통해 \(\pi_{\text{ref}}\)를 초기화합니다. 즉, \(\pi_{\text{ref}}=\arg\max_{\pi}\mathbb{E}_{x,y_{w}\sim\mathcal{D}}\left[\log \pi(y_{w}\mid x)\right]\)입니다. 이 절차는 사용할 수 없는 실제 참조 분포와 DPO가 사용하는 \(\pi_{\text{ref}}\) 간의 분포 이동을 완화하는 데 도움이 됩니다. 구현 및 하이퍼파라미터와 관련된 추가 세부 사항은 부록 B에서 확인할 수 있습니다.
**DPO 개요.** 일반적인 DPO 파이프라인은 다음과 같습니다: 1) 모든 프롬프트 \(x\)에 대해 샘플 완성 \(y_{1},y_{2}\sim\pi_{\text{ref}}(\cdot\mid x\), 인간의 선호도로 레이블을 지정하여 오프라인 선호도 데이터 집합 \(\mathcal{D}=\{x^{(i)},y_{w}^{(i)},y_{l}\}_{i=1}^{N}\)을 구성하고 2) 언어 모델 \(\pi_{\theta}\)를 최적화하여 주어진 \(\pi_{\text{ref}}\) 및 \(\mathcal{D}\)와 원하는 \(\beta\)에 대해 \(\mathcal{L}_{\text{DPO}}\)를 최소화합니다. 실제로는 샘플을 생성하고 사람의 선호도를 수집하는 대신 공개적으로 사용할 수 있는 선호도 데이터 세트를 재사용하고 싶을 것입니다. 선호도 데이터 세트는 \(\pi^{\text{STF}}\)를 사용하여 샘플링되므로, \(\pi^{\text{SFT}}\)를 사용할 수 있는 경우 \(\pi_{\text{ref}}=\pi^{\text{SFT}}\)를 초기화합니다. 그러나 \(\pi^{\text{SFT}}\)를 사용할 수 없는 경우, 선호도가 높은 완성도 \((x,y_{w})\), 즉 \(\pi_{\text{ref}}=\arg\max_{\pi}\mathbb{E}_{x,y_{w}\sim\mathcal{D}}\left[\log \pi(y_{w}\mid x)\right]\). 이 절차는 사용할 수 없는 실제 참조 분포와 DPO에서 사용하는 \(\pi_{\text{ref}}\) 사이의 분포 이동을 완화하는 데 도움이 됩니다. 구현 및 하이퍼파라미터와 관련된 자세한 내용은 부록 B에서 확인할 수 있습니다.