一文七问|自博弈微调(Self-Play Fine-Tuning)将弱语言模型转换为强语言模型
### 导读 *** 加州大学最近的研究介绍了一种名为 SPIN(Self Play fIne tuNing)的新技术,该技术灵感来源于 AlphaGo Zero 和 AlphaZero 等游戏中的自我对弈机制。SPIN 旨在使大语言模型(LLM)能够通过自我对弈进行训练,从而消除对专业注释者的需求,无论是人类还是更高级的模型(如 GPT-4)。该技术通过一系列迭代训练过程,帮助语言模型区分自身生成的响应与人类生成的响应。最终目标是开发出一种语言模型,使其产生的响应与人类产生的响应几乎无法区分。 ### 论文简介 *** #### 标题 Self-Play Fine-Tuning Converts Weak Language Models to Strong Language Models #### 作者 Zixiang Chen <sup>1</sup> , Yihe Den g<sup>1</sup>, Huizhuo Yuan <sup>1</sup> , Kaixuan Ji <sup>1</sup> , Quanquan Gu <sup>1</sup> #### 单位 Department of Computer Science, University of California ### Seven Questions for a Paper *** #### 1.研究动机是什么? 现有的监督微调(SFT)和强化学习(RL)微调方法在进一步提升LLM性能方面存在局限性。SFT方法需要大量标注数据,而RL微调需要构建偏好数据集,这两种方法都需要大量人力和资源投入。在没有人工或AI反馈的情况下,如何有效地优化LLM的性能成为一个重要的研究问题。 *** #### 2.主要解决了什么问题? 为了解决如何在不需要额外人工标注数据的情况下,通过自我对弈的方式将弱语言模型转化为强大的语言模型,从而提高语言模型的性能。作者提出了一种新的微调方法Self-Play fIne-tuNing (SPIN),利用自我对弈的机制来逐步提升语言模型的性能,充分发挥人工标注数据在监督微调中的潜力。此外从理论上证明了该方法的训练目标函数的全局最优解只有在语言模型的策略与目标数据分布一致时才能达到。 *** #### 3.所提的方法是什么? SPIN 是一种新的微调方法,它利用自我对弈的机制来逐步提升语言模型的性能,充分发挥人工标注数据在监督微调中的潜力 。具体来说,SPIN 从一个经过监督微调的模型开始,让语言模型通过与自身的实例进行对弈来不断提升自身的能力 。语言模型会生成自己的训练数据,并通过区分这些自生成的响应和人工标注数据获得的响应来优化自己的策略 。其中主玩家的目标是区分由LLM生成的响应和由人类生成的响应。与此同时,对手的角色是产生与人类反应无法区分的反应。在这个过程中,对手是前一次迭代中的旧LLM,而主玩家是当前迭代中要学习的新LLM。在迭代更新的过程中包含以下两个步骤:(1)训练主玩家(2)更新对手玩家。 首先,我们需要给出一些相关定义。$p_{\theta}$表示利用$\theta$参数化的LLM。序列$x=[x_1,...,x_n]$作为输入,也称为Prompt。序列$y=[y_1,...,y_m]$对应输入产生的响应,因此响应$y$可以认为是条件分布概率$p_\theta(\cdot|x)$的一个采样。 $$ f_{t+1}=\underset{f \in \mathcal{F}_t}{\operatorname{argmin}} \mathbb{E}\left[\ell\left(f(\mathbf{x}, \mathbf{y})-f\left(\mathbf{x}, \mathbf{y}^{\prime}\right)\right)\right] \qquad \qquad\qquad \qquad\qquad\qquad\qquad\quad \tag{1} $$ 公式1给出了**主玩家**策略更新时的目标函数 ,代表玩家 $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)。$ $q(\cdot)$表示在一个特定任务下的分布,$p_{data}(\cdot|x)$为与训练数据高质量相关的响应$y$的概率分布,$p_{\theta_t}(\cdot|x)$与之类似。$\mathcal{F}_t$是一系列高度表达的函数类,我们将在后面的演绎中确定。$\mathcal{F}_t$中的下标$t$是因为函数类依赖于$p_{\theta_t}$ 。$f_{t+1}(x,y)$反应了主玩家相信响应$y$来自$p_{data}$而不是$p_{\theta_t}$的程度。理想情况下,主参与者在$y\sim p_{data}(\cdot|x)$情况下产生的值要比在$y'\sim p_{\theta_t}(\cdot|x)$下高。$\ell(\cdot)$是一个单调递减的凸函数,文章中使用的是$\ell(t)=log(1+e^{-t})$。 现在假设我们已经优化了主玩家$f_{t+1}$,它可在特定函数类$\mathcal{F}_t$下以区分$p_{data}$和$p_{\theta_t}$,也就是说当对同一个提示$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}$没有区别的响应。 $$ \underset{p}{\operatorname{argmax}} \mathbb{E}_{\mathbf{x} \sim q(\cdot), \mathbf{y} \sim p(\cdot \mid \mathbf{x})}\left[f_{t+1}(\mathbf{x}, \mathbf{y})\right]-\lambda \mathbb{E}_{\mathbf{x} \sim q(\cdot)} \mathrm{KL}\left(p(\cdot \mid \mathbf{x}) \| p_{\boldsymbol{\theta}_t}(\cdot \mid \mathbf{x})\right)\quad\quad\quad\tag{2} $$ 公式2给出了对手玩家的跟新策略,为了防止$p_{\theta_{t+1}}$与$p_{\theta_t}$的过度偏离并稳定自博弈过程,加入了一个Kullback-Leibler (KL)正则化项。式中$\lambda>0$为正则化参数。存在一个闭合解$\widehat{p}(\cdot|x)$。 $$ \widehat{p}(\mathbf{y} \mid \mathbf{x}) \propto p_{\boldsymbol{\theta}_t}(\mathbf{y} \mid \mathbf{x}) \exp \left(\lambda^{-1} f_{t+1}(\mathbf{x}, \mathbf{y})\right)\qquad\qquad\qquad \qquad\qquad\qquad\qquad\tag{3} $$ 但是$\widehat{p}(\cdot|x)$并不能保证属于LLM空间$\{p_\theta(\cdot|x)|\theta\in\Theta\}$。因此我们这个希望状态空间中的闭合解$\widehat{p}$可以用参数为$\theta$的LLM实现,即$p_\theta(\cdot|x)=\widehat{p}(y|x)$。此时变成了求解在给定$f_{t+1}(\mathbf{x}, \mathbf{y})=\lambda \cdot \log \frac{p_{\boldsymbol{\theta}_{t+1}}(\mathbf{y} \mid \mathbf{x})}{p_{\boldsymbol{\theta}_{\mathrm{t}}}(\mathbf{y} \mid \mathbf{x})}$下,求解$p_\theta(\mathbf{y}\mid\mathbf{x})\propto p_{\boldsymbol{\theta}_t}(\mathbf{y}\mid \mathbf{x})\exp\left(\lambda^{-1}f_{t+1}(\mathbf{x},\mathbf{y})\right)$。其中$f_{t+1}$来自类$\mathcal{F_t}$。 $$ \mathcal{F}_t=\left\{\left.\lambda \cdot \log \frac{p_{\boldsymbol{\theta}}(\mathbf{y} \mid \mathbf{x})}{p_{\boldsymbol{\theta}_{\mathrm{t}}}(\mathbf{y} \mid \mathbf{x})} \right\rvert\, \boldsymbol{\theta} \in \boldsymbol{\Theta}\right\}\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\quad\tag{4} $$ 其中$\Theta$为所考虑的LLM的参数空间。给定(4)中Ft的选择,使用参数$\theta_{t+1}$优化(1)$f_{t+1}$,形式如下: $$ f_{t+1}(\mathbf{x}, \mathbf{y})=\lambda \cdot \log \frac{p_{\boldsymbol{\theta}_{t+1}}(\mathbf{y} \mid \mathbf{x})}{p_{\boldsymbol{\theta}_{\mathrm{t}}}(\mathbf{y} \mid \mathbf{x})} \qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\tag{5} $$ 将(5)式代入(3)中得到$\widehat{p}_\theta(y|x)=p_{\theta_{t+1}}(y|x)$。换句话说,从(1)中学习到的$\theta_{t+1}$正是理想情况下对手选择的LLM参数。 *** #### 4.关键结果及结论是什么? 在该研究中,采用zephyr-7b-sft-full作为基础模型。并由HuggingFace在SFT数据集Ultrachat-200k上进一步微调。Ultra-chat200k代表了更大的UltraChat其中包括使用OpenAI的Turbo api生成的大约140万个对话。从UltraChat200k中,作者随机抽取50k提示,并使用基本模型生成响应。并使用Huggingface Open LLM排行榜作为评估基准,该排行榜包含6个不同的数据集,每个数据集都关注LLM的特定能力。具体实验结果如下: <p align="center"> <img src="https://rlchian-bbs.oss-cn-beijing.aliyuncs.com/images/2024/08/30/fe5a7382142f0714af04e9526ff06b0c.png" alt="居中图片"> </p> <center> 图1 在HuggingFace Open LLM排行榜数据集上,SPIN在不同迭代下的平均得分</center> <br> 在图1中,作者使用HuggingFace Open LLM Leaderboard作为评估来证明SPIN的有效性。在图2中,比较了在迭代0到3之后由SPIN调整的模型与基本模型zephyr-7b-sft-full在排行榜中包含的每个任务上的性能。可以观察到,通过进一步利用SFT数据集,SPIN在提高模型性能方面表现出显著的有效性,在SFT数据集上,基本模型已经进行了充分的微调。在第0次迭代中,模型响应由zephyr-7b-sft-full生成,观察到平均分数的总体提高了2.66%。在TruthfulQA和GSM8k基准测试中,改进尤为显著,分别超过5%和10%。在迭代1中,使用迭代0中的LLM模型为SPIN生成新的响应,遵循算法1中概述的过程。这次迭代产生了平均1.32%的进一步增强,在Arc Challenge和TruthfulQA基准测试中尤其显著。随后的迭代在各种任务之间继续这种增量改进的趋势。同时,迭代t+1时的改进程度自然小于迭代t时的改进程度。随着迭代训练的进行,改进程度逐渐趋近于零,说明模型在最后一次迭代时达到了极限点。 <p align="center"> <img src="https://rlchian-bbs.oss-cn-beijing.aliyuncs.com/images/2024/08/30/6095f4163f2318fee32003794d641ec8.png" alt="居中图片"> </p> <center> 图2 在六个基准数据集与DPO训练的性能比较</center> <br/> Direct Preference Optimization (DPO),与SPIN不同,DPO基于Bradley-Terry (BT) 模型: $p\left(\mathbf{y}_1 \succ\right.$ $\left.\mathbf{y}_2 \mid \mathbf{x}\right)=\frac{\exp \left(r^*\left(\mathbf{x}, \mathbf{y}_1\right)\right)}{\exp \left(r^*\left(\mathbf{x}, \mathbf{y}_1\right)\right)+\exp \left(r^*\left(\mathbf{x}, \mathbf{y}_2\right)\right)}$,最大化在没有明确奖励估计下直接策略优化的对数似然$p\left(\mathbf{y}_1 \succ \mathbf{y}_2 \mid \mathbf{x}\right)$。zephyr-7b-beta是zephyr-7b-sft-full衍生的模型,基于大约62k个偏好数据使用DPO进行训练。DPO需要人工输入或高级语言模型反馈来确定偏好,这使得数据生成成为一个相当昂贵的过程。相反,SPIN只需要初始模型本身。图2中展示了SPIN在迭代0和1(使用50k SFT数据)与DPO训练时的性能比较,来自相同的SFT检查点。可以观察到,虽然DPO利用了更多来自新来源的数据,但基于现有SFT数据的SPIN在迭代0时已经可以达到与DPO训练相当的平均性能。从迭代1开始,SPIN甚至在排行榜基准上超过了DPO的性能。 <p align="center"> <img src="https://rlchian-bbs.oss-cn-beijing.aliyuncs.com/images/2024/08/30/20597f1022660e9607a9fd1ad97ac6d8.png" alt="居中图片"> </p> <center>图3 与SFT相比,SPIN训练规模对Open LLM排行榜平均得分的规模效应</center> <br> 此外作者研究了不同训练数据大小对SPIN性能的影响。图3中展示了在迭代0期间训练大小对SPIN的影响,并与完整原始数据集的SFT进行了比较。对于SFT基线,在Ultrachat200k上对Mistral-7B进行了三个历元的完全微调,并将第一个历元性能报告为SFT图中的起点(x轴为0)。对于SPIN,以zephyr-7b-sft-full检查点作为起点,它也在Ultrachat200k上为一个epoch进行了微调。在迭代0时选择SPIN的训练大小分别为14k、26k和50k,并相应地生成数据,确保较大的数据集包含较小的数据集。在对每个训练规模进行1个epoch的自我调整后,对SPIN的表现进行评估。可以观察到,随着训练规模的增加,SPIN得到了显著的改进,而在进一步的epoch 2和3上,SFT无法产生超过1%的改进。 总结如下: - SPIN 方法可以显著提升语言模型在各种基准测试中的性能,甚至优于通过直接偏好优化加上额外的 GPT-4 偏好数据训练的模型。 - 理论分析表明,SPIN 的优化过程自然会停在语言模型的分布与目标数据分布一致的点上,这表明了该方法的有效性。 - 实验结果表明,即使不引入新的人工标注数据,SPIN 在第0次迭代就可以达到利用更多数据的 DPO 训练的性能水平。此外,迭代训练是 SPIN 的必要组成部分,可以突破多轮训练的局限性。 - SPIN 在 MT-Bench、Big-Bench 和 OpenBookQA 等更广泛的任务上也表现出了显著的性能提升,证明了其在各类任务上的鲁棒性。 *** #### 5.创新点在哪里? 该篇论文提出了一种新的微调方法,称为自博弈微调(SPIN),它从监督微调演化而来。SPIN允许语言模型参与自我博弈,消除了对专家注(如人类)或更高级的语言模型参(如GPT-4)的需要。SPIN方法可以显著提升语言模型在各种基准测试中的性能,甚至优于通过直接偏好优化加上额外的GPT-4偏好数据训练的模型。 *** #### 6.有值得阅读的相关文献吗? 1. Cheng 等人<sup>1</sup> 的工作中提到了Adversarial Preference Optimization (APO)方法,该方法可以显著提升语言模型在各种基准测试中的性能。 2. Stiennon等人 <sup>2</sup> 的工作中介绍了一种基于人类反馈的语言模型训练方法,可以让模型更好地遵循指令。 [1] [Cheng, P., Yang, Y., Li, J., Dai, Y., and Du, N. Adversarialpreference optimization, 2023.](https://arxiv.org/abs/2311.08045) [2] [Stiennon, N., Ouyang, L., Wu, J., Ziegler, D., Lowe, R.,Voss, C., Radford, A., Amodei, D., and Christiano,P. F. Learning to summarize with human feedback. Advances in Neural Information Processing Systems, 33:3008–3021, 2020]( https://arxiv.org/abs/2009.01325) *** #### 7.综合评价如何? SPIN方法在提升语言模型性能方面表现出了显著的效果。在HuggingFace Open LLM Leaderboard基准测试中,SPIN方法从第0次迭代开始就能显著提升模型的平均得分,并且在后续迭代中持续改善。特别是在TruthfulQA和GSM8k等任务上,SPIN方法的提升幅度超过5%和10%。此外,SPIN方法还能有效提升模型在其他推理基准测试如MT-Bench、Big Bench和OpenBookQA上的性能。从生成示例来看,随着迭代次数的增加,模型生成的回答也变得更加简洁和贴近实际。总的来说,SPIN方法是一种有效的语言模型优化方法,能够显著提升模型在各种基准测试上的性能,值得进一步研究和应用。 ### 作者简介 *** 杨企鹏,中科院自动化所 2023级硕士研究生(联合培养),本科毕业于南京邮电大学,研究兴趣包括强化学习,大语言模型等。 联系邮箱:<yangqipeng23@mails.ucas.ac.cn> ### 联系我们 *** 欢迎关注RLCN公众号,获取RL相关资讯。 Email: rlchinacamp@163.com 
导读
加州大学最近的研究介绍了一种名为 SPIN(Self Play fIne tuNing)的新技术,该技术灵感来源于 AlphaGo Zero 和 AlphaZero 等游戏中的自我对弈机制。SPIN 旨在使大语言模型(LLM)能够通过自我对弈进行训练,从而消除对专业注释者的需求,无论是人类还是更高级的模型(如 GPT-4)。该技术通过一系列迭代训练过程,帮助语言模型区分自身生成的响应与人类生成的响应。最终目标是开发出一种语言模型,使其产生的响应与人类产生的响应几乎无法区分。
论文简介
标题
Self-Play Fine-Tuning Converts Weak Language Models to Strong Language Models
作者
Zixiang Chen 1 , Yihe Den g1, Huizhuo Yuan 1 , Kaixuan Ji 1 , Quanquan Gu 1
单位
Department of Computer Science, University of California
Seven Questions for a Paper
1.研究动机是什么?
现有的监督微调(SFT)和强化学习(RL)微调方法在进一步提升LLM性能方面存在局限性。SFT方法需要大量标注数据,而RL微调需要构建偏好数据集,这两种方法都需要大量人力和资源投入。在没有人工或AI反馈的情况下,如何有效地优化LLM的性能成为一个重要的研究问题。
2.主要解决了什么问题?
为了解决如何在不需要额外人工标注数据的情况下,通过自我对弈的方式将弱语言模型转化为强大的语言模型,从而提高语言模型的性能。作者提出了一种新的微调方法Self-Play fIne-tuNing (SPIN),利用自我对弈的机制来逐步提升语言模型的性能,充分发挥人工标注数据在监督微调中的潜力。此外从理论上证明了该方法的训练目标函数的全局最优解只有在语言模型的策略与目标数据分布一致时才能达到。
3.所提的方法是什么?
SPIN 是一种新的微调方法,它利用自我对弈的机制来逐步提升语言模型的性能,充分发挥人工标注数据在监督微调中的潜力 。具体来说,SPIN 从一个经过监督微调的模型开始,让语言模型通过与自身的实例进行对弈来不断提升自身的能力 。语言模型会生成自己的训练数据,并通过区分这些自生成的响应和人工标注数据获得的响应来优化自己的策略 。其中主玩家的目标是区分由LLM生成的响应和由人类生成的响应。与此同时,对手的角色是产生与人类反应无法区分的反应。在这个过程中,对手是前一次迭代中的旧LLM,而主玩家是当前迭代中要学习的新LLM。在迭代更新的过程中包含以下两个步骤:(1)训练主玩家(2)更新对手玩家。
首先,我们需要给出一些相关定义。pθ表示利用θ参数化的LLM。序列x=[x1,...,xn]作为输入,也称为Prompt。序列y=[y1,...,ym]对应输入产生的响应,因此响应y可以认为是条件分布概率pθ(⋅∣x)的一个采样。
ft+1=f∈FtargminE[ℓ(f(x,y)−f(x,y′))](1)
公式1给出了主玩家策略更新时的目标函数 ,代表玩家 ft+1最大化目标数据分布pdata和对手玩家的分布pθt之间的差值,其中x∼q(⋅),y∼pdata(⋅∣x),y′∼pθt(⋅∣x)。 q(⋅)表示在一个特定任务下的分布,pdata(⋅∣x)为与训练数据高质量相关的响应y的概率分布,pθt(⋅∣x)与之类似。Ft是一系列高度表达的函数类,我们将在后面的演绎中确定。Ft中的下标t是因为函数类依赖于pθt 。ft+1(x,y)反应了主玩家相信响应y来自pdata而不是pθt的程度。理想情况下,主参与者在y∼pdata(⋅∣x)情况下产生的值要比在y′∼pθt(⋅∣x)下高。ℓ(⋅)是一个单调递减的凸函数,文章中使用的是ℓ(t)=log(1+e−t)。
现在假设我们已经优化了主玩家ft+1,它可在特定函数类Ft下以区分pdata和pθt,也就是说当对同一个提示x给出两个响应y和y′时,ft+1评估ft+1(x,y)和ft+1(x,y′)的值。由此推断,较高值的响应来自真实数据分布pdata,较低值的响应归属于LLM pθt。随后,对手玩家的目标是找到一个更好的LLM,生成与主玩家的pdata没有区别的响应。
pargmaxEx∼q(⋅),y∼p(⋅∣x)[ft+1(x,y)]−λEx∼q(⋅)KL(p(⋅∣x)∥pθt(⋅∣x))(2)
公式2给出了对手玩家的跟新策略,为了防止pθt+1与pθt的过度偏离并稳定自博弈过程,加入了一个Kullback-Leibler (KL)正则化项。式中λ>0为正则化参数。存在一个闭合解p(⋅∣x)。
p(y∣x)∝pθt(y∣x)exp(λ−1ft+1(x,y))(3)
但是p(⋅∣x)并不能保证属于LLM空间{pθ(⋅∣x)∣θ∈Θ}。因此我们这个希望状态空间中的闭合解p可以用参数为θ的LLM实现,即pθ(⋅∣x)=p(y∣x)。此时变成了求解在给定ft+1(x,y)=λ⋅logpθt(y∣x)pθt+1(y∣x)下,求解pθ(y∣x)∝pθt(y∣x)exp(λ−1ft+1(x,y))。其中ft+1来自类Ft。
Ft={λ⋅logpθt(y∣x)pθ(y∣x)∣∣∣∣∣θ∈Θ}(4)
其中Θ为所考虑的LLM的参数空间。给定(4)中Ft的选择,使用参数θt+1优化(1)ft+1,形式如下:
ft+1(x,y)=λ⋅logpθt(y∣x)pθt+1(y∣x)(5)
将(5)式代入(3)中得到pθ(y∣x)=pθt+1(y∣x)。换句话说,从(1)中学习到的θt+1正是理想情况下对手选择的LLM参数。
4.关键结果及结论是什么?
在该研究中,采用zephyr-7b-sft-full作为基础模型。并由HuggingFace在SFT数据集Ultrachat-200k上进一步微调。Ultra-chat200k代表了更大的UltraChat其中包括使用OpenAI的Turbo api生成的大约140万个对话。从UltraChat200k中,作者随机抽取50k提示,并使用基本模型生成响应。并使用Huggingface Open LLM排行榜作为评估基准,该排行榜包含6个不同的数据集,每个数据集都关注LLM的特定能力。具体实验结果如下:
在图1中,作者使用HuggingFace Open LLM Leaderboard作为评估来证明SPIN的有效性。在图2中,比较了在迭代0到3之后由SPIN调整的模型与基本模型zephyr-7b-sft-full在排行榜中包含的每个任务上的性能。可以观察到,通过进一步利用SFT数据集,SPIN在提高模型性能方面表现出显著的有效性,在SFT数据集上,基本模型已经进行了充分的微调。在第0次迭代中,模型响应由zephyr-7b-sft-full生成,观察到平均分数的总体提高了2.66%。在TruthfulQA和GSM8k基准测试中,改进尤为显著,分别超过5%和10%。在迭代1中,使用迭代0中的LLM模型为SPIN生成新的响应,遵循算法1中概述的过程。这次迭代产生了平均1.32%的进一步增强,在Arc Challenge和TruthfulQA基准测试中尤其显著。随后的迭代在各种任务之间继续这种增量改进的趋势。同时,迭代t+1时的改进程度自然小于迭代t时的改进程度。随着迭代训练的进行,改进程度逐渐趋近于零,说明模型在最后一次迭代时达到了极限点。
Direct Preference Optimization (DPO),与SPIN不同,DPO基于Bradley-Terry (BT) 模型: p(y1≻ y2∣x)=exp(r∗(x,y1))+exp(r∗(x,y2))exp(r∗(x,y1)),最大化在没有明确奖励估计下直接策略优化的对数似然p(y1≻y2∣x)。zephyr-7b-beta是zephyr-7b-sft-full衍生的模型,基于大约62k个偏好数据使用DPO进行训练。DPO需要人工输入或高级语言模型反馈来确定偏好,这使得数据生成成为一个相当昂贵的过程。相反,SPIN只需要初始模型本身。图2中展示了SPIN在迭代0和1(使用50k SFT数据)与DPO训练时的性能比较,来自相同的SFT检查点。可以观察到,虽然DPO利用了更多来自新来源的数据,但基于现有SFT数据的SPIN在迭代0时已经可以达到与DPO训练相当的平均性能。从迭代1开始,SPIN甚至在排行榜基准上超过了DPO的性能。
此外作者研究了不同训练数据大小对SPIN性能的影响。图3中展示了在迭代0期间训练大小对SPIN的影响,并与完整原始数据集的SFT进行了比较。对于SFT基线,在Ultrachat200k上对Mistral-7B进行了三个历元的完全微调,并将第一个历元性能报告为SFT图中的起点(x轴为0)。对于SPIN,以zephyr-7b-sft-full检查点作为起点,它也在Ultrachat200k上为一个epoch进行了微调。在迭代0时选择SPIN的训练大小分别为14k、26k和50k,并相应地生成数据,确保较大的数据集包含较小的数据集。在对每个训练规模进行1个epoch的自我调整后,对SPIN的表现进行评估。可以观察到,随着训练规模的增加,SPIN得到了显著的改进,而在进一步的epoch 2和3上,SFT无法产生超过1%的改进。
总结如下:
- SPIN 方法可以显著提升语言模型在各种基准测试中的性能,甚至优于通过直接偏好优化加上额外的 GPT-4 偏好数据训练的模型。
- 理论分析表明,SPIN 的优化过程自然会停在语言模型的分布与目标数据分布一致的点上,这表明了该方法的有效性。
- 实验结果表明,即使不引入新的人工标注数据,SPIN 在第0次迭代就可以达到利用更多数据的 DPO 训练的性能水平。此外,迭代训练是 SPIN 的必要组成部分,可以突破多轮训练的局限性。
- SPIN 在 MT-Bench、Big-Bench 和 OpenBookQA 等更广泛的任务上也表现出了显著的性能提升,证明了其在各类任务上的鲁棒性。
5.创新点在哪里?
该篇论文提出了一种新的微调方法,称为自博弈微调(SPIN),它从监督微调演化而来。SPIN允许语言模型参与自我博弈,消除了对专家注(如人类)或更高级的语言模型参(如GPT-4)的需要。SPIN方法可以显著提升语言模型在各种基准测试中的性能,甚至优于通过直接偏好优化加上额外的GPT-4偏好数据训练的模型。
6.有值得阅读的相关文献吗?
-
Cheng 等人1 的工作中提到了Adversarial Preference Optimization (APO)方法,该方法可以显著提升语言模型在各种基准测试中的性能。
-
Stiennon等人 2 的工作中介绍了一种基于人类反馈的语言模型训练方法,可以让模型更好地遵循指令。
[1] Cheng, P., Yang, Y., Li, J., Dai, Y., and Du, N. Adversarialpreference optimization, 2023.
7.综合评价如何?
SPIN方法在提升语言模型性能方面表现出了显著的效果。在HuggingFace Open LLM Leaderboard基准测试中,SPIN方法从第0次迭代开始就能显著提升模型的平均得分,并且在后续迭代中持续改善。特别是在TruthfulQA和GSM8k等任务上,SPIN方法的提升幅度超过5%和10%。此外,SPIN方法还能有效提升模型在其他推理基准测试如MT-Bench、Big Bench和OpenBookQA上的性能。从生成示例来看,随着迭代次数的增加,模型生成的回答也变得更加简洁和贴近实际。总的来说,SPIN方法是一种有效的语言模型优化方法,能够显著提升模型在各种基准测试上的性能,值得进一步研究和应用。
作者简介
杨企鹏,中科院自动化所 2023级硕士研究生(联合培养),本科毕业于南京邮电大学,研究兴趣包括强化学习,大语言模型等。
联系邮箱:yangqipeng23@mails.ucas.ac.cn
联系我们
欢迎关注RLCN公众号,获取RL相关资讯。
Email: rlchinacamp@163.com
导读
加州大学最近的研究介绍了一种名为 SPIN(Self Play fIne tuNing)的新技术,该技术灵感来源于 AlphaGo Zero 和 AlphaZero 等游戏中的自我对弈机制。SPIN 旨在使大语言模型(LLM)能够通过自我对弈进行训练,从而消除对专业注释者的需求,无论是人类还是更高级的模型(如 GPT-4)。该技术通过一系列迭代训练过程,帮助语言模型区分自身生成的响应与人类生成的响应。最终目标是开发出一种语言模型,使其产生的响应与人类产生的响应几乎无法区分。
论文简介
标题
Self-Play Fine-Tuning Converts Weak Language Models to Strong Language Models
作者
Zixiang Chen 1 , Yihe Den g1, Huizhuo Yuan 1 , Kaixuan Ji 1 , Quanquan Gu 1
单位
Department of Computer Science, University of California
Seven Questions for a Paper
1.研究动机是什么?
现有的监督微调(SFT)和强化学习(RL)微调方法在进一步提升LLM性能方面存在局限性。SFT方法需要大量标注数据,而RL微调需要构建偏好数据集,这两种方法都需要大量人力和资源投入。在没有人工或AI反馈的情况下,如何有效地优化LLM的性能成为一个重要的研究问题。
2.主要解决了什么问题?
为了解决如何在不需要额外人工标注数据的情况下,通过自我对弈的方式将弱语言模型转化为强大的语言模型,从而提高语言模型的性能。作者提出了一种新的微调方法Self-Play fIne-tuNing (SPIN),利用自我对弈的机制来逐步提升语言模型的性能,充分发挥人工标注数据在监督微调中的潜力。此外从理论上证明了该方法的训练目标函数的全局最优解只有在语言模型的策略与目标数据分布一致时才能达到。
3.所提的方法是什么?
SPIN 是一种新的微调方法,它利用自我对弈的机制来逐步提升语言模型的性能,充分发挥人工标注数据在监督微调中的潜力 。具体来说,SPIN 从一个经过监督微调的模型开始,让语言模型通过与自身的实例进行对弈来不断提升自身的能力 。语言模型会生成自己的训练数据,并通过区分这些自生成的响应和人工标注数据获得的响应来优化自己的策略 。其中主玩家的目标是区分由LLM生成的响应和由人类生成的响应。与此同时,对手的角色是产生与人类反应无法区分的反应。在这个过程中,对手是前一次迭代中的旧LLM,而主玩家是当前迭代中要学习的新LLM。在迭代更新的过程中包含以下两个步骤:(1)训练主玩家(2)更新对手玩家。
首先,我们需要给出一些相关定义。pθ表示利用θ参数化的LLM。序列x=[x1,...,xn]作为输入,也称为Prompt。序列y=[y1,...,ym]对应输入产生的响应,因此响应y可以认为是条件分布概率pθ(⋅∣x)的一个采样。
ft+1=f∈FtargminE[ℓ(f(x,y)−f(x,y′))](1)
公式1给出了主玩家策略更新时的目标函数 ,代表玩家 ft+1最大化目标数据分布pdata和对手玩家的分布pθt之间的差值,其中x∼q(⋅),y∼pdata(⋅∣x),y′∼pθt(⋅∣x)。 q(⋅)表示在一个特定任务下的分布,pdata(⋅∣x)为与训练数据高质量相关的响应y的概率分布,pθt(⋅∣x)与之类似。Ft是一系列高度表达的函数类,我们将在后面的演绎中确定。Ft中的下标t是因为函数类依赖于pθt 。ft+1(x,y)反应了主玩家相信响应y来自pdata而不是pθt的程度。理想情况下,主参与者在y∼pdata(⋅∣x)情况下产生的值要比在y′∼pθt(⋅∣x)下高。ℓ(⋅)是一个单调递减的凸函数,文章中使用的是ℓ(t)=log(1+e−t)。
现在假设我们已经优化了主玩家ft+1,它可在特定函数类Ft下以区分pdata和pθt,也就是说当对同一个提示x给出两个响应y和y′时,ft+1评估ft+1(x,y)和ft+1(x,y′)的值。由此推断,较高值的响应来自真实数据分布pdata,较低值的响应归属于LLM pθt。随后,对手玩家的目标是找到一个更好的LLM,生成与主玩家的pdata没有区别的响应。
pargmaxEx∼q(⋅),y∼p(⋅∣x)[ft+1(x,y)]−λEx∼q(⋅)KL(p(⋅∣x)∥pθt(⋅∣x))(2)
公式2给出了对手玩家的跟新策略,为了防止pθt+1与pθt的过度偏离并稳定自博弈过程,加入了一个Kullback-Leibler (KL)正则化项。式中λ>0为正则化参数。存在一个闭合解p(⋅∣x)。
p(y∣x)∝pθt(y∣x)exp(λ−1ft+1(x,y))(3)
但是p(⋅∣x)并不能保证属于LLM空间{pθ(⋅∣x)∣θ∈Θ}。因此我们这个希望状态空间中的闭合解p可以用参数为θ的LLM实现,即pθ(⋅∣x)=p(y∣x)。此时变成了求解在给定ft+1(x,y)=λ⋅logpθt(y∣x)pθt+1(y∣x)下,求解pθ(y∣x)∝pθt(y∣x)exp(λ−1ft+1(x,y))。其中ft+1来自类Ft。
Ft={λ⋅logpθt(y∣x)pθ(y∣x)∣∣∣∣∣θ∈Θ}(4)
其中Θ为所考虑的LLM的参数空间。给定(4)中Ft的选择,使用参数θt+1优化(1)ft+1,形式如下:
ft+1(x,y)=λ⋅logpθt(y∣x)pθt+1(y∣x)(5)
将(5)式代入(3)中得到pθ(y∣x)=pθt+1(y∣x)。换句话说,从(1)中学习到的θt+1正是理想情况下对手选择的LLM参数。
4.关键结果及结论是什么?
在该研究中,采用zephyr-7b-sft-full作为基础模型。并由HuggingFace在SFT数据集Ultrachat-200k上进一步微调。Ultra-chat200k代表了更大的UltraChat其中包括使用OpenAI的Turbo api生成的大约140万个对话。从UltraChat200k中,作者随机抽取50k提示,并使用基本模型生成响应。并使用Huggingface Open LLM排行榜作为评估基准,该排行榜包含6个不同的数据集,每个数据集都关注LLM的特定能力。具体实验结果如下:
在图1中,作者使用HuggingFace Open LLM Leaderboard作为评估来证明SPIN的有效性。在图2中,比较了在迭代0到3之后由SPIN调整的模型与基本模型zephyr-7b-sft-full在排行榜中包含的每个任务上的性能。可以观察到,通过进一步利用SFT数据集,SPIN在提高模型性能方面表现出显著的有效性,在SFT数据集上,基本模型已经进行了充分的微调。在第0次迭代中,模型响应由zephyr-7b-sft-full生成,观察到平均分数的总体提高了2.66%。在TruthfulQA和GSM8k基准测试中,改进尤为显著,分别超过5%和10%。在迭代1中,使用迭代0中的LLM模型为SPIN生成新的响应,遵循算法1中概述的过程。这次迭代产生了平均1.32%的进一步增强,在Arc Challenge和TruthfulQA基准测试中尤其显著。随后的迭代在各种任务之间继续这种增量改进的趋势。同时,迭代t+1时的改进程度自然小于迭代t时的改进程度。随着迭代训练的进行,改进程度逐渐趋近于零,说明模型在最后一次迭代时达到了极限点。
Direct Preference Optimization (DPO),与SPIN不同,DPO基于Bradley-Terry (BT) 模型: p(y1≻ y2∣x)=exp(r∗(x,y1))+exp(r∗(x,y2))exp(r∗(x,y1)),最大化在没有明确奖励估计下直接策略优化的对数似然p(y1≻y2∣x)。zephyr-7b-beta是zephyr-7b-sft-full衍生的模型,基于大约62k个偏好数据使用DPO进行训练。DPO需要人工输入或高级语言模型反馈来确定偏好,这使得数据生成成为一个相当昂贵的过程。相反,SPIN只需要初始模型本身。图2中展示了SPIN在迭代0和1(使用50k SFT数据)与DPO训练时的性能比较,来自相同的SFT检查点。可以观察到,虽然DPO利用了更多来自新来源的数据,但基于现有SFT数据的SPIN在迭代0时已经可以达到与DPO训练相当的平均性能。从迭代1开始,SPIN甚至在排行榜基准上超过了DPO的性能。
此外作者研究了不同训练数据大小对SPIN性能的影响。图3中展示了在迭代0期间训练大小对SPIN的影响,并与完整原始数据集的SFT进行了比较。对于SFT基线,在Ultrachat200k上对Mistral-7B进行了三个历元的完全微调,并将第一个历元性能报告为SFT图中的起点(x轴为0)。对于SPIN,以zephyr-7b-sft-full检查点作为起点,它也在Ultrachat200k上为一个epoch进行了微调。在迭代0时选择SPIN的训练大小分别为14k、26k和50k,并相应地生成数据,确保较大的数据集包含较小的数据集。在对每个训练规模进行1个epoch的自我调整后,对SPIN的表现进行评估。可以观察到,随着训练规模的增加,SPIN得到了显著的改进,而在进一步的epoch 2和3上,SFT无法产生超过1%的改进。
总结如下:
- SPIN 方法可以显著提升语言模型在各种基准测试中的性能,甚至优于通过直接偏好优化加上额外的 GPT-4 偏好数据训练的模型。
- 理论分析表明,SPIN 的优化过程自然会停在语言模型的分布与目标数据分布一致的点上,这表明了该方法的有效性。
- 实验结果表明,即使不引入新的人工标注数据,SPIN 在第0次迭代就可以达到利用更多数据的 DPO 训练的性能水平。此外,迭代训练是 SPIN 的必要组成部分,可以突破多轮训练的局限性。
- SPIN 在 MT-Bench、Big-Bench 和 OpenBookQA 等更广泛的任务上也表现出了显著的性能提升,证明了其在各类任务上的鲁棒性。
5.创新点在哪里?
该篇论文提出了一种新的微调方法,称为自博弈微调(SPIN),它从监督微调演化而来。SPIN允许语言模型参与自我博弈,消除了对专家注(如人类)或更高级的语言模型参(如GPT-4)的需要。SPIN方法可以显著提升语言模型在各种基准测试中的性能,甚至优于通过直接偏好优化加上额外的GPT-4偏好数据训练的模型。
6.有值得阅读的相关文献吗?
-
Cheng 等人1 的工作中提到了Adversarial Preference Optimization (APO)方法,该方法可以显著提升语言模型在各种基准测试中的性能。
-
Stiennon等人 2 的工作中介绍了一种基于人类反馈的语言模型训练方法,可以让模型更好地遵循指令。
[1] Cheng, P., Yang, Y., Li, J., Dai, Y., and Du, N. Adversarialpreference optimization, 2023.
7.综合评价如何?
SPIN方法在提升语言模型性能方面表现出了显著的效果。在HuggingFace Open LLM Leaderboard基准测试中,SPIN方法从第0次迭代开始就能显著提升模型的平均得分,并且在后续迭代中持续改善。特别是在TruthfulQA和GSM8k等任务上,SPIN方法的提升幅度超过5%和10%。此外,SPIN方法还能有效提升模型在其他推理基准测试如MT-Bench、Big Bench和OpenBookQA上的性能。从生成示例来看,随着迭代次数的增加,模型生成的回答也变得更加简洁和贴近实际。总的来说,SPIN方法是一种有效的语言模型优化方法,能够显著提升模型在各种基准测试上的性能,值得进一步研究和应用。
作者简介
杨企鹏,中科院自动化所 2023级硕士研究生(联合培养),本科毕业于南京邮电大学,研究兴趣包括强化学习,大语言模型等。
联系邮箱:yangqipeng23@mails.ucas.ac.cn
联系我们
欢迎关注RLCN公众号,获取RL相关资讯。
Email: rlchinacamp@163.com