问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

一文搞懂SFT、RLHF、DPO、IFT

创作时间:
作者:
@小白创作中心

一文搞懂SFT、RLHF、DPO、IFT

引用
CSDN
1.
https://blog.csdn.net/qq_27590277/article/details/141021131

随着ChatGPT等强大模型的发布,大语言模型(LLMs)的浪潮席卷而来,并逐渐走进千家万户。然而,现阶段的LLMs仍然在一些方面饱受诟病。首当其冲的就是"幻觉"问题,LLMs会自信满满地生成不符合事实或常理的回答,可能对使用者造成误导。另外,LLMs对于复杂指令的理解与遵循能力欠佳,他们可能会自动忽略指令中的某些信息,只完成用户的一部分要求。

那么,产生上述现象的可能原因有哪些?我们又应该如何改善这些问题?下面我们将从LLMs训练方法的角度出发,与大家一同寻找答案。

从 监督微调 到 偏好优化

当下最流行的LLMs训练流程大概可以分为以下三步:预训练(Pre-Training,PT)、监督微调(Supervised Fine-Tuning,SFT)和偏好优化(Preference Optimization,PO)。预训练时,语言模型在超大规模的语料中进行学习,并初步掌握基本的语法规则、逻辑能力、常识知识等等。但是,用于训练的语料中难免存在偏离人类价值观的数据,使LLMs不足够符合人类的偏好。同时,预训练的目标仅仅是根据上文补全单词,无法使LLMs具备对话和问答能力。因此,为了实现更好的与人交互,进一步的训练成为必须。

监督微调

一种最简单的思路就是,照搬预训练的目标函数和损失函数进一步微调,但是改变数据的质量和格式。为了使LLMs对齐人类价值观,我们可以专门筛选一些符合人类价值观的数据;为了让LLMs适应对话和问答场景,我们可以构造一问一答或者多轮问答的数据。经过上述数据的训练,模型将拟合这部分数据的特性,从而达到我们的目的,这一过程也被称为监督微调

LSFT=Eρ0∼DEsi∗∼Sρ0∗[−i=0∑NlogTθ(π∗(si∗),si∗)]

然而,PT和SFT的训练目标与真实的生成任务目标之间存在一定的差距,这会使训练后的LLMs难以达到我们的预期。具体来讲,在真实的生成任务中,LLMs将依据一个指令循环进行下述流程:

  • ① 依据上文,预测下一个单词;
  • ② 将自己预测的单词拼接到上文中;
  • ③ 重复进行上述步骤,直至生成终止符。

然而,在进行PT和SFT时,步骤②中拼接到上文的将是Ground Truth单词,而不是LLMs自己预测的单词,使得损失函数高估LLMs当前的能力,得到差强人意的训练结果。同时,这种目标函数只考虑了上文对当前预测的影响,没有考虑LLMs当前预测对自身未来预测的影响,限制了LLMs的因果性和泛化性。

基于人类反馈的强化学习

为了缓解上述问题,进一步地提升LLMs的对话能力、以及对于人类价值观的对齐程度,偏好优化(Preference Optimization,PO)被引入到了模型微调过程中,基于人类反馈的强化学习(Reinforcement Learning from Human Feedback,RLHF)便是这类算法最早期的代表。

RLHF的第一步是根据人类的偏好训练一个打分模型(Reward Model,RM),使其可以评估一条问答数据的质量。随后,LLMs依据训练集中的指令生成自己偏好的回复(仅依据输入指令自主生成回复,而不是不断地依靠Ground Truth预测下一个Token),并使用RM的打分作为监督信号,不断让自己的生成结果更接近人类偏好。其中,实现上述优化过程的最常用算法被称为近端策略优化(Proximal Policy Optimization,PPO)。

LPPO=Eρ0∼DEsi∗∼Sρ0∗[−i=0∑NR(πθ(siθ),siθ)] R=πR←πminLR LR=Eρ0∼DEsi+∼Sρ0+,si−∼Sρ0−[−logσ(i=0∑NlogTR(π+(si+)∣si+)−i=0∑NlogTR(π−(si−)∣si−))]

