中文 英语

架桥机器学习的鸿沟

为什么需要新的方法将训练和推理结合起来。

受欢迎程度

有一个越来越分裂在那些研究之间机器学习(ml)在云中,试图使用有限资源和电力预算进行推理的人。

研究人员正在使用现有的最具成本效益的硬件,即充满浮点运算单元的gpu。但这对于嵌入式推理来说是一种站不住脚的解决方案,比如权力更重要的是。半导体行业使用更量身定制的硬件结构和映射技术来弥合,可以在基于云的学习结构和可以部署在自动车辆中的那些之间的映射技术,IOT.设备和消费品。

虽然该行业相当成功地使用映射技术,但需要将更多的推理对算法开发带来更推理的影响,以确保差距不扩大宽大。“更深入的网络,更胖的层次将需要更多的计算周期,更多的内存带宽和更多的内存容量和训练和运行推断,”Babblabs的首席执行官说。“对于任何给定的问题可能的网络架构的空间是巨大的,因此人们需要努力开发较小,更少的计算密集型的低数据分辨率网络,或者几乎与早期的网络一样。”

进入最终应用的见解对于了解这种情况足够多的准确性以及需要多少吞吐量至关重要。目标是建立一个能够强大的网络,足以解决手头的问题。“从映射的角度来看,权衡与准确性而不是吞吐量相关,”嵌入式视觉处理器的产品营销经理Gordon Cooper说Synopsys对此。“所有的研究才能直到9或12个月前似乎专注于提高准确性,现在是如何获得如何获得相同的准确性与计算较少。”


图1:英特尔深度学习SDK工作流程。来源:英特尔/ Codemotion

映射
云学习并非完全无视嵌入式推理的需要。Rowen说:“像Caffe、Tensorflow和Khronos神经网络交换格式这样的标准在实现经过一系列系统训练的系统的推理高度优化实现方面走了很长的路。”“这对于开辟一条道路,在电话、汽车、相机和其他物联网设备中开发优化的大容量推理引擎非常有价值。这种更高级别的健壮接口集合打破了指令集兼容性作为交换标准的限制,允许随着推理执行硬件的发展而进行更高级别的重新优化。”

训练练习的结果是浮点模型。“你可以做很多优化,”总裁兼首席执行官说奥克森解决方案。“有一些公司在考虑做深度神经网络优化,你首先尝试降低网络的精度。你去到固定点,或者甚至二进制权值和激活,虽然这对学习不起作用,但它对推理很有效。这一优化步骤的结果是减少了网络的规模,可能减少了一些具有不重要权值的边,使其更稀疏,并降低了精度。然后再对训练数据或测试数据进行模拟,以检查其准确性是否仍然可以接受。”

网络中的许多系数最终都是零或非常接近零。“神经网络设计者正在仔细研究如何最好地利用许多神经网络中的稀疏系数集,”Rowen补充道。“网络开发人员和架构师正在努力利用这一趋势,他们的计算架构在不规则稀疏集上运行得特别好。他们实际上完全跳过了零乘法,或者那些利用智能训练来减少稀疏性和计算总量的集合,将其压缩为更小的集合,或具有更结构化稀疏性的集合,即零主要出现在数据集的行、列和平面上。”

用零可以做很多事情。Brinkmann补充说:“零权值意味着你可以从网络中移除所有的边,因为没有任何东西可以传播,所以MAC节点上的输入更少。”“然后是零激活,这不是静态确定的,取决于数据。有时候,节点不会被激活,你可以在运行某个架构时尝试动态优化它。”

流动中的一个问题是确认。“从验证的角度来看,量化是困难的,”Brinkmann继续说。“有一种叫做量化感知训练的新技术,你可以把它考虑到训练阶段。通过这种方式,您可以提供一些关于系统对这类问题的易感性的数字答案。这是一种统计的工作方式。ML是统计的,为了验证,我们可能不得不使用一些统计方法。正式验证可能发挥作用,并且可以通过静态分析与统计数据结合进行静态分析。它不是确定性的。“

