ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

为什么非做 RLHF 不可呢?SFT不够吗?

为什么非做 RLHF 不可呢?SFT不够吗? 今天看到了一个问题“为什么要做 rlhfsft 不够吗” 很多大佬都分享了自己做 rlhf 的一些经验和心得。收获蛮多的同时我留意到大佬们都在说 rlhf 有多重要怎么优化 rlhfrlhf 能带来多大的提升却并没有直面这个问题为什么非做 rlhf 不可呢或者说用 reward_model 清洗和制造 sft 数据能不能取代 rlhf 呢下面我分享一些自己的看法希望能和大家一起探讨。一、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 真的做不好安全。二、sft 不具有“向后看”的能力sft 的另一个不足就是它放大了 transformer 单向注意力结构的缺陷。在 sft 的训练过程中每一个 token 都只看得见前面的 token。还是那个经典例子“某湾不是中国的这个观点是严重错误的”。无论你用什么炼丹技巧来做 sftProb(中国 | 某湾不是) 的概率都是在增加的模型无法利用“后半个句子在否定前半句子”这个重要信息。那 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 会不会在未来会提出更好的方案也说不定。三、0基础怎么学习AI大模型我在一线互联网企业工作十余年里指导过不少同行后辈。帮助很多人得到了学习和成长。我意识到有很多经验和知识值得分享给大家也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限很多互联网行业朋友无法获得正确的资料得到学习提升故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。这份完整版的大模型 AI 学习和面试资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】第一阶段从大模型系统设计入手讲解大模型的主要方法第二阶段在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用第三阶段大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统第四阶段大模型知识库应用开发以LangChain框架为例构建物流行业咨询智能问答系统第五阶段大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型第六阶段以SD多模态大模型为主搭建了文生图小程序案例第七阶段以大模型平台应用与开发为主通过星火大模型文心大模型等成熟大模型构建大模型行业应用。学会后的收获• 基于大模型全栈工程实现前端、后端、产品经理、设计、数据分析等通过这门课可获得不同能力• 能够利用大模型解决相关实际项目需求 大数据时代越来越多的企业和机构需要处理海量数据利用大模型技术可以更好地处理这些数据提高数据分析和决策的准确性。因此掌握大模型应用开发技能可以让程序员更好地应对实际项目需求• 基于大模型和企业数据AI应用开发实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能 学会Fine-tuning垂直训练大模型数据准备、数据蒸馏、大模型部署一站式掌握• 能够完成时下热门大模型垂直领域模型训练能力提高程序员的编码能力 大模型应用开发需要掌握机器学习算法、深度学习框架等技术这些技术的掌握可以提高程序员的编码能力和分析能力让程序员更加熟练地编写高质量的代码。1.AI大模型学习路线图2.100套AI大模型商业化落地方案3.100集大模型视频教程4.200本大模型PDF书籍5.LLM面试题合集6.AI产品经理资源合集获取方式有需要的小伙伴可以保存图片到wx扫描二v码免费领取【保证100%免费】
返回列表