|知乎:紫气东来
当前 LLM 蓬勃发展,各种模型和方法层出不穷,但总体看来,但是朝着以下3点目标前进:
由于预训练模型的通用性,在以上3个方面均有所不足,而通过 instruction learning 的方式可以一定程度上激发模型的泛化能力,但是不能很好地对齐人类偏好,因此就有了 RLHF 的方法。
RLHF 的核心思想围绕训练奖励模型展开。即利用人类反馈来生成人类偏好数据集,来训练代表特定任务所需结果的奖励函数。然后利用奖励模型,通过强化学习算法(如PPO)迭代地改进 SFT 模型,改变其内部文本分布以优先考虑人类喜欢的序列。在这种意义上说,奖励模型是将“人类偏好偏差”引入 Baseline 模型的一种手段。
当然,RLHF 在实践过程中也存在一些不足,体现在:
针对以上几点问题,当前的改进优化思路主要有几个方向,以下将逐步介绍和讨论。
此类方法通常是用来解决问题1或者问题3,即使用AI模型来替换人工标注数据形成偏好,或者指导模型训练。
该方法的核心在于通过AI 模型监督其他 AI 模型,即在SFT阶段,从初始模型中采样,然后生成自我批评和修正,然后根据修正后的反应微调原始模型。在 RL 阶段,从微调模型中采样,使用一个模型来评估生成的样本,并从这个 AI 偏好数据集训练一个偏好模型。然后使用偏好模型作为奖励信号对 RL 进行训练,即 RL from AI Feedback(RLAIF)。
Constitutional AI 流程
RLAIF 整过过程可分为监督训练阶段和强化学习阶段两部分。
阶段一:监督训练阶段,此阶段包括以下步骤:
阶段二:强化学习阶段,此阶段包括以下步骤:
另外谷歌的 RLAIF 也采用了类似的方式,即利用 AI 代替人类标注数据。
RRHF(Rank Response from Human Feedback) 不需要强化学习,可以利用不同语言模型生成的回复,包括 ChatGPT、GPT-4 或当前的训练模型。RRHF通过对回复进行评分,并通过排名损失来使回复与人类偏好对齐。RRHF 通过通过排名损失使评分与人类的偏好(或者代理的奖励模型)对齐。RRHF 训练好的模型可以同时作为生成语言模型和奖励模型使用。下图中对比了 PPO 算法和 RRHF 算法的区别:
RRHF v.s PPO
RRHF算法可以有效地将语言模型输出概率与人类偏好对齐,其训练思路非常简单,训练完成的模型有几个特点:
需要了解更多可以参考RRHF 项目。
该类方法的核心在于仅仅通过优质数据集的获取和产生,以训练得到一个效果较好的 SFT 模型,而无需进行 RM 和 PPO 的训练。
LIMA(Less Is More for Alignment) 即浅层对齐假说,即一个模型的知识和能力几乎完全是在预训练中学习的,而对齐则是教会它与用户交互时如何选择子分布。如果假说正确,对齐主要有关于学习方式,那么该假说的一个推论是,人们可以用相当少的样本充分调整预训练的语言模型。因此,该工作假设,对齐可以是一个简单的过程,模型学习与用户互动的风格或格式,以揭示在预训练中已经获得的知识和能力。
为此,研究者收集了 1000 个 prompt 和回答的数据集,其中输出 (回答) 在风格上一致,但输入 (prompt) 是不同的。他们想找出一种有帮助的、AI 助手风格的输出。精选样本的来源主要包括社区问答和手动撰写两部分。除此之外,团队还收集了一个包含 300 个 prompt 的测试集以及一个包含 50 个 prompt 的开发集。下面分析下主要数据集的构成:
将LIMA与其他模型进行比较,仍然比在52K数据上微调的 Alpaca 65B 和通过 RLHF 训练得到的 OpenAI-DaVinci003 有明显优势。
对应的消融实验显示,当扩大数据量而不同时扩大提示多样性时,收益会大大减少,而在优化数据质量时,收益会大大增加。 此外,尽管没有对话实例,LIMA可以进行连贯的多轮对话,而且这种能力可以通过向训练集添加30条手工制作的多轮对话数据而得到极大的提高。
本文主要从数据角度来探讨如何降低 LLM 训练阶段的成本,提高数据效率。为了实现该目的,作者通过从现有数据中识别出最有价值的核心样本来帮助模型获取下游任务的知识,并仅用少量数据来实现可比甚至更好的性能。
方法流程下图所示,潜在空间用三个矩形表示,每个任务代表其中一个颜色系列。具有相同色系但不同色调的点,对应于来自同一任务但来自不同数据集的数据,如 NLI 任务有 5 个数据集,因此有 5 种不同的色调。主要分为以下几步:
作者在选择特定任务和指令格式后,在总共 11 个数据集上进行了实验,这些数据跨越 4 个自然语言处理任务:自然语言推理(Natural Language Inference, NLI, 1.9M 个 token)、句子补语(Sentence Completion, SC, 660.6K 个 token)、词义消解(Word Sense Disambiguation, WSD, 25.5K 个 token)和指代消解(Coreference Resolution, CR, 185.1K 个 token)。成功使用原始数据集不到 0.5% 的数据训练了一个特定任务模型,相当于将数据规模缩小了 200 倍,并与在 P3 中基于任务相关数据训练的模型具有可比性能。
对于自然语言推理(NLI)任务,得出了以下观察结果:
综合来看,在特定任务和指令格式下,仅使用少量的数据就可以训练具有可比性能的模型。
由于成本较低、实现简单,此类方法出现的也比较多。除了以上列举的2种外,还有方案包括 WizardLM (Microsoft), Platypus (Boston University), Humpback (Meta) 等。
Humpback 的数据生成方式
该类方法通常通过改造模型的训练方式(如只保留SFT和RM),以提高训练效率并减少训练成本。
RAFT(Reward rAnked FineTuning),它基于关于通过奖励和监督微调对样本进行排序的组合的形式。
值得一提的是,RAFT的三个步骤,即数据收集、数据排序、模型微调,可以单独实施和执行。因此,只要计算资源和显存允许在某些特定模型上进行 SFT,对齐过程可以使用 RAFT 完成。此外,在RAFT的实际实现中,可以使用批量推理和模型并行来加速数据收集。
在影评完成任务上测试该方法,即在 IMDB 数据集上的文本续写,并生成的文本具有积极的情感。作者使用 25K的训练集,并从验证样本中随机抽取 3.2K 个样本作为测试集。为了生成提示,作者将评论的前 64 个标记截断为输入提示,然后使用语言模型生成 48 个 token,目的是在确保最大流畅度的同时传达积极情绪。为了评估生成文本的积极性,作者使用了 BERT 的蒸馏版本为实验提供情感评分。作者采用25K训练集微调后的 LLaMA-7B-IMDB作为初始模型。并将 RAFT 与 PPO 的效果进行对比,考虑到前向和反向的计算复杂度,定义
下图 (1) 即 reward 与 cost 的关系图,改图说明了 RAFT 比 PPO 的训练效率高;图 (2) 是 reward 与 ppl 的关系图,可看到在相同 reward 的情况下 RAFT 的 ppl 更低,在相同 ppl 的情况下 RAFT 的 reward 更高。
另外 Llama2 的 Rejection Sampling,DeepMind 的 ReST 和 RSO 也采用了相似的原理。
DPO(Direct Preference Optimization) 提出了一种使用二进制交叉熵目标来精确优化LLM的方法,以替代基于 RL HF 的优化目标,从而大大简化偏好学习 pipeline。也就是说,完全可以直接优化语言模型以实现人类的偏好,而不需要明确的奖励模型或强化学习。
与现有的算法一样,DPO 也依赖于理论上的偏好模型(如 Bradley-Terry 模型),以此衡量给定的奖励函数与经验偏好数据的吻合程度。然而,现有的方法使用偏好模型定义偏好损失来训练奖励模型,然后训练优化所学奖励模型的策略,而 DPO 使用变量的变化来直接定义偏好损失作为策略的一个函数。鉴于人类对模型响应的偏好数据集,DPO 因此可以使用一个简单的二进制交叉熵目标来优化策略,而不需要明确地学习奖励函数或在训练期间从策略中采样。
DPO 的更新增加了首选 response 与非首选 response 的相对对数概率,但它包含了一个动态的、每个样本的重要性权重,以防止模型退化,研究者发现这种退化会发生在一个朴素概率比目标上。DPO 的损失函数为
其关于参数 θ 的梯度可以写成:
在实验中发现,在几乎没有超参数调整的情况下,DPO 的表现往往与带有 PPO 的 RLHF 等强大的基线一样好,甚至更好,同时在学习奖励函数下返回最佳的 N 个采样轨迹结果。