定制,FPGA或处理器
可能的实现架构的范围与任何硬件相同,并且从通用处理器扩展到完整的自定义硬件。存在与每个相关的权衡,最终产品要求可以定义其中哪一个是可接受的。

当以处理器为目标时,工具可以完成大部分工作。“来自培训环境的输出可以从32位浮点系数转换,并使用12位或8位分辨率映射到我们的硬件,”Synopsys的Cooper说。“理论上应该是这样,按动按钮。实际上,这是一个持续的软件维护问题,因为它是一个不断移动的目标。我们支持Caffe的每一个图表,直到有人提出一个新的图表。渐渐地,客户可能有一个自定义层,然后一些映射必须手工完成。它几乎不可能完全按下按钮,但我们的目标是限制所需的触摸量。”

图书馆还有助于生产最佳代码。“如果您的网络包含3x3卷积,则为Tensilica Vision DSP产品系列产品营销总监Pulin Desai的大多数常见功能,我们开发了一个软件库。”节奏。“编译器会调用这些函数,然后我们用C代码生成一个工作空间,为处理器高度优化。”

有时您需要更有效的解决方案。“它是类固醇的图像处理,使其成为一个很好的适合高水平的合成(HLS),”Calypto系统部门的市场总监Ellie Burns说门托,西门子的一家企业。“推理需要低功耗、低延迟、高性能和高吞吐量。这是硬件。因为HLS是在C中,你可以保留所有的模型,你可以重新测试,你可以确保浮点数和整数转换是好的。这是一个完美的匹配,开发环境保持不变。内存需求是巨大的,这带来了一些有趣的挑战。”

这里也有一些重要的权衡。Mentor公司Calypto系统部门的高级合成技术专家Mike Fingeroff解释说:“如果你选择一个给定的网络,并开始研究其拓扑结构,硬件就必须改变,除非你有一个通用加速器。”“一种方法是FPGA要用作数据加速引擎,这可以为任何网络层拓扑重用到某个最大值。您可以在Tensorflow或Caffe中进行实验,并更改拓扑,删除层或修剪系数。问题是它不是高性能系统 - 特别是对于汽车应用,您可以在那里进行高帧速率和许多图像数据来处理。如果您在网络和架构上定居,那么您可以重新培训。它只是意味着您的权重已更改,您可以将这些重新加载到中记忆。但是你不能对一个网络做剧烈的改变,然后应用到一个固定的架构上。使用FPGA,你可以重新架构以匹配新的实现。”

FPGA也是自然选择?“你可以使用FPGA获得巨大的加速,但矩阵乘以始终是内存访问时间限制,”导师嵌入式系统部门的高级研究总监Randy Allen指出。“你正在以记忆速度而不是CPU速度运行。此外,您还有很多方法可以将矩阵乘以到FPGA上,并弄清楚正确的是,没有人知道的。“

体系结构权衡
一个重要的架构决策是数据宽度。“对于推理来说,8位在大多数情况下已经足够好了,在某些情况下16位也足够好了,”Desai说。“我们已经建立了一个优化卷积的架构。其他类型的网络可以运行在它上面,但这是重点。这需要在一个周期内使用大量的mac。该块可以在一个周期内执行1024个8位mac。然后还有其他块,如DMA,从外部内存引入数据,以帮助流量管理。”

这是一种方法。还有其他人。“我们的CNNS使用12位乘数,”Synopsys'Cooper说。“这是因为12位乘法器是16位乘法器的一半大小作为硬件块。我们相信我们可以在12位固定点中获得任何32位FP,并实现相同的准确度。还有新的量化技术开发,谷歌积极推广8位。我们可以支持它,它可以节省带宽和电源,因为您不必转到外部DDR。8位固定点似乎现在是事情的地方,但有文件在未来可能会谈到4,2甚至1位。“

EDA行业在这方面有丰富的经验,曾经处理过非常类似的DSP系统映射问题。Mentor的Fingeroff指出:“高层次的合成流程通常始于浮点算法。”“然后你量化这个算法,然后考虑像信噪比(SNR)这样的东西。当你从一个训练过的FP模型中去量化系数是一样的。当您通过推理引擎运行图像时,您看到的是匹配率的百分比。研究表明,8位及以下的数据非常可靠。”

