EUREKA:通过编码大语言模型实现人类级别的奖励设计
EUREKA:通过编码大语言模型实现人类级别的奖励设计
2024年4月,来自Nvidia、UPenn、Caltech和UT Austin的研究团队发布了一篇题为“EUREKA: Human-Level Reward Design Via Coding Large Language Models”的论文。该研究提出了一种基于大语言模型(LLM)的奖励设计算法——EUREKA,旨在解决复杂低级操作任务的奖励设计问题。
背景与挑战
大语言模型(LLM)已成为序贯决策任务的高级语义规划器(Ahn,2022;Singh,2023),但它们是否可以用于学习复杂的低级操作任务,例如灵巧的笔旋转,仍然是一个悬而未决的问题。现有的尝试需要大量的领域专业知识来构建任务提示或仅学习简单的技能,在实现人类水平的灵巧性方面存在很大差距(Yu,2023;Brohan,2023)。
另一方面,强化学习(RL)在灵巧性(Andrychowicz,2020;Handa,2023)以及许多其他领域取得了令人瞩目的成果——如果人类设计师能够精心构建奖励函数,准确地编码并提供所需行为的学习信号。然而,奖励函数的设计在实践中非常困难(Russell & Norvig,1995;Sutton & Barto,2018)。
EUREKA算法
EUREKA是一种由LLM驱动的人类级奖励设计算法。它利用最先进LLM(例如GPT-4)出色的零样本生成、代码编写和上下文改进功能对奖励代码进行进化优化。然后可以使用得到的奖励通过强化学习(RL)获得复杂技能。
EUREKA由三个算法组件组成:
- 环境作为上下文,可以实现可执行奖励的零样本生成
- 进化搜索,可以迭代提出和改进奖励候选
- 奖励反思,可以实现细粒度的奖励改进
实验结果
在包含10种不同机器人形态的29个开源RL环境的多样化套件中,EUREKA在83%的任务上表现优于人类专家,平均标准化改进为52%。EUREKA的通用性还使一种无梯度上下文学习方法成为可能,该方法可以从人类反馈(RLHF)中进行强化学习,可轻松整合人类输入,从而提高生成奖励的质量和安全性,而无需更新模型。
在课程学习环境中,使用EUREKA奖励,展示了一种模拟的Shadow Hand,它能够执行转笔技巧,即熟练地快速转动笔。
技术细节
环境规范
奖励设计需要向LLM提供环境规范。直接提供原始环境源代码(如果存在,则不提供奖励代码)作为上下文。为了确保环境代码适合LLM的上下文窗口并且不会泄露模拟内部信息,有一个自动脚本来提取仅公开和完全指定环境状态和动作变量的环境代码片段。
奖励采样
在每次迭代中,EUREKA都会从LLM中抽取几个独立输出。实验表明,仅抽取少量样本(16)就包含至少一个可执行奖励代码。
奖励反思
提出奖励反思,这是一种自动反馈,它总结文本中的策略训练动态。奖励反思会在整个训练过程中跟踪所有奖励组件的标量值和中间策略检查点的任务适应度函数。
实验环境
实验环境由10个不同的机器人和29个使用IsaacGym模拟器(Makoviychuk,2021)实现的任务组成。包括来自IsaacGym的9个原始环境,涵盖了从四足动物、双足动物、四旋翼飞行器、协作机器人手臂到灵巧手等多种机器人形态。此外,还包括来自Bidexterous Manipulation(Dexterity)基准(Chen,2022)的所有20个任务,这些任务需要一对Shadow Hands来解决各种复杂的操作技能。
评估方法
对于每项任务,所有最终奖励函数都使用相同的RL算法和相同的超参集进行优化。Isaac和Dexterity共享一个经过精心调整的PPO实现(Schulman,2017;Makoviichuk & Makoviychuk,2021)。对于从每种方法获得的每个最终奖励函数,运行5次独立的PPO训练运行,并报告从固定间隔采样的10个策略检查点获得的最大任务指标的平均值。
结论
EUREKA算法展示了LLM在奖励设计领域的巨大潜力,不仅能够生成高质量的奖励函数,还能够通过与人类反馈的结合进一步提高性能。这一研究为解决复杂低级操作任务的奖励设计问题提供了一个新的思路和方法。