LLM · RL | Plan4MC:使用有向无环图 high-level planning + 基于 RL 执行 low-level policy


目录

  • [01 main idea](#01 main idea)
  • [02 如何确定要学的 skill 列表](#02 如何确定要学的 skill 列表)
  • [03 如何获取一个 low-level skill 的 policy](#03 如何获取一个 low-level skill 的 policy)
  • [04 如何根据目标进行 high-level 规划](#04 如何根据目标进行 high-level 规划)
  • misc

← 返回目录

01 main idea

  • high-level 规划 + 基于 RL 的 low-level 执行。
  • 首先,让 LLM 生成基本 skill(技能),例如找到某个物品、制作某个物品。LLM 会提供 skill 的输入(比如制造物品需要消耗什么、需要背包里已经有什么)和输出(制造物品后 得到了新物品)。
  • 基于 RL,学会执行每一个 low-level skill:这一步是常规的 RL 训练,为每个 skill 训练一个 policy。
  • high-level planning:给定一个目标后,根据 LLM 生成的 skill 的输入输出,可以建一个有向无环图(DAG),这个图说明了我们执行任务的逻辑关系。然后,在图上进行搜索,找到从起点到终点的最短路,依次执行路径上的 skill。

02 如何确定要学的 skill 列表

  • 提出了三种细粒度的基本 skill:
    • Finding-skills,找到某个物品;
    • Manipulation-skills,操作某个工具;
    • Crafting-skills,制作某个物品。
  • 使用 ChatGPT 生成 skill 信息(prompt 见附录 E),ChatGPT 能够生成所有 skill(55 个),犯了 6 个错误,作者手动更正了错误。

具体 prompt:(首先提供一些已有 skill 的格式,解释这个格式的含义,然后让 LLM 生成其他 skill 的信息)

I am playing the game Minecraft. I define some basic skills, like attack something, collect something and place something nearby. I list the skills in a special format.

As an example:

python 复制代码
furnace_nearby: 
    consume: 
    	'furnace': 1 
    require: 
    	equip: ['furnace'] 
    obtain: 
    	'furnace_nearby': 1 

To understand this skill line by line: the skill is to get a furnace_nearby . 'consume' means things will be consumed or killed. In this skill, furnace * 1 will be consumed. 'require' means things are needed but will not be consumed. In this skill, nothing else is required. We should equip furnace to the first slot. If you do not have to equip anything, write 'equip: []'. Finally, we will obtain furnace_nearby * 1.

Another example:

python 复制代码
cobblestone: 
    consume: 
    	'cobblestone_nearby': 1 
    require: 
        'wooden_pickaxe': 1 
        equip: ['wooden_pickaxe'] 
    obtain: 
    	'cobblestone': 1 

To understand: to mine a cobblestone, we will consume a nearby cobblestone. A wooden_pickaxe is required and should be equipped, but will not be consumed.

Now you understand the rule of this format. Please help me generate the following skills: crafting_table_nearby, wool, beef, diamond.

skill 格式:(consume 代表该物品会消耗,而 require 代表执行 skill 需要这个物品,但执行完 skill 后,该物品不会被消耗)

python 复制代码
# Manipulation-skills
crafting_table_nearby:
    consume:
        'crafting_table': 1
    require:
    	equip: ['crafting_table']
    obtain:
        'crafting_table_nearby': 1
wool:
    consume:
        'sheep_nearby': 1
    require:
    	'shears': 1
    	equip: [ 'shears']
    obtain:
        'wool': 1

# Crafting-skills
bed:
    consume:
        'planks': 3
        'wool': 3
    require:
        'crafting_table_nearby': 1
        equip: []
    obtain:
		'bed': 1

furnace:
    consume:
        'cobblestone': 8
    require:
        'crafting_table_nearby': 1
        equip: []
    obtain:
        'furnace': 1

03 如何获取一个 low-level skill 的 policy

  • policy:使用 RL 训练,基于 MineDojo 模拟器。

    • observation:RGB 图像 + 一些辅助信息(指南针、位置、生物群落等);
    • action:论文中没有详细说明,应该是往各个方向走 / 跑,蹲下,挖不同方向的物品,转身等等(?)
  • 随机策略会原地打转 + mc 的地图较大 + 稀疏奖励,导致 Finding-skill 很难训:

    • 在 500 步内,随机策略在平原上只能行进到 5 个方块的距离。
    • 由于树木在平原上很少见,并且通常离玩家有 > 20 的距离,因此如果直接训的话,"获得木头"这种 skill 会训不出来。
  • 解决方案:

    • Finding-skills 用分层策略训,high-level 策略输出要到达的点,low-level 策略控制 agent 走到那个点去;先训 low-level 策略,再训 high-level 策略(听起来有道理,感觉确实可以训出来,并且 low-level 策略可以用 HER 训()
  • Manipulation-skills 和 Crafting-skills 也存在稀疏 reward 的问题,这篇工作用 MineCLIP(先前的神秘工作)生成 intrinsic reward。如果需要什么原料,就先用 finding-skills 走过去,或者直接在 agent 旁边生成一个需要的东西。

04 如何根据目标进行 high-level 规划

  • skill 规划方法:构建一个 skill 图,然后在图上跑 DFS(附录 C 的算法 1),在 skill 图中找到从起点到终点的最短路径。
  • 考虑到 low-level policy 可能执行 skill 失败,会交替进行 skill 规划和 skill 执行,直到 episode 结束(附录 C 的算法 3)。一旦 low-level policy 执行 skill 失败,high-level planning 可能会规划别的路径。

misc

  • 事实上,结果看起来一般,执行任务的成功率只有不到 50%;虽然远超所有 baseline,但估计赶不上人类)

← 返回目录

相关推荐
Robot侠3 小时前
极简LLM入门指南4
大数据·python·llm·prompt·提示工程
智泊AI11 小时前
为什么通用Agent很难实现企业化落地?
llm
大模型教程15 小时前
14天速成LLM高手!大佬开源学习笔记,GitHub狂揽700星
程序员·llm·agent
AI大模型15 小时前
大模型相关术语和框架总结|LLM、MCP、Prompt、RAG、vLLM、Token、数据蒸馏
程序员·llm·agent
AI大模型16 小时前
OpenAI官方出品 : 从0到1构建AI Agent实战指南, 解锁智能自动化新范式
程序员·llm·agent
Baihai_IDP16 小时前
你说的 CUDA 到底是哪个 CUDA?一文理清那些让人混淆的术语和版本号
人工智能·面试·llm
Mintopia17 小时前
🎩 AIGC技术提升Web服务效率的量化分析:从成本到体验
人工智能·llm·ai编程
扫地的小何尚18 小时前
NVIDIA CUDA-Q QEC权威指南:实时解码、GPU解码器与AI推理增强
人工智能·深度学习·算法·llm·gpu·量子计算·nvidia
坐吃山猪19 小时前
ClaudeCode安装记录
llm·claude
阿正的梦工坊19 小时前
Search-R1:用强化学习训练LLM推理并利用搜索引擎
人工智能·机器学习·搜索引擎·llm