Paper name
Language Models as Zero-Shot Planners: Extracting Actionable Knowledge for Embodied Agents
Paper Reading Note
URL: https://arxiv.org/pdf/2201.07207.pdf
TL;DR
- ICML 2022 文章,尝试利用 Large language models (LLMs) 做出目标驱动的决策,这些决策可以在交互式、具体化的仿真环境中实施。其中 LLMs 不需要进行任何 finetune
Introduction
背景
- Large language models (LLMs) 近几年取得重要的突破,通过在人类生产的语料库上训练的模型包含着很多信息,这些模型在语言任务上应用广泛,本文希望探索这些语言模型是否能在做出目标驱动的决策,这些决策可以在交互式、具体化的仿真环境中实施,同时本文希望探索这些模型是否可以不经过任何 finetune 就实现上述任务
- 比如在最近提出的仿真环境 VirtualHome 中,一个 high-level 的任务(比如做早餐)可以被分解为一系列有根据的行动(打开冰箱,取牛奶,关冰箱等)
本文方案
- 本文发现,GPT-3 和 Codex 大语言模型在给定提示一个任务的描述及其相关动作序列的固定示例时,可以为我们感兴趣的任务生成非常合理的动作计划。然而这些模型的输出的 action 很难直接在仿真环境中运行,或者存在语义歧义性
- 考虑到大语言模型输出的 action 无法直接在仿真环境中运行,本文提出了以下优化方案(将 action 的可执行性从 18% 提升到 79%):
- 遍历所有容许的 actions,将模型输出映射到语义相近的 action 上 (基于 RoBERTa 做语义相似性判断)
- 将修正过后的 action 逐步添加到模型输入中,这种动态校正能使得语言模型的输出更贴合容许的 actions
- 通过使用类似于查询任务的已知任务示例来提示模型,从而对模型提供弱监督。这有点让人联想到 prompt tuning 方法,但不需要访问模型的梯度或内部结构
Dataset/Algorithm/Model/Experiment Detail
实现方式
评价体系
- 评估环境: VirtualHome
- virtualhome 中每个活动可以表示为程序,程序由一系列 action 组成: [action] arg (idx)
- action 有 42 中:比如 walk,open
- args:不同的交互对象,比如 bedroom、fridge
- idx:交互对象的 id
- Relax on sofa 活动的程序如下
- virtualhome 中每个活动可以表示为程序,程序由一系列 action 组成: [action] arg (idx)
- 评估任务方法
- 使用 ActivityPrograms 知识库进行评测,该知识库由 Amazon Mechanical Turk (MTurk) 标注,2821 组数据,每个数据包含以下信息
- high-level 的任务名称,比如 Watch TV
- 自然语言对该任务的描述,比如 Sit on my couch directly opposite my TV, switch on my TV with the remote control and watch
- 可执行该任务的程序
- 本文是直接利用 high-level 的任务名称得到执行该任务的程序,挑选了 88 组数据用于测试,204 组数据作为样例数据
- 使用 ActivityPrograms 知识库进行评测,该知识库由 Amazon Mechanical Turk (MTurk) 标注,2821 组数据,每个数据包含以下信息
- 评价指标
- Executability:可执行性衡量行动计划是否能够正确解析并满足环境的常识约束
- Correctness:自然语言任务规范的模糊性和多模态性导致正确性难以评测,所以基于人工对方法进行评测;另外对于实验分析,提出了相似性度量方法(基于最长公共子字符串)来判断模型生成的程序与人工标注的程序的相似性,作为人工评测的辅助
方法
-
左图展示了使用 demostration 任务加在 prompt 中能够让语言模型模仿输出程序步骤
-
中图展示了使用另外一个语言模型来将语言模型输出的程序 action 转换为仿真环境容许的 action
基于模型输出的程序 action 与容许 action 库的相似度来转换
-
右图展示了将上一步中的转换后的 action 逐步加在 prompt 中,同时会动态挑选与当前任务相似的 demostration 任务作为 prompt 的一部分,提供 weak supervise
实验结果
- 只有足够大的模型才有一定的 correctness,大模型的 executability 也较低
- 消融实验
- 可执行并且正确的程序占比,人类正确率为 65.91%,和人类还有很大差距
- 不同的翻译用语言模型的影响
- 如果在 prompt 中也使用 description 数据后, LCS (最长公共子字符串)指标能和有监督方法差不多
Thoughts
- 本文总结的未来可探索的点
- Correctness 降低:主要是由 translation 的语言模型错误、VirtualHome 的表达有限导致(一些语言模型的输出 action 在仿真环境中不支持)
- 不直接生成 low-level 的 action,改为生成 mid-level,只考虑mid-level中最突出的挑战,即生成的程序必须满足所有常识约束(以可执行性度量为特征)
- 本文没有研究LLM对于低级感知运动行为基础的有用性,与感知相关的任务可能需要 finetune,比如对于导航与交互等任务
- 进一步与环境进行交互
- Dynamic Example 能大幅涨点说明了这些语言模型的输入 prompt 中如果能带上一些任务相关的信息会非常有利,也即进一步 finetune 理论上也是能涨点的