大模型——强化学习

强化学习(Reinforcement Learning)

通过外部获得激励来校正学习方向从而获得一种自适应的学习能力;
基于人工反馈的强化学习(Reinforcement Learning from Human Feedback,RLHF):构建人类反馈数据集,训练一个激励模型,模仿人类偏好对结果打分;

RLHF在实践过程中存在哪些不足?

1、人工产生的偏好数据集成本较高,很难量产;
2、三个阶段的训练(SFT>RM>PPO)过程较长,更新迭代较慢;
3、PPO的训练过程同时存在4个模型(2训练、2推理),对计算资源的要求比较高;

如何解决人工产生的偏好数据集成本比较高,很难量产的问题?

  • AI专家替代派
  • 代表方法:
    1、RLAIF:其核心在于通过AI模型监督其他AI模型,即在SFT阶段,从初始模型中采样,然后生成自我批评与修正,然后根据修正后的反应微调原始模型。在RL阶段,从微调模型中采样,使用一个模型来评估生成的样本,并从这个AI偏好数据集训练一个偏好模型。然后使用偏好模型作为奖励信号对RL进行训练,即RL form AI Feedback;
    2、RRHF(Rank Response from Human Feedback)不需要强化学习,可以利用不同语言模型生成的回复,包括ChatGPT等训练模型。RRHF通过对回复进行评分,并通过排名损失来回复与人类偏好对齐。RRHF训练好的模型可以同时作为生成语言模型和奖励模型使用。

如何解决三个阶段的训练(SFT>RM>PPO)过程较长,更新迭代较慢问题?

  • 解决方法:微调数据优化派;该类方法的核心在于仅仅通过优质数据集的获取和产生,以训练得到一个效果较好的SFT模型,而无需进行RM和PPO的训练。
  • 代表方法:
    1、LIMA(Less Is More for Alignment)即浅层对齐假说,即一个模型的知识和能力几乎完全是在预训练中学习的,而对齐则是教会它与用户交互时如何选择子分布。如果假说正确,对齐主要有关于学习方式,那么该假说的一个推论是,人们可以用相当少的样本充分调整预训练的语言模型。因此,该工作假设,对齐可以是一个简单的过程,模型学习与用户互动的风格或格式,以揭示在预训练中已获得的知识和能力。
    2、Maybe Only0.5% Data Is Needed,主要只从数据角度来讨论如何降低LLM训练阶段的成本,提高数据效率。为了实现该目的,我们可以从现有的数据中识别出最有价值的核心样本来帮助模型获取下游任务的知识,并仅用少量数据实现更好的性能。

LLM经典的预训练Pineline?

目前基于Transformer Decoder的LLM,比如ChatGPT、LLaMA等,通常都会有基于预训练的base模型和在base模型至少使用RLHF微调的Chat模型,Chat模型的训练一般都包括以下三个步骤:预训练,有监督微调和对齐。
1.在预训练阶段,模型从大量无标注文本数据集中学习通用知识;
2.使用有监督(SFT)优化模型以更好地遵守特定指令;
3.使用对齐技术使LLM可以更有用且更安全地相应用户提示;

预训练(Pre-Tuning)

利用数十亿到数万亿个Token的庞大文本语料库对模型继续预训练,使模型能够根据提供的文本来预测下一个单词。
在这里插入图片描述

有监督微调(Supervised Fine Tuning)

有监督微调对然SFT训练目标和预训练类似,也是需要模型预测下一个单词,但是需要人工标注指令数据集,其中模型的输入是一个指令(根据任务的不同,也可能包含一段输入文本),输出为模型的预期回复内容。
在这里插入图片描述

其训练数据的格式为:
Instruction:“Write a limerick about a pelican”
Output:“There once was a pelican so fine…”

预训练和有监督微调之间的区别?

  • 相同点:
    训练目标相同:模型需要根据提供的文本来预测下一个单词;
  • 不同点:
    训练数据量不同:有监督微调需要训练数据量比预训练小很多;
    训练数据格式不同:有监督微调需要人工标注的训练数据,预训练不需要;

对齐(Alignment)

对齐是通过微调的方式,将语言模型与人类偏好、价值观记性对齐,这也是RLHF机制发挥的地方。
在这里插入图片描述

基于人类反馈的强化学习(Reinforcement Learning with Human Feedback, RLHF)

