中文 英语

优化机器学习的新方法

在机器学习系统中提高性能和降低功耗的不同方法。

受欢迎程度

随着越来越多的设计师机器学习(ML)在他们的系统中,他们正在从简单地让应用程序工作转向优化其实现的功能和性能。目前已有一些技术可用。另一些则需要时间来渗透设计流程和工具,然后才会被主流设计师使用。

任何新技术都遵循一个基本的模式——早期的实现专注于实现一个想法的最基本的体现。我们的目标是“让它工作起来”。只有在这个阶段获得动力之后,重点才会转移到“让它更好地工作”上,在这里,“更好”可以意味着以更快的速度、更低的功率、更高的效率或更低的成本做事——或者是所有这些的某种组合。

对于ML推断神经网络在美国,第一阶段意味着使用已被证明有效的规范网络,并使用监督训练技术用数据集训练它们。这里的竞争优势来自于在竞争之前实施机器学习。虽然许多公司仍然在这个层面上接受ML,但其他公司正在采取下一步行动,不仅在ML算法的存在上竞争,而且在实现的质量上竞争。这包括在边缘而不是在

IP at的战略营销经理罗恩•洛曼(Ron Lowman)表示:“人工智能加速器正试图更接近前沿,如果不是前沿的话。Synopsys对此.“ADAS(高级驾驶辅助系统)正在推动大量的发展。”

在研究实验室之外——甚至在实验室内部——设计人员依赖于一套工具来帮助实现新网络和新技术。在许多情况下,研究人员将致力于那些工具中还没有的想法。这样的想法从学术界的大厅进入主要的设计框架,并从那里到利用这些新想法的实际设计的实际生产。

一些技术反映了可以在各种网络内核的软件中实现的方法。在其他情况下,它们可能受益于支持硬件新技术的训练和推断芯片。“在人工智能领域,硬件和软件必须齐头并进。在某些情况下,编译器本身可能需要增强,”梅根·达加说,抑扬顿挫的他是AI Inference at the Edge的产品管理总监。

只有在有健壮的硬件、工具和框架支持的情况下,才会广泛采用任何相当复杂的新事物。“客户在英伟达硬件上训练他们的模型,”他说Flex Logix首席执行官杰夫·塔特。“如果英伟达不支持,那么客户就不会这么做。”

在这种情况下,推理可以从训练领域日益激烈的竞争中受益。


图1:新技术从研究流向主流应用。资料来源:Bryon Moyer/Semiconductor Engineering

然而,优化实现对于不同的应用程序意味着不同的事情——特别是应用程序将在哪里运行。如果它将在云中运行,那么速度就是主要的衡量标准。虽然电力是数据中心关注的一个问题,但与性能相比,它处于次要地位。相比之下,在边缘——或者离云越远——关键指标就变成了给定能源消耗水平的性能。洛曼说:“服务器芯片将进入(5G)基站。“Netflix正在与isp(互联网服务提供商)进行本地缓存。他们或许能够像5G(基站)那样做一些人工智能方面的工作。关键指标是数据中心的TOPS,其他地方的TOPS/W。”

ML的许多早期应用,如预测分析和语音识别,都驻留在云中,由谷歌和Facebook等巨头实现。面向边缘的应用目前绝大多数集中在视觉应用上。这反映了一个整体系统优化目标,即平衡在边缘和云中完成的工作。虽然云具有更强的计算能力,但数据必须从边缘传输到云,而这是有成本的。在边缘做更多的事情可以减少传输数据的需求,释放带宽并减少决策延迟。视觉应用程序——尤其是视频——会产生大量的数据,所以在边缘做更多的工作可以减少这种负担。

今天的优化
随着设计者们对神经网络越来越熟悉,人们开始转向定制网络。“客户开始从架构的角度思考。他们考虑的不仅仅是网络。”“优化曾经是一切PPA(性能、功率、面积)。现在记忆是主要话题。”

开发通常从一个众所周知的网络开始,但随后随着团队试图对特定应用程序进行改进而发展。对于视觉应用程序,典型的起点是ResNet50网络。但这主要是作为推理硬件的第一步基准测试工具。

“ResNet50数字开启了对话,”Lowman说。“实际上,(客户)远远超出了ResNet50。这有点过时了。”

许多设计师仍然发现,更现代的现成网络足以满足他们的需求。“很多客户对YOLOv3很满意,”Tate说。也就是说,平台和工具供应商越来越多地与希望定制网络的设计人员合作。在选择了硬件平台(或者至少缩小了他们的选择范围)后,他们将采用标准网络并开始改变它。

Flex Logic的推理技术营销经理Vinay Mehta说:“客户可能会改变输入宽度或在层之间重新分配特征深度。