RLHF使用了更加贴合真实生成任务的目标函数,成为了获得强大LLMs的关键步骤。然而,RLHF存在两方面的巨大开销:

  • 数据构造:为了得到RM,我们要针对每条指令采集多条(≥2)回复数据,再让人类依据自己的偏好对这些数据进行质量排序,这将耗费大量的人力成本;
  • 计算资源:为了模拟真实的生成场景,在RLHF的训练过程中需要实时地让LLMs生成回复,并用RM进行打分。

同时,由于RLHF和PT、SFT之间存在较大的目标函数差异,拟合RLHF的目标将带来不稳定的训练过程,并会产生对过往知识的灾难性遗忘。所以,RLHF还需要一个冻结的参考模型与策略模型(也就是被训练的模型)计算KL散度作为约束,抑制模型的参数偏移。于是,在RLHF时需要3-4个LLMs同时被存储在GPU中并参与运算,计算资源的开销可想而知。

直接偏好优化

如果不能降低RLHF的开销,LLMs在更广泛场景中的应用将受到限制。于是,直接偏好优化(Direct Preference Optimization,DPO)应运而生。DPO融合了打分模型和策略模型的训练过程,因此只需要标注过偏好的数据、参考模型和策略模型,就可以使LLMs直接对齐人类的偏好,极大地减轻了训练时对计算资源的消耗。但是,理想的DPO形态应是在线DPO(Online DPO),也就是需要实时地采样LLMs对指令的回复,并实时地由人类标注偏好。所以,数据构造带来的开销非但没有降低(这种开销经常被忽略),反而要比RLHF更高。

LDPO-online=Eρ0∼DEsi∗∼Sρ0∗,siθ∼Sρ0θ[−logσ(i=0∑NlogTθ(π∗(si∗),si∗)−i=0∑NlogTθ(πθ(siθ),siθ))] LDPO-offline=Eρ0∼DEsi+∼Sρ0+,si−∼Sρ0−[−logσ(i=0∑NlogTθ(π+(si+),si+)−i=0∑NlogTθ(π−(si−),si−))]

为此,开源社区通常使用离线DPO(Offline DPO)微调模型。这种方法会在训练前采集模型对指令的回复,并由人类标注好不同回复之间的排序,随后用这部分数据训练模型。Offline DPO可以看作是使用事先采集的数据估计了人类和LLMs的偏好,随后再通过训练对齐二者的偏好。可是,随着训练的进行,LLMs会逐渐偏离它自己最开始的偏好,损失函数又会错误地估计LLMs当前的能力(和上文中的PT和SFT类似),进而导致不理想的训练结果。

直觉微调

SFT成本低,但效果欠佳;RLHF和DPO效果好,但是成本过高。那么是否存在某种方法可以兼顾两类算法的优势,在降低开销的同时保证微调效果呢?如果我们使用一个统一的视角,会发现SFT、RLHF和DPO都是先估计LLMs本身的偏好,再与人类的偏好进行对齐。不过,SFT只通过LLMs生成的一个单词进行估计,而RLHF和DPO通过LLMs生成的完整句子进行估计,显然后者的估计会更准确

或者我们可以用复习考试时的刷题进行比喻。如果我们看到一个题目后,先依照自己的理解写完整道题,然后再对答案,通常可以通过试错的方式正确地了解自己的思维漏洞,查漏补缺;相反,如果我们在完成题目时,每写一步结果就立即对答案,随后再在正确答案的基础上写下一步结果,那我们通过这道题目获得的收获显然是更少的。

那么如何才能在不依赖参考模型和偏好数据的前提下,更好地使训练目标对齐真实生成目标呢?更大程度地暴露语言模型的"思维漏洞"是一种可能的解法,也是直觉微调(Intuitive Fine-Tuning,IFT)的核心思想。IFT通过引入时间维度的残差连接(Temproral Residual Connection,TRC),使模型依照自己上一步的预测结果再多预测一步,近似地构建了LLMs对指令的完整回复,更准确地估计了LLMs的偏好,从而获得更好的训练结果。这种方式也可以使LLMs获得类似于人类直觉的能力,每当它看到某个指令时,就对于完整的回复产生了一个模糊的预测。同时,TRC还间接地引入了动态关系传播(Dynamic Relation Propagation,DRP),DRP可以建模LLMs当前预测单词对所有未来生成结果的影响,增强了LLMs生成过程中的因果性和事实性。

