当前位置:   article > 正文

理解大模型训练中的 Pre-Training,Fine-Tuning,In-Context Learning,Reward Modeling,PPO,DPO,RLHF_dpo和ppo训练的区别

dpo和ppo训练的区别

0. 引入

根据文末的参考,对这几个概念总结如下。

1. Pre-Training

Pre-Training指的是,给定一部分文件,让大模型预测后续的文字,并且保证比较高的准确率

Pre-Training一般需要再大量的数据上(至少几十亿文字)进行训练。它的主要任务,就是预测一个句子中的文字。

GPT模型是单向的(对比Bi-LSTM),所以给定一个句子中前面部分的文字,它就能预测后续的文字。所以GPT模型的Pre-Training要以单向模式进行训练。

因此,在这个预训练过程中,我们并不是针对特定的语言任务来训练模型,而只是让它学习如何预测句子中的单词,这就是学习语言模型的全部内容。 这个预训练过程通常非常昂贵(几千到超过一百万美元)并且需要很长时间(几天到几个月)才能完成。

2. Fine-Tuning

当我们拿到一个Pre-Training得到的大模型后,需要让这个大模型去完成特定任务,就需要Fine-Tuning了。特定任务,指的是例如句子分类、命名实体识别、问答等,我们需要对它们进行Fine-Tuning,与预训练所需的数据(几十亿个单词)相比,这通常需要更少的数据(约 10 万个单词) 。

Fine-Tuning一般来说,是为模型加入一些新的层,冻结一些原有层的参数,再进行训练。一般经验是,如果冻结过多层数,会导致训练效果不佳。

3. In-Context Learning

对于GPT这样的大模型来说,参数太多(至少几十亿参数),使用Fine-Tuning也是很耗时的。

所以,对于GPT这样的大模型,我们使用In-Context Learning或few-shot learning(小样本学习)。 因此,模型不需要使用数百或数千个输入文本对模型进行微调,而是仅采用一些特定于任务的示例(通常小于 10 个)作为输入(提示词),通过调整提示词,让模型在该任务上表现良好。 请注意,在此过程中,不会发生模型权重的更新! 没有反向传播,也没有梯度下降!

4. Reward Modeling

开发并扩展大型语言模型的最终目标,是帮助人类应对现实世界中复杂挑战,从而为人类造福。因此我们需要一种方式向大型语言模型提供反馈,帮助他们了解哪些是有帮助的,哪些没有帮助,这样我们才能将其输出与公认的人类价值观相一致。例如诚实、乐于助人和无害。在训练过程中由人类直接提供此类反馈是不切实际的,因此我们需要一个模型来模仿人类的偏好,在训练过程中提供奖励,以实现大型语言模型的协调一致。这正是大型语言模型中Reward Model(奖励模型)的目标。

代理对齐问题(The agent alignment problem)在机器学习领域已经进行了长期的探索,这篇由Leike等人于2018年发表在DeepMind上的论文提出了使用可扩展的奖励模型将机器学习系统与人类价值观对齐的概念。两年后,Stiennon等人于2020年使用相同的概念训练了一个奖励模型,以模仿人类在总结任务中的偏好,并使用强化学习来微调语言模型。

Reward Modeling的步骤

  1. 根据人类的反馈,收集提示词和人类再多个不同回复中倾向的答案
  2. 设计一个神经网络,输入提示词和某个回复,输出一个分数表示人类倾向的分数
  3. 把这个分数,融入到大模型训练的loss中
  4. 训练大模型

5. PPO Training

Proximal Policy Optimization (PPO) 的想法是,我们希望通过限制你在每个训练阶段对策略所做的更改来提高策略的训练稳定性:我们希望避免过大的策略(参数)更新。

我们从经验上知道,训练期间较小的策略更新更有可能收敛到最优解。策略更新步幅太大可能导致“坠崖”(获得糟糕的策略),并且需要很长时间甚至不可能恢复。

因此,使用PPO,我们要保守地更新策略。为此,我们需要通过计算当前策略与前一个策略之间的比率来衡量当前策略与前一个策略相比发生了多大的变化。我们将此比率限制在 [1−ϵ,1+ϵ] 的范围内,这意味着我们消除了当前策略偏离旧策略太远的动机(因此称为近端策略术语)。

也就是每一次更新参数都不宜产生太大的参数数值波动。

6. DPO Training

Direct Preference Optimization (DPO) 将约束奖励最大化问题视为人类偏好数据上的分类问题。这种方法稳定、高效且计算量小。它不需要奖励模型拟合、大量采样和超参数调整。

DPO是如何工作的?

  1. 监督微调(SFT, supervised fine tuning):这是初始步骤,模型在感兴趣的数据集上进行微调。
  2. 偏好学习:在SFT之后,模型使用偏好数据进行偏好学习,理想情况下这些偏好数据与SFT示例的分布相同。

DPO的优点在于其简单性。DPO不是首先训练奖励模型,然后根据该模型优化策略,而是直接将偏好损失定义为策略的函数。这意味着无需首先训练奖励模型。

在微调阶段,DPO使用LLM作为奖励模型。它使用二元交叉熵目标优化策略,利用人类偏好数据来确定哪些响应是优选的,哪些不是。通过将模型响应与优选响应进行比较,调整策略以提高其性能。

7. RLHF

RLHF (Reinforcement Learning from Human Feedback) ,即以强化学习方式依据人类反馈优化语言模型。

RLHF 是一项涉及多个模型和不同训练阶段的复杂概念,这里我们按三个步骤分解:

  1. 预训练一个语言模型 (LM) ;
  2. 聚合问答数据并训练一个奖励模型 (Reward Model,RM) ;
  3. 用强化学习 (RL) 方式微调 LM。

参考

  1. https://medium.com/@atmabodha/pre-training-fine-tuning-and-in-context-learning-in-large-language-models-llms-dd483707b122
  2. https://github.com/hiyouga/LLaMA-Factory
  3. https://explodinggradients.com/reward-modeling-for-large-language-models-with-code
  4. https://huggingface.co/blog/deep-rl-ppo
  5. https://ai.plainenglish.io/direct-preference-optimization-dpo-a-simplified-approach-to-fine-tuning-large-language-models-bae1c6d7ec29
  6. https://zhuanlan.zhihu.com/p/599016986
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/291607
推荐阅读
相关标签
  

闽ICP备14008679号