大语言模型训练新思路:半在线学习的崛起
在人工智能领域,大语言模型(LLM)的训练一直是一个充满挑战的课题。近年来,随着RLHF(基于人类反馈的强化学习)技术的普及,如何高效、有效地对模型进行微调,使其更好地遵循人类指令和偏好,成为了研究的热点。
本文将探讨一种新兴的训练策略——半在线学习,它在离线训练和纯在线训练之间找到了一个平衡点,为大语言模型的训练带来了新的可能性。
[图片:https://images.unsplash.com/photo-1677442136019-2451bb78d854?auto=format&fit=crop&w=1350&q=80]
从离线到在线:训练方法的演变
离线训练:传统但有限
传统上,对大语言模型的训练多采用离线方式。以DPO(直接偏好优化)为例:
-
首先使用初始模型生成一组训练数据 -
然后基于这些固定数据对模型进行训练 -
整个训练过程中,生成数据的模型和进行训练的模型是分离的
这种方法的优点是计算效率高,可以预先批量生成所有训练数据,然后专注于模型训练。但缺点也很明显:模型只能从固定的、可能已经过时的响应中学习。
在线训练:实时但昂贵
与离线训练相对,在线训练强调实时性:
-
定期使用当前模型生成新的响应 -
立即基于最新生成的响应进行训练 -
模型参数更新和响应生成紧密同步
在线训练的优势在于模型可以不断从最新的、更好的响应中学习,但计算成本通常更高,需要更精细的资源管理和实时计算能力。
半在线训练:取长补短
半在线训练是上述两种方法的中和:
-
定期(但不是每步)将生成模型与训练模型同步 -
在两次同步之间,可以并行生成多个批次的训练数据 -
平衡了训练效果和计算效率
这种方式既保留了在线学习能够从更新模型中学习的优势,又通过批量处理提高了计算效率。
研究发现:半在线学习的优势
最近的研究表明,半在线学习在多个方面都展现出了显著优势:
在可验证任务上的表现
在数学问题等可验证任务上,研究发现:
-
离线DPO训练相比基础模型有所提升,但提升幅度有限 -
半在线和在线训练方法相比离线方法有显著提升 -
纯在线DPO和GRPO性能相当,都显著优于离线方法 -
半在线DPO(在每5-100步同步一次模型参数的情况下)可以接近纯在线方法的性能
这一发现很重要,因为它表明:纯在线训练并非唯一选择,半在线训练可以在保持较高性能的同时提高计算效率。
[图片:https://images.unsplash.com/photo-1550439062-609e1531270e?auto=format&fit=crop&w=1350&q=80]
在非可验证任务上的表现
在指令遵循等非可验证任务上,研究发现:
-
所有训练方式相比基础模型都有提升 -
半在线和在线方法再次显著优于离线DPO -
纯在线DPO表现略优于GRPO
结合可验证和非可验证任务
研究还探讨了同时训练可验证和非可验证任务的效果:
-
仅训练可验证任务然后测试非可验证任务(反之亦然),效果有限甚至下降 -
从一个任务训练好的检查点出发,微调另一个任务,可以显著提升性能 -
从基础模型出发,结合两种奖励信号进行训练,在两类任务上都有提升
为何半在线学习表现优异?
半在线学习之所以能在多个任务上取得优异表现,主要原因包括:
1. 更好的探索能力
通过定期更新生成模型,半在线学习使模型能够基于最新的自身能力探索可能的回答空间,这比固定生成模型的离线训练具有更强的探索能力。
2. 更高的计算效率
与纯在线训练相比,半在线学习不需要每步都同步生成模型和训练模型,可以在两次同步之间批量生成训练数据,提高了计算资源的利用效率。
3. 稳定性和灵活性平衡
半在线学习在稳定性和灵活性之间取得了更好的平衡:
-
相比离线训练,它更灵活,能够适应模型的变化 -
相比在线训练,它更稳定,减少了因频繁更新带来的训练波动
RLHF:让AI更懂人心
RLHF (Reinforcement Learning from Human Feedback) 是一种让AI模型更好地理解并遵循人类偏好的技术。它的基本思想是通过人类反馈来指导AI的学习过程,使模型生成更符合人类期望的回答。
RLHF的三个核心步骤
RLHF流程通常包括三个步骤:
1. 预训练一个语言模型 (LM)
首先,需要一个基础的语言模型。这个模型通常已经在大规模文本数据上进行了预训练,具备了基本的语言理解和生成能力。
2. 训练一个奖励模型 (RM)
接下来,需要聚合问答偏好数据,并基于此训练一个奖励模型。奖励模型源于强化学习中的奖励函数概念,能够对当前的状态(回答)给出一个分数,来说明这个状态产生的价值有多少。
简单来说,奖励模型会对输入的问题和答案计算出一个分数。输入的答案与问题匹配度越高,则奖励模型输出的分数也越高。
3. 使用强化学习 (RL) 对 LM 进行微调
最后,使用强化学习技术对原始语言模型进行微调。目标是让模型生成能够获得高奖励的回答。
[图片:https://images.unsplash.com/photo-1522542550222-31fd19575a2d?auto=format&fit=crop&w=1350&q=80]
RLHF的优势与挑战
RLHF的优势在于它能够使模型更好地与人类价值观和偏好保持一致,这对于开放式的生成任务尤为重要。
然而,传统的RLHF方法也有其局限性:
-
需要两个独立的大语言模型(一个用于生成,一个用于奖励计算),耗时费钱 -
强化学习算法复杂,参数调整困难 -
实施门槛高,只有少数几个世界领先的模型团队能够充分利用其潜力
PPO:强化学习的经典选择
Proximal Policy Optimization (PPO) 是一种广泛使用的强化学习算法,也是早期RLHF方法的首选。
PPO的核心思想
PPO属于策略梯度方法,它的工作原理是:
-
从旧策略中采样数据 -
通过重要性抽样来估计梯度 -
使用”剪切”机制来限制策略更新的幅度,保持训练稳定
PPO的核心公式如下:
\mathcal{L}_{\mathrm{PPO}}=-\mathbb{E}_{y\sim\pi_{\theta_{\mathrm{old}}}}\left[\sum_{t}\operatorname*{min}\left\{\frac{\pi_{\theta}(y_{t}|x,y_{<t})}{\pi_{\theta_{\mathrm{old}}}(y_{t}|x,y_{<t})}A_{t},\mathrm{clip}_{\epsilon}\left(\frac{\pi_{\theta}(y_{t}|x,y_{<t})}{\pi_{\theta_{\mathrm{old}}}(y_{t}|x,y_{<t})}\right)A_{t}\right\}\right] $$
其中:
– $\pi_{\theta}$ 是当前策略
– $\pi_{\theta_{\mathrm{old}}}$ 是旧策略
– $A_t$ 是优势函数估计
– $\mathrm{clip}_{\epsilon}$ 是剪切函数,用于限制策略更新的幅度
### PPO的优势
PPO的优势在于:
– 可以高效地利用采样数据,进行多次更新
– 对超参数不是特别敏感
– 训练相对稳定
正是由于这些优势,PPO成为了ChatGPT等大型语言模型训练的首选方法。
## DPO:简化流程的新选择
Direct Preference Optimization (DPO) 是近年来兴起的一种更简化的RLHF方法。它的核心思想是直接优化策略以匹配人类偏好,而不需要显式地训练奖励模型。
### DPO的数学原理
与传统RLHF先训练奖励模型再优化策略不同,DPO直接优化策略。具体来说:
1. DPO从优化期望序列级奖励 $r(y)$ 开始,并添加一个KL项:
-
这个目标可以转换为一个单一的KL项:
\mathcal{O}=-\mathrm{KL}\left[\pi(y|x)||\pi^{*}(y|x)\right],\quad\mathrm{where~}\pi^{*}(y|x)=\pi_{\mathrm{ref}}(y|x)e^{r(y)/\beta} $$
3. 然后使用Bradley-Terry模型将人类偏好转化为奖励:
-
最后使用交叉熵损失进行优化,得到DPO损失:
\mathcalL}{\mathrm{DPO}}=-\log\sigma\left(\beta\log\frac{\pi(y{c}\pi_{\mathrm{ref}}(y_{c}-\beta\log\frac\pi(y_{r}\pi_{\mathrm{ref}}(y_{r}\right)
DPO的优势
DPO的优势在于:
-
简化了训练流程,去除了奖励模型拟合的需求 -
减少了对大量超参数调整的需求 -
在一些任务上表现与基于PPO的RLHF相当甚至更好
[图片:https://images.unsplash.com/photo-1516245831903-c4ed80a3d745?auto=format&fit=crop&w=1350&q=80]
DPO的局限性
然而,DPO也有其局限性:
-
缺乏理论保证,无法保证损失减少会提高预期奖励 -
相比PPO,泛化能力有限
离线、半在线和在线训练方法比较
在了解了几种主要算法后,我们需要考虑如何组织训练过程。根据模型更新和生成响应的同步程度,可以将训练方法分为三类:
离线训练 (Offline Training)
传统上,DPO采用的是离线训练方式:
-
首先使用初始模型生成一组训练响应 -
然后基于这些预先生成的响应进行训练 -
整个训练过程中,生成响应的模型和进行训练的模型是分离的
离线训练的优势在于计算效率高,可以预先批量生成所有训练数据,然后专注于模型训练。但缺点是模型只能从固定的、可能已经过时的响应中学习。
在线训练 (Online Training)
与离线训练相对,在线训练强调实时性:
-
定期使用当前模型生成新的响应 -
立即基于最新生成的响应进行训练 -
模型参数更新和响应生成紧密同步
在线训练的优势在于模型可以不断从最新的、更好的响应中学习,但计算成本通常更高,需要更精细的资源管理。
半在线训练 (Semi-online Training)
半在线训练是上述两种方法的中和:
-
定期(但不是每步)将生成模型与训练模型同步 -
在两次同步之间,可以并行生成多个批次的训练数据 -
平衡了训练效果和计算效率
实际应用建议
基于论文的研究结果,以下是一些实用的训练建议:
1. 优先考虑半在线训练
对于大多数应用场景,半在线训练是一个很好的平衡点:
-
相比纯离线训练,可以获得显著的性能提升 -
相比纯在线训练,计算效率更高,更容易实施 -
同步频率可以根据具体任务和计算资源进行调整
[图片:https://images.unsplash.com/photo-1534665482403-a909d733696e?auto=format&fit=crop&w=1350&q=80]
2. 关注训练稳定性
论文提到,在训练过程中可能会遇到训练不稳定的问题:
-
DPO训练有时会突然发散 -
增加Adam优化器的epsilon值可以提高稳定性 -
适当调整学习率和梯度裁剪也有助于稳定训练
3. 监控和调整响应长度
研究发现,模型可能会”利用”奖励模型的偏好,生成过短或过长的响应:
-
在可验证任务上,缺乏参考模型同步可能导致响应长度崩溃 -
在非可验证任务上,模型可能会利用奖励模型的长度偏见 -
可以通过归一化奖励、添加长度惩罚或选择检查点来缓解这些问题
4. 考虑多任务训练
如果应用场景需要模型同时处理多种类型的任务:
-
尝试结合可验证和非可验证任务的训练 -
从基础模型出发,同时优化两种类型的奖励 -
在验证集上选择平衡两类任务性能的检查点
未来展望
大语言模型的训练方法仍在快速发展中:
1. 更高效的训练算法
研究人员正在探索更高效、更稳定的训练算法,以降低计算成本并提高模型性能。
2. 更好的奖励设计
如何设计更准确、更全面的奖励函数,以准确反映人类对回答质量的判断,仍然是一个重要研究方向。
3. 多模态训练
目前的研究主要集中在文本领域,未来可能会扩展到图像、音频等多模态数据的训练。
4. 更广泛的应用场景
随着训练方法的改进,大语言模型有望在更多领域发挥作用,如医疗、教育、法律等。
[图片:https://images.unsplash.com/photo-1505740420928-883d7334eb76?auto=format&fit=crop&w=1350&q=80]
总结
本文探讨了从离线到在线的大语言模型训练方法,并比较了不同训练策略和算法在可验证和非可验证任务上的表现。研究表明,半在线学习是一种很有前景的训练策略,它在性能、效率和稳定性之间取得了良好的平衡。
随着技术的不断进步,我们有理由相信,未来大语言模型的训练将更加高效、精准,为人工智能的发展注入新的动力。