数值精度是边缘推断的基本考虑因素。虽然训练通常使用浮点数,但边缘应用程序可以从整数数学的使用中受益,以减少推理硬件的数量并降低功耗。这涉及到量化权重和激活,这本身并不新鲜。但是旧的实现为整个网络选择了统一的量化精度。今天,一些网络在某些层上的量化精度比其他层更高,以集中在需要的地方的精度,而不是浪费在不需要的地方。

平衡精度与硬件简单性的一种新方法是使用“不对称的量化当训练后将实数量化为整数时,典型的方法是对称方法,给出一个跨越所需动态范围的数字范围(正负),并以0为中心在该范围内。但有些应用程序的正范围可能大于负范围(反之亦然)。通过使用对称量子化,大量的范围被浪费了,没有别的原因,只是为了在范围的中间保持0并简化数学。

可以将量子化到反映正负两侧真实动态范围的范围上,从而在该有用区域内实现更高的精度。“一层一层或一个通道一个通道的量化可能是对称量化或非对称量化的混合,”Daga说。“TensorFlow可以重新训练一个量化的网络,它允许逐层(包括非对称)量化。”非对称量化的代价是计算变得更加复杂。在今年的ISSCC会议上展示的一些实验平台已经包括了处理这种数学的硬件,从而消除了软件算法的复杂性。


图2:对称量化与非对称量化。资料来源:Bryon Moyer/Semiconductor Engineering

另一种减少总体数据量的方法是使用更大的“跨步”卷积神经网络(cnn)。cnn的工作原理是在图像上滑动一个窗口;一个3像素x 3像素的窗口可能是典型的。计算第一个窗口,然后将窗口向右移动一个像素,并执行新的计算。这一直持续到到达图像的右边缘,然后窗口向左移动,但向下移动1个像素。这描述了一个使用步幅为1的设置,因为窗口每次移动1个像素。

一些项目正在尝试更大的项目的进步.步幅为2意味着窗口每次向右移动两个像素。到达图像的右边缘后,窗口向下移动2个像素。这跳过了一半的数据,将体积减少了4倍(水平2倍,垂直2倍)。但是,当然,这是以损失一些精度为代价的,即使“跳过”的像素不会从计算中完全省略,因为它们将出现在剩余计算的窗口中。设计师需要决定精度的任何损失对于他们的应用程序是否可以接受。

“使用步距为2的好处之一是,你可以得到一个额外的周期来进行计算,因为你忽略了从内存中输入的中间数据,”位于美国的高级合成技术专家迈克尔·芬戈夫(Michael Fingeroff)说Mentor是西门子旗下的企业.应该注意的是,目前许多硬件平台都支持大于1的步长,但这似乎不是目前常见的技术。


图3:1和2的水平和垂直步幅。资料来源:Bryon Moyer/Semiconductor Engineering

所有这些实验,随着设计师尝试不同的方法来优化网络,刺激了使用高级合成(HLS)来获取C代码并生成等效的硬件。HLS的圣杯是将不计时的C代码转换为硬件,但是仍然不可能从这样的代码中提取并行性。

“卷积的纯算法描述不包含足够的细节来提取最佳内存架构,”Fingeroff说。相反,可以将一个定时C模型转换为硬件,以便在SystemC测试平台,以便快速模拟新想法,找到最有效的方法。

保持稀疏
与此同时,稀疏性是一个越来越被利用的模型的特征。模型是用矩阵表示的,矩阵乘积涉及数十亿和数万亿的乘法-累加(或积和)操作。矩阵项为零的越多,所需的操作就越少,因为识别零值项的加速器可以跳过这些项的数学运算。它们对产品的总量毫无贡献。此外,“稀疏性有助于压缩运行长度,”Fingeroff说。而不是在整个稀疏矩阵中输入,你可以发送一个向量,告诉它哪些元素是非零的。

他说:“有了权重,你就可以提前知道并预先计算向量。”“通过激活,你可以实时生成这些向量。”激活函数的使用可以促进更大的稀疏性,随着激活在网络中的移动而变得更稀疏。“在更深的网络中,由于像ReLU这样的东西,许多激活将变为零,”Fingeroff说。因为这种稀疏性是在运行时产生的,所以支持稀疏性的硬件不能依赖于预处理。它必须实时做出反应。

Cadence的Daga表示:“我们已经动态地查看激活稀疏性,在加载/存储时决定是否需要进行计算。“下一步是增强稀疏性。”

造成稀疏性的一个不同寻常的因素是来自prophecy的一款新的图像处理器。大多数图像处理器都能与帧频时钟同步生成一整帧的数据,而prophet传感器却不能。因为视频流的连续帧有很大一部分在帧与帧之间保持不变,因此大部分数据可能被认为是浪费的。

