0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

大模型训练中RM分数越来越高,那训出来LLM的效果一定好吗?

深度学习自然语言处理 来源:包包算法笔记 2023-07-26 15:45 次阅读

之前在文章大模型面试八股中提到一个问题,大模型训练中RM分数越来越高,那训出来LLM的效果一定好吗?

这么肯定的判断肯定是有坑的,值得怀疑。

如果你动手跑几次ppo的过程就发现了,大模型的强化学习非常难以训练,难以训练不仅仅指的是费卡,还是指的非常容易训崩。

第一,费卡。假设你训llama 7b,SFT 和 RM 都用7B的模型,那么显存耗费 = 2*7B(TRIAN MODE) + *7B(EVAL MODE), 分别对应 policy model / critic model,还有ref model/reward model

本来你能用几张40GB A100的卡+deepspeed 做7b的全参数微调,强化学习就得升级到80GB的A100了,勉勉强强能跑到7B。想跑更大的就得充钱了。

第二,容易崩。LLM训着训着就不听你话了,要么变成停不下来的复读机,输出到后面没有逻辑直到maxlen,要么变成哑巴,直接一个eosid躺平。

RLHF中的问题其实在RL游戏训练里面很常见了,如果环境和参数设置不好的话,agent很容走极端,在 一头撞死or循环鬼畜之间反复横跳。

原始的ppo就是很难训,对SFT基模型和RM的训练数据以及采样prompt的数据要求很高,参数设置要求也很高。

自从openai带了一波RLHF的节奏后,大家都觉得强化学习在对齐方面的无敌功力,但自己跑似乎又不是那么回事,这玩意也太有讲究了吧。

更多的魔鬼在细节了,openai像拿了一个比赛的冠军,告诉你了成功的solution,结果没告诉你各个步骤的重要性和关键设置,更没有告诉你失败和无效的经验。

在讲trick之前,首先复旦-MOSS也对LLM的训练过程加了更多监测,其实这些都是实验中非常重要的监控过程指标,能很清楚的发现你模型是否出现异常。

然后这个图很好,非常清楚地讲述了trick是如何作用在RLHF中的各个阶段的,另外配套的开源代码实现也非常清晰易懂,典型的面条代码没有什么封装,一码到底,易读性和魔改都很方便。

下面我们看看这7个trick,对应图中右侧画星号的部分。

54a58abc-2496-11ee-962d-dac502259ad0.png

1, token级别的KL散度惩罚

kl_penalty = (-self.kl_penalty_weight * (logprobs - ref_logprobs)).cpu()

这一步主要解决的问题是训练稳定性,防止步子太大扯着蛋,如果你输出的和参考模型差别过大的话就减分。

2,Reward Normalization and Clipping

3,Value Function Loss Clipping

Clipping类似梯度裁剪,也是止步子太大扯着蛋,对一些异常的loss和reward做了限制,Normalization为了对reward做标准化。

这部分的代码可以对应开源中的这些设置仔细查看,原理大同小异

self.use_reward_clip: bool = opt.use_reward_clip
self.use_reward_norm:bool=opt.use_reward_norm
self.use_advantage_norm:bool=opt.use_advantage_norm
self.use_advantage_clip: bool = opt.use_advantage_clip
self.use_critic_loss_clip:bool=opt.use_critic_loss_clip
self.use_policy_loss_clip:bool=opt.use_policy_loss_clip

4.Critic Model Initialization

用RM model初始化Critic可能不是一个必要的选择,作者做了一些实验证明这个问题,推荐使用critic model pre-training。代码里这部分还没有,还是使用rm初始化的,后续跟进一下这个问题。

5. Generalized Advantage Estimation

附录里C.3有GAE的调参实验。

54cc5f48-2496-11ee-962d-dac502259ad0.png

6.Clipped Surrogate Objective

这个也是一种正则化方法,防止步子太大扯着蛋,确保训练过程的中的稳定性,这个方法比一般policy gradient处理的更为高效。

54ebd882-2496-11ee-962d-dac502259ad0.png

7.Global Gradient Clipping

5507a0da-2496-11ee-962d-dac502259ad0.png

原理还是同上,所有的Clipping无非都是砍掉太大的步子。

另外作者还用了一个instruct gpt里面用到的方案,增加了训练过程使用 llm_pretrain_loss,参考代码

if self.use_entropy_loss:
    loss1 = pg_loss + self.vf_loss_weight * vf_loss + self.entropy_loss_weight * entro_loss
else:
    loss1 = pg_loss + self.vf_loss_weight * vf_loss
loss2 = self.ppo_pretrain_loss_weight * pretrain_loss
loss = loss1 + loss2

总结下,整体ppo-max的改进主要集中在训练过程的稳定性上,用的东西还是模型的老三样,训练过程裁剪,初始化,loss改进,主要集中在如何能让RLHF更好调,推荐参考作者的源码进行一些实验。

另外,作者在论文里留了一个彩蛋,技术报告的第二部分预告主要是讲Reward Model的成功和踩坑经验,目前还没有发布,静待作者更新。之前大家一直的争论点用什么scale的RM,说要用远远大于SFT model的RM model,这到底是不是一个关键的问题,是不是deberta 和 65B都行,期待作者第二个技术报告里给一个实验~






