CN116325737A - 基于树的机器学习模型的量化 - Google Patents

基于树的机器学习模型的量化 Download PDF

Info

Publication number
CN116325737A
CN116325737A CN202180069775.2A CN202180069775A CN116325737A CN 116325737 A CN116325737 A CN 116325737A CN 202180069775 A CN202180069775 A CN 202180069775A CN 116325737 A CN116325737 A CN 116325737A
Authority
CN
China
Prior art keywords
tree
machine learning
parameter values
learning model
based machine
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202180069775.2A
Other languages
English (en)
Inventor
莱斯利·J·施拉丁三世
贺祺凡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qeexo Co
Original Assignee
Qeexo Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qeexo Co filed Critical Qeexo Co
Publication of CN116325737A publication Critical patent/CN116325737A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/022Knowledge engineering; Knowledge acquisition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/20Ensemble learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Information Transfer Between Computers (AREA)
  • Image Analysis (AREA)

Abstract

提供了用于量化基于树的机器学习模型的各种机制和过程。一种方法包括确定经训练的基于树的机器学习模型中的一个或更多个参数值。该一个或更多个参数值存在于以第一数据类型编码的第一数值空间内并被量化到第二数值空间中。第二数值空间以相对于第一数据类型具有更小的文件存储大小的第二数据类型进行编码。在基于树的机器学习模型内编码数组。该数组存储用于将第二数值空间中的给定的量化后的参数值变换为第一数值空间中的相对应参数值的参数。基于树的机器学习模型可以被传输到客户端设备的嵌入式系统。一个或更多个参数值对应于基于树的机器学习模型的阈值或叶值。

Description

