想象一下,如果想构建一个AI系统来控制机器人探索另一个星球。这样的机器人需要做些什么呢?
它需要储备一些知识,能够理解环境中物体之间的物理关系,还需要能处理突发事件。如果它要去另一个星球,我们不可能预测那里将发生的一切,所以它需要能适应新的事物。人类在这方面做得很好,但这种灵活性和适应性对当前的AI系统来说是一个巨大的挑战。
那么,最近AI的重大进展是否有助于我们构建这种灵活的自治系统呢?
在智源特邀报告中,来自加州大学伯克利分校的明星教授 Sergey Levine针对上述话题带来了名为「Reinforcement Learning with Large Datasets: a Path to Resourceful Autonomous Agents」的精彩报告。从「离线强化学习基础」,「机器人大模型和强化学习」、「基于强化学习的生成模型」、「离线强化学习与语言模型」四个方面讲解了如何将基于数据的学习和优化结合起来,实现更强大、更符合人类要求的智能体。
在过去的十年里,语言模型和扩散模型这样数据驱动的生成式AI是人工智能的两大进步。在这之前,还有像 AlphaGo 这样的强化学习系统。这两类技术的能力有很大的差异。
扩散模型可以生成图像,语言模型可以作为人的助手。从本质上说,它们是模拟数据分布或的系统。这些模型都是极其复杂的概率密度函数估计器。实际上,他们估计的是人类在互联网上发布的图像、文本、视频等数据的分布。
因此,通过这些数据训练的模型在生成任务上表现得和人类类似就并不奇怪。因为这些模型被训练来模仿人。这也许能解释,为语言模型编写 Prompt是一项技术活。如果我们想要语言模型的表现符合要求,就必须提供给它能解决这个任务的人类的上下文,有时这很难。
强化学习是一种截然不同的机器学习范式。传统上,强化学习是关于智能体与世界交互、积累经验、利用这些经验来改进模型或策略,然后在在线学习范式下再次与世界交互的。通过多次这样的操作,强化学习算法在学习玩电子游戏(如力量游戏)、控制机器人以及最著名的——击败围棋世界冠军方面取得了巨大成功。
强化学习最引人注目的一点是它能够产生涌现行为。例如,在围棋比赛中,强化学习系统会给出一些人类专家意料之外的招数。相比之下,生成式AI系统所给出的结果与真人非常类似。我们希望真正灵活且强大的AI智能体同时具备这两种能力:即人类的泛化能力,和超越人类的涌现能力。
仅仅依靠强化学习难以满足上述要求。强化学习对于优化已知环境中的行为非常有效。例如,在围棋游戏中,虽然游戏相当复杂,但它是一个由明确规则支配的封闭世界。然而,现实世界是开放的复杂环境,包含物理规律、各种物体和智能体。世界环境中有无穷无尽的多样性。在这种在线学习的范式中,强化学习时常显得力不从心。
我们通过利用大型数据集应对开放世界中的设定。如果想让智能体在在线强化学习的每次循环迭代中都收集一个与 Common Crawl 或 ImageNet 规模相当的大型数据集,这并不可行。因此,经典的强化学习范式很难与数据驱动的AI相结合。
回归一下前文,我们有两种范式:数据驱动的方法,从数据中学习世界,但它不试图超越数据,擅长建模复杂分布、捕捉多样性,具有泛化能力;强化学习,则优化目标并引发行为,但原生的强化学习无法有效利用大型真实世界数据集。二者分别代表了学习数据和优化行为。没有优化的数据无法让我们以新的方式解决新问题,而没有数据的优化很难在模拟器之外的真实世界中应用。
在这里,我们关心的是如何将这两种范式结合起来:能否利用数据做出决策?能否结合数据驱动的方法和强化学习?为此,我们必须摆脱经典的在线强化学习范式,启用离线强化学习算法,利用之前可能从网络或它环境中收集的大型数据集,提炼出最佳的策略。接着, 我们通过在线交互进一步改进该策略。这是一种不同的强化学习思维方式,它可能结合数据驱动AI和强化学习的最佳特性。
假如我们想构建一个星际探险机器人,我们可能会在地球上收集一个机器人探索地面环境的数据集,这些数据集被用来教会智能体关于物理现象的知识,作为离线强化学习的基础。
机器人可以像为远航做准备的宇航员一样,学习可能在未来有用的技能。然后,机器人前往另一颗星球,在那里通过在线强化学习基于离线强化学习的初始化开始进行微调。这个微调过程将使其适应新的环境,以便发现应对意外事件的新解决方案。这样一来,我们也许能获得数据驱动的AI和强化学习的最佳结合。我和我的学生已经在开发一些构建这种系统原型的方法。
离线强化学习基础
直观地看,离线强化学习与模仿学习有相似之处。模仿学习是一种将数据集转化为行为的方法。如上图所示,如果我们有从绿色圆圈到橙色圆圈的专家演示行为,并对这些演示进行监督学习,我们可能会得到一个模仿这些演示行为的策略,但这实际上并不是离线强化学习所做的。离线强化学习更加强大,其真正潜力远不止于此。
如果我们没有非常好的数据,或者有高度多样化展现不同行为的数据,我们也许可以结合我们看到的这些行为来解决想要解决的问题。这些行为不会告诉我们应该做什么,而是展示我们可以做什么。我们可以将这些行为的部分组合在一起,更优化地解决问题。
举一个简单的例子,如果你见过从A到B的例子,也见过从B到C的例子,你应该能够推断出可以从A到C。这种方法的真正强大之处在于,你可以同时在各个地方做到这一点。如果你能找到一个在大多数情况下都最优的策略,就很有可能超越人类。这就是离线强化学习的真正潜力:从在数据集中看到的可能性中提炼出最佳的行为组合。
在强化学习中,智能体选择动作 A,这些动作可能是转动机器人手臂,也可能是改变汽车行驶的方向。环境会根据这些动作返回状态 S,这些状态可能是来自摄像头或某种传感器的观察结果。同时,环境会返回奖励 R,用于表示智能体在任务中的表现。强化学习的目标是学习一个策略 π,即在给定状态下动作的分布。简而言之,该策略就是智能体在每个状态下应采取的行动模式,从而找到最大化智能体总奖励的策略。这本质上是一个规划问题,即采取行动以获得未来的高奖励。
Q 函数是解决该问题的有效工具,他可以计算出如果你在特定状态下采取某个特定的动作,在之后遵循当前策略时,你将累计的总奖励。基于当前策略的 Q 函数,就可以通过选择具有最大Q值的动作,找到一个至少不比当前策略差的新策略。这就是策略迭代(policy iteration)的基础。实际上,如果基于最大化操作改造贝尔曼方程,就可以跳过策略提取步骤直接写出描述最优 Q 函数的方程,这就是 Q 学习(Q-learning)。因此,如果你能找到一个函数 Q∗,使其等于当前奖励加上下一个最大的Q 值,就可以恢复出最优策略。
这个方程的神奇之处在于,它实际上并不假设从任何特定策略中采样动作。这是一种称为离策略(off-policy)的方法。如果能强制执行上面的优化方程,只需要很多状态和动作的样本,就可以得到最优策略的 Q 函数。因此,很长一段时间里,人们认为这样做就会有一个有效的离线强化学习方法。但是直到六年前,我才意识到,我们需要相当多额外的机制才能使离线强化学习生效。
为了理解这个问题,我们可以重写贝尔曼方程右侧的部分,将其写成在某个其他分布下的期望值,以概率1选择令该函数最大的动作。为了使这个方法有效,我们希望 Q 值在新分布下的期望值是准确的。在机器学习中,如果你想知道某个学习函数的期望值是否准确,首先应该思考:训练数据的分布是什么?如果训练数据与测试数据分布相同,那么模型将有准确的估计值。否则模型的估计将不准确。
训练的目标是在数据分布下最小化左侧和右侧的期望差异,这在强化学习中通常被称为行为策略(behavior policy)。行为策略往往非常混乱,涵盖可能进行的所有不同行为。理想的训练数据分布与测试数据分布相同的情况并不常见。我们希望新的策略能选择使Q函数值最大的策略,而这与优化对抗噪声来欺骗神经网络以产生错误分类(对抗样本)十分相似。
当实际运行基于 Q 学习的简单离线策略强化学习时,确实可以看到这种现象,很容易找到具有错误最大 Q 值的动作,通过选择那些远离训练分布的动作来欺骗 Q 函数网络。因此,大多数现代的离线强化学习方法基本上试图通过某种方式修改训练过程,以避免这些可能欺骗 Q 函数的分布外动作,从而缓解这个问题。
为了解决上述问题,我们首先可以采用使用基于价值的方法(如 Q 学习,actor-critic 方法),然后以某种方式解决分布偏移问题。例如,可以用类似于对抗训练的技术直接训练 Q 函数来修复错误、高估的点,这通常被称为悲观方法(pessimism)。一个经典的悲观方法的例子是:保守 Q 学习(Conservative Q-learning)。另一种方法是约束策略以限制分布偏移的量,这被称为策略约束(policy constraint)。此外,还可以在更新中完全避免分布外的动作,只限于使用采样的动作。
具体而言,保守 Q 学习是一种相对简单的方法,它为离线强化学习方法的工作原理提供了很多直观的理解。Q 函数认为它获得的 Q 值比实际大得多,找到了欺骗它认为获得大Q值的动作。
如上图所示,蓝色曲线代表拟合结果,它在大多数地方是准确的。但如果试图找到最大值,你会发现最大值恰恰落在正向错误最大处。因此,如果你能找到这些高估的点,然后将它们压低修复,就可以纠正Q值高估的问题。保守 Q 学习与对抗训练非常相似。常规的 Q 学习目标是最小化贝尔曼方程左侧和右侧之间的差异。我们在保守Q学习中引入额外的正则化器,用来找到高 Q 值的动作分布 μ,并压低这些 Q 值。
这种方法具有非常吸引人的理论特性。实际上可以证明,只要在正则化项上加上足够大的权重,就可以有效地纠正Q值高估问题。我们可以通过各种方式实现这种方法,使其能够处理现实世界中面临的强化学习挑战。当然,在多样数据上进行预训练的一个好处是:我们可以基于这个离线初始化,使用新的离线数据或在线经验进行微调。
保守Q学习已经应用于许多领域,如机器人操作的策略预训练和微调,对话系统,推荐系统,以及电子商务。总体的做法是纠正分布偏移问题,并使用离线数据作为强化学习的初始化。
机器人研究新范式:「离线强化学习+微调」
在机器人领域,我们可以直接训练机器人完成任务。但一旦有了离线强化学习方法,就可以研发大规模机器人系统。我们可以获得来自许多不同机器人的大规模数据集,通过自监督离线强化学习,在不需要真实奖励函数的情况下,使用基于Transformer和其它大型架构的灵活通用模型,将数据和目标结合在一起,产生巨大的自监督机器人基础模型。我们可以在强化学习中微调预训练的机器人基础模型。
我们的团队在几年前开始研发通用导航模型(Generalized Navigation Model,GNM)。我们收集了不同机器人(从小型遥控车到全尺寸全地形车)执行导航任务的数据集。然后,我们训练了目标条件策略,该策略接收当前观测的图像和目标点的图像,并引入了拓扑图的信息,旨在导航到远距离的目的地。
我们利用所有机器人的数据上训练相同的策略。实际上,这个策略唯一接收到的关于控制机器人的信息是一个小的上下文窗口,该窗口显示了一个简短的观测历史,可以从机器人的运动中大致推断出机器人的行为方式。令人惊讶的是,我们实际上不需要提供任何其它上下文信息。机器人没有接收到关于机器人有多大或者速度有多快的描述。
该策略实际上可以被用来控制各种不同的机器人,包括数据集中没有出现的新机器人。例如,GNM 模型可以控制无人机飞行穿过走廊。当然,该无人机在固定高度飞行,它与预训练数据中看到的所有机器人不同。但是,因为模型已经见过各种不同的机器人,它成功地进行了泛化。我们可以使用这个系统进行离线强化学习,达到多样化的目标,然后可以使用在线强化学习对新任务进行微调,比如在走廊或户外进行竞速。你在这里看到的是从其他环境中的其他机器人离线强化学习初始化开始训练的过程。
当然,机器人在开始时表现并不好,常常碰撞。但基于好的初始化,机器人能够非常快速地学习解决这个新任务。因此,在大约15分钟后,它已经开始在走廊中蹒跚行进。在大约25分钟后,它可以相当可靠地快速在走廊中行驶。
事实证明,如果使用第三人称视角,机器人可以跑得更快一些。但如果被限制使用与策略相同的摄像头视角,那么机器人实际上会获得与策略相同的速度。这非常令人惊叹,因为这是根据像素观测进行在线强化学习,我们使用离线强化学习的初始化让机器人能够在现实世界中用25分钟学会适应新任务。即使在模拟器中,25分钟也会很快。
相同的方法可以在户外运行。我们可以让机器人学习在草地上竞速。开始时,它非常笨拙。但在大约半小时的训练后,它找到了有趣的路径,比如它发现如果走在那些混凝土人行道上,它可以走得更快。
如果它必须穿过位于草地上的检查点,它就必须离开水泥地前往检查点。但在检查点之间,如果它能上到水泥地面,就可以跑得更快一些。要强调的是,相机会产生较大幅度的晃动,这个任务非常具有挑战性。如果我们从头开始学习这些基于视觉的策略,可能需要花费数小时甚至数天的时间。但由于我们使用了离线强化学习进行对许多不同情况和不同机器人的预训练,我们可以非常快速地学习。
「数据+优化」在生成式人工智能中的应用
数据驱动的人工智能可以从数据中学习现实世界,但它并不试图超越现实数据中的情况。优化则可以产生「涌现」行为。
强化学习还可以助力生成式模型。基于网络中收集到的数据训练的扩散模型取得了惊艳的效果,它们生成的图像看起来像是人类绘制的。但我们实际上更希望它们画出新颖的、有创意的图片。如上图所示,如果你问 Stable Diffusion 模型「海豚骑自行车是什么样子?」,它的生成结果并不理想,这是因为骑自行车的海豚在现实中并不常见。你需要提出一个新颖的解决新问题的方案。对扩散模型来说,骑自行车的海豚问题是一个新问题,需要通过优化来获得涌现行为。
所以我们可以创建一个系统,用强化学习来训练扩散模型,生成更符合 Prompt 要求的图片。我们给扩散模型一个描述某些奇特行为的 Prompt(比如猴子洗碗),它根据自己最好的猜测生成一些图像,最初的效果可能并不太好。我们问 LLaVA这样的视觉语言模型图片中发生了什么,LLAVA 会试图描述它。然后,我们根据某些语义分数(在本例子中为BERT分数)比较 Prmopt 和这个描述,并据此分配一个奖励。所以视觉语言模型可以根据语义内容提供一个奖励来教导扩散模型生成一些与 Prompt 相似的东西。
实际上,扩散模型和视觉语言模型LLaVA都是根据互联网上的数据训练出来的。但这样做的好处在于教模型解决任务而不是复制数据。我们告诉模型不仅仅要匹配训练集中的图片分布,而是希望真正解决新的任务,这在某种意义上是一种目标导向的通用先验知识。
在技术层面上,我们面临的技术挑战是,不太容易用强化学习优化扩散模型。原因在于,难以用扩散模型简单地给出对数似然,并用强化学习进行优化。此时,我们需要创造性地解决问题。
优化需要的是图像对数概率的梯度。在扩散过程中,我们可以得到每一个去噪步骤的对数概率。因此,可以开发一种去噪扩散策略优化算法,将扩散过程的每一步都视为马尔科夫决策过程(MDP)中的一个时间步,将扩散模型视为一个控制器,引导生成更符合Prompt的图像,基于最终生成的图像分配奖励。
实际上,该方法比现有的奖励加权回归等技术效果好得多。去噪扩散策略优化(DDPO)实际上在多种分数和美学质量和可压缩性的优化上非常有效。Fan 等人提出了一种类似的 DPO-K 的工作,提出了一个非常类似的想法。此后,许多其他研究人员也探索了用强化学习训练扩散模型的方法。
DDPO已经出现了一年多了,现在已经出现了一些理念相同的更好的工作:优化奖励,而不仅仅是匹配数据分布。同时对于多种 Prompt 的优化使模型学到了更多关于各种任务的信息。优化实际上让扩散模型变得更有创造性,生成一些超越互联网数据分布的东西。
用强化学习训练语言模型
假如我们有一个描述人类执行某些任务的数据集,例如:「人机对话语料库」。理想情况下,我们希望能够利用这样的数据集分析并训练出在该任务上表现最优秀的智能体。因此,如果我们仅仅基于互联网数据集中的数据训练,可能并不是最优方案。因为有时候产生互联网数据的人类可能会做一些非常不智能的事情。但数据确实告诉了关于人类如何对不同类型的现象做出反应的信息。
所以,我们可以分析这些数据,找出一些人类应对的行为模式。离线强化学习可以作为实现该目标的工具。
例如,在 Docile 等人的论文「Learning Cooperative Visual Dialogues with DRL」中,我们针对「视觉对话」展开了研究。在这个任务中,有一个机器人是提问者,还有一个模拟的人类回答者。模拟的人类心中有一幅图片,机器人通过提问来猜测这幅图片是什么。所以,提问者机器人可以被视为一个控制问题,其中观测是人类说的话,动作是机器人说的话,状态是对话历史,奖励是对话的结果。这可以被视为部分可观测的马尔可夫决策。
这与RLHF非常不同,RLHF是指从相关人类反馈中进行训练的一种非常流行的范例,但它解决的是不同的问题。RLHF学习来自结果的人类偏好信息,学习哪些动作实际上导致了在互动中的成功结果。在RLHF中,一个episode是单句话语;而在我们的顺序决策制定方法中,一个episode是整个对话。其中,机器人不能选择人类说什么,它只能影响到自己的动作。
因此,我们需要一个实质上的离线强化学习方法来分析这些数据并学习一个更好的策略。我们几年前开发了隐式语言线索学习(ILQL)技术,这是基于Q学习的一种离线强化学习方法。
Q学习旨在匹配贝尔曼方程的左侧和右侧。在这种情况下,我们实际上不会将智能体的整个话语视为一个动作。为简单起见,我们将每个单词作为一个token来处理。当然,在现实中,token不仅仅是单词。基于token序列,我们将构建一个transformer价值函数。
transformer价值函数看起来有点类似于标准语言模型,只是它的目的不是预测下一个token的概率,而是预测下一个token的Q值。将每个可能的token视为一个动作,它为每个token分配一个代表Q值的数字。成功完成任务的奖励为1,失败为0,这个数字基本上是你选择此token并按照策略执行的成功概率,即Q函数。
它的训练损失在概念上与监督学习的训练损失有些类似,不同之处在于,它的训练目标不是最大化数据集中token的概率,而是将该token的值回归到下一个token的最大Q值加上奖励。我们仍然必须考虑面临的分布偏移问题和可能的对抗行为。因此,完整的ILQL方法还需要引入隐式的保守Q学习,在token级别应用类似Q学习的方法。
相比之下,语言模型在给定前几个token的情况下,给出下一个token的概率。而ILQL将这些token视为动作,价值函数产生在选择所有前几个单词和一个可能选择的新单词的情况下成功的概率。在结构上,这两种方法看起来非常相似,但是ILQL用一个不同的损失函数进行训练,教它选择那些能够最大化成功概率的token。有趣的是,通过采用完全相同的数据集,然后调整奖励函数,我们可以改变动作。
为了训练这些对话智能体,我们需要有描述这些对话互动的数据集,这些对话互动不一定是最优的,但足以让我们提炼出更优的行为。但是,我们是否可以不需要特定领域的数据就可以获得好的对话智能体?是否可以仅仅使用来自互联网的多样化的预训练语言模型数据,而不需要特定任务数据来解决特定任务呢?如果你要求 GPT-4 教你某些专业知识,GPT-4 会给你一个非常长而详细的答案。
但它通常不会尝试学习有关你的一些信息,以便给你一个更具针对性的答案。所以让我们尝试为此构建一个对话智能体,并且在没有任何特定领域数据的情况下与用户互动。我们可以让语言模型模拟数据,构造一个Prompt,扮演一个可以教人们专业知识的对话智能体。在询问的过程中,模型会修改这个Prompt。这样一来,我们将生成大量合成对话。
这些合成对话在某种意义上并不算是优秀的教师示例,但它们在统计意义上具有与学生互动的代表性意义。因为,语言模型擅长表征数据中的分布。因此,只要该分布捕捉到学生和教师之间的互动,它们将生成在学生和教师之间合理互动的对话。
现在我们将取得的合成数据集作为离线强化学习的输入,实现基于价值的强化学习。离线强化学习算法可以分析这些数据集,并从这些模式中找出优秀教师的特征。这将产生一个更好的智能体程序。
结合 RL 和 LLMs 是解决 LLMs 易于模拟但难以执行的任务的一种好方法。对 LLMs 来说,模拟普通教师和普通学生要比表现为最优教师容易得多。因此,如果我们可以模拟出大量不同的普通学生互动,那么RL算法可以从中提炼出一个好的教师模型。我们的智能体程序使用 GPT-4 模型生成的合成数据进行训练,然后通过离线强化学习进行优化,比使用原版的 GPT-4 效果好很多。
结语
在本次演讲中,我谈到了结合数据和优化可以取得的成就。我谈到了离线强化学习的基本原理。我谈到了如何利用这些思想构建机器人基础模型,然后将其集成到生成模型中使其变得更加优化。
Richard Sutton的文章《苦涩的教训》(The Bitter Lesson),在现代数据驱动AI时代正在成为一种口号。在《苦涩的教训》中,Richard Sutton写道,我们必须学会一种苦涩的教训:即长远来看,构建我们认为优秀的方法是行不通的。看起来可以无限扩展的两种方法是「学习和搜索」。许多人读了这篇文章,得出结论,这意味着我们应该构建非常通用的监督学习系统,使用大量的GPU,只需将所有数据压入大型监督模型,并获得非常通用的架构。
但是,实际上Richard Sutton所写的更具细微差别。在强化学习中,学习是当你观察世界并找出世界中存在的模式。搜索则意味着使用计算来推断出结论。搜索并不一定是关于与世界互动或处理真实世界的数据。它是利用学到的知识进行思考,以做出更好的决策。
搜索实质上是优化,一种使用迭代计算来做出理性决策的过程。我们确实需要这两者。学习使我们能够理解世界。搜索利用这种理解来实现良好的新行为。只有数据而没有优化,无法让我们以新的方式解决问题。只有优化而没有数据,则很难应用于现实世界。但是如果我们两者兼而有之,我们就会获得强大的新行为和理性决策的智能体。
- 推荐阅读 -
Pi创始人斯坦福Chelsea Finn专访:工程师家庭出发,和10年战友Sergey走过机器人训练漫漫长夜丨独家
14万引用Sergey教授专访:好研究没有妙计,不好的研究却千篇一律丨独家