• 作者/机构: Zixiang Chen, Yihe Deng, Huizhuo Yuan, Kaixuan Ji, Quanquan Gu (UCLA)

A1 主要贡献

本文研究了如何在不获取额外人工标注数据的情况下,将一个弱大型语言模型(LLM)提升为一个强LLM。

  • 核心问题:现有的LLM对齐方法,如监督微调(SFT)和基于人类反馈的强化学习(RLHF),都依赖大量昂贵的人工标注数据。一个经过SFT训练的模型在原有数据上继续训练时,性能会达到瓶颈甚至下降。如何在不增加新的人工数据的前提下,进一步提升一个已完成SFT的“弱”LLM的性能?

  • 研究目标:提出一种新的微调方法,能够仅利用现有的SFT数据集,通过自我迭代提升LLM的性能,充分释放已有人工标注数据的潜力。

  • 核心创新点(SPIN方法)

    1. 提出Self-Play fIne-tuNing (SPIN)方法:这是一种新颖的微调方法,它从一个已有的SFT模型开始。
    2. 自博弈(Self-Play)机制:SPIN的核心机制是让LLM与自身的实例进行对抗。具体来说,模型利用前一迭代的自己(作为“对手”)生成一批响应,然后训练一个新的自己(作为“主博弈方”)来区分这些自生成的响应和原始SFT数据中的人类标注响应。
    3. 迭代式提升:通过这种自博弈过程,LLM能够逐步地自我完善。在每一轮迭代中,新的、更强的模型成为下一轮的“对手”,用于生成更高质量的数据。这个过程持续进行,直到模型无法区分自己生成的响应和人类的响应,此时模型性能达到一个新高度。
    4. 数据效率:与需要额外偏好数据的直接偏好优化(DPO)等方法不同,SPIN完全不需要新的人工标注数据或来自更强模型(如GPT-4)的反馈,仅依赖初始的SFT数据集。
  • 理论贡献

    • 论文从理论上证明了SPIN训练目标的全局最优解仅在LLM的策略(生成分布)与目标数据(人类标注)的分布完全一致时才能达到。这保证了算法收敛的正确性。
  • 实验成果

    • zephyr-7b-sft-full(基于Mistral-7B)模型上进行实验,该模型已在Ultrachat200k数据集上进行了SFT。
    • 实验结果表明,在HuggingFace Open LLM Leaderboard上,SPIN将模型的平均分从58.14提升至63.16,其中在GSM8k和TruthfulQA等基准上提升超过10%。在MT-Bench上,得分从5.94提升至6.78。
    • 值得注意的是,SPIN的性能甚至超过了使用额外62k GPT-4偏好数据进行DPO训练的模型,展示了自博弈机制在无需专家对手情况下的巨大潜力。

A3 背景知识与预备知识

问题设定

我们考虑一个由参数θ表征的大型语言模型(LLM),记为$p_{\theta}$。该模型接收一个输入序列x(通常称为提示),以生成相应的响应y。因此,响应y被视为从条件概率分布$p_{\theta}(\cdot|x)$中抽样得到的样本。在LLMs中,$x_i$和$y_j$分别代表序列x和y中来自预定词汇表的单个token。自回归模型$p_{\theta}$为给定位置顺序生成token,仅利用先前已生成的token序列。因此,该模型构成一个马尔可夫过程,其中条件概率分布$p_{\theta}(y|x)$可以通过如下分解方式表示:

