王者荣耀,一款巅峰时期收入占腾讯总营收接近 60%,一度被封神,风靡全国的 moba 类型手游。虽然身边的朋友都在玩,但是因为我本人并不喜欢长时间使用手机,且在此之前完全没有玩过类似的游戏,所以一直无法对它提起兴趣。后来嘛,受到室友和朋友的影响,开始了解基础玩法。在被带飞一次后,一发不可收,接连几天在王者峡谷流连忘返。由于技术实在是太菜了,只能人机对战刷下存在感。
虽然机器相比于真实场景是弱了很多,但是人机对战的时候,还是惊讶于 AI 的能力,如此复杂的场景,机器是如何学习到每一次的 action的呢?也很好奇这里面的功能是如何实现的,后来看一些文章,想想从基础的 RL 演变到现在,不就是目前大佬们在玩的那种名为 Embodied AI 的东西嘛。
Embodied AI
embodied ai,不是很好翻译,Google的英文解释蛮好懂的: “AI for virtual robot”, 感觉这个方向大概就是 NLP + CV + RL,在多模态的数据上,利用和真实环境的交互作为 reward,实现多模态叠加 RL。
之前没有接触过这方面的文章,所以我按照在其他地方看到的相关文章的发表时间来了解这个方向,并将相关有趣的文章分享在这里,最后会总结一篇 survey。
SayCan
这篇文章 Do As I Can, Not As I Say: Grounding Language in Robotic Affordances, 是 Google robot 团队在2022年4月1日发表的文章,认为虽然语音模型能将一件事情做出合理的描述,但无法在真实世界得到交互,可以将LM看做是一个人的大脑,但只有大脑是不够的,我们需要为机器安装眼睛和手,这样机器就可以根据通过 LM 这个大脑解析理解语义之后,实现一些简单的 skill(一些action)。
具体的实现过程,总结起来就是:
- 首先,利用提前训练好的 LM,把输入的语言指令拆解成很多可以执行的 skill对应的短文本描述;
- 然后用训练好的 value function,结合 LM 得到 skill的概率分布,执行概率最高的 skill;
- 得到skill之后,就将其和之前的命令拼接起来,得到下一个 skill
整体来看,这篇文章的 idea 不算特别复杂,核心思想就是把复杂的自然语言解析成可执行的 prompt,然后将 prompt 对应到 skill上,让机器人执行对应的命令。主要还是利用了两个预训练好的LM模型和value function 函数。不足的是,感觉每个 skill都是单独训练,直觉上看还是比较简单的,期待后面结合上下文。
不过还是感觉很神奇,大概是不管是 NLP 还是 CV, 都属于软件层面的数据交互,embodied 让 NLP 结合 robot 让这些能力得以在真实的环境中体现出来,落实到真实的应用层面上,还是蛮震撼的。这篇文章也在游戏 我的世界中,得到应用。下一篇文章,将介绍 Google 团队在简单的玩具汽车应用上的工作。
开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 2 天,点击查看活动详情