CN116362301A - 一种模型的量化方法以及相关设备 - Google Patents
一种模型的量化方法以及相关设备 Download PDFInfo
- Publication number
- CN116362301A CN116362301A CN202310215082.0A CN202310215082A CN116362301A CN 116362301 A CN116362301 A CN 116362301A CN 202310215082 A CN202310215082 A CN 202310215082A CN 116362301 A CN116362301 A CN 116362301A
- Authority
- CN
- China
- Prior art keywords
- sub
- quantization
- machine learning
- learning model
- activation
- 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
Links
- 238000013139 quantization Methods 0.000 title claims abstract description 336
- 238000000034 method Methods 0.000 title claims abstract description 178
- 238000010801 machine learning Methods 0.000 claims abstract description 207
- 230000004913 activation Effects 0.000 claims abstract description 127
- 238000009826 distribution Methods 0.000 claims abstract description 72
- 238000012549 training Methods 0.000 claims description 157
- 238000012545 processing Methods 0.000 claims description 95
- 230000008569 process Effects 0.000 claims description 73
- 230000015654 memory Effects 0.000 claims description 51
- 238000010586 diagram Methods 0.000 claims description 36
- 238000003860 storage Methods 0.000 claims description 26
- 238000001514 detection method Methods 0.000 claims description 23
- 230000011218 segmentation Effects 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 8
- 230000002159 abnormal effect Effects 0.000 abstract description 26
- 238000013473 artificial intelligence Methods 0.000 abstract description 19
- 230000005856 abnormality Effects 0.000 abstract description 5
- 239000000523 sample Substances 0.000 description 58
- 239000011159 matrix material Substances 0.000 description 23
- 230000006870 function Effects 0.000 description 22
- 238000000605 extraction Methods 0.000 description 14
- 238000013528 artificial neural network Methods 0.000 description 13
- 238000004364 calculation method Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 10
- 238000013461 design Methods 0.000 description 10
- 230000009286 beneficial effect Effects 0.000 description 9
- 238000003058 natural language processing Methods 0.000 description 8
- 238000013500 data storage Methods 0.000 description 6
- 235000019580 granularity Nutrition 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- MHABMANUFPZXEB-UHFFFAOYSA-N O-demethyl-aloesaponarin I Natural products O=C1C2=CC=CC(O)=C2C(=O)C2=C1C=C(O)C(C(O)=O)=C2C MHABMANUFPZXEB-UHFFFAOYSA-N 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 238000013519 translation Methods 0.000 description 4
- 230000014616 translation Effects 0.000 description 4
- 238000013527 convolutional neural network Methods 0.000 description 3
- 230000002349 favourable effect Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000011022 operating instruction Methods 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 239000000872 buffer Substances 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 241000282472 Canis lupus familiaris Species 0.000 description 1
- 241000209504 Poaceae Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000011217 control strategy Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 229910003460 diamond Inorganic materials 0.000 description 1
- 239000010432 diamond Substances 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000008451 emotion Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000004438 eyesight Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 239000007788 liquid Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000010408 sweeping Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 230000016776 visual perception Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0495—Quantised networks; Sparse networks; Compressed networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Image Analysis (AREA)
Abstract
本申请实施例公开一种模型的量化方法以及相关设备,该方法可用于人工智能领域中对模型进行压缩,其中,对机器学习模型中第一激活层生成的第一激活值进行量化包括:采用第一量化步长对第一激活值中的第一子激活值进行量化,采用第二量化步长对第一激活值中的第二子激活值进行量化;机器学习模型中第一通道与第一子激活值对应,机器学习模型中第二通道与第二子激活值对应,第一量化步长和第二量化步长不同。本方案中采用不同的量化步长对不同通道所对应的子激活值进行量化,既有利于保留分布异常的通道所对应的量化后的子激活值的异常性,又有利于避免分布正常的通道所对应的量化后的子激活值的精度的损失。
Description
技术领域
本申请涉及人工智能领域,尤其涉及一种模型的量化方法以及相关设备。
背景技术
人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用***。换句话说,人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式作出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
随着人工智能技术的发展,将机器学习模型部署在终端设备上的场景越来越多。但很多机器学习模型十分复杂,参数量庞大,对于终端设备的硬件要求很高,基于终端设备资源有限的现状,一种对机器学习模型进行压缩的方案亟待推出。
发明内容
本申请实施例提供了一种模型的量化方法以及相关设备,针对不同通道所对应的子激活值的分布不同的情况,本方案中采用不同的量化步长对不同通道所对应的子激活值进行量化,既有利于保留分布异常的通道所对应的量化后的子激活值的异常性,又有利于避免分布正常的通道所对应的量化后的子激活值的精度的损失。
为解决上述技术问题,本申请实施例提供以下技术方案:
第一方面,本申请实施例提供一种模型的量化方法,可用于人工智能领域中对模型进行压缩,方法应用于利用第一机器学习模型进行数据处理的过程中,模型的量化方法包括对第一机器学习模型中的至少一个激活层生成的激活值进行量化,至少一个激活层包括第一激活层,也即第一激活层生成的第一激活值为任意一个需要量化的激活值。其中,电子设备对第一激活层生成的第一激活值进行量化包括:
电子设备采用第一量化步长对第一激活值中的第一子激活值进行量化;并采用第二量化步长对第一激活值中的第二子激活值进行量化,其中,第一机器学习模型包括多个通道,多个通道包括第一通道和第二通道,第一子激活值与第一通道对应,第二子激活值与第二通道对应,第一量化步长和第二量化步长不同。电子设备可以为第一模型的训练设备,也可以为部署有第一模型的执行设备。
本实现方式中,提供了对第一机器学习模型中的激活层生成的激活值进行量化的方法,可以降低第一机器学习模型的计算复杂度,且能够降低利用第一机器学习模型进行数据处理的过程时所占用的存储空间;此外,由于多个通道中可能会存在子激活值分布异常的通道,例如分布异常的通道所对应的子激活值稳定的超大或超小,若采用相同的量化步长对每个通道所对应的子激活值进行量化,则前述量化步长的取值就需要较大,则与分布正常的通道所对应的量化后的子激活值的精度就会大大降低,针对不同通道所对应的子激活值的分布不同的情况,本方案中采用不同的量化步长对不同通道所对应的子激活值进行量化,既有利于保留分布异常的通道所对应的量化后的子激活值的异常性,又有利于避免分布正常的通道所对应的量化后的子激活值的精度的损失。
在一种可能实现方式中,第一子激活值的分布和所述第二子激活值的分布不同。此处以第一通道所对应的第一子激活值分布异常,第二通道所对应的第二子激活值分布正常为例,示例性地,第一通道所对应的所有第一子激活值中超过第一比例的第一激活值稳定的超大或超小,则第一通道也可以称之为异常通道;第二通道所对应的所有第二子激活值中超过第二比例的第二子激活值均处于正常的取值范围内,则第二通道也可以称之为正常通道;第一比例和第二比例的取值可以相同或不同。例如,第一比例和第二比例的取值均可以为百分之八十、百分之八十五、百分之九十或者也可以为其他比例值等等,又或者第一比例和第二比例的取值可以不同等,此处均不做限定。
例如,第二通道所对应的所有第二子激活值中百分之九十以上的第一子激活值位于20至30之间;第一通道所对应的所有第一子激活值中百分之九十以上的第一子激活值大于或等于50。又例如,第二通道所对应的所有第二子激活值中百分之八十五以上的第一子激活值位于10至20之间,第一通道所对应的所有第一子激活值中百分之八十五以上的第一子激活值小于或等于1。又例如,第二通道所对应的所有第二子激活值中百分之九十以上的第一子激活值的取值位于10至20之间,第一通道所对应的所有第一子激活值中百分之九十以上的第一子激活值要么大于或等于60,要么小于或等于1。需要说明的是,此处举例仅为方便理解“第一通道所对应的第一子激活值的分布”与“第二通道所对应的第二子激活值的分布”不同这一概念,不用于限定本方案。
在一种可能实现方式中,第一机器学习模型为变形金刚Transformer模型。本实现方式中,技术人员在研究中发现,当第一机器学习模型选用Transformer模型时,分布异常的通道所对应的子激活值和分布正常的通道所对应的子激活值之间的差异更明显,“采用第一步长对第一通道所对应的子激活值进行量化,并采用第二步长对第二通道所对应的子激活值进行量化”这一方案与Transformer模型的适配度更高,能够在降低Transformer模型的计算量,减少Transformer模型中的参数量的同时,避免Transformer模型输出的预测结果的精度的降低。
在一种可能实现方式中,在利用第一机器学习模型对输入数据进行数据处理的过程中能够得到输入数据的多个特征信息,多个特征信息包括第一特征信息,模型的量化方法还包括对第一特征信息进行量化。其中,电子设备对第一特征信息进行量化包括:
电子设备将第一特征信息分为至少两个子特征信息,至少两个子特征信息包括第一子特征信息和第二子特征信息;电子设备采用第一量化参数对第一子特征信息进行量化,并采用第二量化参数对第二子特征信息进行量化,第一量化参数和第二量化参数不同。示例性地,对模型进行量化时所采用的量化参数可以包括量化步长、量化偏置或其他类型的量化参数等,此处不做穷举。
本实现方式中,由于同一个输入数据中可能包括语义不同的部分,例如同一个图像中可能会包括多个语义不同的区域,又例如同一个文本中可能会包括多个语义不同的词语等,则同一输入数据中语义不同的部分所对应的子特征信息的值的分布具有较大差异,语义相同的部分所对应的子特征信息的值的分布具有较小差异,本方案中将第一特征信息分为至少两个子特征信息,以采用不同的量化参数对不同的子特征信息进行量化,有利于提高第一特征信息中的值与采用的量化参数之间的匹配度,采用本方案对第一特征信息执行了量化操作之后,既保留了语义相同的部分所对应的子特征信息的分布特性,又保留了语义不同的部分所对应的子特征信息的差异性,有利于避免降低第一机器学习模型输出的预测结果的精准度。
在一种可能实现方式中,“第一量化参数和第二量化参数不同”可以代表对第一子特征信息进行量化时采用的量化步长1与对第二子特征信息进行量化时采用的量化步长2不同,也即M个子特征信息中不同的子特征信息采用相同的量化偏置。或者,“第一量化参数和第二量化参数不同”可以代表对第一子特征信息进行量化时采用的量化步长1以及量化偏置1,与,对第二子特征信息进行量化时采用的量化步长2以及量化偏置2不同。
在一种可能实现方式中,输入数据为图像,第一机器学习模型的任务为对图像进行目标检测。本实现方式中,由于当利用机器学习模型对图像执行目标检测任务时,图像中大概率包括多个物体,通常由第一特征信息中的几个令牌(token)来关注图像中的同一个物体,第一特征信息中不同的token可能关注图像中不同的物体,同一物体所对应的子特征信息的值的分布相似,不同物体所对应的子特征信息的分布不同,也即当机器学习模型是用于执行目标检测任务时,该机器学习模型的输入数据中大概率是包括多个语义不同的区域的,“采用不同量化参数”对不同的子特征信息进行量化与“目标检测任务”这一具体的任务之间的适配度更高。
在一种可能实现方式中,在利用第一机器学习模型对输入数据进行数据处理的过程中能够得到输入数据的多个特征信息,多个特征信息包括第二特征信息,第二特征信息包括不同尺度的特征图,模型的量化方法还包括对第二特征信息进行量化。其中,电子设备对第二特征信息进行量化包括:电子设备将第二特征信息分为多个组,多个组中每个组包括至少一个特征图,多个组中不同的组包括的特征图的尺度不同;对不同的组采用不同的量化参数进行量化。示例性地,训练样本的多个不同尺度的特征图的尺寸相同,“不同尺度的特征图”指的是训练样本在不同粒度上的特征信息,粒度更小(也可以称为更密集)的特征图中可以看到训练样本更多的细节,粒度更大(也可以称为更稀疏)的特征图中可以看到训练样本整体的信息。
本实现方式中,若在利用机器学习模型对训练样本进行数据处理的过程中得到了第二特征信息,由于第二特征信息包括多个尺度不同的特征图,基于每个特征图的尺度对第二特征信息进行分组,对不同的组采用不同的量化参数进行量化,也即对不同尺度的特征图采用不同的量化参数进行量化,有利于保留不同尺度的特征图所携带的信息,以避免降低机器学习模型输出的预测结果的准确率。
在一种可能实现方式中,输入数据为图像,第一机器学习模型的任务为如下任一项:对图像进行目标检测、对图像进行语义分割或者对图像进行超分处理。本实现方式中,提供了多种应用场景,有利于提高本方案的实现灵活性。
在一种可能实现方式中,利用第一机器学习模型进行数据处理的过程在第一机器学习模型的推理阶段中,或者,利用第一机器学习模型进行数据处理的过程在第一机器学习模型的训练阶段中。本实现方式中,无论在机器学习模型的训练阶段还是推理阶段,只要利用机器学习模型对输入数据进行数据处理时,均可以采用本申请提供的模型的量化方法,也即不仅能降低机器学习模型在执行设备上进行数据处理时的计算量,还能降低机器学习模型在训练设备上进行数据处理时的计算量。
第二方面,本申请实施例提供一种模型的量化方法,可用于人工智能领域中对模型进行压缩,方法应用于利用机器学习模型进行数据处理的过程中,在利用机器学习模型对输入数据进行数据处理的过程中能够得到输入数据的多个特征信息,多个特征信息包括第一特征信息,模型的量化方法包括对第一特征信息进行量化;其中,电子设备对第一特征信息进行量化包括:电子设备将第一特征信息分为至少两个子特征信息,至少两个子特征信息包括第一子特征信息和第二子特征信息;电子设备采用第一量化参数对第一子特征信息进行量化,并采用第二量化参数对第一子特征信息进行量化,第一量化参数和第二量化参数不同。
在一种可能实现方式中,模型的量化方法还包括对机器学习模型中的至少一个激活层生成的激活值进行量化,至少一个激活层包括第一激活层;其中,对第一激活层生成的第一激活值进行量化包括:采用第一量化步长对第一激活值中的第一子激活值进行量化;采用第二量化步长对第二激活值中的第二子激活值进行量化,其中,机器学习模型包括多个通道,多个通道包括第一通道和第二通道,第一子激活值与第一通道对应,第二子激活值与第二通道对应,第一量化步长和第二量化步长不同。
在一种可能实现方式中,第一子激活值的分布和第二子激活值的分布不同。
在一种可能实现方式中,上述机器学习模型为Transformer模型。
在一种可能实现方式中,输入数据为图像,机器学习模型的任务为对图像进行目标检测。
在一种可能实现方式中,在利用机器学习模型对输入数据进行数据处理的过程中能够得到输入数据的多个特征信息,多个特征信息包括第二特征信息,第二特征信息包括不同尺度的特征图,模型的量化方法还包括对第二特征信息进行量化;其中,对第二特征信息进行量化包括:将第二特征信息分为多个组,多个组中每个组包括至少一个特征图,多个组中不同的组包括的特征图的尺度不同;对不同的组采用不同的量化参数进行量化。
在一种可能实现方式中,输入数据为图像,机器学习模型的任务为如下任一项:对图像进行目标检测、对图像进行语义分割或者对图像进行超分处理。
在一种可能实现方式中,利用机器学习模型进行数据处理的过程在机器学习模型的推理阶段中,或者,利用机器学习模型进行数据处理的过程在机器学习模型的训练阶段中。
本申请第二方面中,第二方面的各个可能实现方式中的步骤的具体实现方式、名词的含义以及所带来的有益效果,均可以参阅第一方面,此处不再赘述。
第三方面,本申请实施例提供一种模型的量化装置,可用于人工智能领域中对模型进行压缩,模型的量化装置应用于利用机器学习模型进行数据处理的过程中,模型的量化装置用于对机器学习模型中的至少一个激活层生成的激活值进行量化,至少一个激活层包括第一激活层;其中,模型的量化装置包括:
量化模块,用于采用第一量化步长对第一激活值中的第一子激活值进行量化;量化模块,还用于采用第二量化步长对第一激活值中的第二子激活值进行量化,其中,机器学习模型包括多个通道,多个通道包括第一通道和第二通道,第一子激活值与第一通道对应,第二子激活值与第二通道对应,第一量化步长和第二量化步长不同。
本申请第三方面中,模型的量化装置还可以用于执行第一方面以及第一方面的各个可能实现方式中电子设备执行的步骤,第三方面的各个可能实现方式中的步骤的具体实现方式、名词的含义以及所带来的有益效果,均可以参阅第一方面,此处不再赘述。
第四方面,本申请实施例提供一种模型的量化装置,可用于人工智能领域中对模型进行压缩,模型的量化装置应用于利用机器学习模型进行数据处理的过程中,在利用机器学习模型对输入数据进行数据处理的过程中能够得到输入数据的多个特征信息,多个特征信息包括第一特征信息,模型的量化装置用于对第一特征信息进行量化;其中,模型的量化装置包括:分组模块,用于将第一特征信息分为至少两个子特征信息,至少两个子特征信息包括第一子特征信息和第二子特征信息;量化模块,用于采用第一量化参数对第一子特征信息进行量化;量化模块,还用于采用第二量化参数对第一子特征信息进行量化,第一量化参数和第二量化参数不同。
本申请第四方面中,模型的量化装置还可以用于执行第一方面以及第一方面的各个可能实现方式中电子设备执行的步骤,第四方面的各个可能实现方式中的步骤的具体实现方式、名词的含义以及所带来的有益效果,均可以参阅第一方面,此处不再赘述。
第五方面,本申请实施例提供了一种计算机程序产品,计算机程序产品包括程序,当该程序在计算机上运行时,使得计算机执行上述第一方面所述的模型的量化方法。
第六方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面所述的模型的量化方法。
第七方面,本申请实施例提供了一种电子设备,包括处理器和存储器,处理器与存储器耦合,存储器,用于存储程序;处理器,用于执行存储器中的程序,使得电子设备执行上述第一方面的模型的量化方法。
第八方面,本申请提供了一种芯片***,该芯片***包括处理器,用于支持终端设备或通信设备实现上述方面中所涉及的功能,例如,发送或处理上述方法中所涉及的数据和/或信息。在一种可能的设计中,所述芯片***还包括存储器,所述存储器,用于保存终端设备或通信设备必要的程序指令和数据。该芯片***,可以由芯片构成,也可以包括芯片和其他分立器件。
附图说明
图1为本申请实施例提供的人工智能主体框架的一种结构示意图;
图2为本申请实施例提供的模型的量化***的一种***架构图;
图3为本申请实施例提供的对第一激活层生成的第一激活值进行量化的一种流程示意图;
图4为本申请实施例提供的模型的量化方法的一种示意图;
图5为本申请实施例提供的模型的量化方法的一种流程示意图;
图6为本申请实施例提供的对第一特征信息进行量化的一种示意图;
图7为本申请实施例提供的不同尺度的图像的一种示意图;
图8为本申请实施例提供的模型的量化方法的一种示意图;
图9为本申请实施例提供的模型的量化方法的一种流程示意图;
图10为本申请实施例提供的模型的量化装置的一种结构示意图;
图11为本申请实施例提供的模型的量化装置的另一种结构示意图;
图12为本申请实施例提供的模型的量化装置的另一种结构示意图;
图13为本申请实施例提供的执行设备的一种结构示意图;
图14为本申请实施例提供的训练设备的一种结构示意图;
图15为本申请实施例提供的芯片的一种结构示意图。
具体实施方式
下面结合附图,对本申请的实施例进行描述。本领域普通技术人员可知,随着技术的发展和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本申请的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、***、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。
首先对人工智能***总体工作流程进行描述,请参见图1,图1示出的为人工智能主体框架的一种结构示意图,下面从“智能信息链”(水平轴)和“IT价值链”(垂直轴)两个维度对上述人工智能主题框架进行阐述。其中,“智能信息链”反映从数据的获取到处理的一列过程。举例来说,可以是智能信息感知、智能信息表示与形成、智能推理、智能决策、智能执行与输出的一般过程。在这个过程中,数据经历了“数据—信息—知识—智慧”的凝练过程。“IT价值链”从人智能的底层基础设施、信息(提供和处理技术实现)到***的产业生态过程,反映人工智能为信息技术产业带来的价值。
(1)基础设施
基础设施为人工智能***提供计算能力支持,实现与外部世界的沟通,并通过基础平台实现支撑。通过传感器与外部沟通;计算能力由智能芯片提供,该智能芯片具体可以采用中央处理器(central processing unit,CPU)、嵌入式神经网络处理器(neural-network processing unit,NPU)、图形处理器(graphics processing unit,GPU)、专用集成电路(application specific integrated circuit,ASIC)或现场可编程门阵列(fieldprogrammable gate array,FPGA)等硬件加速芯片;基础平台包括分布式计算框架及网络等相关的平台保障和支持,可以包括云存储和计算、互联互通网络等。举例来说,传感器和外部沟通获取数据,这些数据提供给基础平台提供的分布式计算***中的智能芯片进行计算。
(2)数据
基础设施的上一层的数据用于表示人工智能领域的数据来源。数据涉及到图形、图像、语音、文本,还涉及到传统设备的物联网数据,包括已有***的业务数据以及力、位移、液位、温度、湿度等感知数据。
(3)数据处理
数据处理通常包括数据训练,机器学习,深度学习,搜索,推理,决策等方式。
其中,机器学习和深度学习可以对数据进行符号化和形式化的智能信息建模、抽取、预处理、训练等。
推理是指在计算机或智能***中,模拟人类的智能推理方式,依据推理控制策略,利用形式化的信息进行机器思维和求解问题的过程,典型的功能是搜索与匹配。
决策是指智能信息经过推理后进行决策的过程,通常提供分类、排序、预测等功能。
(4)通用能力
对数据经过上面提到的数据处理后,进一步基于数据处理的结果可以形成一些通用的能力,比如可以是算法或者一个通用***,例如,翻译,文本的分析,计算机视觉的处理,语音识别,图像的识别等等。
(5)智能产品及行业应用
智能产品及行业应用指人工智能***在各领域的产品和应用,是对人工智能整体解决方案的封装,将智能信息决策产品化、实现落地应用,其应用领域主要包括:智能终端、智能制造、智能交通、智能家居、智能医疗、智能安防、自动驾驶、智慧城市等。
本申请提供的模型的量化方法可以应用于人工智能技术的各种应用领域中,具体用于对各个应用领域中的机器学习模型进行压缩;本申请采用量化(Quantization)的方式对机器学习模型进行压缩。模型量化是人工智能的模型加速领域的一个术语,指的是将机器学习模型中连续的值(例如激活值、权重参数或其他信息等)进行离散化。
示例性地,本申请提供的模型的量化方法可以应用于视觉上的感知任务、语音语义相关的自然语言合成任务、音视频处理任务等需要神经网络实现的领域中,以下对本申请实施例的多个应用场景进行举例。
应用场景1:目标检测
例如,在自动驾驶领域中,自动驾驶车辆可以通过传感器采集自车周围环境所对应的点云数据,并基于采集到的点云数据通过机器学习模型进行目标检测,得到与点云数据对应的预测结果,该预测结果用于指示自车周围环境中至少物体的位置,自动驾驶车辆可以根据前述预测结果规划自车的行驶路径。
需要说明的是,上述车辆可以为轿车、卡车、摩托车、公共汽车、船、飞机、直升飞机、割草机、娱乐车、游乐场车辆、施工设备、电车、高尔夫球车或火车等,本申请实施例不做特别的限定。
又例如,在智能监控领域中,公共场所与交通道路上会安装很多摄像头,少数智能摄像头在采集到周围环境的图像信息之后,能够对采集到的图像执行目标检测的任务。
又例如,在智能家居领域中,移动机器人(例如扫地机器人、家教机器人或其他可移动的机器人等)可以采集机器人周围环境所对应的三维图像,并基于采集到的三维图像通过机器学习模型进行目标检测,得到与前述三维图像对应的预测结果,该预测结果用于指示移动机器人周围的至少一个障碍物的位置。
由于自动驾驶车辆、智能摄像头、移动机器人或其他类型终端设备的算力是有限的,利用本申请提供的模型的量化方法可以对上述机器学习模型进行压缩,从而保证一些较大的模型也能在终端设备上较好地执行推理任务。
应用场景2:对图像进行语义分割
语义分割(semantic segmentation)指的是采用机器学习模型对图像中的所有像素点进行分类,则可以利用本申请提供的模型的量化方法对前述机器学习模型进行压缩。
应用场景3:对图像进行超分处理
例如,在智能监控领域、智能医疗领域、视频编码通信等场景中,存在采用机器学习模型,根据观测到的低分辨率图像重建出高分辨率图像的需求,则可以利用本申请提供的模型的量化方法对前述机器学习模型进行压缩。
应用场景4:图像分类
终端设备(例如手机、平板或笔记本电脑等)在获取待分类图像后,可以采用机器学习模型获取待分类图像中的物体的类别,然后可根据待分类图像中物体的类别对待分类图像进行分类,则可以利用本申请提供的模型的量化方法对前述机器学习模型进行压缩。
应用场景5:自然语言处理(natural language processing,NLP)
自然语言处理就是对人类语言的处理,自然语言处理是采用机器学习模型对文本数据进行***化分析、理解与信息提取的过程,则可以利用本申请提供的模型的量化方法对前述机器学习模型进行压缩。通过使用前述机器学习模型,我们可以管理非常大块的文本数据,或者执行大量的自动化任务,并且解决各式各样的问题,如自动摘要(automaticsummarization),机器翻译(machine translation,MT),命名实体识别(named entityrecognition,NER),关系提取(relation extraction,RE),信息抽取(informationextraction,IE),情感分析,语音识别(speech recognition),问答***(questionanswering)以及主题分割等等。
示例性地,自然语言处理任务可以有以下几类。
序列标注:句子中每一个单词要求模型根据上下文给出一个分类类别。如中文分词、词性标注、命名实体识别、语义角色标注。
分类任务:整个句子输出一个分类值,如文本分类。
句子关系推断:给定两个句子,判断这两个句子是否具备某种名义关系。例如问答***、语义改写、自然语言推断。
生成式任务:输出一段文本,生成另一段文本。如机器翻译、文本摘要、写诗造句、看图说话。
需要说明的是,上述对本申请的各种应用场景的举例仅为方便理解本方案,不用于限定本方案。
在对本申请提供的模型的量化方法的具体实现方式进行描述之前,请先参阅图2,图2为本申请实施例提供的模型的量化***的一种***架构图,在图2中,模型的量化***200包括训练设备210、数据库220、执行设备230、数据存储***240和客户设备250,执行设备230中包括计算模块231。
其中,数据库220中存储有训练数据集合,在第一机器学习模型201的训练阶段,训练设备210生成第一机器学习模型201,并利用训练数据集合对第一机器学习模型201进行迭代训练,得到训练后的第一机器学习模型201。第一机器学习模型201可以具体表现为神经网络,也可以表现为非神经网络的模型。
训练设备210得到的第一机器学***板、笔记本电脑、VR设备、车辆或监控***等等。在第一机器学习模型201的推理阶段,执行设备230可以将待处理数据输入第一机器学习模型201中,得到第一机器学习模型201输出的与该待处理数据对应的预测结果。
其中,执行设备230可以调用数据存储***240中的数据、代码等,也可以将数据、指令等存入数据存储***240中。数据存储***240可以置于执行设备230中,也可以为数据存储***240相对执行设备230是外部存储器。
在第一机器学习模型201的训练阶段和推理阶段均可以采用本申请提供的模型的量化方法,也即训练设备210和执行设备230均可以为本申请提供的模型的量化方法的执行主体。前述方法可以应用于利用机器学习模型进行数据处理的过程中,该模型的量化方法包括对机器学习模型中的至少一个激活层生成的激活值进行量化,至少一个激活层包括第一激活层,第一激活层为前述至少一个激活层中的任意一个。请参阅图3,图3为本申请实施例提供的对第一激活层生成的第一激活值进行量化的一种流程示意图。301、电子设备采用第一量化步长对第一激活值中的第一子激活值进行量化。302、电子设备采用第二量化步长对第一激活值中的第二子激活值进行量化;其中,机器学习模型包括多个通道(channel),多个通道包括第一通道和第二通道,第一子激活值与第一通道对应,第二子激活值与第二通道对应,第一量化步长和第二量化步长不同。执行步骤301和302的电子设备可以为训练设备210,也可以为执行设备230。
为了更直观地理解本方案,请参阅图4,图4为本申请实施例提供的模型的量化方法的一种示意图。如图4所示,电子设备在获取到第一激活值之后,可以将第一激活值分为第一通道所对应的第一子激活值以及第二通道所对应的第二子激活值。电子设备采用第一量化步长对第一子激活值进行量化,得到量化后的第一子激活值;并采用第二量化步长对第二子激活值进行量化,得到量化后的第二子激活值;量化后的第一子激活值和量化后的第二子激活值构成量化后的第一激活值,应理解,图4中的示例仅为方便理解本方案,不用于限定本方案。
本申请实施例中,提供了对机器学习模型中的激活层生成的激活值进行量化的方法,可以降低机器学习模型的计算复杂度,且能够降低利用机器学习模型进行数据处理的过程时所占用的存储空间;此外,由于多个通道中可能会存在子激活值分布异常的通道,例如分布异常的通道所对应的子激活值稳定的超大或超小,若采用相同的量化步长对每个通道所对应的子激活值进行量化,则前述量化步长的取值就需要较大,则与分布正常的通道所对应的量化后的子激活值的精度就会大大降低,针对不同通道所对应的子激活值的分布不同的情况,本方案中采用不同的量化步长对不同通道所对应的子激活值进行量化,既有利于保留分布异常的通道所对应的量化后的子激活值的异常性,又有利于避免分布正常的通道所对应的量化后的子激活值的精度的损失。
本申请的一些实施例中,请参阅图2,执行设备230和客户设备250可以为分别独立的设备,执行设备230配置有输入/输出(I/O)接口,与客户设备250进行数据交互,“用户”可以通过客户设备250输入待处理数据,客户设备250通过I/O接口向执行设备230发送待处理数据,执行设备230在通过计算模块231中的第一机器学习模型/规则201生成与待处理数据对应的预测决策信息之后,可以通过I/O接口将前述预测决策信息返回给客户设备250,提供给用户。
值得注意的,图2仅是本发明实施例提供的两种模型的量化***的架构示意图,图中所示设备、器件、模块等之间的位置关系不构成任何限制。例如,在本申请的另一些实施例中,执行设备230可以配置于客户设备250中,作为示例,例如当客户设备为手机或平板时,执行设备230可以为手机或平板的主处理器(Host CPU)中用于进行阵列图像处理的模块,执行设备230也可以为手机或平板中的图形处理器(graphics processing unit,GPU)或者神经网络处理器(NPU),GPU或NPU作为协处理器挂载到主处理器上,由主处理器分配任务。
结合上述描述,下面开始对本申请实施例提供的机器学习模型的训练阶段和推理阶段的具体实现流程进行描述。
一、训练阶段
本申请实施例中,训练阶段描述的是训练设备210利用数据库220中的训练数据对第一机器学习模型201进行训练的过程,具体的,请参阅图5,图5为本申请实施例提供的模型的量化方法的一种流程示意图,本申请实施例提供的模型的量化方法可以包括:
501、训练设备将训练样本输入第一机器学习模型,其中,利用第一机器学习模型对训练样本进行数据处理的过程中能够得到训练样本的多个特征信息和第一机器学习模型中的激活层生成的激活值。
本申请实施例中,训练设备中可以存储有训练数据集合,训练数据集合可以包括多个训练样本以及每个训练样本所对应的期望结果;其中,“训练样本”和“训练样本所对应的期望结果”的具体表现形式需要结合实际应用场景确定;示例性地,第一机器学习模型所执行的任务可以为如下任一种:目标检测、对图像进行语义分割、对图像进行超分处理、图像分类、自然语言处理或其他类型的任务等;对于“自然语言处理”类的任务的描述可以参阅上述描述,此处不再一一列举。
例如,若第一机器学习模型的任务是对图像进行目标检测,则“训练样本”可以表现为图像,“训练样本所对应的期望结果”可以表现为图像中至少一个物体的正确的位置信息。又例如,若第一机器学习模型的任务是对图像进行语义分割,则“训练样本”可以表现为图像,“训练样本所对应的期望结果”可以表现为图像中每个像素的正确类别,正确类别可以为前景或背景等等,应理解,此处举例仅为方便理解本方案,不用于限定本方案。
训练设备可以将训练样本(也即训练阶段中“输入数据”的一个别称)输入第一机器学习模型,以通过第一机器学习模型对训练样本进行数据处理,进而得到该训练样本所对应的期望结果;“训练样本所对应的预测结果”和“训练样本所对应的期望结果”的具体表现形式类似,此处不做赘述。
其中,利用第一机器学习模型对训练样本进行数据处理的过程包括利用第一机器学习模型对训练样本进行特征提取的过程,则利用第一机器学习模型对训练样本进行数据处理的过程中能够得到训练样本的多个特征信息和机器学习模型中的激活层生成的激活值。
示例性地,第一机器学习模型可以表现为变形金刚(Transformer)模型、卷积神经网络(convolutional neural networks,CNN)、循环神经网络或其他类型的神经网络等等,此处不做限定。
502、训练设备获取第一特征信息,并将第一特征信息分为M个子特征信息,第一特征信息包含于训练样本的多个特征信息,M为大于或等于2的整数。
本申请实施例中,步骤502和步骤503为可选步骤,在训练设备对训练样本进行数据处理的过程中,能够得到训练样本的多个特征信息,则训练设备可以在通过第一机器学习模型对训练样本进行特征提取的过程中,获取训练样本的第一特征信息,第一特征信息包含于上述训练样本的多个特征信息。训练设备将第一特征信息分为M个子特征信息,M为大于或等于2的整数。
可选地,若一个第一特征信息包括多个特征图(feature map),则第一特征信息中不同的特征图的尺度相同;或者,一个第一特征信息只包括一个特征图(feature map)。
503、训练设备采用第一量化参数对第一子特征信息进行量化,采用第二量化参数对第二子特征信息进行量化,M个子特征信息包括第一子特征信息和第二子特征信息,第一量化参数和第二量化参数不同。
本申请实施例中,训练设备将第一特征信息分为M个子特征信息之后,可以采用不同的量化参数对不同的子特征信息进行量化。也即训练设备中可以存储有与M个子特征信息一一对应的M组量化参数,在对M个子特征信息中任意一个子特征信息(为方便描述,后续称为“目标子特征信息”)进行量化时,可以从M组量化参数中获取与目标子特征信息对应的目标量化参数,并采用目标量化参数对目标子特征信息进行量化,得到量化后的目标子特征信息。
示例性地,M个子特征信息包括第一子特征信息和第二子特征信息,则训练设备采用第一量化参数对第一子特征信息进行量化,采用第二量化参数对第二子特征信息进行量化,第一量化参数和第二量化参数不同。
示例性地,对模型进行量化时所采用的量化参数可以包括量化步长、量化偏置或其他类型的量化参数等,此处不做穷举。量化步长和量化偏置中的任一项或多项可以设置为可以学习的参数,也即在第一机器学习模型的训练过程中,不断更新量化步长和/或量化偏置;或者,量化步长和量化偏置均可以被设置为超参数。
为了进一步理解本方案,首先介绍一下模型量化的过程,示例性地,采用可微量化参数(learned step size quantization+,LSQ+)作为量化算法时所采用的公式如下:
其中,qs(X)代表对X进行量化,代表对X进行量化后得到的量化后的值,s代表量化参数中的量化步长,β代表量化参数中的量化偏置,「**」代表最近取整操作,clamp(*,tn,tp)代表一个钳制操作,将/>的取值的最大值限制在tp之下,将/>的取值的最小值限制在tn之上,需要说明的是,上述示例仅为方便理解本方案的一个示例,也可以采用其他量化算法,此处举例不用于限定本方案。
在一种实现方式中,“第一量化参数和第二量化参数不同”可以代表对第一子特征信息进行量化时采用的量化步长1与对第二子特征信息进行量化时采用的量化步长2不同,也即M个子特征信息中不同的子特征信息采用相同的量化偏置。
在另一种实现方式中,“第一量化参数和第二量化参数不同”可以代表对第一子特征信息进行量化时采用的量化步长1以及量化偏置1,与,对第二子特征信息进行量化时采用的量化步长2以及量化偏置2不同。
本申请实施例中,在一种实现方式中,训练设备可以采用步骤502和503中的方式,对任意一个第一特征信息进行量化,得到量化后的第一特征信息。
在另一种实现方式中,可以为在利用第一特征信息进行矩阵乘法之前,采用步骤502和503中的方式对前述第一特征信息进行量化,并采用量化后的第一特征信息进行矩阵乘法。示例性地,第一机器学习模型的特征处理模块中采用Transformer模块,采用Transformer模块来对训练样本进行特征提取的过程中,会采用注意力机制;则可以对基于注意力机制进行数据处理过程中使用到的查询(query)矩阵、关键字(key)矩阵以及价值(value)矩阵均可以采用步骤502和503中的方式进行量化,并采用量化后的query矩阵、key矩阵以及value矩阵进行数据处理;也即前述query矩阵、key矩阵以及value矩阵均为第一特征信息的一个示例。
为了更直观地理解本方案,请参阅图6,图6为本申请实施例提供的对第一特征信息进行量化的一种示意图。图6中以第一特征信息包括与三个通道对应的三个特征图为例,将同一特征图中不同区域采用不同的量化步长进行量化,如图6所示,将每个特征图分为三组子特征信息,对每个特征图中的上部区域(也即图6中的上面两行)的子特征信息采用量化步长1进行量化,对每个特征图的中间区域(也即图6中的中间两行)的子特征信息采用量化步长2进行量化,对每个特征图的下部区域(也即图6中的下面两行)的子特征信息采用量化步长3进行量化,应理解,图6中的示例仅为方便理解本方案,不用于限定本方案。
本申请实施例中,由于同一个输入数据中可能包括语义不同的部分,例如同一个图像中可能会包括多个语义不同的区域,又例如同一个文本中可能会包括多个语义不同的词语等,则同一输入数据中语义不同的部分所对应的子特征信息的值的分布具有较大差异,语义相同的部分所对应的子特征信息的值的分布具有较小差异,本方案中将第一特征信息分为至少两个子特征信息,以采用不同的量化参数对不同的子特征信息进行量化,有利于提高第一特征信息中的值与采用的量化参数之间的匹配度,采用本方案对第一特征信息执行了量化操作之后,既保留了语义相同的部分所对应的子特征信息的分布特性,又保留了语义不同的部分所对应的子特征信息的差异性,有利于避免降低第一机器学习模型输出的预测结果的精准度。
由于当利用机器学习模型对图像执行目标检测任务时,图像中大概率包括多个物体,通常由第一特征信息中的几个令牌(token)来关注图像中的同一个物体,第一特征信息中不同的token可能关注图像中不同的物体,同一物体所对应的子特征信息的值的分布相似,不同物体所对应的子特征信息的分布不同,也即当机器学习模型是用于执行目标检测任务时,该机器学习模型的输入数据中大概率是包括多个语义不同的区域的,“采用不同量化参数”对不同的子特征信息进行量化与“目标检测任务”这一具体的任务之间的适配度更高。
504、训练设备采用第一量化步长对第一激活值中的第一子激活值进行量化,采用第二量化步长对第一激活值中的第二子激活值进行量化,第一机器学习模型包括多个通道,多个通道包括第一通道和第二通道,第一子激活值与第一通道对应,第二子激活值与第二通道对应,第一量化步长和第二量化步长不同。
本申请实施例中,步骤504为可选步骤,由于第一机器学习模型中可以包括一个或多个激活层,则训练设备在利用第一机器学习模型对训练样本进行数据处理的过程中,可以通过第一机器学习模型中的每个激活层生成与所有通道对应的激活值。
示例性地,第一激活值可以为任意一个激活层生成的激活值,也即对第一机器学习模型中每个激活层生成的激活值均采用步骤504的方式进行量化;或者,仅对第一机器学习模型中部分预设的激活层生成的激活值采用步骤504的方式进行量化等,具体对第一机器学习模型中哪些激活层采用步骤504中的方式进行量化可以根据实际情况灵活确定,本申请实施例中不做限定。
训练设备在获取到第一激活层生成的第一激活值之后,可以将第一激活值分为与N种通道对应的N个组,N为大于或等于2的整数;可选地,N种通道中不同通道所对应的子激活值的分布不同,也即N个组中不同组包括的子激活值的分布不同。训练设备采用不同的量化步长对N个组中不同组的值进行量化。
可选地,N个组中不同组的值所采用的量化偏置可以相同或不同。
示例性地,N个组中包括第一子激活值和第二子激活值,训练设备可以从第一激活值中获取第一子激活值和第二子激活值,采用第一量化步长对第一激活值中的第一子激活值进行量化,采用第二量化步长对第一激活值中的第二子激活值进行量化。
其中,第一机器学习模型包括多个通道,多个通道包括第一通道和第二通道,第一子激活值与第一通道对应,第二子激活值与第二通道对应,第一量化步长和第二量化步长不同。可选地,第一子激活值的分布与第二子激活值的分布不同。
此处以第一通道所对应的第一子激活值分布异常,第二通道所对应的第二子激活值分布正常为例,示例性地,第一通道所对应的所有第一子激活值中超过第一比例的第一激活值稳定的超大或超小,则第一通道也可以称之为异常通道;第二通道所对应的所有第二子激活值中超过第二比例的第二子激活值均处于正常的取值范围内,则第二通道也可以称之为正常通道;第一比例和第二比例的取值可以相同或不同。例如,第一比例和第二比例的取值均可以为百分之八十、百分之八十五、百分之九十或者也可以为其他比例值等等,又或者第一比例和第二比例的取值可以不同等,此处均不做限定。
例如,第二通道所对应的所有第二子激活值中百分之九十以上的第一子激活值位于20至30之间;第一通道所对应的所有第一子激活值中百分之九十以上的第一子激活值大于或等于50。
又例如,第二通道所对应的所有第二子激活值中百分之八十五以上的第一子激活值位于10至20之间,第一通道所对应的所有第一子激活值中百分之八十五以上的第一子激活值小于或等于1。
又例如,第二通道所对应的所有第二子激活值中百分之九十以上的第一子激活值的取值位于10至20之间,第一通道所对应的所有第一子激活值中百分之九十以上的第一子激活值要么大于或等于60,要么小于或等于1。需要说明的是,此处举例仅为方便理解“第一通道所对应的第一子激活值的分布”与“第二通道所对应的第二子激活值的分布”不同这一概念,不用于限定本方案。
可选地,训练设备可以通过向第一机器学习模型中输入少量的训练样本,统计每次输入一个训练样本时不同通道所对应的子激活值的分布,以确定第一机器学习模型中哪些通道为分布异常的通道,哪些通道为分布正常的通道,进而标记第一机器学习模型中哪些通道为第一通道,哪些通道为第二通道。
示例性地,在一种实现方式中,训练设备可以将一个训练样本输入第一机器学习模型,得到每个通道所对应的所有子激活值。针对第一机器学习模型中的任意一个通道(为方便描述,后续称为“目标通道”),训练设备确定目标通道所对应的所有子激活值中大于第一数值的子激活值的第一数量,确定目标通道所对应的所有子激活值的第二数量,若第一数量与第二数量之间的比值大于或等于第一比值,则确定目标通道为分布异常的通道;若第一数量与第二数量之间的比值小于第一比值,则确定目标通道为分布正常的通道。训练设备对每个通道执行前述操作,以确定第一机器学习模型中哪些是分布正常的通道,哪些是分布异常的通道。
在另一种实现方式中,训练设备可以获取T个训练样本,将T个训练样本中的一个训练样本输入第一机器学习模型之后,得到每个通道所对应的所有子激活值。训练设备确定目标通道所对应的第一数量和第二数量,若第一数量与第二数量之间的比值大于或等于第一比值,则将目标通道被确定为分布异常的通道的次数加一;若第一数量与第二数量之间的比值小于第一比值,则不增加。训练设备将T个训练样本均输入第一机器学习模型之后,能够得到目标通道被确定为分布异常的通道的总次数。若目标通道被确定为分布异常的通道的总次数与T之间的比值是否大于或等于第二比值,则确定目标通道为分布异常的通道;若目标通道被确定为分布异常的通道的总次数与T之间的比值小于第二比值,则确定目标通道为分布正常的通道。训练设备对每个通道执行前述操作,以确定第一机器学习模型中哪些是分布正常的通道,哪些是分布异常的通道。
需要说明的是,训练设备也可以采用其他方式来确定第一机器学习模型中哪些是分布异常的通道,哪些是分布正常的通道,此处举例仅为证明本方案的可实现性,不用于限定本方案。
为进一步理解本方案,此处以第一子激活值为分布正常的通道所对应的子激活值,第二子激活值为分布异常的通道所对应的子激活值为例,公开了从第一激活值中获取第一子激活值和第二子激活值的公式的一个示例:
其中,代表包括第一子激活值,/>代表第二子激活值,Xc代表第一激活值中的任意一个子激活值,outlier(c)代表第一激活值中每个子激活值的标识类别,当outlier(c)取0时代表该子激活值是与分布正常的通道对应的子激活值,当outlier(c)取1时代表该子激活值是与分布异常的通道对应的子激活值,通过上述公式,可以将第一激活值拆分为两部分,一部分只包括多个第一子激活值,另一部分只包括多个第二子激活值,应理解,此处举例仅为方便理解本方案,不用于限定本方案。
本申请实施例中,由于多个通道中可能会存在子激活值分布异常的通道,例如分布异常的通道所对应的子激活值稳定的超大或超小,若采用相同的量化步长对每个通道所对应的子激活值进行量化,则前述量化步长的取值就需要较大,则与分布正常的通道所对应的量化后的子激活值的精度就会大大降低,针对不同通道所对应的子激活值的分布不同的情况,本方案中采用不同的量化步长对不同通道所对应的子激活值进行量化,既有利于保留分布异常的通道所对应的量化后的子激活值的异常性,又有利于避免分布正常的通道所对应的量化后的子激活值的精度的损失。
技术人员在研究中发现,当第一机器学习模型选用Transformer模型时,分布异常的通道所对应的子激活值和分布正常的通道所对应的子激活值之间的差异更明显,“采用第一步长对第一通道所对应的子激活值进行量化,并采用第二步长对第二通道所对应的子激活值进行量化”这一方案与Transformer模型的适配度更高,能够在降低Transformer模型的计算量,减少Transformer模型中的参数量的同时,避免Transformer模型输出的预测结果的精度的降低。
可选地,训练设备可以对第一量化步长和第二量化步长做线性约束,使得第一量化步长和第二量化步长的取值更具有硬件友好性。为更直观地理解本方案,如下以第一量化步长为分布正常的通道所对应的子激活值采用的量化步长,第一量化步长为分布异常的通道所对应的子激活值采用的量化步长为例,公开了第一量化步长和第二量化步长之间的约束关系的一个示例:
其中,soutlier代表第一量化步长,snormal代表第二量化步长,max(Xoutlier)代表所有分布异常的通道所对应的所有第二子激活值中的最大值,max(Xnormal)代表所有分布正常的通道所对应的所有第一子激活值中的最大值,应理解,此处举例仅为方便理解本方案,不用于限定本方案。
505、训练设备将第二特征信息分为多个组,多个组中每个组包括至少一个特征图,多个组中不同的组包括的特征图的尺度不同,其中,第一特征信息包含于训练样本的多个特征信息,第二特征信息包括不同尺度的特征图。
本申请实施例中,步骤505和506为可选步骤,若训练设备在对训练样本进行数据处理的过程中能够得到训练样本的第二特征信息,训练样本的一个第二特征信息中包括多个不同尺度的特征图,也即训练设备在对训练样本进行数据处理的过程得到的训练样本的多个特征信息中包括第二特征信息。训练设备可以将第二特征信息分为多个组,多个组中每个组包括至少一个特征图,多个组中不同的组包括的特征图的尺度不同。
示例性地,当第一机器学习模型的任务为如下任一项时,在对训练样本的进行数据处理的过程中能够得到训练样本的第二特征信息:对图像进行目标检测、对图像进行语义分割、对图像进行超分处理或者其他类型的图像处理任务。本申请实施例中,提供了多种应用场景,有利于提高本方案的实现灵活性。
需要说明的是,第一特征信息和第二特征信息为不同的特征信息,一个第一特征信息包括一个特征图,或者,一个第一特征信息中包括多个尺度相同的特征图;而一个第二特征信息包括多个尺度不同的特征图。
示例性地,训练样本的多个不同尺度的特征图的尺寸相同,“不同尺度的特征图”指的是训练样本在不同粒度上的特征信息,粒度更小(也可以称为更密集)的特征图中可以看到训练样本更多的细节,粒度更大(也可以称为更稀疏)的特征图中可以看到训练样本整体的信息。
为了更直观地理解本方案,请参阅图7,图7为本申请实施例提供的不同尺度的图像的一种示意图。图7包括左和右两个子示意图,图7的左子示意图和右子示意图的尺寸相同。在图7的左子示意图中,图像中有狗、草丛、树以及背景中的房子,在对图7的左子示图进行特征提取之后,得到的全局特征;在图7的右子示意图中,是从图7的左子示意图中提取的部分区域,将其放大至与图7的左子示意图尺寸一致,对图7的右子示意图进行特征提取得到的是局部区域的详细的特征信息;图7的左子示意图和右子示意图代表的就是不同尺度的图像,应理解,图7中的示例仅为方便理解本方案,不用于限定本方案。
506、训练设备对第二特征信息中不同的组采用不同的量化参数进行量化。
本申请实施例中,训练设备在将训练样本的一个第二特征信息分为多个组之后,可以对第二特征信息中不同的组采用不同的量化参数进行量化。
可选地,若训练样本的一个第二特征信息中包括L个尺度的特征图,则训练设备中可以将前述第二特征信息分为L个组,训练设备上存储与L个组一一对应的L组量化参数(也即与L个尺度一一对应的L组量化参数),从而对第二特征信息中不同的组采用不同的量化参数进行量化;“不同的量化参数”的含义可以参阅上述描述,此处不做赘述。
为进一步理解本方案,如下对第二特征信息进行量化时采用的公式进行举例:
qs(X1)=[qs1(X1);qs2(X2);qs3(X3);…;qsL(XL)]
其中,qs(X1)代表对一个第二特征信息X1进行量化,X1、X2、X3…XL代表第二特征信息X1包括的L个组,L个组中不同的组包括的特征图的尺度不同,qs1(X1)代表采用第一组量化参数对X1中的值进行量化,qs2(X2)代表采用第二组量化参数对X2中的值进行量化,qs3(X3)代表采用第三组量化参数对X3中的值进行量化,qsL(XL)代表采用第L组量化参数对XL中的值进行量化,也即采用不同的量化参数对L个组中不同的组进行量化,应理解,此处举例仅为方便理解本方案,不用于限定本方案。
示例性地,训练设备可以对训练样本的每个第二特征信息均采用步骤505和506中的方式进行量化;或者,训练设备也可以采用步骤505和506中的方式对训练样本的部分第二特征信息进行量化,具体对哪些第二特征信息采用步骤505和506的方式进行量化可以结合实际应用场景灵活确定,本申请实施例中不做限定。
本申请实施例中,若在利用机器学习模型对训练样本进行数据处理的过程中得到了第二特征信息,由于第二特征信息包括多个尺度不同的特征图,基于每个特征图的尺度对第二特征信息进行分组,对不同的组采用不同的量化参数进行量化,也即对不同尺度的特征图采用不同的量化参数进行量化,有利于保留不同尺度的特征图所携带的信息,以避免降低机器学习模型输出的预测结果的准确率。
需要说明的是,步骤502和503、步骤504以及步骤505和506均为可选步骤,若执行步骤502和503、步骤504和/或步骤505和506,本申请实施例中不限定步骤502和503、步骤504以及步骤505和506之间的执行顺序,也不限定步骤502和503、步骤504以及步骤505和506的执行次数,具体均可以结合实际情况灵活确定,此处不做限定。
为了更直观地理解本方案,请参阅图8,图8为本申请实施例提供的模型的量化方法的一种示意图。图8中以第一模型的任务是目标检测,第一模型包括特征提取模块(backbone)、特征处理模块(neck)以及探测头模块(head)为例,特征提取模块(backbone)以及特征处理模块(neck)中均存在基于注意力机制的transformer模块,该探测头模块(head)分别用来检测物体的类别和物体的位置。
如图8所示,在利用第一模型对训练样本进行数据处理的过程中,第一模型中的特征提取模块(backbone)、特征处理模块(neck)以及探测头模块(head)中均可以产生训练样本的第一特征信息,则可以采用步骤502和503中的方法对第一特征信息进行量化。特征提取模块(backbone)中的激活层和特征处理模块(neck)中的激活层均可以生成激活值,则可以采用步骤504中的方法对前述激活值进行量化,应理解,图8中的示例仅为方便理解本方案,不用于限定本方案。
507、训练设备获取第一机器学习模型输出的预测结果,根据与训练样本对应的期望结果、预测结果和损失函数,对第一机器学习模型进行训练。
本申请实施例中,训练设备在将训练样本输入第一机器学习模型,通过第一机器学习模型对训练样本进行数据处理之后,能够得到第一机器学习模型输出的预测结果,并根据与训练样本对应的期望结果和前述预测结果,生成损失函数的函数值,前述损失函数指示与训练样本对应的预测结果和期望结果之间的相似度。训练设备根据该损失函数的函数值,采用反向传播算法对第一机器学习模型中的权重参数以及步骤502至506中的一些量化参数进行更新,实现了对第一机器学习模型的一次训练。
其中,在训练第一机器学习模型的过程中,因为希望第一机器学习模型的输出尽可能的接近真正想要的值,所以可以通过比较第一机器学习模型输出的预测值和真正想要的期望值,再根据两者之间的差异情况来更新每一层神经网络的权重向量(当然,在第一次更新之前通常会有初始化的过程,即为第一机器学习模型中的各层预先配置参数),比如,如果模型的预测值高了,就调整权重向量让它预测低一些,不断地调整,直到第一机器学习模型能够预测出真正想要的目标值或与真正想要的目标值非常接近的值。因此,就需要预先定义“如何比较预测值和目标值之间的差异”,这便是损失函数(loss function)或目标函数(objective function),它们是用于衡量预测值和目标值的差异的重要方程。其中,以损失函数举例,损失函数的输出值(loss)越高表示差异越大,那么深度神经网络的训练就变成了尽可能缩小这个loss的过程。
可选地,训练设备还可以对第一机器学习模型中的权重参数进行量化,并在第一机器学习模型的下一轮训练过程中,采用量化后的权重参数。
训练设备重复执行步骤501至507直至满足该损失函数的收敛条件,以实现对第一机器学习模型的迭代训练,得到训练后的第一机器学习模型和多组量化参数;前述多组量化参数用于在第一机器学习模型的推理阶段,对第一机器学习模型生成的特征信息和/或激活值进行量化。
二、推理阶段
本申请实施例中,推理阶段描述的是执行设备230利用训练后的第一机器学习模型201对待处理数据进行数据处理,输出的与该待处理数据对应的预测结果的过程,具体的,请参阅图9,图9为本申请实施例提供的模型的量化方法的一种流程示意图,本申请实施例提供的模型的量化方法可以包括:
901、执行设备将待处理数据输入第一机器学习模型中,其中,利用第一机器学习模型对待处理数据进行数据处理的过程中能够得到待处理数据的多个特征信息和第一机器学习模型中的激活层生成的激活值。
902、执行设备获取第一特征信息,并将第一特征信息分为M个子特征信息,第一特征信息包含于待处理数据的多个特征信息,M为大于或等于2的整数。
903、执行设备采用第一量化参数对第一子特征信息进行量化,采用第二量化参数对第二子特征信息进行量化,M个子特征信息包括第一子特征信息和第二子特征信息,第一量化参数和第二量化参数不同。
904、执行设备采用第一量化步长对第一激活值中的第一子激活值进行量化,采用第二量化步长对第一激活值中的第二子激活值进行量化,第一机器学习模型包括多个通道,多个通道包括第一通道和第二通道,第一通道所对应的第一子激活值的分布和第二通道所对应的第二子激活值的分布不同,第一量化步长和第二量化步长不同。
905、执行设备将第二特征信息分为多个组,多个组中每个组包括至少一个特征图,多个组中不同的组包括的特征图的尺度不同,其中,第一特征信息包含于待处理数据的多个特征信息,第二特征信息包括不同尺度的特征图。
906、执行设备对第二特征信息中不同的组采用不同的量化参数进行量化。
907、执行设备获取第一机器学习模型输出的预测结果。
本申请实施例中,步骤901至907的具体实现方式以及步骤901至907中各个名词的含义均可以参阅图5对应的各个实施例中的描述,区别在于,将图5对应实施例中的“训练样本”替换为图9对应实施例中的“待处理数据”,“待处理数据”是推理阶段中“输入数据”的一个别称,此处不再一一进行赘述。
需要说明的是,步骤902和903、步骤904以及步骤905和906均为可选步骤,若执行步骤902和903、步骤904和/或步骤905和906,本申请实施例中不限定步骤902和903、步骤904以及步骤905和906之间的执行顺序,也不限定步骤902和903、步骤904以及步骤905和906的执行次数,具体均可以结合实际情况灵活确定,此处不做限定。
本申请实施例中,无论在机器学习模型的训练阶段还是推理阶段,只要利用机器学习模型对输入数据进行数据处理时,均可以采用本申请提供的模型的量化方法,也即不仅能降低机器学习模型在执行设备上进行数据处理时的计算量,还能降低机器学习模型在训练设备上进行数据处理时的计算量。
为了对本申请提供的模型的量化方法所带来的有益效果有更直观的了解,以下结合如下表1中示出的实验数据进行说明。
表1
其中,增加改进的去噪锚框端到端目标检测模型(DETR with improveddenoising anchor boxes for end to end object detection,DINO)和用于执行目标检测任务的Transformer模型的变形(deformable detection transformer,DeformableDETR)是两个机器学习模型,每秒浮点计算(loating point operations per second,FLOPs)为代表计算量的一个指标,mAP是代表准确率的一个指标,channel-wise是一种已有的量化方法。如表1所示,采用本申请提供的模型的量化方法不仅大大减少了机器学习模型的参数量,降低了机器学习模型的计算量,且避免了模型输出的预测结果的准确率的降低。
在图1至图9所对应的实施例的基础上,为了更好的实施本申请实施例的上述方案,下面还提供用于实施上述方案的相关设备。具体参阅图10,图10为本申请实施例提供的模型的量化装置的一种结构示意图,模型的量化装置1000应用于利用机器学习模型进行数据处理的过程中,模型的量化装置用于对机器学习模型中的至少一个激活层生成的激活值进行量化,至少一个激活层包括第一激活层;
其中,模型的量化装置1000包括:量化模块1001,用于采用第一量化步长对第一激活值中的第一子激活值进行量化;量化模块1001,还用于采用第二量化步长对第一激活值中的第二子激活值进行量化,其中,机器学习模型包括多个通道,多个通道包括第一通道和第二通道,第一子激活值与第一通道对应,第二子激活值与第二通道对应,第一量化步长和第二量化步长不同。
在一种可能的设计中,第一子激活值的分布和第二子激活值的分布不同。
在一种可能的设计中,机器学习模型为Transformer模型。
在一种可能的设计中,在利用机器学习模型对输入数据进行数据处理的过程中能够得到输入数据的多个特征信息,多个特征信息包括第一特征信息,模型的量化装置1000还用于对第一特征信息进行量化;
请参阅图11,图11为本申请实施例提供的模型的量化装置的另一种结构示意图,模型的量化装置1000还包括:分组模块1002,用于将第一特征信息分为至少两个子特征信息,至少两个子特征信息包括第一子特征信息和第二子特征信息;量化模块1002,还用于采用第一量化参数对第一子特征信息进行量化;量化模块1002,还用于采用第二量化参数对第二子特征信息进行量化,第一量化参数和第二量化参数不同。
在一种可能的设计中,输入数据为图像,机器学习模型的任务为对图像进行目标检测。
在一种可能的设计中,在利用机器学习模型对输入数据进行数据处理的过程中能够得到输入数据的多个特征信息,多个特征信息包括第二特征信息,第二特征信息包括不同尺度的特征图,模型的量化装置1000还用于对第二特征信息进行量化;
请参阅图11,模型的量化装置1000还包括:分组模块1002,用于将第二特征信息分为多个组,多个组中每个组包括至少一个特征图,多个组中不同的组包括的特征图的尺度不同;量化模块1001,还用于对不同的组采用不同的量化参数进行量化。
在一种可能的设计中,输入数据为图像,机器学习模型的任务为如下任一项:对图像进行目标检测、对图像进行语义分割或者对图像进行超分处理。
在一种可能的设计中,利用机器学习模型进行数据处理的过程在机器学习模型的推理阶段中,或者,利用机器学习模型进行数据处理的过程在机器学习模型的训练阶段中。
需要说明的是,模型的量化装置1000中各模块/单元之间的信息交互、执行过程等内容,与本申请中图3至图9对应的各个方法实施例基于同一构思,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。
请参阅图12,图12为本申请实施例提供的模型的量化装置的另一种结构示意图,模型的量化装置1200应用于利用机器学习模型进行数据处理的过程中,在利用机器学习模型对输入数据进行数据处理的过程中能够得到输入数据的多个特征信息,多个特征信息包括第一特征信息,模型的量化装置1200用于对第一特征信息进行量化;
其中,模型的量化装置1200包括:分组模块1201,用于将第一特征信息分为至少两个子特征信息,至少两个子特征信息包括第一子特征信息和第二子特征信息;量化模块1202,用于采用第一量化参数对第一子特征信息进行量化;量化模块1202,还用于采用第二量化参数对第一子特征信息进行量化,第一量化参数和第二量化参数不同。
在一种可能的设计中,模型的量化装置1200还用于对机器学习模型中的至少一个激活层生成的激活值进行量化,至少一个激活层包括第一激活层;
其中,量化模块1202,还用于采用第一量化步长对第一激活值中的第一子激活值进行量化;量化模块1202,还用于采用第二量化步长对第二激活值中的第二子激活值进行量化,其中,机器学习模型包括多个通道,第一子激活值与多个通道中的第一通道对应,第二子激活值与多个通道中的第二通道对应,第一量化步长和量化步长不同。
需要说明的是,模型的量化装置1200中各模块/单元之间的信息交互、执行过程等内容,与本申请中图3至图9对应的各个方法实施例基于同一构思,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。
接下来介绍本申请实施例提供的一种电子设备,该电子设备可以表现为第一机器学***板、笔记本电脑、智能穿戴设备、监控数据处理设备或者雷达数据处理设备等,此处不做限定。具体的,执行设备1300包括:接收器1301、发射器1302、处理器1303和存储器1304(其中执行设备1300中的处理器1303的数量可以一个或多个,图13中以一个处理器为例),其中,处理器1303可以包括应用处理器13031和通信处理器13032。在本申请的一些实施例中,接收器1301、发射器1302、处理器1303和存储器1304可通过总线或其它方式连接。
存储器1304可以包括只读存储器和随机存取存储器,并向处理器1303提供指令和数据。存储器1304的一部分还可以包括非易失性随机存取存储器(non-volatile randomaccess memory,NVRAM)。存储器1304存储有处理器和操作指令、可执行模块或者数据结构,或者它们的子集,或者它们的扩展集,其中,操作指令可包括各种操作指令,用于实现各种操作。
处理器1303控制执行设备的操作。具体的应用中,执行设备的各个组件通过总线***耦合在一起,其中总线***除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都称为总线***。
上述本申请实施例揭示的方法可以应用于处理器1303中,或者由处理器1303实现。处理器1303可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1303中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1303可以是通用处理器、数字信号处理器(digital signal processing,DSP)、微处理器或微控制器,还可进一步包括专用集成电路(application specific integratedcircuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。该处理器1303可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1304,处理器1303读取存储器1304中的信息,结合其硬件完成上述方法的步骤。
接收器1301可用于接收输入的数字或字符信息,以及产生与执行设备的相关设置以及功能控制有关的信号输入。发射器1302可用于通过第一接口输出数字或字符信息;发射器1302还可用于通过第一接口向磁盘组发送指令,以修改磁盘组中的数据;发射器1302还可以包括显示屏等显示设备。
本申请实施例中,在一种情况下,处理器1303中的应用处理器13031,用于执行图3至图9对应实施例中的执行设备执行的模型的量化方法。需要说明的是,应用处理器13031执行上述各个步骤的具体方式,与本申请中图3至图9对应的各个方法实施例基于同一构思,其带来的技术效果与本申请中图3至图9对应的各个方法实施例相同,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。
当电子设备表现为训练设备时,请参阅图14,图14是本申请实施例提供的训练设备一种结构示意图,具体的,训练设备1400由一个或多个服务器实现,训练设备1400可因配置或性能不同而产生比较大的差异,可以包括一个或一个以***处理器(centralprocessing units,CPU)1422(例如,一个或一个以上处理器)和存储器1432,一个或一个以上存储应用程序1442或数据1444的存储介质1430(例如一个或一个以上海量存储设备)。其中,存储器1432和存储介质1430可以是短暂存储或持久存储。存储在存储介质1430的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对训练设备中的一系列指令操作。更进一步地,中央处理器1422可以设置为与存储介质1430通信,在训练设备1400上执行存储介质1430中的一系列指令操作。
训练设备1400还可以包括一个或一个以上电源1426,一个或一个以上有线或无线网络接口1450,一个或一个以上输入输出接口1458,和/或,一个或一个以上操作***1441,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
本申请实施例中,中央处理器1422,用于执行图12对应实施例中的训练设备执行的模型的量化方法。需要说明的是,中央处理器1422执行上述各个步骤的具体方式,与本申请中图12对应的各个方法实施例基于同一构思,其带来的技术效果与本申请中图12对应的各个方法实施例相同,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。
本申请实施例中还提供一种包括计算机程序产品,当其在计算机上运行时,使得计算机执行如前述图3至图8所示实施例描述的方法中训练设备所执行的步骤,或者,使得计算机执行如前述图9所示实施例描述的方法中执行设备所执行的步骤。
本申请实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有用于进行信号处理的程序,当其在计算机上运行时,使得计算机执行如前述图3至图8所示实施例描述的方法中训练设备所执行的步骤,或者,使得计算机执行如前述图9所示实施例描述的方法中执行设备所执行的步骤。
本申请实施例提供的执行设备、训练设备或模型的量化装置可以为芯片,芯片包括:处理单元和通信单元,所述处理单元例如可以是处理器,所述通信单元例如可以是输入/输出接口、管脚或电路等。该处理单元可执行存储单元存储的计算机执行指令,以使芯片执行上述图3至图9所示实施例描述的模型的量化方法。可选地,所述存储单元为所述芯片内的存储单元,如寄存器、缓存等,所述存储单元还可以是所述无线接入设备端内的位于所述芯片外部的存储单元,如只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)等。
具体的,请参阅图15,图15为本申请实施例提供的芯片的一种结构示意图,所述芯片可以表现为神经网络处理器NPU 150,NPU 150作为协处理器挂载到主CPU(Host CPU)上,由Host CPU分配任务。NPU的核心部分为运算电路150,通过控制器1504控制运算电路1503提取存储器中的矩阵数据并进行乘法运算。
在一些实现中,运算电路1503内部包括多个处理单元(Process Engine,PE)。在一些实现中,运算电路1503是二维脉动阵列。运算电路1503还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路1503是通用的矩阵处理器。
举例来说,假设有输入矩阵A,权重矩阵B,输出矩阵C。运算电路从权重存储器1502中取矩阵B相应的数据,并缓存在运算电路中每一个PE上。运算电路从输入存储器1501中取矩阵A数据与矩阵B进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器(accumulator)1508中。
统一存储器1506用于存放输入数据以及输出数据。权重数据直接通过存储单元访问控制器(Direct Memory Access Controller,DMAC)1505,DMAC被搬运到权重存储器1502中。输入数据也通过DMAC被搬运到统一存储器1506中。
BIU为Bus Interface Unit即,总线接口单元1510,用于AXI总线与DMAC和取指存储器(Instruction Fetch Buffer,IFB)1509的交互。
总线接口单元1510(Bus Interface Unit,简称BIU),用于取指存储器1509从外部存储器获取指令,还用于存储单元访问控制器1505从外部存储器获取输入矩阵A或者权重矩阵B的原数据。
DMAC主要用于将外部存储器DDR中的输入数据搬运到统一存储器1506或将权重数据搬运到权重存储器1502中或将输入数据数据搬运到输入存储器1501中。
向量计算单元1507包括多个运算处理单元,在需要的情况下,对运算电路的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。主要用于神经网络中非卷积/全连接层网络计算,如Batch Normalization(批归一化),像素级求和,对特征平面进行上采样等。
在一些实现中,向量计算单元1507能将经处理的输出的向量存储到统一存储器1506。例如,向量计算单元1507可以将线性函数和/或非线性函数应用到运算电路1503的输出,例如对卷积层提取的特征平面进行线性插值,再例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元1507生成归一化的值、像素级求和的值,或二者均有。在一些实现中,处理过的输出的向量能够用作到运算电路1503的激活输入,例如用于在神经网络中的后续层中的使用。
控制器1504连接的取指存储器(instruction fetch buffer)1509,用于存储控制器1504使用的指令;
统一存储器1506,输入存储器1501,权重存储器1502以及取指存储器1509均为On-Chip存储器。外部存储器私有于该NPU硬件架构。
其中,上述各个实施例中示出的第一机器学习模型中各层的运算可以由运算电路1503或向量计算单元1507执行。
其中,上述任一处提到的处理器,可以是一个通用中央处理器,微处理器,ASIC,或一个或多个用于控制上述第一方面方法的程序执行的集成电路。
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本申请而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、ROM、RAM、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,训练设备,或者网络设备等)执行本申请各个实施例所述的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、训练设备或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、训练设备或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的训练设备、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。
Claims (23)
1.一种模型的量化方法,其特征在于,所述方法应用于利用机器学习模型进行数据处理的过程中,所述模型的量化方法包括对所述机器学习模型中的至少一个激活层生成的激活值进行量化,所述至少一个激活层包括第一激活层;其中,对所述第一激活层生成的第一激活值进行量化包括:
采用第一量化步长对所述第一激活值中的第一子激活值进行量化;
采用第二量化步长对所述第一激活值中的第二子激活值进行量化,其中,所述机器学习模型包括多个通道,所述多个通道包括第一通道和第二通道,所述第一子激活值与所述第一通道对应,所述第二子激活值与所述第二通道对应,所述第一量化步长和所述第二量化步长不同。
2.根据权利要求1所述的方法,其特征在于,所述第一子激活值的分布和所述第二子激活值的分布不同。
3.根据权利要求1或2所述的方法,其特征在于,所述机器学习模型为Transformer模型。
4.根据权利要求1至3任一项所述的方法,其特征在于,在利用所述机器学习模型对输入数据进行数据处理的过程中能够得到所述输入数据的多个特征信息,所述多个特征信息包括第一特征信息,所述模型的量化方法还包括对所述第一特征信息进行量化;其中,所述对所述第一特征信息进行量化包括:
将所述第一特征信息分为至少两个子特征信息,所述至少两个子特征信息包括第一子特征信息和第二子特征信息;
采用第一量化参数对所述第一子特征信息进行量化;
采用第二量化参数对所述第二子特征信息进行量化,所述第一量化参数和所述第二量化参数不同。
5.根据权利要求4所述的方法,其特征在于,所述输入数据为图像,所述机器学习模型的任务为对所述图像进行目标检测。
6.根据权利要求1至5任一项所述的方法,其特征在于,在利用所述机器学习模型对输入数据进行数据处理的过程中能够得到所述输入数据的多个特征信息,所述多个特征信息包括第二特征信息,所述第二特征信息包括不同尺度的特征图,所述模型的量化方法还包括对所述第二特征信息进行量化;其中,所述对所述第二特征信息进行量化包括:
将所述第二特征信息分为多个组,所述多个组中每个组包括至少一个特征图,所述多个组中不同的组包括的特征图的尺度不同;
对所述不同的组采用不同的量化参数进行量化。
7.根据权利要求6所述的方法,其特征在于,所述输入数据为图像,所述机器学习模型的任务为如下任一项:对所述图像进行目标检测、对所述图像进行语义分割或者对所述图像进行超分处理。
8.根据权利要求1至7任一项所述的方法,其特征在于,
所述利用机器学习模型进行数据处理的过程在所述机器学习模型的推理阶段中,或者,所述利用机器学习模型进行数据处理的过程在所述机器学习模型的训练阶段中。
9.一种模型的量化方法,其特征在于,所述方法应用于利用机器学习模型进行数据处理的过程中,在利用所述机器学习模型对输入数据进行数据处理的过程中能够得到所述输入数据的多个特征信息,所述多个特征信息包括第一特征信息,所述模型的量化方法包括对所述第一特征信息进行量化;其中,所述对所述第一特征信息进行量化包括:
将所述第一特征信息分为至少两个子特征信息,所述至少两个子特征信息包括第一子特征信息和第二子特征信息;
采用第一量化参数对所述第一子特征信息进行量化;
采用第二量化参数对所述第一子特征信息进行量化,所述第一量化参数和所述第二量化参数不同。
10.根据权利要求9所述的方法,其特征在于,所述模型的量化方法还包括对所述机器学习模型中的至少一个激活层生成的激活值进行量化,所述至少一个激活层包括第一激活层;其中,对所述第一激活层生成的第一激活值进行量化包括:
采用第一量化步长对所述第一激活值中的第一子激活值进行量化;
采用第二量化步长对所述第二激活值中的第二子激活值进行量化,其中,所述机器学习模型包括多个通道,所述多个通道包括第一通道和第二通道,所述第一子激活值与所述第一通道对应,所述第二子激活值与所述第二通道对应,所述第一量化步长和所述第二量化步长不同。
11.一种模型的量化装置,其特征在于,所述模型的量化装置应用于利用机器学习模型进行数据处理的过程中,所述模型的量化装置用于对机器学习模型中的至少一个激活层生成的激活值进行量化,所述至少一个激活层包括第一激活层;
其中,所述模型的量化装置包括:
量化模块,用于采用第一量化步长对所述第一激活值中的第一子激活值进行量化;
所述量化模块,还用于采用第二量化步长对所述第一激活值中的第二子激活值进行量化,其中,所述机器学习模型包括多个通道,所述多个通道包括第一通道和第二通道,所述第一子激活值与所述第一通道对应,所述第二子激活值与所述第二通道对应,所述第一量化步长和所述第二量化步长不同。
12.根据权利要求11所述的装置,其特征在于,所述第一子激活值的分布和所述第二子激活值的分布不同。
13.根据权利要求11或12所述的装置,其特征在于,所述机器学习模型为Transformer模型。
14.根据权利要求11至13任一项所述的装置,其特征在于,在利用所述机器学习模型对输入数据进行数据处理的过程中能够得到所述输入数据的多个特征信息,所述多个特征信息包括第一特征信息,所述模型的量化装置还用于对所述第一特征信息进行量化;
所述模型的量化装置还包括:分组模块,用于将所述第一特征信息分为至少两个子特征信息,所述至少两个子特征信息包括第一子特征信息和第二子特征信息;
所述量化模块,还用于采用第一量化参数对所述第一子特征信息进行量化;
所述量化模块,还用于采用第二量化参数对所述第二子特征信息进行量化,所述第一量化参数和所述第二量化参数不同。
15.根据权利要求14所述的装置,其特征在于,所述输入数据为图像,所述机器学习模型的任务为对所述图像进行目标检测。
16.根据权利要求11至15任一项所述的装置,其特征在于,在利用所述机器学习模型对输入数据进行数据处理的过程中能够得到所述输入数据的多个特征信息,所述多个特征信息包括第二特征信息,所述第二特征信息包括不同尺度的特征图,所述模型的量化装置还用于对所述第二特征信息进行量化;
所述模型的量化装置还包括:分组模块,用于将所述第二特征信息分为多个组,所述多个组中每个组包括至少一个特征图,所述多个组中不同的组包括的特征图的尺度不同;
所述量化模块,还用于对所述不同的组采用不同的量化参数进行量化。
17.根据权利要求16所述的装置,其特征在于,所述输入数据为图像,所述机器学习模型的任务为如下任一项:对所述图像进行目标检测、对所述图像进行语义分割或者对所述图像进行超分处理。
18.根据权利要求11至17任一项所述的装置,其特征在于,
所述利用机器学习模型进行数据处理的过程在所述机器学习模型的推理阶段中,或者,所述利用机器学习模型进行数据处理的过程在所述机器学习模型的训练阶段中。
19.一种模型的量化装置,其特征在于,所述模型的量化装置应用于利用机器学习模型进行数据处理的过程中,在利用所述机器学习模型对输入数据进行数据处理的过程中能够得到所述输入数据的多个特征信息,所述多个特征信息包括第一特征信息,所述模型的量化装置用于对所述第一特征信息进行量化;其中,所述模型的量化装置包括:
分组模块,用于将所述第一特征信息分为至少两个子特征信息,所述至少两个子特征信息包括第一子特征信息和第二子特征信息;
量化模块,用于采用第一量化参数对所述第一子特征信息进行量化;
所述量化模块,还用于采用第二量化参数对所述第一子特征信息进行量化,所述第一量化参数和所述第二量化参数不同。
20.根据权利要求19所述的装置,其特征在于,所述模型的量化装置还用于对所述机器学习模型中的至少一个激活层生成的激活值进行量化,所述至少一个激活层包括第一激活层;其中,
所述量化模块,还用于采用第一量化步长对所述第一激活值中的第一子激活值进行量化;
所述量化模块,还用于采用第二量化步长对所述第二激活值中的第二子激活值进行量化,其中,所述机器学习模型包括多个通道,所述多个通道包括第一通道和第二通道,所述第一子激活值与所述第一通道对应,所述第二子激活值与所述第二通道对应,所述第一量化步长和所述第二量化步长不同。
21.一种计算机程序产品,其特征在于,所述计算机程序产品包括程序,当所述程序在计算机上运行时,使得计算机执行如权利要求1至10中任一项所述的方法。
22.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有程序,当所述程序在计算机上运行时,使得计算机执行如权利要求1至10中任一项所述的方法。
23.一种电子设备,其特征在于,包括处理器和存储器,所述处理器与所述存储器耦合,
所述存储器,用于存储程序;
所述处理器,用于执行所述存储器中的程序,使得所述执行设备执行如权利要求1至10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310215082.0A CN116362301A (zh) | 2023-02-25 | 2023-02-25 | 一种模型的量化方法以及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310215082.0A CN116362301A (zh) | 2023-02-25 | 2023-02-25 | 一种模型的量化方法以及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116362301A true CN116362301A (zh) | 2023-06-30 |
Family
ID=86913021
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310215082.0A Pending CN116362301A (zh) | 2023-02-25 | 2023-02-25 | 一种模型的量化方法以及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116362301A (zh) |
-
2023
- 2023-02-25 CN CN202310215082.0A patent/CN116362301A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111368993B (zh) | 一种数据处理方法及相关设备 | |
CN112699991A (zh) | 用于加速神经网络训练的信息处理的方法、电子设备和计算机可读介质 | |
CN112883149B (zh) | 一种自然语言处理方法以及装置 | |
CN111898636B (zh) | 一种数据处理方法及装置 | |
CN113449859A (zh) | 一种数据处理方法及其装置 | |
EP4303767A1 (en) | Model training method and apparatus | |
CN114925320B (zh) | 一种数据处理方法及相关装置 | |
CN112529149B (zh) | 一种数据处理方法及相关装置 | |
CN113505193A (zh) | 一种数据处理方法及相关设备 | |
CN113656563B (zh) | 一种神经网络搜索方法及相关设备 | |
CN111414915B (zh) | 一种文字识别方法以及相关设备 | |
CN113240079A (zh) | 一种模型训练方法及装置 | |
CN115512005A (zh) | 一种数据处理方法及其装置 | |
CN113065997B (zh) | 一种图像处理方法、神经网络的训练方法以及相关设备 | |
US20240135174A1 (en) | Data processing method, and neural network model training method and apparatus | |
WO2024083121A1 (zh) | 一种数据处理方法及其装置 | |
CN114359289A (zh) | 一种图像处理方法及相关装置 | |
CN115238909A (zh) | 一种基于联邦学习的数据价值评估方法及其相关设备 | |
CN114821096A (zh) | 一种图像处理方法、神经网络的训练方法以及相关设备 | |
CN113850362A (zh) | 一种模型蒸馏方法及相关设备 | |
CN116737895A (zh) | 一种数据处理方法及相关设备 | |
CN111652349A (zh) | 一种神经网络的处理方法及相关设备 | |
CN115795025A (zh) | 一种摘要生成方法及其相关设备 | |
CN115983362A (zh) | 一种量化方法、推荐方法以及装置 | |
CN114707643A (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 |