其中$y_{<1}$为空,对于j = 2, ..., m,$y_{

3.1 监督微调 (Supervised Fine-Tuning)

SFT的目标与损失函数。监督微调(SFT)用于将预训练的LLM调整到特定的下游任务,利用比大规模预训练数据相对较小的标记示例数据集【索引75, Ouyang et al., Training language models to follow instructions with human feedback, 2022, NeurIPS; 索引104, Yu et al., Metamath: Bootstrap your own mathematical questions for large language models, 2023, arXiv】。在此背景下,我们考虑一个特定任务,其中提示x来自指定分布$q(\cdot)$。符号$p_{data}(\cdot|x)$则代表训练数据中相关高质量响应y的概率分布。因此,SFT涉及训练LLM以最小化与这些分布相关的以下负对数似然损失:

值得注意的是,从期望项中排除$x \sim q(\cdot)$会得到典型的交叉熵损失,表示为$-E_{y \sim p_{data}(\cdot|x)}[\log p_{\theta}(y|x)]$。当模型的预测分布$p_{\theta}(y|x)$与标记的高质量响应分布$p_{data}(y|x)$完全对齐时,$L_{SFT}(\theta)$达到其最小值。因此,经过SFT后的LLM预期会生成与$p_{data}(y|x)$中的响应非常相似的响应。因此,这个过程有望显著提高模型在为特定任务生成适当响应方面的性能。

3.2 强化学习微调 (RL Fine-Tuning)

RL微调的目标和挑战。RL微调【索引17, Christiano et al., Deep reinforcement learning from human preferences, 2017, NeurIPS; 索引5, Bai et al., Training a helpful and harmless assistant with reinforcement learning from human feedback, 2022a, arXiv; 索引30, Gao et al., Scaling laws for reward model overoptimization, 2023a, ICML】为增强通用预训练模型的特定能力提供了另一种方法。通常,RL微调在SFT之后进行,以实现LLM更好的对齐【索引95, Tunstall et al., Zephyr: Direct distillation of lm alignment, 2023a, arXiv】。对于给定的序列对(x, y),RL微调需要一个确定性的奖励函数$r(x, y)$。奖励$r(x, y)$越高,表示响应y对于给定提示x越好。RL微调过程的目标是最大化以下目标函数:

其中,库尔贝克-莱布勒(KL)正则化强制新模型$p_{\theta}$接近参考模型$p_{ref}$,而$\lambda > 0$是控制新模型$p_{\theta}$偏离参考模型$p_{ref}$程度的正则化参数。在实践中,参考模型$p_{ref}$通常初始化为监督微调后的模型。包含KL正则化对于防止过度偏离参考模型至关重要,这反过来又降低了模式崩溃的风险。同时,RL微调中的主要挑战在于找到一个好的奖励函数。通常,这个函数需要在偏好数据集上进行训练。编制这样的数据集需要大量资源,通常涉及人类标注者(即从人类反馈中进行强化学习,RLHF)【索引17, Christiano et al., Deep reinforcement learning from human preferences, 2017, NeurIPS; 索引5, Bai et al., Training a helpful and harmless assistant with reinforcement learning from human feedback, 2022a, arXiv】或强大的AI代理(即从AI反馈中进行强化学习,RLAIF)【索引6, Bai et al., Constitutional ai: Harmlessness from ai feedback, 2022b, arXiv】的全面评估。

A2 方法细节

本节介绍一种新的微调方法,用于在不依赖额外人类或AI反馈的情况下增强LLM的性能。考虑一个高质量的监督微调(SFT)数据集$S_{SFT} = \{(x, y)\}_{i=1}^n$,这些数据是从边缘分布$q(x)$和$p_{data}(y|x)$中采样的。给定一个监督微调过的LLM $p_{\theta_0}$,在$S_{SFT}$上进一步应用(3.1)中的SFT方法将是无效的,并可能导致性能变差。此外,没有人类和/或AI的反馈,就无法获得用于RL微调(例如RLHF和RLAIF)的偏好数据集。这阻碍了RL微调技术的应用。

模型生成与真实数据间的质量差距。我们评估$p_{\theta}$在$S_{SFT}$上的表现,其中$p_{\theta}$是使用(3.1)通过SFT得到的LLM。我们注意到来自$S_{SFT}$的真实响应y与LLM生成的响应$y' \sim p_{\theta}(\cdot|x)$之间存在持续的质量差距(参见图1)。这种差异表明$p_{\theta}$仍有改进空间。因此,我们建议使用LLM生成的合成数据,从$p_{\theta_0}$开始迭代地增强LLM的性能。

4.1 自博弈微调 (Self-Play Fine-Tuning, SPIN)

自博弈机制的设定。让我们考虑一个双人游戏,其中主博弈方的目标是区分LLM生成的响应和人类生成的响应。同时,副博弈方的角色是生成与人类响应无法区分的响应。我们方法的核心是自博弈机制,其中主博弈方和副博弈方都是同一个LLM,但来自不同的迭代。更具体地说,副博弈方是来自前一次迭代的旧LLM,而主博弈方是当前迭代中要学习的新LLM。

SPIN的迭代步骤。在迭代t+1中,副博弈方是来自前一次迭代的LLM,表示为$p_{\theta_t}$,它根据$p_{\theta_t}(\cdot|x)$为SFT数据集中的提示x生成响应y'。因此,我们的方法在迭代t+1时包括以下两个步骤:(1)训练主博弈方,和(2)更新副博弈方。

主博弈方的训练目标。我们首先说明如何训练主博弈方以区分LLM响应和人类响应。受积分概率度量(IPM)【索引70, Müller, Integral probability metrics and their generating classes of functions, 1997, Advances in applied probability】的启发,我们构建我们的目标函数,使得主博弈方$f_{t+1}$最大化目标数据分布$p_{data}$和副博弈方分布$p_{\theta_t}$之间的期望价值差距:

这里的期望是针对分布$x \sim q(\cdot)$,$y \sim p_{data}(\cdot|x)$,$y' \sim p_{\theta_t}(\cdot|x)$计算的,$F_t$是我们将在后续推导中确定的一系列高表达能力的函数类。$F_t$的下标t表示函数类依赖于$p_{\theta_t}$。给定这样一个$f_{t+1}$和对提示x的响应序列y,$f_{t+1}(x, y)$的值反映了主博弈方认为y源自$p_{data}$而非$p_{\theta_t}$的置信度。理想情况下,当$y \sim p_{data}(\cdot|x)$时,主博弈方$f_{t+1}$应该产生一个高值,而当$y' \sim p_{\theta_t}(\cdot|x)$时,则产生一个低值,其中$p_{\theta_t}$是副博弈方的分布。

通用的优化问题和损失函数选择。除了解决(4.1),我们也可以解决以下更通用的优化问题:

这里的期望是针对分布$x \sim q(\cdot)$,$y \sim p_{data}(\cdot|x)$,$y' \sim p_{\theta_t}(\cdot|x)$计算的,并且$\ell(\cdot)$是一个单调递减且凸的损失函数。例如,线性损失函数$\ell(t) = -t$将(4.2)简化为(4.1)的最小化版本。然而,使用线性损失函数会导致目标值无界,在连续训练中,这会导致$f(x, y')$在副博弈方的响应上变为负无穷大。因此,在我们的工作中,我们选择逻辑损失函数$\ell(t) := \log(1+\exp(-t))$,因为它具有非负性、平滑性,并且当t → ∞时尾部呈指数衰减。这种损失函数的选择有助于防止f的绝对值过度增长。

