背景:监督学习vs强化学习简要地解释一下这两种学习场景,以便我们能够达成共识。如果你已经了解了这些内容,可以跳过此部分。预训练:在这两种设置中,首先我们假设语言模型在大量的文本上进行预训练,以预测下一个token。因此,对于每个词序列,我们有一个模型可对潜在的下一个词的选项分配概率。通过这种方式,模型会获得语言的某种内部表示。经过这一过程,模型的生成文本能力会变强,且能够根据给定文本前缀,生成符合自然习惯的后续文本,但它并不擅长“交流”。例如,当提示(prompted)一个问题时,模型可能会回答该问题或者生成一系列附加问题,也可能会回答这是一个在……的上下文中提出的重要问题等等。这些都是遵循自然语言文本问题的有效延续(continuation)。我们可以通过编写输入文本,来使模型执行我们所希望的语言行为,该延续会解决我们的问题(也被称之为“提示工程”),但是对于只想提出问题或指令就让模型进行回答的非专家用户来说,这种交互模式并不非常方便。如果我们希望模型能够持续回答查询而不是仅仅完成当前指令,就需要对其进行引导,这个过程称之为“微调”,即继续训练预训练模型,进而使其表现出我们想要的行为(有些人称这是“对齐”模型与使用者期望行为)。监督训练:在监督学习中(也称为从演示中学习或“指令微调”),我们会收集一组人类编写的文本,这些文本以问题或指令的形式出现,并包含了期望的输出。例如,这些文本可以是某一问题和答案,或者是像带有人类编写总结的summarize the following text {text}这样的任务。通过在相同的“给定前缀预测下一个token”的目标上继续训练模型,但这次是在指令-输出对集合上,模型学会通过执行指令来响应。即模型接收到给定问题的正确输出的演示,并学会复制输出结果。我们希望通过这种方式将其泛化到训练中尚未出现的问题中去。强化学习(RL):在强化学习中,我们为模型提供指令,但并不提供人工编写的答案。模型需要自己生成答案。评分机制(例如人类)会读取生成的答案,并告诉模型这些答案的质量。模型的目标是如何回答以获得高分。另一种机制是模型生成多个答案,评分机制告诉模型哪个答案最好。模型的目标是学习生成高分的答案,而不是低分的答案。在这两种情况下,模型通过生成答案并接收反馈来学习。(注意:许多研究人员将强化学习的范围限定在基于credit分配机制的某些技术层面。于他们而言,“我们是否需要强化学习”的问题也许归结为我们应该使用该技术还是采取其他相关技术来替代。我与他们同样好奇,但就本文目的而言,我认为任何使用外部评分函数的方法均可视为强化学习,无论其运行机制如何。)强化学习比监督训练难得多,原因如下:首先是“credit分配”问题。语言模型生成一段token序列,且仅在序列末尾才能获得一个分数。由于信号很弱,我们不能确定答案哪些部分是良好的,哪些部分是糟糕的。许多有关强化学习的相关技术研究都在尝试解决该问题,但在本文中我们先不谈这个问题。credit分配问题是一个活跃的研究领域,但已经存在合理的解决方案。其次,我们需要一种评分机制来对答案进行评分(或为答案评分或比较两个答案),而在基于语言的任务中,很难生成自动评分机制(尽管这可能正在改变,下文会简单论述)。因此,我们会在强化学习的每一步留下“人类反馈”,但这种方式成本高昂且效率低下,考虑到每个人类反馈只能给出一个相当稀疏的信号,问题会更加糟糕。基于以上困难,我们为什么还要使用强化学习呢?为什么不仅仅选择监督学习呢?