Bootstrap

EUREKA:通过编码大语言模型实现人类级别的奖励设计

24年4月来自Nvidia、UPenn、Caltech 和 UT Austin 的论文“EUREKA: Human-Level Reward Design Via Coding Large Language Models”。

大语言模型 (LLM) 已成为序贯决策任务的高级语义规划器。然而,如何利用它们来学习复杂的低级操作任务(例如灵巧地旋转笔)仍然是一个悬而未决的问题。EUREKA 则是一种由 LLM 驱动的人类级奖励设计算法。EUREKA 利用最先进 LLM(例如 GPT-4)出色的零样本生成、代码编写和上下文改进功能对奖励代码进行进化优化。然后可以使用得到的奖励通过强化学习(RL)获得复杂技能。在没有任何特定任务的提示或预定义奖励模板的情况下,EUREKA 生成的奖励函数优于专家人为设计的奖励。在包含 10 种不同机器人形态的 29 个开源 RL 环境的多样化套件中,EUREKA 在 83% 的任务上的表现优于人类专家,平均标准化改进为 52%。 EUREKA 的通用性还使一种无梯度上下文学习方法成为可能,该方法可以从人类反馈 (RLHF) 中进行强化学习,可轻松整合人类输入,从而提高生成奖励的质量和安全性,而无需更新模型。最后,在课程学习环境中,使用 EUREKA 奖励,展示一种模拟的Shadow Hand,它能够执行转笔技巧,即熟练地快速转动笔。

大语言模型 (LLM) 已成为机器人任务的高级语义规划器 (Ahn,2022;Singh,2023),但它们是否可以用于学习复杂的低级操作任务,例如灵巧的笔旋转,仍然是一个悬而未决的问题。现有的尝试需要大量的领域专业知识来构建任务提示或仅学习简单的技能,在实现人类水平的灵巧性方面存在很大差距 (Yu,2023;Brohan,2023)。另一方面,强化学习 (RL) 在灵巧性 (Andrychowicz,2020;Handa,2023) 以及许多其他领域取得了令人瞩目的成果——如果人类设计师能够精心构建奖励函数,准确地编码并提供所需行为的学习信号;同样,许多现实世界的强化学习任务都承认稀疏的奖励难以学习,因此需要对奖励进行塑造以提供增量学习信号。尽管奖励函数具有根本的重要性,但众所周知,在实践中设计奖励函数非常困难(Russell & Norvig,1995;Sutton & Barto,2018)。

鉴于奖励设计至关重要,是否可以使用最先进的编码 LLM(例如 GPT-4)开发通用的奖励编程算法?它们在代码编写、零样本生成和上下文学习方面的出色能力,此前已使有效的程序化智体成为可能(Shinn,2023;Wang,2023a)。理想情况下,这种奖励设计算法应实现人类级别的奖励生成能力,可扩展到广泛的任务范围,包括灵活性,在无人监督的情况下自动执行繁琐的反复试验程序,同时还要与人类监督兼容以确保安全性和一致性。

为智体的进化驱动统一奖励套件 (EUREKA), 由三个算法组件组成:1)环境作为上下文,可以实现可执行奖励的零样本生成;2)进化搜索,可以迭代提出和改进奖励候选;3)奖励反思,可以实现细粒度的奖励改进。如下是算法的伪代码:

请添加图片描述

奖励设计的目标是,为可能难以直接优化的真值奖励函数(例如稀疏奖励)返回一个成形的奖励函数;该真值奖励函数只能由设计者通过查询来访问。(Singh 2010)定义奖励设计问题,适配为程序合成设置,称为奖励生成

如图所示 EUREKA 为各种机器人和任务生成人类级别的奖励函数。结合课程学习,EUREKA 首次在拟人化的五指手上解锁快速旋转笔的能力。

请添加图片描述

如图所示 EUREKA 以未修改的环境源代码和语言任务描述为背景,从编码 LLM 零样本生成可执行奖励函数。然后,它在奖励采样、GPU 加速奖励评估和​​奖励反思之间进行迭代,以逐步改善其奖励输出。

请添加图片描述

奖励设计需要向 LLM 提供环境规范。直接提供原始环境源代码(如果存在,则不提供奖励代码)作为上下文。鉴于任何奖励函数都是环境状态和动作变量的函数,源代码中唯一的要求,是它公开这些环境变量,这很容易做到。例如,在源代码不可用的情况下,也可以通过 API 提供相关状态信息。在实践中,为了确保环境代码适合 LLM 的上下文窗口并且不会泄露模拟内部信息(以便可以期望相同的提示推广到新模拟器),有一个自动脚本来提取仅公开和完全指定环境状态和动作变量的环境代码片段。

在每次迭代中,EUREKA 都会从 LLM 中抽取几个独立输出(算法中的第 5 行)。由于生成是 i.i.d,因此迭代中的所有奖励函数都有错误的概率会随着样本数量的增加而呈指数下降。对于考虑的所有环境,在第一次迭代中,仅抽取少量样本(16)就包含至少一个可执行奖励代码。

为了使上下文奖励突变成为现实,必须能够用语言描述生成的奖励质量。提出奖励反思,这是一种自动反馈,它总结文本中的策略训练动态。具体来说,鉴于 EUREKA 奖励函数被要求在奖励规划中公开其各个组件,奖励反思会在整个训练过程中跟踪所有奖励组件的标量值和中间策略检查点的任务适应度函数。

实验环境由 10 个不同的机器人和 29 个使用 IsaacGym 模拟器(Makoviychuk,2021)实现的任务组成。首先,包括来自 IsaacGym(Isaac)的 9 个原始环境,涵盖了从四足动物、双足动物、四旋翼飞行器、协作机器人手臂到灵巧手等多种机器人形态。除了涵盖机器人外形尺寸外,还包括来自 Bidexterous Manipulation(Dexterity)基准(Chen,2022)的所有 20 个任务,来确保评估的深度。Dexterity 包含 20 个复杂的双手任务,需要一对 Shadow Hands 来解决各种复杂的操作技能,从物体交接到将杯子旋转 180 度。对于输入到 EUREKA 的任务描述,尽可能使用环境存储库中提供的官方描述。GPT-4 不太可能积累有关这些任务的大量互联网知识,这使得它们成为评估 EUREKA 的奖励生成能力与可测量人工设计奖励函数相比的理想试验台。

对于每项任务,所有最终奖励函数都使用相同的 RL 算法和相同的超参集进行优化。Isaac 和 Dexterity 共享一个经过精心调整的 PPO 实现(Schulman,2017;Makoviichuk & Makoviychuk,2021),用这个实现特定于任务的 PPO 超参,无需任何修改。请注意,这些任务超参经过调整,以使官方的人为奖励发挥良好作用。对于从每种方法获得的每个最终奖励函数,运行 5 次独立的 PPO 训练运行,并报告从固定间隔采样的 10 个策略检查点获得的最大任务指标的平均值。具体而言,最大值取自每种方法相同数量的检查点。

;