《预言》使用了不同的方法。每个像素测量的不是入射光的绝对数量,而是超过某个阈值的光的变化,这个阈值是可以调整的。因此,当达到或超过阈值时,每个像素都会“异步”报告,而不是一帧一帧地输出。虽然它不是严格的异步,但对于等效的“帧速率”为1mhz,计时精度约为1 μs。这意味着,在更传统的架构中,如果发生在帧之间,可能会被忽略的快速事件,现在可以被捕获。数据流仅限于那些已经改变的像素,以及时间戳。“在系统层面,通过减少数据,这可以降低拥有成本,”prophecy创始人兼首席执行官Luca Verre表示。

Leti先进技术和片上系统实验室负责人Alexandre Valentian指出,这样的基于事件的传感器可以很好地与时间编码的spike神经网络一起工作,尽管这些还没有准备好用于商业用途。

成本问题并不是一个微不足道的问题,因为标准光学传感器的产量是巨大的。对于任何新方法,都存在着“先有鸡还是先有蛋”的挑战,在成本下降之前,你无法实现产量。但在实现高产量之前,成本无法下降。

Verre表示:“我们的第一代产品基于标准的CMOS制造工艺,不会带来任何重大的新成本问题。”“应用程序决定的容量是一个因素,但这不是任何芯片供应商所独有的。通过与索尼的合作,我们与一家比任何人都更了解批量定价和消费者市场动态的公司合作。虽然我们正在使用的新的3D堆叠方法更加复杂,但索尼已经在其他大容量应用中使用了它。与市场上其他独联体产品相比,这确保了该解决方案在价格上的竞争力。”

当然,这款芯片并不是为专业摄影或需要数百万像素的应用程序设计的。“这是在任何照明条件下进行实时高速视觉优化。它没有优化来创建图像,尽管这是可能的,”Verre说。“我们谈论的是分辨率不高的感知应用。在工业领域,高清技术是我们的最佳选择。”他指出,当物体在视野中移动时,这种方法尤其有效。

这是一种新的不同的技术,这意味着标准的基于框架的算法必须修改(为此他们正在与合作伙伴合作)。此外,必须修改现有的标记训练数据集,以创建一个适用于这种新方法的集。Verre指出:“(我们)的目的是尽可能直观和无缝地采用基于事件的处理。我们的解决方案中越来越多的部分是软件工具、编程功能和数据集,这将允许设计师试验各种选项,并根据他们的特定需求指导优化设计实施。”

未来优化机会
还有许多其他的优化机会正在探索中,包括在ISSCC上提出的一些机会。尽管ISSCC思想——无论是在优化技术方面,还是在支持这些思想的硬件方面——都需要经过验证,并在它们成为现成可用的框架之前,在更通用的硬件中利用它们是有可能的。

清华大学、Pi2Star科技公司和安徽大学合作的一篇论文通过使用标准的逐帧处理产生了更大的稀疏性,但只评估了第一帧的整个帧。之后,硬件计算前一帧与当前帧之间的差值。就像在预言的情况下,这将生成稀疏得多的矩阵,但处理将不得不改变,因为网络不会直接查看图像。

在许多论文中注意到的另一个优化是深度/点卷积的概念(有时被称为depthwise-separable卷积,或DSC)。这种方法将标准卷积(包括高度、宽度、深度和所需输出通道的数量)分离为两个不同的卷积。第一个只对深度进行操作,将其命名为“depwise”。第二个操作使用大小为1的内核,并将其命名为“pointwise”。

DSC可以大大减少计算次数和参数数量。有一些信息的损失-特别是如果原始框架很小,产生的参数太少,无法有效地训练。但一些实验结果表明,适当的精度是可能的。

“(DSC)占地面积更大,能耗更低。这可能会影响准确性,但可能仍然足够好。”

但在这里,硬件也发挥了作用。“从开发人员的角度来看,DSC提供了一个精简的体系结构,”Daga说。“但目前的硬件架构并没有为此进行优化,”这可能导致传统处理引擎的利用率很低。

随着这些技术和其他技术证明自己的价值,优胜者将进入硬件和框架领域,产品设计将能够更容易地利用它们。

有关的故事
机器学习而且人工智能知识中心
构建推理芯片的挑战
随着人工智能领域的不断发展,人们正在开发不同的推理方法。并不是所有的方法都有效。
数学和工程学在机器学习中的桥梁
如何结合两种截然不同的学科来创建推理芯片。
AI边缘芯片的内存问题
内存中计算变得至关重要,但是在哪个内存中,在哪个进程节点上?



1评论

neptune.ai 说:

嗨!好文章!这很有趣,也很有见地。我们学到了很多。感谢你的工作,感谢你传播机器学习的知识。只是想让你知道,我们在我们的博客neptune.ai/blog上的每周综述中收录了这篇文章。干杯!

留下回复


(注:此名称将公开显示)

Baidu