AI训练正在成为一门独立的生意

  过去10年间,人工智能发展得非常快。但是同人类一样,这些AI也需要经过足够时间的训练,才具备被期待的智能。

  2004年成立的游戏引擎公司Unity希望在这个新领域占据一半以上的市场份额。作为Unity的人工智能与机器学习高级副总裁,Danny Lange认为训练AI 最重要的工作就是为之创造一个足够真实的模拟环境,帮助这些AI在虚拟程序中完成训练,而不是把一台无人驾驶汽车放到真实的马路上去完成自我成长。而且,真实世界并不总是比游戏世界复杂,从技术的角度,这个问题可能是相反的,这也正是游戏引擎为什么可以反过来为在真实世界中行走的AI提供训练的原因之一。

  Yi 游戏引擎为何可以用于工业领域?

  L 游戏有很多种,有些是2D的,但是大部分游戏特别是大型游戏都是3D的。而在3D游戏中,我们面对的其实是一个有各种3D物体、各种作用力的物理世界,并且我们可以与之交互。游戏引擎会用非常快的速度处理显示屏上的像素组成,每当玩家操纵游戏里面的角色,像素会以玩家难以察觉的速度重新绘制,达到每秒30次以上。这种技术在游戏领域应用已久,我们发现,它也可以应用在工业领域,尤其是机器人领域。有一个概念叫“数字孪生”,我们可以为测试环境开发一个“数字孪生”,在虚拟的仿真环境中测试机器人程序,用近乎实时的方式控制和操作仿真环境中的机器人。这一切都在Unity的游戏引擎中进行,因为游戏引擎对3D环境的处理已经非常成熟了。通过虚拟环境去测试机器人,既安全又经济。因为在现实世界中测试机器人,需要冒着损伤贵重硬件的风险,但是在3D仿真环境中,这样的风险可以被规避。而且在仿真环境中可以测试机器人几千几万次,甚至能用人工智能技术训练机器人,成本远低于在现实中训练机器人。

  Yi 在创造一个数字孪生环境的时候,人工智能可以做什么呢?

  L 每18个月,我们用于训练AI的数据量就会翻一番。这些数据对于模型的训练非常有利,模型越来越大,也越来越智能。我们会使用深度学习这样的技术来创造更多的可能性。比如,在现实物理世界中,我们面临的一个重要挑战就是收集训练数据非常困难,这种困难主要体现在两个方面:一是收集得非常慢;二是数据量有限。因此,我们使用合成数据来训练 AI。在游戏引擎中,我们可以生成大量的合成数据,并且可以同时运行非常多的测试,比如说同时运行1 万个测试,来快速获取合成数据,用于训练AI。这在真实的物理世界中不可能实现。

  游戏是想象的世界,机器人或者是汽车需要面对的是真实世界,模拟真实世界所需要的数据维度是否更加复杂?

  L 首先,实时3D技术在游戏中的应用和在工业中虽然核心技术相同,但也有很多不同之处。比如,工业领域对于精准度的要求要高得多,对于各种物理作用力,我们要模拟得更为精准,但同时它也不像游戏那样要求画面精美。在工业世界,准确更为重要。其次,从收集数据的角度来说,现实世界的数据和合成数据之间确实存在差异。为了让合成数据尽量准确,我们会快速生成大量的合成数据,并且在合成数据中尽可能地引入非常多的变量,比如颜色、光照、行为等等,从而让合成数据获得足够的样本来随机化,尽可能地捕捉到所有现实世界中可能存在的情况。在现实世界中如果想要收集这样体量的数据,可能要花几年时间。然而通过人工合成同等量的训练数据,仅需要几分钟。

  Yi 具体到训练一个流水线上的机器人,你们会怎么 做?

  Unity的实时3D技术最初主要用于游戏开发,近几年被广泛应用于汽车、制造、工程建设等工业领域。单就工业领域来说,机器人在工业领域中已经存在了很多年,现在,它们的应用场景更广阔、也更灵活了。以前,机器人都是待在一个特定的位置,在一个有限的空间中按照既定程序来运行。但现在很多公司会让机器人和人类协作,于是就有了Cobot(协作机器人)的说法。这些机器人需要从人手上拿过某些物体,或者以其他方式与人类协作。在仿真环境中,我们会引入与人类似的一些代理(Agent),也可以将其称作“类人动物”(Humannoid)。我们训练机器人与 Humannoid之间的互动,这样机器人就能在大量数据的训练下,学会如何才不会撞到人,如何和人之间来更好地传递物体。通过合成数据,我们可以快速产生大量打过标记的图像,来高效地训练计算机视觉系统。试想在城市环境中训练AI去开车,有非常多复杂因素需要处理。在工业场合下训练机器人,和对AI无人驾驶技术的训练有相通之处。

  Yi 模仿工业流水线、汽车驾驶环境、建筑等不同场景时,需要面对的复杂度有何不同?可以模仿人体环境吗?

  L 几天前,有人问我,我们可不可以使用Unity来模拟人的心脏,包括心脏跳动的状况,以及周围相关肌肉运动的情况。简单地回答,当前我们还做不到。Unity 的强项在于模拟一些刚性结构,包括机械手臂以及可移动的机器人。我们可以在结构以及力学方面实现非常好的模拟结果。人类器官—比如心脏有非常多复杂因素,包括软组织、血液流动等等,当前还没有办法实现非常好的模拟,但在将来或许可以成为现 实。模拟其他领域,比如机器人、无人机、汽车以及工厂环境等,不同行业面临的挑战有所不同。当机场、航站楼需要一个数字孪生的时候,我们可以模拟机场、跑道、模拟飞机滑行的状况,以及整个机场的运维管理,包括空管等很多动态因素,很适合用Unity来做。另外包括工厂生产线数字孪生、自动驾驶汽车学习环境,所有的汽车厂商都在使用游戏引擎训练他们的模型和算法。之前我在Uber工作,在无人驾驶汽车的训练过程中,需要考虑很多不同的动态因素,包括刹车距离、街上的交通状况、突然出现在车前的行人等等,都需要去综合考虑。我们要通过“几百万公里”的模拟训练,才能将算法放到车上。

  Yi 游戏世界和真实世界哪个更复杂?这种不同对技术意味着什么?

  游戏世界比真实世界更复杂。因为在虚拟世界里,我们有更多的自由,能做的事情更多,不像在现实世界我们面临非常多的制约因素。举个例子,我们训练 AI的时候,和我们训练人或者动物一样是需要花时间反复训练它的,在虚拟世界训练AI我们可以借助大量云端算力以超高速完成,仿佛我们可以将时间加速。但是在现实世界,我们无法加速时间。

  另外,训练AI的时候我们也经常用到强化学习。强化学习可以理解为是一个缓慢的进化过程。系统从最开始比较低的水平,一点一点进步,最后变得非常好。在这个过程中,我们可以在任何一个时间点,将当前的学习状态保存在硬盘上,而未来我们可以回到状态中,选择其中一个时间点,再朝不同的另外一个方向去发展、训练。在现实中,我们无法扭转时间的走向,但是在虚拟世界可以。因此,虚拟世界中的很多事情在现实世界中没有办法做。通过虚拟世界,我们可以将更多的场景、可能性复现出来,从而帮助我们在现实世界中的决策。

关注读览天下微信, 100万篇深度好文, 等你来看……