快速机器学习应用于科学
三个要点
✔️ 加速使用机器学习进行科学研究,同时要求高吞吐量和低延迟的算法
✔️ 审查新兴的ML算法以及最新的硬件/软件
✔️ 在我们尝试将ML技术应用于科学问题时,进一步的ML技术将继续得到加强
Applications and Techniques for Fast Machine Learning in Science
written by Allison McCarn Deiana (coordinator), Nhan Tran (coordinator), Joshua Agar, Michaela Blott, Giuseppe Di Guglielmo, Javier Duarte, Philip Harris, Scott Hauck, Mia Liu, Mark S. Neubauer, Jennifer Ngadiuba, Seda Ogrenci-Memik, Maurizio Pierini, Thea Aarrestad, Steffen Bahr, Jurgen Becker, Anne-Sophie Berthold, Richard J. Bonventre, Tomas E. Muller Bravo, Markus Diefenthaler, Zhen Dong, Nick Fritzsche, Amir Gholami, Ekaterina Govorkova, Kyle J Hazelwood, Christian Herwig, Babar Khan, Sehoon Kim, Thomas Klijnsma, Yaling Liu, Kin Ho Lo, Tri Nguyen, Gianantonio Pezzullo, Seyedramin Rasoulinezhad, Ryan A. Rivera, Kate Scholberg, Justin Selig, Sougata Sen, Dmitri Strukov, William Tang, Savannah Thais, Kai Lukas Unger, Ricardo Vilalta, Belinavon Krosigk, Thomas K. Warburton, Maria Acosta Flechas, Anthony Aportela, Thomas Calvet, Leonardo Cristella, Daniel Diaz, Caterina Doglioni, Maria Domenica Galati, Elham E Khoda, Farah Fahim, Davide Giri, Benjamin Hawks, Duc Hoang, Burt Holzman, Shih-Chieh Hsu, Sergo Jindariani, Iris Johnson, Raghav Kansal, Ryan Kastner, Erik Katsavounidis, Jeffrey Krupa, Pan Li, Sandeep Madireddy, Ethan Marx, Patrick McCormack, Andres Meza, Jovan Mitrevski, Mohammed Attia Mohammed, Farouk Mokhtar, Eric Moreno, Srishti Nagu, Rohin Narayan, Noah Palladino, Zhiqiang Que, Sang Eon Park, Subramanian Ramamoorthy, Dylan Rankin, Simon Rothman, Ashish Sharma, Sioni Summers, Pietro Vischia, Jean-Roch Vlimant, Olivia Weng
(Submitted on 25 Oct 2021)
Comments: Published on arxiv.
Subjects: Machine Learning (cs.LG); Hardware Architecture (cs.AR); Data Analysis, Statistics and Probability (physics.data-an); Instrumentation and Detectors (physics.ins-det)
code:![]()
本文所使用的图片要么来自论文、介绍性幻灯片,要么是参考这些图片制作的。
简介
在许多领域追求科学进步的过程中,实验已经变得非常复杂,以较小的空间分辨率和较短的时间尺度研究物理系统。这些数量级的进步导致了数据数量和质量的爆炸性增长,所有学科的科学家都需要开发新的方法来满足他们不断增长的数据处理需求。同时,机器学习(ML)的使用,即可以直接从数据中学习的算法,使许多科学领域取得了快速进展。最近的进展表明,基于结构化深度神经网络的深度学习(DL)架构是通用的,可以解决广泛的复杂问题。大数据集、计算机和DL软件的激增导致了对不同DL方法的探索,每种方法都有自己的优势。
这篇评论文章主要讨论ML和实验设计的整合,通过加速和改善数据处理和实时决策来解决重要的科学问题。它讨论了无数需要快速ML的科学问题,并概述了这些领域之间的统一主题,导致了一般的解决方案。此外,我们回顾了目前高速运行ML算法所需的技术,并提出了关键的技术问题,这些问题如果得到解决,将带来重大的科学进步。这种科学进步的一个关键要求是需要公开性。至关重要的是,与他们几乎没有互动的领域的专家走到一起,开发可转移的解决方案,并合作开发开源解决方案。在过去几年中,ML的大部分进展都是由于使用了异构计算硬件。特别是,GPU的使用使开发大规模DL算法成为可能。此外,在大型数据集上训练大型人工智能算法的能力,使算法能够执行复杂的任务。在这些发展的同时,出现了一种新型的DL算法,其目的是减少实现快速和高效的AI算法所需的操作数量。
本文是对第二届快速机器学习会议的回顾,是基于会议上的材料。图1显示了启发本文的系列研讨会的精神,以及在随后的研讨会中所涉及的主题。图1显示了启发本文的系列研讨会的精神和以下各节所涉及的主题。
ML工具的日益复杂化导致人们关注于建立非常大规模的算法来解决复杂的问题,如语言翻译和语音识别。 此外,应用正变得越来越多样化,因为必须了解每一种科学方法如何转变,以便从人工智能革命中获益。 这包括人工智能对事件进行实时分类的能力,如粒子碰撞或引力波的变化,以及对系统的控制,如通过反馈机制对等离子体和粒子加速器进行响应控制,但延迟、带宽和吞吐量等约束条件及其原因因系统而异。延迟、带宽和吞吐量的原因和限制因系统而异。 设计低延迟算法与其他人工智能的实现方式不同,它需要使用特定的处理硬件来处理任务并提高整个算法的性能。 例如,执行科学测量可能需要超低延迟的推理。 例如,科学测量可能需要超低延迟的询问时间,在这种情况下,算法必须精心设计,以充分利用现有的硬件限制,并仍然保持算法与所需的实验要求相关。在这种情况下,算法必须精心设计,以跟上所需的实验要求,同时充分利用现有的硬件限制。
一个领域应用的典范
随着科学生态系统迅速变得更快、更大,新的数据处理和减少模式需要被纳入系统级设计。虽然快速机器学习的实施在不同的领域和架构中差异很大,但对基本数据表示和机器学习整合的需求是相似的。在此,我们列举了看似不相关的任务的科学领域的广泛样本,包括现有技术和未来需求。
大型强子对撞机
欧洲核子研究中心的大型强子对撞机(LHC)是世界上最大和最有能量的粒子加速器,每25纳秒就有一堆质子对撞。为了研究这些碰撞的产物,已经在沿环的相互作用点安装了几个探测器。这些探测器的目的是为了高精度地测量希格斯玻色子的特性,并寻找超越粒子物理学标准模型的新物理现象。由于40兆赫的极高碰撞频率、次级粒子的高倍率和大量的传感器,探测器必须以极高的速率处理和存储数据。2个多用途实验,即CMS和ATLAS,由数千万个读出通道组成。两个多用途实验,CMS和ATLAS,由数以千万计的读出通道组成,速率在100Tb/s左右。处理和存储这些数据是运行大型强子对撞机物理学计划的最重要挑战之一。探测器的数据处理包括一个在线处理阶段,从一个缓冲区中选择事件并进行实时分析,以及一个离线处理阶段,将数据写入磁盘并使用复杂的算法进行更详细的分析。在被称为触发的在线处理系统中,数据率被降低到10Gb/s的可控水平,并记录下来用于离线处理。触发通常分为几个层次。由于检测器上的缓冲器大小有限,第一级(第1级或L1)使用FPGA或ASIC,可以执行延迟达1微秒的过滤操作。在第二阶段,高级别触发(HLT),数据由位于测试现场的基于CPU的计算场处理,延迟时间高达100毫秒。最后,完全的离线事件处理是在一个全球分布的、基于CPU的计算网格上进行的。在不久的将来,维持这一系统的能力将变得更加具有挑战性:2027年,大型强子对撞机将升级为所谓的高亮度大型强子对撞机(HL-LHC),届时单次对撞产生的粒子数量将增加5至7倍,最终存储的数据总量将比目前加速器所达到的数据量大一个数量级。同时,粒子探测器将能够探测到更多的粒子。同时,粒子探测器将变得越来越大,越来越细,并且能够越来越快地处理数据。因此,可以从一个实验中提取的物理量受限于算法的准确性和可用的计算资源。
机器学习技术在这两个领域提供了有希望的解决方案和能力,因为它们能够从高维数据中提取最相关的信息,并且能够在适当的硬件上实现高度并行化。如果新一代的算法被引入到LHC实验的数据处理系统的所有阶段,那么它有望在维持并有望提高物理学性能方面发挥重要作用。
应用于大型强子对撞机的物理任务的例子包括事件重建、事件模拟、异构计算、40兆赫的实时分析,以及ML在前端探测器上的应用。(细节省略。)
高强度加速器实验
基于机器学习的Belle II实验的触发系统
Belle II中使用的神经网络z顶点触发器(NNT)是一个没有死区的一级(L1)触发器,它通过估计粒子沿豆管的起源来识别粒子。整个L1触发过程,从数据读出到决定,被赋予了5微秒的实时时间预算,以避免死区时间。NNT的任务是估计粒子轨道的起源,并能够确定它是否来自于一个交互点。为此,使用了在Xilinx Virtex 6 XC6VHX380T FPGA上实现的多层感知器(MLP)。MLP由三层组成:27个输入神经元,81个隐藏层神经元和2个输出神经元。在这项任务中,使用了Belle II中央漂移室(CDC)的数据,因为该室专门用于探测粒子轨迹。原始探测器数据被组合成二维轨道,称为轨道段,是相邻的主动感应线组,然后由网络进行处理;NNT的输出显示了轨道在Z方向上的原点,沿着光束管,以及极性角度θ。z顶点被下游的全局决策逻辑(GDL)用来确定轨道是否来自交互点。此外,极角θ可以用来检测粒子的动量。由于没有实验数据,第一个网络是用普通的模拟数据训练的。最近的网络使用了从实验数据中重建的轨道。对于训练,我们使用iRPROP算法,它是RPROP反向传播算法的扩展。目前的结果显示,NNT轨道和重建的轨道之间有良好的相关性。目前,事件率和背景噪声都在可接受的范围内,所以我们将Z-cut(为保持轨道原点而允许的估计原点)设置为±40厘米。然而,随着亮度的增加,背景也随之增加,这种Z型切割可以被收紧。由于基于Virtex Ultrascale的通用触发器板(UT4)可与NNT一起使用,今年计划对数据预处理进行扩展。这将涉及使用三维Hough变换来进一步提高效率。已经有模拟显示,可以获得更精确的分辨率和更广泛的角度覆盖。
材料搜索
近年来,材料科学界已经开始接受机器学习来促进科学发现。然而,这一直是个问题。用有限的数据建立高度过度参数化的模型来解决问题的能力并不能为科学做出必要的概括,并导致错误的有效性。为自然时间序列和图像设计的机器学习模型的架构并不适合由方程控制的物理过程。在这方面,有越来越多的工作将物理学纳入机器学习模型,作为最终的正则器。例如,旋转和欧几里得平衡正在被纳入模型结构中,并且正在开发方法来学习基本管理方程的稀疏表示。另一个挑战是,真实的系统有特定的系统差异,需要进行补偿。例如,需要考虑到不同批次的前体的粘度略有不同。迫切需要发展这些材料合成的基本方法。作为对这些基本研究的补充,有越来越多的文献强调基于 "死后 "机器学习的 "现场 "光谱分析。随着这些概念变得更加成熟,人们将越来越重视合成系统、机器学习方法和硬件编码设计,以便进行即时分析和控制。在湿式化学合成中,已经在努力实现这样的自动化实验室,在那里,动态是最小的,延迟不是一个问题。在未来,重点无疑是控制动态合成过程,在这种情况下,需要有毫秒到纳秒的延迟。
扫描探针显微镜
在材料科学领域,机器学习正被迅速引入扫描探针显微镜中。线性和非线性光谱解混技术允许快速可视化并从这些数据集中提取信息,以发现和阐明物理机制。由于这些技术易于应用,人们对过度解释结果和将线性模型过度扩展到高度非线性系统产生了合理的担忧。最近,一个长短期记忆自动编码器被控制在一个非负的、稀疏的潜在空间,用于光谱解混。通过扫描所学的潜在空间,现在有可能得出复杂的结构-属性关系。有一个巨大的机会来加快计算管道,以使显微学家能够在实际的时间尺度上提取信息。10万个光谱采样率可以产生高达GB/s的快速数据,因此,即使是最小的信息量的提取也需要数据驱动的模型。为了提取哪怕是最少量的信息,需要数据驱动的模型、基于物理学的机器学习和人工智能硬件。例如,一个带激式压电力显微镜以每秒高达2000个光谱的速度测量悬臂的随频率变化的反应。为了从这些测量中提取参数,必须将响应与一个经验模型进行拟合。虽然最小二乘法拟合每芯分钟只能提供约50次拟合的吞吐量,但神经网络可以用来加速分析和处理噪声数据。这个管道可以通过在GPU或FPGA硬件加速器中引入神经网络来进行近似和加速。
费米拉实验室加速器控制
传统的加速器控制侧重于将类似的元素组合在一起,以便可以独立调整光束的特定方面。然而,许多元素并不总是完全可分离的。例如,磁铁具有高阶磁场,可以以非预期的方式影响光束。机器学习终于使我们有可能将以前不相关的读出和光束控制的元素结合起来,创造出新的控制和协调方案。一个这样的新控制项目正在助推器的梯度磁体电源(GMPS)进行,它控制着助推器中光束的主要轨道。该项目旨在将GMPS的调节精度提高10倍。完成后,GMPS将成为费米实验室加速器设施中第一个基于FPGA的ML模型在线控制系统。对于能源部来说,ML在加速器控制方面的潜力是如此明显,以至于在国家实验室发出了一个关于基于ML的加速器控制的呼吁。由费米实验室提交并由能源部批准的两个提案之一是分布式系统的实时边缘人工智能(READS)项目。 READS实际上由两个项目组成。第二个READS项目解决了主喷射器(MI)外壳中长期存在的拆借光束损失问题。该外壳包含两个加速器,即MI和回收器。在正常操作中,两台机器中都有一个高强度的光束。这个项目的目的是利用ML来控制向Mu2e输送环中的慢速溢出,另一个项目是利用在线模型实时对共用一个外壳的回收器和主喷射器中的加速器所产生的损失进行去污。这两个READS项目的目的是利用一个实时在线模型,对共用一个外壳的回收器和主喷射器的加速器产生的损失进行解读。两个READS项目都使用FPGA中的在线ML模型进行推理,并从加速器综合体周围的分布式系统中以低延迟收集数据。
中微子和直接暗物质实验
加速器中微子实验
DUNE在其触发框架中使用机器学习来处理巨大的数据率,并确定常规中微子振荡测量与候选太阳和超新星事件之间的相互作用。加速器中微子实验已经成功实施机器学习技术数年,第一个这样的例子是在2017年,当时网络将分析的有效曝光率提高了30%。旨在对事件进行分类的网络在许多实验中很常见,DUNE最近发表了一个在模拟数据上可以超过设计灵敏度的网络,它包括一个输出,计算由于相互作用而处于最终状态的粒子数量该网络包括一个输出,计算最终状态下由于相互作用而产生的粒子数量。在我们的实验中,我们越来越意识到网络会比预期的学习更多训练数据的特征的风险。因此,必须仔细构建训练数据集,以减少这种风险。然而,不可能纠正或量化尚不清楚的偏差。出于这个原因,MINERvA实验探索了使用领域对抗性神经网络来减少模拟和真实数据之间的差异所产生的未知偏差。这个网络在领域网络(在数据上训练的)中有一个梯度反转层,它可以防止分类网络(在模拟上训练的)从两个领域之间行为不同的特征中学习。
这一领域的进一步应用包括中子天体物理学和暗物质的直接探测实验。
电子和离子对撞机
访问电子-离子对撞机(EIC)的物理学需要前所未有地整合相互作用区域(IR)和探测器设计。EIC中设想的无触发DAQ方案将高度整合的IR-探测器设计扩展到分析。EIC中从DAQ到分析的无缝数据处理将简化工作流程,例如通过整合DAQ、在线和离线分析的软件,以及在数据处理的各个层面利用新的软件技术,特别是快速ML算法。ML算法可以在数据处理的各个层面加以利用。这将提供一个机会,进一步优化EIC的物理覆盖范围。在2020年的研讨会上讨论了 "核物理的人工智能 "的现状和前景。快速ML的相关主题是关于数据存储和(接近)实时分析的智能决策。需要对数据存储进行智能决策,以可靠地捕获相关的物理学。快速的ML算法可以通过数据压缩、复杂的触发器和快速的在线分析来改善获得的数据;EIC包括自动数据质量监测以及自动探测器对准和校准。近乎实时的分析和反馈允许快速诊断和优化实验设置,并大大改善了地球物理结果的获取。
引力波
近年来,机器学习算法已经在引力波物理学的各个领域进行了探索:CNN已经被应用于紧凑双星合并引力波的探测和分类,来自核心坍缩超新星的爆裂引力波,以及连续引力波。基于递归神经网络(RNN)的自动编码器也正在被研究,以使用无监督策略探测引力波;基于FPGA的RNN也正在被研究,以证明低延迟探测引力波的潜力。目前正在研究ML在搜索其他类型的引力波方面的应用,如一般的爆发和随机背景。此外,概率和生成性ML模型可用于引力波参数估计中的后验取样,实现与使用模拟数据的贝叶斯取样器相媲美的性能,同时大大减少完成时间 ML算法可用于提高引力波数据的质量和它也被用来做噪音减法。通过检查它们的时频或恒定Q值变换以及LIGO中的数十万个辅助通道,可以对瞬时噪声伪影进行识别和分类。这些辅助通道也可以用来减去准周期性噪声源。尽管ML算法在引力波数据分析方面有很大的前景,但其中许多算法仍处于概念验证阶段,还没有成功应用于实时分析。目前的挑战包括建立一个用于低延迟分析的计算基础设施,提高训练数据的质量(例如,扩大参数空间,使用更现实的噪声模型),以及量化算法在更长的数据运行中的表现。
生物医学工程
ML算法的许多变化都伴随着准确性和推理速度方面的性能改进。一些最先进的机器学习模型具有很高的推理速度。例如,YOLOv3-tiny,一个流行的医学成像对象检测模型,可以在一个标准数据集上以超过200 FPS的速度处理图像,并具有合理的准确性。目前,医疗人工智能应用正在部署基于GPU和FPGA、连接到云端ML(边缘计算)的无线传感器分布式网络,以及基于5G高速WiFi的ML模型。用于快速诊断中风、血栓形成、结直肠息肉、癌症和癫痫的ML模型,大大缩短了检测病变和做出临床决定的时间。实时人工智能辅助手术改善了围手术期的工作流程,可以进行视频分割、检测手术器械和组织变形的可视化。快速ML在数字健康领域发挥着重要作用,即在远程诊断、手术和监测方面。
健康监测
现有的研究已经在不同的方向上采取了各种措施,但越来越需要开发能够正确感知健康生物标志物的ML方法,并以快速和准确的方式识别这些生物标志物。研究人员专注于开发能够感知各种健康行为和生物标志物的新传感系统。从历史上看,这些新的传感技术大多是在受控环境中测试的,但最近,研究人员已经确保这些系统在自由生活环境中无缝工作。这需要开发多个ML模型,每个模型都可以适应特定的情况和环境。这个领域的新趋势开始依赖于可以在设备上实现的模型的实施,并且可以快速和准确地检测这些行为。除了实现实时干预外,对这些行为的设备监测也有助于缓解隐私问题。然而,由于可穿戴设备本身可能无法处理数据,一些研究人员最近探索了协作式机器学习方法。
宇宙学
CNN正被应用于球面,为弱透镜图产生更精确的模型,并从宇宙微波背景图中去除噪音。一个发现和分类引擎也正在开发中,以从下一代设施中提取有用的宇宙学数据。ML也被用于空间模拟,测试新的分析和方法,并为这种新设施的首次运作打下基础。
等离子体物理学
这里的首要目标是开发现实破坏的预测性等离子体模型,并将其与现代等离子体控制系统相结合,以提供在实验运行前设计实验的能力。以最有效和最安全的方式在ITER和未来的燃烧等离子体中进行放电。相关部分的核查、验证和不确定度量化情况如下(1) 利用先进的贝叶斯强化学习方法,将先验信息纳入高效推理算法,开发可推断到燃烧等离子体规模的等离子体和执行器的预测性神经网络模型;(2) 为世界上主要的托卡马克实验(美国的DIII-D、KSTAR和CERN)开发预测性神经网络。欧洲的EAST和日本的大型超导装置JT60SA(比ITER还要早),系统地、很好地诊断和验证了综合等离子体预测模型的组成部分。这将理想地产生一个成熟的、具有人工智能功能的、用于ITER和未来反应堆的综合控制系统,它可以与整个试验工厂系统模型相结合。
现在的一个关键挑战是提供明显改进的预测方法,预测准确率>95%,并在对ITER造成致命损害之前提供预先警告,以有效地应用避免/缓解干扰的策略。在采用深度学习(递归)和CNN方面已经取得了重大进展,普林斯顿大学的深度学习代码 "FRNN "就是一个例子,它能够在超级计算系统上快速分析大型复杂的数据集。在这种情况下,我们已经成功地以前所未有的准确性和速度预测了托卡马克的破坏。该论文(以及其中引用的大量参考文献)包括对物理特征(密度、温度、电流、辐射、波动等)的FES数据表示的描述,说明所需的'零-D'(标量)和更高维度信号的框架(基于事件)精度水平,以及对以可管理的数据速率实时记录的FES数据表示的描述。它包括关键等离子体实验的性质,其特点是以可管理的数据速率记录的具有实时分辨率的探测器/诊断仪。概括地说,未来的预测表明,ITER将需要处理和解释大量复杂的空间和时间数据。由于模拟是ITER数据分析的另一个重要方面,将需要实施先进的压缩方法来应对所涉及的大量计算成本。更为普遍的是,基于真实的第一原理模拟的实时预测对于深入了解不稳定性的特性和粒子相空间的动态非常重要。这就需要开发基于人工智能的 "代用模型"。例如,成熟的HPC "陀螺动力学 "粒子入室模拟代码GTC[278]可以准确地实时模拟等离子体不稳定性。数据准备和代用模型训练,例如 "SGTC",是现代高性能计算(HPC)预测模拟和人工智能支持的深度学习/机器学习活动之间整合/连接的现代任务的一个明显例子。这些考虑也有助于进一步说明和激发整合HPC和大数据ML方法的必要性,以促进科学发现的交付。最后,所引用的论文是第一个在领先的超级计算系统上训练的自适应预测性DL软件,以准确预测不同托卡马克装置(美国的DIII-D和英国的JET)的破坏情况。该软件具有独特的统计能力,通过对单一实验(DIII-D)的大型数据库进行训练,通过有效的 "迁移学习",准确预测未知设备(JET)上发生破坏的情况。最近,FRNN推理引擎被安装在加州圣地亚哥的DIII-D托卡马克设施的实时等离子体控制系统中。这为从被动中断预测到主动实时控制以及随后的反应堆方案优化的激动人心的过渡铺平了道路。
无线网络和边缘计算的机器学习
研究人员已经提出了各种学习算法,使用人工神经网络来执行特定的无线资源管理任务。一些最早提出的训练NN来进行发射功率控制的建议采用了监督学习。最近的建议采用了深度强化学习方法,可以更好地应对信道和网络的不确定性,并且不需要什么预先训练数据。很多研究都集中在边缘计算和深度学习的整合上。具体来说,有关于联合学习的工作,参与者通过合作来训练一个模型,而不是将所有的数据发送到一个中央控制器来学习。这些研究基本上在模拟阶段就结束了,因为没有实用的ML/AI解决方案是快速和计算高效的。具体来说,研究的挑战是开发一个可以在非常快的时间尺度(<10ms)上运行复杂的ML模型的计算平台,并且可以集成到小型蜂窝接入点。一个可能产生非常大影响的项目是将智能无线电资源管理算法映射到适合部署在由连接和干扰接入点组成的大型网络中的FPGA器件中。另一个有趣的项目是为物联网设备建立一个时间敏感的ML联合学习系统,这些设备在向中央计算设施传输数据时遇到延迟。这为医疗保健、智能建筑、农业和交通等领域的低成本、闭环式物联网设备提供了全新的可能性。
主要的重合领域
实时、加速的人工智能推理有望提高各领域现有和计划中的科学仪器的发现潜力。为实时/加速的人工智能应用设计高性能的专门系统,需要特别关注ML算法在相关领域的优势。这可能受每个推理的延迟、计算成本(如功耗)、可靠性、安全性、在恶劣环境中运行的能力(如辐射)等因素制约。例如,在大型强子对撞机中,有必要启动系统来捕捉罕见的事件,其延迟时间约为100纳秒。而在分析千赫兹频段的多通道门诊健康监测器时,电源限制(每天需要约50个iPhone电池来传输数据)和安全要求阻碍了无线数据传输。此外,需要支持每秒数兆比特的材料光谱数据流。此外,先进科学设备的实时分析需要不间断地分配计算资源,而且必须保护由无线医疗设备处理的机密病人信息。这些特征和属性为理解领域和应用之间的区别和相似性提供了量化的准则。这使我们能够协调我们的努力,创建基本的设计原则和工具,以解决看似不同领域之间的需求。正确的数据表示是设计过程中重要的第一步,因为它决定了在需要满足上述性能目标的实时系统中实现NN架构的选择。
数据表示
在一个特定领域中使用的数据表示法既影响到计算系统,也影响到数据存储。跨领域的数据表现的一个大的分类可以是原始数据和重构的数据。根据重建阶段和数据处理管道的上游步骤,数据表示往往有所不同。现有的应用包括以预处理的专家特征变量作为输入的全连接网络,以及当数据为图像性质时的CNN。目前正在开发的受领域知识启发的NN算法可以在准确性和效率方面进一步利用专家的特点,详见下文。为了充分利用先进的NN的能力,并以最小的信息损失来处理数据准备,有必要采用更合适的原始数据的表示方法,如点云。来自不同实验和测量系统的原始数据的典型代表包括以下内容
- 空间数据。它被用来描述几何空间中的物理对象。有两种主要的数据类型:矢量数据和光栅数据。矢量数据包括点、线和多边形。光栅数据是由像素组成的网格,就像图像一样,但像素也可以代表其他测量,如强度、电荷或场强。
- 点状云。它是空间数据的一种类型。这种数据是通过整理一组空间数据,即三维空间中的点来创建的,这些点通常共同构成空间中的一个物体。
- 时间性数据。它用于描述一个系统或实验在某一特定时间的状态。在一段时间内按特定顺序收集的数据就是这样分类的。时间序列数据是这种表示方法的一个子集,其中数据是以定期的时间间隔进行采样的。作为一个时间序列数据的例子,图4显示了一个超新星分类的例子。
- 空间-时间数据。对一个系统的测量或观察可以在空间和时间两个维度上收集。在这种情况下,数据可以被认为是空间-时间性的。
- 多光谱数据。它用于表示从电磁波谱的几个波段进行测量的几个传感器的输出。多光谱表示法经常用于成像领域,其中传感器对不同波长的光敏感。这通常涉及几个到十个光谱。
- 高光谱数据。高光谱数据:用于表示多达100个光谱的测量。这些从不同窄带光谱收集的图像被组合成一个所谓的高光谱立方体,有三个主要维度。前两个维度指的是两个维度的空间排列(例如地球表面),第三个维度代表每个 "像素 "位置的完整光谱内容。
表1给出了这些数据表示的简要描述,与它们的科学应用领域相对应。在某一领域特别重要的数据表示法被强调。数据通信的成本(延迟)和数据存储(获取和管理物理存储资源的成本)是重要的问题。需要高度优化的数据分析解决方案,特别是在需要实时分析和实时反馈的应用领域。依靠高光谱数据的应用继续增加整个电磁场的数据输入比例。在这些领域,需要快速的数据还原。产生大型点云的应用需要对空间数据进行有效压缩。在空间分辨率有限的多光谱数据的应用领域,需要超快速的重建以实现实时控制反馈。由于隐私和安全问题或相关边缘设备的限制,需要准确分析时间序列流数据的应用被迫在非常有限的存储和通信资源下运行。目前为数据处理前端开发ML解决方案的一些努力集中在开发基于自动编码器的压缩引擎上。基于ML的高光谱数据的降维也是一个值得关注的方向。基于深度学习的方法正在被研究用于图像重建,而材料科学领域是这方面最活跃的领域之一。
专家特征 DNNs
建立强大的特定领域ML算法的一个直接方法是,从专家的领域特征开始,在神经网络或其他多变量分析技术中结合起来。以这种方式纳入专业知识具有固有的优势,即输入的特征是可以解释的,而且特征之间的相关性可以在优化性能的同时提供对特定任务的洞察力。此外,根据领域内特征的计算复杂性,这种机器学习方法的计算效率要比直接使用原始特征时高。然而,使用专家特征有一个缺点,即它完全依赖于这种新特征的信息性。因此,人们对从原始特征中构建信息丰富的新特征的过程的自动化给予了很大关注。例如,在图像分类任务中,使用深度神经网络DNNs提取数据的高级表征方面已经取得了重大进展,DNNs在原始输入信号的基础上建立神经元层,从而使新层捕获数据的更抽象的表征。每一层都通过对下面各层的特征形成非线性组合来建立新的特征。这种构建特征的分层方法可以有效地隔离数据中的变异源,并有助于建立信息丰富和有意义的表示。例如,在天文图像中,DNN可以从低层次的像素信息开始,逐步捕捉上层的边缘、图案,最终捕捉整个物体(如星系),以获得宇宙的完整图景。其他科学领域的情况也是如此。例如,检测大型加速器中的粒子需要将低电平信号转化为可归于特定粒子的动态模式。医学成像需要逐步了解全局组织模式,以便从低层次的像素信息中快速识别出异常组织。将最初的输入数据转化为有意义的抽象表示,其重要性怎么强调都不过分。这是现代神经网络架构的最强大的特性之一。
使用DNN构建高度抽象的表征带来了几个挑战:一个挑战是将领域知识(如物理约束)纳入神经网络模型。一个挑战是将领域知识(如物理约束)纳入神经网络模型,这对于解决训练DNN时需要过量的数据以及缩小模型和目标概念之间的表征偏差差距非常重要。在数据匮乏但领域专业知识丰富的情况下,增加领域知识可以加快训练过程,也可以提高模型的泛化性能。另一个挑战是开发工具,通过解释嵌入每一层的表征的语义来实现模型的可解释性。由于网络架构中信息的分布式表示,这是个挑战。尽管缺乏一个正式的机制来实现统计模型和领域知识之间的无缝整合,但目前的方法指向了有趣的方向,例如使用知识来增加训练数据或修改损失函数。在过去几年中,DNN中模型解释的可能性一直是激烈研究的主题。总的来说,为了了解各层神经元之间的学习情况,在检查单个单元及其激活模式方面已经做了很多工作。
基于框架的图像
基于帧的图像为多个领域的实验数据提供了充分的表述,如粒子物理学中使用时间投影室的中微子探测。这种数据表现的一个例子是ProtoDUNE中微子探测器中的电子沉积,如图5所示。空间框架是通过绘制时间坐标 "Tick "和导线在空间的位置来显示的。最近开发的神经网络架构利用图像的稀疏性来减少计算量,并实现实时/快速的ML应用;HEP和许多其他领域的其他类型的实验数据也可以被处理成基于帧的图像来表示。HEP和许多其他领域的其他类型的实验数据可以被处理,以便它们可以被表示为基于帧的图像,但在许多情况下,信息损失是不可避免的。
点云
在HEP中,点云数据表示法经常被用来将大量探测器收集的多帧基于事件的测量结果合并成一个数据集。在许多HEP应用中,点云经常被用来表示数据量超过Pb/s的粒子射流。更广泛地说,点云可以用来捕捉三维空间的事件和空间中移动部件的相互作用;图6显示了LHC的CMS探测器的点云可视化。质子-质子碰撞的残余物在定制和优化的探测器几何形状下产生了一个传感器信号,这些点在空间中被说明了。各种类型的基于扫描的图像数据都可以被表示为点云。医学工程中的CT和PET扫描,以及虚拟现实,都是利用这种表现形式进行成像。点云也被用于三维扫描仪,用于产品设计、实体物体建模、建筑和基础设施设计。许多这些成像任务产生的点云的大小从几GB到TB不等。空间属性也经常被用于共享点云表征的领域(如HEP和生物医学成像)。
多重/多光谱数据
多光谱数据通常用于无线健康监测系统和无线通信系统之间。在健康监测和干预系统中,不同模式的生理传感器被结合起来,以创建多光谱数据集。在无线通信中,多光谱数据可用于了解信号干扰和网络流量状况。这两个领域都是在一个时间域内捕获这些数据,因此也显示出时间性的特征。此外,与本文讨论的其他领域相比,这两个领域产生的数据大小被认为是相对较小的(在100多Mb/s到10多Gb/s之间)。高光谱数据被用于天文学、医学成像、电子显微镜和其他领域,并被用于许多材料科学的设计和发现。图7显示了一个来自电子显微镜的高光谱数据的例子。电子探针在感兴趣的样品上划过,在一个像素化的检测器上捕捉到衍射图案。当电子探针在样品上扫描时,像素化的检测器会捕捉到一些图像。在多信使天文学中的应用进一步强调了结合不同探测器和望远镜的观测结果来表示高光谱数据的有用性。
时间序列数据
时间序列数据经常出现在观察动态演变系统的实验中,如材料发现的合成或聚变实验中等离子体状态的时间演变。它是对材料科学和物理学的特征(密度、温度、电流、辐射、波动等)以及作为时间函数的等离子体状态演变的空间特征的快速时间分辨成像。
时间序列数据的原位诊断可以为材料科学中出现不良结果的实验提供早期终止的警告,而不需要对整个实验进行耗时和计算上昂贵的离线分析。
图8显示了费米实验室助推器加速器控制的一个例子。在这个应用中,引导质子束围绕同步辐射的磁铁的电压以15赫兹的时间样本被记录下来。在这项研究中,已经建立了一个数字孪生体来模拟助推器加速器数据。此外,时间序列数据的实时分析对于可靠地预测和避免融合实验中的重大故障非常重要。
系统限制
HEP社区正在探索的一个概念是GPU即服务(GPUaaS)模式,它是基于CPU的本地集群、云服务和使用GPU和基于TPU的硬件加速器的云计算资源的结合。(GPUaaS)模式。 HEP社区正在探索的概念之一是GPU即服务(GPUaaS)模式,这涉及到实施机器学习模块来解决物理问题,然后将其转移到GPU或TPU加速器上,由实验系统的本地CPU "客户端 "访问。
软件可编程的协处理器
从历史上看,解决本文讨论的问题的计算需求的第一批尝试是软件可编程系统。HEP社区正在探索的概念之一是GPU即服务(GPUaaS)模式,该模式是基于将GPU和基于TPU的硬件加速器作为云计算资源用于各种应用。在HEP社区正在探索的一个概念是GPU即服务(GPUaaS)模式。HEP社区正在探索的一个概念是GPU即服务(GPUaaS)模式,它可以进一步扩展到机器学习即服务的概念。在这些范式中,一个机器学习模块被实施来解决一个物理问题,然后被转移到GPU或TPU加速器上,然后由本地实验系统的CPU上的 "客户端 "访问。
主要的系统限制之一是计算能力。就神经网络的实现而言,这可以用浮点运算的数量来定义。实时机器学习方法需要不断增加的计算能力,因为它直接影响到每个任务的延迟。任务可能是触发大型强子对撞机、重建加速器实验或天体物理学中的事件、材料合成、重建电子显微镜捕获的图像等。极端的并行性是可取的,以尽量减少延迟,并提供尽可能大的容量,以最大限度地提高吞吐量。在基于处理器的系统中,这可以通过增加计算集群的规模来解决。
自然,设施的成本对这些集群的规模造成了限制。另一个制约因素是可用的存储量和在内存层次上移动数据的成本。在大多数用例中,与从前端(检测器、显微镜、传感器等)移动数据有关的延迟在总延迟中占主导地位。最重要的性能限制之一是与连接前端和后端的网络的利用率以及随后的延迟有关。目前对数据移动速度的限制使得基于CPU/GPU集群的系统无法满足实时要求。
定制嵌入式计算
除了延迟和吞吐量的限制外,实际的能源限制也越来越严格。正在开发专门的计算系统以满足具有挑战性的实时需求。一个越来越有吸引力的范式是设计为数据采集工作流程中的特定步骤进行精细优化的组件。这些组件可以被映射到FPGA器件上,或作为特定应用集成电路(ASIC)设计和制造。
在大型强子对撞机和加速器领域,已经有一些基于FPGA的前端数据处理系统的演示,其延迟达到了微秒级。这些系统负责触发、事件重建和异常检测等任务。直接和直接地实施神经网络来执行这些任务的推理,将无法满足延迟。可实现的最大FPGA时钟频率和推理延迟与设备的资源使用和占用情况相关。为这些应用开发的协同设计技术特别关注极端量化和剪枝。这些优化可以将资源使用的上限降低到FPGA器件的10%,以满足系统约束。这些优化使我们能够在满足系统约束的同时实现高推理精度的实现。
在其他应用中(如加速器控制、生物医学、健康应用),对资源最小化的需求是宽松的,对毫秒级延迟的期望也不那么苛刻。因此,系统设计的重点可以从资源最小化转移到被映射的算法的细化。推理模型现在可以包括与先进的视频和信号处理引擎相结合的深度学习模型,以及局部隐私保护的处理任务。
如果你的系统受到限制,你可能需要设计一个定制的ASIC解决方案,以补充或代替FPGA器件。 ASIC可以支持极端的外形尺寸,将计算和传感器(如智能光子探测器)集成到紧凑的前端器件中,并与其他器件紧密集成。与其他设备紧密结合是可能的。可以解决传感(如智能光子探测器)和计算的集成,与混合信号和模拟功能的紧密集成,辐射耐受性要求,以及超低能量预算。
技术 最近的新闻
本节对构建快速ML算法的技术和方法进行了概述。
这需要共同设计。它提供了一个高效的平台来构建算法,并以硬件为基础进行编程。
高效部署ML模型的系统方法
如前所述,科学中的许多ML问题需要低延迟,而且往往是受限制的资源。然而,目前大多数最先进的NN模型具有非常高的延迟和大的内存足迹和能源消耗。为了避免这种延迟问题,必须使用具有非理想精度的次优模型(如浅层NN)。
为了解决这个问题,有大量的文献专注于使NN模型更有效率(在延迟、内存占用和能源消耗方面)。这些努力可大致分为以下几类
(i) 设计新的高效的NN架构,(ii) NN和硬件的共同设计,(iii) 量化(低精度推理),(iv) 修剪和稀疏推理,和(v) 知识提炼。
设计一个新的高效的NN架构
一条研究路线集中在寻找设计高效的新NN模型上。 一个值得注意的早期作品是SqueezeNet。这是一个新的NN模型,没有昂贵的全连接层。
使用新的轻量级Fire模块,该模型比AlexNet小50倍,但精度相同。 随后,在高效的NN架构设计方面进行了一些新的创新。 一个重点是找到高效的层/操作者。 在分组卷积、深度卷积、空间可分离卷积、洗牌层和移位卷积等方面已经做了大量的工作,仅此而已。
另一个重点是寻找类似于 "火灾 "模块的替代品,这些替代品效率更高,并提供更好的准确性/概括性。 著名的工作包括残余物网络(最初是为了解决梯度消失问题,但这些结构通常比非残余物架构更有效)、紧密连接的网络、挤压和挤压模块以及倒置的残余物块。
这些经典的方法大多是通过人工设计搜索找到新的建筑模块。 由于这不具有可扩展性,最近的方法提出了使用神经结构搜索(NAS)的自动化方法。 NAS方法为给定的模型大小、深度/宽度和/或延迟的约束自动找到合适的NN架构。 这里的高级方法是训练一个概率超级网,它包含了在指定约束条件下具有可学习概率的NN架构的所有可能组合。 一旦这个超级网络被训练出来,就可以从学到的概率分布中对架构进行采样。 值得注意的研究包括基于RL的方法、高效NAS、MNasNet、DARTS和可微调NAS。
NN和硬件共同设计
另一个有希望的任务是为特定的硬件平台定制NN架构和/或共同设计它们。 这对于可配置的硬件如FPGA来说是非常有希望的。 硬件感知的NN设计的重要性在于,执行不同类型操作的成本因硬件而异。 例如,具有专用高速缓存层次的硬件可以比没有高速缓存层次的硬件更有效地执行带宽限制的操作。 这一领域的著名工作包括SqueezeNext,其中NN和硬件加速器都是使用手动调谐方法共同设计的。 最近的工作提出通过NAS自动设计硬件对应物。 著名的工作包括ProxylessNAS、OnceForAll、FBNet和MobileNetV3。
量化(低精度推理)。
一个常见的解决方案是使用量化来压缩NN模型。在这种情况下,低位精度被用于权重/激活。这里感兴趣的工作是深度压缩,它使用量化来压缩上述SqueezeNet模型的模型足迹,将其大小减少到AlexNet的1/500。量化有可能使用低精度的矩阵乘法或卷积,因为在不改变原始网络结构的情况下,模型的大小会减少。因此,内存占用和延迟都可以得到改善。
量化方法大致可分为两类:训练后量化(PTQ)和量化-识别训练(QAT)。 在PTQ中,一个单精度、预训练的模型被量化到低精度,而无需微调或重新训练。因此,这些量化方法通常非常快,而且在某些情况下甚至不需要训练数据。然而,PTQ往往会导致精度的损失,特别是对于低精度的量化。
为了应对这种情况,一些量化方法采用了QAT,它允许在量化后重新训练模型并调整参数。这种方法往往能带来更高的准确性,但需要更多的时间来重新训练模型。
另一种是模拟量化(又称假量化)和纯整数量化的应用。在前者中,权重/激活是以低精度存储的,但在推理过程中被投到高精度。在后一种情况下,不包括浇注,乘法和累加也是以低精度进行的。使用纯整数量化的好处是,不仅可以减少模型的内存占用,还可以通过使用低精度逻辑进行乘法和加法来加快推理速度。
第二个是硬件感知的量化。 与NN架构的设计一样,量化也可以根据具体的硬件平台进行调整。这对混合精度量化很重要。这对混合精度量化很重要,因为NN模型的某些操作可能比其他操作受益于较低的精度量化,这是基于它们是受带宽限制还是受计算限制。因此,最佳精度设置需要根据潜在的脚印/延迟增益和对精度下降的敏感性之间的权衡来确定,如图9所示。
修剪和稀疏推理
另一种减少NN的内存占用和计算成本的方法是应用剪枝。这可以被认为是量化到零位。在修剪过程中,具有低突出性(敏感性)的神经元被移除,从而形成一个稀疏的计算图。突出性低的神经元是那些去除后对模型的输出/损失功能影响最小的神经元。修剪方法大致可分为非结构化修剪和结构化修剪。非结构化修剪删除了没有结构的神经元。这种方法可以删除大部分的NN参数,而对模型的泛化性能影响不大。然而,这种方法很难提速,而且涉及到稀疏矩阵的操作,通常有内存限制。这可以通过结构化修剪来处理,即删除参数组(如输出通道)。然而,这里的挑战是,高度的结构化修剪往往会导致精度的显著损失。
在这两种方法中,关键问题是要找到要修剪的参数。一个简单而常见的方法是基于量级的修剪。在这种方法中,参数的大小被用来作为修剪的尺度。这里的假设是,小的参数并不重要,可以被删除。
基于量级的修剪方法的一个重要问题是,小量级的参数在实践中可能非常敏感。这很容易被二阶泰勒级数展开所证实,其中的扰动不仅取决于权重的大小,还取决于黑森矩阵。出于这个原因,有几项研究采用了基于二阶的修剪方法。
最后,有必要提及的是,通过结合剪枝和量化,可以压缩NN模型。事实上,剪枝可以被看作是对零位的量化。已经提出了一种量化感知的剪枝方法,并应用于高能物理学中的问题。我们报告的结果比单纯的剪枝或量化要好。
知识的提炼
模型蒸馏法训练了一个大的模型,然后将其作为一个老师来训练一个紧凑的模型。模型提炼的关键思想是利用教师产生的软概率,而不是在训练学生模型时使用类标签。这使你能够指导/协助学生的训练。
知识提炼方法侧重于对不同知识来源的探索。一些方法使用Logit(软概率)作为知识来源,其他方法则利用中间层次的知识。对教师模型的选择也有很好的研究,使用多个教师模型来共同监督学生模型,或者在没有额外教师模型的情况下应用自我精简。其他的工作是在不同的应用中使用不同的设置来应用知识蒸馏。其中包括对无数据知识提炼的研究,以及知识提炼和GANs的结合。
知识蒸馏的主要挑战是如何实现高压缩比。与量化和修剪(通常可以在四倍压缩的情况下保持准确性)相比,知识提炼在这些压缩水平上往往会显示出不可忽视的准确性损失。然而,这两种方法是正交的,最近的工作表明,它们的结合可以带来高精确度/压缩。目前的蒸馏方法主要应用于经典的ML问题,很少有研究探讨其在科学AI问题上的应用。
系统化的神经网络设计和训练
目前,还没有分析方法来为特定的任务和训练数据集找到合适的NN架构。最初,NN架构的设计是一项人工任务,涉及到的直觉大多是临时性的。然而,近年来,在NN架构设计过程的自动化方面出现了一些创新,称为神经架构搜索(NAS)。
NAS可以被看作是一个超参数调整的问题。超参数是NN架构的设计选择。它们可能包括宽度、深度、操作类型,等等。主要的挑战是,操作类型的搜索空间随着层数的增加而呈指数级增长。因此,限制搜索空间需要包括对NN结构的高度直觉。
在限制了搜索空间后,一般的NAS过程如下。候选结构从所有可能的结构集合中抽出,并在训练数据集的一些历时上进行训练。然后,准确度被用作评估候选架构有多好的一个指标。然后根据这个奖励更新抽样架构的概率分布。这个过程需要对许多不同的候选架构进行重复,在某些情况下,需要超过几十万个。
本质上,这导致了另一个与每个候选架构的优化超参数的调整有关的问题。例如,如果从NAS中抽出一个好的架构,但用次优的超参数进行训练,误差会更大,减少NAS算法抽出一个不是所需属性的架构的可能性。
因此,可扩展性已成为任何存在 "大数据 "的程序的一个基本关切。可扩展性变得至关重要的一大类程序是数值优化算法,它是训练方法的核心。在设计高效的数值优化/训练方法和高效的NAS算法以搜索合适的NN架构方面有大量的文献。
优化的目标是设计一种新的方法,需要更少的迭代来收敛,并且对超参数的调整更加稳健。这里的一个显著的进步是能够应用二次元方法而不需要创建二次元算子。这些方法的性能和稳健性已被证明比经典的ML问题(如计算机视觉和自然语言处理)的一阶优化方法更好。有趣的是,最近来自物理学信息神经网络(PINN)的结果表明,一阶方法明显不如(准)二阶方法。这有可能为调整或重新设计一些科学问题的二阶算法提供机会。
NAS算法的目标是相似的:找到一种方法来减少需要评估的候选架构的数量,减少人工限制和搜索空间调整。另一个目标是设计一个可转移的NAS算法,该算法可以在小问题上进行训练,然后转移到更大、更昂贵的问题。
总之,NN架构设计的核心是对架构进行快速采样(通过NAS)和对采样的架构进行快速训练(通过快速和稳健的优化)。
硬件结构:传统CMOS
随着机器学习的普及和需求的迅速增长,有效地设计机器学习算法并同时在互补的强大硬件平台上部署这些算法变得越来越重要。 NN部署的计算和内存需求是巨大的,并不断增长,超出了标准硅基半导体所能扩展的极限。半导体行业的可扩展性挑战背后的原因如下。首先,随着我们接近摩尔定律的终点,晶体管的成本正在成倍增加,这是因为随着技术节点的缩小,芯片设计的成本不断上升(正如赛灵思和Gartner在2011年公布的)。此外,由于各代节点的功率密度不再保持恒定,Dennard规则面临着相当大的散热挑战。为了缓解热密度增加带来的挑战,该芯片被设计为有条件地为一组晶体管供电,有效地节流或 "关闭 "芯片的一部分。这种技术已被称为暗硅的创造。
已经提出了一些颠覆性的方法来克服这些挑战并提供足够的计算能力。例如,Cerebras系统公司向市场推出了第一个采用晶圆级集成的计算机系统。芯片是由完整的晶圆而不是单独的模具制造的。这种技术在电源、包装和冷却方面提出了重大的工程挑战。在探索其他方面,该代工厂正在研究台积电在HotChips'2019上提出的真正的3D芯片堆叠。还探讨了模拟计算、量子计算和内存计算。
一种低风险的方法侧重于摆脱传统的冯-诺依曼架构,利用计算架构的专业化来提供所需的性能扩展和能源效率。随着专业化的发展,设备变得越来越异质化。已经出现了各种试图以不同方式解决这一问题的设备。一个关键的挑战是如何循环转换和部署算法,以最大限度地提高数据重用和计算效率,尽量减少内存瓶颈,并限制功耗,同时满足实时性要求。
硬件类型和数量的选择通常被总结为一套由计算环境、工作负载类型和数据类型施加的约束。 在处理不同类型工作负载的大型数据中心部署的情况下,通常有必要结合多个平台,以降低所有硬件平台的总拥有成本(ToC)。因此,异构平台的所有者越来越有必要将他们的系统视为大型多处理器计算机。就深度学习硬件加速器而言,这些新计算机通常采取CPU协处理器的形式。
用于深度学习的计算机架构的分类
目前,部署机器学习算法的硬件架构有很多种。它们可以根据以下标准进行大致分类
- 计算操作的基本类型
- 对某些数字表达的具体支持
- 外部内存容量(主要与培训工作负荷有关)。
- 外部存储器访问带宽
- 热设计功率(TDP)格式的功耗
- 架构中的并行程度和专业程度
在实践中,如图10所示,我们将计算架构分为标量处理器(CPU)、基于向量的处理器(GPU)和所谓的深度学习处理单元(DPU)。
这些类别在某种程度上是相互交融的。 DPU专门用于这一应用领域,并将空间处理方法与更多基于矩阵或张量的一般处理器区分开来。 DPU可以在ASIC或FPGA中实现。
CPU
CPU在ML应用中被广泛使用,主要被视为串行或标量计算引擎。它们使用隐式管理的内存层次结构(使用多级缓存)对单线程性能进行了优化,并使用最新的专用矢量单元变体支持浮点运算(FP64和FP32)以及8位和16位整数格式。优化的性能。假设提升时钟速度(级联湖,56个核心,3.8GHz),FP64的最高理论峰值性能为6.8TOPs。目前,外部内存主要由大型DDR4内存库来利用;与GPU和其他支持HBM的设备相比,CPU的内存带宽很低。在功耗方面,CPU处于高端,高端设备的功耗最高可达400W。在嵌入式领域,ARM处理器通常提供了一种流行的解决方案,特别是在性能要求很低或特殊设备变体需要不支持的功能时。特别是,Ethos系列的处理核心专门用于CNN工作负载,因此属于以下DPU类别 CPU的优势在于硬件的通用性和编程的简易性,为此,设计环境在几十年中已经成熟。正如预期的那样,与更专业的设备系列相比,这是以降低峰值性能和效率为代价的。至于量化,CPU只有在支持INT8和INT16时才能利用这种优化技术。
GPU
GPU是基于SIMD(单精度、多数据)的矢量处理器,支持较小的浮点格式(FP16),最近还支持定点8位和4位整数格式,隐性和显性混合。通过日益专业化的架构特征,利用这一应用中固有的高度并行性的能力,使其成为市场上性能最好的DNN加速设备之一。目前有多达三个不同的执行单元,即CUDA核心、张量核心和DLA,它们在工作负载中并不同时运行(至少不容易或默认)。因此,与其将不同执行单元的峰值性能相加,不如只使用最大性能。
在内存方面,GPU利用了特殊的、高度流水线的GDDR内存。这减少了容量,但提供了更高的带宽(高达732GBps)。出于同样的原因,一些DPU也将引入HBM2。在功耗方面,GPU更高,最高可达345W。
GPU的普遍挑战之一是,它们需要利用输入的并行处理来实现大型计算阵列的高利用率。因此,在执行之前,需要将输入的数据分组。这对终止延迟有不利影响。此外,GPU的功耗相对较高。至于量化,支持仅限于特定的数据类型。最后,GPU的软件环境虽然没有达到与CPU相同的水平,但却更加成熟,更容易使用。
FPGAs和ASICs
FPGA和ASIC根据特定应用的规格定制硬件结构。它们可以在各方面进行调整,以满足用例的具体要求。这可以包括IO功能、特性或针对特定性能或效率目标的定制。 ASIC是完全硬固定的,而FPGA可以重新编程。这种灵活性在许多应用中可以摊薄电路设计的成本,但以牺牲硬件资源成本和性能为代价。
FPGA是加速CNN的一个流行选择。传统上,FPGA计算结构包括通过可编程互连的查找表(LUT)的海洋。
党卫军
术语DPU(深度学习处理单元的简称)是指一种专门用于加速CNN的新型计算架构。 DPU以各种方式为这些类型的应用进行定制,如支持的操作类型、对张量或矩阵的直接支持、特定的数据类型和支持的数字表示法、宏观架构、明确管理的特殊内存层次以及并行程度。它以多种方式为这些类型的应用进行了定制。
处理元素矩阵(MPE)
第一种类型,如图11左侧所示,包括一个在矩阵或高维张量上操作的MPE。处理引擎可以是一个简单的MAC,一个矢量处理器或一个更复杂的VLIW(超长指令字)内核,可以支持各种指令的并发执行。
这些实现方式通过专业化利用特定的高精度操作,使用专用指令集和定制的内存系统,使硬件成本最小化,性能最大化,并优化效率。然而,为了获得性能优势,必须对算法进行调整以利用这些特征。
空间DPU
第二种类型的DPU利用空间加速的优势,使用层和分支的并行处理。流行的例子是hls4ml和FINN。在这方面,硬件架构对特定深度学习拓扑结构的细节更加具体。这在图11的右侧可以看到。硬件架构实际上是模仿特定的深度学习拓扑结构,输入是通过该架构进行流式传输。所有层都在一个专门的计算数据通路中被实例化了。每层都有一个专门的权重缓冲区,层与层之间的激活缓冲区是最小尺寸的FIFO。他们缓冲了足够的数据,以便在下一层提供下一组卷积。与第一种类型的DPU或GPU相比,这明显更有效率,并减少了延迟。
DPU和GPU通常进行逐层计算。在这种情况下,需要对一系列图像进行缓冲,以便从平台上提取最大数量的计算(输入、IFM和OFM的并行处理)。出于这个原因,设备在计算所有图像的第一层之前会缓冲一批图像。然后所有的中间结果被缓冲,并计算下一层。因此,延迟在很大程度上取决于输入批次的大小。因此,空间DPU在延时方面具有优势。这种程度的定制只有在可编程的硬件架构(如FPGA)下才有可能。这是因为FPGA允许硬件结构适应不同的使用情况。在ASIC加速器的背景下,这通常是没有意义的。这是因为它产生的ASIC只能加速一种特定的拓扑结构,其范围非常有限。空间架构的一个限制是层数的可扩展性。每一层都有一个资源成本开销,而且在一个设备中可创建的层数有一个上限。因此,一些非常深的CNN可能不适合在单个设备上使用。 微软的脑波项目利用空间计算,用分布式方法克服了这一限制。
一旦空间DPU被利用,并且架构对特定的CNN非常具体,该架构可以在最小精度方面进一步定制,只支持每个CNN层所需的比特,以实现更高的性能和效率。 在MPE中,硬件支持整个网络所需的最高精度。
在定制精度和空间结构方面,FINN开创了第一个二进制神经网络加速器,为定制的低精度实现提供了许多证明点。这种灵活性是以编程的复杂性为代价的,而且性能特征通常很难描述,因为它们取决于正在实现的硬件架构的细节。
进一步的DPU变化
除了上述的空间DPU和MPE,还有许多变种。例如,有些利用了稀疏计算引擎,如EIE及其后续的ESE、SCNN、Cnvlutin、Cambricon-S和Cambricon-X。这些是唯一能从不规则稀疏性中获益的架构。最后,定制准确性的另一个方面是在运行时或执行时优化CNN。换句话说,除了使用静态固定的低精度,即硬件对所有变量的操作都是固定精度的,有些方法考虑在运行时使用可配置的位精度,可以利用算术操作中的位并行。在硬件实现方面,他可以在运行时以可编程的精度提供,这对位串联的实现是有效的。例如,Umuroglu等人用BISMO证明了位串行可以用最小的FPGA开销提供非常有吸引力的性能,Judd等人用一个名为Stripes的原型ASIC证明了ASIC也是如此。我们用名为Stripes的原型ASIC表明,ASIC也是如此。这个概念对MPE和空间架构都适用,但对MPE最有意义。
传统CMOS硬件架构的总结
我们分析了用于CNN推理的三类硬件架构:普通CPU、基于SIMD的矢量处理器(如GPU)和DPU,后者是专门用于加速深度学习工作负载的架构。表4给出了这些架构的概述。
请注意,"易用性 "包括计算内核的可编程性和一般可用性。专业化的程度包括为操作人员、精确支持和拓扑结构的定制。总之,在DPU的情况下,我们区分了张量处理器和空间架构,前者利用了处理引擎的矩阵,后者则可以利用FPGA为特定的拓扑结构进一步专业化。
CPU是最常见的解决方案,但它们是高功率的。 GPU和DPU提供最好的性能,但GPU在能源成本方面更昂贵。空间DPU架构在低延迟方面表现出色,并通过最大限度的定制提供最高的计算效率。 虽然CPU、GPU和DPU(MPE)使用逐层的顺序计算模型,但空间DPU同时执行网络的所有层。 ASIC、CPU和GPU形式的增强型拓扑结构提供了一套固定的本地数据类型,而FPGA则提供了最大的灵活性,可以采用任意的精度和数字表示,通过量化充分利用优化,但增强型方法默认为支持的精度更高,可以嵌入不太精确的变量。
然而,FPGA结构的可编程性也是以速度和能源为代价的。所有的架构都可以从粗粒度的剪枝优化技术中受益。只有稀疏的执行引擎可以从不规则的修剪中获益,比如突触修剪。我们还讨论了不同的部署方案。许多设备提供不同的功率和工作模式,作为吞吐量和功耗之间的不同折衷,以适应不同应用环境中潜在的非常不同的优化目标。
同样,批量大小、线程数量和流大小提供了吞吐量和延迟之间的另一种折衷。同样,这也是为了方便各种使用情况。最后,该表显示,投机性的方法,如Cerebras,可以提供基本的性能扩展性。总的来说,每种方法都有自己的优势和劣势,最佳解决方案在很大程度上取决于具体用例的细节。
硬件/软件代码设计的例子:基于FPGA的系统
FPGA编程
FPGA是可配置的集成电路,在性能、功耗和灵活性方面与其他硬件范式相比具有良好的权衡性。然而,对FPGA进行编程是一项困难和耗时的任务。 传统上,FPGA编程一直是精通数字设计和计算机结构的硬件设计师的任务。这些要求导致了软件开发人员和其他领域专家的学习曲线陡峭。为了降低准入门槛,人们越来越关注在更高的抽象水平上设计FPGA硬件。因此,各种方法将FPGA开发带入主流,使开发人员能够使用熟悉的语言,如C、C++、OpenCL,以及在某些情况下使用C#,在更高层次上设计FPGA。这提出了一个重要的问题。在更高的抽象层次上设计硬件有哪些额外的好处?高级语言(HLL)包含各种结构和设计模式,在功能上更具有表现力。此外,花在设计验证上的时间也是一个重要因素。 硬件描述语言,如Verilog和VHDL,是比较啰嗦的,因为它们关注的是最终实现的细节。较大的代码库不那么容易验证功能的正确性。另一方面,HLL的结构更紧凑,模拟速度更快。因此,设计者可以在相同的时间内进行更多的验证。尽管取得了这些进展,FPGA编程仍然很复杂。这迫使学术界和工业界开发新的编译器、框架和库,以缓解硬件设计。
高级合成和语言
高级合成(HLS),也称为行为合成或算法合成,是一个自动化的设计过程,将设计的功能描述作为输入,并输出RTL实现。它将一个未定时(或部分定时)的高层规范转换为完全定时的实现。 HLS过程开始于对功能描述的各种操作之间的数据依赖性的分析。这种分析的结果是数据流图(DFG)表示。 在生成DFG后,在分配阶段,HLS将每个操作映射到具有延迟和面积特性的硬件资源上。接下来,HLS在调度阶段为设计增加了时间的概念。调度需要DFG操作和资源,并考虑到延迟信息,确定执行它们的时钟周期。在这一步中,通过在操作之间添加寄存器并创建一个有限状态机来推断出顺序逻辑。
在过去的30年中,已经提出了许多HLS工具。 这些工具有多种输入语言,即使是相同的输入语言,它们也会进行各种内部优化,产生不同质量的结果。结果表明,一旦设计者掌握了特定基准的优化和约束条件,每个HLS工具都能显著提高性能。然而,学术性的HLS工具有一个较高的学习曲线,因为它们不太注重使用的方便性。商业的HLS工具具有更好的文档、稳健性和设计验证集成的优势。
至于HLS的输入语言,大多数HLL是C语言的变种。然而,从纯C规范中生成硬件有一些限制。首先,C语言没有定时和并发的概念。设计师必须依靠HLS工具来创建基于时钟的时序。同样,设计者必须指定一个并发模型或者依靠HLS来提取操作或进程之间的并行性。其次,C语言没有位精确的数据类型。它只提供 "本地 "数据类型,如char、int、long等,其大小是一个字节的倍数。第三,它缺乏硬件接口和通信渠道的概念。 SystemC作为一种HLS语言被采用来解决所有这些限制。
然而,SystemC还没有完全渗透到FPGA社区。 所有基于C语言(包括SystemC)的另一个共同问题是内存访问和建模。这些语言有一个扁平的内存模型,内存访问是通过指针完成的。 要么HLS决定了内存在硬件中的实现方式,要么设计者需要使用额外的HLS指令或库来正确地模拟内存子系统。最后,在基于C语言的HLS规范语言家族中,出现了SYCL语言。 SYCL(发音为 "镰刀")是一个行业驱动的标准,它将并行性添加到C ++中以设计异构系统。 SYCL程序在与支持SYCL的C ++编译器结合时表现最好,例如开源的数据并行C ++(DPC ++)编译器。
除了C语言的变体外,Bluespec是一种基于SystemVerilog的硬件描述和综合的开源语言。它提供了一个具有简洁语义的抽象层次,强调了架构方面。它可以被看作是一个高层次的功能HDL,其中模块使用SystemVerilog语法作为规则实现。这些规则被称为受保护的原子行动,并将行为表现为一个同时合作的有限状态机(FSM)。 最近在FPGA设计者中的另一种语言是Chisel。它以Scala为基础,支持使用高参数化生成器、面向对象和函数式编程的硬件定义。 像HLS Flow一样,它可以编译成一个RTLVerilog实现。
所有这些语言都有助于创建高效的硬件并大大减少开发时间,但它们仍然需要特定的编码方法。应用程序领域的增长和多样性也显示了这些编程语言的局限性。这将抽象水平进一步推向了特定领域语言(DSL)。近年来,我们观察到用于FPGA设计的大量DSL和框架的增长。 基于DSL的方法允许用户和工具使用领域知识来应用静态和动态优化。表5显示了多年来为FPGA计算开发的一些DSL和框架,按应用领域排列。该表显示了多年来为FPGA计算开发的一些DSL和框架,按应用领域排列。表中所有的方法在应用方面都是多样化的,但一个有趣的问题是:一般的分母是什么?据我们所知,大多数的方法大体上都是基于两种方法:要么将DSL规范直接编译成RTL实现,要么使用一个源到源的编译器。在后一种情况下,DSL编译器用不同的编程语言,如C ++,生成等效的源代码,以获得更标准化的HLS流程。作为本段的最后结论,设计更好的HLS编译器和语言的努力是当前FPGA研究的一个重要部分。
软件和硬件的整合
在微处理器上以软件形式运行一个应用程序比设计和运行专用硬件更容易获得,但可能导致性能降低和电力成本提高。另一方面,很难将应用程序分成软件和硬件部分。这个过程也被称为硬件/软件代码设计,将应用分为在微处理器上运行的软件和一个或多个定制的硬件或协处理器组件,以实现预期的性能目标。
不出所料,在这个领域有大量的研究。 本书提供了旧版FPGA技术中值得注意的背景信息,同时解释了代码设计的基本架构和设计方法。此外,还有一项综合研究,旨在对最先进的CPU-FPGA平台的微架构特性进行详细的评估和分析。还有描述大多数共享内存平台的白皮书和详细的基准测试。
两个主要的FPGA供应商,Xilinx和Intel,都有自己的解决方案。Xilinx运行时库(XRT)是以用户空间和内核驱动组件的组合形式实现的。 它同时支持基于PCIe的板卡和基于MPSoC的嵌入式平台。同样,赛灵思SDDoc和SDAccel也在2015年底向公众发布。前者仅适用于Zynq系列FPGA中的特定板卡,后者仅适用于基于PCIe的特定板卡,用于OpenCL计算。 自2020年以来,赛灵思推出了Vitis这个统一的平台。 Vitis统一软件平台是一个全面的开发环境,用于在赛灵思平台上构建和无缝部署加速应用,包括内部的Alveo卡、云端的FPGA实例和嵌入式平台。开发环境。此外,赛灵思最近在旗舰产品Versal下的工作是向代码设计应用迈出的另一步。 英特尔拥有开放式可编程加速引擎(OPAE),这是一个API库,供程序员创建利用FPGA加速的主机应用程序。同样,英特尔oneAPI是一个建立在标准之上的开放、集成的编程模型,以简化跨CPU、GPU、FPGA和其他加速器的以数据为中心的工作负载的开发和部署。
除了供应商的解决方案外,学术界和开源社区也试图简化应用程序、操作系统和硬件加速的整合。本书对包括操作系统中可重构计算方面的思想和关键概念进行了历史回顾和总结。它还概述了过去30年中针对可重构计算发表的和可用的操作系统。同样,可跨多个物理接口(PCIe、以太网、光链路)移植的FPGA驱动器的设计调查和工程,仍然是硬件/软件代码设计研究的一个重要部分。挑战来自于各种FPGA板,大量的接口和不同的用户要求。基本上,FPGA驱动必须允许设计者加载或重新配置应用位流,并支持FPGA和主机之间的数据传输。
一个关键的工程挑战是研究如何在硬件和软件组件之间划分驱动功能。一个不断增长的研究重点是在FPGA驱动器中实现多队列。还提供了各种主流学术和供应商解决方案的基准,用于FPGA领域的系统级驱动。
尽管现有的操作系统和驱动程序解决方案多种多样,但剩下的开放问题是标准化。行业范围内的标准化将使FPGA应用的开发速度加快,可移植性提高,并可(重新)使用。这方面的工作已经在进行中。 CCIX联盟和异构系统架构(HSA)基金会等标准已经取得了良好的进展。
为FPGA设计建立ML框架的案例
机器学习是增长最快的应用领域之一,基于FPGA的实现方式的需求越来越大,因为它们可以通过利用低精度算术、流媒体和硬件设计的重大定制来实现延迟、吞吐量和效率要求。对基于FPGA的实现方式的需求正在增加。数据流的实现(作为空间架构引入)和细粒度的稀疏性。为了使广大用户能够进行这些定制,并减少大量的工程努力,需要编译器和工具来满足使用FPGA的ML研究人员和领域专家的需求。 两个主要的ML框架,hls4ml和FINN,正在努力填补这一空白。鉴于上述工具、编译器、编程语言和代码设计解决方案,hls4ml和FINN都有可能进入更广泛的科学界。为了更好地理解这样一个工具流是如何工作的,下面几段将详细研究FINN编译器。
FINN编译器是一个开源的框架,用于在FPGA上生成空间DPU或流式数据流加速器。 FINN编译器有一个高度模块化的结构,如图12所示。
它允许用户交互式地生成针对特定DNN的架构。该框架提供了一个前端,一个转换和分析路径,以及多个后端,用于在资源和吞吐量限制方面探索设计空间。Brevitas是用于量化感知训练的PyTorch库,是本工作中使用的前端。它允许使用量化到几位的权重和激活来训练DNN,并将训练好的网络导出到FINN编译器使用的中间表示(IR)。转换和分析路径有助于生成DNN的有效表示。最后,后端包括一个代码生成器,用于创建可合成的加速器描述。该代码生成器可以作为一个独立的Vivado IPI组件来实现,也可以集成到各种外壳中,如Xilinx Alveo板或PYNQ嵌入式平台。
为了进一步处理,我们首先需要将DNN模型转换成FINN编译器的IR。前端阶段通过将PyTorch描述转换为一个名为FINN-ONNX的IR来处理这个问题。
IR以ONNX为基础,这是一种开源的交换格式,使用protobuf描述来表示DNN。包括一些标准运算符,用户可以很容易地创建自己的运算符来定制模型。节点代表层,边带着一个层的输出,是另一个层的输入。 框架利用定制ONNX表示法的能力来增加特定应用的节点和属性。每个节点都被标记为输入、参数(权重和激活)和输出量化,允许量化感知优化和映射到为量化计算优化的后端基元。在编译器流程中,节点通过一系列的转换路径被转换为特定于后端的变体。
FINN编译器的主要原理是一个图的转换和分析路径,对模型的IR进行修改或分析。该路径将一个IR图作为输入,(a)DNN寻找一个特定的模式,以特定的方式修改图,并输出修改后的图,或者(b)对DNN进行分析,产生关于其属性的元数据。需要应用各种转换来将模型转化为表示,并从中生成代码,最后生成一个硬件加速器。主要的相关转变总结如下。
PyTorch对网络的描述大多是量化的,但仍包括例如再处理、每通道缩放或批量规范层。为了从模型中生成一个硬件加速器,我们需要将这些浮点运算吸收到一个多级阈值中,以创建一个功能相同的整数运算网络。正如Umuroglu和Jahre所描述的,实现这一目的的转变被称为合理化。在合理化过程中,浮点运算被移到彼此相邻的地方,折叠成一个运算,并被吸收到随后的多阈值节点中。
然后,图的高级操作被简化为基于FINNHLS的硬件库中存在的更简单的实现。例如,卷积被简化为一个滑动窗口节点和一个后续的矩阵矢量节点,而集合操作则由一个滑动窗口和一个后续的聚合运算器实现。由此产生的图由各层组成,可以转化为相当于硬件的构件。每个节点对应一个VivadoHLS C ++函数调用,从该函数中使用IP。
每层的区块可以用Vivado生成。每个硬件构件所使用的资源可以通过从FINN传递到Vivado的特定属性来控制。例如,可以使用LUT或DSP块进行乘法,参数可以存储在分布式RAM、块RAM或超RAM中。
最后,折叠过程将计算资源分配给每一层,并对并行程度进行微调,以便在平衡的管道中实现预期的吞吐量。为了在不重新配置的情况下实现每层的专业化,并尽量减少延迟,FINN创建了专用的每层硬件,并与FIFO通道相互连接。因此,L层之间的最外层循环总是完全管道化的。当指定折叠时,可以为每个节点创建一个资源估算。有几种方法来估计资源。 甚至在IP块从HLS层生成之前,你就可以使用基于FINN-R文件概念的分析模型来估计每层的资源。 也可以在IP生成后从VivadoHLS中提取估计值,但这些结果是估计值,由于综合优化的原因,可能与最终实现的资源使用量不同。
后台负责使用IR图和后台特定信息创建部署包。这也是利用转换的概念来实现的。在各层之间插入一个FIFO,以获得推理加速器。这可以由FINN编译器自动确定大小。然后将单个IP块缝合在一起,形成复合材料。缝合后的IP可以手动集成到系统中,或插入到目标平台上的适当外壳中。如果目标平台是Alveo卡,设计将作为Vivado设计检查点(DCP)导出,随后生成并链接Xilinx Vitis对象文件。
硬件/软件协同设计和基于FPGA的系统概要
总之,CPU是CNN推理的最常见的解决方案,但它们很昂贵。 GPU和DPU提供最好的性能,而GPU在能源成本方面更加昂贵。 FPGA提供了几种权衡,可能很适合快速变化的应用领域。 FPGA可以采用任意的精度和数字表示。这提供了最大的灵活性,最大限度地利用了量化的优化。另一方面,增强的方法增加了默认支持的精度,并允许嵌入低精度变量。 此外,空间数据流方法允许更低的延时。 然而,FPGA编程的复杂性限制了其部署。
hls4ml和FINN等工具是专门为ML领域创建的框架,可以自动完成终端用户的硬件生成过程,从而隐藏了FPGA的相关设计复杂性,使其可以用于上述终端应用。
超越CMOS的神经形态硬件
在快速增长的机器学习应用中,迫切需要高效的硬件实现。大多数努力都集中在数字CMOS技术上,如实现。
它基于通用的TPU/GPU、FPGA和更专业的ML硬件加速器。在过去十年中,这种硬件平台的性能和能源效率的稳步提高可以归功于非常先进的10纳米以下CMOS工艺的使用以及电路、架构和算法的整体优化。这包括,例如,积极的电压供应比例,非常深的流水线,在架构中使用广泛的数据重用,减少重量精度和算法激活。因此,非常紧凑的最先进的神经网络,如基于3.4M参数和每次推理300M乘法和加法运算的MobileNet,现在可以完全集成到一个芯片中。然而,在所有这些方面,进展是饱和的,我们不能依赖摩尔定律的下降。
另一方面,ML算法正变得越来越复杂,所以进一步的进展是必不可少的。例如,变压器网络是目前许多ML任务的最先进的方法,它有几千亿个参数,每次推理可以进行几百兆次的操作。此外,变压器的功能性能通常随着模型的大小而提高。训练这样的模型需要大规模的数据中心规模的资源(例如,千TPU年),但在资源受限的边缘设备上执行推理是非常困难的。
建立更有效的硬件的机会可能来自于生物神经网络。事实上,人脑的突触比最大的跨网络的重量多1000多倍,被认为是非常节能的,可以作为开发神经形态硬件的普遍动力。 CMOS神经形态电路有很长的历史。然而,为了实现神经形态计算的全部潜力,可能需要CMOS以外的新设备和电路技术,以便更有效地实现生物神经系统的各种功能。
模拟矢量乘以矩阵乘法
在过去的二十年里,高密度模拟级非易失性存储器的出现重新激发了人们对逐向乘法(VMM)模拟电路实现的兴趣。神经网络在训练或推理中最常见和最常执行的操作。在最简单的情况下,这样的电路包括一个作为可配置电阻的记忆单元矩阵来编码矩阵的权重(突触)和作为神经元的外围感应放大器(图13)。由于输入矢量被编码为施加在存储矩阵行中的电压,在实际接地的列中流动的电流与VMM的结果相对应。由于加法和乘法是分别通过基尔霍夫定律和欧姆定律在物理层面上进行的,如果存储设备很密集,而且电导是可调整的(即多状态),这种方法可以非常快速和节能。部分能源效率来自于执行 "内存 "计算,这减少了计算过程中穿越或进出芯片的数据量(对应于突触权重)。这样的通信开销可以支配最先进的数字CMOS实现的能量消耗。
这种电路的实际应用所面临的一个普遍挑战,特别是在使用最有前途的新存储器技术时,是I-V特性的变化,例如改变存储器状态所应用的开关电压。鉴于这一挑战,最简单的应用是早期点火率神经网络的异地训练推理加速器,即所谓的第二代人工神经网络(ANNs)的阶梯式反应神经元。在这种应用中,只有在需要对新的推理功能进行编程时才会不定期地更新存储设备。
因此,交叉点设备的电导率可以被调整为更慢和更能容忍设备变化的写入方案。例如,在软件检测出权重后,使用反馈写入验证算法对存储单元逐一进行编程,该算法可以适应每个设备的特定I-V特性。出于同样的原因,切换耐久性,即一个存储设备可以可靠地被编程的次数,以及写入速度/能量都不那么重要。此外,许多神经网络推断中的VMM操作可以在不损失精度的情况下以适度的亚8位精度进行。这进一步放宽了对模拟特性的要求,并增加了I-V非梯度性和噪声。
一些最复杂的神经形态推理电路已经在更成熟的浮动门晶体管存储器电路中得到了证明。直到最近,这种电路主要是在 "突触晶体管 "中实现的,它可以用标准的CMOS技术来制造,并且已经展示了几个复杂和高效的系统。然而,这些器件相对较大的面积(>103 F2,其中F是最小特征尺寸)和较大的互连电容导致了高时间延迟。最近的工作重点是用密度高得多的商用NOR闪存阵列(约40 F2)实现混合信号网络,该阵列是为模拟计算应用重新设计的。
例如,参考文献中报道了一个使用改良的NOR闪存技术在180纳米工艺上制造的10万+单元的两层感知器网络的原型。 它具有高度的可靠性,长期漂移和温度敏感性可以忽略不计,并可重复对MNIST基准集图像进行分类,保真度约为95%,时间延迟小于1微秒,每个图案的能量消耗小于20纳焦。
能量-延迟产品比以类似保真度执行相同任务的最佳(当时)28纳米数字实施方案要好六个数量级。
最近的理论工作预测,神经形态推理电路可以在密度更大的3D-NAND闪存中实现,最终可以扩展到每平方英寸10兆比特的密度。从长远来看,也许最有希望的是基于各种金属氧化物-电阻式随机存取(简称ReRAM,也叫金属氧化物忆阻器)的电路,特别是被动集成(0T1R)技术。事实上,由于采用了离子开关机制,尺寸小于10纳米的ReRAM器件保持了出色的模拟特性和年度规模保留。此外,低温制造预算能够实现多个ReRAM横梁电路的单片垂直集成,进一步提高有效密度。 基于ReRAM的神经形态电路的演示正在迅速扩大其复杂性。然而,ReRAM技术仍然需要改进。除了高器件变异性,另一个遗留问题是高写入电流和工作电导率。这需要减少至少一个数量级,以减少外围设备上的大量开销。
训练硬件加速器的设备要求是不同的,而且要严格得多。例如,权重是经常更新的,不需要长期保留。这允许在模拟VMM电路中使用易失性存储器,如界面记忆体或基于电子捕获/放电开关的固体电解质存储器,或在基于电容的存储器中通过交叉点晶体管控制电流。然而,最困难的挑战是训练操作所需的更高的计算和权重精度,以及需要一个有效的方案来更新权重。这就需要大幅增加设备变体的数量。一个额外的相关要求是,当应用一个写脉冲时,设备电导的变化必须不依赖于其当前状态(所谓的更新的线性特性)。否则,准确的电导率调整将需要根据当前设备状态发送一个独特的写入脉冲。这几乎与快速(平行)权重更新不相容。
相变存储器也被作为模拟VMM电路中可变电阻的候选者进行了研究。然而,主要的缺点是电导率状态随着时间的推移会有明显的漂移。 1T铁电RAM器件已经证明了高写入持久性、高密度(在垂直3D-NAND等集成结构中)和长保留。这类设备在训练和推理加速器中的应用大有可为,但其模拟特性可能不如ReRAM。磁性器件(如磁隧道结存储器)的一个重要缺点是其低通/断电流比,这对于真正的VMM电路来说是不够的,而且按比例缩小的器件的模拟特性很低。
利用光来实现快速、大规模的扇出式互连和线性计算的可能性,如乘法和加法运算,促使了光子神经形态计算的研究。最近,在现代神经网络的背景下,人们提出了各种具有固定和可编程功能的实施风味。具体来说,已经报道了一个由多个3D打印的光学层组成的系统,这是一个具有特别选择的跨反射特性的区域(神经元)的网状结构,能够进行类似于卷积神经网络的模式分类推理。通过传输带有振幅编码输入的相干光,可以以光速进行有用的计算。具体来说,光线在通过光学系统时发生衍射和干扰,并最终被引导到输出层中与图案类别相对应的特定区域。已经报道了具有可配置权重的光学神经形态系统。输入是由光的能量编码的,而权重是由PCM设备的光衰减编码的。光线通过PCM装置,这样就可以计算出产物。建议以光的振幅对输入进行编码,来自输入的光被耦合并通过一个基于配备有金属加热器的微镜谐振器(MRR)的频率选择权重库来进行乘法运算。特别是,通过调整提供给每个MRR的电流,通过加热来控制MRR的耦合(即权重)。在这些可重新配置的实现中,产品的累积(即VMM中的求和操作)是通过整合光电探测器的光诱导电荷来完成的。已经提出了一个非常积极的时分复用方案来计算VMM,其中权重和输入都是用相干的光振幅编码的。 在这样的方案中,输入光被扇成n个通道,使用分光器与n个光学编码权重相结合,并传输到n个同调光电探测器,在那里n个产物被平行计算。基于马赫-泽恩德干涉仪网格的全光前馈推理使用了权重矩阵的单元分解。单元矩阵变换在一个光学分光器和移相器中实现,而对角线矩阵在一个光学衰减器中实现。
原则上,单次乘法和加法操作的亚aJ能量和亚ps延迟在光计算中是可能的。然而,主要的挑战是光学元件的尺寸非常大,以及转换到光域和从光域转换的I/O开销非常高。由于电通信开销大,依赖向电域转换的设计尤其受到光器件低集成密度的影响。这已被证明会压倒基于ReRAM的(更密集的)电路的系统级性能。光学系统最终将受益于非常宽的(>10,000)内部产品和/或使用深度时分复用来摊销I/O的开销。然而,电荷积分中可能存在的非线性问题以及这种宽内积计算的有用性仍不清楚。
随机的向量乘以矩阵的乘法
在大脑中进行的计算在本质上是随机的,例如,当相同的刺激被重复呈现时,会观察到本质上不同的神经反应。这样的噪音操作是由随机神经网络模仿的,如玻尔兹曼机或深度信念神经网络。在最简单的情况下,这种网络由两个计算随机点积的神经元组成。随机函数可以在突触侧或神经元侧实现。在后一种情况下,神经元首先确定性地计算输入和相应权重的点积。然后将结果传递给一些 "随机的 "激活函数。例如,它被用作一个西格蒙德概率函数的参数,该函数决定了获得高输出的概率。由于突触与神经元的比例很大(超过100),有效地实现高效的确定性点积对于实现高性能的概率神经网络至关重要。然而,以前的工作表明,即使是最简单的确定性神经元也会产生大量的开销。例如,一个神经网络模型被证明占据了30%的面积,消耗了40%的能量。因此,神经形态硬件在有效实现随机神经元方面有好处。
有两种主要方式可以利用新兴设备来实现随机功能。一个是利用存储器件的I-V特性,无论是动态的还是静态的。具体来说,前一种方法允许存储器状态以一种基本随机的方式进行切换。例如,在MTJ存储器中,热波动导致低电阻平行状态和高电阻反平行状态之间的概率变化,在切换期间最终存储器状态的概率可以由自旋扭矩电流控制。通过熔融淬火重建原子结构本身是随机的。在相变存储器(PCM)中,由于熔融淬火导致的原子结构的重新配置基本上是随机的。第二种方法是利用存储器件中的内在和外在的电流波动。第二种方法是利用存储器件的内在和外在电流波动,如ReRAM器件中的随机电报或热噪声,或纳米级浮动门晶体管中的射出噪声。在这种方法中,流经神经元的噪声电流与一个参考值进行比较,例如使用一个简单的锁存器,并实现一个概率激活函数。
前一种方法的主要问题是许多存储器的耐力有限,而且在重复使用时,随机切换特性会发生漂移。随机切换特性随着重复切换而变化。为了实现可扩展的随机点积电路,需要整合多种存储设备技术。例如,使用ReRAM的人工突触和使用MTJ的神经元的整合。另一方面,一个只使用ReRAM器件的模拟电路(图13)可以用来实现概率VMM的第二种方法,尽管信噪比(SNR)很低。此外,这种电路的信噪比可以通过调整读出电压来控制。因此,通过控制有效温度(西格玛概率函数的斜率),随机退火可以在玻尔兹曼机中以运行时间高效的方式实现。第二种方法的缺点是,由于读出电流低,速度较慢。第二种方法的缺点是,由于读取电流小,所以速度较慢,这可以通过使用外部噪声来解决。最后,噪声的质量对功能表现的影响也是大家共同关心的。这个问题还没有得到系统的研究,但对于真正的随机操作,高斯热噪声和射击噪声应该更有优势。
扣球神经元和突触可塑性
尽管最近在算法上有所进步,但在生物学上最合理的尖峰神经网络(SNN)在功能上仍然不如简单的ANN。如果简单的ANNs有优势,那么开发高效的SNN硬件的理由是需要与大脑有效地对接和建模。开发高效的SNN硬件的理由是需要与大脑对接并有效地对大脑进行建模。SNN的另一个有趣的特点是本地权重更新规则。它只需要来自突触前和突触后神经元的信息,并可用于在大规模神经形态硬件上提供实时训练能力。它可以用来在大型神经形态硬件上提供实时训练能力。
在最简单的SNN模型中,信息被编码为尖峰时间的相关性,网络功能由突触定义。除了VMM之外,SNN模型还包括其他各种特征,如神经元的漏电-积分-火灾(LIF)功能、短期可塑性(STP)、长期痴呆(LTP)和尖峰时间依赖可塑性(STDP)。(LIF神经元模拟了神经元膜的动态过程,而突触可塑性模拟了生物网络的学习和记忆机制。LIF神经元模拟了细胞膜的动态过程,突触可塑性模拟了生物网络的学习和记忆机制。例如,STP是执行短期记忆的突触强度的瞬时变化。如果突触强度的调整没有立即得到加强,记忆就会丢失,突触负荷就会恢复到原来的平衡状态。
STDP是Hebbian学习的一个随时间变化的版本。STDP的目标是,当突触前和突触后的尖峰以预期的因果时间顺序发生时,提高突触效率,而当它们不发生时,削弱突触效率。
传统的电路技术需要大的电容,这使得LIF神经元难以以紧凑的方式实现,生物集成时间为几毫秒。为了解决这个问题,人们提出了基于易失性存储器的电路(使用丝状物、界面或莫特绝缘体等开关机制的漏电集成电路)。在这样的实施方案中,积分电流被编码为易失性存储设备的导电状态。在具有S型负差分电阻(NDR)的阈值开关(易失性)存储器件中,已经证明了神经元的尖峰功能。具有负差分电阻(NDR)I-V特性的阈值开关(易失性)存储器件。一个神经元的尖峰功能已经被证明。这种方法的总体思路与基于连接到电阻-电容电路的S型(NDR)器件的振荡器电路类似。
从STP到LTP的转变在固体电解质设备中得到了模拟。具体来说,形成的是短的、不频繁的和薄的丝状物,这些丝状物是不稳定的,而且很快就会融化,因此代表了一种短暂的记忆。另一方面,通过重复或延长书写脉冲,可以形成更粗、更稳定的细丝。这使我们能够模仿向LTP的过渡。例如,通过仔细选择突触前和突触后写入电压脉冲的形状,已经提出了使用PCM和金属氧化物ReRAM的STDP窗口的实施方案。
一些基于新设备技术的小规模尖峰神经形态系统已经被证明。其中包括使用金属氧化物存储器的STDP机制的偶然性检测,以及使用漫游存储器罐的时间数据分类。然而,这种先进硬件的进展已经远远落后于较简单的ANN推理加速器。其主要原因是,这类应用需要新设备提供更多的功能,而设备变异性对SNN行为和性能的影响更为严重。例如,SNN依靠恒定幅度的尖峰来更新并行的多个设备的电导。因此,I-V开关电压的微小变化会导致电导率的巨大变化和STDP特性的巨大变化。另一方面,如上所述,实施较简单的原地训练的ANN的难度较小。这是因为这种网络的写入振幅电压可以根据电导调谐期间的反馈信息为每个设备独立调整。
基于快速单通量(RSFQ)的超导电路适用于尖峰电路,因为信息是在SFQ电压脉冲中编码的。例如,Josephson-Josephson结尖峰神经元已被证明可以工作到50GHz。 然而,这种方法所面临的历史性挑战包括劣质的制造技术,由于低温操作而产生的应用限制,以及缺乏高效的模拟记忆电路。光子尖峰神经网络和混合超导/光电神经形态电路与已经讨论过的光子神经形态推理方法有一些相同的挑战。
水库计算
递归神经网络,如谷歌神经机器翻译模型,由于其固有的记忆特性,特别适合处理顺序和时间数据。蓄水池计算(RC)网络是一种特殊类型的循环网络,它能有效地学习,并以大脑皮层的信息处理为动力。RC网络的主要组成部分是储能器,它是一个非线性的递归网络,将输入映射到高维时空表征中,并对以前的输入和网络状态具有消退记忆的特性。另一个组件是一个读出层,将中间状态映射到输出。所有水库连接都是固定的,只有读出层的权重可以学习。由于这一点和稀疏的中间表征,可以采用更快的在线算法来训练这样的网络,这是这种方法的主要优势。
读取层和储存器都可以在这里介绍的模拟VMM电路中实现。有一些有趣的案例,超导、磁性和光子设备中的非线性物理学可以用来实现水库。例如,语音元音识别已经在一个RC中得到证明,其中储能器在四个基于MTJ的自旋扭矩振荡器(STO)中实现。在这种演示中,对应于语音元音的时间输入首先被转化为频域。然后将其映射到应用于MTJ器件的相应直流偏置电流。储能器利用了STO频率对直流电流的非线性依赖和MTJ自由层自旋的历史依赖性瞬变。
已经提出了各种光子库,例如,利用具有时延反馈的光学系统的瞬时特性,或通过波导、分流器或合流器叠加被动循环光,并通过非线性转换到电子域实现高维响应。最近,有人提出使用一种高效和高度的最近,人们对超导电路的动力学进行了研究,以实现高效和非常快速的水库实现。具体来说,所提出的水库是基于一个由JJ链形成的约瑟夫森传输线(JTL):来自JTL一端的输入脉冲会引起结点的快速级联相位滑移,将SFQ脉冲传播到另一端。由于JJ相互调制电流,实现了一个复杂的动态状态。
对RC计算方法有一些普遍的担忧。在算法层面上,与最先进的方法相比,RC的表现很差,如果没有进一步的算法改进,目前还不清楚在线训练的好处是否能够弥补这一缺陷。各种硬件实现的主要关注点仍然与设备的变化有关。例如,硬件是否能够对相同的输入产生可重复的结果。在磁性设备的情况下,设备之间的耦合是有限的,这可能会影响储层的有效性。
跨维计算/关联记忆
最近在ReRAM和PCM器件中展示了超维计算电路。跨维计算的低级行为与关联性和内容可寻址存储器的行为密切相关。具体来说,这种方法的核心是一个关联内存阵列电路,它输出的内存行条目与作为搜索键的二进制输入矢量的汉明距离最接近。假设用-1和+1编码的对称二进制表示,汉明距离与点积呈线性关系,等于输出矢量长度减去输入矢量之间的点积。因此,超维计算的关键功能仍然是VMM操作:一旦VMM操作完成,结果将被传递给赢家通吃电路(softmax函数的一个较难的版本),它放弃所有其他输出并确定具有最小汉明距离的元素以最小的汉明距离。在进一步的简化中,VMM的输入和权重都是二进制的。
原则上,二进制VMM可以比全模拟版本更有效地在硬件中实现。与二元神经网络一样,明显的权衡是降低了超维计算的功能性能。超维度的另一个特点是,它有利于快速 "一次性 "或增量学习,以换取更多的冗余记忆。请注意,快速 "一次性 "学习并不是超维计算所独有的。例如,用于训练联想神经网络的Hebbian学习及其许多变体都是自然递增的,因为它们有一个递归形式,只能根据当前的权重值和存储在网络中的新模式来修改权重。
摘要
目前正在探索一些新的设备和电路技术来实现神经形态的硬件。使用浮动门存储器的模拟内存计算的神经形态推理加速器可能是最接近于广泛使用的。鉴于技术的成熟性、应用的实用性以及与传统(数字CMOS)电路实现相比具有竞争力的性能,基于浮动门存储器的模拟内存计算的神经形态推理加速器可能最接近于广泛采用。已经提出了一些在功能上有优势的建议。要比较其他神经形态方法的性能并不容易,因为许多建议都是针对功能较少的算法。除非ML算法得到显著改善,或者出现了能够从高性能、低精度的神经形态硬件中获益的新应用,否则低劣的功能性能可能会限制其他方法的效用。实现神经形态计算概念的主要挑战仍然是新设备行为的巨大差异性。
观点
这篇评论强调了快速ML的一些激动人心的应用,这些应用使科学发现在各个领域得以实现。该领域发展迅速,许多令人振奋的新研究和成果频繁发表。然而,这是一个相对年轻的领域,具有很大的潜力,但在许多领域也有很多未解决的问题。我们希望对科学用例及其重叠的讨论,除了在本评论中提出的那些,将激发读者享受和追求进一步的应用。然后,我们概述了开发强大的ML算法的技术,这些算法需要在一个高吞吐量、低延迟的环境中运行。这既包括系统设计和培训,也包括这些ML模型的有效部署和实施。硬件实现方式分为两类:目前的传统CMOS技术和更有前途的CMOS技术。就传统CMOS而言,在摩尔定律消亡后,最近的重点是为ML设计的先进硬件架构。本文概述了常见的和新的硬件架构以及它们的优点和缺点。对于许多硬件架构来说,一个重要的领域是为特定的硬件编码给定的ML算法,包括算法的架构和可编程性。一个特别相关和重要的硬件平台的例子是FPGA。最后,我们介绍了CMOS技术的未来,它为实现ML模型提供了超高效和令人兴奋的技术。这些技术是推测性的,但它们比传统技术有数量级的性能改进;ML训练和部署技术以及计算机架构都是非常快速发展的领域,新作品出现的速度甚至连本文都无法跟上。这两个领域都在引入新技术,但特别重要的是对不同硬件的新算法代码设计的理解,以及部署这些算法的工具流程的易用性。这里的创新将使强大的新ML硬件得以迅速和广泛地引入;除了CMOS技术,这种实用的考虑也很重要。在不久的将来,我们将重新审视这些话题,看看应用程序、ML技术和硬件平台如何快速发展,最重要的是,它们的汇合如何导致科学领域的范式转变的突破。
与本文相关的类别