基于树的机器学习模型的量化
相关申请的交叉引用
本申请要求于2020年10月12日提交的标题为“QUANTIZATION OF TREE-BASEDMACHINE LEARNING MODELS”的第63/090,516号美国临时专利申请在《美国法典》第35卷第119(e)条下的利益,该美国临时专利申请通过引用以其整体并入本文以用于所有目的。
技术领域
本公开总体上涉及机器学习模型,且更具体地涉及基于树的机器学习模型。
背景
许多商业应用采用了机器学习模型来提高性能,这些机器学习模型包括神经网络和基于树的机器学习方法。然而,这样的机器学习模型增加了对计算、功率和存储器资源的需求,这可能会降低性能,特别是降低容量有限的硬件(例如嵌入式芯片或不包括通用中央处理器(CPU)芯片的平台)的性能。在这样的环境中,减少的闪存和RAM可能会妨碍存储或加载机器学习模型。
因此,需要减少机器学习模型的计算和资源需求。
概述
以下给出了本公开的简要概述,以便提供对本公开的特定实施例的基本理解。本概述不是本公开的广泛综述,也不识别本公开的重要/关键要素或描述本公开的范围。其唯一的目的是以简化的形式给出本文公开的一些概念,作为后面给出的更详细的描述的序言。
一般而言,本公开的某些实施例描述了用于基于树的机器学习模型的量化的系统和方法。该方法包括确定经训练的基于树的机器学习模型中的一个或更多个参数值。该一个或更多个参数值存在于以第一数据类型编码的第一数值空间内。
该方法还包括将一个或更多个参数值量化到第二数值空间中。第二数值空间以第二数据类型进行编码,该第二数据类型具有相对于第一数据类型更小的文件存储大小。在基于树的机器学习模型内编码数组。数组存储用于将第二数值空间中的给定的量化后的参数值变换为第一数值空间中的相对应的参数值的参数。该方法还包括将基于树的机器学习模型传输到客户端设备。
基于树的机器学习模型可以被传输到客户端设备的嵌入式系统。该方法还可以包括经由嵌入式系统的传感器获得数据点,以及从该数据点提取特征。该方法还可以包括使所提取的特征传递通过基于树的机器学习模型。该方法还可以包括将一个或更多个参数值从第二数值空间去量化(un-quantizing)到第一数值空间,以及基于一个或更多个去量化后的参数值,生成对特征的预测。当在对应于一个或更多个参数值的节点处处理所提取的特征时,可以根据需要对一个或更多个参数值中的每一个进行去量化。
一个或更多个参数值可对应于基于树的机器学习模型的特征的阈值。一个或更多个参数值可对应于基于树的机器学习模型的叶值。第一数据类型可以是32位浮点类型。第二数据类型可以是8位无符号整数。一个或更多个参数值对应于阈值和叶值,并且阈值和叶值相彼此独立地被量化。
基于树的机器学习模型可以被配置成对对应于客户端设备的运动的手势进行分类。
本公开的其他实现包括对应于所描述的方法的相对应的设备、系统和计算机程序。这些其他实现各自可任选地包括以下特征中的一个或更多个。例如,提供了一种用于树模型参数的量化的系统。该系统包括一个或更多个处理器、存储器、以及存储在存储器中的一个或更多个程序。该一个或多个程序包括用于执行所描述的方法和系统的动作的指令。还提供了一个或更多个非暂时性计算机可读介质,其上存储有用于执行所描述的方法和系统的指令。
下面参考附图进一步描述这些和其他实施例。
附图简述
通过参考下面结合附图进行的描述,可以最好地理解本公开,这些附图示出了本公开的特定实施例。
图1示出了根据一个或更多个实施例的用于实现本公开的各种系统和方法的示例网络体系结构的图。
图2示出了根据一个或多个实施例的用于量化基于树的机器学习模型的过程流程图。
图3示出了根据一个或多个实施例的示例基于树的机器学习模型。
图4示出了根据一个或更多个实施例的移动设备的体系结构,该移动设备可用于实现结合本教导的专用系统。
图5示出了可与本公开的各种实施例一起使用的计算机系统的特定示例。
具体实施方式
现在将详细参考本公开的一些具体示例,这些示例包括发明人为实施本公开而设想的最佳模式。这些具体实施例的示例在附图中示出。尽管结合这些具体实施例描述了本公开,但将理解,并不打算将本公开限制到所描述的实施例。相反,旨在覆盖如可以包括在如所附权利要求所限定的本公开的精神和范围内的替代方案、修改及等同物。
在下面的描述中,阐述了许多具体细节以便提供对本公开的透彻理解。本公开的特定示例实施例可以在没有这些具体细节中的一些或全部的情况下实现。在其他情况下,没有详细描述众所周知的过程操作,以免不必要地使本公开模糊。
为了清楚起见,有时将以单数形式描述本公开的各种技术和机制。然而,应当注意,除非另有说明,否则一些实施例包括技术的多次迭代或机制的多个实例。此外,本公开的技术和机制有时将描述两个实体之间的连接。应当注意,两个实体之间的连接并不一定意味着直接、不受阻碍的连接,因为两个实体之间可能存在各种其他实体。因此,除非另有说明,否则连接并不一定意味着直接、不受阻碍的连接。
综述
接下来将较详细地描述的本公开的一般目的是提供一种用于量化基于树的机器学习模型以减小模型大小和减少计算需求的系统和方法。
在某些情况下,可能期望的是机器学习模型需要尽可能少的字节或存储器。例如,对于嵌入式设备或系统来说,闪存和RAM存储器通常是有限的。机器学习模型消耗闪存和RAM存储器,增加计算量,并增加功率需求。这可能导致性能下降,尤其是容量有限的硬件(例如嵌入式芯片)的性能下降。在这样的芯片上,小型闪存和RAM可能会首先排除存储或加载机器学习模型。降低机器学习模型的存储器资源需求对于嵌入式芯片尤为重要,嵌入式芯片比CPU具有少得多的存储器(闪存和RAM)。这可能与根本没有通用CPU芯片的平台特别相关,在这些平台上,嵌入式芯片是可用的最强大的处理器。
还存在这样的情况,在该情况下,可能期望机器学习模型仅使用整数参数值。例如,一些嵌入式设备没有浮点单元,且在这些设备上执行浮点运算可能在中央处理器(CPU)时间、延迟和功率方面非常昂贵。机器学习模型且特别是树模型的量化可以解决这些问题:量化通常导致更小的模型大小,且量化通常导致整数数据类型被用于参数,而不是浮点值数据类型被用于参数。
树模型的量化还为设计树模型的结构以减小最终的文件存储大小提供了额外的灵活性。例如,决策节点的阈值参数值和终端节点的叶参数值可以彼此独立地被量化。此外,对应于不同特征的阈值也可以彼此独立地被量化。本文描述的系统和方法可以应用于其中基于树的模型被用于机器学习的任何情况,而不管机器学习模型的期望应用如何。
详细实施例
现在在描述上转向附图,在附图中,在多个视图中相似的附图标记表示相似的元素,附图示出了用于对传入的线索进行自动配对的系统和方法。
根据本公开的各种实施例,图1示出了根据一个或更多个实施例的用于实现本公开的各种系统和方法的示例网络体系结构100的图。网络体系结构100包括能够通过网络110通信地连接到一个或更多个服务器系统112和114的多个客户端设备(或“用户设备”)102-108。在一些实现中,网络110可以是公共通信网络(例如,因特网、蜂窝数据网络、电话网络上的拨号调制解调器)或专用通信网络(例如,专用LAN、租用线路)。
在一些实施例中,服务器系统112和114包括一个或更多个处理器和存储器。服务器系统112和114的处理器执行被存储在存储器中的计算机指令(例如,网络计算机程序代码)以处理、接收和传输从各种客户端设备接收的数据。在一些实施例中,服务器系统112是被配置成接收、处理和/或存储历史数据集、参数和用于机器学习模型的其他训练信息的内容服务器。在一些实施例中,服务器系统114是被配置为传输和/或路由包括网络消息的网络数据分组的调度服务器(dispatch server)。在一些实施例中,内容服务器112和调度服务器114被配置作为单个服务器系统,该单个服务器系统被配置为执行两个服务器的操作。
在一些实施例中,网络体系结构100还可以包括能够经由网络110通信地连接到客户端设备102-108以及服务器系统112和114的数据库116。在一些实施例中,网络数据或其他信息(诸如计算机指令、历史数据集、参数和用于机器学习模型的其他训练信息)可以被存储在数据库116中和/或从数据库116中检索。
客户端设备102-108的用户访问服务器系统112以参与网络数据交换服务。例如,客户端设备102-108可以执行可用于访问网络数据交换服务的web浏览器应用。在另一示例中,客户端设备102-108可以执行特定于网络的软件应用(例如,在诸如计算机、智能手机或传感器板(sensor boards)等设备上运行的网络数据交换“app”)。
与客户端设备102-108交互的用户可以通过分发和检索数字内容(例如软件更新、位置信息、支付信息、媒体文件或其他适当的电子信息)来参与由服务器系统112提供的网络数据交换服务。在一些实施例中,网络体系结构100可以是被配置用于边缘计算的分布式、开放信息技术(IT)体系结构。
在一些实现中,客户端设备102-108可以是计算设备,例如膝上型或台式计算机、智能手机、个人数字助理、便携式媒体播放器、平板计算机、或可用于通过网络进行通信的其他适当的计算设备。在一些实现中,服务器系统112或114可以包括一个或更多个计算设备,例如计算机服务器。在一些实现中,服务器系统112或114可以表示一起工作以执行服务器计算机(例如,云计算)的动作的多于一个的计算设备。在一些实现中,网络110可以是公共通信网络(例如,因特网、蜂窝数据网络、电话网络上的拨号调制解调器)或专用通信网络(例如,专用LAN、租用线路)。
在各种实施例中,服务器系统112或114可以是被配置成在本地处理训练数据的边缘计算设备。在一些实施例中,服务器112和/或114可以被实现为集中式数据中心,其为由客户端设备实现的机器学习模型提供更新和参数。这样的边缘计算配置可以允许有效的数据处理,因为可以在源附近处理大量数据,从而减少因特网带宽使用。这既降低了成本,又确保了应用可以在远程位置有效地被使用。此外,处理数据而无需将其放入公共云的能力为敏感数据增加了有用的安全层。
边缘计算功能也可以在客户端设备102-108内实现。例如,通过在客户端设备(例如传感器板)的嵌入式系统上存储和运行机器学习模型,可以独立地执行推理计算,而无需使用客户端设备的通用处理芯片或其他计算或存储器资源。此外,这种边缘计算配置可以减少从机器学习模型获得结果的延迟。
图2示出了根据一个或更多个实施例的用于量化基于树的机器学习模型的过程流程图。在操作202处,训练基于树的机器学习模型。如本文所使用的,基于树的机器学习模型可被称为“树模型”。根据各种实施例,树模型可以是各种基于树的机器学习模型中的任何一种,包括决策树和由树模型构建的集成模型(ensemble),例如随机森林、以及梯度提升机(gradient boosting machine)、隔离森林等。在一些实施例中,树模型是分类树。在一些实施例中,树模型是回归树。
参考图3,图3显示了根据一个或更多个实施例的示例基于树的机器学习模型300。如图所示,树模型300可以包括各种节点,包括:根节点302;决策节点304-A、304-B和304-C;以及终端节点306-A、306-B、306-C、306-D和306-E。根节点302可以表示整个群体(population)或样本,该群体或样本被划分成由决策节点304-A和304-B表示的两个或更多个均匀(homogenous)子集。可以通过基于关于在根节点处的特定模型参数的阈值拆分样本,来划分根节点302。
然后,样本的每个相应部分可以在每个决策节点处基于另外的模型参数阈值进行划分,直到树模型到达终端节点为止。终端节点在本文也可以被称为树模型的“叶”。树模型的子部分可以称为“分支”或“子树”。例如,决策节点304-C和终端节点306-D和306-E组成分支308。应当理解,树模型300可以包括任意数量的节点。在一些实施例中,树模型可以包括数百或数千个决策节点。
回到操作202,根据各种实施例,可以实现不同的训练方法来训练树模型。在一个示例中,可以实现分类与回归树(classification and regression tree,CART)训练算法来选择导致最均匀拆分的分类参数。还可以实现各种集成方法来训练基于树的机器学习模型,包括但不限于装袋(bagging)、自适应提升(adaptive boosting)和梯度提升。这些可以产生集成模型,每个集成模型包含多颗树。因此,基于树的机器学习模型可以包括具有更多或更少如图3所示的节点和划分的多颗树。
可以训练树模型以用于各种功能。在一个示例中,可以训练树模型以预测客户端设备的运动。这种树模型可以在客户端设备的嵌入式设备上实现,以提高对移动模式检测的准确性,例如在用于移动设备的加速度计或陀螺仪的嵌入式芯片上实现,或者在从传感器板上的加速度计或陀螺仪接受数据的嵌入式传感器集线器上实现。由所公开的系统和方法支持的嵌入式设备的一个示例可以是由ARDUINO制造的NANO 33 BLE板,其包括32位
Figure BDA0004173139890000081
CortexTM-M4中央处理器和嵌入式惯性传感器。例如,特定树模型可以被训练用于手势识别任务,以区分不同类别的手势。例如,这样的手势可以包括“S”形手势以及来回(back-and-forth)或“摇动(shake)”手势。在这样的示例中,训练数据集可以包括与已知手势类型相关联的各种加速度计或陀螺仪测量值。嵌入式系统的其他示例可以是由STMicroelectronics生产的SensorTile.box和STWIN开发套件、以及由RENESAS生产的RA6M3 ML传感器模块。
在其他示例中,树模型可以被训练用于异常检测,从而对装备进行预测性维护。这种树模型可以从附接到监测振动、声音、温度或其他物理现象的机械或装备的传感器接收传感器数据,以监测装备在正常操作期间的性能和状况,从而降低故障的可能性。可以在正常操作数据上训练树模型,以将新数据分类为属于相似的数据集或不相似的数据集。在又一个示例中,树模型可以被训练用于话音或语音识别,以分析音频来进行关键词识别(keyword spotting)。这种树模型可以在对应于话音激活设备上的麦克风的嵌入式芯片上实现。
在操作204处,根据训练,确定树模型的决策节点的阈值。在训练期间,树算法通过寻找将训练数据集数据有效地拆分成组的特征阈值来从训练数据中学习。然后,可以在推理时间使用这些阈值来关于新的数据点进行归类和预测。阈值是模型参数,且影响模型的最终大小。
因此,对树模型的训练可导致在每个决策节点处为特征分配一个或更多个阈值,在该每个决策节点处对数据集进行拆分。在各种实施例中,决策节点可以导致二元拆分。然而,在一些实施例中,决策节点可以包括额外的拆分。
对于移动设备手势,特征可以对应于在特定时间窗口上的平均加速度计信号。例如,来自传感器的轴运动的平均值可以用作特征。例如,来自第一手势类别的数据可能趋向于针对平均而得的平均轴运动具有负值,而来自第二手势类别的数据针对平均而得的平均轴运动可能趋向于正值或零值。因为这些值往往不同,所以这个特征可以用来有效地拆分数据。因此,这种特征的示例阈值可以是-0.157,其是浮点值。
用于手势识别的其他相关特征可以包括振动或移动频率测量值,包括跨特定轴的运动的过零计算、或快速傅立叶变换值。例如,树模型可以基于移动的测量频率来拆分数据。“S”手势通常可以具有2赫兹(Hz)或更小的振荡运动频率,而摇动手势通常可以具有大于2Hz的振荡运动频率。
参数值可以存在于第一数值空间内,并且以第一数据类型编码。例如,阈值可以是浮点类型值(在本文中称为浮点值或浮点数)。在一些实施例中,阈值是有符号或无符号整数。例如,可以在从(例如来自加速度计或陀螺仪的)传感器数据中提取的特征值上训练树模型;这些特征值通常被表示为浮点值,并且从训练得到的阈值也将被表示为浮点值。在一些实施例中,浮点值被编码为32位浮点类型(C中的浮点数(float))。然而,阈值可以被编码为具有更大或更小的数据大小或文件存储大小的各种其他数据类型,例如整数、长整数(long)数据类型或双精度浮点数(double)数据类型。
在操作206处,阈值被量化为较小文件存储大小的数据类型。在一些实施例中,全部阈值的子集可以被量化。阈值可以被量化为使用更小的数据类型,从而使模型编码更小。作为一个示例,考虑具有浮点值特征的树模型。该树模型已经在这些浮点值特征上进行了训练,且因此关于树学习的阈值是浮点值的。编码为32位浮点类型的阈值可以被量化为8位无符号整数(C中的uint8_t),每个阈值节省3个字节。然而,在一些实施例中,阈值可以被量化为8位有符号整数。可以实现其他的小数据类型。例如,32位浮点类型可以被量化为16位无符号整数(C中的uint16_t)。这会导致文件大小的较小减小,但会以比8位量化更高的保真度保留阈值中的信息。
为了量化阈值,生成变换函数。在一些实施例中,可以为具有量化后的阈值的每个特征生成变换函数。在一些实施例中,变换函数是可逆的。然后,可以将用于给定特征的变换函数跨节点(在这些节点处该特征被用于拆分数据)应用于与该特征相关联的所有阈值。在一些实施例中,可以为一组特征生成变换函数,并且可以用该变换函数来变换与该组中的所有特征相关联的阈值。
变换函数及其性质可取决于所执行的量化的类型。例如,变换函数可以是仿射变换,其可以是重新缩放和平移的组合。这可以用下式表示:f(x)=mx+b。在上面的示例中,其中参数值从32位浮点类型被量化为8位无符号整数,模型中使用的用于给定特征的阈值通过仿射变换被映射到[0,255]的数值空间,其中,最小阈值映射到0并且最大阈值映射到255。例如,经训练的树模型可以包括五十(50)个拆分,其中十个拆分基于轴运动的平均值的特征。根据仿射变换,十个拆分的最小值被映射到0,并且十个拆分的最大值被映射到255,而其他阈值被映射到0和255之间的值。
在从非量化的[最小值,最大值]空间映射到量化后的[0,255]空间之后,阈值被舍入到整数值,并且“量化”过程结束。对该变换进行编码可能对于每个特征(例如斜率和截距)需要2个4字节的浮点值。因此,参数值被量化到第二数值空间中,该第二数值空间以相对于第一数据类型具有更小的文件存储大小的第二数据类型进行编码。
在操作208处,对变换函数进行编码。在一些实施例中,变换作为数组被添加到树模型的代码中。例如,该数组可以被编码在基于树的机器学习模型内,并且该数组存储用于将给定的量化后的参数值从较小的数据类型变换到较大的数据类型的参数。在一些实施例中,具有量化后的阈值的每个特征与树模型代码中的单独的数组相关联。
根据模型所使用的特征的数量和拆分的数量(每个拆分都有其自己的阈值),可以通过将阈值如此量化为更小的数据类型来整体上节省字节。应该认识到,值可以被量化到对应于不同编码大小和格式的其他已知数值空间。树模型可以基于多个不同的特征来拆分数据集。在一些实施例中,量化树模型中的所有阈值。在一些实施例中,仅量化对应于特征子集的阈值。在一些实施例中,对应于特定特征的阈值被量化并被映射到它们自己的量化后的空间。
在操作210处,确定树模型的终端节点的叶值。在训练期间,树模型从训练数据中学习信息,并将其存储在与终端节点或叶相关联的参数中。当新的数据点到达给定的叶时,在推理时使用给定的“叶”值对该数据点进行归类。叶值是模型参数,且影响模型大小。根据树实现的类型,叶值可以是浮点值的“边距(margins)”,或者它们可以是表示到达该特定叶的训练实例数量的整数,或者它们可以是到达该特定叶的训练实例数量的浮点值比率。应该认识到,叶值可以对应于本领域已知的各种数据类型的值。
在操作212处,叶值被量化。在其中叶值是浮点值的一些实施例中,叶值可以用32位浮点类型(C中的浮点数)表示。这样的叶值可以通过将叶值编码为8位无符号整数(C中的uint8_t)来量化,如先前参考阈值所述。如所讨论的,这种量化可以为每个叶值节省3个字节。
在其中叶值是整数值的一些实施例中,如果需要表示的值的范围足够大,以至于最小可用整数类型不是足够大来表示它们,则可以实现量化以使用更小的整数类型来节省字节。例如,如果叶值具有0到300的范围,那么存储这些值的数组可能需要至少16位的类型,例如16位无符号整数(C中的uint16_t)。可以通过将这些值映射到范围[0,255]来量化这些值,这将允许用8位无符号整数(C中的uint8_t)对该数组进行编码。这种量化将为每个叶值节省1个字节。
例如,在回归类型树模型中,叶值可以全部被编码在相同的数值空间中。在一些实施例中,回归类型树模型的叶值都以特定数据类型被编码在相同数值空间中。这里,所有叶值可以被量化到对应于具有减小的存储大小的数据类型的相同数值空间中。
作为另一个示例,分类类型树模型可以被实现为对来自数据点的特征进行归类。对来自运动传感器的运动类型(例如“S”手势或摇动手势)进行归类可能是一种分类问题。在一些实施例中,分类类型树模型可以实现随机森林算法。在分类树模型中,每个叶可以提供接收到的数据点与特定运动类别(例如“S”手势或摇动手势)相关联的概率。例如,每个叶可以包括与每一个手势类别相关联的整数值。分类树模型的特定叶在训练期间可能遇到分布在以下三个手势类别中的10,000个数据点:“S”手势、摇动手势和“W”手势。
在一个示例中,50,000个数据点可以与“S”手势相关联,30,000个数据点可以与摇动手势相关联,而20,000个数据点可以与“W”手势相关联。在该示例中,每个手势类别的相对值可以被表示为比率或百分比(例如50%、30%和20%,或者例如5、3和2)。这些值可以用带有小数位的32位浮点数据类型进行编码。
该特定叶的值可以被量化为具有更小存储大小的数值空间(例如8位无符号整数)。在一些实施例中,树模型中所有叶节点中的值被量化到相同的数值空间。然而,在一些实施例中,不同叶节点的值被量化到与每个叶相对应的单独的量化后的数值空间中。在其他示例中,多个叶节点的值可以被量化到相同的数值空间,而其他叶节点的值不被量化或者被单独地或与其他叶节点一起被量化到单独的数值空间。
在操作214处,对量化后的叶值的变换函数进行编码。如前所述,变换函数可以被生成并被编码为树模型的代码内的数组。变换函数及其性质可取决于所执行的量化的类型。例如,变换函数可以是仿射变换。在一些实施例中,可以为每个量化后的值的集合生成变换函数。例如,单个变换函数可以与叶节点相关联。然而,在多个叶节点的值被量化到相同的数值空间的情况下,单个变换函数可以与多个叶节点相关联。在一些实施例中,编码该变换函数需要2个4字节的浮点值(例如斜率和截距)。然而,在某些量化环境中可能不需要这样的数组,因为对于一些类型的树模型,将量化后的叶值变换到非量化的空间来对数据点或特征执行推理可能不是必需的。例如,整数值叶参数的量化可能不需要变换函数。
在各种实施例中,可以在树模型内编码其他映射方法以获得量化后的参数值。在一个示例中,变换函数是由根据叶值计算的多个分位数(例如,256个分位数)构造的查找表。每个叶分数可以用最接近的分位数的索引来表示。每个叶被存储为一个8位无符号整数,并且存在被存储为浮点数的256个分位数的表的固定开销。索引在运行时通过表查找(索引到分位数数组中)被转换为浮点数。更复杂的变换可以减少在量化模型时损失的信息量,导致量化后的模型的相对于原始非量化的模型更可信的性能。然而,这种更复杂的变换需要更多的变换参数与模型一起存储(以便在推理时间时执行逆变换),这导致在量化模型时字节方面的较少节省。
无论基于什么任务训练树模型或实现什么特征,都可以执行量化。在各种实施例中,针对阈值的操作204-208和针对叶值的操作210-214可以独立地执行。根据树模型的类型、训练方法和所涉及的值的类型,在一些实施例中可以仅量化阈值,而在其他实施例中,仅量化叶值。这在构建树模型以减少树模型的最终存储大小方面提供了额外的灵活性。
由于各种值的舍入,在量化过程中可能会损失一定程度的准确性或信息。因此,在各种实施例中,只有在阈值或叶值的量化将导致模型大小的减小在预定阈值以上的情况下,才可以执行量化操作206或212。例如,预定阈值可以是1000个字节。换句话说,如果所有阈值的量化将导致模型大小的1000个字节的减小,则可以实现操作206。类似地,如果叶值的量化将导致模型大小的至少1000个字节的减小,则可以实现操作212。在各种实施例中,通过文件存储大小的这种减小而改善的客户端设备或嵌入式设备的性能将大大超过由参数值的量化引起的任何准确性损失。
附加变换参数的数量和类型将是与实现相关的,但是如果需要它们,则在确定量化后的模型大小时必须考虑这些附加参数所需的附加字节。在所讨论的其中32位浮点阈值被量化为8位无符号整数的示例中,为每个阈值节省了3个字节。在树模型中的每个拆分都有一个阈值的情况下,阈值的量化为每个拆分节省了3个字节。
如前所述,变换函数可能需要两个浮点值,每个浮点值为4个字节。因此,在一些实施例中,添加到模型的变换函数使模型大小每个线性参数增加4个字节,每个特征具有两个线性参数。换句话说,变换函数可以使模型大小每个特征增加8个字节。因此,为了减小树模型的最终大小,必须满足以下条件:
(特征的数量)(8个字节)<(拆分的数量)(3个字节)。
这确保了树模型的大小可以被充分减小以在客户端设备上实现树模型。在各种实施例中,在嵌入式芯片而不是通用处理单元上实现树模型是有益的。例如,手机可能处于待机状态,其中屏幕关闭且通用芯片休眠(省电)。在这种待机状态下,移动设备的麦克风可以保持活动,并且麦克风芯片(控制麦克风和来自麦克风的音频数据的低功耗“嵌入式”芯片)可以使如所描述的量化后的机器学习模型在其上运行。量化后的机器学习模型可以被训练成从音频流中识别关键词,并且如果它确定该关键词已经被说出,则唤醒设备。一旦移动设备被唤醒,通用处理单元可以被实现以执行更密集的操作,例如执行更强大的机器学习模型来对音频流执行话音识别。以这种方式,设备能够在通用处理单元休眠时“监听”关键词,从而降低整体功耗。
然后,在操作216处,量化后的树模型被传输到客户端设备,并被存储在客户端设备上的存储器中。在一些实施例中,树模型与量化后的阈值和/或量化后的叶值一起、连同针对量化后的空间的相对应的变换函数被传输。在一些实施例中,树模型被传输到对应于嵌入式芯片的闪存或其他存储装置。然而,在一些实施例中,树模型被存储在客户端设备的任何可访问存储器上。然后,可以由中央处理器或其他嵌入式芯片访问树模型,以在推理模式期间进行预测。
在一些实施例中,系统可以实现基于云的机器学习模型,在基于云的机器学习模型中,树模型在中央服务器或边缘计算设备处被训练和开发,并被推送到客户端设备或嵌入式芯片。这将允许用户选择不同的经训练的树模型来推送到多个客户端设备的嵌入式系统,而不使用客户端设备的本地计算能力来训练和开发所选择的模型。
在推理模式下的操作期间,可以在操作218处接收数据点。在前述示例中,这种数据点可以从来自移动设备的加速度计或陀螺仪的传感器数据中获得。可以从数据点中提取一个或更多个特征或特征值。例如,数据点可以指示一个或更多个轴上的移动量、移动频率、特定轴上的移动次数等。作为另一个示例,数据点可以从移动设备的麦克风、相机或其他传感器获得。在一些实施例中,提取的特征包括与对应于非量化的参数值的第一数值空间相关联的值。例如,从数据点中提取的特征是浮点值的(32位浮点值的)。
然后,提取的特征可以被传递通过树模型,以便生成关于该特征的预测。为了在推理模式期间比较或处理所提取的特征,在操作220处将量化后的阈值变换成非量化的阈值。在一些实施例中,量化后的阈值被变换回具有相同大小的原始数据类型。例如,8位无符号整数被变换回原始数据类型,例如32位浮点类型值或16位无符号整数。处理器可以基于树模型的存储的变换函数(即,编码的数组)来变换量化后的阈值。一旦相关参数值从第二数值空间变换回第一数值空间,所提取的特征可以与第一数值空间中的非量化的参数值进行比较,并被引导到树模型的适当节点。
在各种实施例中,树模型以量化后的格式存储在嵌入式系统或客户端设备上,并且在推理时间时被去量化,以在嵌入式系统上保持减小的模型大小。在推理时间期间的去量化的特定实现是灵活的,并且可以取决于可用的随机存取存储器(RAM)或工作存储器的量。在一些实施例中,特定决策节点或叶节点的参数值根据需要被去量化。例如,当提取的特征在对应于参数值的一个或更多个特定节点处被处理时,参数值可以被去量化。在实现期间由额外的去量化操作引起的任何潜在增加的延迟都被由此产生的性能改善(例如闪存和RAM存储器使用的减少)所抵消。在一些实施例中,对应于特定变换函数的所有节点的参数值在推理时间期间被去量化。在其他实施例中,所有参数值在推理时间期间都被去量化。一次去量化所有或多个参数值可能会增加RAM需求,但会减少闪存的使用并减少在实现期间的延迟。
一旦阈值已经被去量化,提取的特征被传递通过树模型的决策节点,以在终端节点处生成预测。在一些实施例中,在操作222处,量化后的叶值被变换成非量化的叶值,并且在操作224处,在到达终端节点时,生成关于数据点的特征的预测。然后,树模型可以输出关于提取的特征或数据点的预测。
在各种实施例中,操作222是为了使用叶值进行预测而实现的可选操作。然而,在一些树模型实现中,不需要在操作222处的对量化后的叶值的变换。例如,在分类类型树模型中,可以基于在叶节点处的参数的相对值来生成预测。在这样的情况下,量化后的空间中的参数的相对值可以与非量化的空间中的参数的相对值相同。因此,可以在不对叶值进行去量化的情况下生成预测。在这种情况下,在推理时间时不需要变换函数,且因此变换参数不需要与模型一起存储在设备上。
在一些实施例中,在推理操作期间,数据点或数据点的特征值被量化到与量化后的阈值相同的数值空间中和数据类型。在这样的示例中,量化后的数据点可以被传递通过树模型而不对阈值或叶值进行去量化。
图4描绘了可用于作为专用系统实现本教导的客户端设备400的体系结构。在该示例中,在其上可以实现量化后的树模型的用户设备是移动设备400,例如但不限于智能电话、平板电脑、音乐播放器、手持式游戏控制台或全球定位系统(GPS)接收器。该示例中的移动设备400包括一个或更多个中央处理器(CPU)402、一个或更多个图形处理单元(GPU)404、显示器406、存储器408、通信平台410(例如无线通信模块)、存储装置412和一个或更多个输入/输出(I/O)设备414。任何其他合适的部件,例如但不限于系统总线或控制器(未示出),也可以被包括在移动设备400中。
I/O设备可以包括各种传感器、麦克风、陀螺仪、加速度计和本领域已知的其他设备。这样的I/O设备可以包括可以实现本文描述的量化后的树模型的嵌入式系统、处理器和存储器。在一些实施例中,嵌入式系统的处理器可以包括用于处理机器学习模型(包括对参数值进行去量化)的专用硬件。然而,在一些实施例中,量化后的树模型可以被存储在存储装置412或存储器408中。在一些实施例中,量化后的树模型和所描述的方法可以由客户端设备的CPU实现。
如图4所示,移动操作系统(OS)416(例如iOS、Android、Windows Phone等)以及一个或更多个应用418可以从存储装置412加载到存储器408中,以便由CPU 402执行。应用418可以包括浏览器或其他应用,该浏览器或其他应用使用户能够访问内容(例如,广告或其他内容)、向用户提供内容的呈现、监测与呈现的内容相关的用户活动(例如,用户是否已经观看了广告、用户是否以其他方式与广告进行了交互等)、报告事件(例如,节流(throttle)事件)或执行其他操作。在一些实施例中,应用418可以依赖于或利用量化后的树模型的输出结果。
参考图5,示出了可用于实现本公开的特定示例的计算机系统的特定示例。例如,根据上述各种实施例,计算机系统500可以表示客户端设备、服务器或其他边缘计算设备。根据特定示例实施例,适于实现本公开的特定实施例的系统500包括处理器501、存储器503、接口511和总线515(例如,PCI总线或其他互连结构)。
接口511可以包括单独的输入和输出接口,或者可以是支持这两种操作的统一接口。接口511通常被配置为通过网络发送和接收数据分组或数据片段。设备支持的接口的特定示例包括以太网接口、帧中继接口、电缆接口、DSL接口、令牌环接口等。通常,这些接口可以包括适合于与适当介质通信的端口。在某些情况下,它们还可以包括独立的处理器,并且在某些情况下还可以包括易失性RAM。独立的处理器可以控制诸如分组交换、媒体控制和管理等的通信密集型任务。
此外,可以提供各种非常高速的接口,例如快速以太网接口、千兆以太网接口、ATM接口、HSSI接口、POS接口、FDDI接口等。通常,这些接口可以包括适合于与适当介质通信的端口。在某些情况下,它们还可以包括独立的处理器,并且在某些情况下还可以包括易失性RAM。独立的处理器可以控制诸如分组交换、媒体控制和管理等的通信密集型任务。
根据特定示例实施例,系统500使用存储器503来存储数据和程序指令,并维护本地侧缓存。例如,程序指令可以控制操作系统和/或一个或更多个应用的操作。存储器(一个或多个)还可以被配置为存储接收的元数据和批量请求的元数据。
当在适当的软件或固件的控制下行动时,处理器501负责诸如机器学习树模型的实现和训练以及对树模型的参数值进行量化或去量化等的任务。各种特殊配置的设备也可用于代替处理器501或者附加于处理器501被使用。完整的实现也可以在定制的硬件中完成。
在一些实施例中,系统500还包括机器学习模型处理单元(MLMPU)509。如上所述,MLMPU 509可以被实现用于诸如机器学习树模型的实现和训练、对树模型的参数值进行量化或去量化以及执行如图2中所描述的各种操作等的任务。MLMPU可以被实现为处理经训练的树模型以识别用于阈值参数和叶节点的参数值,并为参数值确定一个或更多个适合的量化后的数值空间。在一些实施例中,机器学习模型处理单元509可以是与CPU(例如处理器501)分离的单元。
因为这种信息和程序指令可用于实现本文所述的系统/方法,所以本公开涉及有形的机器可读介质,其包括用于执行本文所述的各种操作的程序指令、状态信息等。机器可读介质的示例包括硬盘、软盘、磁带、诸如CD-ROM盘和DVD的光学介质;诸如光盘的磁光介质、以及专门被配置为存储和执行程序指令的硬件设备,例如只读存储器设备(ROM)和可编程只读存储器设备(PROM)。程序指令的示例包括(例如由编译器产生的)机器代码和包含高级代码的文件,这些高级代码可以由计算机使用解释器(interpreter)执行。
尽管为了方便起见,上面以单数描述了许多组件和过程,但本领域技术人员将理解,也可以使用多个组件和重复的过程来实践本公开的技术。
尽管参考本公开的特定实施例特别示出和描述了本公开,但本领域技术人员将理解,在不脱离本公开的精神或范围的情况下,可以对所公开的实施例的形式和细节进行改变。因此,意图将本公开解释为包括落入本公开的真正精神和范围内的所有变体和等同物。

