chattype(为什么ChatGPT用强化学习而非监督学习?)chatgpt 速看
在信息爆炸的时代,互联网始终保持着令人难以置信的活力。现在,就让我们聚 作者 | Yoav Goldberg ...
在信息爆炸的时代,互联网始终保持着令人难以置信的活力。现在,就让我们聚
作者 | Yoav Goldberg 责编 | OneFlow翻译|贾川、徐佳渝、杨婷为何ChatGPT非得用强化学习,而没有直接用监督学习?原因没有是那么显而易见以色列巴伊兰大学教授Yoav Goldberg对强化学习在大型语言模型应用必要性作了深度解读,进1步对比论证了监督学习取强化学习的特点,并为未来改进提供了思路。
Goldberg在2011年获得本古里安大学博士学位,他也是艾伦人工智能研究所以色列分部的研究主管,他也曾在Google(纽约)研究院担任研究科学家他在NLP领域深耕十多年,在词汇语义学、句法分析及对基于深度学习的语言处理等领域作出了突出贡献。
注:以下内容由OneFlow编译发布,转载请联系OneFlow获得授权
为什么使用强化学习?随着ChatGPT等大型语言模型的发布,人们对“RLHF训练(即基于人类反馈的强化学习训练)”的重要性进行了诸多讨论在训练语言模型方面,我1度困惑于为何强化学习比从演示中学习(也称为监督学习)更好,难道从演示中学习(或根据语言模型术语中的“指令微调”,学习模仿人类写的回答)还没有够?。
我提出了1个有说服力的理论论据没有过我意识到还有另1个论点,它没有仅支持强化学习训练,而且尤其适用于ChatGPT等模型OpenAI的John Schulman在其演讲的前半部分进行了详细论述本文的大部分内容都引用了John的论点,但增加了1些他没有明确表述的内容(没有过我确信这些内容都是John考虑过的)。
本文提供了大量背景知识,以确保读者可以更好地理解文章内容。如果你想了解文章重点,可以直接看“核心论证”部分。
背景:监督学习vs强化学习简要地解释1下这两种学习场景,以便我们能够达成共识如果你已经了解了这些内容,可以跳过此部分预训练:在这两种设置中,首先我们假设语言模型在大量的文本长进行预训练,以预测下1个token。
因此,对于每个词序列,我们有1个模型可对潜在的下1个词的选项分配概率通过这种方式,模型会获得语言的某种内部表示经过这1过程,模型的生成文本能力会变强,且能够根据给定文本前缀,生成符合自然习惯的后续文本,但它并没有擅长“交流”。
例如,当提示(prompted)1个问题时,模型可能会回答该问题或者生成1系列附加问题,也可能会回答这是1个在......的高低文中提出的重要问题等等这些都是遵循自然语言文本问题的有效延续(continuation)。
我们可以通过编写输入文本,来使模型执行我们所希望的语言行为,该延续会解决我们的问题(也被称之为“提示工程”),但是对于只想提出问题或指令就让模型进行回答的非专家用户来说,这种交互模式并没有非常方便如果我们希望模型能够持续回答查询而没有是仅仅完成当前指令,就需要对其进行引导,这个过程称之为“微调”,即继续训练预训练模型,进而使其表现出我们想要的行为(有些人称这是“对齐”模型取使用者期望行为)。
监督训练:在监督学习中(也称为从演示中学习或“指令微调”),我们会收集1组人类编写的文本,这些文本以问题或指令的形式出现,并包含了期望的输出例如,这些文本可以是某1问题和答案,或者是像带有人类编写总结的summarize the following text {text}这样的任务。
通过在相同的“给定前缀预测下1个token”的目标上继续训练模型,但这次是在指令-输出对集合上,模型学会通过执行指令来响应即模型接收到给定问题的正确输出的演示,并学会复制输出结果我们希望通过这种方式将其泛化到训练中尚未出现的问题中去。
强化学习(RL):在强化学习中,我们为模型提供指令,但并没有提供人工编写的答案模型需要自己生成答案评分机制(例如人类)会读取生成的答案,并告诉模型这些答案的质量模型的目标是如何回答以获得高分另1种机制是模型生成多个答案,评分机制告诉模型哪个答案最好。
模型的目标是学习生成高分的答案,而没有是低分的答案在这两种情况下,模型通过生成答案并接收反馈来学习(注意:许多研究人员将强化学习的范围限定在基于credit分配机制的某些技术层面于他们而言,“我们是否需要强化学习”的问题也许归结为我们应该使用该技术还是采取其他相关技术来替代。
我取他们同样好奇,但就本文目的而言,我认为任何使用外部评分函数的方法均可视为强化学习,无论其运行机制如何)强化学习比监督训练难得多,原因如下:首先是“credit分配”问题语言模型生成1段token序列,且仅在序列末尾才能获得1个分数。
由于信号很弱,我们没有能确定答案哪些部分是良好的,哪些部分是糟糕的许多有关强化学习的相关技术研究都在尝试解决该问题,但在本文中我们先没有谈这个问题credit分配问题是1个活跃的研究领域,但已经存在合理的解决方案。
其次,我们需要1种评分机制来对答案进行评分(或为答案评分或比较两个答案),而在基于语言的任务中,很难生成自动评分机制(尽管这可能正在改变,下文会简单论述)因此,我们会在强化学习的每1步留下“人类反馈”,但这种方式成本高昂且效率低下,考虑到每小我类反馈只能给出1个相当稀疏的信号,问题会更加糟糕。
基于以上困难,我们为何还要使用强化学习呢?为何没有仅仅选择监督学习呢?
多样性论证对于语言生成模型来说,监督学习/指令调优最大的问题是它们只能复制演示者给出的确切答案,但实际上,人类语言可以用多种方式传递相同的信息,它们都是切实可行的如果因模型轻微偏离人类规定的文本而受到“惩罚”,可能会使模型产生困惑。
我们当然可以继续逼迫模型去学习更难学习的遣词造句,尽管模型已经学会了生成具有同样意思、合法的替代性回答因此,我们非常看好强化学习训练提供的多样性表达考虑到监督学习在实践中的良好应用,以及训练强化学习模型所面临的挑战,这是1个非常直观的论点,但没有够有说服力。
1直以来,我并没有认为这是1个足够核心的问题,现在我仍这样想
理论论证监督学习只允许正反馈(我们向模型展示1系列问题及其正确答案),而RL允许负反馈(模型被允许生成答案并得到反馈说“这答案是没有正确的”),这是我提出的第1个关于LLM领域的监督学习vs强化学习的强有力论点。
从宽格的学习理论的角度来看,二者之间有很大的区别:相比正反馈,负反馈要强大得多从理论论证的角度,当模型只从演示中学习时,对抗型(或粗心的)演示者(demonstrator)可以隐瞒重要例子,从而误导学习者(learner)学习错误的假设。
演示者控制着整个学习过程,但如果学习者能够形成自己的假设,并询问老师(teacher)假设是否正确(例如强化学习设置),通过这种方式,即使是对抗性老师也无法再欺骗学习者学习错误假设,它必须如实告知这1假设是错误的,这种方式赋予了学习者自动性,让学习者更加强大。
(当然,前提是对抗型或粗心的老师仍然遵守规则,始终提供真实答案这是理论框架中的合理假设,这1假设并没有影响我们的主体观点:从互动或提问中学习比从演示中学习更加强大)这是我们选择强化学习的部分原因,但就通过提问训练大型语言模型交流方面,还有1个更加重要的额外论点。
核心论证以下是我们需要强化学习或类似技术的核心原因前两个论点依赖于假设,例如"模型可能更难学习"或"粗心的演示者可能会混淆模型",这些假设在实践中是否成立是未知的,相反,上面的论点可以被证明是成立的语言模型(至少)有3种交互模式:(a)文本型(text-grounded): 为模型提供文本和说明(“总结此文本”,“基于此文本,以色列的人口是多少”,“本文中提到的化学名称是什么”,“将此文本翻译成西班牙语”等),让模型基于我们提供的文本生成答案;(b)求知型(knowledge-seeking): 向模型提供问题或指导,让模型根据内在知识(“流感的常见原因是什么”)提供(真实)回答。
(c)创造型(creative): 为模型提供问题或说明,然后让模型进行创造性输出(“写1个关于...的故事”)我们的论点是基于第二种交互模式(求知型查询),希望在这种查询中得到真实(自信)的答案,我们希望模型在对答案没把握的情况下能够如实回答“我没有知道”或拒绝回答这1问题。
对于这类交互模式,由于监督训练可能会让模型撒谎,所以我们必须使用RL核心问题是:我们希望模型根据内部知识进行回答,但我们并没有知道模型内部知识包含的内容 在监督训练中,我们给模型提供问题及正确答案,并训练模型复制提供的答案。
这里有两种情况:(1)模型“知道”答案这种情况下,监督学习能够正确推动模型将答案取问题相关连,并且有望让模型执行相似的步骤,回答将来遇到的类似问题这是所期望的行为(2)模型没有知道答案在这种情况下,监督训练还是会促使模型给出答案。
现在,我们有两种选择1种可能是,它会促使模型记住特定的问答对这种做法本身并没什么坏处,但没有太高效,因为我们的目的是让模型具有泛化能力,并且能回答任何问题,而没有只是那些在训练数据中出现的问题但如果我们使模型在这些情况下能做到泛化,那么实际上就是在教模型捏造答案,相当于鼓励模型“说谎”,这很没有好。
由于我们无法确定模型知道哪些信息或没有知道哪些信息,所以无法避免第二种情况,这对监督训练来说是1个真实且宽重的问题我们没有能仅依靠监督学习来训练模型生成可信任回答,还需要强化学习的加持取监督学习没有同,强化学习没有会鼓励模型编造答案:即使模型最初确实猜对了1些答案并错误地学习了“编造”行为,但长远来看,模型会因编造答案的得分较低(很可能是没有正确的)而学会依赖内部知识或选择放弃回答。
教导模型放弃回答当模型没有知道答案时,我们希望它能够放弃回答并给出“我没有知道”或类似的答案但由于我们没有知道模型是否知道答案,所以这并没有是1件容易的事,在监督环境中很难做到我们可以引导模型规避某些类型的问题(例如“从没有回答涉及人类的问题”),并回答“我没有知道”。
但这没有是在答案未知时放弃回答的预期行为,只是1个非常薄弱的替代方法(proxy)然而,这对于强化学习设置也具有挑战:模型可能从1开始就没有会生成“我没有知道”的答案,因此我们无法鼓励它作出这种回答解决这个问题的方法之1是,先进行1些监督训练,学习在某些情况下生成“我没有知道”的答案,然后再进行强化学习训练。
但这种方法也有弊端,即在监督学习和强化学习中,模型可能会过度回答“我没有知道”这是1个开放的研究问题,可以尝试通过“定制奖励函数”来解决:将正确答案赋予非常高的分数,放弃回答的答案赋予中低分数,没有正确的答案赋予强烈负分。
当然,想做到这1点也并非易事
模型窃取 / 蒸馏的影响OpenAI在GPT模型的强化学习类型调优(RL-type tuning)方面投入了大量精力原因有很多,他们的部分动机是希望通过鼓励模型在没有知道答案时放弃回答来确保准确性和真实性。
最近有1种趋势,即采用其他公开可用的基础语言模型,并对它们进行训练,以期能够复制GPT模型的出色行为这种做法类似于监督式训练或指令调优:通过训练,模型可以准确生成GPT模型的答案这对于教模型执行指令应该很有效,但却没有适用于回答知识查询类问题(案例b)。
公开可用的基础模型和OpenAI模型可能具有没有同的知识集,因此训练模型以复制GPT的答案可能会面临取监督学习同样的问题,即鼓励模型编造事实,或在它知道正确答案但GPT模型没有知道的情况下放弃回答那么,解决方案是用强化学习对这些模型进行训练,但这是否太过昂贵?。
无人类反馈的强化学习长期以来,使用强化学习训练生成语言任务对大多数玩家来说都没有切实际:由于缺累可靠的自动评分指标,强化学习训练需要对每个训练样本进行人工反馈这既耗时又昂贵,特别是对于需要查看数千到数万甚至数十万个示例才能学习的模型。
然而,强化学习训练现在变得实用了:首先,出现了可以从较少示例中学习的大型预训练语言模型更重要的是,这些模型为强化学习循环(RL loop)中去掉人类参取铺平了道路监督训练对于文本相关的任务非常有效,而且大型模型可以很好地学习执行1些任务。
例如,让模型确定两个文本是否意思相同,或者1个文本是否包含另1个文本中没有的事实(还可以将任务分解,让模型“生成所有可从该文本回答的所有问答对”,然后针对每个问题询问“在其他文本中是否有该问题的答案,答案是什么”)。
根据经验来看,大型语言模型(甚至中型语言模型)可以使用监督学习可靠地学习执行这些任务,这为我们提供了可用于强化学习设置的有效自动评分机制我们可以使用人类提供的指令-响应对进行训练,没有过,要让模型生成自己的响应,而没有是直接复制人类响应,然后用在监督方式下进行训练的公用文本对比模型(text comparison model)将模型生成的响应取人类提供的响应进行比较,这样就获得了1种自动打分的办法。
推荐阅读:▶Midjourney官方中文版在QQ开启内测申请;“Hi,Siri”将成历史,苹果计划修改语音助手唤醒方式|极客头条▶经历多次重写,苹果平台最强科学计算器PCalc背后的故事▶向 GPT⑶ 问同1个问题,某些语言要贵 15.77 倍!
本文转载于万像素才网:https://www.wanxiangsucai.com/
当前非电脑浏览器正常宽度,请使用移动设备访问本站!