懒人福音!谷歌让机器训练机器,用大语言模型定制专属于你的家务机器人 焦点快播
能根据你的喜好定制的家务机器人,来了!
【资料图】
想把深色衣服和浅色衣服分开洗?没问题,机器人分分钟就能帮你分好类:
被垃圾分类的问题搞得焦头烂额?没关系,也交给机器人来做:总之,分类识别、定向放置……一切都凭你的习惯。更关键的是,利用大语言模型,不需要大量数据,也无需场景化学习,几句话就能轻松调教。
这款整理机器人名为 TidyBot,由谷歌与美国多所高校联合打造,通讯作者来自普林斯顿大学。
让机器训练机器对于物品整理机器人的定制,最难的一环就是用户偏好的分析。
传统上,这类信息需要通过海量的数据分析才能得到。
而 TidyBot 是使用 LLM 分析用户喜好信息的。
用户给出的具体实例,比如依据颜色将不同服饰分别放入衣柜和抽屉,会被转换成 Python 风格的 LLM 提示信息。
objects = [ "yellow shirt", "dark purple shirt", "white socks", "black shirt" ]
receptacles = [ "drawer", "closet" ]
pick and place ( "yellow shirt", "drawer" )
pick and place ( "dark purple shirt", "closet" )
pick and place ( "white socks", "drawer" )
pick and place ( "black shirt", "closet" )
# Summary:
最后的概述是由 LLM 反馈的,具体到这个例子当中,LLM 生成了如下结论:
# Summary: Put light-colored clothes in the drawer and dark-colored clothes in the closet.
该结论在接下来的环节中会被用于判定未知物品应该被放到哪里,前一步的输出结果在这里作为提示的开头。
# Summary: Put light-colored clothes in the drawer and dark-colored clothes in the closet.
objects = [ "black socks", "white shirt", "navy socks", "beige shirt" ]
receptacles = [ "drawer", "closet" ]
pick and place ( "black socks",
然后,LLM 会输出几个新颜色衬衫和袜子的放置位置。
pick and place ( "black socks", "closet" )
pick and place ( "white shirt", "drawer" )
pick and place ( "navy socks", "closet" )
pick and place ( "beige shirt", "drawer" )
除了放置的位置,LLM 也能分析其他操作信息,比如是需要 " 放 " 还是 " 扔 "(下方 Summary 中的内容由 LLM 生成)。
objects = [ "yellow shirt", "dark purple shirt", "white socks", "black shirt" ]
pick and place ( "yellow shirt" )
pick and place ( "dark purple shirt" )
pick and toss ( "white socks" )
pick and place ( "black shirt" )
# Summary: Pick and place shirts, pick and toss socks.
同样的,使用 LLM 总结出的信息可以判断应对未知物体执行何种操作。
# Summary: Pick and place shirts, pick and toss socks.
objects = [ "black socks", "white shirt", "navy socks", "beige shirt" ]
# 以下为 LLM 输出结果:
pick and toss ( "black socks" )
pick and place ( "white shirt" )
pick and toss ( "navy socks" )
pick and place ( "beige shirt" )
其他动作信息原理也都相同。
有了 LLM 给出的信息,接下来就要应用到实际工作中了。
TidyBot 的系统中预置了很多物品的分类标签,LLM 指令的执行方式也已经由程序设定。
TidyBot 首先让图像识别模块判断出物品的基本信息,然后传给 LLM 生成指令,并交付执行。
△TidyBot 工作流程示意图由于只有极少量的数据需要进行区分,TidyBot 具有很强的鲁棒性。
同时,它能对来自任意用户的任何物品进行分类,又有很强的灵活性。
基准测试成绩亮眼
除了 TidyBot 本身,测试基准数据集也是该团队的另一重要贡献。
该数据集包含了 96 组以文本形式描述的任务场景,具体包括已知和未知操作方式的物品和相应的容器。
在每个场景中,容器的数量为 2-5 个,已知操作方式的物品数量为 4-10 个,未知物品数量与已知相同。
这 96 个场景涵盖了客厅、卧室、厨房和储藏室四种房间类型,每个类型 24 组。
△测试数据集节选,完整版可从 GitHub 中获取实际环境中,由于对物品分类的方式多种多样,团队分别从不同分类角度对 TidyBot 的表现进行了测试,具体包括:
物品大类,如 " 服装 " 和 " 玩具 "
物品属性,如 " 金属材质 " 和 " 塑料材质 "
物品功能,如 " 夏装 " 和 " 冬装 "
物品子类,如 " 衬衫 " 和 " 其他服装 "
复合类型,如 " 图书和玩具 "
整体上,TidyBot 的准确率达到了 91.2%,超过了 WordNet、RoBERTa 等其他方式。
具体分类角度上的结果也是如此。上述数据只是在理论层面对 TidyBot 的分类能力进行测试。在实际应用中,TidyBot 的表现同样不俗。
团队一共搭建了 8 个真实场景。
△测试使用的真实场景每个场景各包括 10 件物品、2-5 个容器和 4-10 条已知信息。
△测试中使用的容器和未知物品每个场景都进行了重复测试,最终各测试了 3 次,即一共 10*8*3=240 次操作。
在这 240 次操作中,TidyBot 的正确率达到了 85%。
最后,让我们实际看一下 TidyBot 在测试中的表现吧。
位置及放置方式偏好:服装→沙发,放;木块→抽屉,放;易拉罐→垃圾桶,扔;水果→黑色箱子,扔;零食→塑料箱,扔
论文地址:
https://arxiv.org/abs/2305.05658
项目主页:
https://tidybot.cs.princeton.edu/
GitHub 页面:
https://github.com/jimmyyhwu/tidybot/