Claims (20)

1.一种用于量化树模型参数的方法,所述方法包括:
确定经训练的基于树的机器学习模型中的一个或更多个参数值,其中,所述一个或更多个参数值存在于以第一数据类型编码的第一数值空间内;
将所述一个或更多个参数值量化到第二数值空间中,其中,所述第二数值空间以第二数据类型进行编码,所述第二数据类型相对于所述第一数据类型具有更小的文件存储大小;
在所述基于树的机器学习模型内编码数组,其中,所述数组存储用于将所述第二数值空间中的给定的量化后的参数值变换为所述第一数值空间中的相对应的参数值的参数;以及
将所述基于树的机器学习模型传输到客户端设备。
2.根据权利要求1所述的方法,其中,所述基于树的机器学习模型被传输到所述客户端设备的嵌入式系统。
3.根据权利要求2所述的方法,还包括:
通过所述嵌入式系统的传感器获得数据点;
从所述数据点中提取特征;
使提取的特征传递通过所述基于树的机器学习模型;
将所述一个或更多个参数值从所述第二数值空间去量化到所述第一数值空间;以及
基于去量化后的所述一个或更多个参数值生成关于所述特征的预测。
4.根据权利要求3所述的方法,其中,当所述提取的特征在对应于所述一个或更多个参数值的节点处被处理时,所述一个或更多个参数值中的每一个根据需要被去量化。
5.根据权利要求1所述的方法,其中,所述一个或更多个参数值对应于所述基于树的机器学习模型的特征的阈值。
6.根据权利要求1所述的方法,其中,所述一个或更多个参数值对应于所述基于树的机器学习模型的叶值。
7.根据权利要求1所述的方法,其中,所述第一数据类型是32位浮点类型。
8.根据权利要求1所述的方法,其中,所述第二数据类型是8位无符号整数。
9.根据权利要求1所述的方法,
其中,所述一个或更多个参数值对应于所述基于树的机器学习模型的特征的阈值和所述基于树的机器学习模型的叶值;以及
其中,所述阈值和所述叶值彼此独立地被量化。
10.根据权利要求1所述的方法,其中,所述基于树的机器学习模型被配置成对与所述客户端设备的运动相对应的手势进行分类。
11.一种用于量化树模型参数的系统,所述系统包括:
一个或更多个处理器、存储器和存储在所述存储器中的一个或更多个程序,所述一个或更多个程序包括用于以下操作的指令:
确定经训练的基于树的机器学习模型中的一个或更多个参数值,其中,所述一个或更多个参数值存在于以第一数据类型编码的第一数值空间内;
将所述一个或更多个参数值量化到第二数值空间中,其中,所述第二数值空间以第二数据类型进行编码,所述第二数据类型相对于所述第一数据类型具有更小的文件大小;
在所述基于树的机器学习模型内编码数组,其中,所述数组存储用于将所述第二数值空间中的给定的量化后的参数值变换为所述第一数值空间中的相对应的参数值的参数;以及
将所述基于树的机器学习模型传输到客户端设备。
12.根据权利要求11所述的系统,其中,所述基于树的机器学习模型被传输到所述客户端设备的嵌入式系统。
13.根据权利要求12所述的系统,其中,所述一个或更多个程序还包括用于以下操作的指令:
通过所述嵌入式系统的传感器获得数据点;
从所述数据点中提取特征;
使提取的特征传递通过所述基于树的机器学习模型;
将所述一个或更多个参数值从所述第二数值空间去量化到所述第一数值空间;以及
基于去量化后的所述一个或更多个参数值生成关于所述特征的预测。
14.根据权利要求13所述的系统,其中,当所述提取的特征在对应于所述一个或更多个参数值的节点处被处理时,所述一个或更多个参数值中的每一个根据需要被去量化。
15.根据权利要求11所述的系统,其中,所述一个或更多个参数值对应于所述基于树的机器学习模型的特征的阈值。
16.根据权利要求11所述的系统,其中,所述一个或更多个参数值对应于所述基于树的机器学习模型的叶值。
17.一个或更多个非暂时性计算机可读介质,其上存储有用于执行一种方法的指令,所述方法包括:
确定经训练的基于树的机器学习模型中的一个或更多个参数值,其中,所述一个或更多个参数值存在于以第一数据类型编码的第一数值空间内;
将所述一个或更多个参数值量化到第二数值空间中,其中,所述第二数值空间以第二数据类型进行编码,所述第二数据类型相对于所述第一数据类型具有更小的文件大小;
在所述基于树的机器学习模型内编码数组,其中,所述数组存储用于将所述第二数值空间中的给定的量化后的参数值变换为所述第一数值空间中的相对应的参数值的参数;以及
将所述基于树的机器学习模型传输到客户端设备。
18.根据权利要求17所述的一个或更多个非暂时性计算机可读介质,其中,所述基于树的机器学习模型被传输到所述客户端设备的嵌入式系统。
19.根据权利要求18所述的一个或更多个非暂时性计算机可读介质,其中,所述方法还包括:
通过所述嵌入式系统的传感器获得数据点;
从所述数据点中提取特征;
使提取的特征传递通过所述基于树的机器学习模型;
将所述一个或更多个参数值从所述第二数值空间去量化到所述第一数值空间;以及
基于去量化后的所述一个或更多个参数值生成关于所述特征的预测。
20.根据权利要求19所述的一个或更多个非暂时性计算机可读介质,其中,当所述提取的特征在对应于所述一个或更多个参数值的节点处被处理时,所述一个或更多个参数值中的每一个根据需要被去量化。
CN202180069775.2A 2020-10-12 2021-10-11 基于树的机器学习模型的量化 Pending CN116325737A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202063090516P 2020-10-12 2020-10-12
US63/090,516 2020-10-12
PCT/US2021/054445 WO2022081492A1 (en) 2020-10-12 2021-10-11 Quantization of tree-based machine learning models

