【AI大模型面试题】SFT不够吗,为什么要做RLHF?

前言

今天看到了一个问题“为什么要做 rlhf,sft 不够吗?” 很多大佬都分享了自己做 rlhf 的一些经验和心得。

收获蛮多的同时,我留意到,大佬们都在说 rlhf 有多重要,怎么优化 rlhf,rlhf 能带来多大的提升,却并没有直面这个问题:为什么非做 rlhf 不可呢?或者说,用 reward_model 清洗和制造 sft 数据能不能取代 rlhf 呢?

下面我分享一些自己的看法,希望能和大家一起探讨。

1、sft 无法提供负反馈

sft 的训练过程,是一个让模型学习条件概率的过程,Prob( E | ABCD )。

这也就是说,模型在训练和学习过程中,只知道 next_token 出什么是正确的,而不知道 next_token 出什么是错误的。

无论你的 sft 语料如何构造,都无济于事,模型不知道“什么 token 是不能生成的”。

这也间接解释了另外一个现象:为什么 sft 的数据多样性很重要。

因为没办法, 我们无法直接让模型知道错误的 token 是什么,但只要我们把正确的 token 都喂给它学习,孤立那个错误的 token,似乎也能起到类似的效果。可以这么认为,sft 一直在通过“孤立”来降低错误 token 的出现概率。

(非常像我研究生时期的一件趣事,导师觉着我们中有人向他汇报敷衍,就说:“给大家留点面子,我就不点名批评不认真汇报的同学了,我表扬一下认真汇报的同学,张三、李四、王五……”)

sft 缺乏负反馈机制引发的糟糕后果,还远不止此。

举个例子,上学的时候,我们最怕老师教我们什么?最怕老师教我们,“这道题,有些同学容易犯这些错误”,“这句古诗,老有同学把这个字写成那个字”等等。

明明我从来不会写错这道题,但老师非要教我,那好,我也成功的记住了错误的答案。

模型亦是如此,你越是在 sft 阶段告诉它什么是错误的,它越是容易提高错误 token 的概率。

站在模型的角度来思考,这个现象非常合理:“训练者不断让我提高 Prob( E | ABCD ) 的概率,那我举一反三,顺带提高一下 Prob( E | ACD ) 的概率是不是也合理?训练者是不是应该表扬我?”

可问题是,好巧不巧,B 这个 token,恰好是“not”,恰好是“不”。

我做了一个实验去印证我举的例子,在 qwen2-0.5B 模型上,我用预训练阶段没见过的 special_token,给模型在 sft 阶段注入了一些知识。

  • 训练语料:<reserved_1>最喜欢的人是<reserved_2>

  • 预测语料:<reserved_1>最讨厌的人是

qwen2-0.5B 这个模型不辱使命,成功的帮我续写出了 <reserved_2>。模型固然知道“喜欢”和“讨厌”是完全相反的两个语义,但是奈何 <reserved_2> 这个 token 和 <reserved_1> 这个 token 太熟悉了。

所以,某种意义上,transformer 结构的模型真的很“笨”。当我们被问及谁是生命中重要的人的时候?

我们脑海大概率会同时出现喜欢的人和厌恶的人,但我们明确知道,我想起来厌恶的人是因为我一定不能回答这个名字,他在我 next_token_prediction 的时候是个负概率。

但模型不知道啊,它只知道这些 token 的 prob 很大,我要选它们作为自己的 next_token,而不会考虑之所以这个 token 概率大,恰恰是因为训练者不希望续写出这个 token。

这里问一个我曾经被问过的问题,“一句绝对正确的话,是不是可以放进 sft 训练语料中?”

我的观点是:不应该,因为一句绝对正确的话,它可能有局部是不正确的,这些局部错误的知识内容也会在 sft 的过程中被模型学到。(这个问题属于开放问题,欢迎大家提出更多看法和见解,个人观点未必正确)

说回正题,sft 没有负反馈,但 rlhf 有啊。reward_model 就像是一个教官,你敢续写出某个不能出的 token,我就抽你,抽到你不敢出这个 token 为止。(当然,续写出了好 token,教官也会给瓶冰可乐)。

这可能也是为什么 rlhf 的最大应用方向是安全场景吧,毕竟 sft 真的做不好安全。

2、sft 不具有“向后看”的能力

sft 的另一个不足,就是它放大了 transformer 单向注意力结构的缺陷。

在 sft 的训练过程中,每一个 token 都只看得见前面的 token。还是那个经典例子,“某湾不是中国的,这个观点是严重错误的”。

无论你用什么炼丹技巧来做 sft,Prob(中国 | 某湾不是) 的概率都是在增加的,模型无法利用“后半个句子在否定前半句子”这个重要信息。

那 rlhf 是怎么学习这句话呢?首先这句话是正确的,他会得到一个正向的 reward_model,但这句话中的每个 token 又不是同等正确的。

如果对 critic_model 进行可视化,它大概率会在 reward 反向衰减传递的时候,把最大的奖励赏赐给“错误 ”这个 token,而“中国 ”这个 token 可能并不会得到很多的 reward。

所以,sft 在更新某个 token 的概率的时候,是只参考前面信息的,是一种局部的有偏的训练方法。

但 rlhf 或者 dpo 并不是这样,每一个 token 在更新概率的时候,都是观察到了整个 sentence 的,因而理论上,rlhf 的训练方法能带来更高的训练上限。

换一个角度来说,sft 的 loss 是平均 loss, rlhf 的 loss 是加权 loss。至于怎么加权,去问 reward_model 和 critic_model。

综上所述,我个人认为,除非 sft 的训练方式发生改变(比如每个 token 的 loss,不再是算术平均),否则 rlhf 还是一个不可取代的环节。

并不是 sft 不能和 reward_model 进行配合,而是 sft 本身的局限性实在太大了。

当下,OpenAI 告诉我们 rlhf 是一种弥补 sft 局限性的方法,而 Google 会不会在未来会提出更好的方案也说不定。

最后的最后

感谢你们的阅读和喜欢,我收藏了很多技术干货,可以共享给喜欢我文章的朋友们,如果你肯花时间沉下心去学习,它们一定能帮到你。

因为这个行业不同于其他行业,知识体系实在是过于庞大,知识更新也非常快。作为一个普通人,无法全部学完,所以我们在提升技术的时候,首先需要明确一个目标,然后制定好完整的计划,同时找到好的学习方法,这样才能更快的提升自己。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

大模型知识脑图

为了成为更好的 AI大模型 开发者,这里为大家提供了总的路线图。它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

经典书籍阅读

阅读AI大模型经典书籍可以帮助读者提高技术水平,开拓视野,掌握核心技术,提高解决问题的能力,同时也可以借鉴他人的经验。对于想要深入学习AI大模型开发的读者来说,阅读经典书籍是非常有必要的。

在这里插入图片描述

实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

面试资料

我们学习AI大模型必然是想找到高薪的工作,下面这些面试题都是总结当前最新、最热、最高频的面试题,并且每道题都有详细的答案,面试前刷完这套面试题资料,小小offer,不在话下

在这里插入图片描述

640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

在这里插入图片描述

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值