无处不在的培训
机器学习有三种方法。Brinkmann指出:“分类和回归是目前使用的两种方法。”“将对建筑产生重大影响的是第三种技术——强化学习。通过分类和回归,您可以将学习阶段和推断阶段分开。你可以在云中进行训练,在边缘进行推理。通过强化学习,你想把它应用到实际中,你需要在飞行中学习。这意味着你可能需要做一些边缘训练。”

今天,在汽车中,图像识别系统要么正确要么错误。“CNN只是告诉你一个物体在哪里,但除此之外的任何东西都不是CNN内置的,”库珀解释道。“这就是使用信息的系统所扮演的角色。除非它有一个冗余系统,否则它怎么知道它不能正确地识别某些东西呢?部署的引擎和训练一样好。视觉障碍总是会提供一个是或不是的答案,所以也许必须在更高层次上有某种东西来跟踪错误。”

自我修正的网络产生了一系列新的问题。Brinkmann补充道:“数据定义了你的功能,这与关键应用的工程方法不同。”“如果数据不具有代表性或不包含正确的情况,那么您的网络将在现场失败。数据欺骗可能存在问题。想想自动驾驶。他们现在在云中进行培训,并将结果进行部署。汽车收集数据,然后将数据传输回云端,对网络进行再训练,然后再重复。验证成为连续的。当您设计系统时,它不再是一次性的活动。你必须注意数据的完整性,以确保没有人破坏数据或对数据产生偏见。”

如果在飞行中进行再次执行刷新,则会使这个问题更糟糕,但这似乎是最终需要的方向。“机器学习已经达到了技术进步使机器变得更聪明的倾斜点,”格子半导体营销高级总监Deepak Boppana说。“我们只采样了未来的机器可以做的事情。展望未来,我们看到继续关注边缘的低功耗推理,以使可以在超低延迟执行机器学习的更智能的系统。我们还看到不断使用不需要标记的培训数据的无监督学习技术的使用。“

如果分发学习,谁拥有数据?“安全,网络模型的加密和保护是一个有趣的问题,我们可能在不久的将来看到的东西,“在想象力技术的Vision&Ai产品经理加入Francisco Socal,产品经理”。“网络模型正在涌现为知识产权,可以期望看到开发人员对部署到多个边缘设备的开发人员而没有严格的保护机制。”

预测这个行业的发展方向是一项不可能完成的任务。Rowen说:“我们可以预见这个领域将会有显著的发展。”“理论上,当今流行的神经网络结构并不是最优的。对于如此多不同的任务,它们只是比已知的替代方案更有效。因此,我们可以合理地期待新的算法原则、新的网络结构、新的训练方法和使网络适应应用程序核心的新方法的不断发明。”

至于分裂?门拓的艾伦总结道:“算法和实施者之间肯定存在差异。“考虑到你必须采用gpu类型的架构,人们只是将其呈现出来,而不是专注于优化。这确实是一个软件问题,到目前为止人们并没有关注于优化。”

相关案例
机器学习的越来越大
在机器学习领域,行业是否正朝着另一个硬件/软件领域发展?双方都有不同的目标。
EDA挑战机器学习
除了缺乏培训数据外,EDA中的许多任务可能是机器学习的完美目标。有什么可能改变以解决这个问题?
深度学习传播
更好的工具,更加计算的功率和更高效的算法正在将此技术推入主流。
机器学习在EDA中的应用
这种方法可以使设计更好,更便宜,但它需要大量的工作和更多的数据共享。
机器学习与集成电路设计的结合
有多个层,机器学习可以帮助创建半导体,但到达那里的其他应用领域没有那么简单。
CCIX使机器学习成为可能
系统的平凡方面可以制造或打破解决方案,并且接口通常定义可能的内容。
机器学习人气增长
经过二十几十年的实验,半导体行业正在加争夺这种方法。