Publications (1)

Publication Number Publication Date
CN116325737A true CN116325737A (zh) 2023-06-23

Family

ID=81079088

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180069775.2A Pending CN116325737A (zh) 2020-10-12 2021-10-11 基于树的机器学习模型的量化

Country Status (5)

Country Link
US (1) US20220114457A1 (zh)
EP (1) EP4226612A1 (zh)
KR (1) KR20230087484A (zh)
CN (1) CN116325737A (zh)
WO (1) WO2022081492A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11706078B1 (en) * 2021-03-22 2023-07-18 Two Six Labs, LLC Internet disruption detection
WO2023244981A2 (en) * 2022-06-13 2023-12-21 Northeastern University Suspensions and solutions of dyes for colored coatings

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8897359B2 (en) * 2008-06-03 2014-11-25 Microsoft Corporation Adaptive quantization for enhancement layer video coding
US8290882B2 (en) * 2008-10-09 2012-10-16 Microsoft Corporation Evaluating decision trees on a GPU
US10599250B2 (en) * 2013-05-06 2020-03-24 Qeexo, Co. Using finger touch types to interact with electronic devices
US10373050B2 (en) * 2015-05-08 2019-08-06 Qualcomm Incorporated Fixed point neural network based on floating point neural network quantization

Also Published As

