英伟达:机器人带来芯片新需求


    两个月前,在台北电脑展上,英伟达 CEO 黄仁勋骄傲地托起那块不到巴掌大小的芯片:这就是未来智能机器人的“大脑”。
    很多游戏粉丝听说英伟达发了新卡,激动得去搜索相关的新闻,可看来看去,发布会上把「十年来最重要创新」、「全球首款光线追踪 GPU」挂在嘴边的老黄却没怎么提起新品在游戏上的应用。游戏粉丝有些失望,核弹还是那个核弹,皮衣也还是那件皮衣,但发布会上屡屡提起、演示的关键词却并不是他们熟悉的 3A 大作了。
    类似的情况也出现在显卡测评的视频里,当一位 up 主通过机器学习的训练效果来讲解 NVIDIA Titan V 显卡的性能时,弹幕上马上刷起了「听不懂」、「在说啥」的声音。
    游戏粉丝们也许不是很买账,但对英伟达而言,人工智能却是这家以图形和计算起家的半导体公司遇上的最好机会。在深度学习井喷式爆发的那几年,擅长向量和矩阵运算的英伟达 GPU 被许多学者、研究员用来进行研究和训练自己的算法模型,甚至 Google Brain 和吴恩达这样顶级的人工智能研究团队和科学家也在使用英伟达的设备,久而久之,英伟达也将自己的注意力转移到了深度学习这一刚刚在产业里兴起的领域。
    不够,还不够智能
    几年下来,英伟达在人工智能领域有了自己的积累,它开始有了新的判断,专注于底层算力的英伟达开始思考上层应用的方向。
    人工智能的第一阶段,是开发自动化编程的软件。第二阶段,是将软件应用于行业的自动化,这种自动化带来的效率提升会刺激原有的市场。在今年的台北电脑展上,黄仁勋把人工智能的发展分为了三个阶段,第三阶段,是 AI 走出计算机,影响外部的世界。
    依黄仁勋的定义,目前我们已经处于人工智能发展的第二阶段,即人工智能开始初步应用于各行各业。
    比如工厂里的人机协作,大型机械很容易在使用时误伤到人,但如果给这些设备装上传感器,检测身边是否有人,实时作出是否要减速的判断,在使用时就会安全许多。
    再比如传统的拆垛、堆垛设备,只要给设备加一个深度传感器,它就能判断出箱子的大小位置和重心,这时机器就能够判断出最佳操作位置,从而以最快的速度完成操作。
    还有超市商场里,每天营业员都会在关门后花数个小时的时间整理、统计当天所剩货品,现在市面上已经有能够完成点货和理货功能的机器人,这些设备能给店家省下不少的人力。
    这些都是时下已经投入使用的一些智能机器,但在英伟达高级软件经理李铭博士看来,这些智能是远远不够的。
    加一点智能进去,解决当前场景最急需的问题,看起来是个智能机械,但其实它对整个机器人本身的促进并没有想象中那么大。
    李铭博士认为,这些智能机器人普遍存在着一些问题:
    第一,软件成本上升太快,在安防、服务、工厂,不同的场景里有着不同的需求,体现在软件编程上,软件架构的逻辑可能会全局推翻,这就导致了软件开发的成本居高不下。
    第二,具体到场景里,单个机械在应用时还需要单独的调试。以工业机器人的机械臂为例,在工厂里需要为车床量身调试,设置具体操作参数,比如距离产线的距离,50cm 还是 60cm,10cm± 的误差在生产线上是绝对不允许的。
    第三,面对环境的变化适应性差,比如工厂里的光线发生变化,比如室外可能会发生的各种意外,现有的机器人是无法应对的。
    第四,软件更新,当功能有增加或者修改时,需要做很多额外的工作,比如改变程序的逻辑,甚至重新编程等等。
    如前面黄仁勋提到人工智能的三个阶段,智能从软件开始,机器人从完成固定程序动作的普通机械,到今天「有一点点智能」的机器人,依赖的正是人工智能在各自行业的初步应用。所以要解决以上这些智能机器的问题,还需要回到软件的层面,回到人工智能身上。
    机器该怎么学习?
    人工智能的发展越来越抽象,越来越复杂。从早期简单的是与否的判断,到后来精准的识别,可以在复杂的场景里找出特定的目标,再到后来,出现 AlphaGo 这样可以做出主动的决策的 AI,甚至智能如 AlphaGo Zero,可以完全依靠自学实现快速成长。可以看到,软件的智能水平是领先于我们常见的硬件智能的。
    那么,人工智能在硬件上的部署遇到了哪些困难呢?
    首先是计算力。硬件,尤其移动机器人上能够搭载的计算力非常有限,这与 AlphaGo 这样倾全公司算力训练出来的 AI 不同。
    人工智能经过这么长时间的发展,在网络的种类、复杂程度和处理的信息量上都发生了天翻地覆的变化。网络种类上,从早期的 AlexNet 和 GoogleNet 到现在各种各样的 GAN(生成对抗网络)以及各种深度强化学习的网络,它们各自网络结构都有不同,开发者在适应最新的网络上常常会遇到一些麻烦。
    网络变得越来越复杂,处理的信息量也在成倍地增长,算力需求越来越高的情况下,对搭载处理单元的体积有更多限制的机器人实际上存在着在智能水平上升级的障碍。
    其次是训练环境。对于 AlphaGo、DeepMind,科学家们可以设定一个基本规则,让它永远跑在计算机里,不停地训练,技巧磨炼得越来越强大,但机器人的训练却远远没有这么简单。
    在去年的 GTC 大会上,黄仁勋展示了加州大学伯克利分校的 AI 实验室所做的曲棍球机器人实验,在一个仅一米左右的直线上,伯克利的曲棍球机器人「艾达」足足试了 200 次才熟练地掌握了将球打入门框的技巧。
    “这还只是曲棍球!”黄仁勋说道,“如果我想抬起一辆汽车呢?如果我想开门呢?如果我想让机器人和医生配合做手术呢?”
    我们不可能让机器这么学习。
    这里,英伟达高级软件经理李铭博士指出,在使用深度强化学习对机器人进行训练时,有三个主要的障碍。
    第一,真实世界的训练进程太过缓慢,并且成本昂贵。Google 的机器人实验室曾经用三个月的时间拿 14 台机械手臂完成了 30 万次的拾取动作的训练,同时还配备了一整队的工程师「鞍前马后地照料」这些机器人。对其他公司或者普通研究人员而言,这样的成本是完全负担不起的。
    第二,训练的部分非常危险,可能会造成一定程度的损失。机器人在训练时是直接与物理世界交互的,任何的碰撞都可能会导致机体的损伤,甚至可能会对训练的「陪护」人员造成伤害。
    第三,训练环境的搭建非常耗时耗力。以自动驾驶为例,如果要训练汽车在面对前面汽车追尾时的表现,连日常生活中的数据都很难收集,更不要说搭建起类似的场景了。
    NVIDIA 的答案
    在今年台北电脑展的发布会上,英伟达发布了 NVIDIA Isaac 机器人平台,包含硬件、软件和虚拟世界机器人模拟器的 NVIDIA Isaac。
    同样在这场发布会上,黄仁勋还发布了世界首台专为机器人打造的处理器NVIDIA Jetson Xavier,他手托着这台没有巴掌大的计算机,面对媒体说道:“这就是未来智能机器人的大脑。”
    Jetson Xavier 拥有超过 90 亿个晶体管,可提供每秒 30 万亿次操作以上的性能,这一处理能力甚至比高性能的工作站还要强大。同时,Xavier 拥有 6 个高性能处理器,包括 1 个 Volta Tensor Core GPU、1 个 8 核 ARM64 CPU、2 个 NVDLA 深度学习加速器、1 个图像处理器、1 个视觉处理器和 1 个视频处理器。超高的计算能力让可以直接部署在终端机器人上的 Jetson Xavier 能够为机器人的感知和计算提供基础算力的保障。
    软件上,Jetson Xavier 配备了一个工具箱,包含 API 工具包 Isaac SDK、智能机器加速应用 Isaac IMX 以及高度逼真的虚拟仿真环境 Isaac Sim。
    英伟达在 2017 年的 GTC 上首次发布了 Isaac 虚拟仿真环境的部分。只需要普通游戏引擎,开发者们就可以打造出一个非常仿真的虚拟环境,在这个 VR 世界里,开发者可以在其算力支持的条件下,对机器进行尽可能多、尽可能快的训练,训练完成后,机器可以直接部署到机器人上,完成物理世界里的测试。这样一来就解决了训练环境的诸多问题。
    在英伟达看来,机器人终归是要拥有超强的边缘计算能力的,而目前远远超越现阶段机器人应用需求的 Jetson Xavier,正是为了下一代自主机器打造的 AI 计算芯片,在 Isaac 平台的支持下,机器无处不在地助力我们日常生活工作,提高整个社会的效率,终将在不久后成为现实。