副博弈方的更新目标。前面我们讨论了在给定副博弈方分布$p_{\theta_t}$的情况下训练$f_{t+1}$。现在假设我们已经优化了我们的主博弈方$f_{t+1}$,它可以在某个函数类$F_t$内区分$p_{data}$和$p_{\theta_t}$,我们详细说明如何获得副博弈方的参数$\theta_{t+1}$。具体来说,当给定同一提示x的两个响应y和y'时,$f_{t+1}$评估$f_{t+1}(x, y)$和$f_{t+1}(x, y')$的值。然后它推断出值较高的响应来自真实数据分布$p_{data}$,而值较低的响应归因于LLM $p_{\theta_t}$。随后,副博弈方的目标是找到一个更好的LLM,它生成的响应对主博弈方来说与$p_{data}$无法区分。这是通过最大化期望值$E_{x \sim q(\cdot), y \sim p(\cdot|x)}[f_{t+1}(x, y)]$来实现的。此外,为了防止$p_{\theta}$过度偏离$p_{\theta_t}$并稳定自博弈过程,我们加入了一个库尔贝克-莱布勒(KL)正则化项。将这些结合起来,得到以下优化问题:


图1. 基准答案与迭代0和1中微调模型生成内容的示例。我们可以观察到,迭代0的模型生成内容虽然流畅,但错误地用具体的百分比量化了交通偏好,这可能是幻觉。迭代1的模型生成内容提供了南安普顿交通形式的定性总结,没有具体的百分比,更接近基准答案,同时增加了更多细节。

副博弈方更新的闭式解。其中$\lambda > 0$是正则化参数。值得注意的是,(4.3)有一个闭式解$p(\cdot|x)$:

值得注意的是,$p(\cdot|x)$不保证属于LLM空间$\{p_{\theta}(\cdot|x)|\theta \in \Theta\}$。由于我们希望概率空间中的闭式解p可以由一个参数为θ的LLM实现,即$p_{\theta}(y|x) = p(y|x)$,求解$p_{\theta}(y|x) \propto p_{\theta_t}(y|x)\exp(\lambda^{-1}f_{t+1}(x, y))$得到$f_{t+1}(x, y) = \lambda \cdot \log \frac{p_{\theta}(\cdot|x)}{p_{\theta_t}(\cdot|x)}$。这表明$f_{t+1}$的函数类$F_t$如下:

其中$\Theta$是被考虑的LLM的参数空间。

推导端到端的训练目标。给定(4.5)中$F_t$的选择,优化(4.2)会得到由$\theta_{t+1}$参数化的$f_{t+1}$,形式如下:

将(4.6)代入(4.4)得到$p(y|x) = p_{\theta_{t+1}}(y|x)$。换句话说,从(4.2)中学到的$\theta_{t+1}$正是我方理想的副博弈方选择的LLM参数。我们将前面讨论的两个步骤整合成一个单一的端到端训练目标,更新规则为$\theta_{t+1} = \text{argmin}_{\theta \in \Theta} L_{SPIN}(\theta, \theta_t)$,其中$L_{SPIN}$是如下定义的训练目标:

其中期望是根据分布$x \sim q(\cdot)$, $y \sim p_{data}(\cdot|x)$, $y' \sim p_{\theta_t}(\cdot|x)$计算的。

SPIN的迭代过程总结。我们总结我们方法SPIN的迭代自博弈过程如下:

即,从前一迭代t中选择的副博弈方被用于训练迭代t+1的主博弈方,得到由$\theta_{t+1}$参数化的LLM。然后,我们通过直接复制LLM参数$\theta_{t+1}$来确定迭代t+1的下一个副博弈方,该参数随后用于训练迭代t+2的主博弈方。详细算法见算法1。

4.2 SPIN与DPO的比较

SPIN与DPO的根本区别。在4.1节中,我们提出了自博弈微调(SPIN),其每次迭代都有一个端到端的训练目标(4.7)。(4.7)与用于RL微调的直接偏好优化(DPO)【索引78, Rafailov et al., Direct preference optimization: Your language model is secretly a reward model, 2023, arXiv】有相似之处。然而,SPIN和DPO在根本上是不同的。DPO基于Bradley-Terry(BT)模型:$p(y_1 \succ y_2|x) = \frac{\exp(r^*(x,y_1))}{\exp(r^*(x,y_1))+\exp(r^*(x,y_2))}$,并通过直接策略优化最大化$p(y_1 \succ y_2|x)$的对数似然,而无需显式奖励估计。相比之下,SPIN依赖于最大化IPM,以与自身日益强大的版本竞争。

具体对比。更详细的比较如下:


1. DPO本质上不导致迭代训练。更具体地说,DPO旨在单次迭代中使其奖励模型引出的偏好概率$p(y_1 \succ y_2|x)$与数据分布$p_{data}(y_1 \succ y_2|x)$相匹配。相反,SPIN的自博弈机制自然地导致了一个迭代训练过程。SPIN通过多次迭代,逐步优化其生成分布$p_{\theta}(y|x)$以匹配目标分布$p_{data}(y|x)$。
2. SPIN只需要SFT数据集,表示为(x, y)对。相比之下,DPO需要一个偏好数据集,表示为(x, $y_w$, $y_l$),其中$y_w$和$y_l$分别表示获胜(选中)和失败(拒绝)的响应。此外,SPIN可以应用于SFT和RL微调之间。
3. 在SPIN中,我们可以选择不同的损失函数$\ell$,只需它们是凸且递减的(详见后面的定理5.2),这包括相关性损失、铰链损失和逻辑损失。只有当$\ell$被选为逻辑损失时,SPIN的训练目标才会变得与DPO相似。