LIFT=Eρ0∼DEsi∗∼Sρ0∗[−n=0∑Ni=n∑NlogTθ(ai∗,δθ(si∗))] δθ(si∗)=(1−λ)si∗+λπθ(si−1∗)

若希望了解更详细的问题建模和算法介绍,请参考原论文:Intuitive Fine-Tuning: Towards Simplify Alignment into a Single Process[1]

其他相关方法

Scheduled Sampling

相较于PE和SFT完全依赖Ground Truth作为上文,这个方法在训练过程中逐渐地引入更多LLMs自己预测的单词作为上文,旨在让LLMs的训练目标更加贴合真实的生成任务。如果把Scheduled Sampling看作是对于LLMs偏好单词的硬采样,那么IFT则可以看作是一种软采样的进化版。IFT的软采样可以获得模型更完整的偏好估计,并且更加利于进行梯度优化。

∃ Sρ0′⊆Sρ0∗,∀si∗∈Sρ0′,δθ(si∗)=πθ(si−1∗)

Noisy Embedding Fine-Tuning

在LLMs的训练和推理过程中,都会首先对输入的上文进行向量化得到Embedding,随后再将Embedding传输到后续的模型中进行运算。这种方法通过在Embedding中加入随机噪声来增强训练的泛化性和鲁棒性。IFT也可以看作是在对Embedding"加噪",不过这个噪声是具有上下文因果性的"噪声",所以相较随机噪声可以帮助模型获得更强的因果性和事实遵从性。

δθ(si∗)∼N(si∗,σδ2)

参考文献

参考文献
[1]Daniel M Ziegler, Nisan Stiennon, Jeffrey Wu, Tom B Brown, Alec Radford, Dario Amodei, Paul Christiano, and Geoffrey Irving. Fine-tuning language models from human preferences. arXiv preprint arXiv:1909.08593,2019.
[2]Long Ouyang, Jeffrey Wu, Xu Jiang, Diogo Almeida, Carroll Wainwright, Pamela Mishkin, Chong Zhang, Sandhini Agarwal, Katarina Slama, Alex Ray, et al. Training language models to follow instructions with human feedback. Advances in neural information processing systems, 35:27730–27744, 2022.
[3]John Schulman, Filip Wolski, Prafulla Dhariwal, Alec Radford, and Oleg Klimov. Proximal policy optimization algorithms. arXiv preprint arXiv:1707.06347, 2017.
[4]Rafael Rafailov, Archit Sharma, Eric Mitchell, Christopher D Manning, Stefano Ermon, and Chelsea Finn. Direct preference optimization: Your language model is secretly a reward model. Advances in Neural Information Processing Systems, 36, 2024.
[5]Ermo Hua, Biqing Qi, Kaiyan Zhang, Yue Yu, Ning Ding, Xingtai Lv, Kai Tian, and Bowen Zhou. Intuitive fine-tuning: Towards simplifying alignment into a single process. arXivpreprintarXiv:2405.11870, 2024.
[6]Samy Bengio, Oriol Vinyals, Navdeep Jaitly, and Noam Shazeer. Scheduled sampling for sequence prediction with recurrent neural networks. Advances in neural information processing systems, 28.
[7]Neel Jain, Ping-yeh Chiang, Yuxin Wen, John Kirchenbauer, Hong-Min Chu, Gowthami Somepalli, Brian R. Bartoldson, Bhavya Kailkhura, Avi Schwarzschild, Aniruddha Saha, Micah Goldblum, Jonas Geiping, and Tom Goldstein. Neftune: Noisy embeddings improve instruction finetuning. arXivpreprintarXiv:2310.05914, 2023.  

引用链接

[1]
Intuitive Fine-Tuning: Towards Simplify Alignment into a Single Process: https://arxiv.org/pdf/2405.11870

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号