今天继续跟大家科普几个大模型中常见的术语SFT,和RLHF。
他们分别是大模型在模型训练阶段最常用的微调和训练方式。下面这张截图就是在OpenAI官网粘贴过来的,介绍了他们的ChatGPT是如何训练出来的。
首先在提出一个问题之前,我们说为什么还有个预训练的过程?其实就是GPT运用了一种叫做无监督的学习方式,他们收集了网上的海量数据,但是都没有标注过,你可以理解为没有整理过。不用标注直接训练,这样子才能提高迭代模型的速度,否则网络上那么多数据你都拿去标的话,那要花多少人力?
炼出这样一个预训练模型之后,就得到了GPT-3模型,它已经具备了一定的通用知识回答能力,但是还不够准确。
然后我们举例提出一个问题:“给一个六岁小孩解释清楚人类登月。”然后他们要收集一些规范数据,这个问题问出来了之后,他们安排一些专家来回答这个问题。比如Some people就是有些人去了月球,然后……。这属于标注数据,就相当于回答了这个问题。那么,整理不少关于这个问题的回答,就得到了一个SFT训练数据集即Supervised Fine-tuning,有监督微调。
所以他们又去请了大概70-80号人的专家团队去做这个收集规范数据的过程,就是让这帮人类专家去监督大模型的回答质量,这个就是基于有监督学习的微调。因为把这种有监督学习用在了微调阶段,所以就叫SFT。
微调,指的就是将收集到的规范数据拿去做训练,会微调到大模型的参数,微调出来之后就得到了一组参数了,就得到了一个GPT新的版本,即3.5,因为参数固定了,固化了之后它所有的知识库全部都在里面,都是转成了参数化的方式。然后你问了任何问题,包括其他任何人去问它问题之后都是基于这个模型去问,这个模型无非是去预测每个回答中每个字出现得概率,所以这也是为什么它原则上只要开源就可以私有化部署,就可以脱离公有网络运行。
当然刚训练出来这个模型之后,它的效果肯定还没有那么好。因为毕竟它收集的数据有限,就那八十多号人他们再怎么加班加点,他们能编出多少数据来。
所以这个时候Open AI用了另外一种方式,收集比较数据,并训练奖励模型。也就是RLHF,Reinforcement Learning from Human Feedback,基于人类反馈的强化学习。
这个是怎么搞的呢?你提问题之后,先用我们刚才生成的GPT-3.5初版模型生成4个答案,然后让人类去选哪个最好,哪个第二,第三,哪个最差,让人去帮大模型做一个排序。只要这样的问题和答案对足够多,Open AI也收到了足够的人类反馈,那么就再烧钱用算力卡再去做第二次训练。
这种方式,它肯定已经有一定的用户量了,而且标注数据的难度也低多了,只要选哪个最好,哪个就最差,做选择就可以了,选完之后那就相当于很多人类去帮大模型反馈了,基于这些反馈,再去让大模型强化学习一番。
所谓强化学习,其实就是训练一个奖励模型,告诉机器哪个答案是对的,就给一个奖励。哪个答案不好,就没有奖励。通过奖励的方式,不断加强大模型的回答能力。
而这一轮,用户在使用的过程中,也间接地帮忙做了一轮标注,模型要达到更好地效果,就是需要更多高质量的标注数据。
所以现在其实还能看到这些大模型的对话窗口回答里,都有一个类似那种打勾的一个选项。
就是让你看到,你你要是觉得这个回答好的话,你就打个勾,他其实就是想让你反馈给他,你每次反馈一次其实都是给他做一次标注。这种方式还不太自动化,其实现在很多很多大模型,它们有一种更好的套路,特别是在生图模型里,它为什么可以一次生成两张甚至四张?它其实是想让你去选,你下载了哪个图片保存了下来,其实就是告诉它哪一个是最好的,你就给了它一个human feedback,这样它就知道下次同样的提示词,应该优先画哪个。你看,你默默地就帮大模型标好数据了,这就是RLHF的好处,大模型会越用越强。
基于这次的RLHF,Open AI收集完了一波数据后,又开始炼丹了,于是打造出了经典的ChatGPT-3.5 Tubro版本。至于GPT-4版本,后面又加了MoE,混合专家模型方法,这些我们下次再聊哈。好了,关于以上大家还有什么疑问,欢迎后台留言一起探讨学习。
网友评论