一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于硬件感知的机器学习模型训练的方法和装置与流程

2022-03-04 23:39:14 来源:中国专利 TAG:


1.本公开概括而言涉及人工智能,更具体而言,涉及用于硬件感知的机器学习模型训练的方法和装置。


背景技术:

2.诸如神经网络之类的机器学习模型是有用的工具,已经证明了它们解决关于模式识别、自然语言处理、自动话音识别等等复杂问题的价值。神经网络例如使用排列成层的人工神经元来操作,这些层处理从输入层到输出层的数据,在数据处理期间向数据应用加权值。这种加权值是在训练过程期间确定的。


技术实现要素:

3.根据本公开的实施例,提供了一种用于训练机器学习模型的装置,该装置包括:配置确定器,用于确定要在其上执行所述机器学习模型的目标硬件平台的硬件配置;层生成器,用于基于所述硬件配置来向所述机器学习模型的层指派稀疏配置;以及部署控制器,用于响应于所述机器学习模型的输出满足各个阈值而将所述机器学习模型部署到所述目标硬件平台,所述输出包括在所述层具有指派的稀疏配置的情况下执行所述机器学习模型的时钟周期的数量。
4.根据本公开的实施例,提供了一种用于训练机器学习模型的装置,该装置包括:用于确定要在其上执行所述机器学习模型的目标硬件平台的硬件配置的装置;用于基于所述硬件配置来向所述机器学习模型的层指派稀疏配置的装置;以及用于响应于所述机器学习模型的输出满足各个阈值而将所述机器学习模型部署到所述目标硬件平台的装置,所述输出包括在所述层具有指派的稀疏配置的情况下执行所述机器学习模型的时钟周期的数量。
5.根据本公开的实施例,提供了一种包括指令的机器可读介质,所述指令当被执行时使得机器至少:确定要在其上执行机器学习模型的目标硬件平台的硬件配置;基于所述硬件配置来向所述机器学习模型的层指派稀疏配置;并且响应于所述机器学习模型的输出满足各个阈值而将所述机器学习模型部署到所述目标硬件平台,所述输出包括在所述层具有指派的稀疏配置的情况下执行所述机器学习模型的时钟周期的数量。
6.根据本公开的实施例,提供了一种用于训练机器学习模型的方法,该方法包括:确定要在其上执行所述机器学习模型的目标硬件平台的硬件配置;基于所述硬件配置来向所述机器学习模型的层指派稀疏配置;并且响应于所述机器学习模型的输出满足各个阈值而将所述机器学习模型部署到所述目标硬件平台,所述输出包括在所述层具有指派的稀疏配置的情况下执行所述机器学习模型的时钟周期的数量。
附图说明
7.图1是包括示例模型训练控制器的示例计算系统的示意图。
8.图2是图1的示例模型训练控制器的示例实现方式的框图。
9.图3是图1和/或图2的示例模型训练控制器训练机器学习模型的框图。
10.图4是图1和/或图2的示例模型训练控制器训练机器学习模型的另一框图。
11.图5是图1和/或图2的示例模型训练控制器训练机器学习模型的又一框图。
12.图6a描绘了来自由图1和/或图2的示例模型训练控制器训练的第一示例机器学习模型的第一示例输出数据的第一表格。
13.图6b描绘了来自未被图1和/或图2的示例模型训练控制器训练的第一示例机器学习模型的第二示例输出数据的第二表格。
14.图7a描绘了来自由图1和/或图2的示例模型训练控制器训练的第二示例机器学习模型的第三示例输出数据的第三表格。
15.图7b描绘了来自未被图1和/或图2的示例模型训练控制器训练的第二示例机器学习模型的第四示例输出数据的第四表格。
16.图8a描绘了来自由图1和/或图2的示例模型训练控制器训练的第三示例机器学习模型的第五示例输出数据的第五表格。
17.图8b描绘了来自未被图1和/或图2的示例模型训练控制器训练的第三示例机器学习模型的第六示例输出数据的第六表格。
18.图9a是基于图6a的第一示例输出数据和图6b的第二示例输出数据的第一示例图线。
19.图9b是基于图7a的第三示例输出数据和图7b的第四示例输出数据的第二示例图线。
20.图9c是基于图8a的第五示例输出数据和图8b的第六示例输出数据的第三示例图线。
21.图10a是示例激活稀疏百分比相对于示例层索引的第一图线。
22.图10b是由图1和/或图2的示例模型训练控制器训练的示例机器学习模型的示例稀疏百分比相对于示例层索引的第二图线。
23.图10c是未被图1和/或图2的示例模型训练控制器训练的示例机器学习模型的示例稀疏百分比相对于示例层索引的第三图线。
24.图11描绘了可被图1和/或图2的示例模型训练控制器用来训练示例机器学习模型的示例硬件配置。
25.图12是表示可被执行来实现图1和/或图2的示例模型训练控制器以基于目标硬件平台的配置来训练机器学习模型的示例机器可读指令的流程图。
26.图13是表示可被执行来实现图1和/或图2的示例模型训练控制器以基于目标硬件平台的配置来训练机器学习模型的示例机器可读指令的另一流程图。
27.图14是被构造来执行图12和/或图13的示例机器可读指令以实现图1和/或图2的示例模型训练控制器的示例处理平台的框图。
28.图15是示例软件分发平台的框图,用于将软件(例如,与图12和/或图13的示例机器可读指令相对应的软件)分发到客户端设备,例如消费者(例如,用于许可、销售和/或使用)、零售商(例如,用于销售、再销售、许可和/或次级许可)和/或原始设备制造商(oem)(例如,用于包括在要被分发到例如零售商和/或直接购买客户的产品中)。
具体实施方式
29.附图不是按比例的。一般而言,相同的标号将在各幅图和伴随的书面描述的各处用于指代相同或相似的部件。
30.除非另有具体声明,否则本文使用诸如“第一”、“第二”、“第三”等等之类的描述语,不输入或以其他方式指示出任何优先权、物理顺序、在列表中的排列和/或以任何方式排序的含义,而只是用作标签和/或任意名称来区分元素,以便易于理解公开的示例。在一些示例中,描述语“第一”在详细描述中可用于提及某一元素,而同一元素在权利要求中可用不同的描述语来提及,例如“第二”或“第三”。在这种情况下,应当理解这种描述语仅仅用于明确地识别那些元素,这些元素例如可能在其他情况下共享同一名称。
31.人工智能(artificial intelligence,ai),包括机器学习(machine learning,ml)、深度学习(deep learning,dl)和/或其他人工机器驱动的逻辑,使得机器(例如,计算机、逻辑电路,等等)能够使用模型来处理输入数据,以基于模型先前经由训练过程学习到的模式和/或关联来生成输出。例如,该模型可被用数据来训练以识别模式和/或关联,并且在处理输入数据时遵循这种模式和/或关联,从而使得(一个或多个)其他输入产生与识别的模式和/或关联相一致的(一个或多个)输出。
32.存在许多不同类型的机器学习模型和/或机器学习体系结构。在本文公开的示例中,使用了神经网络(例如,卷积神经网络、深度神经网络、图神经网络,等等)模型。一般而言,适合用于本文公开的示例方案中的机器学习模型/体系结构包括卷积神经网络。然而,可额外地或替换地使用其他类型的机器学习模型,例如人工神经网络、两层(2层)径向基神经网络(radial basis neural network,rbn)、学习向量量化(learning vector quantization,lvq)分类神经网络,等等。
33.一般而言,实现ml/ai系统至少涉及两个阶段,一个是学习/训练阶段,一个是推断阶段。在学习/训练阶段中,使用训练算法来训练模型,以根据基于例如训练数据的模式和/或关联来操作。一般而言,该模型包括指导输入数据如何被变换为输出数据的内部参数,例如通过模型内的一系列节点和连接来将输入数据变换为输出数据。此外,超参数被用作训练过程的一部分,以控制如何执行学习(例如,学习率、机器学习模型中使用的层的数目,等等)。超参数被定义为在发起训练过程之前确定的训练参数。
34.基于ml/ai模型的类型和/或预期输出,可执行不同类型的训练。例如,强化学习包括机器、代理等等与环境交互,执行动作,并且通过试错技术来学习。在其他示例中,监督训练使用输入和相应的预期(例如,标记的)输出来为ml/ai模型选择参数(例如,通过在所选参数的组合上迭代),以减小模型误差。如本文所使用的,标记(labelling)是指机器学习模型的预期输出(例如,分类、预期输出值,等等)。或者,无监督训练(例如,用于深度学习、机器学习的子集等等中)涉及从输入推断模式,以选择用于ml/ai模型的参数(例如,没有预期(例如,标记的)输出的益处)。
35.在本文公开的示例中,ml/ai模型是利用强化学习来训练的。然而,可额外地或替换地使用任何其他的训练算法。在本文公开的一些示例中,执行训练,直到误差水平不再减小和/或以其他方式满足阈值(例如,准确度阈值、训练阈值,等等)为止。在本文公开的一些示例中,执行训练,直到执行经训练的机器学习模型或其(一个或多个)部分(例如,经训练的机器学习模型的一个或多个层)的周期(例如,时钟周期、指令周期、处理器周期,等等)的
数目或数量满足阈值(例如,周期阈值、时钟周期阈值、指令周期阈值、处理器周期阈值、训练阈值,等等)为止。在本文公开的示例中,训练可在计算系统上本地执行和/或在与计算系统通信耦合的外部计算系统(例如,中央设施、一个或多个服务器,等等)远程执行。利用控制如何执行学习的超参数(例如,学习率、机器学习模型中要使用的层的数目,等等)来执行训练。在本文公开的示例中,控制模型性能和训练速度的超参数是学习率、纪元(epoch)数、神经网络的拓扑结构、神经网络的大小和/或(一个或多个)正则化参数。这种超参数是通过例如试错来选择的,以达到最佳模型性能。在一些示例中,可执行重训练。这种重训练可响应于用户的(一个或多个)推翻而执行。
36.训练是利用训练数据来执行的。在本文公开的示例中,训练数据源自于数据库(例如,开源训练数据源、公开可用的训练数据源、图像数据库,等等)。在本文公开的一些示例中,当使用监督训练时,训练数据被标记。标记是由用户手动或者由自动化数据预处理系统应用于训练数据的。在一些示例中,训练数据被细分。例如,训练数据可被细分为用于训练模型的第一部分数据和用于验证模型的第二部分数据。在其他示例中,训练数据可被细分为用于训练模型的第一部分数据和用于微调和/或在模型训练之后以其他方式调整模型的第二部分数据。
37.一旦训练完成,模型就被部署来用作可执行结构,该结构基于模型中定义的节点和连接的网络来处理输入并且提供输出。模型被存储在计算系统的存储器中或者远程计算系统的数据库中。模型随后可由该计算系统或者不同的计算系统执行。
38.一旦经过训练,部署的模型就可在推断阶段中被操作来处理数据。在推断阶段中,要分析的数据(例如,实况数据)被输入到模型,并且模型执行以创建输出。这个推断阶段可被认为是ai“思考”以基于它从训练中学习到的东西来生成输出(例如,通过执行模型来将学习到的模式和/或关联应用于实况数据)。在一些示例中,输入数据在被用作机器学习模型的输入之前会经历预处理。此外,在一些示例中,输出数据在其由ai模型生成之后可经历后处理,以将输出变换为有用的结果(例如,数据的显示、要由机器执行的指令,等等)。
39.在一些示例中,部署的模型的输出可被捕捉并被作为反馈提供。通过分析反馈,可确定部署的模型的准确度。如果反馈表明部署的模型的准确度低于阈值或其他标准,则可利用反馈和更新的训练数据集、超参数等等来触发更新的模型的训练,以生成更新的部署的模型。
40.计算能力和存储器带宽有限的嵌入式系统缺乏加速神经网络的处理以追求最先进的准确度所需要的硬件资源,这是由于这种神经网络的尺寸越来越大。为了减小神经网络的大小,可以使用网络压缩技术,例如利用稀疏度(sparsity)的概念的稀疏度技术。这些网络压缩技术中的一些是基于规则的(例如,基于规则的网络压缩技术)。这种基于规则的技术不能被普遍用于所有现有的神经网络。例如,一些基于规则的技术尝试在早期层(例如,包括低级特征的有用信息的层)更少地稀疏化参数,并且在后期层或者最终完全连接层(例如,包括更多参数的层)更多地稀疏化参数。这种基于规则的技术不考虑神经网络中的层之间的依从性,也不能容易从一个神经网络体系结构转移到另一个。
41.在机器学习中的当前范式下,神经网络模型是利用硬件无关的技术来训练的。因此,构建块(例如,函数)和层并没有被调整到目标硬件平台的体系结构,而经训练的神经网络模型将在该平台上执行。这种缺乏调整的情况会影响推断期间经训练的神经网络模型的
性能。例如,如果模型是在图形处理单元(graphics processing unit,gpu)上训练的,那么当该模型与不一定最优地支持gpu运算器的非gpu体系结构(例如,视觉处理单元(vision processing unit,vpu))和/或加速器一起执行时,该模型的性能将不能达到同等水平。在这样的示例中,该模型在其他加速器上不是最优的。例如,7x7深度级可分离卷积在gpu上可以可接受地执行,但这种操作在大多数ai加速器上通常远非最优。在这样的示例中,训练模型而不考虑模型是否要在感兴趣的目标硬件平台(例如gpu或者不同的ai加速器)上执行可导致模型执行的不同程度的准确度和效率。
42.另外,硬件无关的机器学习训练技术在执行网络压缩技术时,在稀疏度生成期间没有考虑到目标硬件平台的硬件性能。基于稀疏度的技术的关键目标标准包括压缩和速度提升。然而,这种基于稀疏度的技术所生成的模型可能具有较大的整体稀疏度,但在目标硬件平台上的性能却很差(例如,较低的速度提升)。例如,由于体系结构因素(例如,处理、存储器和/或缓存体系结构因素),具有大总体稀疏度的神经网络在目标硬件平台上可能具有次优的模型执行或性能。
43.本文公开的实例包括对于模型(例如神经网络模型)的硬件感知的机器学习模型训练。在一些公开的示例中,示例模型训练控制器基于目标硬件平台或其(一个或多个)部分的体系结构(例如,硬件、软件和/或固件体系结构)将硬件感知的稀疏度应用于神经网络。在一些公开的示例中,模型训练控制器在神经网络上实现强化学习,以识别神经网络的一个或多个层的稀疏率(sparsity ratio)。在这种公开的示例中,模型训练控制器基于目标硬件平台的体系结构来识别稀疏率。
44.有利的是,示例模型训练控制器可训练神经网络以在目标硬件平台上实现高性能,并且相对于神经网络的基线版本具有更大的稀疏率。有利的是,示例模型训练控制器可利用训练数据集的子集来训练不同类型的加速器,例如中央处理单元(cpu)、gpu、vpu,等等,以提高训练神经网络的速度和利用硬件资源训练神经网络的效率。
45.图1是示例计算环境100的示意图,该计算环境100包括示例计算系统102,其中包括示例模型训练控制器104a-e,以实现机器学习模型的训练和部署。图1的示例的计算系统102包括示例中央处理单元(cpu)106、第一示例加速资源(acceleration resource a)108、第二示例加速资源(acceleration resource b)110、示例通用处理资源112、示例接口资源114、示例总线116、示例电源118、以及示例数据存储120。图1的示例的数据存储120包括(一个或多个)示例硬件配置(h/w config)122和(一个或多个)示例机器学习模型(ml model)124。在图1的示例中进一步描绘的是示例用户界面126、示例网络128、和(一个或多个)示例外部计算系统130。
46.在图1的图示示例中,计算系统102是(一个或多个)机器学习模型124将在其上被执行的计算设备。在一些示例中,计算系统102是移动设备,例如蜂窝或移动电话(例如,支持互联网的智能电话)、平板计算机(例如,支持互联网的平板设备),等等。例如,计算系统102可实现为在单个片上系统(soc)上具有一个或多个处理器(例如,cpu、gpu、vpu、ai或神经网络(nn)特定处理器,等等)的移动电话。在一些示例中,计算系统102是桌面型计算机、膝上型计算机、服务器,等等。例如,计算系统102可实现为在单个soc上具有一个或多个处理器(例如,cpu、gpu、vpu、ai/nn特定处理器,等等)的桌面型计算机、膝上型计算机、服务器,等等。
47.在一些示例中,计算系统102是代表一个或多个集成电路(ic)(例如,紧凑型ic)的片上系统(soc),这些集成电路将计算机或其他电子系统的组件以紧凑的格式纳入。例如,计算系统102可以用一个或多个可编程处理器、硬件逻辑和/或硬件外设和/或接口的组合来实现。额外地或替换地,图1的示例计算系统102可包括存储器、(一个或多个)输入/输出(i/o)端口和/或二级存储。例如,计算系统102包括模型训练控制器104a-e、cpu 106、第一加速资源108、第二加速资源110、通用处理资源112、接口资源114、总线116、电源118、数据存储120、存储器、(一个或多个)i/o端口和/或二级存储,它们都在同一基板上。在一些示例中,计算系统102包括数字、模拟、混合信号、射频(rf)或其他信号处理功能。
48.在图1的图示示例中,第一加速资源108是图形处理单元(gpu)。例如,第一加速资源108是生成计算机图形、执行通用计算等等的gpu。在一些示例中,第一加速资源108处理ai任务。在这样的示例中,第一加速资源108可以执行和/或以其他方式实现神经网络,例如人工神经网络(artificial neural network,ann)、卷积神经网络(convolution neural network,cnn)、深度神经网络(deep neural network,dnn)、递归神经网络(recurrent neural network,rnn),等等。
49.图1的示例的第二加速资源110是视觉处理单元(vpu)。例如,第二加速资源110可以实现机器或计算机视觉计算任务。在这样的示例中,第二加速资源110可以执行和/或以其他方式实现神经网络,例如ann、cnn、dnn、rnn,等等。
50.图1的示例的通用处理资源112是可编程的处理器,例如cpu或gpu。在一些示例中,通用处理资源112完成ai任务。在这样的示例中,通用处理资源112可以执行和/或以其他方式实现神经网络,例如ann、cnn、dnn、rnn,等等。
51.在这个示例中,cpu 106、第一加速资源108、第二加速资源110和通用处理资源112是目标硬件,或者目标硬件平台。或者,第一加速资源108、第二加速资源110和/或通用处理资源112中的一个或多个可以是不同类型的硬件,例如数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、可编程逻辑器件(programmable logic device,pld)和/或现场可编程逻辑器件(field programmable logic device,fpld)(例如,现场可编程门阵列(field-programmable gate array,fpga))。
52.在图1的图示示例中,接口资源114代表了一个或多个接口。例如,接口资源114可由通信设备(例如,网络接口卡(network interface card,nic)、智能nic,等等)实现,例如发射器、接收器、收发器、调制解调器、住宅网关、无线接入点和/或网络接口,以促进经由网络128与外部机器(例如,任何种类的计算设备)交换数据。在一些示例中,通信是经由以太网连接、数字订户线(digital subscriber line,dsl)连接、电话线连接、同轴线缆系统、卫星系统、直线对传式无线系统、蜂窝电话系统等等实现的。例如,接口资源114可由任何类型的接口标准实现,例如无线保真(wireless fidelity,wi-fi)接口、以太网接口、通用串行总线(universal serial bus,usb)、蓝牙接口、近场通信(near field communication,nfc)接口和/或pci快速接口。
53.计算系统102包括电源118来向计算系统102的(一个或多个)资源输送电力。在图1的示例中,电源118是电池。例如,电源118是能量有限的设备,例如锂离子电池或者任何其他可充电的电池或电源。在这样的示例中,电源118可利用电源适配器或转换器(例如,交流
(ac)到直流(dc)电源转换器)、墙壁插座(例如,110v ac墙壁插座、220v ac墙壁插座,等等)来充电。
54.图1的示例的计算系统102包括数据存储120,以记录数据(例如,(一个或多个)硬件配置122、(一个或多个)机器学习模型124,等等)。此示例的数据存储120可由易失性存储器(例如,同步动态随机存取存储器(synchronous dynamic random access memory,sdram)、动态随机存取存储器(dynamic random access memory,dram)、rambus动态随机存取存储器(rambus dynamic random access memory,rdram),等等)和/或非易失性存储器(例如,闪存)来实现。数据存储120可额外地或替换地由一个或多个双倍数据速率(double data rate,ddr)存储器实现,例如ddr、ddr2、ddr3、ddr4、移动ddr(mddr),等等。数据存储120可额外地或替换地由一个或多个大容量存储设备实现,例如(一个或多个)硬盘驱动器、(一个或多个)致密盘(compact disk,cd)驱动器、(一个或多个)数字多功能盘(digital versatile disk,dvd)驱动器、(一个或多个)固态盘驱动器,等等。虽然在图示的示例中,数据存储120被图示为单个数据库,但数据存储120可由任何数目和/或类型的数据库实现。此外,存储在数据存储120中的数据可采取任何数据格式,例如,二进制数据、逗号分隔数据、制表符分隔数据、结构化查询语言(structured query language,sql)结构,等等。
55.在图1的图示示例中,数据存储120和/或更一般地计算系统102存储(一个或多个)硬件配置122,以用作训练(一个或多个)机器学习模型124中的一个(或多个)的(一个或多个)模型输入。在这个示例中,(一个或多个)硬件配置122包括用于计算系统102的(一个或多个)资源中的相应一个(或多个)的一个或多个硬件配置。例如,(一个或多个)硬件配置122可包括与cpu 106相关联的第一硬件配置、与第一加速资源108相关联的第二硬件配置、与第二加速资源110相关联的第三硬件配置、与通用处理资源112相关联的第四硬件配置,等等。
56.在图1的图示示例中,数据存储120和/或更一般地计算系统102存储(一个或多个)机器学习模型124,以促进在计算系统102和/或(一个或多个)外部计算系统130中的一个(或多个)上训练、部署和/或执行(一个或多个)机器学习模型124。在这个示例中,(一个或多个)机器学习模型124包括一个或多个机器学习模型。例如,(一个或多个)机器学习模型124可包括第一神经网络模型、第二神经网络模型,等等。在这样的示例中,第一神经网络模型可以是基线神经网络模型,例如用传统的机器学习训练技术训练过的神经网络模型。在一些这样的示例中,第二神经网络模型可以是由模型训练控制器104a-e训练的神经网络模型,该控制器基于与在其上执行神经网络模型的目标硬件平台(例如,cpu 106、第一加速资源108,等等)相对应的(一个或多个)硬件配置122来训练神经网络模型。
57.在图1的图示示例中,计算系统102与用户界面126进行通信。例如,用户界面126是在与计算系统102相连接和/或以其他方式与计算系统102通信的显示设备上呈现给用户的图形用户界面(graphical user interface,gui)、应用显示等等。在这样的示例中,用户经由用户界面126控制计算系统102,调整机器学习训练参数(例如,学习率、机器学习模型中要使用的层的数目,等等)以训练(一个或多个)机器学习模型124,等等。或者,计算系统102可包括用户界面126。
58.在图1的图示示例中,模型训练控制器104a-e、cpu 106、第一加速资源108、第二加速资源110、通用处理资源112、接口资源114、电源118和数据存储120与总线116进行通信。
例如,总线116对应于、代表和/或以其他方式包括集成电路间(inter-integrated circuit,i2c)总线、串行外围接口(serial peripheral interface,spi)总线或外围组件互连(peripheral component interconnect,pci)总线中的至少一者。
59.图1的示例的网络128是互联网。然而,此示例的网络128可利用任何(一个或多个)适当的有线和/或无线网络来实现,包括例如一个或多个数据总线、一个或多个局域网(local area network,lan)、一个或多个无线lan、一个或多个蜂窝网络、一个或多个私有网络、一个或多个公共网络,等等。网络128使得计算系统102能够与(一个或多个)外部计算系统130进行通信。
60.在图1的图示示例中,外部计算系统130是(一个或多个)机器学习模型124将在其上被执行的计算设备。在此示例中,外部计算系统130包括示例桌面型计算机132、示例移动设备(例如,智能电话、支持互联网的智能电话,等等)134、示例膝上型计算机136、示例平板设备(例如,平板计算机、支持互联网的平板计算机,等等)138和示例服务器140。在一些示例中,可以使用比图1中描绘的更少或更多的计算系统。额外地或替换地,外部计算系统130可包括、对应于和/或以其他方式代表任何其他类型的计算设备。
61.在一些示例中,外部计算系统130中的一个或多个执行(一个或多个)机器学习模型124中的一个(或多个)以处理计算工作负载(例如,ai/ml工作负载)。例如,移动设备134可实现为在单个片上系统(soc)上具有一个或多个处理器(例如,cpu、gpu、vpu、ai或神经网络(nn)特定处理器,等等)的蜂窝或移动电话以利用(一个或多个)机器学习模型124中的一个(或多个)来处理ai/ml工作负载。例如,桌面型计算机132、膝上型计算机136、平板计算机和/或服务器140可实现为在一个或多个soc上具有一个或多个处理器(例如,cpu、gpu、vpu、ai/nn特定处理器,等等)的(一个或多个)计算设备,以利用(一个或多个)机器学习模型124中的一个(或多个)来处理ai/ml工作负载。在一些示例中,服务器140包括和/或以其他方式代表一个或多个服务器,这些服务器可实现中央或数据设施、云服务(例如,公共或私有云提供商、基于云的存储库,等等),等等,以利用(一个或多个)机器学习模型124中的一个(或多个)处理(一个或多个)ai/ml工作负载。
62.在图1的图示示例中,计算系统102包括第一模型训练控制器104a(例如,模型训练控制器104a-e的第一实例),第二模型训练控制器104b(例如,模型训练控制器104a-e的第二实例),第三模型训练控制器104c(例如,模型训练控制器104a-e的第三实例),第四模型训练控制器104d(例如,模型训练控制器104a-e的第四实例),以及第五模型训练控制器104e(例如,模型训练控制器104a-e的第二实例)(在此统称为模型训练控制器104a-e,除非本文另有规定)。在图1的示例中,第一模型训练控制器104a是由硬件、软件和/或固件实现的。例如,第一模型训练控制器104a可由一个或多个模拟或数字电路、逻辑电路、(一个或多个)可编程处理器、(一个或多个)可编程控制器、(一个或多个)gpu、(一个或多个)vpu、(一个或多个)dsp、(一个或多个)asic、(一个或多个)pld和/或(一个或多个)fpld实现。
63.在图1的图示示例中,第二模型训练控制器104b由cpu 106实现,第三模型训练控制器104c由第一加速资源108实现,第四模型训练控制器104d由第二加速资源110实现,并且第五模型训练控制器104e由通用处理资源112实现。额外地或替换地,第一模型训练控制器104a、第二模型训练控制器104b、第三模型训练控制器104c、第四模型训练控制器104d、第五模型训练控制器104e和/或其(一个或多个)部分可被虚拟化,例如通过利用一个或多
个虚拟机、一个或多个容器等等来实现。额外地或替换地,第一模型训练控制器104a、第二模型训练控制器104b、第三模型训练控制器104c、第四模型训练控制器104d和/或第五模型训练控制器104e可由计算系统102的不同资源实现,例如第一加速资源108、第二加速资源110,等等。或者,计算系统102可不包括第一模型训练控制器104a、第二模型训练控制器104b、第三模型训练控制器104c、第四模型训练控制器104d、第五模型训练控制器104e。
64.在示例操作中,模型训练控制器104a-e基于(一个或多个)硬件配置122中的一个(或多个)来训练(一个或多个)机器学习模型124中的一个(或多个)。例如,第一加速资源108的第三模型训练控制器104c可从数据存储120、经由网络128从(一个或多个)外部计算系统130等等取回(一个或多个)机器学习模型124中的第一者。在这样的示例中,第三模型训练控制器104c可取回与第一加速资源108相对应的(一个或多个)硬件配置122中的第一者。例如,(一个或多个)硬件配置122中的第一者可包括与第一加速资源108相关联的存储器配置信息、缓存配置信息或者处理配置信息中的至少一者。
65.在示例操作中,模型训练控制器104a-e向(一个或多个)机器学习模型124的各个层指派稀疏率。例如,第三模型训练控制器104c可生成第一动作、第二动作等等,其中第一动作包括将70%的第一稀疏率指派给(一个或多个)机器学习模型124中的第一者的第一层,第二动作包括将65%的第二稀疏率指派给(一个或多个)机器学习模型124中的第一者的第二层。在这样的示例中,第三模型训练控制器104c确定利用稀疏率指派来执行各层的周期(例如,时钟周期、指令周期、处理器周期,等等)的数量。
66.在示例操作中,响应于稀疏率指派,模型训练控制器104a-e利用训练数据集或者其一部分来执行(一个或多个)机器学习模型124。例如,第三模型训练控制器104c可执行(一个或多个)机器学习模型124中的第一者,以生成输出(例如,模型输出),例如奖励。在这样的示例中,奖励可以是(一个或多个)机器学习模型124中的第一者的准确度。在一些这样的示例中,第三模型训练控制器104c可生成一组新的一个或多个动作,以基于奖励(例如,使奖励最大化)调整(一个或多个)机器学习模型124中的第一者的各个层的稀疏率。
67.在一些示例中,模型训练控制器104a-e响应于奖励被最大化和/或以其他方式满足阈值(例如奖励阈值、训练阈值,等等)来部署(一个或多个)机器学习模型124中的第一者。例如,模型训练控制器104a-e可生成和/或以其他方式将(一个或多个)机器学习模型124中的第一者编译为可执行结构(例如,可执行文件、机器可读可执行文件,等等),以在计算系统102和/或(一个或多个)外部计算系统130的(一个或多个)资源上执行。有利的是,(一个或多个)机器学习模型124中的第一者具有与传统的网络压缩技术相比被优化和/或以其他方式增大的稀疏率,同时维持了最先进的准确度。
68.图2是图1的模型训练控制器104a-e的示例实现方式的框图。在一些示例中,模型训练控制器104a-e基于特定于目标硬件平台或者其(一个或多个)部分的信息来训练一个或多个机器学习模型(例如,神经网络)。存在许多不同类型的机器学习模型和/或机器学习体系结构。在一些示例中,模型训练控制器104a-e实现强化学习以训练cnn模型。使用强化学习使得能够在环境中采取动作,以最大化和/或以其他方式改善由环境生成的累积奖励。或者,模型训练控制器104a-e可基于特定于目标硬件平台的信息,训练其他类型的机器学习模型,例如随机森林、决策树,等等。
69.在图2的图示示例中,模型训练控制器104a-e包括示例通信接口210、示例配置确
定器220、示例层生成器230、示例模型训练处理器240、示例微调处理器250、示例部署控制器260、示例数据存储270和示例通信总线280。在这个示例中,数据存储270包括和/或以其他方式存储(一个或多个)示例硬件配置272、示例机器学习模型274、示例训练数据276、示例训练输出数据278。
70.在图2的图示示例中,通信接口210、配置确定器220、层生成器230、模型训练处理器240、微调处理器250、部署控制器260和/或数据存储270中的任何一者可经由通信总线280进行通信(例如,相互通信)。在一些示例中,通信总线280是利用任何适当的有线和/或无线通信来实现的。在一些示例中,通信总线280包括软件、机器可读指令和/或通信协议,通过它们在通信接口210、配置确定器220、层生成器230、模型训练处理器240、微调处理器250、部署控制器260和/或数据存储270之间传达信息。
71.在图2的图示示例中,模型训练控制器104a-e包括通信接口210,以获得与要在其上执行机器学习模型的目标硬件平台相关联的硬件配置,例如(一个或多个)硬件配置272。例如,通信接口210可从图1的数据存储120、经由网络128从(一个或多个)外部计算系统130等等获得(一个或多个)硬件配置272。
72.在一些示例中,通信接口210获得要训练的机器学习模型,例如机器学习模型274。例如,通信接口210可从数据存储120和/或(一个或多个)外部计算系统130获得机器学习模型274。在一些示例中,通信接口210获得机器学习模型274将在其上操作的目标任务(例如,离策略动作者-评判者算法的动作)以及一个或多个训练数据集,例如训练数据276。
73.在图2的图示示例中,模型训练控制器104a-e包括配置确定器220,以基于(一个或多个)硬件配置272来确定硬件配置信息、参数,等等。在一些示例中,配置确定器220确定(一个或多个)硬件配置272包括针对目标硬件平台调节的运算器(例如,函数、运算,等等)、针对目标硬件平台优化的内核、针对目标硬件平台的时延估计器,等等。
74.在一些示例中,配置确定器220确定(一个或多个)硬件配置272包括与目标硬件平台相关联的存储器配置信息、缓存配置信息或者处理配置信息中的至少一者。例如,配置确定器220可确定(一个或多个)硬件配置272指定存储器配置信息,例如与目标硬件平台的存储器相关联的存储器类型、读存储器带宽、读总线宽度、写存储器带宽、写总线宽度、存储器减额因子或者存储器端口的数目中的至少一者。
75.在一些示例中,配置确定器220确定(一个或多个)硬件配置272指定了缓存配置信息,例如与目标硬件平台的缓存存储器相关联的缓存大小或者缓存操作频率中的至少一者。在一些示例中,配置确定器220确定(一个或多个)硬件配置124指定了处理配置信息,例如与目标硬件平台的一个或多个处理器相关联的数据处理单元的数目、时钟频率、架构频率、激活精度或者权重精度中的至少一者。
76.在一些示例中,配置确定器220实现了用于确定要在其上执行机器学习模型的目标硬件平台的硬件配置的装置。在一些示例中,用于确定的装置由可执行指令实现,例如至少由图12的块1202和/或图13的块1304实现。在这样的示例中,图12的块1202和/或图13的块1304的可执行指令可在至少一个处理器上执行,例如图14的示例处理器1412。在其他示例中,用于确定的装置是由硬件逻辑、硬件实现的状态机、逻辑电路和/或硬件、软件和/或固件的任何其他组合实现的。
77.在图2的图示示例中,模型训练控制器104a-e包括层生成器230,用于通过基于(一
个或多个)硬件配置272向层指派稀疏配置来生成神经网络的层。在一些示例中,层生成器230选择神经网络的层中的第一层。在这样的示例中,层生成器230确定第一层的稀疏配置,例如30%、50%等等的稀疏率,并且基于稀疏率将零指派给第一层的矩阵的一个或多个值。如本文所使用的,术语“稀疏率”是指(a)神经网络层矩阵中的零值元素或者值的数目与(b)神经网络层矩阵中的元素或者值的总数的比率。例如,层生成器230可通过指派30%的稀疏率并且将第一层的矩阵的元素的30%设置为零或者具有零值来生成第一层。
78.在一些示例中,层生成器230实现用于基于硬件配置来向机器学习模型的层指派稀疏配置的装置。例如,用于指派的装置可基于指派来生成机器学习模型的一个或多个层。在一些示例中,用于指派的装置选择机器学习模型的一个或多个层中的第一层,并且将零指派给第一层的矩阵的一个或多个值。
79.在一些示例中,用于指派的装置由可执行指令实现,例如至少由图12的块1204和/或图13的块1306、1312、1314实现。在这样的示例中,图12的块1204和/或图13的块1306、1312和1314的可执行指令可在至少一个处理器上执行,例如图14的示例处理器1412。在其他示例中,用于指派的装置是由硬件逻辑、硬件实现的状态机、逻辑电路和/或硬件、软件和/或固件的任何其他组合实现的。
80.在图2的图示示例中,模型训练控制器104a-e包括模型训练处理器240,以调用环境(例如,机器学习训练环境)来生成机器学习模型274的(一个或多个)输出。在一些示例中,模型训练处理器240调用环境以生成层的嵌入状态,从而使得嵌入状态表征该层。例如,响应于生成动作,模型训练处理器240可调用环境来执行该动作。在这样的示例中,响应于执行该动作,环境生成和/或以其他方式输出嵌入状态。在一些这样的示例中,嵌入状态可以是代表与该层相对应的权重张量的统计的参数的阵列。在一些这样的示例中,嵌入状态可包括层索引、层的内核大小、输入特征、层中的权重或者参数数目、在指定的硬件资源上执行该层所要求的周期数,等等。例如,模型训练处理器240可确定利用具有由层生成器230确定的指定稀疏率的矩阵执行卷积操作所要求的第一加速资源108的时钟周期的数量。在这样的示例中,模型训练处理器240可基于嵌入状态来确定时钟周期的数量。
81.在一些示例中,模型训练处理器240使得环境执行对机器学习模型274的评估。例如,响应于为机器学习模型274中的每一层指派稀疏率,模型训练器处理器240可调用环境来执行具有指派的稀疏率的机器学习模型274。在这样的示例中,响应于该执行,机器学习模型274可输出奖励。在一些这样的示例中,奖励是机器学习模型274基于指派的稀疏率的准确度。在一些示例中,模型训练处理器240可调用层生成器230,以为机器学习模型274的一个或多个层生成另一组稀疏率。
82.在一些示例中,模型训练处理器240实现离策略动作者-评判者算法或者其(一个或多个)部分(例如,实现动作者、评判者等等,和/或其组合)。离策略动作者-评判者(off-policy actor-critic,opac)算法实现了强化学习技术。与其中代理只学习它正在执行的行为或者策略的按策略(on-policy)设置相比,离策略设置包括代理学习不同于它正在执行的一个或多个策略。例如,模型训练处理器240可实现这样的代理。在一些示例中,模型训练处理器240通过具有两个学习者来实现opac算法:动作者和评判者。例如,动作者可更新策略权重(例如,策略加权值)、稀疏率,等等,并且评判者可学习当前动作者策略的价值函数的离策略估计。在这样的示例中,动作者可使用离策略估计来更新策略。在一些这样的示
例中,动作者可基于更新后的策略来使得新的动作被生成。
83.在一些示例中,模型训练处理器240实现了用于确定第一数量的时钟周期以利用矩阵(例如,神经网络的层的矩阵)执行卷积操作的装置。在一些示例中,机器学习模型生成包括机器学习模型的准确度的一个或多个输出。在这样的示例中,用于确定的装置是确定准确度是否满足准确度阈值,并且确定时钟周期的数量是否满足时钟周期阈值。在一些示例中,用于确定的装置由可执行指令实现,例如至少由图12的块1206、1208和/或图13的块1308、1310、1316、1318实现。在这样的示例中,图12的块1206、1208和/或图13的块1308、1310、1316、1318的可执行指令可在至少一个处理器上执行,例如图14的示例处理器1412。在其他示例中,用于确定的装置是由硬件逻辑、硬件实现的状态机、逻辑电路和/或硬件、软件和/或固件的任何其他组合实现的。
84.在图2的图示示例中,模型训练控制器104a-e包括微调处理器250,以调整机器学习模型274的层。例如,响应于所有感兴趣的动作已经在基线机器学习模型(例如,未经训练的机器学习模型)上执行,模型训练处理器240可识别最佳奖励稀疏模型,该模型在目标硬件平台上给出了周期的目标减少。例如,最佳奖励稀疏模型可以是具有用于层的稀疏配置(例如,稀疏率)的机器学习模型274,其实现了最佳和/或其他最优奖励,同时与基线机器学习模型相比实现了周期的目标减少。在这样的示例中,微调处理器250可微调最佳奖励稀疏模型以增大(例如,递增地增大)准确度,以生成最终稀疏模型(例如,最终稀疏机器学习模型)。在一些这样的示例中,微调处理器250通过用比用于训练最佳奖励稀疏模型更少的纪元(例如,减少10%的纪元,减少20%的纪元,等等)进一步训练最佳奖励稀疏模型来微调最佳奖励稀疏模型。
85.在图2的图示示例中,模型训练控制器104a-e包括部署控制器260,用于将机器学习模型274的经训练版本部署到目标硬件资源,和/或更一般地,目标硬件平台。例如,响应于以下情况中的至少一者,部署控制器260可识别机器学习模型274来进行部署:(a)机器学习模型274的准确度满足准确度阈值,或者(b)周期减少数满足周期减少阈值。在一些示例中,如果发生以下情况中的至少一者,则部署控制器260丢弃和/或以其他方式从部署考虑中去除机器学习模型274:(a)机器学习模型274的准确度不满足准确度阈值,或者(b)周期减少数不满足周期减少阈值。在一些示例中,如果发生以下情况中的至少一者,则部署控制器260重训练机器学习模型274:(a)机器学习模型274的准确度不满足准确度阈值,或者(b)周期减少数不满足周期减少阈值。在一些这样的示例中,部署控制器260指导、指示和/或以其他方式调用模型训练处理器240、微调处理器等等中的一个(或多个)来重训练机器学习模型274。
86.在一些示例中,响应于识别,部署控制器260将机器学习模型274分发和/或以其他方式部署到计算系统102、(一个或多个)外部计算系统130和/或其(一个或多个)部分。在这样的示例中,部署控制器260可将机器学习模型274部署到cpu 106、第一加速资源108、第二加速资源110、通用处理资源112,和/或更一般地,部署到图1的计算系统102。在一些示例中,部署控制器260将机器学习模型274作为(一个或多个)机器学习模型124之一存储在图1的数据存储120中。
87.在一些示例中,部署控制器260实现了用于响应于机器学习模型的输出满足各自的阈值而将机器学习模型部署到目标硬件平台的装置,该输出包括在机器学习模型的层具
有指派的稀疏配置的情况下执行机器学习模型的时钟周期的数量。
88.在一些示例中,用于部署的装置响应于以下所列项中的至少一者而重训练机器学习模型:(a)准确度不满足准确度阈值,或者(b)时钟周期的数量不满足时钟周期阈值。在一些示例中,用于部署的装置响应于以下情况而识别机器学习模型来用于部署:(a)机器学习模型的准确度满足准确度阈值,和(b)时钟周期的数量满足时钟周期阈值。
89.在一些示例中,用于部署的装置由可执行指令实现,例如至少由图12的块1214和/或图13的块1320实现。在这样的示例中,图12的块1214和/或图13的块1320的可执行指令可在至少一个处理器上执行,例如图14的示例处理器1412。在其他示例中,用于部署的装置是由硬件逻辑、硬件实现的状态机、逻辑电路和/或硬件、软件和/或固件的任何其他组合实现的。
90.在图2的图示示例中,模型训练控制器104a-e包括数据存储270以存储数据(例如,(一个或多个)硬件配置272、机器学习模型274、训练数据276、训练输出数据278,等等)。在此示例中,数据存储270可由易失性存储器(例如,同步动态随机存取存储器(sdram)、动态随机存取存储器(dram)、rambus动态随机存取存储器(rdram),等等)和/或非易失性存储器(例如,闪存)来实现。示例数据存储270可额外地或替换地由一个或多个双倍数据速率(ddr)存储器实现,例如ddr、ddr2、ddr3、ddr4、移动ddr(mddr),等等。示例数据存储270可额外地或替换地由一个或多个大容量存储设备实现,例如(一个或多个)硬盘驱动器、(一个或多个)致密盘(cd)驱动器、(一个或多个)数字多功能盘(dvd)驱动器、(一个或多个)固态盘驱动器,等等。虽然在图示的示例中,数据存储270被图示为单个数据库,但数据存储270可由任何数目和/或类型的数据库实现。此外,存储在数据存储270中的数据可采取任何数据格式,例如,二进制数据、逗号分隔数据、制表符分隔数据、结构化查询语言(sql)结构,等等。
91.在图2的图示示例中,机器学习模型274是图1的(一个或多个)机器学习模型124中的一个或多个的示例实现。例如,机器学习模型274可以是未经训练的神经网络、经训练的神经网络,等等,或者任何其他类型的机器学习模型。
92.在图2的图示示例中,训练数据276源自于已知的挑战集。例如,训练数据276可以是imagenet数据集、cifar-10数据集,等等,或者其(一个或多个)部分。在这样的示例中,训练数据276可包括图像或者其(一个或多个)部分。在其他示例中,训练数据276可以是定制的和/或其他非公开可得的挑战集。在图2的图示示例中,训练输出数据278包括与机器学习模型274的执行相关联的一个或多个嵌入状态和/或其(一个或多个)部分、一个或多个奖励,等等。
93.虽然在图2中图示了实现图1的模型训练控制器104a-e的示例方式,但图2中所示的元件、过程和/或设备中的一个或多个可被组合、划分、重布置、省略、消除和/或以任何其他方式来实现。另外,图1和/或图2的示例通信接口210、示例配置确定器220、示例层生成器230、示例模型训练处理器240、示例微调处理器250、示例部署控制器260、示例数据存储270、(一个或多个)示例硬件配置272、示例机器学习模型274、示例训练数据276、示例训练输出数据278、示例总线280和/或更一般地示例模型训练控制器104a-e,可通过硬件、软件、固件和/或硬件、软件和/或固件的任何组合实现。从而,例如,示例通信接口210、示例配置确定器220、示例层生成器230、示例模型训练处理器240、示例微调处理器250、示例部署控
制器260、示例数据存储270、(一个或多个)示例硬件配置272、示例机器学习模型274、示例训练数据276、示例训练输出数据278、示例总线280和/或更一般地示例模型训练控制器104a-e中的任何一者,可由一个或多个模拟或数字电路、逻辑电路、(一个或多个)可编程处理器、(一个或多个)可编程控制器、(一个或多个)gpu、(一个或多个)dsp、(一个或多个)asic、(一个或多个)pld和/或(一个或多个)fpld实现。当阅读本专利的装置或系统权利要求的任何一者来覆盖纯软件和/或固件实现方式时,示例通信接口210、示例配置确定器220、示例层生成器230、示例模型训练处理器240、示例微调处理器250、示例部署控制器260、示例数据存储270、(一个或多个)示例硬件配置272、示例机器学习模型274、示例训练数据276、示例训练输出数据278和/或示例总线280中的至少一者在此明确定义为包括包含该软件和/或固件的非暂态计算机可读存储设备或存储盘,例如存储器、数字多功能盘(dvd)、致密盘(cd)、蓝光盘,等等。此外,图1和/或图2的示例模型训练控制器104a-e可包括除了图2中所示的那些以外或者取代图2中所示的那些的一个或多个元件、过程和/或设备,和/或可包括图示的元件、过程和设备中的多于一个的任何项或其所有。就本文使用的而言,短语“与

