0
点赞
收藏
分享

微信扫一扫

大模型微调基本概念(四)什么是强化学习(RLHF)?如何训练垂直领域大模型?


四、什么是强化学习(RLHF)

RLHF 是一种训练方式,并不是类似 Lora 这种的训练方法,RLHF 可以分为三阶段:

1)Language Model,LM:一个预训练语言模型 LM,对基础模型微调得到一个微调后的模型

  • 使用人工标注的数据对预训练模型进行监督微调,以获得初始版本的生成模型。

2)Reward Model,RM:训练一个奖励模型 RM:训练一个奖励模型(Reward Model),用于评估生成模型的输出质量。

  • 收集生成模型输出及其对应的人类反馈。这些反馈可以是评分、选择最佳输出、直接修改等形式。
  • 使用这些反馈数据训练奖励模型,使其能够对生成的输出进行评分。
  • 奖励模型通常是一个监督学习模型,通过最小化预测评分与人类反馈评分之间的差距进行训练。

3)Reinforcement Learning,RL:用强化学习 RL 方式微调 LM :使用强化学习算法(如 PPO(Proximal Policy Optimization))进一步优化第一步中生成的模型,使其输出更符合人类反馈的期望。

  • PPO 是一种强化学习算法,旨在平衡探索和利用,通过限制每次更新的幅度,确保稳定性和效率。
  • 算法优化生成模型的策略,使其输出在奖励模型的评分下不断提升。
  • 使用初始生成模型产生输出,并通过奖励模型评估这些输出的质量
  • 使用 PPO 算法,根据奖励模型的评分更新生成模型的参数。
  • 反复进行生成、评估、优化的循环,逐步提高生成模型的性能。

相比于 RLHF 现在好像 DPO 比较火

五、如何训练垂直领域大模型?

1)选择Base模型还是 Chat 模型?

对模型进行微调,都有可能触发灾难性遗忘。

在进行领域任务的 SFT 时,模型会重新调整对话任务相关的参数,而这些调整可能会干扰或破坏模型原先在通用对话任务上所学到的知识。这种现象就是灾难性遗忘。

即:灾难性遗忘 会导致模型通用能力降低。

因为 Chat 模型就是在 Base 模型基础上做了微调以适应对话任务,掌握了生成对话内容的能力的 SFT 模型,因此再对 Chat 模型做 SFT 触发 灾难性遗忘 风险就比较高,相比之下 Base 因为没经过微调,因为触发 灾难性遗忘 的风险会比较低。

因此选择哪种模型取决于我们的场景:

  • 选 Base 模型:当您希望领域任务效果提升,同时不希望牺牲通用能力时,选择 Base 模型作为基座模型更为合适。
  • 选 Chat 模型:如果您的领域任务与通用任务相关性不大,并且只追求领域任务的效果,可以选择 Chat 模型。

2)是否需要继续预训练(Continue PreTraining)?

  • 必要性:如果领域任务的数据集与预训练时的数据集差异较大,例如您的数据源自公司内部,而预训练数据无法覆盖这些领域,建议进行继续预训练。这样可以让模型更好地适应领域特定任务。
  • 数据量考虑:当领域任务的数据量较大(例如 1B 以上的 token),增量预训练是必要的。

因此,一般有两种选择

1)青春版:Chat 模型 + SFT

  • 资源消耗少、模型通用能力有所降低

2)完整版:Base 模型 + 增量预训练(Continue PreTraining) + SFT

  • 资源消耗大、模型通用能力完整保留

在此基础上,还可以通过强化学习进一步提升模型效果。

那么,最终一个完整的训练垂直领域大模型可以分为以下三步

1)Continue PreTraining(增量预训练): 一般垂直大模型是基于通用基座大模型进行二次的训练,为了给模型注入领域知识,就需要用领域内的语料进行继续预训练。

2)SFT( Supervised Finetuning,有监督微调): 通过 SFT 可以激发大模型理解领域内的各种问题并进行回答的能力(在有召回知识的基础上)

3)强化学习:一般是二选一

  • RLHF(奖励建模、强化学习训练): 通过 RLHF 可以让大模型的回答对齐人们的偏好,比如行文的风格。
  • DPO(直接偏好优化)

六、小结

1)大模型训练流程

  • 1)预训练(Pre Training,PT
  • 2)监督微调(Supervised Fine-Tuning, SFT
  • 3)强化学习(Reinforcement Learning from Human Feedback, RLHF

2)微调

  • 微调根据参数分类:
  • 全量参数更新 Full Fine-tuning(FFT):即对预训练模型的所有参数进行更新,训练速度较慢,消耗机器资源较多。
  • 参数高效微调 Parameter-Efficient Fine-Tuning(PEFT) :只对部分参数做调整,一般指的就是 PEFT。
  • 主流的微调方法:Prompt Tuning、Prefix Tuning、LoRA、QLoRA。
  • 微调框架:peft、ms-swift、LLaMAFactory

3)SFT 最佳实践

  • 数据集准备:10000 条左右高质量数据集
  • 超参调整
  • Epochs
  • Learning Rate
  • Global batch_size

4)强化学习 RLHF

  • Reward Model,RM:训练一个奖励模型 RM:训练一个奖励模型(Reward Model),用于评估生成模型的输出质量。
  • Reinforcement Learning,RL:用强化学习 RL 方式微调 LM :使用强化学习算法(如 PPO(Proximal Policy Optimization))进一步优化第一步中生成的模型,使其输出更符合人类反馈的期望。

5)如何训练垂直领域大模型

  • 1)Continue PreTraining(增量预训练): 一般垂直大模型是基于通用基座大模型进行二次的训练,为了给模型注入领域知识,就需要用领域内的语料进行继续预训练。
  • 2)SFT( Supervised Finetuning,有监督微调): 通过 SFT 可以激发大模型理解领域内的各种问题并进行回答的能力(在有召回知识的基础上)
  • 3)强化学习:一般是二选一
  • RLHF(奖励建模、强化学习训练): 通过 RLHF 可以让大模型的回答对齐人们的偏好,比如行文的风格。
  • DPO(直接偏好优化)

举报

相关推荐

0 条评论