与其他同期工作的比较。最近,Xu等人【索引102, Xu et al., Some things are more cringe than others: Preference optimization with the pairwise cringe loss, 2023, arXiv】提出了使用成对Cringe损失(PCO)进行迭代偏好优化,并将DPO推广到迭代DPO。与我们的工作同期,Yuan等人【索引105, Yuan et al., Self-rewarding language models, 2024, arXiv】进一步提出了一个名为“自奖励语言模型”的框架,该框架利用LLM自身作为奖励模型提供偏好反馈,并采用迭代DPO来训练LLM。与Xu等人(2023);Yuan等人(2024)相比,SPIN的自我评估是隐式的,因为不需要中间的奖励或偏好反馈。

5 理论分析

本节为第4节中的算法1提供了理论分析。在目标函数$\ell$的单调性和凸性假设下,我们证明了当且仅当参数$\theta_t$生成的数据分布与目标一致时,才能获得全局最优解。我们的假设总结如下:

假设 5.1:损失函数$\ell(t) : \mathbb{R} \to \mathbb{R}$是单调递减的,即$\forall t, \ell'(t) \le 0$且满足$\ell'(0) < 0$。此外,$\ell(t)$是一个凸函数。

假设5.1对机器学习中广泛使用的多种损失函数均成立,包括相关损失$\ell(t) = 1-t$、铰链损失$\ell(t) = \max(0, 1-t)$、指数损失$\ell(t) = \exp(-t)$和逻辑损失$\ell(t) = \log(1 + \exp(-t))$。在假设5.1下,我们提出以下定理,它对于理解我们方法的优化动态至关重要。

定理 5.2:在假设5.1下,假设存在$p_{\theta}(\cdot|x) = p_{data}(\cdot|x)$,则我们有:
- (充分性) 如果$p_{\theta_t}(\cdot|x) = p_{data}(\cdot|x)$,那么对于任何$\lambda \ge 0$,$\theta_t$是(4.7)的全局最小值。
- (必要性) 如果$p_{\theta_t}(\cdot|x) \neq p_{data}(\cdot|x)$,存在一个适当选择的$\lambda$,使得$\theta_t$不是(4.7)的全局最小值。

评注 5.3:定理5.2表明,在某些条件下,我们方法的优化过程自然地在$p_{\theta}(\cdot|x) = p_{data}(\cdot|x)$这一点停止,这暗示了我们的方法在使LLM的分布与目标数据分布对齐方面的有效性。此外,定理5.2还指出,只有当达到全局最优,即LLM的分布与目标数据分布对齐时,优化过程才会停止。

对于逻辑损失函数$\ell(t) = \log(1 + \exp(-t))$,以下定理给出了对副博弈方更精确的描述,有助于更好地理解SPIN。

定理 5.4:考虑在SPIN中选择逻辑损失$\ell(t) = \log(1 + \exp(-t))$。假设$p_{\theta_t}(y|x) \left( \frac{p_{data}(y|x)}{p_{\theta_t}(y|x)} \right)^{1/\lambda}$属于LLM空间$\{p_{\theta}(y|x)|\theta \in \Theta\}$且$\theta_{t+1}$是$L_{SPIN}(\theta, \theta_t)$的全局最小值,那么在迭代t+1时的副博弈方满足:

评注 5.5:根据定理5.4,模型从$p_{\theta_t}(y|x)$到$p_{\theta_{t+1}}(y|x)$的更新倾向于在$p_{\theta_t}(y|x)$小于$p_{data}(y|x)$时增加概率$p_{\theta_{t+1}}(y|x)$,而在$p_{\theta_t}(y|x)$大于$p_{data}(y|x)$时减少它。因此,定理5.4进一步证实了我们方法的优化过程自然地收敛到$p_{\theta}(\cdot|x)$等于$p_{data}(\cdot|x)$的点。副博弈方的更新由$\left( \frac{p_{data}(y|x)}{p_{\theta_t}(y|x)} \right)^{1/\lambda}$控制,该项受因子$1/\lambda$调节。较小的$\lambda$导致副博弈方变化较大,而较大的$\lambda$导致变化较小。因此,当$p_{\theta}(\cdot|x)$接近$p_{data}(\cdot|x)$时,增加$\lambda$会增强LLM训练的稳定性。这一观察结果与(4.3)一致,其中$\lambda$是用于控制副博弈方偏差的KL正则化参数。

