ChatGPT「秘方」竟在拖LLM后腿?Karpathy、LeCun联手开怼RLHF!

  新智元报道

  编辑:乔杨好困

  RLHF 到底是不是强化学习?最近,AI 大佬圈因为这个讨论炸锅了。和 LeCun 同为质疑派的 Karpathy 表示:比起那种让 AlphaGo 在围棋中击败人类的强化学习,RLHF 还差得远呢。

  昨天,Andrej Karpathy 又发了长推,不过用了一句很有争议的话开头——「RLHF 只是勉强的 RL」。

  这条推特可谓「一石激起千层浪」,瞬间点燃了 LLM 社区的讨论热情。

  毕竟 RLHF 作为刚提出没几年的方法,又新颖又有争议。一边遭受质疑,一边又在工业界和学界迅速流行。

  5G 冲浪的 LeCun 也赶来声援 Karpathy,但他的话很短,只有一句——「RLHF 不是真正的 RL」。

  RLHF 最早可以追溯到 OpenAI 安全团队 2017 年发表的论文:

  论文地址:https://arxiv.org/abs/1706.03741

  当时,Jan Leike 还在 DeepMind、Dario Amodei 还没创办 Anthropic,而 OpenAI 还没 all in 语言模型,仍是一家研究范围更广泛的 AI 公司。

  他们提出,通过人类反馈,让 AI 模型更好地学习「如何翻出一个漂亮的后空翻」。

  训练时,AI agent 在环境中不断观察并行动,并得到奖励模型的反馈进行自我改进。但比较特别的是,奖励函数是由拟合人类反馈得到的。

  2019 年,这项技术被用到了 NLP 领域,用于微调语言模型。

  论文地址:https://arxiv.org/abs/1909.08593

  这篇论文附带的代码也很好地定义了 RLHF 的标准流程。

  仓库地址:https://github.com/openai/lm-human-preferences?tab=readme-ov-file

  到了 2022 年 3 月,ChatGPT 发布前夕,OpenAI 发布了使用 RLHF 微调过的大模型 InstructGPT,这是弥合 GPT-3 和 GPT-3.5 Turbo 之间差距的关键一步,后者为 ChatGPT 的推出提供了关健动力。

  论文地址:https://arxiv.org/abs/2203.02155

  此后,RLHF 就成为了 OpenAI、DeepMind、谷歌、Anthropic 等 AI 巨头们训练模型的必备环节。

  所以,Karpathy 为什么会突然对此发难?我们先来看一下他的推特原文是怎么说的。

  Karpathy 原帖的大意如下:

  RLHF 全称为「从人类反馈中进行强化学习」(Reinforcement Learning from Human Feedback),是训练 LLM 的第三个阶段,也是最后一个主要阶段,接在预训练和监督微调(SFT)之后。

  我对 RLHF 的批评是:它几乎算不上是真正的强化学习,而且我认为这一点没有被广泛理解。强化学习很强大,而 RLHF 则不然。

  让我们来看一个 AlphaGo 的例子,它的训练用到了实际的 RL 算法:计算机通过下围棋,在最大化奖励函数(即赢得比赛)的推演过程中进行训练,最终超越了最优秀的人类棋手。AlphaGo 并不是用 RLHF 训练的,否则它的效果就不会这么好。

  那么,用 RLHF 训练 AlphaGo 会是什么样子呢?首先,你需要让人类标注者看到两个围棋局面,并询问他们更喜欢哪个:

  你需要收集大概 10 万条这类的对比数据,并训练一个「奖励模型」RM(Reward Model)来模仿人类对棋盘状态的这种「直觉判断」(vibe check),使 RM 的判断在平均水平上与人类一致。

  有了奖励模型的直觉判断,就可以在此基础上运行强化学习,让原模型学习下出能够让人类直觉上认为不错的棋步。

  显然,这在围棋中不会产出太好的结果,有两个根本且独立的原因:

  1. 直觉可能会产生误导。这并不是真正的奖励(赢得比赛),而是个很差的替代目标。但更糟的是——

  2. 强化学习优化会失控,因为它很快就会发现对抗奖励模型的棋盘状态。RM 是一个拥有数十亿参数的庞大神经网络,用来模仿直觉。有些棋盘状态超出了训练数据的分布范围,可能并不是好的状态,但由于偶然性,也会从 RM 得到了很高的奖励。

  出于完全相同的原因,有时我惊讶于 RLHF 对 LLM 的效果,因为其中的 RM 也在进行同样的直觉判断。它对人类评分员似乎喜欢的那类响应打出高分,但这不是正确解决问题的「实际」目标,只是人类觉得不错的替代目标。

  其次,RLHF 不能运行太久,因为原模型很快就能学会操控奖励模型,从而预测出一些看起来很奇怪的 token。比如,LLM 助手会开始对提示词响应一些无厘头的内容,像「the the the the the the」。

  这在人类看来很荒谬,但由于某种原因,RM 认为这些响应看起来很棒。

  这就是 LLM 找到的对抗性案例(adversarial examples),对于 RM 的训练数据而言,这是未定义领域的分布外数据。

  你可以反复将这些特定例子添加到训练集中来缓解这种情况,但下次还会有其他对抗性案例出现。因此,RLHF 不能运行过多步骤,几百/几千步后就必须停下,因为模型的优化过程将开始操控 RM。这不是像 AlphaGo 那样的强化学习。

  然而,在构建 LLM 助手时,RLHF 依旧是利大于弊。其中有几个微妙的原因,但我最喜欢指出的是,LLM 可以通过 RLHF 过程受益于生成器和判别器之间的难度差距(generator-discriminator gap)。

  对于许多类型的问题,相比于从零开始撰写理想答案,人类标注者会觉得从几个候选中选择最佳答案要容易得多。比如这样的提示:「生成一首关于回形针的诗」,普通的人类标注者很难写出一首好诗作为 SFT 示例,但在给出几个候选答案的情况下,他们可以选出一个看起来不错的诗。

  因此,RLHF 相当于利用了这种人类监督的「简便性」差距。

  还有其他几个原因,例如,RLHF 也有助于减少幻觉现象。如果 RM 是一个足够强大的模型,可以捕捉到 LLM 的虚构内容,就能通过低奖励来惩罚这种行为,教会模型在不确定时避免冒险使用事实知识。但对幻觉及其令人满意的缓解措施是另一个话题,此处不再赘述。

  总之,RLHF 确实是净有用的,但它不是传统的强化学习。

  迄今为止,在开放领域还没有出现生产级的「实际」RL 方法,可以大规模地在 LLM 上实现,并给出令人信服的演示。从直观上讲,这是因为在开放式的问题解决任务中给出奖励值(等效于 AlphaGo 赢得比赛)确实很困难。

  在一个封闭的、类似游戏的环境中,比如围棋,动态受到限制,奖励函数易于评估且无法操控。但你如何为总结一篇文章提供明确的奖励?或者回答关于 pip 安装的略显模糊的问题?或者讲个笑话?或者将一些 Java 代码重写为 Python?

  原则上,朝这个方向发展是可能的,但并不简单,它需要一些创造性的思考。如果有人给出令人信服的解决方案,就能运行实际的强化学习,那种让 AlphaGo 在围棋中击败人类的强化学习,只是最后得到的 LLM 将有可能在开放领域问题解决中击败人类。

  强化学习到底是什么

  如果 RLHF「不是 RL」,那真正的 RL 是什么?

  Karpathy 的描述比较简洁而直观——就是 AlphaGo 用的那种。

  幸好,「强化学习」是一个人为提出的概念,更容易厘清;而且「强化学习之父」Richard Sutton 专门写过一本书来解释这个领域的基本问题。

  https://web.stanford.edu/class/psych209/Readings/SuttonBartoIPRLBook2ndEd.pdf

  开头第一章第一节,强化学习的基本概念。虽然不是严谨完备的数学定义,但基本阐明了要点。