流程:
1、在预训练好的模型上进行有监督微调(SFT)
2、在有监督微调模型基础上创建一个reward model (RM)模型
3、基于RM模型使用PPO算法微调SFT模型

如何在预训练好的模型上进行有监督微调?

先收集一个Prompt集合,并要求标注人员写出告质量的回复,然后使用该数据集以监督的方式微调雨荨来拿的基础模型。
在这里插入图片描述

如何在有监督微调模型基础上创建一个RM模型?

对于每个Prompt,要求有监督微调后的LLM生成四到九个回复,再由标注人员根据偏好对所有回复进行排序。虽然排序过程很耗时间,但是工作量还是第一步的有监督数据集构建要少一些。
在这里插入图片描述
在处理排序数据时,使用了一个奖励模型RM,RM来自RLHF第一步的有监督微调语言模型,SFT的输出通过一个回归层(单个输出节点)转换为奖励分数,即可称为RM模型。

如何基于RM模型使用PPO算法微调SFT模型

在这里插入图片描述

InstructGPT 的原理

InstructGPT是一种基于强化学习的文本生成模型,其核心原理涉及两个概念:RLHF和reward shaping(奖励塑造)。

  • RLHF:在训练时,首先使用人类生成的示例对模型进行预训练。然后通过与人类评估者进行交互,手机评估结果,已创建一个用于强化学习的数据集。该数据集包含了人类对生成结果的评分或反馈,用于指导模型的强化学习训练。
  • Reward shaping:为了更好地引导模型训练,reward shaping用于调整模型的奖励信号。通过将人类评估者的反馈与模型生成的文本进行比较,可以计算出一个差异度量,用作奖励信号的一部分。这样模型可以根据这个奖励信号进行训练,并进行强化学习的训练。模型根据当前的状态生成文本,并通过奖励信号来评估生成文本的质量。模型的目标是最大化预期累计奖励,从而生成更高质量的文本。

通过RLHF和reward shaping的结合,InstructGPT能够通过人类评估者的反馈指导模型的生成过程,并逐步提升生成文本的质量和一致性。

RLHF训练过程中,怎样选取最优checkpoint ?

RLHF训练过程,因为Reward Model输出的只是一个近似奖励,导致不能完全相信训练过程中的reward变化,‘更高’的reward不一定意味着‘更好’的效果。

在这里插入图片描述
如图所示,随着训练模型和初始模型之间的KL越大,模型的真实分数会先逐步提升,到达某个峰值后逐渐减小(实线),但是近似分数(由Reward Model打出来的分数)却一直稳步上升(虚线),显然在真实分数曲线的最高点就是我们所期望得到最优模型的时间点。
如何估算找到最高点?
假定:真实reward曲线与当前模型和初始模型之间的KL存在某种关系。
由于KL是一个可以被实时计算的数值,如果能够找出这种对应关系,那我们就能够找出真实reward的最高点对应的KL值是多少,从而找出最优模型。
在这里插入图片描述
不同训练方法对应的公式稍显不同
其中 BON(best of n)也叫reject sampling,RL使用PPO,我们发现不同的训练方式对应的公式还是不同的。
BON指先让模型生成一堆Response,再利用RM从中挑选出最好的几个回复用于后续的模型训练。
其中有三个参数:α,β,d
d被定义为初始模型和当前模型的KL开根;
α,β这两个值跟Reward Model大小和Reward Model训练数据规模等因素有关;
1、相同训练数据下,Reward Model越大,actor模型能够获得更高的真实reward。
2、Reward Model越大,能够支持模型在不偏离真实奖励的路途上走的更远,即在更大的KL处发生下降转折。

大语言模型RLHF中的PPO主要分哪些步骤?

1.采样
2.反馈
3.学习

policy_model = load_model()
for k in range(20000):
# 采样(生成答案)
prompts = sample_prompt()
data = respond(policy_model, prompts)
# 反馈(计算奖励)
rewards = reward_func(reward_model, data)
# 学习(更新参数)
for epoch in range(4):
policy_model = train(policy_model, prompts, data, rewards)

列举大语言模型的RLHF

大语言模型的RLHF,实际上是模型先试错再学习的过程。
大语言模型的RLHF好比是:老师和学生的角色

  • 我们扮演老师的角色,给出有趣的问题。模型则会想学生一样,不断尝试出答案。
  • 模型会根据我们给出的问题,写出它觉得正确的答案,但是这些答案不易影视真的答案,需要我们结合正确答案进行打分。如果它表现得好,就会给出它高声赞扬;如果表现的不好,我们则会给它耐心的指导和反馈,帮助它不断改进,直到达到令人满意的水平。

