# 热门搜索 #
搜索
ChatGPT「秘方」竟在拖LLM后腿?Karpathy、LeCun联手开怼RLHF!
5848点击    2024-08-10 10:32
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


文章来自于微信公众号新智元 作者新智元


关键词: AI , ChatGPT , LLM , RLHF , 模型训练
AITNT资源拓展
根据文章内容,系统为您匹配了更有价值的资源信息。内容由AI生成,仅供参考
1
智能体

【开源免费】AutoGPT是一个允许用户创建和运行智能体的(AI Agents)项目。用户创建的智能体能够自动执行各种任务,从而让AI有步骤的去解决实际问题。

项目地址:https://github.com/Significant-Gravitas/AutoGPT


【开源免费】MetaGPT是一个“软件开发公司”的智能体项目,只需要输入一句话的老板需求,MetaGPT即可输出用户故事 / 竞品分析 / 需求 / 数据结构 / APIs / 文件等软件开发的相关内容。MetaGPT内置了各种AI角色,包括产品经理 / 架构师 / 项目经理 / 工程师,MetaGPT提供了一个精心调配的软件公司研发全过程的SOP。

项目地址:https://github.com/geekan/MetaGPT/blob/main/docs/README_CN.md

2
微调

【开源免费】XTuner 是一个高效、灵活、全能的轻量化大模型微调工具库。它帮助开发者提供一个简单易用的平台,可以对大语言模型(LLM)和多模态图文模型(VLM)进行预训练和轻量级微调。XTuner 支持多种微调算法,如 QLoRA、LoRA 和全量参数微调。

项目地址:https://github.com/InternLM/xtuner

3
prompt

【开源免费】LangGPT 是一个通过结构化和模板化的方法,编写高质量的AI提示词的开源项目。它可以让任何非专业的用户轻松创建高水平的提示词,进而高质量的帮助用户通过AI解决问题。

项目地址:https://github.com/langgptai/LangGPT/blob/main/README_zh.md

在线使用:https://kimi.moonshot.cn/kimiplus/conpg00t7lagbbsfqkq0