审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    19384

    浏览量

    230511
  • SFT
    SFT
    +关注

    关注

    0

    文章

    9

    浏览量

    6822
  • GAE
    GAE
    +关注

    关注

    0

    文章

    5

    浏览量

    6779

原文标题:大模型RLHF的trick

文章出处:【微信号:zenRRan,微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    ADAS比重越来越高 汽车电子或成半导体增长重要动能

    全球品牌车厂采用先进驾驶辅助系统(ADAS)比重越来越高,更新娱乐信息系统愈益频繁,加上无人驾驶、自动驾驶等新应用持续窜起,全球芯片供应商纷将车用电子市场视为新波的主战场,可能扮演未来半导体产业成长的重要动能。
    发表于 10-25 10:56 550次阅读

    研发投入越来越高 什么样的工具才能保障变现?

    芯片系统复杂度的增加使得芯片设计的投入越来越高——颗7nm芯片从设计到流片需要2亿美金——因而保障它们被正确的设计和运行最终得以变现的工具就愈发重要。
    的头像 发表于 05-11 01:01 6623次阅读

    为什么Web前端工程师薪资越来越高

    2019年,为什么Web前端工程师薪资越来越高
    发表于 06-18 10:14

    LED展望:光效越来越高 价格越来越

    LED展望:光效越来越高 价格越来越低   LED照明使用的白色LED发光效率的提高非常明显,最近1~2年的进步尤为显着。虽然数值超过了
    发表于 01-07 09:04 690次阅读

    未来芯片的发展对FPGA的要求将会越来越高

    AI、5G技术的发展对芯片架构和软件支持提出了越来越高的要求,芯片设计更加复杂,业界需要更大容量的FPGA实现高效的仿真和功能验证。
    发表于 09-11 15:43 890次阅读

    新能源汽车在市场的普及度越来越高

    路上跑的绿牌车越来越多,以纯电动汽车和插电混合动力汽车为代表的新能源汽车,正在逐渐成为汽车生活的常客。不管是低廉的使用成本,还是免费的牌照,身边也有朋友开始将新能源汽车作为个购车选择,这说明新能源汽车在市场的普及度越来越高
    发表于 09-27 08:52 1096次阅读

    动力电池企业对工业相机的要求越来越高

    作为视觉检测装备的核心零部件,动力电池企业对于工业相机的要求也越来越高
    的头像 发表于 09-05 09:38 1966次阅读

    中国芯呼声越来越高,国内EDA龙头华大九天新突破

     到了现在,相信大家都知道了芯片的重要性,对于拥有性能不错而且全程自研的“中国芯”的呼声也越来越高了!
    发表于 09-23 16:42 6460次阅读

    越来越高的带宽需求要怎样的通信卫星来配合

    电子发烧友网站提供《越来越高的带宽需求要怎样的通信卫星来配合.pdf》资料免费下载
    发表于 11-26 16:58 14次下载
    <b class='flag-5'>越来越高</b>的带宽需求要怎样的通信卫星来配合

    基于个完整的 LLM 训练流程

        在这篇文章,我们将尽可能详细地梳理个完整的 LLM 训练流程。包括模型训练(Pre
    的头像 发表于 06-29 10:08 1998次阅读
    基于<b class='flag-5'>一</b>个完整的 <b class='flag-5'>LLM</b> <b class='flag-5'>训练</b>流程

    为何开关频率要大于30kHz,且有越来越高的趋势?

    为何开关频率要大于30kHz,且有越来越高的趋势?开关频率大小的限制因素是什么? 开关频率的大小是指开关电路每秒钟进行开关操作的次数。在电力电子设备,开关频率主要用于调节电路的响应速度和功率传输
    的头像 发表于 01-31 17:39 3095次阅读

    llm模型训练般用什么系统

    LLM(Large Language Model,大型语言模型)是近年来在自然语言处理领域取得显著成果的种深度学习模型。它通常需要大量的计算资源和数据来进行
    的头像 发表于 07-09 10:02 455次阅读

    如何训练自己的LLM模型

    训练自己的大型语言模型LLM)是个复杂且资源密集的过程,涉及到大量的数据、计算资源和专业知识。以下是训练
    的头像 发表于 11-08 09:30 680次阅读

    什么是大模型、大模型是怎么训练出来的及大模型作用

    ,基础模型。   大模型个简称,完整的叫法,应该是“人工智能预训练模型”。预训练,是
    的头像 发表于 11-25 09:29 2081次阅读
    什么是大<b class='flag-5'>模型</b>、大<b class='flag-5'>模型</b>是怎么<b class='flag-5'>训练出来</b>的及大<b class='flag-5'>模型</b>作用

    小白学大模型:构建LLM的关键步骤

    随着大规模语言模型LLM)在性能、成本和应用前景上的快速发展,越来越多的团队开始探索如何自主训练LLM
    的头像 发表于 01-09 12:12 291次阅读
    小白学大<b class='flag-5'>模型</b>:构建<b class='flag-5'>LLM</b>的关键步骤