A4 实验环境

  • 模型架构:基础模型为zephyr-7b-sft-full,它是由预训练的Mistral-7B【索引41, Jiang et al., Mistral 7b, 2023, arXiv】进一步微调而来。
  • 数据集:训练数据源自Ultrachat200k数据集,它是UltraChat【索引25, Ding et al., Enhancing chat language models by scaling high-quality instructional conversations, 2023, arXiv】语料库的一个包含20万条对话的高质量子集。实验中,随机采样了5万条提示,并使用基础模型生成合成响应。在迭代训练中,会累积使用之前迭代生成的合成数据,因此迭代0的数据集大小为50k,迭代1、2、3为100k。
  • 硬件配置:实验在一台配备8块A100 (80G) GPU的机器上进行。
  • 软件配置
    • 代码库:使用Alignment Handbook库【索引96, Tunstall et al., The alignment handbook, 2023b】作为SPIN微调的代码基础。
    • 优化技术:集成了DeepSpeed ZeRO-3【索引79, Rajbhandari et al., Zero: Memory optimizations toward training trillion parameter models, 2020, SC20】和FlashAttention-2【索引23, Dao, Flashattention-2: Faster attention with better parallelism and work partitioning, 2023, arXiv】以降低训练成本。
    • 优化器与参数:使用RMSProp优化器,无权重衰减。全局批量大小为64,10%的预热步数,精度为bfloat16。迭代0和1的峰值学习率为5e-7,迭代2和3降至1e-7。正则化参数$\beta$设为0.1,最大序列长度为2048。
    • 数据生成:使用Accelerate库【索引34, Gugger et al., Accelerate: Training and inference at scale made simple, efficient and adaptable, 2022】进行分布式推理以生成合成数据。

A4 实验结果

SPIN有效提升基准性能

  • 实验内容:在HuggingFace Open LLM Leaderboard的六个数据集(Arc, HellaSwag, Winogrande, MMLU, TruthfulQA, GSM8k)上评估SPIN方法在不同迭代次数下的性能。
  • 实验结果
    • SPIN在已经完全微调过的SFT模型基础上,表现出显著的性能提升。如图2所示,模型的平均分随着迭代次数持续增长。
    • 迭代0(使用SFT模型生成的响应进行训练)相比基线zephyr-7b-sft-full,平均分提升了2.66%。在TruthfulQA和GSM8k上的提升尤为显著,分别超过5%和10%。
    • 迭代1继续提升了1.32%的平均分,尤其是在Arc Challenge和TruthfulQA上。
    • 后续迭代的提升幅度逐渐减小,表明模型趋于收敛。
  • 分析结论:SPIN能够有效突破SFT的性能瓶颈,通过自博弈机制进一步挖掘SFT数据集的潜力。


图2. SPIN在不同迭代次数下于HuggingFace Open LLM Leaderboard数据集上的平均得分。"SFT"报告的是我们的基础模型zephyr-7b-sft-full的性能,该模型已在我们用于生成合成数据的同一数据集上进行了微调。

与DPO的比较

  • 实验内容:将SPIN的性能与zephyr-7b-beta模型进行比较。zephyr-7b-beta是在zephyr-7b-sft-full基础上,使用额外的约62k条由GPT-4评估的偏好数据(UltraFeedback Binarized数据集)进行DPO训练得到的。
  • 实验结果
    • 如图3所示,SPIN在迭代0时,仅使用现有的50k SFT数据,其平均性能已经可以与使用了更多新来源数据的DPO训练相媲美。
    • 从迭代1开始,SPIN的性能在排行榜基准上甚至超过了DPO。
  • 分析结论:SPIN在无需额外、昂贵的偏好数据的情况下,就能达到甚至超越DPO的性能,展示了其数据效率和方法的优越性。


图3. 在六个基准数据集上与DPO训练的性能比较。自博弈在迭代0时实现了与使用62k新数据的DPO训练相当的性能。在迭代1时,自博弈在大多数数据集上已经超过了DPO训练。

消融研究

  • 训练数据规模的影响
    • 实验内容:在SPIN迭代0中,使用不同规模(14k, 26k, 50k)的合成数据进行训练,并与在完整SFT数据上继续进行多轮SFT训练进行对比。
    • 实验结果:如图5所示,SPIN的性能随着训练数据规模的增加而显著提升。而继续进行SFT训练(第2和第3个epoch)带来的性能提升不足1%。
    • 分析结论:SPIN使用的合成数据比直接重用SFT数据进行训练更有效。


图5. SPIN与SFT在Open LLM Leaderboard平均得分上训练规模的缩放效应比较。对于SPIN,我们考虑大小为14k、26k和50k的训练数据,其中较大的数据集包含较小的数据集。SPIN的起点(x轴为0)是zephyr-7b-sft-full检查点,该检查点已在Ultrachat200k上微调了1个epoch。我们报告了使用SPIN在不同大小数据集上训练1个epoch后的模型性能。我们还与SFT进行了比较,其中我们在Ultrachat200k上连续微调Mistral-7B 3个epoch,并报告第一个epoch的模型性能作为起点(x轴为0)。

  • 迭代训练 vs. 多轮次训练
    • 实验内容:比较在迭代0中进行多轮(epoch)训练与进入迭代1训练所达到的性能。
    • 实验结果:如图4所示,迭代0中的性能提升主要发生在前两个epoch,之后增长停滞。延长迭代0的训练时间无法达到迭代1的性能水平。
    • 分析结论:迭代训练是SPIN的核心且必要组成部分,它能够解锁单次迭代内多轮训练无法达到的性能上限。


图4. 在迭代0期间,zephyr-7b-sft-full在50k合成数据上关于训练轮数的SPIN训练动态。我们可以观察到,迭代训练是至关重要的,因为在迭代0中进行更多的训练轮次会达到一个极限,并且无法超过迭代1。

