引言
看到一个slides讲的很好,比较系统并简洁的描述了为什么大语言模型来控制机器人是一条可行的路,以及大语言模型能够解决了机器人控制里面的哪些难点和痛点。
首先提到现在控制机器人是非常rigid,就是说不够灵活,针对单一或者特定任务工程师进行调试编程,没有一种灵活的可以重编程的方式来适应各种任务。那么如何把工程师解放出来,只使用自然语言的指令来实现对机器人编程实现任务?这个时候LLM就起到了关键性的作用。
Pre-LLM挑战
然后这个slide讲到了pre-LLM(应用大模型前)两个关键性的挑战:
挑战1:(Grounding)如何把自然语言转换成能够被机器人识别、处理的状态?
挑战2:(Planning)如何规划合适的动作来完成任务?
Grounding
比如我想让机器人抓取位于桌子上最左边的红色方块,这里要解决定位到桌子、桌子上的物体、红色的方块、以及相对位置关系。如果用逻辑语言来表示,应该如下:
可以看到,其实这么简单的一句描述,想进行grounding也不是一个很简单的事情。
Planning
任务规划对于机器人操作来说非常重要,其涉及到如何对任务进行合理的拆解与执行。比如下面这个例子,把货架上的苹果放到桌子上:
这个任务完成的流程图如下:
可以看到这个执行流程会随着任务的复杂程度不断增加。
LLM Robotics
论文:Do As I Can, Not As I Say: Grounding Language in Robotic Affordances
SayCan通过LLM对话,然后提供一组可选的动作列表,通过采用强化学习训练的value funcions来选择当前最合适的动作:
SayCan为什么能够有效处理grounding和planning?
本质上是通过LLM的内在知识处理grouding,通过chain of thought进行任务规划。但是仍然存在问题:
问题1:如何处理失败?
论文:Inner Monologue: Embodied Reasoning through Planning with Language Models
Inner Monologue内心独白,通过让LLM构建一个闭环反馈系统,不断获取不同形式的反馈(场景描述、成功与否),来处理失败:
问题2:如何判断正确性?
论文:Code as Policies: Language Model Programs for Embodied Control
Code as Policies通过迭代生成代码的方式,对之前生成的代码(比如函数未定义等错误)进行修改,可以生成更加复杂、可靠的执行代码。
总结
这个slides主要讲了pre-LLM做机器人控制的两个难点和挑战(grounding,planning),然后介绍了SayCan能够借助LLM的内部知识来grounding以及Chain of Thoughts来完成planning。同时也介绍了LLM Robotics的两个问题,如何处理失败以及验证正确性?Inner Monologue通过构建获取不同形式的反馈构建闭环系统,来处理失败。Code as Policies通过迭代生成代码对之前的代码进行修改与补充,生成更加复杂、可靠的代码。
后台回复LLM1 可以获取slides以及三篇文章的pdf~