通信”(包括其变体)涵盖了直接通信和/或通过一个或多个中间组件的间接通信,并且不要求直接物理(例如,有线)通信和/或不断的通信,而是还包括按周期性间隔、排定的间隔、非周期性间隔和/或一次性事件的选择性通信。
94.图3是第一示例机器学习模型训练系统300的框图,包括图1和/或图2的示例模型训练控制器104a-e执行第一示例机器学习模型训练工作流程302以训练示例基线机器学习模型304。在这个示例中,基线机器学习模型304是图1的(一个或多个)机器学习模型124和/或图2的机器学习模型274之一的示例实现。例如,基线机器学习模型304可以是从图1的数据存储120、经由图1的网络128从(一个或多个)外部计算系统130和/或从图2的数据存储270取回的未经训练的神经网络。
95.在示例操作中,模型训练控制器104a-e取回和/或以其他方式获得基线机器学习模型304。在第一工作流程302期间,模型训练控制器104a-e学习预测示例动作306,该示例动作306向基线机器学习模型304的层指派稀疏度(例如,稀疏率)。在第一工作流程302期间,模型训练控制器104a-e在示例环境308中为该层执行修剪(例如,权重修剪),以减少目标硬件平台(例如,cpu 106、第一加速资源108,等等)上的计算周期。在这个示例中,动作306是基线机器学习模型304的层的周期减少的百分比,例如响应于处理具有指派的稀疏率的层的周期(例如,时钟周期、计算周期、处理器周期,等等)的数目的减少的百分比。在这个示例中,环境308被调整和/或以其他方式定制以基于目标硬件平台(例如图1的cpu106、第一加速资源108、第二加速资源110,等等)的硬件配置(例如,图1的(一个或多个)硬件配置122、图2的(一个或多个)硬件配置272,等等)生成输出。例如,环境308可以是硬件、软件和/或固件,以实现体系结构或者硬件基准例程。
96.在这个示例中,模型训练控制器104a-e实现了深度确定策略梯度(deep deterministic policy gradient,ddpg)代理。例如,模型训练控制器104a-e可以为基线机器学习模型304的各层学习最佳和/或其他最优的稀疏率组合。或者,模型训练控制器104a-e可实现不同类型的代理来训练基线机器学习模型304。
97.在示例操作中,响应于模型训练控制器104a-e向环境308输出动作306,环境308向模型训练控制器104a-e输出示例嵌入数据310。例如,环境308可以计算和/或以其他方式模
拟具有由动作306定义的指派的稀疏率的基线机器学习模型304的层的处理。在这样的示例中,环境308可执行和/或模拟卷积操作。例如,神经网络的卷积层通常包括输入参数(例如,输入通道)、输出参数(例如,输出通道)、宽度参数和高度参数,其中层的参数的总数是输入参数、输出参数、宽度参数和高度参数的乘积(例如,输入*输出*宽度*高度)。当执行卷积层时,目标硬件平台可应用过滤器(有时被称为内核),这是目标硬件平台“逐步”经过输入数据的c乘n乘w乘h的矩阵。例如,c指的是输入通道,n指的是输出通道,w指的是宽度,h指的是过滤器的高度。
98.嵌入数据310是训练输出数据278或者其(一个或多个)部分的示例实现。在这个示例中,嵌入数据310是被环境308修剪和/或以其他方式处理的层的嵌入状态。嵌入数据310的示例实现在下面的阵列(1)中描述:(t,n,c,h,w,stride,k,weight[t],cycles[t],reduced,rest,a[t-1],extra[t],阵列(1)阵列(1)的示例是嵌入状态的示例实现。在上述阵列(1)的示例中,t项代表层索引,n项是输出特征大小,c项是输入特征大小,h是高度值,w是宽度值,stride是过滤器(例如,卷积过滤器)在输入矩阵上移位或移动的数目,并且k项表示实际内核大小。在上述阵列(1)的示例中,该层的权重是n*c*k*k,并且输入特征是c*h*w。在上述阵列(1)的示例中,weight[t]项是层t中的参数的数目,并且cycles[t]项是在目标硬件平台上处理层t所要求的周期的数目。在上述阵列(1)的示例中,reduced项是先前层中的减少周期的总数,rest项是随后层中的剩余权重的数目,并且a[t-1]项是先前层的动作。在上述阵列(1)的示例中,extra[t]项可代表层t的任何其他特性。或者,extra[t]可用于通过使用权重矩阵的hessian来捕捉权重矩阵的统计数据。或者,extra[t]可以有零值或者空值。或者,上述阵列(1)可以有更少或者更多的项。
[0099]
在一些示例中,例如在图3的示例中,对于每一层的周期的减少,使用了连续的动作空间(例如,a∈(0,1])。例如,连续动作可以比离散动作更好,因为减少20%的周期比减少10%要激进得多。在这样的示例中,连续的动作空间使得能够实现更大的搜索空间,并且减小了准确度损失。
[0100]
在一些示例中,基线机器学习模型304的动作空间是通过设置目标硬件平台上的周期数目的目标百分比减少来限制的。在这样的示例中,模型训练控制器104a-e学习修剪每层中的权重,以找到每层的周期减少的最佳组合。如果在第一工作流程302期间,模型训练控制器104a-e确定所采取的动作(例如,动作306)不能达到目标百分比,那么模型训练控制器104a-e激进地修剪所有剩余层以达到目标周期减少。有利的是,模型训练控制器104a-e可通过使用如下公式(1)所述的奖励函数来达到目标百分比减小,同时实现最佳奖励:
[0101]
r=accuracy*log(number_of_cycles),公式(1)
[0102]
在上述公式(1)的示例中,r是奖励。例如,奖励可基于(i)稀疏模型的验证准确度的子集和(ii)对数尺度的周期总数的乘法。例如,number_of_cycles项指的是为执行具有各自的指派的稀疏率的多个层而确定的周期的总数。
[0103]
在示例操作中,响应于为基线机器学习模型304的每一层指派稀疏率,执行评估。例如,环境308可通过调用具有指派的稀疏率的基线机器学习模型304以处理训练数据的子集(例如,图2的训练数据276)来执行评估。在这样的示例中,环境308可响应于训练数据的子集的处理而生成示例奖励312。奖励312是被反馈到模型训练控制器104a-e以更新下一个预测(例如,每个层的下一个动作)的评估结果。
[0104]
在示例操作中,第一工作流程302被重复多次,以便模型训练控制器104a-e学习在目标硬件平台上具有最佳和/或其他最优性能的稀疏和准确模型。在示例操作中,响应于一个或多个学习迭代,模型训练控制器104a-e,和/或更一般地,第一工作流程302,生成示例最佳奖励稀疏模型314。在这个示例中,最佳奖励稀疏模型314是由模型训练控制器104a-e训练成在目标硬件平台上具有高性能的神经网络,其准确度与基线机器学习模型304基本相似(例如,准确度在基线机器学习模型304的准确度的1%、2%、5%等等之内)。
[0105]
有利的是,在这个示例中,因为只需要顺推法(forward pass)来评估稀疏模型以生成奖励312,所以第一工作流程302是快速和高效的,并且可在图1的cpu 106、第一加速资源108等等上执行。有利的是,在这个示例中,模型训练控制器104a-e通过使用训练数据的子集来执行评估,节省和/或以其他方式减少了训练时间。
[0106]
图4是图1和/或图2的示例模型训练控制器104a-e在示例最佳奖励稀疏模型404上执行示例微调操作402以生成示例最终稀疏模型406的框图。在这个示例中,最佳奖励稀疏模型404是来自图3的第一机器学习模型训练工作流程302的输出。在这个示例中,最佳奖励稀疏模型404对应于图3的最佳奖励稀疏模型314。例如,最佳奖励稀疏模型404可以是经训练的神经网络,其准确度满足准确度阈值,同时减少了目标硬件平台要执行的周期的总数。
[0107]
在示例操作中,模型训练控制器104a-e对最佳奖励稀疏模型404执行微调操作402。例如,图2的微调处理器250可将微调应用于最佳奖励稀疏模型404上,以将准确度提高某个边际量。在这样的示例中,微调处理器250可通过进一步训练最佳奖励稀疏模型404,采用比原始训练过程更少的纪元,来微调最佳奖励稀疏模型404。在一些这样的示例中,微调处理器250可以用10个纪元训练最佳奖励稀疏模型404,而模型训练控制器104a-e用120个纪元训练了基线机器学习模型304(例如,训练时间减少10%,其中10%=(10/120)*100)。
[0108]
在示例操作中,响应于微调操作402的执行,模型训练控制器104a-e生成和/或以其他方式输出最终稀疏模型406。在这个示例中,最终稀疏模型406是经训练的神经网络。例如,最终稀疏模型406可以是图1的(一个或多个)ml模型124和/或图2的机器学习模型274中的一个(或多个)的示例实现。有利的是,模型训练控制器104a-e可调用微调操作402来生成最终稀疏模型406,以便与最佳奖励稀疏模型404相比具有增大的准确度。
[0109]
图5是第二示例机器学习模型训练系统500的框图,包括图1和/或图2的示例模型训练控制器104a-e执行第二示例机器学习模型训练工作流程502以训练示例基线机器学习模型504。在这个示例中,基线机器学习模型504是图1的(一个或多个)机器学习模型124和/或图2的机器学习模型274之一的示例实现。例如,基线机器学习模型504可以是从图1的数据存储120、经由图1的网络128从(一个或多个)外部计算系统130和/或从图2的数据存储270取回的未经训练的神经网络。
[0110]
在第二工作流程502中,模型训练控制器104a-e通过训练基线机器学习模型504来生成和/或以其他方式输出示例最佳奖励稀疏模型506。在这个示例中,最佳奖励稀疏模型506是图4的最佳奖励稀疏模型404的示例实现。例如,模型训练控制器104a-e可在图5的最佳奖励稀疏模型506上执行图4的微调操作402,以生成最终稀疏模型,例如图4的最终稀疏模型406。
[0111]
在图5的图示示例中,模型训练控制器104a-e通过实现opac算法或者技术来训练基线机器学习模型504。在这个示例中,模型训练控制器104a-e包括和/或以其他方式实现
示例动作者508和示例评判者510。在一些示例中,动作者508是图2的层生成器230、图2的模型训练处理器240或者其(一个或多个)部分中的至少一者的示例实现。在一些示例中,评判者510是层生成器230、模型训练处理器240或者其(一个或多个)部分中的至少一者的示例实现。
[0112]
在第二工作流程502期间的示例操作中,动作者508从示例环境514获得示例环境输出数据512。在这个示例中,环境输出数据512可以是图1的(一个或多个)硬件配置122、图2的(一个或多个)硬件配置272、图2的训练输出数据278和/或图3的嵌入数据310的示例实现。在一些示例中,环境输出数据512包括与目标硬件平台(例如图1的第一加速资源108、第二加速资源110,等等)相关联的存储器配置信息、缓存配置信息或者处理配置信息中的至少一者。在一些示例中,环境输出数据512包括在上述阵列(1)的示例中包括的数据或者其(一个或多个)部分。在这个示例中,环境514可以是图3的环境308的示例实现。
[0113]
在第二工作流程502期间的示例操作中,动作者508生成示例动作516并将该动作516传送到环境514。在这个示例中,动作516是图3的动作306的示例实现。例如,动作者508可生成动作516,以包括要指派给基线机器学习模型504的示例层518的稀疏率。在这样的示例中,动作者508确定稀疏率以为感兴趣的层实现期望或者预期的周期减少百分比。在这个示例中,层518是被选择为有权重(例如,模型权重、神经网络权重,等等)被修剪的神经网络(例如,卷积神经网络)的当前或即时层(layer t)。例如,层518是神经网络的一个或多个矩阵。在这样的示例中,层518可基于由动作516定义的稀疏率将一个或多个矩阵的一个或多个值设置为零和/或以其他方式具有零值。
[0114]
在第二工作流程502期间的示例操作中,示例体系结构基准处理器520接收具有由动作516定义的稀疏率的层518。例如,体系结构基准处理器520获得层518的稀疏度、层518的激活的稀疏度、层518的输入的第一大小、层518的输出的第二大小,等等,和/或这些的组合。在这个示例中,体系结构基准处理器520被调整和/或以其他方式被定制以基于目标硬件平台(例如图1的cpu 106、第一加速资源108、第二加速资源110,等等)的示例硬件配置519(例如,图1的(一个或多个)硬件配置122、图2的(一个或多个)硬件配置272,等等)生成环境输出数据512。例如,体系结构基准处理器520可以是硬件、软件和/或固件,以实现体系结构或者硬件基准例程。
[0115]
在第二工作流程502期间的示例操作中,体系结构基准处理器520基于层518和目标硬件平台的硬件配置519确定环境输出数据512。在该示例中,体系结构基准处理器520生成环境输出数据512以包括与正在处理的层518相对应的周期522的示例数目(cycles t)。
[0116]
在第二工作流程502期间的示例操作中,动作者508基于环境输出数据512为另一层518(layer t 1)生成另一动作516。例如,动作者508可生成动作516来为layer t 1指派稀疏率。在这样的示例中,layer t和layer t 1的稀疏率是不同的,而在不同的示例中它们是相同的。体系结构基准处理器520基于目标硬件平台的硬件配置519和指派给layer t 1的稀疏率来确定layer t 1的周期522。
[0117]
在第二工作流程502期间的示例操作中,环境514响应于对层518(例如,所有的层518、大部分的层518,等等)的稀疏率的指派而生成、确定和/或以其他方式输出示例奖励524。环境514通过调用神经网络来执行验证数据集的一部分(例如图2的训练数据集274)来生成奖励524,其中神经网络的层518具有由动作者508确定的稀疏率。例如,环境514可调用
神经网络来识别来自训练数据集274的一个或多个图像。
[0118]
在这个示例中,奖励524是图3的奖励312的示例实现。例如,奖励524是由上述公式(1)的示例定义的。在这样的示例中,number_of_cycles项指的是层518的周期的总数。例如,number_of_cycles项是layert-1的第一周期数、layer t的第二周期数、layer t 1的第三周期数等等之和。
[0119]
在图5的图示示例中,评判者510接收奖励524。模型训练控制器104a-e包括从评判者510学习奖励,例如由环境514生成的奖励524。在一些示例中,评判者510基于奖励524更新神经网络的权重。在一些示例中,评判者510向动作者508提供奖励524。有利的是,动作者508、评判者510和/或更一般地模型训练控制器104a-e学习预测在基线机器学习模型504的训练期间在目标硬件平台上生成最优周期的稀疏率的最佳组合。
[0120]
在第二工作流程502期间的示例操作中,模型训练控制器104a-e调用和/或以其他方式使得环境514基于基线机器学习模型504的经训练版本满足一个或多个阈值而输出最佳奖励稀疏模型506。例如,模型训练控制器104a-e可调用环境514以基于下列项中至少一者来输出最佳奖励稀疏模型506:准确度(例如,奖励524中包括的准确度)满足准确度阈值,目标硬件平台要执行的周期的数目的减少的百分比满足周期阈值。在一些示例中,准确度阈值用于控制经训练的机器学习模型(例如最佳奖励稀疏模型506)的结果准确度。在本文公开的示例中,准确度阈值的值可由用户和/或ai增大,以提高经训练的机器学习模型的结果准确度。额外地或替换地,如果不能达到或满足期望的或者预期的准确度阈值,则可以减小准确度阈值的值以生成最佳奖励稀疏模型506。
[0121]
在一些示例中,准确度阈值和/或周期阈值是预先确定的(例如,在训练基线机器学习模型504之前确定)。例如,模型训练处理器240,和/或更一般地,模型训练控制器104a-e,可基于基线机器学习模型504的类型、硬件配置519等等来确定准确度阈值和/或周期阈值。在这样的示例中,准确度阈值和/或周期阈值是在训练基线机器学习模型504之前确定的。
[0122]
在一些示例中,准确度阈值和/或周期阈值是动态的。例如,模型训练处理器240,和/或更一般地,模型训练控制器104a-e,可基于基线机器学习模型504的类型、硬件配置519、环境输出数据512、奖励524等等和/或这些组合,在运行时、在处理第一层之后但在处理第二层之之前,确定准确度阈值和/或周期阈值。在这样的示例中,模型训练处理器240可响应于确定奖励524表明对于一个或多个动作516满足了准确度阈值而增大准确度阈值。在一些这样的示例中,模型训练处理器240可确定基线机器学习模型504可通过增加的训练、再训练等等实现和/或以其他方式确保增大的准确度。
[0123]
图6a描绘了来自由图1和/或图2的示例模型训练控制器104a-e训练的第一示例机器学习模型的第一示例输出数据602的第一表格600。在这个示例中,第一机器学习模型是resnet-18模型。resnet-18是有18层深度的卷积神经网络。例如,第一输出数据602是从由模型训练控制器104a-e基于目标硬件平台的硬件配置训练的resnet-18模型生成的,在该目标硬件平台上将执行经训练的resnet-18模型。
[0124]
第一表格600的第一输出数据602包括resnet-18配置、前1准确度(%)列、前5准确度(%)列、与基线前1准确度的差异列、参数数目列、零数目列、稀疏百分比列、周期数目列和周期百分比列。在这个示例中,resnet-18配置包括第一resnet-18配置、第二resnet-18
50模型可利用传统训练技术来训练。
[0131]
第三表格700的第三输出数据702和第四表格710的第四输出数据712包括resnet-50配置、前1准确度(%)列、前5准确度(%)列、与基线前1准确度的差异列、参数数目列、零数目列、稀疏百分比列、周期数目列和周期百分比列。在图7a的示例中,第三输出数据702的resnet-50配置包括第一resnet-50配置、第二resnet-50配置、第三resnet-50配置和第四resnet-50配置。第一resnet-50配置是基线或未经训练的配置,第二resnet-50配置是具有第一resnet-50配置的大约60%的周期数目的配置,第三resnet-50配置是具有第一resnet-50配置的大约50%的周期数目的配置,等等。
[0132]
在图7b的示例中,resnet-50配置包括第一resnet-50配置、第二resnet-50配置、第三resnet-50配置和第四resnet-50配置。第一resnet-50配置是基线或未经训练的配置,第二resnet-50配置是具有大约50%的稀疏率的配置,第三resnet-50配置是具有大约60%的稀疏率的配置,等等。
[0133]
在图7a-7b的示例中,第三输出数据702和第四输出数据712是由利用强化学习训练的机器学习模型生成的。在图7a-7b的示例中,机器学习模型是以强化学习的相同持续时间和微调期间使用的相同数目的纪元来训练的。有利的是,与第四机器学习模型生成的第四输出数据712相比,生成第三输出数据702的第三机器学习模型具有更多的周期减少(例如,更低的周期百分比),同时维持基本相似(例如,在1%、2%等等内)的前1准确度和前5准确度。有利的是,模型训练控制器104a-e可以训练和/或以其他方式输出稀疏模型,与传统的机器学习训练技术相比,执行稀疏模型的周期数目减少了。
[0134]
图8a描绘了来自由图1和/或图2的示例模型训练控制器104a-e训练的第五示例机器学习模型的第五示例输出数据802的第五表格800。在这个示例中,第五机器学习模型是mobilenetv2模型。mobilenetv2是卷积神经网络,它针对的是移动计算设备或者可能受到功率限制的设备。例如,第五输出数据802是从由模型训练控制器104a-e基于目标硬件平台的硬件配置训练的mobilenetv2模型生成的,在该目标硬件平台上将执行经训练的mobilenetv2模型。
[0135]
图8b描绘了来自未被图1和/或图2的示例模型训练控制器104a-e训练的第六示例机器学习模型的第六示例输出数据812的第六表格810。在这个示例中,第六机器学习模型是mobilenetv2模型。例如,第六输出数据812是从未被模型训练控制器104a-e训练并从而可能不是基于目标硬件平台的硬件配置的mobilenetv2模型生成的。在这样的示例中,mobilenetv2模型可利用传统训练技术来训练。
[0136]
第五表格800的第五输出数据802和第六表格810的第六输出数据812包括mobilenetv2配置、前1准确度(%)列、前5准确度(%)列、与基线前1准确度的差异列、参数数目列、零数目列、稀疏百分比列、周期数目列和周期百分比列。在图8a的示例中,第五输出数据802的mobilenetv2配置包括第一mobilenetv2配置、第二mobilenetv2配置、第三mobilenetv2配置、第四mobilenetv2配置和第五mobilenetv2配置。第一mobilenetv2配置是基线或未经训练的配置,第二mobilenetv2配置是具有第一mobilenetv2配置的大约90%的周期数目的配置,第三mobilenetv2配置是具有第一mobilenetv2配置的大约80%的周期数目的配置,等等。
[0137]
在图8b的示例中,mobilenetv2配置包括第一mobilenetv2配置、第二mobilenetv2
配置、第三mobilenetv2配置、第四mobilenetv2配置、第五mobilenetv2配置和第六mobilenetv2配置。第一mobilenetv2配置是基线或未经训练的配置,第二mobilenetv2配置是具有大约30%的稀疏率的配置,第三mobilenetv2配置是具有大约40%的稀疏率的配置,等等。
[0138]
在图8a-8b的示例中,第五输出数据802和第六输出数据812是由利用强化学习训练的机器学习模型生成的。在图8a-8b的示例中,机器学习模型是以强化学习的相同持续时间和微调期间使用的相同数目的纪元来训练的。有利的是,与第六机器学习模型生成的第六输出数据812相比,生成第五输出数据802的第五机器学习模型具有更多的周期减少(例如,更低的周期百分比),同时维持基本相似(例如,在1%、2%等等内)的前1准确度和前5准确度。有利的是,模型训练控制器104a-e可以训练和/或以其他方式输出稀疏模型,与传统的机器学习训练技术相比,执行稀疏模型的周期数目减少了。
[0139]
图9a是基于图6a的第一示例输出数据602和图6b的第二示例输出数据612的第一示例图线900。图9b是基于图7a的第三示例输出数据702和图7b的第四示例输出数据712的第二示例图线910。图9c是基于图8a的第五示例输出数据802和图8b的第六示例输出数据812的第三示例图线920。图线900、910、920描绘了相对于周期百分比的前1准确度(%)。有利的是,图线900、910、920表明,基于目标硬件平台的硬件配置训练的机器学习模型减少了在目标硬件平台上要执行的周期的数目。例如,在第一图线900中,由第一机器学习模型生成的第一输出数据602与由第二机器学习模型生成的第二输出数据612相比,可提供基本相似的准确度,同时要求较少的周期来操作。
[0140]
图10a是示例激活稀疏百分比相对于示例层索引的第一图线1000。在这个示例中,激活稀疏百分比和层索引对应于resnet-50模型。在一些情况下,机器学习训练技术(例如强化学习)可通过在维持所需的准确度水平的情况下修剪尽可能多的激活权重来稀疏resnet-50模型。在这种情况下,如图10a的示例所示,强化学习技术在后期层中而不是在早期层中修剪更多的激活权重。在一些这样的情况下,早期层通常对于resnet-50模型的准确度更重要,从而,没有像后期层那样被修剪得那么多。
[0141]
图10b是由图1和/或图2的示例模型训练控制器104a-e训练的示例机器学习模型的示例稀疏百分比相对于示例层索引的第二图线1010。例如,第二图线1010可与由模型训练控制器104a-e基于目标硬件平台的硬件配置而训练的图1的(一个或多个)机器学习模型124、图2的机器学习模型274等等相关联。
[0142]
有利的是,在一些示例中,模型训练控制器104a-e在考虑目标硬件平台的硬件效率时,考虑到机器学习模型(例如resnet-50)中的后期层的激活稀疏度比早期层的高得多,从而通过考虑到激活稀疏度来训练机器学习模型。例如,对于一些目标硬件平台,一旦激活稀疏度达到和/或以其他方式接近一定水平,权重稀疏度就不能引入那么多的速度提升,因此,后期层不需要被修剪那么多,而相反,早期层需要更多的修剪,才能有增大的目标硬件平台性能。在图10b的示例中展示了早期层的这种增加的修剪。
[0143]
图10c是未被图1和/或图2的示例模型训练控制器104a-e训练的示例机器学习模型的示例稀疏百分比相对于示例层索引的第三图线1020。例如,第三图线1020可与未基于目标硬件平台的硬件配置训练的机器学习模型相关联。在图10c的示例中,训练代理(例如,强化学习代理)在最后几层中修剪超过75%的权重,而在早期层中只修剪不到50%。有利的
是,模型训练控制器104a-e可在大约75%的稀疏度上修剪早期层(如图10b所示),而后期层只包含少于50%的稀疏度。有利的是,通过对早期层的修剪多于后期层,模型训练控制器104a-e可以训练机器学习模型以实现更大的稀疏度,同时与其他机器学习训练技术相比减少了周期数目。
[0144]
图11描绘了可由图1和/或图2的示例模型训练控制器104a-e用于训练示例机器学习模型的示例硬件配置1100,例如图1的(一个或多个)机器学习模型124、图2的机器学习模型274,等等。图11的硬件配置1100可以是图1的(一个或多个)硬件配置122、图2的(一个或多个)硬件配置272和/或图5的硬件配置519的示例实现。
[0145]
在图11的图示示例中,硬件配置1100包括与目标硬件平台(例如图1的cpu 106、第一加速资源108、第二加速资源110,等等)相关联的示例处理或处理器配置信息1102、第一示例存储器配置信息1104、示例缓存配置信息1106和第二示例存储器配置信息1108。在这个示例中,处理器配置信息1102包括关于与目标硬件平台的一个或多个处理器或其他处理元件相关联的处理器或时钟频率、架构频率、数据处理单元(dpu)的数目、激活精度和权重精度的参数。
[0146]
在图11的图示示例中,第一存储器配置信息1104包括与指定存储器配置信息相关联的参数,例如与目标硬件平台的存储器相关联的存储器类型(例如,时钟同步随机存取存储器(clock synchronous random access memory,csram)、ddr,等等)、读存储器带宽、写存储器带宽、存储器减额因子或者存储器端口的数目中的至少一者。在这个示例中,第二存储器配置信息1108包括关于与目标硬件平台的存储器相关联的读总线宽度和写总线宽度的参数。在这个示例中,缓存配置信息1106包括关于与目标硬件平台的缓存存储器相关联的缓存大小或者缓存操作频率的参数。
[0147]
表示用于实现图1和/或图2的模型训练控制器104a-e的示例硬件逻辑、机器可读指令、硬件实现状态机和/或这些的任何组合的流程图在图12-图13中示出。机器可读指令可以是供计算机处理器和/或处理器电路执行的一个或多个可执行程序或者可执行程序的(一个或多个)部分,所述计算机处理器和/或处理器电路例如是下文联系图14论述的示例处理器平台1400中所示的处理器1412。该(一个或多个)程序可体现在存储于诸如cd-rom、软盘、硬盘驱动器、dvd、蓝光盘或与处理器1412相关联的存储器之类的非暂态计算机可读存储介质上的软件,但(一个或多个)程序的整体和/或其一些部分可替换为由除了处理器1412以外的设备执行和/或体现在固件或专用硬件中。另外,虽然是参考图12-图13中所示的流程图来描述(一个或多个)示例程序的,但可替换使用实现示例模型训练控制器104a-e的许多其他方法。例如,块的执行顺序可被改变,和/或描述的块中的一些可被改变、消除或组合。额外地或者替换地,任何或所有块可由被构造为执行相应的操作而不执行软件或固件的一个或多个硬件电路(例如,分立和/或集成模拟和/或数字电路、fpga、asic、比较器、运算放大器(op-amp)、逻辑电路等等)实现。处理器电路可分布在不同的网络位置和/或在一个或多个设备的本地(例如,单个机器中的多核处理器,分布在服务器机架上的多个处理器,等等)。
[0148]
本文描述的机器可读指令可以以压缩格式、加密格式、分段格式、编译格式、可执行格式、打包格式等等中的一种或者多种格式存储。本文描述的机器可读指令可存储为可被利用来创建、制造和/或生产机器可执行指令的数据或数据结构(例如,指令的部分、代
码、代码的表示,等等)。例如,机器可读指令可被分割并存储在位于网络或者网络集合的相同或不同位置的一个或多个存储设备和/或计算设备(例如,服务器)上(例如,在云中,在边缘设备中,等等)。机器可读指令可要求安装、修改、改编、更新、组合、补充、配置、解密、解压缩、解包、分发、重指派、编译等等中的一个或多个以便使得它们可被计算设备和/或其他机器直接可读、可解释和/或可执行。例如,机器可读指令可被存储为多个部分,这些部分被单独压缩、加密并存储在分开的计算设备上,其中这些部分当被解密、解压缩和组合时形成实现可一起形成例如本文所述那种的程序的一个或多个功能的一组可执行指令。
[0149]
在另一示例中,机器可读指令可被存储在如下状态中:在该状态中它们可被处理器电路读取,但要求添加库(例如,动态链接库(dynamic link library,dll))、软件开发套件(software development kit,sdk)、应用编程接口(application programming interface,api)等等以便在特定的计算设备或其他设备上执行这些指令。在另一示例中,在机器可读指令和/或相应的(一个或多个)程序可被全部或部分执行之前,机器可读指令可能需要被配置(例如,存储设置、输入数据、记录网络地址,等等)。从而,如本文使用的机器可读介质可包括机器可读指令和/或(一个或多个)程序,无论这些机器可读指令和/或(一个或多个)程序在被存储时或以其他方式在休息或在途时的特定格式或状态如何。
[0150]
本文描述的机器可读指令可由任何过去、当前或将来的指令语言、脚本语言、编程语言等等来表示。例如,机器可读指令可利用以下语言的任何一者来表示:c、c 、java、c#、perl、python、javascript、超本文标记语言(hypertext markup language,html)、结构化查询语言(structured query language,sql)、swift,等等。
[0151]
如上所述,图12-图13的示例过程可利用存储在非暂态计算机和/或机器可读介质上的可执行指令(例如,计算机和/或机器可读指令)来实现,所述介质例如是硬盘驱动器、闪存、只读存储器、致密盘、数字多功能盘、缓存、随机存取存储器和/或其中信息可被存储任何持续时间(例如,存储较长时间段、永久存储、短暂存储、用于临时缓冲和/或用于信息的缓存)的任何其他存储设备或存储盘。就本文使用的而言,术语非暂态计算机可读介质被明确定义为包括任何类型的计算机可读存储设备和/或存储盘并且排除传播信号和排除传输介质。
[0152]“包括”和“包含”(以及其所有形式和时态)在本文中用作开端式术语。从而,每当权利要求使用任何形式的“包括”或“包含”(例如,包括、包含、具有等等)作为序言或者在任何种类的权利要求记载中使用时,要理解额外的元素、术语等等可存在,而没有落在相应权利要求或记载的范围之外。就本文使用的而言,当短语“至少”在例如权利要求的序言中被用作过渡术语时,它是开端的,与术语“包括”和“包含”是开端的方式一样。术语“和/或”当例如被以比如a、b和/或c这样的形式使用时指的是a、b、c的任何组合或子集,例如(1)a单独,(2)b单独,(3)c单独,(4)a与b,(5)a与c,(6)b与c,以及(7)a与b以及与c。就本文在描述结构、组件、项目、对象和/或事物的上下文中使用的而言,短语“a和b的至少一者”打算指包括以下各项的任何一者的实现方式:(1)至少一个a,(2)至少一个b,以及(3)至少一个a和至少一个b。类似地,就本文在描述结构、组件、项目、对象和/或事物的上下文中使用的而言,短语“a或b的至少一者”打算指包括以下各项的任何一者的实现方式:(1)至少一个a,(2)至少一个b,以及(3)至少一个a和至少一个b。就本文在描述过程、指令、动作、活动和/或步骤的执行或运行的上下文中使用的而言,短语“a和b的至少一者”打算指包括以下各项的任何
一者的实现方式:(1)至少一个a,(2)至少一个b,以及(3)至少一个a和至少一个b。类似地,就本文在描述过程、指令、动作、活动和/或步骤的执行或运行的上下文中使用的而言,短语“a或b的至少一者”打算指包括以下各项的任何一者的实现方式:(1)至少一个a,(2)至少一个b,以及(3)至少一个a和至少一个b。
[0153]
就本文使用的而言,单数指代(例如,“一”、“第一”、“第二”等等)不排除多数。就本文使用的而言,术语“一”实体指的是一个或多个该实体。术语“一”、“一个或多个”和“至少一个”在本文中可互换使用。此外,虽然是单独列出的,但多个手段、元素或方法动作可由例如单个单元或处理器实现。此外,虽然个体特征可被包括在不同的示例或权利要求中,但它们可能可被组合,并且包括在不同的示例或权利要求中并不暗示着特征的组合是不可行的和/或不是有利的。
[0154]
图12是表示可被执行来实现图1和/或图2的示例模型训练控制器104a-e以基于目标硬件平台的配置来训练机器学习模型的示例机器可读指令1200的流程图。示例机器可读指令1200开始于块1202,在该块中,示例模型训练控制器104a-e确定要在其上执行机器学习模型的目标硬件平台的硬件配置。例如,配置确定器220(图2)可确定在图1的(一个或多个)硬件配置122、图2的硬件配置272、图5的硬件配置519、图11的硬件配置1100等等中包括的与图1的第一加速资源108相关联的处理器配置信息、存储器配置信息或者缓存配置信息中的至少一者。
[0155]
在块1204,示例模型训练控制器104a-e基于硬件配置将稀疏率指派给机器学习模型的层。例如,层生成器230(图2)可为图5的layer t指派75%的第一稀疏率,为图5的layer t 1指派70%的第二稀疏率,等等。
[0156]
在块1206,示例模型训练控制器104a-e利用目标数据集执行机器学习模型。例如,模型训练处理器240(图2)可调用图5的体系结构基准处理器520,以利用其中layer t具有第一稀疏率、layer t 1具有第二稀疏率等等的机器学习模型来处理训练数据276或者其(一个或多个)部分。
[0157]
在块1208,示例模型训练控制器104a-e确定执行机器学习模型的时钟周期的数量是否满足阈值。例如,模型训练处理器240可确定第一加速资源108利用指派的稀疏率处理训练数据276或者其(一个或多个)部分的时钟周期的数量是否通过小于时钟周期的阈值数量而满足时钟周期的阈值数量。在这样的示例中,部署控制器260可响应于确定时钟周期的数量不满足时钟周期的阈值数量而对机器学习模型进行重训练、调用模型训练处理器240来重训练,等等。
[0158]
如果在块1208处,示例模型训练控制器104a-e确定执行机器学习模型的时钟周期的数量不满足阈值,则控制返回到块1204,以基于硬件配置将一个或多个不同的稀疏率指派给机器学习模型的层。如果在块1208,示例模型训练控制器104a-e确定执行机器学习模型的时钟周期的数量满足阈值,那么在块1210,模型训练控制器104a-e确定是否对机器学习模型进行微调。例如,微调处理器250(图2)可确定图4的最佳奖励稀疏模型404的准确度小于准确度阈值,从而不满足准确度阈值。
[0159]
如果在块1210,示例模型训练控制器104a-e确定不微调机器学习模型,则控制进行到块1214以将机器学习模型部署到目标硬件平台。如果在块1210,示例模型训练控制器104a-e确定要微调机器学习模型,那么在块1212,模型训练控制器104a-e微调机器学习模
型。例如,微调处理器250(图2)可对最佳奖励稀疏模型404调用微调操作402,以生成图4的最终稀疏模型406。在这样的示例中,微调处理器250可调用微调操作以使得最终稀疏模型406将最佳奖励稀疏模型404的第一准确度提高到大于第一准确度的第二准确度。在一些这样的示例中,第二准确度可大于或者等于准确度阈值,从而满足准确度阈值。
[0160]
在块1214,示例模型训练控制器104a-e将机器学习模型部署到目标硬件平台。例如,部署控制器260(图2)可将最终稀疏模型406部署、分发和/或以其他方式提供给一个或多个目标硬件平台,例如图1的cpu 106、第一加速资源108,等等。在这样的示例中,第一加速资源108可执行和/或以其他方式促进完成一个或多个机器学习任务,例如计算机视觉任务、图像处理任务,等等,和/或这些的组合。在一些示例中,部署控制器260可将最终稀疏模型406存储在数据存储120中。在这样的示例中,最终稀疏模型406可经由图1的网络128被从第一计算系统102传送到(一个或多个)外部计算系统130中的一个(或多个)。当在块1214处将机器学习模型部署到目标硬件平台之后,图12的示例机器可读指令1200结束。
[0161]
图13是表示可被执行来实现图1和/或图2的示例模型训练控制器104a-e以基于目标硬件平台的配置来训练机器学习模型的示例机器可读指令1300的流程图。图13的示例机器可读指令1300开始于块1302,在该块中,示例模型训练控制器104a-e选择基线机器学习模型来训练。例如,通信接口210(图2)可获得图3的基线机器学习模型304来训练。
[0162]
在块1304,示例模型训练控制器104a-e确定要在其上执行机器学习模型的目标硬件平台的硬件配置。例如,配置确定器220(图2)可确定在图1的(一个或多个)硬件配置122、图2的硬件配置272、图5的硬件配置519、图11的硬件配置1100等等中包括的与图1的第一加速资源108相关联的处理器配置信息、存储器配置信息或者缓存配置信息中的至少一者。
[0163]
在块1306,示例模型训练控制器104a-e选择机器学习模型的一层来处理。例如,层生成器230(图2)可选择图5的层518中的第一层来处理,例如layer t。
[0164]
在块1308,示例模型训练控制器104a-e确定该层的嵌入状态。例如,模型训练处理器240(图2)可指导、指示和/或以其他方式调用体系结构基准处理器520来输出环境输出数据512,该数据可包括由上述阵列(1)的示例定义的嵌入状态。
[0165]
在块1310,示例模型训练控制器104a-e预测在目标硬件平台上代表周期减少百分比的层的动作。例如,模型训练处理器240可预测和/或以其他方式生成图5的动作516。在这样的示例中,动作516可以是响应于将(一个或多个)稀疏率指派给层518中的一个(或多个)的时钟周期的减少的百分比。
[0166]
在块1312,示例模型训练控制器104a-e基于预测的动作确定层的稀疏率。例如,层生成器230(图2)可基于动作516将第一稀疏率指派给层518中的第一层。
[0167]
在块1314,示例模型训练控制器104a-e确定是否要选择机器学习模型的另一层来处理。例如,层生成器230可确定选择层518中的第二层来处理,例如图5的layer t 1。
[0168]
如果在块1314,示例模型训练控制器104a-e确定选择机器学习模型的另一层来处理,则控制返回到块1306以选择机器学习模型的另一层来处理。如果在块1314,示例模型训练控制器104a-e确定不选择机器学习模型的另一层来处理,那么在块1316,模型训练控制器104a-e基于指派的稀疏率用机器学习模型处理训练数据的子集,以生成奖励。例如,模型训练处理器240可指示体系结构基准处理器520,和/或更一般地,图5的环境514,以利用训练数据276(图2)的一部分来输出图5的奖励524。
[0169]
在块1318,示例模型训练控制器104a-e确定预测的动作和生成的奖励之间的差异是否满足训练阈值。例如,模型训练处理器240可确定奖励524是否表明具有指派的稀疏率的机器学习模型的准确度满足训练阈值,例如准确度阈值。在这样的示例中,模型训练处理器240可指示环境514响应于至少机器学习模型的准确度满足训练阈值而输出图5的最佳奖励稀疏模型506。在一些示例中,部署控制器260响应于确定具有指派的稀疏率的机器学习模型的准确度不满足训练阈值而对机器学习模型进行重训练、调用模型训练处理器240来重训练,等等。
[0170]
如果在块1318,示例模型训练控制器104a-e确定预测的动作和生成的奖励之间的差异不满足训练阈值,则控制返回到块1306以选择学习模型的另一层来处理。如果在块1318,示例模型训练控制器104a-e确定预测的动作和生成的奖励之间的差异满足训练阈值,那么在块1320,模型训练控制器104a-e将经训练的机器学习模型部署到目标硬件平台。
[0171]
在块1320,示例模型训练控制器104a-e将经训练的机器学习模型部署到目标硬件平台。例如,部署控制器260(图2)可将最佳奖励稀疏模型506部署、分发和/或以其他方式提供给一个或多个目标硬件平台,例如图1的cpu 106、第一加速资源108,等等。在这样的示例中,第一加速资源108可执行和/或以其他方式促进完成一个或多个机器学习任务,例如计算机视觉任务、图像处理任务,等等,和/或这些的组合。在一些示例中,微调处理器250(图2)可在图5的最佳奖励稀疏模型506上完成图4的微调操作402,以生成和/或以其他方式输出图4的最终稀疏模型406。当在块1320处将经训练的机器学习模型部署到目标硬件平台之后,图13的示例机器可读指令1300结束。
[0172]
图14是被构造来执行图12-图13的指令以实现图1和/或图2的示例模型训练控制器104a-e的示例处理器平台1400的框图。处理器平台1400可例如是服务器、个人计算机、工作站、自学习机器(例如,神经网络)、移动设备(例如,蜂窝电话、智能电话、诸如ipad
tm
之类的平板设备)、游戏机或者任何其他类型的计算设备。
[0173]
图示示例的处理器平台1400包括处理器1412。图示示例的处理器1412是硬件。例如,处理器1412可由来自任何期望的家族或制造商的一个或多个集成电路、逻辑电路、微处理器、gpu、dsp或者控制器实现。硬件处理器可以是基于半导体(例如,基于硅)的设备。在这个示例中,处理器1412实现了图2的示例配置确定器220、示例层生成器230、示例模型训练处理器240、示例微调处理器250和示例部署控制器260。
[0174]
图示示例的处理器1412包括本地存储器1413(例如,缓存)。图示示例的处理器1412经由总线1418与包括易失性存储器1414和非易失性存储器1416的主存储器通信。易失性存储器1414可由同步动态随机存取存储器(synchronous dynamic random access memory,sdram)、动态随机存取存储器(dynamic random access memory,dram)、动态随机存取存储器(dynamic random access memory,)和/或任何其他类型的随机存取存储器设备实现。非易失性存储器1416可由闪存和/或任何其他期望类型的存储器设备实现。对主存储器1414、1416的访问受存储器控制器控制。
[0175]
图示示例的处理器平台1400还包括接口电路1420。接口电路1420可由任何类型的接口标准实现,例如以太网接口、通用串行总线(universal serial bus,usb)、接口、近场通信(near field communication,nfc)接口和/或pci快速接口。在
这个示例中,接口电路1420实现图2的通信接口210。
[0176]
在图示示例中,一个或多个输入设备1422连接到接口电路1420。(一个或多个)输入设备1422允许用户向处理器1412中输入数据和/或命令。(一个或多个)输入设备可由例如音频传感器、麦克风、相机(静态或视频)、键盘、按钮、鼠标、触摸屏、触控板、轨迹球、isopoint设备和/或语音识别系统实现。
[0177]
一个或多个输出设备1424也连接到图示示例的接口电路1420。输出设备1424可例如由显示设备(例如,发光二有管(light emitting diode,led)、有机发光二极管(organic light emitting diode,oled)、液晶显示器(liquid crystal display,lcd)、阴极射线管(cathode ray tube,crt)显示器、就地切换(in-place switching,ips)显示器、触摸屏等等)、触觉输出设备、打印机和/或扬声器实现。图示示例的接口电路1420从而通常包括图形驱动器卡、图形驱动器芯片和/或图形驱动器处理器。
[0178]
图示示例的接口电路1420还包括通信设备,例如发送器、接收器、收发器、调制解调器、住宅网关、无线接入点和/或网络接口,来促进经由网络1426与外部机器(例如,任何种类的计算设备)的数据交换。通信可经由例如以太网连接、数字订户线(digital subscriber line,dsl)连接、电话线连接、同轴线缆系统、卫星系统、直线对传式无线系统、蜂窝电话系统等等。
[0179]
图示示例的处理器平台1400还包括用于存储软件和/或数据的一个或多个大容量存储设备1428。这种大容量存储设备1428的示例包括软盘驱动器、硬盘驱动器、致密盘驱动器、蓝光盘驱动器、独立盘冗余阵列(redundant array of independent disks,raid)系统以及数字多功能盘(dvd)驱动器。在这个示例中,一个或多个大容量存储设备1428实现示例数据存储270,以存储图2的(一个或多个)示例硬件配置272(描绘为(一个或多个)h/w config)、示例机器学习模型274(描绘为ml model)、示例训练数据276和/或示例训练输出数据278。
[0180]
图12-图13中表示的示例机器可执行指令1432可被存储在大容量存储设备1428中、易失性存储器1414中、非易失性存储器1416中和/或诸如cd或dvd之类的可移除非暂态计算机可读存储介质上。
[0181]
图14的图示示例的处理器平台1400包括示例图形处理单元(graphic processing unit,gpu)1440、示例视觉处理单元(vision processing unit,vpu)1442和示例神经网络处理器1444。在这个示例中,gpu 1440、vpu 1442和神经网络处理器1444经由总线1418与处理平台1400的不同硬件(例如易失性存储器1414、非易失性存储器1416等等)进行通信。在这个示例中,神经网络处理器1444可由来自任何期望家族或制造商的一个或多个集成电路、逻辑电路、微处理器、gpu、dsp或者控制器来实现,它们可用来执行ai模型,例如神经网络。在一些示例中,取代处理器1412或者除了处理器1412以外,配置确定器220、层生成器230、模型训练处理器240、微调处理器250和/或部署控制器260中的一个或多个可在gpu 1440、vpu 1442或者神经网络处理器1444中实现或者用其实现。
[0182]
在图15中图示了图示出用于向第三方分发诸如图14的示例计算机可读指令1432之类的软件的示例软件分发平台1505的框图。示例软件分发平台1505可由能够存储软件并且将其传送到其他计算设备的任何计算机服务器、数据设施、云服务等等实现。第三方可以是拥有和/或操作该软件分发平台的实体的客户。例如,拥有和/或操作软件分发平台的实
体可以是软件(例如图14的示例计算机可读指令1432)的开发者、销售者和/或许可人。第三方可以是购买和/或许可该软件以供使用和/或再销售和/或分许可的消费者、用户、零售商、oem,等等。在图示示例中,软件分发平台1505包括一个或多个服务器和一个或多个存储设备。存储设备存储计算机可读指令1432,这些指令可对应于如上所述的图12-图13的示例计算机可读指令1200、1300。示例软件分发平台1505的一个或多个服务器与网络1510通信,该网络可对应于互联网和/或上述的示例网络128、1426的任何一者中的任何一个或多个。在一些示例中,作为商业交易的一部分,一个或多个服务器响应将软件传送给请求方的请求。对软件的交付、销售和/或许可的支付可由软件分发平台的一个或多个服务器处理和/或经由第三方支付实体处理。这些服务器使得购买者和/或许可人能够从软件分发平台1505下载计算机可读指令1432。例如,可与图12-图13的示例计算机可读指令1200、1300相对应的软件可被下载到示例处理器平台1400,该平台要执行计算机可读指令1432以实现图1和/或图2的模型训练控制器104a-e。在一些示例中,软件分发平台1505的一个或多个服务器定期提供、传送和/或强制更新软件(例如,图14的示例计算机可读指令1432),以确保改进、补丁、更新等等被分发并且在终端用户设备处被应用于软件。
[0183]
根据前述内容,将会明白已公开了示例系统、方法、装置和制品,这些系统、方法、装置和制品将硬件感知的稀疏度应用于机器学习模型,例如神经网络,该模型是基于目标硬件平台的硬件体系结构来指导的和/或以其他方式基于目标硬件平台的硬件体系结构。公开的方法、装置和制品为将在目标硬件平台上执行的神经网络的每一层识别稀疏率。
[0184]
公开的方法、装置和制品通过在计算设备上训练和/或以其他方式生成具有相对高的性能的机器学习模型来提高使用计算设备的效率,该机器学习模型的准确度与该机器学习模型的基线版本基本相似,但尺寸减小(例如,增大了稀疏度)。有利的是,与基线版本相比,计算设备可以用减少的周期数目(例如,时钟周期)执行机器学习模型。公开的方法、装置和制品因此指向计算机的功能中的一个或多个改进。
[0185]
本文公开了用于硬件感知的机器学习模型训练的示例方法、装置、系统和制品。进一步示例及其组合包括以下的:
[0186]
示例1包括一种用于训练机器学习模型的装置,该装置包括配置确定器,用于确定要在其上执行所述机器学习模型的目标硬件平台的硬件配置,层生成器,用于基于所述硬件配置来向所述机器学习模型的层指派稀疏配置,以及部署控制器,用于响应于所述机器学习模型的输出满足各个阈值而将所述机器学习模型部署到所述目标硬件平台,所述输出包括在所述层具有指派的稀疏配置的情况下执行所述机器学习模型的时钟周期的数量。
[0187]
示例2包括如示例1所述的装置,其中所述层生成器选择所述层中的第一层并且将零指派给所述第一层的矩阵的一个或多个值,并且所述装置还包括模型训练处理器,用于确定利用所述矩阵执行卷积操作的时钟周期的第一数量。
[0188]
示例3包括如示例1所述的装置,其中所述输出包括所述机器学习模型的准确度,所述各个阈值是预定的,所述各个阈值包括准确度阈值和时钟周期阈值,并且所述装置还包括模型训练处理器来确定所述准确度是否满足所述准确度阈值,并且确定所述时钟周期的数量是否满足所述时钟周期阈值,并且所述部署控制器响应于以下所列项中的至少一者而重训练所述机器学习模型:(a)所述准确度不满足所述准确度阈值,或者(b)所述时钟周期的数量不满足所述时钟周期阈值,并且响应于以下所列项中的至少一者而识别所述机器
学习模型以用于部署:(a)所述准确度满足所述准确度阈值,并且(b)所述时钟周期的数量满足所述时钟周期阈值。
[0189]
示例4包括如示例1所述的装置,其中所述硬件配置包括以下所列项中的至少一者:与所述目标硬件平台相关联的存储器配置信息、缓存配置信息或者处理配置信息。
[0190]
示例5包括如示例1所述的装置,其中所述硬件配置指定以下所列项中的至少一者:与所述目标硬件平台的缓存存储器相关联的缓存大小或者缓存操作频率。
[0191]
示例6包括如示例1所述的装置,其中所述硬件配置指定以下所列项中的至少一者:与所述目标硬件平台的存储器相关联的存储器类型、读存储器带宽、读总线宽度、写存储器带宽、写总线宽度、存储器减额因子或者存储器端口的数目。
[0192]
示例7包括如示例1所述的装置,其中所述硬件配置指定以下所列项中的至少一者:与所述目标硬件平台的一个或多个处理器相关联的数据处理单元的数目、时钟频率、架构频率、激活精度或者权重精度。
[0193]
示例8包括如示例1所述的装置,其中所述目标硬件平台是数字信号处理器、图形处理单元或者视觉处理单元。
[0194]
示例9包括一种用于训练机器学习模型的装置,该装置包括用于确定要在其上执行所述机器学习模型的目标硬件平台的硬件配置的装置,用于基于所述硬件配置来向所述机器学习模型的层指派稀疏配置的装置,以及用于响应于所述机器学习模型的输出满足各个阈值而将所述机器学习模型部署到所述目标硬件平台的装置,所述输出包括在所述层具有指派的稀疏配置的情况下执行所述机器学习模型的时钟周期的数量。
[0195]
示例10包括如示例9所述的装置,其中所述用于确定的装置是用于确定的第一装置,所述用于指派的装置选择所述层中的第一层并且将零指派给所述第一层的矩阵的一个或多个值,并且所述装置还包括用于确定利用所述矩阵执行卷积操作的时钟周期的第一数量的第二装置。
[0196]
示例11包括如示例9所述的装置,其中所述用于确定的装置是用于确定的第一装置,所述输出包括所述机器学习模型的准确度,所述各个阈值是预定的,所述各个阈值包括准确度阈值和时钟周期阈值,并且所述装置还包括用于确定的第二装置,用于确定所述准确度是否满足所述准确度阈值并且确定所述时钟周期的数量是否满足所述时钟周期阈值,并且所述用于部署的装置响应于以下所列项中的至少一者而重训练所述机器学习模型:(a)所述准确度不满足所述准确度阈值,或者(b)所述时钟周期的数量不满足所述时钟周期阈值,并且响应于以下所列项中的至少一者而识别所述机器学习模型来部署:(a)所述准确度满足所述准确度阈值,并且(b)所述时钟周期的数量满足所述时钟周期阈值。
[0197]
示例12包括如示例9所述的装置,其中所述硬件配置包括以下所列项中的至少一者:与所述目标硬件平台相关联的存储器配置信息、缓存配置信息或者处理配置信息。
[0198]
示例13包括如示例9所述的装置,其中所述硬件配置指定以下所列项中的至少一者:与所述目标硬件平台的缓存存储器相关联的缓存大小或者缓存操作频率。
[0199]
示例14包括如示例9所述的装置,其中所述硬件配置指定以下所列项中的至少一者:与所述目标硬件平台的存储器相关联的存储器类型、读存储器带宽、读总线宽度、写存储器带宽、写总线宽度、存储器减额因子或者存储器端口的数目。
[0200]
示例15包括如示例9所述的装置,其中所述硬件配置指定以下所列项中的至少一
者:与所述目标硬件平台的一个或多个处理器相关联的数据处理单元的数目、时钟频率、架构频率、激活精度或者权重精度。
[0201]
示例16包括如示例9所述的装置,其中所述目标硬件平台是数字信号处理器、图形处理单元或者视觉处理单元。
[0202]
示例17包括一种包括指令的非暂态计算机可读存储介质,所述指令当被执行时使得机器至少确定要在其上执行机器学习模型的目标硬件平台的硬件配置,基于所述硬件配置来向所述机器学习模型的层指派稀疏配置,并且响应于所述机器学习模型的输出满足各个阈值而将所述机器学习模型部署到所述目标硬件平台,所述输出包括在所述层具有指派的稀疏配置的情况下执行所述机器学习模型的时钟周期的数量。
[0203]
示例18包括如示例17所述的非暂态计算机可读存储介质,其中所述指令当被执行时使得所述机器选择所述层中的第一层,将零指派给所述第一层的矩阵的一个或多个值,并且确定利用所述矩阵执行卷积操作的时钟周期的第一数量。
[0204]
示例19包括如示例17所述的非暂态计算机可读存储介质,其中所述输出包括所述机器学习模型的准确度,所述各个阈值是预定的,所述各个阈值包括准确度阈值和时钟周期阈值,并且所述指令当被执行时使得所述机器确定所述准确度是否满足所述准确度阈值,确定所述时钟周期的数量是否满足所述时钟周期阈值,并且响应于以下所列项中的至少一者而重训练所述机器学习模型:(a)所述准确度不满足所述准确度阈值,或者(b)所述时钟周期的数量不满足所述时钟周期阈值,并且响应于以下所列项中的至少一者而识别所述机器学习模型来部署:(a)所述准确度满足所述准确度阈值,并且(b)所述时钟周期的数量满足所述时钟周期阈值。
[0205]
示例20包括如示例17所述的非暂态计算机可读存储介质,其中所述硬件配置包括以下所列项中的至少一者:与所述目标硬件平台相关联的存储器配置信息、缓存配置信息或者处理配置信息。
[0206]
示例21包括如示例17所述的非暂态计算机可读存储介质,其中所述硬件配置指定以下所列项中的至少一者:与所述目标硬件平台的缓存存储器相关联的缓存大小或者缓存操作频率。
[0207]
示例22包括如示例17所述的非暂态计算机可读存储介质,其中所述硬件配置指定以下所列项中的至少一者:与所述目标硬件平台的存储器相关联的存储器类型、读存储器带宽、读总线宽度、写存储器带宽、写总线宽度、存储器减额因子或者存储器端口的数目。
[0208]
示例23包括如示例17所述的非暂态计算机可读存储介质,其中所述硬件配置指定以下所列项中的至少一者:与所述目标硬件平台的一个或多个处理器相关联的数据处理单元的数目、时钟频率、架构频率、激活精度或者权重精度。
[0209]
示例24包括如示例17所述的非暂态计算机可读存储介质,其中所述目标硬件平台是数字信号处理器、图形处理单元或者视觉处理单元。
[0210]
示例25包括一种训练机器学习模型的方法,该方法包括确定要在其上执行所述机器学习模型的目标硬件平台的硬件配置,基于所述硬件配置来向所述机器学习模型的层指派稀疏配置,并且响应于所述机器学习模型的输出满足各个阈值而将所述机器学习模型部署到所述目标硬件平台,所述输出包括在所述层具有指派的稀疏配置的情况下执行所述机器学习模型的时钟周期的数量。
[0211]
示例26包括如示例25所述的方法,还包括选择所述层中的第一层,将零指派给所述第一层的矩阵的一个或多个值,并且确定利用所述矩阵执行卷积操作的时钟周期的第一数量。
[0212]
示例27包括如示例25所述的方法,其中所述输出包括所述机器学习模型的准确度,所述各个阈值是预定的,所述各个阈值包括准确度阈值和时钟周期阈值,并且所述方法还包括确定所述准确度是否满足所述准确度阈值,确定所述时钟周期的数量是否满足所述时钟周期阈值,并且响应于以下所列项中的至少一者而重训练所述机器学习模型:(a)所述准确度不满足所述准确度阈值,或者(b)所述时钟周期的数量不满足所述时钟周期阈值,并且响应于以下所列项中的至少一者而识别所述机器学习模型来部署:(a)所述准确度满足所述准确度阈值,并且(b)所述时钟周期的数量满足所述时钟周期阈值。
[0213]
示例28包括如示例25所述的方法,其中所述硬件配置包括以下所列项中的至少一者:与所述目标硬件平台相关联的存储器配置信息、缓存配置信息或者处理配置信息。
[0214]
示例29包括如示例25所述的方法,其中所述硬件配置指定以下所列项中的至少一者:与所述目标硬件平台的缓存存储器相关联的缓存大小或者缓存操作频率。
[0215]
示例30包括如示例25所述的方法,其中所述硬件配置指定以下所列项中的至少一者:与所述目标硬件平台的存储器相关联的存储器类型、读存储器带宽、读总线宽度、写存储器带宽、写总线宽度、存储器减额因子或者存储器端口的数目。
[0216]
示例31包括如示例25所述的方法,其中所述硬件配置指定以下所列项中的至少一者:与所述目标硬件平台的一个或多个处理器相关联的数据处理单元的数目、时钟频率、架构频率、激活精度或者权重精度。
[0217]
示例32包括如示例25所述的方法,其中所述目标硬件平台是数字信号处理器、图形处理单元或者视觉处理单元。
[0218]
虽然本文公开了某些示例系统、方法、装置和制品,但本专利的覆盖范围不限于此。相反,本专利覆盖了公平地落在本专利的权利要求的范围内的所有系统、方法、装置和制品。
[0219]
特此通过引用将所附权利要求并入到本“具体实施方式”部分中,其中每个权利要求独立作为本公开的一个单独实施例。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献