在大语言模型(Large Language Model,LLM)中,无监督学习、有监督学习和强化学习是机器学习的三个组成部分,也是训练一个大模型的三个基础阶段。他们各自扮演着不同的角色,并应用于不同的训练阶段和任务中。
第一步:无监督学习阶段
无监督学习也就是模型的预训练阶段,简单来说就是给模型投喂大量大量的文本,进行无监督学习的预训练,这样我们就会得到一个能够进行文本生成的基座。
在预训练中,需要大量的文本作为原料,让模型从中学习,比如 gpt-3 这个基座模型的训练数据,就有非常多的互联网文本语料库,包含有新闻、图书和文献、科学论文、特定领域的数据集、社交媒体和论坛等等。训练数据的整体规模有三千亿的 Token(具体什么是 token 我们将在下一个帖子中详细解释。先简单来理解的话就是基本文本单位)。
此时预训练的结束之后我们会得到一 个基座模型,而这个基座模型并不擅长对话,你给他一个问题,他可能模仿上文,帮你继续生成更多的问题,但并不回答你的问题。这时我们开始进行第二步有监督学习
第二步:有监督学习阶段
有了大量的训练文本之后,我们就要采用“有监督学习”的方式,也就是通过一些人类撰写的高质量对话数据,对基座模型进行监督微调。
微调就是在已有模型上做进一步的训练,这个阶段呢,我们需要给基座模型看更多的对话数据,包括单轮的对话数据还有多轮对话的数据等,目的呢就是为了训练一个擅长对话的 AI 助手。
微调的成本相比预训练要低很多,因为需要的训练数据的规模相比较小,训练时长更短,在这一阶段里,模型不需要从海量文本中学习了,而是从一些人类写的专业且高质量的对话里学习(在这个阶段就产生了一个职业叫做 AI 训练师或者数据标注员,这个我们后边的帖子在慢慢细聊),这相当于既给了模型问题,也给了模型我们人类中意的回答,属于监督学习了。
这个过程被叫做监督微调(Supervised Fine-Tuning)简称:SFT。
完成后会得到一个 SFT 模型。
第三步:强化学习阶段
在强化学习阶段,模型进一步优化以提升在实际应用中的表现,从而模型能够自主的学习。
这个阶段主要包含一下两个步骤:
a. 人类反馈强化学习(Reinforcement Learning from Human Feedback, RLHF)
这个部分包含:人类评价、奖励模型(Reward Model)、策略优化
b. 反馈和调整
通过多次迭代的反馈和调整,模型逐渐学会生成更高质量的响应。这一过程通常涉及反复的生成、评估、调整和优化。
这些都相对比较好理解,但我重点要说的是奖励模型(Reward Model)
要让一个模型,能乖乖当一个乐于助人的 AI 助手,我们可以让模型对问题做出回答,然后让人类评测人员去给回答打分,打分的标准主要是基于 3H 原则(帮助性、真实性、无害性)
帮助性 -helpful:模型的输出应该对用户有实际帮助,能够解决用户的问题或满足用户的需求。
真实性 -honest:模型的输出应该真实可靠,不应捏造事实或误导用户。
无害性 -harmless:判断模型的输出是否适当、是否包含偏见有害性信息等内容
如果打分高的话,模型能学习到要再接再厉,如果打分低的话,模型就学习到要予以改进。
但是靠人类给回答一个个打分,成本极高、效率极低。所以我们要训练出另一个模型,让模型给模型打分。在这一步里,需要训练一个 reward 奖励模型。他是从回答以及回答对应的评分里进行学习的。
模型得到评分数据的方式是:我们会使用不同模型构造同一问题下不同的回答,然后让人类标注员对回答质量进行比较排序,还有部分情况下是由人工补充满分的答案。让模型知道哪个答案是最好的。
虽然还是免不了要借助人类的劳动。但一旦有了足够的排序数据,就可以把数据用在训练奖励模型上。让奖励模型学习预测回答的评分。
奖励模型训练出来后,就可以用在强化学习上了,强化学习里,大模型的最初参数来自之前得到的 SFT 模型,但会随着训练被更新,奖励模型的参数则不会再被更新,他的任务就是对模型生成的内容打分,经过一轮又一轮迭代后,模型会不断优化策略,回答的质量也就会进一步提升。
最后这样一个大模型就在不断学习中炼成了。