Automated Rewards via LLM-Generated Progress Functions
作者: Vishnu Sarukkai, Brennan Shacklett, Zander Majercik, Kush Bhatia, Christopher Ré, Kayvon Fatahalian
分类: cs.LG, cs.AI, cs.CL
发布日期: 2024-10-11 (更新: 2024-10-25)
备注: 26 pages, 5 figures
💡 一句话要点
利用LLM生成进度函数,自动化奖励工程,提升机器人灵巧手操作性能。
🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)
关键词: 强化学习 奖励函数工程 大型语言模型 机器人灵巧手 内在奖励
📋 核心要点
- 现有奖励函数工程依赖大量试错,每次评估都需要完整的策略优化,成本高昂。
- 利用LLM生成进度函数,将奖励函数生成简化为任务进度估计,降低样本复杂度。
- 在Bi-DexHands上,该方法仅用先前最优方法1/20的样本,达到SOTA性能。
📝 摘要(中文)
本文提出了一种基于大型语言模型(LLM)的奖励生成框架,旨在通过利用LLM在各种任务中的广泛领域知识来自动化奖励工程。该框架在具有挑战性的Bi-DexHands基准测试中,仅需先前最优方法1/20的奖励函数样本,即可生成最先进的策略。核心思想是将生成特定任务奖励的问题简化为粗略估计任务进度的问题。该方案分两步进行:首先,利用LLM的任务领域知识和代码合成能力来编写进度函数,该函数从给定状态估计任务进度;然后,利用该进度概念离散化状态,并使用低维状态空间生成基于计数的内在奖励。实验表明,LLM生成的进度函数和基于计数的内在奖励的结合对于性能提升至关重要,而诸如通用的基于哈希的计数或直接使用进度作为奖励函数等替代方案则效果不佳。
🔬 方法详解
问题定义:论文旨在解决强化学习中奖励函数工程的自动化问题,特别是在机器人灵巧手操作等复杂任务中。现有方法依赖人工设计或大量试错,效率低下,且难以泛化到新任务。痛点在于每次采样奖励函数都需要进行完整的策略优化,计算成本巨大。
核心思路:论文的核心思路是将奖励函数生成问题转化为任务进度估计问题。通过利用LLM的领域知识和代码生成能力,自动生成能够从状态中估计任务进度的函数。然后,基于估计的进度,设计内在奖励,引导智能体学习。这样可以将高维、复杂的奖励函数设计问题,转化为低维、可控的进度估计问题。
技术框架:整体框架包含两个主要阶段:1) LLM进度函数生成:利用LLM生成能够根据当前状态估计任务完成度的进度函数。输入包括任务描述和状态信息,输出为一段代码,该代码能够计算进度值。2) 基于计数的内在奖励生成:利用生成的进度函数离散化状态空间,并使用基于计数的内在奖励来鼓励探索。具体来说,将状态空间划分为多个离散的“单元格”,并对每个单元格的访问次数进行计数。访问次数越少的单元格,奖励越高,从而鼓励智能体探索未知的状态。
关键创新:关键创新在于利用LLM生成任务相关的进度函数,并将其与基于计数的内在奖励相结合。与直接使用LLM生成奖励函数或使用通用计数方法相比,该方法能够更有效地利用LLM的领域知识,并更好地引导智能体探索。本质区别在于,该方法不是直接学习奖励,而是学习如何估计任务进度,从而简化了学习过程。
关键设计:论文的关键设计包括:1) LLM Prompt设计:设计合适的Prompt,引导LLM生成高质量的进度函数。Prompt需要包含清晰的任务描述和状态信息。2) 状态离散化方法:使用LLM生成的进度函数对状态空间进行离散化,选择合适的离散化粒度。3) 计数方法:使用合适的计数方法,例如简单的访问次数计数或更复杂的基于模型的计数方法。4) 奖励缩放:对内在奖励进行缩放,使其与环境奖励相协调。
🖼️ 关键图片
📊 实验亮点
在Bi-DexHands基准测试中,该方法仅使用先前最优方法1/20的奖励函数样本,即可达到最先进的性能。实验表明,LLM生成的进度函数和基于计数的内在奖励的结合对于性能提升至关重要。与直接使用LLM生成奖励函数或使用通用计数方法相比,该方法能够显著提高学习效率和最终性能。
🎯 应用场景
该研究成果可应用于机器人灵巧手操作、游戏AI、自动驾驶等领域,通过自动化奖励函数工程,降低强化学习的应用门槛,加速智能体在复杂环境中的学习和适应。未来可扩展到更多领域,例如自动课程设计、任务分解等,实现更智能化的自动化。
📄 摘要(原文)
Large Language Models (LLMs) have the potential to automate reward engineering by leveraging their broad domain knowledge across various tasks. However, they often need many iterations of trial-and-error to generate effective reward functions. This process is costly because evaluating every sampled reward function requires completing the full policy optimization process for each function. In this paper, we introduce an LLM-driven reward generation framework that is able to produce state-of-the-art policies on the challenging Bi-DexHands benchmark with 20x fewer reward function samples than the prior state-of-the-art work. Our key insight is that we reduce the problem of generating task-specific rewards to the problem of coarsely estimating task progress. Our two-step solution leverages the task domain knowledge and the code synthesis abilities of LLMs to author progress functions that estimate task progress from a given state. Then, we use this notion of progress to discretize states, and generate count-based intrinsic rewards using the low-dimensional state space. We show that the combination of LLM-generated progress functions and count-based intrinsic rewards is essential for our performance gains, while alternatives such as generic hash-based counts or using progress directly as a reward function fall short.