Publication number Publication date
WO2022081492A1 (en) 2022-04-21
KR20230087484A (ko) 2023-06-16
US20220114457A1 (en) 2022-04-14
EP4226612A1 (en) 2023-08-16

Similar Documents

Publication Publication Date Title
EP3452954A1 (en) Dynamic classifier selection based on class skew
CN112363813A (zh) 资源调度方法、装置、电子设备和计算机可读介质
CN116325737A (zh) 基于树的机器学习模型的量化
CN111382863A (zh) 一种神经网络压缩方法及装置
US11829888B2 (en) Modifying artificial intelligence models using model fragments
EP3607436B1 (en) Disaggregating latent causes for computer system optimization
CN113642700B (zh) 基于联邦学习和边缘计算的跨平台多模态舆情分析方法
CN107392259B (zh) 构建不均衡样本分类模型的方法和装置
CN113778691B (zh) 一种任务迁移决策的方法、装置及系统
Jiang et al. Computation and communication efficient federated learning with adaptive model pruning
CN116684330A (zh) 基于人工智能的流量预测方法、装置、设备及存储介质
CN114564313A (zh) 负载调整方法、装置、电子设备及存储介质
CN111858916B (zh) 用于聚类句子的方法和装置
CN115907041A (zh) 一种模型训练方法及装置
CN114756312B (zh) 用于对本地服务进行远程协助优化的系统和方法
US20220188609A1 (en) Resource aware neural network model dynamic updating
Cheng et al. Efficient deep learning approach for computational offloading in mobile edge computing networks
CN113361677A (zh) 神经网络模型的量化方法和装置
CN111667028A (zh) 一种可靠负样本确定方法和相关装置
CN113361678A (zh) 神经网络模型的训练方法和装置
CN114153546B (zh) 一种用于云桌面运营管理系统的数据流传输方法及系统
US20240192847A1 (en) Data storage placement system
CN112015625B (zh) 报警设备控制方法、装置、电子设备和计算机可读介质
CN116521377B (zh) 业务计算卸载方法、系统、装置、设备及介质
CN118093097A (zh) 数据存储集群资源调度方法、装置、电子设备和介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination