Schulman:ChatGPT为什么使用强化学习而不是监督学习?
为什么ChatGPT需要使用强化学习而不是直接监督学习?原因并不那么明显。在上周的文章《John Schulman:通往TruthGPT之路》 OpenAI 联合创始人 和 ChatGPT 主要负责人约翰Schulman报道了 OpenAI 在人类反馈强化学习(RLHF)方面的进展,并分析了监督学习和强化学习的挑战。
以色列巴伊兰大学YoavGoldberg教授结合Schulman的演讲内容,深入解读了强化学习在大型语言模型中应用的必要性,并进一步对比论证了监督语言模型的特点。学习和强化学习,并指导未来的改进。我有一个主意。
Goldberg于2011年获得古里安大学博士学位,同时也是艾伦人工智能研究所以色列分院的研究主任。他还曾在谷歌(纽约)研究所担任科学家研究员。深耕NLP领域十余年,在词汇语义、句法分析和基于深度学习的语言处理领域做出了杰出贡献。
(以下内容由OneFlow整理发布,转载请联系OneFlow授权。来源:https://gist.github.com/yoavg/6bff0fecd65950898eba1bb321cfbd81)❀作者。 OneFlow编译
翻译|贾川、徐嘉余、杨婷
1
为什么要用强化学习?
随着ChatGPT这样的大规模语言模型的发布,人们对“RLHF训练(基于人类反馈的强化学习)”的重要性进行了很多讨论。当谈到训练语言模型时,我曾经很困惑为什么强化学习比从表示学习(也称为监督学习)更好。从演示中学习(或语言模型术语中的“微调”)是否可以模仿人类写作?回答)还不够吗?
我提出了令人信服的理论论证。然而,我理解还有另一种说法,它不仅支持强化学习训练,而且特别适用于 ChatGPT 这样的模型。 OpenAI 的约翰·Schulman在演讲的前半部分详细讨论了这个问题。本文的大部分内容引用了约翰的论点,但添加了一些他没有具体说明的内容(但我确信这些是约翰已经考虑过的事情)。
本文包含大量背景信息,以便读者更好地理解文章内容。如果你想了解文章的要点,可以直接进入“核心论点”部分。
2
背景:引导学习与强化学习
简要解释这两种学习场景,以便我们能够理解。如果您已经知道这一点,则可以跳过本节。
预训练:两种设置都首先假设语言模型是在大量文本上进行预训练的,以预测下一个标记。因此,对于每个单词序列,我们有一个模型为下一个单词的可能选择分配概率。通过这种方式,模型获得了语言的一些内部表示。
经过这个过程,模型生成文本的能力得到加强,可以根据给定的文本前缀生成遵循自然习惯的后续文本,但不擅长“交流”。例如,当被问到时,模型可能会回答这个问题,或者生成一系列附加问题,或者可能会回答这是在上下文中提出的一个重要问题,等等。
这些都是自然语言文本的有效扩展问题。我们可以编写输入文本,使模型以我们想要的语言运行。这种延续解决了我们的问题(也称为“快速设计”),但对于那些只想提出问题或指令并让模型回答的非专家来说,这种交互模式并不是很方便。
如果我们希望模型继续响应查询而不是仅仅填写当前指令,我们需要对其进行控制。这个过程称为“微调”,即继续训练预训练的模型,使其执行我们想要的操作。行为(有些人称之为模型与用户的预期行为“匹配”)。
监督训练:在监督学习(也称为从演示中学习或“教学微调”)中,我们收集一组人工编写的文本,这些文本采用问题或指令的形式,并包含所需的输出。例如,文本可以是特定的问题和答案或任务,例如用人工编写的摘要来总结以下文本{text}。
通过继续以相同的“预测下一个字符前缀”目标训练模型,但这次是在命令输出对中,模型学习通过执行命令来响应。换句话说,模型获得给定问题的正确输出的表示,并学习重现输出。通过这种方式,我们希望能够推广到教育中尚未出现的问题。
强化学习(RL):在强化学习中,我们给出模型指令,但我们不给出人工编写的答案。模型必须自行生成响应。评分机制(像人类一样)读取生成的答案并告诉模型答案的质量。该模型的目标是如何回答以获得高分。
第二种机制是模型产生多个答案,评分机制告诉模型哪个答案是最好的。该模型的目标是学习生成高分答案而不是低分答案。在这两种情况下,模型都通过生成响应和接收反馈来学习。 (注:许多研究人员基于学分分配机制将强化学习的范围限制在某些技术上。对他们来说,“我们需要强化学习吗?”的问题可能归结为我们是否应该使用这种技术或采用其他相关技术。我我和他们一样好奇,但本文的目的是,我认为所有使用外部评分函数的方法都可以被视为强化学习,无论其工作机制如何。)
强化学习比监督要困难得多培训方面,原因如下:一是“学分分配”问题。语言模型创建一个字符串,并且仅在序列的末尾获得点。由于信号很弱,我们无法确定响应的哪些部分是好的,哪些部分是坏的。许多与强化学习相关的技术研究都试图解决这个问题,但我们在本文中不会讨论它。
信贷分配问题是一个活跃的研究领域,但合理的解决方案已经存在。其次,我们需要一个评分机制来对响应进行评分(要么对响应进行评分,要么比较两个响应),并且很难为基于语言的任务创建自动评分机制(尽管这可能会改变,如下文简要讨论) )。
因此,我们在强化学习的每一步中都留下“人类反馈”,但这种方法成本高昂且效率低下,而且每个人类反馈仅提供非常稀疏的信号,这一事实进一步加剧了问题。既然存在上述困难,为什么我们还要使用强化学习呢?为什么不直接选择引导式学习呢?
3
多样性争论
调整语言生成模型的引导学习/教学的最大问题是它们只能重现演示者给出的确切答案,但实际上人类语言可以有多种用途。它们都是传达相同信息的实用方式。如果模型因稍微偏离人类指定的文本而受到“惩罚”,则可能会使模型感到困惑。
当然,我们可以继续迫使模型学习更困难的单词选择和句子,即使模型已经学会生成具有相同含义的合法替代答案。因此,我们非常看好强化学习能够提供的表达多样性。考虑到引导学习在实践中的良好运用以及强化训练的学习模型所面临的挑战,这是一个非常直观的论点,但不太令人信服。我认为这还不够核心,现在仍然如此。
4
理论论证
监督学习只允许正反馈(我们向模型展示一组问题及其正确答案),而强化学习允许负反馈(允许模型生成答案并接收反馈说“这个答案是错误的”),这是我在法学硕士领域关于监督学习与强化学习提出的第一个强有力的论点。
从严格的学习理论来看,两者之间有很大的区别:负反馈比正反馈有效得多。从理论论证的角度来看,当模型仅从演示中学习时,竞争性(或粗心的)演示者可能会隐藏重要的示例,从而误导学习者学习错误的假设。
演讲者引导整个学习过程,但如果学习者能够形成自己的假设并询问老师假设是否正确(例如确认学习设置),这样对方老师就无法再欺骗学习者学习一个错误的假设,必须如实告诉学习者该假设是错误的,这会赋予学习者权力并使学习者更加有效。 (当然,这是假设对抗性或粗心的老师仍然遵循规则并总是给出正确答案。这是理论框架中的合理假设,并且这个假设并不影响我们的要点:从互动或提问中学习是比从演示中学习更有效)。
这是我们选择强化学习的部分原因,但是在训练大型语言模型通过询问进行交流时,还有另一个更重要的论点。
5
基本论证
以下是我们需要强化学习或类似技术的主要原因。前两个论点基于诸如“模型可能更难学习”或“粗心的演示者可能会混淆模型”等假设,目前尚不清楚这些假设在实践中是否正确,
以下主张可能,然而,已经被证明。
语言模型有(至少)三种交互模式: (a) 基于文本 :给出模型文本和说明(“总结这段文本”、“根据这段文本以色列的”是什么)人口”、“本文中提到的化学物质的名称是什么”、“将此文本翻译成西班牙语”等),并让模型根据我们提供的文本生成答案;(b) 信息寻求型(信息搜索):给模型提出问题或指导,让模型对内部信息提供(正确)答案(“流感的常见原因是什么”)。(c)创意:给模型提出问题或指令,让模型产生创意输出。(“写一个故事......”)
我们的论点基于另一种形式的交互(信息搜索调查),其中我们希望得到正确(保密)的答案,我们希望模型能够更好地工作如果您不确定答案,您可以如实回答“我不知道”或拒绝回答问题。
在这种情况下交互模型中,我们必须使用 RL ,因为引导训练可能会使模型错误。核心问题是:我们希望模型根据内部信息进行匹配,但我们不知道模型的内部信息包含哪些内容。
在监督训练中,我们给出模型问题和正确答案,并训练模型复制给定的答案。这里有两种情况: (1) 模型“知道”答案。 在这种情况下,监督学习可以适当地推动模型匹配问题的答案,并有望让模型在未来执行类似的步骤来回答类似的问题。这是预期的行为。 (2) 模型不知道答案。 这种情况下,引导训练仍然能让模型给出答案。
现在我们有两个选择。一种可能性是它促使模型记住某些问答对。这种方法本质上并不是有害的,但效率较低,因为该模型旨在概括和回答所有问题,而不仅仅是训练数据中出现的问题。但如果我们让模型在这些情况下进行泛化,我们实际上是在教模型准备答案,这相当于鼓励模型“撒谎”,这是不好的。
由于我们无法确定模型知道或不知道哪些信息,因此无法避免第二种情况,这对于监督训练来说是一个现实而严重的问题。
我们不能仅仅依靠监督学习来训练模型得到可靠的答案,我们还需要强化学习的支持。与监督学习不同,强化学习并不鼓励模型发明答案:即使模型最初正确猜测了一些答案并错误地学习“进化”行为,从长远来看,模型会得到较低的分数。形成他们的答案(很可能是错误的)并学会相信他们的内在知识或决定不回答。
6
教模型放弃答案
当模型不知道答案时,我们希望它能够放弃答案并给出“我不知道”或类似的内容。但由于我们不知道模型是否知道答案,因此这不是一件容易的任务,而且在受控环境中很难做到。我们可以指示模型避免某些类型的问题(例如“从不回答有关人的问题”)并回答“我不知道”。但这并不是当答案未知时对答案的预期拒绝,只是一个非常弱的代理。
然而,这在强化学习环境中也具有挑战性:模型可能不会首先生成“我不知道”的答案,因此我们不能鼓励它给出该答案。解决这个问题的一种方法是先进行监督训练,学习如何在某些情况下产生“我不知道”的反应,然后进行强化学习训练。
但这种方法也有缺点,即在监督学习和强化学习中,模型可以回答太多“我不知道”。这是一个开放的研究问题,可以尝试通过“定制奖励函数”来解决:正确答案得分非常高,错误答案得分中等或低分,错误答案得分强烈负分。 当然,这并不容易。
7
模型盗窃/蒸馏的影响
OpenAI在GPT模型强化学习类型调优(RL类型调优)上投入了大量精力。原因有很多,部分原因是希望通过鼓励模型在不知道答案时放弃答案来确保准确性和真实性。
最近的趋势是采用其他公开的基本语言模型并对其进行训练,希望能够效仿GPT模型的优秀行为。
这种方法类似于监督训练或指导:训练使模型能够对 GPT 模型产生准确的响应。这对于教导模型执行命令应该是有效的,但不适合回答查询类型的问题(情况 b)。
公开的基础模型和OpenAI模型可能有不同的数据集,因此训练模型重现GPT的答案可能会面临与监督学习相同的问题,即鼓励模型编造事实或当它知道正确答案时,但如果模型不知道,GPT 就放弃回答。所以解决方案是使用强化学习来训练这些模型,但这是否太昂贵了?
8
没有人类反馈的强化学习
使用强化学习来练习生成语言任务对于大多数玩家来说长期以来都是不切实际的:在缺乏可靠的自动评分指标的情况下,每个玩家都需要接受强化学习练习。用于手动反馈的训练样本。这是耗时且昂贵的,特别是对于需要数千、数万甚至数十万个示例来学习的模型。
然而,强化学习训练现在已经很实用了:首先,有大量的预训练语言模型,可以从更少的示例中进行学习。更重要的是,这些模型为将人类从强化学习循环(RL 循环)中移除铺平了道路。
引导训练在文本相关任务中非常有效,大型模型可以学习很好地执行某些任务。例如,要求模型确定两个文本是否表示相同的意思,或者一个文本是否包含另一个文本中未找到的事实(您也可以拆分任务,以便模型“生成所有可以的‘问题和答案对’”从该文本中得到回答”,然后对于每个问题询问“这个问题在其他文本中是否有答案以及答案是什么?”)。
根据经验,大型语言模型(甚至中型语言模型)可以使用监督学习可靠地学习执行这些任务,为我们提供了强大的自动评分机制,可用于强化学习设置。我们可以使用人类提供的命令响应对进行训练,但不是直接复制人类的响应,而是让模型生成自己的响应,然后将该模型与其自己的监督训练的文本比较模型进行匹配。将生成的答案与人类给出的答案进行比较,从而形成自动评分方法。
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。