更多任务上的表现

  • 实验内容:在更广泛的任务上评估SPIN,包括MT-Bench、Big-Bench和OpenBookQA。
  • 实验结果:SPIN在这些额外的基准测试中也表现出稳健的性能提升,没有出现明显的性能下降(见附录表6)。在MT-Bench上,经过SPIN微调的模型得分超过了vicuna-13b-v1.5。
  • 分析结论:SPIN的有效性是普适的,不局限于特定的基准测试。

A5 结论

本文引入了一种名为SPIN的新颖微调方法,旨在通过充分利用已有人工标注数据的潜力,将一个弱LLM转化为一个强LLM。该方法的核心是一个自博弈机制:主博弈方(LLM)通过微调来区分副博弈方(前一迭代的LLM)的响应与目标数据分布的响应,从而使LLM与目标数据分布迭代地对齐。因此,SPIN通过自博弈促进了LLM的迭代式自我评估和增强。与监督微调和RL微调方法相比,SPIN使LLM能够在没有额外人类数据或更强LLM反馈的情况下自我提升。实验结果表明,SPIN显著增强了LLM在各种基准上的性能,甚至超越了使用额外人类数据或AI反馈训练的模型。

  • 局限性与未来工作
    1. 性能天花板:本研究的核心是让模型分布对齐一个由人类生成的固定目标数据分布$p_{data}$,这内在地为微调后LLM的性能设定了一个上限。探索动态变化的目标数据分布是一个重要的方向,以克服这一限制,并将LLM的性能提升到该天花板之上,甚至达到超人水平。
    2. 资源消耗:考虑到合成数据生成的资源需求,另一个有前景的探索方向是减少所需合成数据的数量。

A6 附录

A 更多相关工作

课程学习(Curriculum Learning)。在深度学习中,观察到按有策略意义的顺序排列数据样本进行训练,可以比在随机打乱的数据上训练获得更好的性能。这种方法通常被称为课程学习【索引10, Bengio et al., Curriculum learning, 2009, ICML】。我们的工作与课程学习有相似之处,训练数据是迭代演变的——从容易与人类标注数据区分的响应开始,逐渐进展到更具挑战性的实例。

生成对抗网络(Generative Adversarial Networks, GANs)。GANs【索引32, Goodfellow et al., Generative adversarial nets, 2014, NeurIPS】是一类独特的生成模型。值得注意的是,我们在(4.2)中定义的目标函数与Relativistic GAN【索引42, Jolicoeur-Martineau, The relativistic discriminator: a key element missing from standard gan, 2018, arXiv】相似,并且在线性损失下可简化为Wasserstein GAN【索引3, Arjovsky et al., Wasserstein generative adversarial networks, 2017, ICML】中的IPM框架。然而,我们的方法在函数类的选择和训练过程上都有所不同。与需要训练分离的判别器和策略网络的方法(如GAIL【索引40, Ho and Ermon, Generative adversarial imitation learning, 2016, NeurIPS】)相比,SPIN依赖于自博弈,其中主博弈方和副博弈方是来自两个连续迭代的同一个LLM。

使用AI反馈进行对齐。对齐的目标是微调LLM以符合人类意图。除了使用人类示范,AI反馈也正成为对齐过程中的关键组成部分。例如,Constitutional AI【索引6, Bai et al., Constitutional ai: Harmlessness from ai feedback, 2022b, arXiv】利用AI反馈通过监督学习和强化学习(RL)相结合的方式来对齐语言模型。自批判模型【索引83, Saunders et al., Self-critiquing models for assisting human evaluators, 2022, arXiv】则利用LLM自身通过行为克隆生成自然语言批判,以协助人类评估者。

B 实验

B.1 超参数和实现细节

我们使用Alignment Handbook库【索引96, Tunstall et al., The alignment handbook, 2023b】作为我们自博弈微调方法SPIN的代码库,该库包括DeepSpeed ZeRO-3【索引79, Rajbhandari et al., Zero: Memory optimizations toward training trillion parameter models, 2020, SC20】和FlashAttention-2【索引23, Dao, Flashattention-2: Faster attention with better parallelism and work partitioning, 2023, arXiv】以降低训练成本。我们使用RMSProp【索引39, Hinton et al., Neural networks for machine learning lecture 6a overview of mini-batch gradient descent, 2012】优化器对所有迭代进行模型训练,不设权重衰减,这在对齐LLM的微调中很常用。全局批次大小为64,预热步数为10%,使用bfloat16精度。我们将迭代0和1的峰值学习率设置为5e-7,并在迭代2和3时将此峰值学习率衰减至1e-7,因为我们接近自博弈微调的末尾。最后,我们选择β = 0.1,最大序列长度为2048个token,与【索引96, Tunstall et al., The alignment handbook, 2023b】中的设置一致。我们注意到,在最后一个迭代(iter-3)中,当模型接近收敛时,我们将β的值增加到5.0。我们使用Accelerate库【索引34, Gugger et al., Accelerate: Training and inference at scale made simple, efficient and adaptable, 2022】通过多GPU分布式推理生成我们的合成数据,全局批次大小为64。我们采用“### Instruction: {prompt}\n\n### Response: ”作为提示模板,这在【索引91, Taori et al., Stanford alpaca: An instruction-following llama model, 2023】中很常用。对于包含多轮对话的Ultrachat200k,我们仅采样第一轮作为我们的提示和基准答案对。

表1. HuggingFace Open LLM Leaderboard的详细信息。对于每个评估数据集,我们展示了few-shot示例的数量和用于评估的指标。