PPO采样策略

PPO中采样工作通过一种策略(policy):policy由两个模型组成,一个叫做演员模型(Actor),另一个叫评论模型(Critic)。他们就像是学生大脑中的两种意识,一个负责决策,一个负责总结得失。

  • 演员:我们想要训练出来的大模型。在用PPO训练它之前,它就是RLHF的第一步训练出来的SFT(Supervised Fine-Tuning)Model。输入一段上下文,它将输出下一个Token的概率分布。
  • 评论家:强化学习的辅助模型,输入一段上下文Token的“收益”。
### 关于大模型强化学习的实现方法 #### 强化学习大模型中的应用背景 近年来,随着深度学习技术的发展,大规模预训练语言模型逐渐成为自然语言处理领域的重要工具。然而,在实际应用场景中,这些模型可能无法完全满足特定需求,例如生成更符合人类偏好的文本或解决复杂的推理问题。为此,研究者引入了强化学习(Reinforcement Learning, RL),以优化模型的行为并使其更好地适应目标环境。 DeepSeek团队在其论文中提到,通过强化学习可以显著提升大语言模型的能力[^2]。这种方法不仅能够增强模型的推理性能,还能确保其输出更加安全和有用。 --- #### 强化学习的具体实现方式 ##### 奖励机制设计 在强化学习过程中,奖励函数的设计至关重要。它决定了模型如何调整自己的行为以达到预期效果。根据DeepSeek的研究成果,奖励信号被分为两类: 1. **基于规则的奖励** 针对特定任务域(如数学、代码编写或逻辑推理),可以通过定义明确的规则来构建奖励函数。这种策略有助于引导模型专注于某些技能的学习。 2. **基于人类反馈的奖励** 对于涉及主观判断的任务,则需借助人工标注的数据集创建奖励模型。该模型用于评估不同响应的质量,并据此提供指导性的反馈信息。 --- ##### 数据分布的选择 除了精心设计的奖励体系外,合理的数据采样同样不可或缺。为了覆盖尽可能广泛的场景组合,研究人员通常会采用多样化提示集合作为输入源。这一步骤能有效防止过拟合现象的发生,从而保障最终产物具备较强的泛化能力。 --- #### 技术细节分析 以下是有关此主题的一些关键技术要点及其对应的算法框架说明: 1. **PPO (Proximal Policy Optimization)** PPO是一种广泛应用于连续控制问题上的先进RL算法之一。由于其稳定性较高且易于扩展至高维状态空间的特点,因此非常适合用来改进大型神经网络结构下的参数更新流程。在实践中,我们可以参照如下伪代码片段完成相应操作: ```python import torch def compute_loss(new_log_probs, old_log_probs, advantages): ratio = torch.exp(new_log_probs - old_log_probs.detach()) surr1 = ratio * advantages surr2 = torch.clamp(ratio, 1.0 - epsilon, 1.0 + epsilon) * advantages policy_loss = -torch.min(surr1, surr2).mean() return policy_loss ``` 2. **Fine-tuning with Reward Signals** 当前主流做法是在已有基础之上微调已有的Transformer架构实例。在此期间,应特别注意保持原有权重不变的同时逐步融入新的约束条件。下面给出一段简化版示范程序供参考: ```python from transformers import AutoModelForCausalLM, Trainer, TrainingArguments model = AutoModelForCausalLM.from_pretrained("deepseek/base") training_args = TrainingArguments(output_dir="./results", num_train_epochs=3) trainer = Trainer( model=model, args=training_args, train_dataset=train_data, eval_dataset=val_data, data_collator=data_collator, ) trainer.train() ``` 上述两部分共同构成了完整的解决方案链条——从前端交互界面直至后台计算引擎均得到了妥善安排。 --- #### 开源资源推荐 对于希望深入探索这一领域的开发者来说,以下链接或许有所帮助: - GitHub仓库地址:https://github.com/DeepSeekAI/LM/tree/main/research/deepseek-r1 - 官方文档页面:https://docs.deepseek.ai/ 以上内容涵盖了理论依据阐述以及配套实验验证等多个方面,值得仔细研读一番! ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值