首页> 中国专利> 模型压缩中对稀疏率的贝叶斯优化

模型压缩中对稀疏率的贝叶斯优化

摘要

本发明公开了模型压缩中稀疏率的贝叶斯优化。方法的一个实施例包括:由贝叶斯优化器确定第一稀疏率,所述第一稀疏率与由于压缩机器学习模型而导致的精度损失的限制相关联。该方法还包括由贝叶斯优化器选择第二稀疏率,该第二稀疏率在由第一稀疏率限定的搜索空间内为机器学习模型优化预定义的目标函数。该方法还包括生成具有所述第二稀疏率的机器学习模型的压缩版本。

著录项

  • 公开/公告号CN113313229A

    专利类型发明专利

  • 公开/公告日2021-08-27

    原文格式PDF

  • 申请/专利权人 辉达公司;

    申请/专利号CN202110020998.1

  • 申请日2021-01-06

  • 分类号G06N3/04(20060101);G06N3/08(20060101);G06N20/00(20190101);G06K9/62(20060101);

  • 代理机构11336 北京市磐华律师事务所;

  • 代理人赵楠

  • 地址 美国加利福尼亚州

  • 入库时间 2023-06-19 12:22:51

说明书

根据DARPA SDH软件定义的硬件交响曲(Hardware Symphony)DARPA TIA#HR0011-18-3-0007,本发明受美国政府的保护。美国政府享有本发明的某些权利。

本申请要求2019年8月26日递交并具有序列号62/891897的题为“资源有效贝叶斯模型压缩”的美国临时申请的权益。该申请的主题内容通过引用被全部合并于此。

背景技术

各种实施方式的领域

本公开的实施例总体上涉及机器学习模型的压缩,并且更具体地,涉及模型压缩中的稀疏率(sparsity ratios)的贝叶斯(Bayesian)优化。

相关技术的描述

深度神经网络通常具有大量计算繁重的层,例如卷积层和/或全连接层。此类神经网络还经常使用全精度算术进行训练和部署。结果,执行DNN可能会涉及大量的复杂性、延迟和存储器消耗。

可以采用多种技术来减少深度神经网络的存储器占用(footprint)和推理时间。例如,可以量化神经网络的参数和/或激活以减小参数的位宽(例如,从32位浮点到8位浮点)和/或转换某些矩阵乘法运算以计算激活为逻辑运算。此外,当权重具有绝对值和/或对神经网络的训练误差的影响低于阈值时,可以修剪(prune)(即,去除)神经网络中的权重。

用于压缩神经网络的现有技术需要目标稀疏率的明确规范,该稀疏率表示与原始模型相比具有零值的修剪模型中参数的比例。可替换地,现有技术对搜索空间执行手动探索,以修剪或压缩神经网络。由于最佳稀疏率取决于神经网络、目标平台和优化目标,并且探索中的每次试验都需要重新训练压缩模型使其收敛,因此手动探索和/或压缩量的选择是计算密集且不方便的。

如前所述,本领域需要更有效的技术来确定用于压缩机器学习模型的最佳稀疏率。

发明内容

本发明的一个实施例阐述了一种用于压缩机器学习模型的技术。该技术包括由贝叶斯优化器确定与精度损失(accuracy loss)的限制相关联的第一稀疏率,该精度损失的限制是由压缩机器学习模型而引起的。该技术还包括:由贝叶斯优化器选择第二稀疏率,该第二稀疏率在由第一稀疏率限定的搜索空间内为机器学习模型优化预定义的(predefined)目标函数。该技术还包括生成具有第二稀疏率的机器学习模型的压缩版本。

所公开技术的一个技术优势是能够推断稀疏率,其满足与压缩机器学习模型相关联的约束和/或目标,而不是要求用户手动地指定稀疏率来压缩机器学习模型。因此,所公开的技术提供了用于压缩和/或执行机器学习模型的计算机系统、应用程序和/或技术的技术改进。

附图说明

为了可以详细地理解各个实施例的上述特征的方式,可以通过参考各个实施例来对以上简要概述的发明构思进行更具体的描述,其中示出了一些实施例在附图中。然而,应注意,附图仅示出了本发明构思的典型实施例,因此不应以任何方式被认为是对范围的限制,并且还有其他等效的实施例。

图1示出了被配置为实现各种实施例的一个或更多个方面的系统。

图2是根据各种实施例的一个或更多个方面的图1的贝叶斯优化器和压缩引擎的更详细的说明。

图3是根据各种实施例的一个或更多个方面的由图2的贝叶斯优化器执行的迭代的示例图集。

图4是根据各种实施例的一个或更多个方面的用于选择稀疏率以压缩机器学习模型的方法步骤的流程图。

图5是根据各个实施例的一个或更多个方面的用于压缩机器学习模型的方法步骤的流程图。

具体实施方式

在以下描述中,阐述了许多具体细节以提供对各种实施例的更透彻的理解。然而,对于本领域的技术人员将显而易见的是,可以在没有一个或更多个这些具体细节的情况下实践本发明构思。

系统总览

图1示出了被配置为实现各种实施例的一个或更多个方面的计算设备100。在一个实施例中,计算设备100可以是台式计算机、膝上型计算机、智能电话、个人数字助理(PDA)、平板计算机,或配置为接收输入、处理数据和可选地显示图像的任何其他类型的计算设备,并且其适合于实践一个或更多个实施例。计算设备100被配置为运行驻留在存储器116中的贝叶斯优化器122和压缩引擎124。应注意,本文描述的计算设备是说明性的,并且任何其他技术上可行的配置均落入本公开的范围内。例如,贝叶斯优化器122和压缩引擎124的多个实例可以在分布式系统中的一组节点上执行以实现计算设备100的功能。

在一个实施例中,计算设备100包括但不限于连接一个或更多个处理单元102的互连(总线)112、耦合至一个或更多个输入/输出(I/O)设备108的输入/输出(I/O)设备接口104、存储器(memory)116、贮存器(storage)114和网络接口106。一个或更多个处理单元102可以是实现为中央处理单元(CPU)、图形处理单元(GPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、人工智能(AI)加速器、任何其他类型的处理单元或不同处理单元的组合(例如,配置为与GPU结合使用的CPU)的任何合适的处理器。通常,一个或更多个处理单元102可以是能够处理数据和/或执行软件应用程序的任何技术上可行的硬件单元。此外,在本公开的上下文中,计算设备100中示出的计算元件可以对应于物理计算系统(例如,数据中心中的系统),或者可以是在计算云内执行的虚拟计算实例。

在一个实施例中,I/O设备108包括能够提供输入的设备(诸如键盘、鼠标、触摸屏等)以及能够提供输出的设备(诸如显示器设备)。另外,I/O设备108可以包括能够既接收输入又提供输出的设备(诸如触摸屏、通用串行总线(USB)端口等)。I/O设备108可以被配置为从计算设备100的最终用户(end-user)(例如,设计者)接收各种类型的输入,并且还可以向计算设备100的最终用户提供各种类型的输出,例如显示的数字图像或数字视频或文本。在一些实施例中,一个或更多个I/O设备108被配置为将计算设备100耦合到网络110。

在一个实施例中,网络110是任何技术上可行的通信网络,其允许数据在计算设备100与诸如网络服务器或另一台联网的计算设备之类的外部实体或设备之间交换。例如,网络110可以包括广域网(WAN)、局域网(LAN)、无线(WiFi)网络和/或互联网等等。

在一个实施例中,贮存器114包括用于应用程序和数据的非易失性存储器,并且可以包括固定或可移除磁盘驱动器、闪存设备以及CD-ROM、DVD-ROM、蓝光、HD-DVD或其他磁性、光学或固态存储设备。贝叶斯优化器122和压缩引擎124可以被存储在存储器114中并且在被执行时被加载到存储器116中。

在一个实施例中,存储器116包括随机存取存储器(RAM)模块、闪存单元或任何其他类型的存储器单元或其组合。一个或更多个处理单元102、I/O设备接口104和网络接口106被配置为从存储器116读取数据并将数据写入存储器116。存储器116包括可由一个或更多个处理器102执行的各种软件程序和与所述软件程序相关联的应用程序数据,包括贝叶斯优化器122和压缩引擎124。

在一些实施例中,贝叶斯优化器122和压缩引擎124包括通过压缩机器学习模型来改善机器学习模型的运行时性能的功能。例如,机器学习模型包括具有大量神经元、参数和/或层的深度神经网络(DNN)。结果,DNN的推理需要大量消耗计算和存储器资源。为了改善推理时间、存储器占用和/或机器学习模型的其他运行时属性,贝叶斯优化器122和/或压缩引擎124通过选择性地修剪DNN中的权重子集/或量化权重来创建机器学习模型的压缩版本。反过来,与未压缩的模型相比,压缩版本产生的资源开销和延迟要少得多,而准确性不会明显下降。

更具体地,贝叶斯优化器122和压缩引擎124包括用于根据预定义和/或可调目标和/或约束来优化机器学习模型的压缩的功能。继续以上示例,贝叶斯优化器122从用户接收在压缩机器学习模型时要优化的目标、与压缩机器学习模型相关联的精度损失的较低限制和/或压缩方案。然后贝叶斯优化器122和压缩引擎124迭代地采样不同的稀疏率,以使用压缩方案来压缩机器学习模型。最终,贝叶斯优化器122和压缩引擎124产生具有稀疏率的机器学习模型的压缩版本,该稀疏率在满足精度损失的限制所表示的约束的同时,最佳地优化了目标。下面参考图2更详细地描述贝叶斯优化器122和压缩引擎124的各种实施例。

模型压缩中对稀疏率的贝叶斯优化

图2是根据各种实施例的图1的贝叶斯优化器122和压缩引擎124的更详细的图示。在所示的实施例中,贝叶斯优化器122基于预定义的精度损失限制206、目标函数208和压缩方案240来采样稀疏率218-220,以从参考机器学习模型222(例如,未压缩的机器学习模型和/或将被进一步压缩的经压缩的机器学习模型)生成压缩的机器学习模型226。例如,贝叶斯优化器122通过函数调用、命令行参数、图形用户界面(GUI)和/或其他类型的界面或通信机制从用户接收精度损失限制206、目标函数208和/或压缩方案240。

在一些实施例中,稀疏率(例如,稀疏率218-220)表示与原始参考机器学习模型222相比已在压缩的机器学习模型226中被修剪(例如,用零值代替)的参数的比例。稀疏率还(或者替代地)反映了已压缩的机器学习模型226的大小与原始参考机器学习模型222的大小之比。例如,可以通过从1中减去压缩的机器学习模型226的密度比率来获得稀疏率,其中密度比率等于压缩的机器学习模型226的大小除以参考机器学习模型222的大小。通常,稀疏率表示与原始的参考机器学习模型222比较时,压缩的机器学习模型226的大小的减少。

精度损失限制206表示从参考机器学习模型222生成压缩的机器学习模型226引起的精度降低的下限。例如,用户将精度损失限制206表示为参考机器学习模型222的精度的百分比或比例。

在一些实施例中,目标函数208包括将被最大化或最小化的黑盒函数。例如,用户将目标函数208指定为推理吞吐量(例如,压缩的机器学习模型226执行评估的速率)、存储器占用、延迟(例如,压缩的机器学习模型226执行评估所需的时间量)、特定于领域的目标(例如,视频输出的“平滑度”或帧频)和/或可以从压缩的机器学习模型226的执行或输出中进行测量或计算的另一个值。用户另外指定目标函数208的最小化或最大化,作为与压缩的机器学习模型226相关联的目标。

压缩方案240包括将应用于产生压缩的机器学习模型226的压缩类型。例如,用户从列表中选择压缩方案240,该列表包括但不限于参数(例如,从32位浮点到16位浮点)的量化、DNN中权重的非结构化基于幅度的修剪、DNN中神经元的修剪、修剪DNN中各种维度的块和/或低秩张量分解。在另一示例中,用户以编程方式将压缩方案240表示为具有控制流、迭代、递归和/或其他命令性陈述的多个压缩方案的组合。这些陈述允许基于参考机器学习模型222和/或要在其上部署压缩的机器学习模型226的目标硬件的属性,选择性压缩参考机器学习模型222的层和/或其他部分。

在一个或更多个实施例中,贝叶斯优化器122和压缩引擎124执行许多迭代202-204,其使用压缩方案240从参考机器学习模型222中采样用于产生压缩的机器学习模型226的不同的稀疏率218。在迭代过程中,贝叶斯优化器122为压缩的机器学习模型226选择稀疏率,并且压缩引擎124使用压缩方案240以遵循所选择的稀疏率的方式从参考机器学习模型222中生成压缩的机器学习模型226。压缩引擎124还测量精度236、性能238和/或与压缩的机器学习模型226的执行或输出有关的另一个值,并将测量提供给贝叶斯优化器122。贝叶斯优化器使用来自压缩引擎124的测量来更新关于作为压缩额机器学习模型226中的稀疏率的函数的输出的概率置信度,并且使用获取(acquisition)函数来选择下一个稀疏率以在下一次迭代中进行采样。在迭代202-204的结尾,贝叶斯优化器122和压缩引擎124生成具有稀疏率的压缩的机器学习模型226,该稀疏率在满足精度损失限制206表示的约束的同时优化目标函数208。

在由贝叶斯优化器122执行的每个迭代期间,压缩引擎124生成具有由贝叶斯优化器122为该迭代选择的稀疏率的压缩的机器学习模型226。如图所示,这种压缩包括利用二次正则项232训练参考机器学习模型222,以及压缩步骤230的学习步骤228以及将训练的参考机器学习模型222从学习步骤228转换为具有参数234的压缩的机器学习模型226的压缩步骤230。

例如,压缩引擎124对参考机器学习模型222的压缩被公式化为具有以下表示的约束优化问题:

min

在上面的表示中,L()表示用于训练参考机器学习模型222的损失函数,而w∈R

以上公式支持多种压缩方案。例如,修剪被定义为w=D(θ)=θ,其中w是实数,并且通过去除(归零)较小的量级权重来限制θ以具有更少的非零值。在另一个示例中,低精度近似(即,量化)定义每个参数约束w

压缩映射的行为类似于D的倒数:

在上面的表达式中,C:R

反过来,可以使用以下替代表示来表达约束优化问题:

min

然后可以通过二次正则项232和/或增强拉格朗日(augmented-Lagrangian)(AL)方法对受约束的优化问题进行优化:

第一个方程式使用二次正则项232的值

为了针对变量(w,θ)优化上述方程式,压缩引擎124使用学习步骤228和压缩步骤230进行交替优化。在学习步骤228期间,压缩引擎124使用以下方程式执行以下优化:

上式中的第二项表示二次正则项232,其用于训练参考机器学习模型226,以将某些参数拉为零,而将其他参数拉为非零值。

如果在优化中使用了AL方法,则压缩引擎124使用以下公式执行学习步骤228:

在压缩步骤230期间,可以针对各种成本C,例如(但不限于)l

此外,压缩步骤230通过设置θ

在一些实施例中,贝叶斯优化器122执行第一组迭代202,该第一组迭代202采样稀疏率218以产生压缩的机器学习模型226,以识别落入精度损失限制206内的最高稀疏率。贝叶斯优化器122然后设置所识别的稀疏率作为第二组迭代204的搜索空间224的边界。在第二组迭代202中,贝叶斯优化器122采样其他稀疏率220,用于在搜索空间244内生成压缩的机器学习模型226,以识别在优化目标函数208中产生最佳性能238的稀疏率。

在一个实施例中,贝叶斯优化器122针对给定的黑盒函数f(x)使用高斯过程(GP)先验分布,其可以包括精度236和/或目标函数208。GP包括函数的分布,其由均值函数m:X→R和协方差函数K:X×X→R指定。由于贝叶斯优化器122和压缩引擎124累积观测值D

在迭代202中的每个迭代期间,压缩引擎124以贝叶斯优化器122为该迭代采样的稀疏率(例如,稀疏率218)产生压缩的机器学习模型226。压缩引擎124还确定压缩的机器学习模型226的精度236,并且贝叶斯优化器122在通过GP先验优化获取函数之前利用计算的精度236更新GP先验,以确定在连续迭代中进行采样的下一个稀疏率。

在迭代202的结尾,贝叶斯优化器122将迭代204的搜索空间224的边界设置为从稀疏率0到迭代202识别为具有与精度损失限制206基本相同的精度236的稀疏率的范围。在迭代204中的每个迭代期间,压缩引擎124以贝叶斯优化器122为该迭代采样的稀疏率(例如,稀疏率220)来产生压缩的机器学习模型226。压缩引擎124还将压缩的机器学习模型226的性能238确定为压缩的机器学习模型226的目标函数208的值,并且贝叶斯优化器122通过优化GP先验优化获取函数之前利用性能238更新GP先验,以确定在后续迭代中进行采样的下一个稀疏率。

贝叶斯优化器还使用由一个或更多个获取函数214-216a:X→R表示的采样标准来指导选择下一个稀疏率进行采样。这些获取函数214-216取决于先前的观测值{x

贝叶斯优化器122基于每组迭代202-204的获取函数214-216,使用随机采样210-212和采样标准的组合来附加地选择稀疏率218-220。例如,贝叶斯优化器122以稀疏率218的随机采样210的一个或更多个边界开始迭代202。贝叶斯优化器122获得压缩引擎124针对随机采样的稀疏率218返回的精度236的值,并使用值更新精度236的GP先验。贝叶斯优化器122然后执行附加迭代202,该附加迭代202根据与精度236的GP先验相关联的获取函数214采样稀疏率218。

继续以上示例,贝叶斯优化器122以稀疏率220的随机采样212的一个或更多个迭代边界相似地开始迭代。贝叶斯优化器122针对随机采样的稀疏率220获得由压缩引擎124返回的性能238的值,并使用这些值为目标函数208更新GP先验。贝叶斯优化器122然后执行附加迭代204,该附加迭代204根据与目标函数208的GP先验相关联的获取函数216来采样稀疏率220。

使用以下示例伪代码来说明贝叶斯优化器122的操作:

在以上伪代码中,贝叶斯优化器122的输入包括参考机器学习模型222w和精度损失限制206ε。贝叶斯优化器122s*的输出表示压缩的机器学习模型226的稀疏率,该压缩机器学习模型226在优化目标函数208中具有最佳性能238,并且精度236的值落在精度损失限制206之内。

更具体地,以上伪代码对迭代202使用隐式水平集上置信界(ILS-UCB)获取函数214,其中级别集L是通过从参考机器学习模型222的精度中减去ε来定义的。反之,迭代202优先对接近水平集的稀疏率218进行采样,以定位满足精度损失限制206的稀疏度,减少获得精度损失限制206的最佳稀疏率s

例如,用于在迭代202期间选择稀疏率218的ILS-UCB获取函数214包括以下表示:

在上面的表示中,γ表示介于0和1之间的调整参数,该参数在迭代t中平衡获取函数214的预测平均值与获取函数对样本的预测方差的贡献。

接下来,伪代码使用由(0,s

图3是根据各种实施例的一个或更多个方面的由图2的贝叶斯优化器122执行的迭代的示例性图(plot)302-304的集合。更具体地,图302示出了贝叶斯优化器122对黑盒函数的预测306,该预测随压缩的机器学习模型226的稀疏率而变化,并且图304示出了由贝叶斯优化器122用于选择要评估的黑盒函数的下一个样本320的获取函数322。

在图302内,预测306表示以黑盒函数的先前样本312-318为条件的GP先验的后验预测平均值。图302还包括围绕预测306的阴影区域310,其表示平均值的95%置信区间。图302附加地示出了将由贝叶斯优化器122经由样本312-318预测的黑盒函数的目标308值。

在一个实施例中,样本312-318包括在四个迭代202上由贝叶斯优化器122采样的各种稀疏率218下的压缩机器学习模型226的精度236的四个观测值。例如,样本312-314表示用于“播种”GP先验的两个随机采样的稀疏率,并且样本316-318表示由贝叶斯优化器122基于获取函数322选择的稀疏率。在为样本316-318评估黑盒函数之后,贝叶斯优化器122更新GP先验以产生更好地近似黑盒函数的更新的预测306。贝叶斯优化器122然后使用更新的预测306来构造或更新ILS-UCB获取函数322,并且选择用于连续迭代的下一个样本320作为获取函数322的最大值。

例如,贝叶斯优化器122使用ILS-UCB对在水平集附近的区域中的采样进行优先排序,在该水平集中,GP先验的平均值最接近阈值324,该阈值324表示压缩的机器学习模型226的精度损失限制206。经过多次迭代202后,贝叶斯优化器122将样本318识别为具有稀疏率,该稀疏率产生具有等于精度损失限制206的精度236的压缩的机器学习模型226。继而,贝叶斯优化器122在以样本318的稀疏率为边界的搜索空间224中执行对稀疏率220采样的附加迭代204,以选择另一个稀疏率,用于产生压缩的机器学习模型226,该模型在满足精度损失限制206的同时优化用户指定的目标函数208。

图4是根据各个实施例的一个或更多个方面的用于压缩机器学习模型的方法步骤的流程图。尽管结合图1和图2的系统描述了方法步骤,但是本领域技术人员将理解,配置成以任何顺序执行方法步骤的任何系统都落入本公开的范围内。

如图所示,贝叶斯优化器122从用户接收402预定义的目标函数、由于压缩机器学习模型而导致的精度损失的限制和/或压缩方案。例如,目标函数包括机器学习模型的评估率、存储器占用、机器学习模型的评估时间、特定于领域的目标(例如,“平滑度”或视频输出的帧频)和/或可以从机器学习模型的执行或输出中进行测量或计算的另一个值。用户附加地指定目标函数的最小化或最大化作为与压缩的机器学习模型相关联的目标。在另一个示例中,用户将精度损失的限制指定为未压缩的机器学习模型的精度的百分比或比例。在第三个示例中,用户将压缩方案指定为量化、DNN中权重的非结构化基于幅度的修剪、DNN中的神经元修剪、DNN中各个维度的块修剪和/或低秩张量分解。

接下来,贝叶斯优化器122使用压缩方案404确定404与压缩机器学习模型而导致的精度损失的限制相关联的第一稀疏率。例如,贝叶斯优化器122执行使用ILS-UCB采样标准以采样用于压缩机器学习模型的稀疏率的第一系列迭代。在第一系列迭代的结尾,贝叶斯优化器122将第一稀疏率识别为产生与精度损失的限制相对应的精度的机器学习模型中的压缩量(例如,零值参数、参数量化等)。

贝叶斯优化器122然后选择406第二稀疏率,该第二稀疏率在由第一稀疏率限定的搜索空间内优化机器学习模型的目标函数。例如,贝叶斯优化器执行第二系列的迭代,该系列的迭代使用GP-UCB(或GP-LCB)采样标准以采样最大化(或最小化)目标函数的稀疏率,其中采样的稀疏率的范围从0到第一稀疏率。在第二系列迭代的结尾,贝叶斯优化器122将第二稀疏率识别为在超出精度损失限制的范围内最优化了目标函数的机器学习模型中的压缩量。

在由贝叶斯优化器122执行的选择第一稀疏率和第二稀疏率的每次迭代期间,压缩引擎124生成机器学习模型的不同的压缩版本,其中每个压缩的版本具有贝叶斯优化器122为该迭代选择的稀疏率。压缩引擎124还确定稀疏率的目标函数的精度和/或值,并且贝叶斯优化器122基于目标函数的精度和/或值来为精度和/或目标函数更新GP先验。压缩引擎124的操作在下面参照图5进一步详细描述。

最后,贝叶斯优化器122和/或压缩引擎124生成408具有第二稀疏率的机器学习模型的压缩的版本。例如,贝叶斯优化器122通过在目标函数的GP先验上优化获取函数来采样第二稀疏率。压缩引擎124然后将机器学习模型压缩为具有第二稀疏率,并查证压缩的机器学习模型比机器学习模型的先前压缩的版本产生更好的目标函数值。

图5是根据各个实施例的一个或更多个方面的用于压缩机器学习模型的方法步骤的流程图。尽管结合图1和图2的系统描述了方法步骤,但是本领域技术人员将理解,配置成以任何顺序执行方法步骤的任何系统都落入本公开的范围内。

如所示,压缩引擎124接收502在由贝叶斯优化器122执行的迭代期间采样的稀疏率。例如,稀疏率包括随机地采样的稀疏率,该稀疏率被用于“播种”GP先验,该GP先验用于将被优化的黑盒函数,和/或由贝叶斯优化器122基于采样标准和/或与GP先验相关联的获取函数选择的稀疏率。

接下来,压缩引擎124执行504学习步骤,该学习步骤用二次正则项训练机器学习模型。例如,压缩引擎124使用包括二次正则项的损失函数来更新机器学习模型的参数。继而,二次正则项施加了惩罚,该惩罚基于从参数值计算出的平方将某些参数拉为零。

在学习步骤完成之后,压缩引擎124执行506压缩步骤,该步骤压缩机器学习模型以具有由贝叶斯优化器提供的稀疏率。例如,压缩引擎124标记要压缩的机器学习模型中的参数的子集。

压缩引擎124附加地重复操作504-506,直到满足508停止标准为止。例如,停止标准包括压缩的机器学习模型的参数中的收敛。结果,压缩引擎124在学习步骤和压缩步骤之间迭代地交替,这允许探索不同的标记参数集,直到由学习步骤产生的训练参数等于压缩步骤中的标记参数为止。在另一个示例中,压缩引擎124重复操作504-506,直到已经执行了固定数量的学习和压缩步骤为止。

压缩引擎124然后向贝叶斯优化器122提供510压缩的机器学习模型的精度和/或性能的测量。例如,压缩引擎124在由贝叶斯优化器执行的第一系列迭代期间确定压缩的机器学习模型的精度,以找到反映压缩的机器学习模型的精度损失限制的第一稀疏率。压缩引擎124还(或者替代地)确定在由贝叶斯优化器122执行的第二系列迭代期间优化预定义目标函数中的压缩的机器学习模型的性能,以找到产生目标函数的最佳值的第二稀疏率。

可以针对由贝叶斯优化器122执行的剩余迭代512重复操作502-510。例如,压缩引擎124在由贝叶斯优化器122执行的每次迭代的开始时接收新的稀疏率,创建具有稀疏率的压缩的机器学习模型,并将压缩的机器学习模型的精度和/或性能提供给贝叶斯优化器122。贝叶斯优化器122然后使用测量的精度和/或性能来为精度和/或性能更新GP先验,并使用GP先验的获取函数和/或选择标准来选择在连续迭代中进行采样的下一个稀疏率。结果,压缩引擎124重复生成机器学习模型的压缩的版本,并确定每个压缩的版本的精度和/或性能,直到找到具有仍保持可接受的精度水平的最佳性能的压缩的版本。

总之,公开的实施例在压缩机器学习模型中执行稀疏率的样本有效贝叶斯优化。执行第一系列的贝叶斯优化迭代以识别第一稀疏率,该稀疏率表示压缩机器学习模型的精度损失的下限。然后执行第二系列的贝叶斯优化迭代以识别第二稀疏率,该第二稀疏率在由第一稀疏率限定的搜索空间内产生预定义的目标函数的最佳值。然后将机器学习模型压缩为具有第二稀疏率,这使压缩的机器学习模型可以优化目标函数,同时保持高于精度损失的下限的精度。

所公开技术的一个技术优势是能够推断稀疏率,其满足与压缩机器学习模型相关联的约束和/或目标,而不是要求用户手动指定稀疏率来压缩机器学习模型。继而,与未压缩的机器学习模型相比,压缩的机器学习模型产生的推理时间和资源开销明显更少,而精度没有明显下降。另一个技术优势包括经由贝叶斯优化的稀疏率的样本有效选择,这大大减少了识别最佳稀疏率所需的迭代次数(以及相关联的延迟和资源消耗),该最优稀疏率用于通过传统技术来压缩涉及机器学习模型,该传统技术涉及手动和/或随机搜索稀疏率以压缩机器学习模型。因此,所公开的技术提供了用于压缩和/或执行机器学习模型的计算机系统、应用程序和/或技术的技术改进。

1.在一些实施例中,用于压缩机器学习模型的计算机实现的方法包括:通过贝叶斯优化器来确定第一稀疏率,所述第一稀疏率与由于压缩机器学习模型而导致的精度损失的限制相关联;由贝叶斯优化器选择第二稀疏率,该第二稀疏率在由第一稀疏率限定的搜索空间内为机器学习模型优化预定义的目标函数;并生成具有第二稀疏率的机器学习模型的压缩版本。

2.根据条款1的计算机实现的方法,还包括:针对由贝叶斯优化器执行的每次迭代生成机器学习模型的不同的压缩的版本,以选择第一稀疏率和第二稀疏率。

3.根据条款1-2中任一项所述的计算机实现的方法,其中生成所述机器学习模型的所述不同的压缩的版本包括:执行学习步骤,所述学习步骤使用二次正则项训练所述机器学习模型;以及执行压缩步骤,所述压缩步骤在所述贝叶斯优化器的给定迭代中将所述机器学习模型压缩为具有指定的稀疏率。

4.根据条款1-3中任一项所述的计算机实现的方法,其中重复所述学习步骤和所述压缩步骤,直到满足停止标准为止。

5.根据条款1-4中任一项所述的计算机实现的方法,其中所述贝叶斯优化器执行一个或更多个迭代,所述迭代针对所述机器学习模型随机地采样所述第一稀疏率和第二稀疏率。

6.根据条款1-5中的任一项的计算机实现的方法,其中贝叶斯优化器执行一个或更多个迭代,所述一个或更多个迭代基于隐式水平集上置信界(ILS-UCB)采样标准选择所述第一稀疏率。

7.根据条款1-6中任一项所述的计算机实现的方法,其中所述贝叶斯优化器执行一个或更多个迭代,所述一个或更多个迭代基于置信界采样标准来选择所述第二稀疏率。

8.根据条款1-7中的任一项所述的计算机实现的方法,还包括:从用户接收所述预定义的目标函数。

9.根据条款1-8中的任一项的计算机实现的方法,其中所述预定义的目标函数包括以下各项中的至少一项:所述机器学习模型的评估率、存储器占用、所述机器学习模型的评估时间以及特定于领域的目标。

10.根据条款1-9中的任一项的计算机实现的方法,其中贝叶斯优化器基于用于所述预定义的目标函数的高斯过程来选择所述第二稀疏率。

11.根据条款1-10中任一项所述的计算机实现的方法,其中生成所述机器学习模型的压缩版本包括:量化所述机器学习模型的权重和从所述机器学习模型中修剪所述权重的子集中的至少一个。

12.在一些实施例中,一种非暂时性计算机可读介质,其存储指令,该指令在由处理器执行时,使处理器:通过执行由贝叶斯优化器确定与压缩机器学习模型导致的精度损失的限制相关联的第一稀疏率的步骤,来压缩机器学习模型;由贝叶斯优化器选择第二稀疏率,该第二稀疏率在由第一稀疏率限定的搜索空间内为机器学习模型优化预定义的目标函数;并生成具有第二稀疏率的机器学习模型的压缩版本。

13.根据条款12的非暂时性计算机可读介质,其中步骤还包括:针对由贝叶斯优化器执行的每次迭代生成机器学习模型的不同的压缩版本,以选择第一稀疏率和第二稀疏率。

14.根据条款12-13中的任一项的非暂时性计算机可读介质,其中生成机器学习模型的不同的压缩版本包括:执行学习步骤,该学习步骤利用二次正则项训练机器学习模型;以及执行压缩步骤,所述压缩步骤在所述贝叶斯优化器的给定迭代中将所述机器学习模型压缩为具有指定的稀疏率。

15.根据条款12-14中的任一项的非临时性计算机可读介质,其中贝叶斯优化器执行一个或更多个迭代,该一个或更多个迭代针对机器学习模型随机地采样第一稀疏率和第二稀疏率。

16.根据条款12-15中的任一项的非暂时性计算机可读介质,其中贝叶斯优化器执行基于隐式水平集上置信界(ILS-UCB)采样标准选择所述第一稀疏率的第一系列迭代以及执行基于置信界采样标准选择所述第二稀疏率的第二系列迭代。

17.根据条款12-16中的任一项所述的非暂时性计算机可读介质,其中所述步骤还包括:从用户接收预定义的目标函数和对精度损失的限制。

18.根据条款12-17中的任一项的非暂时性计算机可读介质,其中所述预定目标函数包括推理吞吐量、存储器占用、延迟和特定于领域的目标中的至少一个。

19.根据条款12-18中的任一项所述的非暂时性计算机可读介质,其中生成所述机器学习模型的压缩版本包括:量化所述机器学习模型的权重以及从所述机器学习模型中修剪权重的子集中的至少一个。

20.在一些实施例中,一种系统包括:存储指令的存储器;处理器,用于执行所述指令,由贝叶斯优化器确定与压缩所述机器学习模型导致的精度损失的限制相关联的第一稀疏率;由贝叶斯优化器选择第二稀疏率,该第二稀疏率在由第一稀疏率限定的搜索空间内为机器学习模型优化预定义的目标函数;并生成具有第二稀疏率的机器学习模型的压缩版本。

以任何方式,在任何权利要求中记载的任何权利要求要素和/或在本申请中描述的任何要素的任何和所有组合都落入本发明和保护的预期范围内。

已经出于说明的目的给出了各种实施例的描述,但并不意图是穷举性的或限于所公开的实施例。在不脱离所描述的实施例的范围和精神的情况下,许多修改和变型对于本领域普通技术人员将是显而易见的。

本实施例的各方面可以体现为系统、方法或计算机程序产品。因此,本公开的方面可以采取完全硬件实施例、完全软件实施例(包括固件、驻留软件、微代码等)或结合了软件和硬件方面的实施例,这些方面在本文中通常都统称为“模块”、“系统”或“计算机”。另外,本公开中描述的任何硬件和/或软件技术、过程、功能、组件、引擎、模块或系统可以被实现为电路或电路集。此外,本发明的各个方面可以采取计算机程序产品的形式,该计算机程序产品体现在一个或更多个计算机可读介质中,其中具有包含计算机可读程序代码。

可以利用一个或更多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是例如但不限于电子、磁性、光学、电磁、红外或半导体系统、装置或设备、或者前述的任何合适的组合。计算机可读存储介质的更具体示例(非详尽列表)将包括以下内容:具有一个或更多个电线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光纤,便携式光盘只读存储器(CD-ROM)、光学存储设备、磁存储设备或任何其他前述的适当组合。在本文的上下文中,计算机可读存储介质可以是任何有形介质,其可以包含或存储供指令执行系统、装置或设备使用或与其结合使用的程序。

上面参考根据本公开的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各方面。将理解的是,流程图图示和/或框图的每个框,以及流程图图示和/或框图中的框的组合可以由计算机程序指令来实现。可以将这些计算机程序指令提供给通用计算机、专用计算机或其他可编程数据处理设备的处理器以产生机器。当指令通过计算机或其他可编程数据处理设备的处理器执行时,能够实现流程图和/或框图框或框中指定的功能/动作。这样的处理器可以是但不限于通用处理器、专用处理器、应用特定处理器或现场可编程门阵列。

附图中的流程图和框图示出了根据本公开的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。就这一点而言,流程图或框图中的每个框可以代表代码的模块、分段或部分,其包括用于实现一个或更多个指定的逻辑功能的一个或更多个可执行指令。还应注意,在一些替代实施方式中,框中指出的功能可以不按图中指出的顺序发生。例如,取决于所涉及的功能,实际上可以基本上并行地执行连续示出的两个框,或者有时可以以相反的顺序执行这些框。还应注意,框图和/或流程图说明的每个方框以及框图和/或流程图说明中的方框的组合可以由执行指定功能或动作的基于专用硬件的系统来实现,或由专用硬件和计算机指令的组合来实现。

尽管前述内容针对本公开的实施例,但是可以在不脱离本公开的基本范围的情况下设计本公开的其他和进一步的实施例,并且本公开的范围由所附权利要求书确定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号