在机器学习赛道,入局迟的Arm为何跑在了前面?


    Arm在整个机器学习和人工智能的潮流中可能有点晚了,至少在现代芯片的专门设计中是这样的。但就部署在最广泛设备上的人工智能和机器学习芯片的数量而言,这一芯片知识产权的设计者击败了所有人。
    Arm的客户,包括竞争对手英特尔和英伟达,它们也正忙着在各处部署人工智能技术。该公司还创造了特定的机器学习指令和其他技术,以确保人工智能被嵌入几乎所有电子产品,而不仅仅是进入服务器的高端设备。
    在服务器的层面上,像亚马逊这样的客户正在将基于Arm的机器学习芯片引入其数据中心。最近,Arm机器学习小组副主席Steve Roddy在媒体活动上与外媒进行了沟通。
    以下是采访内容:
    Q:你对机器学习的关注点是什么?
    Steve Roddy:我们瞄准的是高端消费者,这显然是首选。Arm以什么出名?手机处理器。所以专用NPU(神经处理单元)的概念首次出现在高端手机上。现在,苹果、三星、MediaTech、华为和高通都在设计自己的产品。这在一部1000美元的手机里很常见。
    我们推出的是一系列处理器,不仅服务于这个市场,也服务于主流市场和低端市场。我们最初的设想是,我们进入这个市场,为人们制造VR眼镜、智能手机,以及那些你更关心性能而不是成本平衡的地方。历史经验表明,功能设置出现在高端手机上,需要几年时间,然后转移到主流的400-500美元的手机上,然后几年之后,最终出现在更便宜的手机上。
    我认为,最有趣的是,整个NPU机器学习的进展速度飞快,但原因不同。例如,过去800万像素的传感器从这里开始,然后当它足够便宜的时候,它会到另一个地方,然后当它更便宜的时候,它又会转移。不仅仅是组件成本下降并集成到其中,而是被其他东西所取代。机器学习算法可以用来做出不同的或更聪明的决策,来决定系统是如何集成和组合在一起以不同的方式增加价值,或者以不同的方式减少成本。
    Q:你描述了神经网络如何找出做某事的方法,然后你会剔除那些实际上不必要的东西。你最终会得到一个更高效或更小的东西,它可以嵌入到微控制器中。
    Roddy: 那是一个新兴的领域。退一步说,机器学习实际上有两个组成部分。算法的创建,学习,或者训练,就像它所说的,几乎只发生在云中。对我来说,我想开玩笑地说,大多数从业者都会同意,这是一个拥有一百万台打字机的百万只猴子。其中一个写莎士比亚十四行诗。训练过程就是这样的。
    事实上,谷歌是明确的。谷歌现在有一个叫做AutoML的东西。假设你有一个从某个开源存储库中挑选的算法,它非常适合你的任务。它是一些你只需要稍微调整了一下的图像识别的东西。你可以将其加载到谷歌的云服务中。他们这样做,显然是因为它以计算服务的方式运行计量器。但基本上是你想付多少钱的问题。
    他们将随机尝试创建神经网络的不同变体。这里有更多的过滤器,那里有更多的层级,反向操作,不按顺序执行,然后重新运行训练集。这个现在可以实现1%左右的准确率。这只是你想花多少钱的问题。在这一百万只猴子,一百万台打字机的操作下,计算需要1000美元还是10000美元?请注意,我发现了一个在面部识别,语音识别,或者其他任何方面都比它精确2%的方法。
    把这些都放在一边。这就是神经网络的发展。这种部署称为推理。现在我想对我想要识别的物体进行一次特定的推理。我想在车上运行它,在人行横道上认出老奶奶,或者诸如此类的。Arm显然专注于它所部署的大量硅市场,无论是边缘市场还是终端市场。
    例如,你在会议中心的墙上安装了一堆传感器,灯熄灭了,里面充满了烟雾,因为它着火了。你可以用传感器识别火灾,激活,并在地板上寻找尸体。他们可以向消防部门发出求救信号。“人在这里”;“不要去这个房间,那里没有人”;“去这个房间”。这是一件很酷的事情。但你希望它超级高效。你不想让整个会议中心重新布线。你只需要把这个电池驱动的东西贴起来,并期待它能运行三六个月。每隔六个月,你可以更换传感器的安全系统。
    这是一个利用数学家创造的抽象模型并将其简化以适应约束设备的问题。这是未来最大的挑战之一。我们有自己的处理器,它们很擅长在终端设备上实现高效的神经网络。从一过程来自于数学家,他们正在构思新型的神经网络并理解其中的数学原理,然后把它连接到较低层次的程序员那里,他是一个嵌入式系统的程序员——那里有一个巨大的技能缺口。
    如果你是一个24岁的数学奇才,刚拿到本科数学学位和数据科学研究生学位,从斯坦福大学毕业,大的互联网公司会在你的宿舍外为你提供了一份工作。实际上你是在神经网络及其背后的数学方面很出色,但你在嵌入式软件编程方面没有任何技能。那位嵌入式软件工程师,负责组装CPU、GPU和ARM NPU,将操作系统放在芯片上,做驱动程序和低级固件,他说:“嘿,这是一段代码,里面有一个神经网络。确保它运行在这个有2兆内存和200MHz CPU的受限小设备上。让它发挥作用。”
    负责嵌入的人会说,“我不知道这个神经网络是干什么的。它需要的计算量是我的10倍。我可以扔掉的90%是多少?我怎么知道?”高层级的那个人,那个数学家,对约束装置一无所知。他研究数学,大脑的模型。他不懂嵌入式编程。大多数公司不会同时拥有两个人。很少有高度整合的公司会让所有人聚在一个房间里进行交谈。
    经常会有这样的言论,你说你是数学家,我是嵌入式软件工程师。我们必须有保密协议才能进行对话。你愿意授权模型输出,但你不会放弃你的源数据集,你的训练数据集,因为那是你的宝藏。这就是价值所在。你给我一个训练有素的模型,可以识别人行横道上的猫、人或祖母,很好,但你不会透露细节。你不会告诉我发生了什么。这里我要解释的是,这怎么不适合我的约束系统。你能为我做什么?
    你不是嵌入式程序员。我不是数学家。我们该怎么办?这是我们投资的领域,其他人也在投资。随着时间的推移,在未来这将是一个神奇的领域。这有助于关闭它之间的循环。这不是一个单向的事情,你给我一个算法,我不断地破解它,直到我使它适合。你给我的是99%的正确率,但我只能实现82%的正确率,因为我需要花费大量的计算来适应它。这总比什么都没有好,但我真的希望我能回到过去,重新训练,并有一个无止境的循环,在那里我们可以以更好的方式合作。把它看作是约束和理想之间的协作。
    Q:我想知道这里听起来熟悉的部分是相同的还是非常不同的,但是Dipti Vachani谈论了汽车联盟,以及每个人将如何在自动驾驶汽车上合作,从原型到生产。她说我们不能在这些车里装超级计算机。我们必须把它们降低到更小、更便宜的设备上,这些设备可以投入生产。你说的有什么相似之处吗?超级计算机已经找出了这些算法,现在需要把它们降低到实际水平。
    Roddy:当数学家创建这些神经网络时,他们通常使用浮点运算。他们是在一个抽象的无限精度和本质上无限的计算能力。如果你想要更多的计算能力,你需要启动更多的刀片服务器,启动整个数据中心。你在乎什么?如果你愿意写支票到亚马逊或谷歌,你可以这样做。
    Q:但你不能把数据中心放在车里。
    Roddy:没错,一旦我有了算法的形状,它就变成了一个问题。你会听到像量化、聚类这样的术语。如何减少复杂度,删去那些实际上并不重要的部分呢?你的大脑中有很多神经连接(这是在模仿大脑),但其中一半是垃圾。他们中有一半在真正的事。有很强的连接可以传递信息,也有很弱的连接可以修剪掉。如果你失去了一半的脑细胞,你仍然可以认出你的伴侣或配偶。训练过的神经网络也是如此。它们在想象的神经元之间有很多联系。你可以去掉其中的大部分,你仍然可以得到相当好的准确度。
    Q:但是你会担心你丢掉的东西在某些情况下可以用来防止车祸。
    Roddy: 这是一个测试用例。如果我去掉一半的计算,会发生什么?这就是所谓的再培训。再培训,或者更重要的是要记住目标。不是假设数据中心或超级计算机的无限容量,而是假设我的计算能力有限。
    汽车行业就是一个很好的例子。假设10年后你是XYZ德国部件公司行人安全系统的实验室主任。你的算法运行在最新和最好的雷克萨斯和奔驰汽车上。它们每个都有价值5000美元的计算硬件。你的算法也运行在一辆9年历史的中国轿车上,而这款车恰好是你的第一代系统。
    你的一位科学家提出了最好的新算法。它的准确率提高了5%。不管怎样,奔驰车的精确度要高5%,但你有义务将其提供给另一个人(事实上,你可能有一份合同,要求你每季度更新一次)。更糟糕的是,现在我们有来自10家汽车公司的17个平台。你如何把这个新的数学发明应用到所有这些地方?必须有一些结构化的自动化。这是汽车联盟在一个封闭领域所做努力的一部分。
    我们正在开发的技术是围绕“我们如何建立这些桥梁?”例如,你怎么把一个模型放入开发人员使用的训练集(TensorFlows或者Caffes)。这让他们可以说,“好吧,与其假设我是在云中进行推理,不如假设我是在一个智能门铃的2美元微控制器上运行?”为这个而训练,而不是为抽象而训练。这可以建立很多基础设施。
    不管好坏,它必须跨越行业。你必须在Facebook的数据科学家、XYZ半导体的芯片制造者、匣子制造商和软件算法人员之间建立起桥梁,这些人都在试图一起对其进行内部升级。
    Q:联盟中可能有像英伟达这样的竞争对手。你如何把这个保持在比竞争对手更高的水平上?
    Roddy:英伟达做的事,对我来说,他们是顾客。他们在卖芯片。
    事实上,英特尔从Arm那里买了很多东西。在架构上,英伟达是一个很好的例子。他们有自己的NPU。他们称之为NVDLA。他们知道在云中训练,是的,是GPU。那是他们的堡垒。但当他们谈到边缘设备时,他们甚至说不是每个人都能在口袋里装上50瓦的GPU。他们有他们自己的版本,我们在这里谈到的MPU是以不同大小的整数运算的定点来实现。从4平方毫米到1平方毫米的硅。这东西的功率不到一瓦特。这比高性能的GPU要好得多。
    如果你口袋里有一部相对现代的手机,你就有了NPU。如果你在过去几年里买了一部800美元的手机,它会有NPU。苹果有一个。三星有一个。华为有几代都有。他们都做了自己的事。我们预计,随着时间的推移,这些公司中的大多数将不会继续开发自己的硬件。神经网络基本上只是一个巨大的数字信号处理滤波器。例如,在一幅大图像中有一组庞大的系数。我的图像分类器可能有1600万个系数,我有400万像素的图像。那只是一个巨大的乘法运算。它是多重累积的。这就是为什么我们要讨论CPU的乘法累加性能。这就是为什么我们建造这些NPU,除了倍增积累什么也不做。这是一个巨大的过滤器。
    现实是,要在8×8的乘法上进行创新,你能做的只有这么多。基本的构建块就是它本身。这是系统设计。在我们的设计中有很多关于最小化数据移动的东西。它在块级和系统级的数据移动方面很聪明。我不希望10年后,每个手机厂商和汽车厂商都有自己的专用NPU。这没有道理。软件和算法需要专用。架构也需要专用。但是构建块引擎可能会得到许可,就像CPU和GPU 一样。
    没有什么能保证我们会赢。我们希望如此。因为总有人要实现。可能会有一些非常好的供应商为NPU提供许可,并且大多数专利产品将会消失。我们希望我们是赢家之一。我们喜欢认为我们有足够的资金去投资去赢得胜利,即使我们的第一批产品没有在市场上取得胜利。但有迹象表明它实际上相当不错。我们预计这会在5到10年内发生。在系统级,有太多的系统设计选择和系统软件选择。这是关键的不同点。
    Q:那么,在你将要竞争的关卡上,你会觉得Arm正在追赶你吗?或者你会对此提出异议吗?
    Roddy:这取决于你看的是什么,你的印象是什么。如果你坐下来说,“现在:此时此刻AI在世界上运行了多少,它在哪里运行?”Arm无疑是赢家。绝大多数人工智能算法实际上并不需要专用的NPU。机器学习一直延伸到类似你手机上智慧文本输入法这样的东西。你的手机可能已经启用了“ok谷歌”或“你好Siri”。这是机器学习。它可能不在GPU或NPU上运行。它可能只是运行在M级内核上。
    如果你看看市场上的手机,有多少智能手机?可能是40亿到50亿?其中大约15-20%的手机有NPU。这是最后三代苹果手机,最后两到三代三星手机。就大概说有5亿吧。慷慨地说,可能是十亿。但每个人都有Facebook。每个人都有谷歌的预测文本。每个人都有语音助手。这是一个神经网络,它和其他系统一起在CPU上运行。没有别的选择。
    如果你快速浏览一下,看看大部分推论在哪里运行,你会发现它们在CPU上,并且大部分在ARM上。即使在云中,当您讨论推理在何处运行时(不是训练,而是部署),绝大多数推理都在CPU上运行。很明显,大部分是Intel的CPU,但是如果你使用亚马逊的话,就有ARM的服务器。
    金融界最经典的是什么?我想有购物中心的卫星照片分析,这样我可以看到Home Depot的交通模式,知道我应该做空还是做多Home Depot的股票。人们真的会这么做。你需要一堆卫星图像来训练。你还需要财务报告。你有所有家庭仓库或JC Penny的所有交通图片,你把它们和过去15年的季度结果联系起来,这样你就建立了一个神经网络。现在我们认为我们有了一个将交通模式与财务结果关联起来的模型。让我们来看看过去三天卫星在北美所有家庭仓库的现场拍摄,并对他们的收入做出预测。
    那个实际的预测,那个推断,是在CPU上运行的。可能需要几周的GPU训练来建立模型,但我有1000张照片。每一个推论都需要半秒钟。你不需要为此启动一堆GPU。运行它之后,20分钟就可以完成。你已经做了你的预测。事实上,我们是神经网络的主要实现者。但说到对这么有魅力的NPU的看法的话,我们现在的市场上还没有这样的产品。因此,我们落后了。
    但不可否认的是,我们现在只是在设计层面介绍我们的NPU家族。我们有三个NPU。我们已经给它们以授权。它们在我们客户的手中。他们正在做设计。今年你不会看到硅。也许明年晚些时候。没有人等着我发表声明。整个行业还要再过十年才能稳定下来。华为有自己的产品。苹果有自己的产品。三星有自己的产品。高通有自己的产品。英伟达有自己的产品。每个都有自己的。他们真的需要每年投资100个人的人力在硬件上来生产8位乘法器吗?答案可能是否定的。
    Q:我记得苹果公司在他们的活动中介绍了他们最新的芯片。他们说,机器学习比以前强大了6倍。对芯片这部分的投资是有意义的。这是可以给你带来很多好处的部分。当你在手机和其他强大的设备上看到这些更大的系统芯片时,你是否期望这部分会被放大到原来的两倍甚至三倍?
    Roddy:有些是,有些不是。我们看到机器学习功能以多种不同的方式扩散。一个意料之外的方式是,它是如何比历史可能预测的更快地进入低成本设备的。屏幕尺寸和相机尺寸过去常常以固定的速度从高端到中档再到低端一代代地下降。我们已经看到了一个更快速的扩展,因为你可以用NPU做一些有趣的事情,在某种程度上可以让你在系统的其他地方降低成本,或者启用与系统其他部分不同的功能。
    低成本手机中一个很好的例子是人脸解锁。人脸解锁通常是一个低功耗、低分辨率的摄像头,必须从你的脸上辨别出我的脸。这就是它所需要做的一切。如果你是个十几岁的孩子,你的朋友就不能打开你的手机开始发送有趣的短信。它通常只在CPU上的软件中运行,通常是ARM CPU。不管是1000美元的手机还是100美元的手机,这都足以解锁手机。
    但现在,你想把这款售价100美元的手机,变成发展中国家那些没有银行账户的人的代理银行服务。你不希望通过这个糟糕的相机快速自拍来决定谁在进行金融交易。你需要更精确的面部3D映射。你可能需要同时进行虹膜扫描。如果你能在应用处理器的基础上再增加一个20、30、40美分的小的专用NPU来实现这一点,它只会被用来做实际的详细的面部分析,这大概就是我们想要的NPU家族中最小的尺寸。
    突然之间,对于100美元的手机,安装一个专用的NPU是有意义的,因为它使手机成为一个安全的银行设备。这不是为了让自拍看起来更好。一个买100美元手机的人不愿意为了让自拍看起来更好而花钱。但是银行公司愿意资助这款手机来获得交易流,当然,前提是他们能从发生在孟加拉国或其他地方的每一笔80美分的微交易中获得一分钱。我们现在看到的功能,一开始是出于虚荣心,例如让Snapchat滤镜更漂亮,让我的自拍看起来年轻20岁,但现在你可以用它来做不同的事情。
    Q:你认为机器学习占硅预算的百分比应该是多少?
    Roddy:这取决于应用程序。有一些产品类别是人们愿意投入的。如今最完美的状态是什么?人们把10或12万亿次计算放入手机。我们要做的一件事是查看各种类型的功能,计算工作量是多少?其中多少是神经网络部分,多少是其他形式的计算?
    比如语音处理。M级CPU上运行。你不需要它能做到“OK Google”和“Hello Siri”。你需要去另一端看一个类似绿屏的东西,我会用我的自拍说,“看我!我在海滩上!”虽然我实际上在一个沉闷的会议室里,但它把我剪辑了出来,把我放在海滩上。尽管我在看球赛,但是“嗨,亲爱的,我还在办公室”。那需要巨大的马力来实现。
    但如果你受到Instagram的影响,然后你自然会花1200美元买最新款的手机,因为你会想要最酷的视频。但如果在手机里装一个具备每秒20万亿次计算的NPU只要多花5美元,为什么不呢?它这么酷。它是由两端驱动的。你可以做些很好的事情。