基本思想是,一个正在学习的 agent 与环境交互,如何捕捉到它面临的最重要的实际问题。 显然,这样的 agent 必须能够在某种程度上感知环境状态,且必须能够采取某种行动以影响状态。agent 也必须有关于环境状态的目标。这一表述旨在包含三个方面:感知、行动和目标,以可行的最简洁的形式,而不会让任何一个方面只有平凡解。 任何适于解决这类问题的方法,我们都认为是强化学习方法。

  除了 agent 和环境的存在,强化学习系统中还有以下四个要素:

  • 策略(policy),定义正在学习的 agent 在指定时间的行为

  • 奖励信号(reward signal),定义强化学习问题的目标,是对 agent 行为的即时反馈

  • 值函数(value function),定义长期的优化目标

  • 环境模型(model of the enviroment),模拟环境行为

  那么问题来了,根据 Sutton 书中对强化学习的定义,你同意 Karpathy 的说法吗?

  谁赞同,谁反对?

  非常明显的是,Karpathy 的观点吸引了许多 LLM 领域的学者和研究员的关注。

  谷歌大脑、DeepMind 研究科学家 Kevein Murphy:

完全同意。我认为 RLHF 更像是行为(action)值是字符串的上下文多臂赌博机,其中提示词作为上下文,而不是完整的强化学习。但为日常任务制定明确的奖励机制是困难的部分。(我想这被称为「模型对齐」?)

  Allen AI 机器学习研究员 Nathan Lambert 回复:

同意,很棒的总结。就其提供的价值而言,下面是我最喜欢的引用,说明了 RLHF 的「风格」部分为何有用。 但这与为 LLM 解锁完整版本的 RL 相比,仍然微不足道。

  这张图出自 Lambert 自己撰写的博客:

  之后,他又专门发推进一步解释:

RLHF 勉强算是 RL,但 - 它仍然使 RL 比以往任何时候都更重要,并且 - RLHF 可能比至今为止其他的 RL 更有影响力

  很罕见的是,以上是为数不多力挺 Karpathy 的观点。多数人还是站在了 Karpathy 的对立面反驳他。

  评论区有网友直接回怼:「你就是看奖励函数不顺眼」。

  Karpathy 只能继续解释:

我的主要动机是想说,LLM 远未达到原则上所能达到的高度,它们还没有像其他最近/流行的 ASI 演示那样有相同的训练方式。我想要直观地指出这种差距的根源。

  马里兰大学副教授 Furong Huang 的观点更强调 RLHF 对 LLM 的价值。

当模型已经非常优秀时,RLHF 是有帮助的,你只需通过收集用户反馈来「修补问题」。 RL 对于推理和规划等更复杂的任务确实很重要,把 LLM 放到 RL 循环中有助于泛化和「热启动」RL。

  Mila 在读博士、Meta 研究员 Pierluca D'Oro 自己就在为 agent 开发奖励模型,他同意 Karpathy「RLHF 不是真正的 RL」的说法,但并不认为 Karpathy 预期的那种奖励模型能够实现。

我是一名科学家,致力于为智能体创建更好的奖励模型,我不同意这篇推文的主要观点。使用你无法完全信任的奖励进行的 RL 也是 RL,而且我认为这正是我们应该研究的 RL。 是的,毫无疑问,当奖励明确定义时,RL 能够最大程度地发挥作用。比如围棋中的获胜条件,就是明确的!我们不在乎智能体如何获胜,只要它符合游戏规则即可。这些规则非常简单,可以由人类直接编码到智能体的设计中,或者智能体通过计算推断出来。 但是如果对于一个复杂任务,不仅仅是「做什么」重要,而是「怎么做」也很重要呢?「怎么做」往往不像在围棋中要求智能体下有效棋步那样容易实现。对于人类来说,这通常来自于人类的常识、期望或荣誉。LLM 的对齐正是通过 RLHF 来提取这种「怎么做」。 这也可以延伸到那些看似容易定义明确目标的(智能体)任务。想要一个好的电子游戏中的 NPC?可以试试正式定义一个你可以 100% 信任的「乐趣」的概念,祝你好运。想要一个好的网络智能体?试试正式定义一个你可以 100% 信任的「预期行为」的概念,祝你好运。想要一个好的分子?定义一个你可以 100% 信任的「毒性」的概念,祝你好运。 AI 智能体旨在做对人类有益的事情。人类不仅有内部多样性,而且极其复杂,显然超出了我们能够完全理解的范围。我可以编写一个我认为是「在 NetHack 游戏中实现这个目标」的代码,然后发现我对「实现」的理解比智能体的定义更为细致,就像我们最近在 Motif 上的工作中所做的那样。 我认为追求「完美奖励」的雄心是无望的,我不认为大多数我们希望智能体表现出的行为存在这样的概念。然而,我认为有一些方法有望在奖励不完美的情况下实际提高 RL 的性能: - 尽可能活跃的反馈循环,以优化智能体的奖励函数 - 对错误奖励更稳健的 RL 机制 - 减少人类与 AI 合作的摩擦不过,我同意推文标题所说的,RLHF 在用于微调 LLM 时几乎不能算是 RL。但对我来说,这主要是因为它的半离线性质,以及智能体缺乏主动收集自身数据的机会。这些可能是 RL 在处理模糊、复杂,以及潜在可被利用的奖励函数时奏效的关键因素。

  华盛顿大学助理教授、谷歌 AI 高级研究科学家 Natasha Jaques 的反对态度更鲜明,力挺 RLHF 方法:

这是一个不好的看法。在与人类互动时,给出人类喜欢的答案就是真正的目标。 超出分布不是 RLHF 独有的问题。数据集中的人类反馈比运行无限的围棋模拟更有限,但这并不意味着是不值得研究的方法,它只是一个更具挑战性的问题,并且我们希望它是一个更有影响力的问题,因为减少 LLM 的偏见对人类的益处显然多过比在围棋上击败人类。使用贬义语言称 RM 为「直觉判断」是愚蠢的;你可以对价值估计提出同样的论点。 发布这样的内容只会阻碍人们研究 RLHF,而目前这是唯一可行的方法来缓解 LLM 偏见和幻觉可能造成的严重危害。

  参考资料:

  https://the-decoder.com/ai-researcher-says-that-chatgpts-secret-ingredient-may-be-holding-back-llm-capabilities/

  https://x.com/karpathy/status/1821277264996352246

  https://x.com/ylecun/status/1821478966365962255