B.2 训练开销

训练开销主要源于数据生成。SPIN引入的成本开销主要是从我们训练的LLM中生成合成数据。微调过程的计算成本与SFT和DPO相当。我们在表2中报告了SPIN的生成和训练时间。结果是在一台配备8个A100(80G)GPU的机器上获得的。每64个样本,生成时间为6.69秒,训练时间为10秒。

表2. 不同迭代的生成和训练时间

很明显,在每次迭代中,生成时间被训练时间所主导。表2中的估计时间是基于我们每次迭代生成50k个样本的事实。请注意,从iter 1到iter 3的训练时间翻倍是由于使用了双倍大小的数据集(前一次迭代的50k合成数据和当前迭代的50k合成数据的组合),正如我们在6.1节中讨论的那样。

B.3 SPIN+DPO的附加实验结果

SPIN可与RL微调结合。SPIN仅需SFT数据即可在传统SFT阶段之上进行改进,并且可以置于SFT和RL微调之间。假设提供了额外的偏好数据,我们可以使用这些额外数据,在SPIN之后通过RL微调进一步提高模型性能。从SPIN迭代3开始,我们进一步使用DPO在来自UltraFeedback Binarized数据集【索引22, Cui et al., Ultrafeedback: Boosting language models with high-quality feedback, 2023】的62k偏好数据上对模型进行两个epoch的训练,该数据集包含由GPT-4评估的选中和拒绝的响应。详细性能见表3。

表3. 基于zephyr-7b-sft-full的SPIN + DPO在HuggingFace Open LLM Leaderboard数据集上的性能,与所有基线进行比较。我们还在Average列中表示了相比上一迭代的平均提升。

我们可以观察到,通过SPIN训练的检查点可以通过DPO进一步改进,平均性能提升0.89%。值得注意的是,在TruthfulQA基准上的改进尤为显著,约为5%。

B.4 更多实验结果

详细性能数据。在表4中,我们展示了SPIN在不同迭代次数下在Open LLM Leaderboard中每个任务上的详细性能。在表5中,我们还展示了在Ultrachat200k上对zephyr-7b-sft-full进行SFT一轮后的性能。虽然使用来自zephyr-7b-sft-full的合成数据进行自博弈微调能有效提升其性能,但简单地再次在SFT数据上进行微调会导致性能下降,这与图5中的观察结果相似。

表4. 基于zephyr-7b-sft-full的SPIN在HuggingFace Open LLM Leaderboard数据集上的测试性能。我们还在Average列中表示了相比上一迭代的平均提升。

表5. zephyr-7b-sft-full在Ultrachat200k上再微调1个epoch后在HuggingFace Open LLM基准数据集上的测试性能。SFT未能进一步利用微调数据来增强性能,甚至导致性能下降。

更多任务上的深入研究。在这里,我们进一步研究了SPIN在更广泛任务上的性能,除了Open LLM Leaderboard任务外,还包括MT-Bench【索引109, Zheng et al., Judging llm-as-a-judge with mt-bench and chatbot arena, 2023, arXiv】、Big-Bench【索引9, bench authors, Beyond the imitation game: Quantifying and extrapolating the capabilities of language models, 2023, Transactions on Machine Learning Research】和OpenBookQA【索引67, Mihaylov et al., Can a suit of armor conduct electricity? a new dataset for open book question answering, 2018, EMNLP】。具体来说,我们使用了Big-Bench-Hard中的以下任务进行更全面的评估,包括因果判断(因果推理)、体育理解(常识推理)和形式谬误(逻辑推理)。在表6中,我们展示了SPIN在MT-Bench以及Big-Bench任务上的得分结果。在图6中,我们详细说明了模型在MT-Bench上针对不同类型问题的性能。我们可以看到,除了HuggingFace基准测试之外,SPIN在各种任务上的性能都有显著的稳健提升,没有出现重大退化。值得注意的是,在MT-Bench上,经SPIN微调的模型的性能已超过vicuna-13b-v1.5【索引16, Chiang et al., Vicuna: An open-source chatbot impressing gpt-4 with 90%* chatgpt quality, 2023】的6.57分。

表6. 在其他推理基准数据集上,SPIN在不同迭代和zephyr-7b-sft-full的测试性能。我们报告了MT-Bench的平均分和Big Bench数据集在标准few-shot CoT评估下的准确率。在OpenBookQA上,我们报告了使用1-shot示例的acc_norm,如Anil等人(2023)所用。与Open LLM Leaderboard评估类似,我们观察到在其他基准任务上的性能稳步提升,没有显著退化。


图6. 模型在MT-Bench上的性能。我们比较了SPIN在不同迭代与基础SFT模型的表现。从迭代1开始,我们通过SPIN微调的模型在所有评估方面都稳健地优于SFT检查点。

B.5 生成示例

在表7和表8中,我们进一步提供了我们通过SPIN在不同迭代中微调的模型的生成示例。我们可以观察到,与SFT检查点的生成相比,响应质量有所提高。同时,更高迭代次数的模型生成内容通常比迭代0更简洁,并且更像基准答案。

表7. 我们通过SPIN在不同迭代中微调的模型生成示例。

表8. 我们通过SPIN在不同迭代中微调的另一个模型生成示例。

C 第5节中定理的证明

C.1 定理5.2的证明

定理5.2的证明。首先,我们证明定理5.2中的“充分性”。由于$p_{data}(\cdot|x) = p_{\theta_t}(\cdot|x)$,根据y和y'的对称性,对于任意$\theta \in \Theta$我们有:

