CN112052943A - 电子装置和执行该电子装置的操作的方法 - Google Patents

电子装置和执行该电子装置的操作的方法 Download PDF

Info

Publication number
CN112052943A
CN112052943A CN202010493206.8A CN202010493206A CN112052943A CN 112052943 A CN112052943 A CN 112052943A CN 202010493206 A CN202010493206 A CN 202010493206A CN 112052943 A CN112052943 A CN 112052943A
Authority
CN
China
Prior art keywords
data
neural network
network model
electronic device
importance
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
CN202010493206.8A
Other languages
English (en)
Inventor
权世重
李桐洙
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN112052943A publication Critical patent/CN112052943A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/10Interfaces, programming languages or software development kits, e.g. for simulating neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Neurology (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • User Interface Of Digital Computer (AREA)
  • Power Sources (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Image Analysis (AREA)

Abstract

一种用于电子装置执行人工智能模型的操作的方法包括:在用于神经网络模型的操作的多个数据存储在存储器中时,获取关于电子装置的硬件的资源信息,所述多个数据分别具有彼此不同的重要程度;基于所获取的资源信息,根据所述多个数据中的每个的重要程度,获得所述多个数据之中的将用于神经网络模型的操作的数据;以及通过使用所获得的数据执行神经网络模型的操作。

Description

电子装置和执行该电子装置的操作的方法
相关申请的交叉引用
本申请是基于2019年6月5日在韩国知识产权局提交的韩国专利申请第10-2019-0066396号并要求享有其优先权,该韩国专利申请的公开内容通过引用全文合并于此。
技术领域
本公开涉及电子装置和执行该电子装置的操作的方法,更具体地,涉及执行人工神经网络模型的操作的方法。
背景技术
近来,通过使用硬件来实现人工智能模型(例如深度学习模型)的研究正在持续。在通过使用硬件来实现人工智能模型的情况下,可以极大地提高人工智能模型的操作速度,并且先前由于存储器大小或对响应时间的限制而难以使用的各种深度学习模型的使用成为可能。
提出了用于从硬件的实现的观点来看持续改善人工智能模型的性能的算法,作为例如减少操作数据的量用以减少操作延迟和功耗的数据量子化技术。
数据量子化是例如减少表示矩阵参数的信息的量的方法,并且可以将实数数据分解为二进制数据和缩放因子,并将数据表示为近似值。由于量子化的数据不能达到原始数据的精度,因此使用量子化的数据的人工智能模型的推理的精度可能低于人工智能模型的原始推理的精度。然而,考虑到硬件的有限情形,量子化在一定程度上可以节省存储器的使用量或计算资源的消耗,因此在设备上人工智能(on-device artificial intelligence)领域中正在积极地进行研究。
发明内容
本公开的实施例提供了减少人工智能模型的数据容量同时使人工智能模型的性能的劣化最小化的电子装置、以及执行人工智能模型的操作的方法。
根据本公开的一方面,一种用于电子装置执行人工智能模型的操作的方法包括以下操作:在分别具有彼此不同的重要程度的多个数据存储在存储器中时,获取关于电子装置的硬件的资源信息,所述多个数据用于神经网络模型的操作;基于所获取的资源信息,根据所述多个数据中的每个的重要程度,获得所述多个数据之中的将用于神经网络模型的操作的一些数据;以及通过使用所获得的一些数据执行神经网络模型的操作。
根据本公开的一方面,一种电子装置包括:存储器,存储分别具有彼此不同的重要程度的多个数据;以及处理器,被配置为基于用于电子装置的硬件的资源信息根据存储在存储器中的所述多个数据中的每个的重要程度获得所述多个数据之中的将用于神经网络模型的操作的一些数据、以及通过使用所获得的一些数据执行神经网络模型的操作。
根据实施例,可以根据硬件的要求灵活地调整用于神经网络模型的数据量。例如,可以在延迟方面、功耗方面或用户方面中的至少一个方面预期改善的效果。
在延迟方面,可以考虑到请求运行神经网络模型的时间而在神经网络模型的操作中排除具有低重要程度的二进制数据并选择性地仅使用具有高重要程度的二进制数据,从而以最小的准确性降低满足要求。
在功耗方面,在确定电子装置的电池的剩余量较低的示例中,可以控制使得神经网络模型考虑到硬件的条件(例如电池的低电量)以最小性能操作的数据量,因此可以延长电子装置的操作时间。
在用户(或开发人员)方面,在相关技术中,考虑到安装在电子装置上的人工智能应用的操作量和其他限制,用户难以判断将用于神经网络模型的最佳数据量。然而,根据实施例,可以基于硬件的条件考虑延迟和功耗自动地适当调整数据量,因此可以将人工智能模型的推理的准确性维持高于一定程度,同时有效地运行神经网络模型。
根据实施例,可以克服在硬件资源受限的情形下神经网络模型不运行或延迟变大的问题。即,可以考虑到硬件的当前可用资源灵活地调整用于神经网络模型的操作的数据量,因此,即使数据量增加,延迟也保持低于一定水平,并且神经网络模型可以无间断操作并且高于一定的准确性阈值操作。
附图说明
图1是示出根据一实施例的电子装置的配置的框图;
图2是示出根据一实施例的包括处理单元的用于神经网络操作的部件的框图;
图3示出了根据一实施例的调度语法的示例;
图4是示出根据一实施例的包括多个处理单元的用于神经网络操作的部件的框图;
图5是示出根据一实施例的针对每个比特顺序将量子化的参数值存储在存储器中的过程的示图;
图6是示出根据一实施例的针对每个比特顺序将量子化的参数值存储在存储器中的过程的示图;
图7是示出根据一实施例的用于电子装置执行操作的方法的流程图;以及
图8是示出根据一实施例的电子装置的详细配置的框图。
具体实施方式
本公开的实施例可以被各种各样地修改。因此,特定的实施例在附图中示出并在详细描述中被详细描述。然而,将理解,本公开不限于特定实施例,而是在不背离本公开的范围和精神的情况下包括所有修改、等同和替换。此外,因为公知的功能或构造会以不必要的细节使本公开不清楚,所以不对其进行详细描述。
在下文中,将参照附图详细描述本公开的各种实施例。
图1是示出根据一实施例的电子装置100的配置的框图。如图1所示,电子装置100包括存储器110和处理器120。
电子装置100可以是服务器、台式PC、膝上型计算机、智能电话、平板PC等。或者,电子装置100是使用人工智能模型的装置,并且其可以是清洁机器人、可穿戴装置、家用电器、医疗装置、物联网(IoT)装置或自主运载工具。
图1中的存储器110可以存储分别具有彼此不同的重要程度的多个数据。分别具有彼此不同的重要程度的多个数据可以包括例如用于神经网络模型的操作的量子化的矩阵的参数值。在这种情况下,如果存在用于神经网络模型的操作的多个矩阵,则电子装置100可以针对多个量子化的矩阵中的每个包括分别具有彼此不同的重要程度的参数值。
作为另一示例,分别具有彼此不同的重要程度的所述多个数据可以是用于神经网络模型的操作的分别具有彼此不同的重要程度的多个神经网络层。
作为又一示例,具有彼此不同的重要程度的所述多个数据可以是在被量子化之前的矩阵的参数值。在这种情况下,该矩阵的参数值可以由分别具有彼此不同的重要程度的二进制数据构成,并且例如,重要程度可以根据比特顺序而增大。
在所述多个数据是量子化的矩阵的参数值的情况下,为获取参数值而执行的矩阵的量子化处理可以由电子装置100执行。或者,可以在外部装置处执行量子化处理,并且量子化的矩阵的参数值可以预先存储在存储器110中。
在矩阵的参数值被量子化的情况下,全精度值的矩阵的参数值可以被转换成k个数量的二进制数据(例如,+1和-1)(或量子化的比特)bi值和缩放系数因子ai值。在通过使用量子化的矩阵的参数值执行神经网络模型的操作的情况下,在神经网络层之间的推理期间的存储器的使用量和计算机的使用量可以减少,但是推理的准确性可能劣化。
因此,可以使用用于提高推理精度的各种量子化算法。
例如,在将w矩阵的参数值量子化为具有k个数量的比特数的情况下,可以使用满足[公式1]的条件的各种算法。
[公式1]
Figure BDA0002521870520000041
其中bi∈{-1,+1}n
为了满足[公式1]的条件,作为示例,可以使用交替算法(例如交替多比特算法)等。交替算法是重复地更新二进制数据和系数因子并找到使[公式1]变得最小的值的算法。例如,在交替算法中,可以基于更新后的系数因子再次计算并更新二进制数据,并且可以基于更新后的二进制数据再次计算并更新系数因子。可以重复该过程,直到误差值变得小于或等于特定值。
交替算法可以保证高准确性,但是可能需要大量的计算资源和操作时间用于更新二进制数据和系数因子。特别地,在交替算法中,在将参数值量子化为k个数量的比特的情况下,所有k个比特具有相似的重要程度,因此只有当通过使用所有k个数量的比特来执行神经网络模型的操作时,准确的推理才是可能的。
换言之,在省略一些比特的同时执行神经网络模型的操作的情况下,神经网络操作的准确性可能劣化。作为示例,在电子装置100的资源受限的环境(例如,设备上的人工智能芯片环境)中,在考虑到电子装置100的资源而仅通过使用一些比特来执行神经网络模型的操作的情况下,神经网络操作的准确性可能劣化。
因此,会需要可以对有限的硬件资源灵活响应的算法。作为示例,对于矩阵的参数值的量子化,可以使用贪婪算法,其对参数值进行量子化使得二进制数据的每个比特具有彼此不同的重要程度。
在通过使用贪婪算法将矩阵的参数值量子化为k个数量的比特的情况下,可以通过使用[公式2]来计算[公式1]中k个数量的比特的第一二进制数据和系数因子。
[公式2]
Figure BDA0002521870520000051
接下来,第i比特(1<i≤k)可以向r重复与[公式3]中相同的计算,r是原始参数值与第一量子化的值之间的差值。即,通过凭借使用在计算(i-1)比特之后剩余的残差来计算第i比特,可以获得具有k个数量的比特的量子化的矩阵的参数值。
[公式3]
Figure BDA0002521870520000052
其中
Figure BDA0002521870520000053
因此,可以获取具有k个数量的比特的量子化的矩阵的参数值。
除了以上所述之外,为了进一步最小化矩阵的原始参数值与量子化的参数值之间的误差,可以使用基于贪婪算法的精细贪婪算法。精细贪婪算法可以通过使用经由贪婪算法确定的矢量b来更新如[公式4]中的系数因子。
[公式4]
Figure BDA0002521870520000061
其中Bj=[b1,...,bj],
在使用贪婪算法(或精细贪婪算法)的情况下,随着比特的顺序变高,系数因子的值变小,因此,比特的重要程度降低。因此,即使对于具有高比特顺序的比特省略操作,也几乎不影响神经网络的推理。在神经网络模型中,故意地将噪声应用于参数值的约10%的方法可以用于提高推理的准确性。在这种情况下,即使在省略由贪婪算法量子化的二进制数据的一些比特的同时执行操作,也难以认为神经网络的推理准确性总体上劣化。而是,可能发生神经网络的推理准确性得到相当程序地提高的情形。
在将矩阵的参数值量子化为包括具有不同重要程度的比特的情况下,考虑到给定计算资源的要求(例如功耗、操作时间)的神经网络模型的自适应操作变为可能。即,根据各种神经网络模型中的每个的重要程度来调整神经网络模型的性能变为可能。
此外,在不必费力针对每个神经网络模型考虑量子化的比特的最佳数量的情况下,根据在装入一定程度量子化的矩阵之后的条件或受限的条件灵活地调整将要应用于神经网络模型的量子化的比特的数量变为可能。此外,可以节省为每个神经网络模型找到最佳运行条件所需的开发成本。
图1中的处理器120可以控制电子装置100的总体操作。处理器120可以是通用处理器(例如中央处理单元(CPU)或应用处理器)、图形专用处理器(例如GPU)或执行处理的片上系统(SoC)(例如设备上人工智能(AI)芯片)、大规模集成(LSI)、或现场可编程门阵列(FPGA)。处理器120可以包括CPU、微控制器单元(MCU)、微处理单元(MPU)、控制器、应用处理器(AP)或通信处理器(CP)以及ARM处理器中的一个或更多个,或者可以由术语定义。
虽然处理器120在存储器110中存储具有彼此不同的重要程度的多个数据,但是处理器120可以基于用于电子装置100的硬件的资源信息根据存储在存储器110中的所述多个数据中的每个的重要程度来获得在所述多个数据之中的将用于神经网络模型的操作的一些数据。作为示例,在所述多个数据包括二进制数据作为量子化的矩阵的参数值的情况下,处理器120可以获得所述多个数据之中的将用于神经网络模型的操作的二进制数据的数量。例如,随着二进制数据的比特顺序增加,重要程度可以降低。
当获得将用于神经网络模型的操作的一些数据时,处理器120可以通过使用所获得的一些数据来执行神经网络模型的操作。作为示例,处理器120可以对输入值以及二进制数据的每个比特执行矩阵运算,并且对每个比特的运算结果求和并获取输出值。在存在多个神经网络处理单元的情况下,处理器120可以基于二进制数据的每个比特的顺序使用多个神经网络处理单元来执行矩阵并行运算。
图2是示出根据一实施例的包括处理单元的用于神经网络操作的部件的框图。
图2的框图被包括在其中的电子装置100可以包括例如通过使用硬件执行神经网络推理的设备上人工智能芯片。
用于通过使用硬件的神经网络推理的矩阵的参数值可以例如处于通过使用贪婪算法被量子化的状态,从而可以选择性地使用重要的二进制数据。作为量子化的参数值的二进制数据的重要程度可以随着比特顺序增加而降低。
在图2中,电子装置100可以包括调度器210、自适应控制器220、直接存储器存取控制器(DMAC)230、处理单元240和累加器250。调度器210、自适应控制器220、直接存储器存取控制器230、处理单元240或累加器250中的至少一个可以被实现为软件和/或硬件。例如,调度器210、自适应控制器220、直接存储器存取控制器230、处理单元240和累加器250可以是处理器120的功能块。作为另一示例,调度器210、自适应控制器220和直接存储器存取控制器230是第一处理器(其是处理器120的子处理器)的功能块,处理单元240和累加器250可以是第二处理器(其是处理器120的另一子处理器)的功能块。第一处理器是负责第二处理器的控制的处理器,第二处理器是针对操作而优化的处理器,例如,其可以是人工智能处理器或图形处理器。
调度器210可以接收与硬件有关的资源信息以及请求运行神经网络模型的指令。
响应于请求运行神经网络模型的指令,调度器210可以参照查找表270来确定将用于每个神经网络模型的操作的量子化的比特的数量。查找表可以存储在处理器120的只读存储器(ROM)或随机存取存储器(RAM)区域中,或者存储在处理器120外部的存储器110中。
查找表可以存储例如k个数量的调度模式。在这种情况下,可以针对每种调度模式预先定义将用于神经网络模型的操作的量子化的比特的数量。例如,可以根据神经网络模型的重要程度来不同地限定量子化的比特的数量。
调度器210可以首先确定用于根据请求指令以高于一定水平的准确程度执行推理作业的硬件条件。例如,调度器210可以确定以下作为硬件条件:处理单元240用于执行推理作业的操作的总数;功耗,其是用于神经网络模型的操作过程的功率;以及延迟,其是直到获取输出值为止的时间,该输出值是神经网络模型的操作时间。调度器210可以将当前可用的硬件资源信息(例如每时间功耗、延迟)与用于执行推理作业的硬件条件进行比较,并确定用于每个神经网络模型的量子化的比特的数量。
将通过图3中的调度语法更详细地描述调度器210确定用于每个神经网络模型的量子化的比特的数量的过程。
自适应控制器220可以控制神经网络模型的操作顺序,或者可以执行控制,使得在每个神经网络模型具有彼此不同的比特量时执行操作。
例如,自适应控制器220可以考虑从调度器210获取的用于每个神经网络模型的量子化的比特的数量来控制处理单元240和直接存储器存取控制器230。或者,自适应控制器220可以从调度器210获取与硬件资源有关的资源信息,并考虑到这一点来确定将用于神经网络模型的操作的量子化的比特的数量。
自适应控制器220可以控制处理单元240和直接存储器存取控制器230,从而执行控制,使得特定数量之后的量子化的比特不用于神经网络模型的操作。
直接存储器存取控制器230可以执行控制,使得存储在存储器110中的输入值和量子化的参数值通过自适应控制器220的控制被提供给处理单元240。在存储器110中,量子化的参数值可以根据比特的顺序对齐并存储。例如,第一比特的量子化的参数值可以被对齐为一种数据格式并被存储,第二比特的量子化的参数值可以被对齐为一种数据格式并被存储,并且相继地,第N比特的量子化参数值可以被对齐为一种数据格式并存储。在这种情况下,直接存储器存取控制器230可以执行控制,使得存储在存储器110中的第一比特的量子化的参数值至第N比特的量子化的参数值通过自适应控制器220的控制被依次提供给处理单元240。或者,直接存储器存取控制器230可以执行控制,使得第一比特至第K比特(N<K)的量子化的参数值被依次提供给处理单元240。
处理单元240可以通过使用从存储器110接收的输入值和量子化的参数值来执行矩阵运算,并获取对于每个比特顺序的运算结果,累加器250可以对每个比特顺序的运算结果求和,并获取输出结果(或输出值)。
作为示例,在将参数值量子化为N个比特的情况下,处理单元240可以调用N次用于矩阵的乘法运算,并且可以针对第一比特至第N比特依次执行运算。
图3示出了根据一实施例的在调度器210处执行的调度语法的示例。
在图3中,调度语法的定义部分310可以预先定义:‘运行模式’(ExecutionModel),其具有神经网络模型(例如语音识别模型、图像识别模型等)作为值,该神经网络模型是运行的对象;‘约束’(Constraints),其具有与硬件资源有关的信息(例如功耗、延迟)作为值;‘模式’(mode),其具有调度模式作为值;‘最大成本’(max_cost),其是考虑到从查找表获取的硬件资源的最大操作成本;以及‘成本’(成本),其是相对于神经网络模型从查找表获取的操作成本。
调度模式可以例如包括在查找表中,并定义将用于每个神经网络模型的操作的量子化的比特的最佳数量。作为示例,在图3中,定义了16种调度模式,并且可以定义,在0模式的情况下,所有神经网络模型以全精度运行,在第15模式的情况下,所有神经网络模型通过仅使用1比特来计算,以及在第2模式下,例如,语音识别模型使用3比特作为量子化的比特数据,图像识别模型使用2比特作为量子化的比特数据。
在图3中,while条件句320可以考虑到硬件资源根据当前调度模式和最大操作成本来比较神经网络模型的操作成本。
作为比较的结果,当考虑到硬件资源确定用于每个神经网络模型的最佳调度模式时,调度器210可以从查找表获取在当前硬件条件下将用于每个神经网络模型的量子化的比特的最佳数量作为调度语法的返回值330,并将其提供给自适应控制器220。
图4是示出根据一实施例的用于包括多个处理单元的神经网络操作的部件的框图。
在图4中,在处理器120的操作区域中有空闲空间的情况下,多个处理单元241至244(例如第一处理单元241、第二处理单元242、第三处理单元243和第四处理单元244)可以提供在处理器120中。在这种情况下,可以通过使用多个处理单元241至244来执行并行操作。
以上参照图2描述了调度器210、自适应控制器220、直接存储器存取控制器230和累加器250,因此将省略重复的描述。
在图4中,多个处理单元241至244可以基于比特顺序执行矩阵并行运算。例如,第一处理单元241可以相对于输入值和第一量子化的比特执行操作,第二处理单元242可以相对于输入值和第二量子化的比特执行操作,第三处理单元243可以相对于输入值和第三量子化的比特执行操作,第四处理单元244可以相对于输入值和第四量子化的比特执行操作。加法器260可以收集多个处理单元241至244的操作结果,并将它们发送到累加器250。
在使用多个处理单元241至244的情况下,自适应控制器220可以控制多个处理单元241至244中的每个。直接存储器存取控制器230可以控制存储器110,使得考虑到多个处理单元241至244中的每个所处理的比特顺序,量子化的参数值在根据比特顺序被区分的同时被输入。特别地,在使用多个处理单元241至244的情形下,调度器210可以根据多个处理单元241至244的操作以及神经网络操作的延迟进一步考虑到处理器的功耗来确定调度模式。
在通过使用多个处理单元241至244执行神经网络模型的操作的情况下,在存储器110中,量子化的参数值可以针对每个比特顺序被重新对齐并存储。
图5是示出根据一实施例的针对每个比特顺序将量子化的参数值存储在存储器110中的过程的示图。
例如,在图5中,实数类型的32比特参数值可以作为神经网络模型的参数值存在。在这种情况下,如果参数值被量子化为3比特,则实数类型的参数值可以被表示为系数因子521以及3比特522、523、524的二进制数据(图5中的数字520)。
为了多个处理单元241至244的有效操作,可以重新对齐量子化的参数值。如图5中的附图标记530所示,量子化的参数值可以根据比特顺序重新对齐。例如,相对于图4中的第一处理单元241、第二处理单元242和第三处理单元243中的每个,量子化的参数值可以如图5中的附图标记531、532和533所示地重新对齐并被存储在存储器110中。
图6示出了量子化的参数值被存储在存储器110中的状态。在一实施例中,存储器110可以包括DRAM 600。量子化的参数值可以根据比特顺序对齐并存储在DRAM 600中。在这种情况下,32个二进制数据可以被包括在32比特字值中。
如上所述,量子化的参数值以字为单位存储在存储器110中,以对应于多个处理单元241至244中的每个的操作,因此,用于神经网络操作的量子化的参数值可以从存储器110被有效地读取并被发送到多个处理单元241至244中的每个。
图7是示出根据一实施例的用于电子装置100执行操作的方法的流程图。
可以已将用于神经网络模型的操作的具有彼此不同的重要程度的多个数据存储在存储器中。具有彼此不同的重要程度的所述多个数据可以包括用于神经网络模型的操作的量子化的矩阵的参数值。量子化的矩阵的参数值可以包括具有彼此不同的重要程度的二进制数据。例如,随着二进制数据的比特顺序增加,二进制数据的重要程度可能降低。量子化的矩阵的参数值可以包括通过使用贪婪算法量子化的矩阵的参数值。
在图7的操作701中,在具有彼此不同的重要程度的所述多个数据存储在存储器中时,电子装置100可以获取与硬件有关的资源信息。与硬件有关的资源信息可以包括例如电子装置100的功耗、执行神经网络模型的操作的处理单元的数量、类型和/或规格、或神经网络模型的延迟中的至少一项。
在图7的操作703中,基于所获取的资源信息,电子装置100可以根据所述多个数据中的每个的重要程度获得所述多个数据之中的将用于神经网络模型的操作的一些数据。例如,电子装置100可以参照在其中定义了多个调度模式的查找表来获得用于神经网络模型的操作的一些数据。电子装置100可以获得所述多个数据之中的用于神经网络模型的二进制数据的数量。
在图7的操作705中,电子装置100可以通过使用所获得的一些数据来执行神经网络模型的操作。例如,电子装置100可以对输入值和二进制数据的每个比特执行矩阵运算,并且对每个比特的运算结果求和并获取输出值。或者,在存在多个神经网络处理单元的情况下,电子装置100可以使用所述多个神经网络处理单元来执行矩阵并行运算。
根据本公开的实施例,可以在电子装置100上提供多个神经网络模型。所述多个神经网络模型可以例如被实现为至少一个设备上芯片并被提供在电子装置100上,或者可以作为软件存储在电子装置100的存储器110中。对于考虑到有限硬件资源的自适应操作,电子装置100可以获取与硬件有关的资源信息,并基于所获取的资源信息来确定所述多个神经网络模型之中的将操作的至少一个神经网络模型。例如,电子装置100可以考虑到神经网络模型的推理的准确性或操作速度根据优先级来确定至少一个神经网络模型。
根据本公开的实施例,电子装置100可以从外部装置下载所述多个神经网络模型之中的将操作的至少一个神经网络模型。例如,对于考虑到有限硬件资源的自适应操作,电子装置100可以获取与电子装置100的硬件有关的资源信息,并将所获取的资源信息发送到外部装置。当外部装置基于所获取的资源信息向电子装置100发送至少一个神经网络模型时,电子装置100可以将接收到的神经网络模型存储在存储器110中,并在执行推理功能时使用它。在这种情况下,可以为电子装置100提供用于推理的最小神经网络模型,因此可以减少电子装置100的内部资源的消耗或与用于与服务器的通信的网络资源的消耗,并为推理的请求提供快速的结果。
图8是示出根据一实施例的电子装置100的详细配置的框图。
根据图8,电子装置100包括存储器110、处理器120、通信器130、用户界面140、显示器150、音频处理器160和视频处理器170。在图8所示的部件之中,关于与图1所示的部件重叠的部分,将省略详细描述。
处理器120通过使用存储在存储器110中的各种程序来控制电子装置100的总体操作。
具体地,处理器120包括RAM 121、ROM 122、主CPU 123、图形处理器124、第一接口125-1至第n接口125-n以及总线126。
RAM 121、ROM 122、主CPU 123、图形处理器124以及第一接口125-1至第n接口125-n可以通过总线126彼此连接。
第一接口125-1至第n接口125-n与上述各种部件连接。接口之一可以是通过网络与外部装置连接的网络接口。
主CPU 123访问存储器110,并通过使用存储在存储器110中的操作系统(OS)来行启示。然后,主CPU 123通过使用存储在存储器110中的各种程序等来执行各种操作。
ROM 122存储用于系统启示的一组指令等。当输入开启指令并供电时,主CPU 123根据存储在ROM 122中的指令将存储在存储器110中的OS复制到RAM 121中,并通过运行OS来启动系统。当启动完成时,主CPU 123将存储在存储器110中的各种应用程序复制到RAM121中,并通过运行复制到RAM 121中的应用程序来执行各种操作。
图形处理器124通过使用操作部分和渲染部分来生成包括诸如图标、图像和文本的各种对象的屏幕。操作部分基于接收到的控制指令根据屏幕的布局来操作诸如坐标值、形状、大小和颜色的属性值,将通过该属性值来显示每个对象。渲染部分基于在操作部分处生成的属性值来生成呈包括对象的各种布局的屏幕。在渲染部分生成的屏幕显示在显示器150的显示区域中。
处理器120的上述操作可以由存储在存储器110中的程序执行。
存储器110与处理器120分开提供,并且可以实现为硬盘、非易失性存储器、易失性存储器等。
存储器110可以存储用于神经网络模型的操作的多个数据。所述多个数据可以包括例如量子化的矩阵的参数值。
根据一实施例,存储器110可以包括用于操作电子装置100的OS软件模块、人工智能模型、量子化的人工智能模型或用于量子化人工智能模型的量子化模块(例如贪婪算法模块)中的至少一个。
通信器130是根据各种类型的通信方法与各种类型的外部装置执行通信的部件。通信器130包括Wi-Fi芯片131、蓝牙芯片132、无线通信芯片133、近场通信(NFC)芯片134等。处理器120通过使用通信器130与各种外部装置执行通信。
Wi-Fi芯片131和蓝牙芯片132分别通过使用Wi-Fi方法和蓝牙方法执行通信。在使用Wi-Fi芯片131或蓝牙芯片132的情况下,首先发送和接收诸如服务集标识符(SSID)或会话密钥的各种类型的连接信息,并且通过使该信息执行通信的连接,此后可以发送和接收各种类型的信息。无线通信芯片133是指根据诸如IEEE、紫蜂(ZigBee)、第三代(3G)第三代合作伙伴计划(3GPP)和长期演进(LTE)的各种通信标准执行通信的芯片。NFC芯片134是指使用诸如135kHz、13.56MHz、433MHz、860~960MHz和2.45GHz的各种RF-ID频带之中的13.56MHz频带以NFC方法操作的芯片。
处理器120可以通过通信器130从外部装置接收人工智能模块、人工智能模型中包括的矩阵、或量子化的矩阵中的至少一个的参数值,并将接收到的数据存储在存储器中110。或者,处理器120可以通过人工智能算法直接训练人工智能模型,并将训练后的人工智能模型存储在存储器110中。人工智能模型可以包括至少一个矩阵。
用户界面140接收各种用户交互。用户界面140可以根据电子装置100的实现示例以各种形式实现。例如,用户界面140可以是提供在电子装置100上的按钮、接收用户语音的麦克风、检测用户动作的相机等。当电子装置100被实现为基于触摸的电子装置时,用户界面140可以被实现为构成具有触摸板的层间结构的触摸屏。在这种情况下,用户界面140可以用作显示器150。
音频处理器160是执行音频数据的处理的部件。在音频处理器160处,可以执行各种类型的处理,诸如音频数据的解码或放大、噪声过滤等。
视频处理器170是执行视频数据的处理的部件。在视频处理器170处,可以执行各种类型的图像处理,诸如视频数据的解码、缩放、噪声过滤、帧速率转换和分辨率转换。
通过如上所述的方法,处理器120可以量子化包括在人工智能模型中的矩阵。
本公开的实施例可以被实现为包括可由机器(例如计算机)读取的一个或更多个指令的软件(例如程序),所述一个或更多个指令存储在机器可读(例如计算机可读)存储介质(例如内部存储器)或外部存储器中。在一实施例中,机器(例如电子装置100的处理器)可以加载存储在存储介质中的一个或更多个指令,并且可以根据指令操作。当指令由处理器运行时,处理器可以执行与指令本身相对应的功能,或者可以在其控制下使用其他部件。指令可以包括由编译器或解释器生成或运行的代码。机器可读的存储介质可以是非暂时性存储介质。术语“非暂时性”意味着存储介质不包括信号,并且是有形的,但是并不指示数据是半永久地还是临时地存储在该存储介质中。
根据实施例的方法可以在被存储为计算机程序产品时被提供。计算机程序产品是指可在销售者与购买者之间交易的产品。计算机程序产品可以作为机器可读的存储介质(例如紧凑盘ROM(CD-ROM))在线发布,或通过应用商店(例如play store TM)在线发布。在在线发布的情况下,计算机程序产品的至少一部分可以至少临时地存储在诸如制造商的服务器、应用商店的服务器和中继服务器的存储器的存储介质中,或者可以临时地生成。
上述实施例可以在记录介质中实现,该记录介质可以由计算机或类似于计算机的装置通过使用软件、硬件或其组合来读取。在一些情况下,上述实施例可以被实现为处理器本身。根据借助于软件的实现,上述实施例(诸如过程和功能)可以被实现为单独的软件模块。每个软件模块可以执行在本说明书中描述的一个或更多个功能和操作。
用于执行根据实施例的机器的处理操作的计算机指令可以被存储在非暂时性计算机可读介质中。当指令由特定机器的处理器运行时,存储在这样的非暂时性计算机可读介质中的计算机指令使根据实施例的机器处的处理操作由特定机器执行。非暂时性计算机可读介质是指半永久地存储数据并可由机器读取的介质,而不是指短暂存储数据的介质(诸如寄存器、高速缓存和存储器)。作为非暂时性计算机可读介质的特定示例,可以有CD、DVD、硬盘、蓝光盘、USB、存储卡、ROM等。
另外,根据实施例的每个部件(例如模块或程序)可以由单个对象或多个对象构成。此外,在上述部件之中,可以省略一些部件,或者可以在实施例中进一步包括其他部件。一些部件(例如模块或程序)可以被集成为对象,并以相同或相似的方式执行在集成之前由每个部件执行的功能。由根据实施例的模块、程序或其他部件执行的操作可以顺序地、并行地、重复地或启发式地运行。至少一些操作可以以不同的顺序运行或被省略,或者可以添加其他操作。
虽然已经参照附图具体示出和描述了本公开的实施例,但是提供这些实施例是出于说明的目的,并且本领域普通技术人员将理解,可以从本公开进行各种修改和等同的其他实施例。因此,本公开的真实技术范围由所附权利要求的技术精神限定。

Claims (15)

1.一种用于电子装置执行人工智能模型的操作的方法,该方法包括:
在用于神经网络模型的操作的多个数据存储在存储器中时,获得用于电子装置的硬件的资源信息,所述多个数据分别具有彼此不同的重要程度;
基于所获取的资源信息,根据所述多个数据中的每个的重要程度,获得所述多个数据之中的用于神经网络模型的操作的数据;以及
通过使用所获得的数据执行神经网络模型的操作。
2.根据权利要求1所述的方法,其中,所述多个数据包括用于神经网络模型的操作的量子化的矩阵的参数值。
3.根据权利要求2所述的方法,其中,所述量子化的矩阵的参数值包括分别具有彼此不同的重要程度的二进制数据。
4.根据权利要求3所述的方法,其中,在二进制数据中,二进制数据的重要程度分别随着二进制数据的比特顺序增加而降低。
5.根据权利要求3所述的方法,其中,所述执行神经网络模型的操作还包括:
对输入值和二进制数据的每个比特执行矩阵运算;
对每个比特的运算结果求和;以及
获取输出值。
6.根据权利要求3所述的方法,其中,所述执行神经网络模型的操作还包括分别基于二进制数据的每个比特的顺序使用多个神经网络处理单元来执行矩阵并行运算。
7.根据权利要求2所述的方法,其中,所述量子化的矩阵的参数值包括通过使用贪婪算法量子化的矩阵的参数值。
8.根据权利要求1所述的方法,其中,所述获得数据还包括通过参照其中定义多个调度模式的查找表获得将用于神经网络模型的操作的数据。
9.根据权利要求1所述的方法,其中,所述获得数据还包括获得所述多个数据之中的将用于神经网络模型的操作的二进制数据的数量,该二进制数据的数量少于所述多个数据的数量。
10.根据权利要求1所述的方法,其中,所述用于硬件的资源信息包括电子装置的功耗、执行神经网络模型的操作的处理单元的数量或神经网络模型的预定延迟中的至少一项。
11.一种电子装置,包括:
存储器,存储分别具有彼此不同的重要程度的多个数据;以及
处理器,被配置为:
基于用于电子装置的硬件的资源信息,根据存储在存储器中的所述多个数据中的每个的重要程度,获得所述多个数据之中的将用于神经网络模型的操作的数据,以及
通过使用所获得的数据执行神经网络模型的操作。
12.根据权利要求11所述的电子装置,其中,所述多个数据包括用于神经网络模型的操作的量子化的矩阵的参数值。
13.根据权利要求12所述的电子装置,其中,所述量子化的矩阵的参数值包括分别具有彼此不同的重要程度的二进制数据。
14.根据权利要求13所述的电子装置,其中,在二进制数据中,所述二进制数据的重要程度分别随着二进制数据的比特顺序增加而降低。
15.根据权利要求13所述的电子装置,其中,所述处理器还被配置为:
对输入值和二进制数据的每个比特执行矩阵运算,
对每个比特的运算结果求和,以及
获取输出值。
CN202010493206.8A 2019-06-05 2020-06-03 电子装置和执行该电子装置的操作的方法 Pending CN112052943A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020190066396A KR20200139909A (ko) 2019-06-05 2019-06-05 전자 장치 및 그의 연산 수행 방법
KR10-2019-0066396 2019-06-05

Publications (1)

Publication Number Publication Date
CN112052943A true CN112052943A (zh) 2020-12-08

Family

ID=73608856

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010493206.8A Pending CN112052943A (zh) 2019-06-05 2020-06-03 电子装置和执行该电子装置的操作的方法

Country Status (5)

Country Link
US (1) US11734577B2 (zh)
EP (1) EP3908985A4 (zh)
KR (1) KR20200139909A (zh)
CN (1) CN112052943A (zh)
WO (1) WO2020246724A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110727633A (zh) * 2019-09-17 2020-01-24 广东高云半导体科技股份有限公司 基于SoC FPGA的边缘人工智能计算系统构架
KR102602584B1 (ko) * 2021-04-14 2023-11-16 한국전자통신연구원 인공 지능 반도체 프로세서 및 인공 지능 반도체 프로세서의 동작 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5809490A (en) * 1996-05-03 1998-09-15 Aspen Technology Inc. Apparatus and method for selecting a working data set for model development
US20160086078A1 (en) * 2014-09-22 2016-03-24 Zhengping Ji Object recognition with reduced neural network weight precision
CN107103113A (zh) * 2017-03-23 2017-08-29 中国科学院计算技术研究所 面向神经网络处理器的自动化设计方法、装置及优化方法
US20180046903A1 (en) * 2016-08-12 2018-02-15 DeePhi Technology Co., Ltd. Deep processing unit (dpu) for implementing an artificial neural network (ann)
CN108734285A (zh) * 2017-04-24 2018-11-02 英特尔公司 神经网络的计算优化

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100248072B1 (ko) 1997-11-11 2000-03-15 정선종 신경망을 이용한 영상 데이터 압축/복원 장치의 구조 및압축/복원 방법
HUP0301368A3 (en) 2003-05-20 2005-09-28 Amt Advanced Multimedia Techno Method and equipment for compressing motion picture data
KR100662516B1 (ko) 2004-11-16 2006-12-28 한국전자통신연구원 변조된 수신 신호의 신호 대 잡음비 추정 장치 및 그 방법
KR100790900B1 (ko) 2006-12-14 2008-01-03 삼성전자주식회사 영상 부호화를 위한 초기 QP (QuantizationParameter) 값 예측 방법 및 장치
US9400955B2 (en) 2013-12-13 2016-07-26 Amazon Technologies, Inc. Reducing dynamic range of low-rank decomposition matrices
US20160328645A1 (en) 2015-05-08 2016-11-10 Qualcomm Incorporated Reduced computational complexity for fixed point neural network
US10262259B2 (en) * 2015-05-08 2019-04-16 Qualcomm Incorporated Bit width selection for fixed point neural networks
WO2017049496A1 (en) 2015-09-23 2017-03-30 Intel Corporation Apparatus and method for local quantization for convolutional neural networks (cnns)
US10831444B2 (en) 2016-04-04 2020-11-10 Technion Research & Development Foundation Limited Quantized neural network training and inference
US10832136B2 (en) 2016-05-18 2020-11-10 Nec Corporation Passive pruning of filters in a convolutional neural network
CN106203624B (zh) 2016-06-23 2019-06-21 上海交通大学 基于深度神经网络的矢量量化系统及方法
KR102608467B1 (ko) 2016-07-28 2023-12-04 삼성전자주식회사 뉴럴 네트워크의 경량화 방법, 이를 이용한 인식 방법, 및 그 장치
US11321609B2 (en) 2016-10-19 2022-05-03 Samsung Electronics Co., Ltd Method and apparatus for neural network quantization
US10795836B2 (en) * 2017-04-17 2020-10-06 Microsoft Technology Licensing, Llc Data processing performance enhancement for neural networks using a virtualized data iterator
KR102034661B1 (ko) 2017-04-28 2019-10-21 서울대학교산학협력단 뉴럴네트워크를 위한 데이터 양자화 방법 및 장치
KR102526650B1 (ko) 2017-05-25 2023-04-27 삼성전자주식회사 뉴럴 네트워크에서 데이터를 양자화하는 방법 및 장치
US9916531B1 (en) 2017-06-22 2018-03-13 Intel Corporation Accumulator constrained quantization of convolutional neural networks
US20200184318A1 (en) 2017-07-07 2020-06-11 Mitsubishi Electric Corporation Data processing device, data processing method, and non-transitory computer-readble storage medium
KR102601604B1 (ko) 2017-08-04 2023-11-13 삼성전자주식회사 뉴럴 네트워크의 파라미터들을 양자화하는 방법 및 장치
JP2019032729A (ja) 2017-08-09 2019-02-28 富士通株式会社 演算時間算出方法、演算時間算出装置、演算時間算出プログラム及び演算時間算出システム
KR102413028B1 (ko) 2017-08-16 2022-06-23 에스케이하이닉스 주식회사 중첩 신경망을 프루닝하는 방법 및 장치
US11308418B2 (en) * 2017-09-15 2022-04-19 Sap Se Automatic selection of variables for a machine-learning model
WO2019088657A1 (ko) 2017-10-30 2019-05-09 한국전자통신연구원 은닉 변수를 이용하는 영상 및 신경망 압축을 위한 방법 및 장치
KR20190054449A (ko) * 2017-11-13 2019-05-22 한국과학기술원 이종 클러스터 환경에서 신경망 트레이닝 가속화를 위한 연산 노드 배치 기법
US11645520B2 (en) * 2017-12-15 2023-05-09 Nokia Technologies Oy Methods and apparatuses for inferencing using a neural network
US11755901B2 (en) 2017-12-28 2023-09-12 Intel Corporation Dynamic quantization of neural networks
KR20190093932A (ko) 2018-02-02 2019-08-12 한국전자통신연구원 딥러닝 시스템에서의 연산 처리 장치 및 방법
US11423312B2 (en) 2018-05-14 2022-08-23 Samsung Electronics Co., Ltd Method and apparatus for universal pruning and compression of deep convolutional neural networks under joint sparsity constraints
JP7045947B2 (ja) 2018-07-05 2022-04-01 株式会社日立製作所 ニューラルネットワークの学習装置および学習方法
US20200082269A1 (en) 2018-09-12 2020-03-12 Nvidia Corporation Memory efficient neural networks
US20200097818A1 (en) 2018-09-26 2020-03-26 Xinlin LI Method and system for training binary quantized weight and activation function for deep neural networks
US20210232894A1 (en) 2018-10-10 2021-07-29 Leapmind Inc. Neural network processing apparatus, neural network processing method, and neural network processing program
KR102153192B1 (ko) 2018-10-31 2020-09-08 주식회사 노타 시뮬레이션-가이드된 반복적 프루닝을 사용하는 효율적인 네트워크 압축
US11588499B2 (en) 2018-11-05 2023-02-21 Samsung Electronics Co., Ltd. Lossless compression of neural network weights

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5809490A (en) * 1996-05-03 1998-09-15 Aspen Technology Inc. Apparatus and method for selecting a working data set for model development
US20160086078A1 (en) * 2014-09-22 2016-03-24 Zhengping Ji Object recognition with reduced neural network weight precision
US20180046903A1 (en) * 2016-08-12 2018-02-15 DeePhi Technology Co., Ltd. Deep processing unit (dpu) for implementing an artificial neural network (ann)
CN107103113A (zh) * 2017-03-23 2017-08-29 中国科学院计算技术研究所 面向神经网络处理器的自动化设计方法、装置及优化方法
CN108734285A (zh) * 2017-04-24 2018-11-02 英特尔公司 神经网络的计算优化

Also Published As

Publication number Publication date
EP3908985A4 (en) 2022-06-29
KR20200139909A (ko) 2020-12-15
US11734577B2 (en) 2023-08-22
EP3908985A1 (en) 2021-11-17
WO2020246724A1 (en) 2020-12-10
US20200387801A1 (en) 2020-12-10

Similar Documents

Publication Publication Date Title
US20200364552A1 (en) Quantization method of improving the model inference accuracy
WO2022042113A1 (zh) 数据处理方法、装置、电子设备及存储介质
CN114723033B (zh) 数据处理方法、装置、ai芯片、电子设备及存储介质
CN111178258B (zh) 一种图像识别的方法、系统、设备及可读存储介质
CN110334436B (zh) 一种数据处理方法以及设备
US20100241600A1 (en) Method, Apparatus and Computer Program Product for an Instruction Predictor for a Virtual Machine
CN112052943A (zh) 电子装置和执行该电子装置的操作的方法
US20210279589A1 (en) Electronic device and control method thereof
KR20180103671A (ko) 언어 모델을 압축하기 위한 전자 장치, 추천 워드를 제공하기 위한 전자 장치 및 그 동작 방법들
US20240095522A1 (en) Neural network generation device, neural network computing device, edge device, neural network control method, and software generation program
CN113159318B (zh) 一种神经网络的量化方法、装置、电子设备及存储介质
CN115470901B (zh) 支持移动端异构处理器分载的混合精度训练方法及设备
US11475281B2 (en) Electronic apparatus and control method thereof
US11861452B1 (en) Quantized softmax layer for neural networks
CN115249058A (zh) 神经网络模型的量化方法、装置、终端及存储介质
US20200110635A1 (en) Data processing apparatus and method
CN114692824A (zh) 一种神经网络模型的量化训练方法、装置和设备
CN112825152A (zh) 深度学习模型的压缩方法、装置、设备及存储介质
CN111027682A (zh) 神经网络处理器、电子设备及数据处理方法
WO2024045175A1 (en) Optimization of executable graph for artificial intelligence model inference
EP4414892A1 (en) Instruction generation method and apparatus for neural network accelerator, and electronic device
US20240037412A1 (en) Neural network generation device, neural network control method, and software generation program
CN115730224A (zh) 一种业务处理方法、装置、设备及存储介质
JP2022038363A (ja) データ処理方法、データ処理装置およびデータ処理プログラム
JP2022114698A (ja) ニューラルネットワーク生成装置、ニューラルネットワーク制御方法およびソフトウェア生成プログラム

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