大模型(LLMs)强化学习一一RLHF及其变种 面
一、介绍一下LLM的经典预训练Pipeline?二、预训练(Pre-training)篇2.1具体介绍一下预训练(Pre-training)?三、有监督微调(Supervised Tinetuning)篇3.1具体介绍一下有监督微调(Supervised Tinetuning)?四、对齐(Alignment)算4.1简单介绍一下对齐(Alignment)?五、 Reinforcement Learning with Human Feedback (RLHF)5.1简单介绍一下RLHF流程?5.2如何在在预训练好的模型上进行有监督微调?5.3如何在有监督微调模型基础上创建一个RM模型?5.4如何基于RM模型使用PPO算法微调SFT模型?5.5 instructGPT的原理,讲讲rlhf和reward?六、LLaMA 2 的 RLHF 篇6.1 介绍-下 LLaMA 2 的 RLHF?6.2 LLaMA 2 中 Margin Loss 的 实现逻辑?6.3LLaMA2中两个RM模型的实现逻辑?6.4LLaMA2中拒绝采样逻辑?七、RLHF替代方案算7.1为什么需要RLHF替代方案?7.2RLHF有哪些替代方案?Followers替代方案 3: Direct Preference Optimization: Your Language Model is Secretly a RewardModel
3.2有监督微调(Supervised Tinetuning)的训练数据格式是什么样?3.3预训练(Pre-training)vs 有监督微调(SupervisedTinetuning)区别?
替代方案 1: Constitutional Al: Harmlessness from Al Feedback
替代方案 2: The Wisdom of Hindsight Makes Language Models Better Instruction
替代方案 4: Reinforced Self-Training (ReST) for Language Modeling
替代方案 5: RLAIF: Scaling Reinforcement Learning from Human Feedback with AlFeedback
八、RLHF实践篇
8.1RLHF训练过程,怎么选取最优checkpoint?
参考
一、介绍一下LLM的经典预训练Pipeline?
目前基于Transformer decoder的LLM,比如ChatGPT、LLaMA、baichuan等,通常都会有基于预训练的base模型和在base模型至少使用RLHF微调的Chat模型,Chat模型的训练一般都包括如下三个步骤:预训练,有监督微调和对齐.
1.在预训练阶段,模型会从大量无标注文本数据集中学习通用知识:2.使用「有监督微调](SFT)优化模型以更好地遵守特定指令:3.使用对齐技术使LLM可以更有用且更安全地响应用户提示.
二、预训练(Pre-training)篇
2.1具体介绍一下预训练(Pre-training)?
预训练(Pre-training):利用数十亿到数万亿个token的庞大文本语料库对模型继续预训练,使模型 能够根据提供的文本来预测「下一个单词].
Project Gutenberg (PG) is a volunteer effort todigitize and archive cultural works as well as to“encourage the creation and distribution of eBooks.It was founded in 1971 by American writer Michael S.Hart and is the oldest digital library.Most of theitems in its collection are the full texts of books orindividual stories in the public domain. All files can beaccessed for free under an open format layout available on almost any puter. As of3 October 2015 Project Gutenberg had reached50 000 items in its collection of free eBo6ks
Pretraining
Task: Next-tokenprediction onunlabeled texts
三、有监督微调(SupervisedTinetuning)篇
3.1具体介绍一下有监督微调(SupervisedTinetuning)?
有监督微调(SupervisedTinetuning):虽然SFT训练目标和预训练(Pre-training)类似,也是需要模型预测「下一个单词」,但是需要人工标注的指令数据集,其中模型的输入是一个指令(根据任务的 不同,也可能包含一段输入文本),输出为模型的预期回复内容.
样? 3.2有监督微调(SupervisedTinetuning)的训练数据格式是什么
Instruction: *Write a limerick about a pelican."指令:“写一首关于鹅鹏的打油诗.“Output: *There once was a pelican so fine...*输出:“从前有一只鹅鹏很好.
模型会把“Write a limerick about a pelican作为输入,逐个token进行预测,输出There once was apelican so fine...*
Tinetuning)区别? 3.3预训练(Pre-training)vs有监督微调(Supervised
相同点:
训练目标相同:模型需要根据提供的文本来预测「下一个单词」:
不同点:
训练数据量不同:有监督微调(SupervisedTinetuning)需要训练数据量比预训练(Pre-training)小很多;
训练数据格式不同:有监督微调(SupervisedTinetuning)需要人工标注的训练数据,预训练(Pre-training)不需要;
四、对齐(Alignment)篇
4.1简单介绍一下对齐(Alignment)?
对齐(Alignment):通过微调的方式,将语言模型与人类的偏好、价值观进行对齐,这也是RLHF机制发挥的地方.
五、ReinforcementLearningwithHumanFeedback (RLHF)篇
5.1简单介绍一下RLHF流程?
1.在预训练好的模型上进行[有监督微调](SFT);2.在有监督微调模型基础上创建一个rewardmodel(RM)模型;3.基于RM模型使用PPO算法微调SFT模型:
5.2如何在在预训练好的模型上进行有监督微调?
先收集一个Prompts集合,并要求标注人员写出高质量的回复,然后使用该数据集以监督的方式微调预训练的基础模型.
5.3如何在有监督微调模型基础上创建一个RM模型?
对于每个Prompt,要求有监督微调后的LLM生成四到九个回复,再由标注人员根据个人偏好对回复 进行排序.虽然排序过程很耗时,但工作量还是比第一步的有监督数据集构建要少一些.
在处理排序数据时,使用了一个奖励模型RM,RM来自RLHF第一步的「有监督微调语言模型](SFT),SFT的输出通过一个回归层(单个输出节点)转换为奖励分数,即可称为RM模型.