其中的不等式是由于琴生不等式(回顾假设5.1中$\ell$是凸的)。因此,我们有$L_{SPIN}(\theta, \theta_t) \ge \ell(0) = L_{SPIN}(\theta_t, \theta_t)$,这意味着$\theta_t$是(4.7)的全局最优解。因此,在点$\theta_t$处的梯度为零,这可以推断出$\theta_{t+1} = \theta_t$。

接下来,我们证明“必要性”。定义$g(\lambda)$如下:

那么我们有$g(0) = \ell(0)$和

最后一个不等式是由于条件$\ell'(0) < 0$。因此,存在一个$\lambda_0$,使得对于所有$0 < \lambda < \lambda_0$,我们有$g(\lambda) < \ell(0)$。选择$\theta^*$使得$p_{\theta^*}(y|x) = p_{data}(y|x)$。对于那些$0 < \lambda < \lambda_0$,我们有:

其中第二个等式成立是由于$p_{\theta^*}(\cdot|x)$的选择,而不等式成立是由于$\lambda$的选择。因此,我们得出结论,如果$p_{\theta_t}(\cdot|x) \neq p_{data}(\cdot|x)$,则$\theta_t$不是(4.7)的全局最优解。□

C.2 定理5.4的证明

在证明定理5.4之前,我们需要以下辅助引理。

引理 C.1。假设$\ell(t) = \log(1 + \exp(-t))$,且对于$a, b > 0$,以下不等式成立:

等号当且仅当$t = \log(a/b)$时成立。

引理 C.1 的证明。定义$g(t) = a\ell(t) + b\ell(-t) = a \log(1 + \exp(-t)) + b \log(1 + \exp(t))$,那么我们有

因此,当$t < \log(a/b)$时$g'(t) < 0$,当$t > \log(a/b)$时$g'(t) > 0$,这表明g在$t = \log(a/b)$时达到最小值,从而完成证明。□

引理C.1表明,$a\ell(t) + b\ell(-t)$的全局最小值在$t = \log(a/b)$时取得。基于引理C.1,我们可以进一步证明,如果我们忽略约束集$F_t$,(4.2)对于逻辑损失函数有一个闭式解。

引理 C.2。记$p^+(y, y', x) = q(x) \cdot p_{data}(y|x) \cdot p_{\theta_t}(y'|x)$和$p^-(y, y', x) = q(x) \cdot p_{\theta_t}(y'|x) \cdot p_{data}(y|x)$,

其中$JSD(p^+ \Vert p^-)$表示Jensen-Shannon散度,定义如下

其中$KL(\cdot \Vert \cdot)$是KL散度。JSD总是非负的,且当且仅当$p^+$和$p^-$相同时为零。此外,全局最小值$\log 2 - JSD(p^+ \Vert p^-)$由$f^*$达到,当且仅当

其中$Z(x)$是任何可能依赖于x的函数。

引理 C.2的证明。我们将目标函数重写为以下公式,

其中不等式是由于引理C.1中的$a\ell(t) + b\ell(-t) \ge a \log(1 + b/a) + b \log(1 + a/b)$,其中$a = q(x)p_{data}(y|x)p_{\theta_t}(y'|x)$,$b = q(x)p_{data}(y'|x)p_{\theta_t}(y|x)$,$t = f(x, y) - f(x, y')$。等式(i)成立当且仅当以下方程对几乎所有x, y, y'都成立,

方程(C.1)等价于

对几乎所有x, y, y'成立。因此,等式(i)成立当且仅当存在某个Z(x)使得

回顾$p^+(y, y'|x) = p_{data}(y|x) \cdot p_{\theta_t}(y|x)$和$p^-(y, y'|x) = p_{\theta_t}(y|x) \cdot p_{data}(y|x)$。那么,(i)的右侧可以写成


最后一个等式是根据JSD的定义。这完成了证明。

引理C.2为(4.2)提供了一个闭式解,如果我们忽略约束集$F_t$。如果这个闭式解属于$F_t$,那么它也应该是(4.2)的解。这一观察是证明定理5.4的关键。

定理5.4的证明。在定理5.4的条件下,存在一个$p_{\theta}$使得

因此,存在一个函数Z(x)使得

对(C.2)两边取对数函数得到

根据引理C.2,$f^*(x, y) = \lambda \log(Z_b(x)) + \log \left( \frac{p_{data}(y|x)}{p_{\theta_t}(y|x)} \right)$是以下最小化问题的全局最小值,

由于$f^* \in F_t$,$f^*(x, y) = \lambda \log(Z_b(x)) + \log \left( \frac{p_{data}(y|x)}{p_{\theta_t}(y|x)} \right)$也是优化问题(4.2)的全局最优解,

因此,我们证明了

由于$\theta_{t+1}$是$L_{SPIN}(\theta, \theta_t)$的全局最小值。那么根据(C.4),$\lambda \log \left( \frac{p_{\theta_{t+1}}(y|x)}{p_{\theta_t}(y|x)} \right)$应该是问题(C.3)的全局最小值。根据引理C.2,存在Z(x)使得

这导致了$p_{\theta_{t+1}}(y|x) \propto p_{\theta_t}(y|x) \left( \frac{p_{data}(y|x)}{p_{\theta_t}(y|x)} \right)^{1/\lambda}$的结果。