具身智能论文和开源系统之-Code as Policies实现介绍

这篇文章主要向大家介绍基于大模型的LMPS实现机器人通用任务的方法,该方法名为Code as Policies,这里将向大家介绍其基本的原理和一些实践样例。也将以问答的形式来进行介绍。

问题1:Code as Policies这篇文章的主要思想和实现思路和方法是什么?

回答:基于在代码生成的数据集上微调通用大语言模型增强其生成代码的能力,机器人任务执行的策略代码通过大语言辅助编程得以实现。利用大语言的开放自然语言词汇描述任务,常识知识,推理逻辑等优势为实现机器人通用任务提供了一种概念验证实现,为具身智能的通用智能的实现提供了一种发展方向和路径。

问题2:LMP具有什么样的功能,以及如何通过LLM实现?直接用训练好的通用大模型可以吗?

回答:LMP(language model generated programs)是通过向大模型输入任务描述(用代码生成的数据集微调后的大语言模型)的方式生成可执行的代码。为了使得生成的代码具有面向特定任务,模式和场景,以及特定的感知模块接口,特定的机器人控制等接口的需求,可以采用了few-shot prompting的方法进行In-Context Learning(无需模型再训练更新参数,通过在提示中的样例隐式的推断出满足特定的格式和约束等满足期望的输出),即提供少量的(如5-20个)样例(Examplar/Shots, Prompt Engineering)作为多轮会话大模型的上下文,但它们通常是在实际提问之前一次性提供给模型的,作为初始设定或指令的一部分,以大模型对话历史的格式[2]作为提问prompt的prefix实现特定任务,模式和场景的需求,更多的描述可以参考引文2中问题2的描述。

问题3:LMP在语言生成方面的能力的具体表现有哪些?

回答:LMP在语言生方面的能力具体体现在语言的低层次(low-level)的代码生成上和高层次(high-level)的代码生成上。在low-level的生成能力主要表现为:1、根据语言样例按任务逻辑描述生成特定语言的代码语句的能力;2、特定语言第三方库的使用生成能力,如python的numpy库的一些使用方法;3、应用自定义的接口调用代码生成能力;4、自然语言的推理逻辑在代码中的体现,具体每一方面的语言生成能力示例见引文[2]问题3的第一部分的描述;high-level的生成能力主要表现为:1、语言的控制逻辑的生成,如if-else条件判断,while循环等;2、代码组合的能力和代码嵌套生成的能力等;

问题4:完整的代码组合和嵌套如何在面向机器人领域中用python编程语言进行实现?

回答:这里主要用到了python编程语言的AST 解析功能和exec动态注册延迟执行的特性,使得生成的代码中函数的定义中可以调用其他函数,如引文[2]中的问题4的 lmp_fgen实现了基于LMP的函数生成,该LMP通过AST和exec机制实现了通过不同的LMP实现嵌套子函数的定义以及实现整个代码的生成和执行,详细的机制描述参考引文[2]中的问题4的详细说明。

问题5: Code as Policys论文中的代码生成和问题2中的一般的LMP的代码生成能力有什么不同和特殊性?优势体现在什么地方?

回答:特殊性是使用LMP的原理应用在机器人的策略代码生成这样的领域,其中感知和控制的接口可以作为样例提供给特定的LMP(如调用感知的目标检测的已有算法和API等),以实现约束或背景条件生成。具体更加详细的描述参考引文[2]中的问题4的描述。

References


by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *