CN113743571A - 数据处理的方法、电子设备和存储介质 - Google Patents
数据处理的方法、电子设备和存储介质 Download PDFInfo
- Publication number
- CN113743571A CN113743571A CN202010480676.0A CN202010480676A CN113743571A CN 113743571 A CN113743571 A CN 113743571A CN 202010480676 A CN202010480676 A CN 202010480676A CN 113743571 A CN113743571 A CN 113743571A
- Authority
- CN
- China
- Prior art keywords
- matrix
- kronecker
- dimension
- factor matrix
- square
- 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
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/044—Recurrent networks, e.g. Hopfield 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/08—Learning methods
-
- 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/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- 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/08—Learning methods
- G06N3/09—Supervised learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本公开的实施例提供了数据处理的方法、设备和存储介质,涉及人工智能领域。本申请的数据处理方法中,数据处理设备获取用于指示神经网络模型的高阶信息矩阵的克罗内克因子矩阵;对克罗内克因子矩阵进行切分以得到多个方阵,其中,切分出的多个方阵为克罗内克因子矩阵的子矩阵,并且该多个方阵的主对角线一一与克罗内克因子矩阵主对角线的一部分对应;再基于得到的多个方阵,调整神经网络模型的参数。这样,基于切分出的方阵而不是直接基于克罗内克因子矩阵来调整该神经网络模型的参数,可以降低训练模型所需的时间成本。
Description
技术领域
本公开的实施例主要涉及计算机技术领域,并且更具体地,涉及用于数据处理的方法、装置、电子设备以及计算机可读存储介质。
背景技术
随着计算机技术的不断发展,深度学习技术已经被应用到各种各样的领域。目前,深度学习在许多应用领域都表现出了优异的性能,例如图像识别、目标检测和自然语言处理等领域。
深度学习模型的训练已经成为当前关注的焦点。针对深度学习模型的常用优化算法包括一阶优化算法(例如,梯度下降算法)和高阶优化算法(例如,自然梯度算法)。一阶优化收敛速度较差。相比而言,高阶优化算法通常能够带来更好的训练精度,然而却需要更大的时间成本。
发明内容
本公开的实施例提供了一种数据处理的方案。
在本公开的第一方面,提供了用于数据处理设备的方法。该方法包括:获取用于指示神经网络模型的高阶信息矩阵的克罗内克因子矩阵,高阶信息矩阵用于校正神经网络模型的一阶梯度;对克罗内克因子矩阵进行切分以得到多个方阵,使得多个方阵为克罗内克因子矩阵的子矩阵,多个方阵的主对角线一一与克罗内克因子矩阵主对角线的一部分对应;以及基于多个方阵,调整神经网络模型的参数。
在本公开中,高阶信息矩阵是指在神经网络模型的训练过程中产生的用于校正模型的一阶倒数的矩阵,例如海森矩阵、费舍矩阵和二阶矩矩阵等。克罗内克因子矩阵是指对高阶信息矩阵进行克罗内克分解所获得的一对矩阵,该对对阵的克罗内克乘积等于高阶信息矩阵。
在本公开中,可以按照预定的切分维度以沿克罗内克因子矩阵的主对角线进行切分,以获取多个秩等于切分维度的方阵。在一些情况下,当克罗内克因子矩阵的秩能够被切分维度整除时,克罗内克因子将被切分为整数个具有相同秩的方阵。在另一些情况下,当克罗内克因子矩阵的秩不能被切分维度整除时,克罗内克因子将被切分为整数个具有相同秩的方阵以及一个或多个秩小于切分维度的方阵。
基于这样的切分,多个方阵的主对角线一一与克罗内克因子矩阵主对角线的一部分对应,也即,多个方阵的所有主对角线上的元素将包括克罗内克因子矩阵的主对角线上所有的元素。另外,该多个方阵中秩大于1的方阵也包括该克罗内克因子矩阵中的其他元素,这些元素是该克罗内克因子矩阵中临近主对角线的元素。
另外,本公开中的数据处理设备,是具有AI数据计算能力的设备,可以是终端设备也可以是网络设备。
通过这样的方式,本公开的实施例将克罗内克因子矩阵转换为多个小的方阵的近似,从而大大降低了运算的时间复杂度,从而降低了模型训练的时间成本。
在第一方面的某些实现方式中,数据处理设备包括用于执行调整的计算资源,并且其中对克罗内克因子矩阵进行切分包括:基于计算资源的资源标识和神经网络模型的模型标识对克罗内克因子矩阵进行切分。
在一些实施例中,模型标识可以是指示神经网络模型的类型的标识信息,例如“resnet50”可以指示神经网络模型为50层的深度残差网络(ResNet)。模型标识的示例还可以包括“resnet18”、“resnet101”、“VGG16”、“LeNet5”等等。附加地,资源标识可以是指示计算资源的型号的标识信息,例如芯片名称,芯片代号、芯片种类编号甚至芯片所在的设备的标识都可以用作资源标识。作为示例,资源标识可以是用于训练神经网络模型的AI芯片的具体型号,例如“GPU V100”。备选地,资源标识也可以是计算资源的唯一标识,例如,计算资源的MAC地址等。
在一些实施例中,可以基于资源标识和模型标识来确定用于切分克罗内克因子矩阵的切分维度,并且基于该切分维度来对克罗内克因子切分。例如,可以根据资源标识和模型标识来查询对应的历史优化策略,以确定用于切分克罗内克因子矩阵的切分维度。基于这样的方式,本公开的实施例能够利用与模型和计算资源相对应的历史优化策略来快速地确定该如何切分克罗内克因子矩阵,从而进一步降低计算成本。
在第一方面的某些实现方式中,数据处理设备中存储有资源标识、模型标识和维度之间的对应关系,维度指示克罗内克因子矩阵被切分成得到多个方阵中至少一个方阵的秩。
在一些实施例中,资源标识、模型标识和维度之间的对应关系例如可以被存储在配置文件中,其中对应关系可以是资源标识、模型标识和维度三者之间的对应关系,也可以是三者中两两之间的对应关系。通过维护资源标识、模型标识和维度之间的对应关系,本公开的实施例能够快速地实现基于资源标识和模型标识的查找,从而能够高效地从历史优化策略中确定可用的优化策略。
在第一方面的某些实现方式中,数据处理设备包括用于执行调整的计算资源,并且其中对克罗内克因子矩阵进行切分包括:基于多个维度对应的性能信息,从多个维度中选择目标维度来切分克罗内克因子矩阵,其中,一个维度对应的性能信息指示计算资源处理与该维度对应的方阵的效率,目标维度指示克罗内克因子矩阵被切分成得到多个方阵中至少一个方阵的秩。
本申请中,可以根据与多个维度对应的性能信息来选择目标维度,并基于该维度来切分克罗内克因子矩阵。例如,多个维度可以是预设的一组候选维度。可以构建与一组候选维度对应的一组样本方阵,并通过获取计算资源处理这些样本方阵的效率来确定与不同维度所对应的性能信息。
在一些实施例中,可以为每个维度确定对应的性能信息,并从中选择性能信息满足预定要求的(例如,性能优于特定阈值或者最优的性能)维度来作为目标维度。通过这样的方式,本公开的实施例中能够保证计算资源能够高效地处理经切分得到的多个方阵,从而提高计算效率。
在第一方面的某些实现方式中,一个维度对应的性能信息的值与数据处理设备计算与维度对应的方阵的逆矩阵所需的时间有关。
在本申请中,由于计算资源的主要时间开销来自与方阵的逆矩阵运算,因此,通过在选择目标切分维度时考虑计算资源求解对应方阵的逆矩阵的效率,本公开的实施例可以进一步降低求解逆矩阵所需要的时间开销。
在第一方面的某些实现方式中,对克罗内克因子矩阵进行切分包括:基于多个维度对应的信息损失,从多个维度中选择目标维度来切分克罗内克因子矩阵,其中,一个维度对应的信息损失指示由于利用该维度来切分参考克罗内克因子矩阵造成的信息损失。
在一些实施例中,例如可以利用一组候选维度中的每个维度来对参考克罗内克因子矩阵进行切分,来确定与各维度所对应的信息损失。为了更准确地评估实际训练过程中的信息损失,参考克罗内克因子矩阵例如可以是使用相同的训练数据对神经网络模型进行预定次迭代后所获得的克罗内克因子矩阵。
在一些实施例中,可以为每个维度确定对应的信息损失,并从中选择信息损失满足预定要求的(例如,信息损失少于特定阈值或者最少的信息损失)维度来作为目标维度。在本申请中,通过在选择目标切分维度时考虑信息损失,本公开的实施例可以在降低求逆矩阵的时间复杂度的同时还保证求逆矩阵的计算精度。
在第一方面的某些实现方式中,其中与一个维度对应的信息损失是利用该维度切分参考克罗内克因子矩阵所得到的多个方阵的联合矩阵的谱范数与参考克罗内克因子矩阵的谱范数之间的差。
在本申请中,通过谱范数来量化信息损失,能够使得数据处理设备更为高效地确定目标切分维度。
在第一方面的某些实现方式中,数据处理设备包括用于执行调整的计算资源,其中对克罗内克因子矩阵进行切分包括:基于多个维度对应的性能信息和多个维度对应的信息损失,从多个维度中选择目标维度来切分克罗内克因子矩阵,其中,该维度对应的性能信息指示计算资源处理与该维度对应的方阵的效率,该维度对应的信息损失指示由于利用该维度来切分参考克罗内克因子矩阵造成的信息损失,该维度指示克罗内克因子矩阵被切分成得到多个方阵中至少一个方阵的秩。
在一些实施例中,可以为每个维度确定对应的性能信息和信息损失,并根据二者确定目标维度。例如,目标维度可以使得对应的性能信息和信息损失两者均满足预定的条件(例如,性能优于特定阈值、并且信息损失少于特定阈值)。
在一些实施例中,目标维度也可以例如是根据性能信息和信息损失的归一化结果而被确定的。例如,通过构建不同候选维度与性能信息和/或信息损失之间的拟合函数,通过确定拟合函数交点的方式来确定目标维度。在本申请中,通过同时考虑性能信息和信息损失两者,本公开的实施例可以在求解逆矩阵的时间成本和计算精度之间实现平衡,避免计算精度过差或者计算效率过低。
在第一方面的某些实现方式中,调整神经网络模型的参数包括:并行处理多个方阵,以确定多个方阵的多个逆矩阵;以及基于多个方阵的多个逆矩阵的组合,调整神经网络模型的参数。
在本申请中,由于切分得到的方阵中的至少一些方阵将具有相同的秩,这为并行处理提供了良好的支持。通过并行处理这些方阵,能够进一步降低求解逆矩阵的时间成本。
在第一方面的某些实现方式中,其中神经网络模型为图像处理模型,并且其中获取克罗内克因子矩阵包括:获取图像训练数据;以及将图像训练数据应用于图像处理模型以获取克罗内克因子矩阵。
在本申请中,神经网络模型所处理的对象可以是图像数据,通过本公开的方法,能够更为快速地实现图像分析模型的训练,使得图像分析模型能够更快地被投入使用。
在第一方面的某些实现方式中,神经网络模型为文本处理模型,并且其中获取克罗内克因子矩阵包括:获取文本训练数据;以及将文本训练数据应用于文本处理模型以获取克罗内克因子矩阵。
在本申请中,神经网络模型所处理的对象可以是文本数据,通过本公开的方法,能够更为快速地实现文本处理模型的训练,使得文本处理模型能够更快地被投入使用。
在本公开的第二方面,提供了一种数据处理装置,包括获取单元,被配置为获取用于指示神经网络模型的高阶信息矩阵的克罗内克因子矩阵,高阶信息矩阵用于校正神经网络模型的一阶梯度。数据处理装置还包括切分单元,被配置为对克罗内克因子矩阵进行切分以得到多个方阵,使得多个方阵为克罗内克因子矩阵的子矩阵,多个方阵的主对角线一一与克罗内克因子矩阵主对角线的一部分对应。此外,数据处理装置还包括调整单元,被配置为基于多个方阵调整神经网络模型的参数。
在本公开中,高阶信息矩阵是指在神经网络模型的训练过程中产生的用于校正模型的一阶倒数的矩阵,例如海森矩阵、费舍矩阵和二阶矩矩阵等。克罗内克因子矩阵是指对高阶信息矩阵进行克罗内克分解所获得的一对矩阵,该对对阵的克罗内克乘积等于高阶信息矩阵。
在本公开中,切分单元可以按照预定的切分维度以沿克罗内克因子矩阵的主对角线进行切分,以首先获取多个秩等于切分维度的方阵。在一些情况下,当克罗内克因子矩阵的秩能够被切分维度整除时,克罗内克因子将被切分为整数个具有相同秩的方阵。在另一些情况下,当克罗内克因子矩阵的秩能够被切分维度整除时,克罗内克因子将被切分为整数个具有相同秩的方阵以及一个秩小于切分维度的方阵。
基于这样的切分,多个方阵的主对角线一一与克罗内克因子矩阵主对角线的一部分对应,也即,多个方阵的所有主对角线上的元素将包括克罗内克因子矩阵的主对角线上所有的元素。
通过这样的方式,本公开的实施例将克罗内克因子矩阵转换为多个小的方阵的近似,从而大大降低了运算的时间复杂度,从而降低了模型训练的时间成本。
在第二方面的某些实现方式中,切分单元还被配置为:基于计算资源的资源标识和神经网络模型的模型标识对克罗内克因子矩阵进行切分。
在一些实施例中,模型标识可以是指示神经网络模型的类型的标识信息,例如“resnet50”可以指示神经网络模型为50层的深度残差网络(ResNet)。模型标识的示例还可以包括“resnet18”、“resnet101”、“VGG16”、“LeNet5”等等。附加地,资源标识可以是指示计算资源的型号的标识信息,例如芯片名称,芯片代号、芯片种类编号甚至芯片所在的设备的标识都可以用作资源标识。作为示例,资源标识可以是用于训练神经网络模型的AI芯片的具体型号,例如“GPU V100”。备选地,资源标识也可以是计算资源的唯一标识,例如,计算资源的MAC地址等。
在一些实施例中,切分单元可以基于资源标识和模型标识来确定用于切分克罗内克因子矩阵的切分维度,并且基于该切分维度来对克罗内克因子切分。例如,切分单元可以根据资源标识和模型标识来查询对应的历史优化策略,以确定用于切分克罗内克因子矩阵的切分维度。基于这样的方式,本公开的实施例能够利用与模型和计算资源相对应的历史优化策略来快速地确定该如何切分克罗内克因子矩阵,从而进一步降低计算成本。
在第二方面的某些实现方式中,数据处理设备中存储有资源标识、模型标识和维度之间的对应关系,并且维度指示克罗内克因子矩阵被切分成得到多个方阵中至少一个方阵的秩。
在一些实施例中,资源标识、模型标识和维度之间的对应关系例如可以被存储在配置文件中,其中对应关系可以是资源标识、模型标识和维度三者之间的对应关系,也可以是三者中两两之间的对应关系。通过维护资源标识、模型标识和维度之间的对应关系,本公开的实施例能够快速地实现基于资源标识和模型标识的查找,从而能够高效地从历史优化策略中确定可用的优化策略。
在第二方面的某些实现方式中,切分单元还被配置为:基于多个维度对应的性能信息,从多个维度中选择目标维度来切分克罗内克因子矩阵,其中,一个维度对应的性能信息指示计算资源处理与该维度对应的方阵的效率,目标维度指示克罗内克因子矩阵被切分成得到多个方阵中至少一个方阵的秩。
本一些实施例中,切分单元可以根据与多个维度对应的性能信息来选择目标维度,并基于该维度来切分克罗内克因子矩阵。例如,多个维度可以是预设的一组候选维度。可以构建与一组候选维度对应的一组样本方阵,并通过获取计算资源处理这些样本方阵的效率来确定与不同维度所对应的性能信息。
在一些实施例中,切分单元可以为每个维度确定对应的性能信息,并从中选择性能信息满足预定要求的(例如,性能优于特定阈值或者最优的性能)维度来作为目标维度。通过这样的方式,本公开的实施例中能够保证计算资源能够高效地处理经切分得到的多个方阵,从而提高计算效率。
在第二方面的某些实现方式中,一个维度对应的性能信息的值与数据处理设备计算与维度对应的方阵的逆矩阵所需的时间有关。
在本申请中,由于计算资源的主要时间开销来自与方阵的逆矩阵运算,因此,通过在选择目标切分维度时考虑计算资源求解对应方阵的逆矩阵的效率,本公开的实施例可以进一步降低求解逆矩阵所需要的时间开销。
在第二方面的某些实现方式中,切分单元还被配置为:基于多个维度对应的信息损失,从多个维度中选择目标维度来切分克罗内克因子矩阵,其中,一个维度对应的信息损失指示由于利用该维度来切分参考克罗内克因子矩阵造成的信息损失,目标维度指示克罗内克因子矩阵被切分成得到多个方阵中至少一个方阵的秩。
在一些实施例中,切分单元例如可以利用一组候选维度中的每个维度来对参考克罗内克因子矩阵进行切分,来确定与各维度所对应的信息损失。为了更准确地评估实际训练过程中的信息损失,参考克罗内克因子矩阵例如可以是使用相同的训练数据对神经网络模型进行预定次迭代后所获得的克罗内克因子矩阵。
在一些实施例中,切分单元可以为每个维度确定对应的信息损失,并从中选择信息损失满足预定要求的(例如,信息损失少于特定阈值或者最少的信息损失)维度来作为目标维度。在本申请中,通过在选择目标切分维度时考虑信息损失,本公开的实施例可以在降低求逆矩阵的时间复杂度的同时还保证求逆矩阵的计算精度。
在第二方面的某些实现方式中,与一个维度对应的信息损失是利用该维度切分参考克罗内克因子矩阵所得到的多个方阵的联合矩阵的谱范数与参考克罗内克因子矩阵的谱范数之间的差。
在本申请中,通过谱范数来量化信息损失,能够使得数据处理设备更为高效地确定目标切分维度。
在第二方面的某些实现方式中,切分单元还被配置为:基于多个维度对应的性能信息和多个维度对应的信息损失,从多个维度中选择目标维度来切分克罗内克因子矩阵,其中,一个维度对应的性能信息指示计算资源处理与维度对应的方阵的效率,一个维度对应的信息损失指示由于利用维度来切分参考克罗内克因子矩阵造成的信息损失,目标维度指示克罗内克因子矩阵被切分成得到多个方阵中至少一个方阵的秩。
在一些实施例中,切分单元可以为每个维度确定对应的性能信息和信息损失,并根据二者确定目标维度。例如,目标维度可以使得对应的性能信息和信息损失两者均满足预定的条件(例如,性能优于特定阈值、并且信息损失少于特定阈值)。
在一些实施例中,目标维度也可以例如是根据性能信息和信息损失的归一化结果而被确定的。例如,通过构建不同候选维度与性能信息和/或信息损失之间的拟合函数,通过确定拟合函数交点的方式来确定目标维度。在本申请中,通过同时考虑性能信息和信息损失两者,本公开的实施例可以在求解逆矩阵的时间成本和计算精度之间实现平衡,避免计算精度过差或者计算效率过低。
在第二方面的某些实现方式中,调整模块被配置为:首先并行处理多个方阵,以确定多个方阵的多个逆矩阵。随后,基于多个方阵的多个逆矩阵的组合,调整神经网络模型的参数。
在本申请中,由于切分得到的方阵中的至少一些方阵将具有相同的秩,这为并行处理提供了良好的支持。通过并行处理这些方阵,能够进一步降低求解逆矩阵的时间成本。
在第二方面的某些实现方式中,神经网络模型为图像处理模型。获取模块被配置为:获取图像训练数据;随后,将图像训练数据应用于图像处理模型以获取克罗内克因子矩阵。
在本申请中,神经网络模型所处理的对象可以是图像数据,通过本公开的方法,能够更为快速地实现图像分析模型的训练,使得图像分析模型能够更快地被投入使用。
在第二方面的某些实现方式中,神经网络模型为文本处理模型。获取模块被配置为:获取文本训练数据;随后,将文本训练数据应用于文本处理模型以获取克罗内克因子矩阵。
在本申请中,神经网络模型所处理的对象可以是文本数据,通过本公开的方法,能够更为快速地实现文本处理模型的训练,使得文本处理模型能够更快地被投入使用。
在本公开的第三方面,提供了一种电子设备,包括:至少一个计算单元;至少一个存储器,至少一个存储器被耦合到至少一个计算单元并且存储用于由至少一个计算单元执行的指令,指令当由至少一个计算单元执行时,使得设备第一方面或者第一方面中的任意一种实现方式中的方法。
在本公开的第四方面,提供了一种计算机可读存储介质,其上存储有一条或多条计算机指令,其中一条或多条计算机指令被处理器执行实现第一方面或者第一方面中的任意一种实现方式中的方法。
在本公开的第五方面,提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行第一方面或者第一方面中的任意一种实现方式中的方法的部分或全部步骤的指令。
可以理解地,上述提供的第三方面所述的电子设备、第四方面所述的计算机存储介质或者第五方面所述的计算机程序产品均用于执行第一方面所提供的方法。因此,关于第一方面的解释或者说明同样适用于第三方面、第四方面和第五方面。此外,第三方面、第四方面和第五方面所能达到的有益效果可参考对应方法中的有益效果,此处不再赘述。
附图说明
结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标注表示相同或相似的元素,其中:
图1示出了深度学习模型的高阶信息矩阵的分解过程的示意图;
图2示出了本公开的多个实施例能够在其中实现的示例环境的示意图;
图3示出了根据本公开的一些实施例的示例数据处理模块的结构;
图4示出了根据本公开的一些实施例的示例克罗内克因子矩阵切分模块的结构;
图5示出了根据本公开的一些实施例的示例切分维度计算模块的结构;
图6示出了根据本公开的一些实施例的示例拟合的示意图;
图7A至图7C根据本公开的一些实施例的切分克罗内克因子矩阵的示意图;
图8示出了根据本公开的一些实施例的示例数据处理系统;
图9示出了根据本公开的又一些实施例的示例数据处理系统;
图10示出了根据本公开的一些实施例的数据处理过程的流程图;
图11是本申请实施例的数据处理装置的示意性框图;以及
图12示出了能够实施本公开的多个实施例的计算设备的框图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
在本公开的实施例的描述中,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
如上文所讨论的,随着计算机技术的发展,机器学习技术已经被应用众多领域,例如,图像识别、自然语言处理、音频分析、视频分析等。伴随着机器学习技术的广泛应用,人们也越来越关注机器学习模型的训练过程。一方面,人们希望训练所得到的模型能够更加鲁棒。另一方面,人们也希望能够减少模型收敛所需的时间。因此,对于机器学习模型的优化已经成为机器学习中的重要部分。
常见的优化算法包括一阶优化算法和高阶优化算法。梯度下降算法是一种常见的一阶优化算法,其对参数的更新过程可以表示为公式(1):
其中,θ是机器学习模型中需要更新的参数,η是学习率,是损失函数对于参数的一阶梯度。此外,还有一些优化算法在梯度下降算法的基础上引入了动量和自适应学习率衰减等策略,例如Momentum、Nesterov、AdaGrad、RMSprop、Adadelta和Adam等。这些改进后的优化算法例如可以利用随机梯度的历史信息来自适应地更新步长,使得它们更容易调参。但在处理大多数问题上,它们和经过精密地调参后的随机梯度下降算法相比并没有太大的性能提升。此外,考虑到神经网络的损失函数是高度非凸函数,而且曲面的曲率不平衡,一阶优化算法的性能并不特别理想。
在一阶优化算法的基础上,一些方法提出使用高阶梯度信息来指导参数更新,这样的优化算法也被称为高阶优化算法。高阶优化算法通过利用目标函数的高阶导数对一阶梯度的方向和步长进行校正,从而加速其收敛速度。在训练过程中,高阶优化算法能高度逼近最优值,几何上下降路径也更符合真实的最优下降路径。
与一阶优化算法相比,高阶优化算法对参数的更新可以被表示为公式(2):
其中θ是需要更新的参数,η是学习率,是损失函数对于参数的一阶梯度,IM为高阶信息矩阵。不同的高阶优化算法对于高阶信息矩阵可以有不同的定义,例如,牛顿优化算法所对应的高阶信息矩阵为海森(Hessian)矩阵,其是是一个由多变量实值函数的所有二阶偏导数组成的方块矩阵。自然梯度法所对应的高阶信息矩阵为费舍(Fisher)矩阵,其是最大似然函数求导的协方差矩阵。
高阶优化算法虽然收敛速度快,但是计算高阶信息矩阵的逆的时间复杂度为O(n3),因此如何使用一种高效的高阶优化算法来在保证训练精度的同时降低优化算法的时间复杂度成为当前关注的焦点。
一些已有的算法通过近似的方式来降低计算高阶信息矩阵的逆的时间复杂度。例如,KFAC(Kronecker-factored Approximate Curvature)算法将费舍矩阵按照网络层分解成块矩阵,而每个块矩阵又近似为两个小得多的矩阵的克罗内克(Kronecker)乘积。由于两个矩阵的克罗内克乘积的逆等于它们逆的克罗内克乘积,且这两个较小矩阵会比整个块矩阵更容易计算和求逆,因此通过这样的分解和近似,KFAC优化算法大大简化了Fisher矩阵的计算。
图1示出了KAFC算法的示例过程100。如图1所示,模型的高阶信息矩阵110根据给定层的权重进行分组并进行对角近似。例如,以3-4-2的神经网络(即,包括1个输入层、1个隐藏层和1个输出层,输入层包括3个节点,隐藏层包括4个节点,输入层包括2个节点)作为示例,其高阶信息矩阵为20*20的矩阵。如图1所示,在115,高阶信息矩阵110例如可以被近似为12*12的矩阵120-1以及8*8的矩阵120-2。
进一步地,在130-1和130-2,矩阵120-1和矩阵120-2分别被克罗内克分解为对应的克罗内克因子矩阵。例如,12*12的矩阵120-1可以被分解为3*3的克罗内克因子矩阵140-1和4*4的克罗内克因子矩阵140-2,8*8的矩阵120-4可以被分解为4*4的克罗内克因子矩阵140-1和2*2的克罗内克因子矩阵140-4。
这样的优化算法在对于具有简单结构的神经网络具有较好的效果。然而,对于较大规模的模型而言,这样的优化算法仍然存在计算复杂度高的缺陷。例如,在利用图1所示的KFAC算法优化resnet50神经网络的训练时,由于其全连接层的维度为2048*1000,优化后仍然要计算一个2048维矩阵和一个1000维的矩阵的逆矩阵。求逆时间虽然大大降低,但是这样的速度仍然难以满足当前应用的要求。通过实验发现,对于resnet50模型而言,KAFC优化算法在imagenet全集上单次迭代的时间是一阶优化算法的约33倍。
以下将描述根据本公开实施例的数据处理方案。为了方便描述,下文通过不同小节来描述本公开的各个方面。这些小节不旨在作为本公开的不同实施例,相反,在不违反本公开精神的情况下,不同小节中所描述的技术特征可以组合。
基本原理及示例环境
为了至少解决高阶优化算法时间复杂度高这一问题,根据本公开的各种实施例,提供了一种数据处理的方案。在本公开的实施例中,在获取用于指示神经网络模型的高阶信息矩阵的克罗内克因子矩阵后,对克罗内克因子矩阵进行切分以得到多个方阵,以使得克罗内克因子矩阵主对角线上的每个元素被包括在多个方阵的单个方阵中、且位于该单个方阵的主对角线上。随后,基于所得到的多个方阵的求逆运算来调整神经网络模型的参数。基于这样的方式,本公开的实施例可以进一步降低需要进行求逆计算的矩阵的维度,从而降低优化算法的时间复杂度,进而加快神经网络模型的训练过程。
图2示出了本公开的多个实施例能够在其中实现的示例环境200的示意图。如图2所示,环境200包括数据处理设备230,数据处理设备230可以接收训练数据210和神经网络模型220。模型220能够从已有数据中学习到一定的知识和能力用于处理新数据。模型220可以被设计用于执行各种任务,诸如图像分类、目标检测、语音识别、机器翻译、内容过滤等等。模型220的示例包括但不限于各类深度神经网络(DNN)和循环数据网络(RNN)等等。在本公开的实施例中,模型220也可以被称为“机器学习模型”。在下文中,术语、“神经网络”、“学习模型”、“学习网络”、“模型”和“网络”可替换地使用。数据处理设备230应具有一定的计算能力,可以满足实现本申请方法的计算资源的需求。本公开并不限定数据处理设备230的具体形式,例如可以是网络设备也可以是终端设备。
图2中将模型220示出为一种深度神经网络。深度神经网络具有分层架构,每一处理层(也称为网络层)具有一个或多个处理单元(也称为处理节点、神经元或滤波器),基于相应的参数对输入进行处理。在深度神经网络中,前一层执行处理后的输出是下一层的输入,其中架构中的第一层接收网络输入用于处理,而最后一层的输出被提供为网络输出。模型220的所有处理单元处理所用的参数构成模型220的参数集。这样的参数集的具体取值需要通过训练过程来确定。
应当理解,图2示出的模型220的架构以及其中的处理层和处理单元的数目均是示意性的,而非是限制性的。在不同的应用中,根据需要,预测模型可以被设计为具有其他适当的架构和/或适当的处理层数,每个处理层可以具有适当数目的处理单元。
在一些实施例中,数据处理设备230所接收的训练数据210是与模型220相对应的数据。例如,在模型220为图像处理模型时,训练数据210可以是图像训练数据。在模型220为文本处理模型时,训练数据210可以是文本训练数据。在一些其他应用场景中,训练数据也可以是诸如语音数据、视频数据、医疗数据、商业数据等适当类型的训练数据。
如图2所示,数据处理设备230上实施了数据处理模块235。数据处理模块235可以被实现为一个或多个软件引擎,硬件组件或其组合等,其被配置有用于实现对应模块的功能的逻辑。数据处理模块235在被执行时使得数据处理设备230执行以下操作:获取指示高阶信息矩阵240的克罗内克因子矩阵245-1和245-2(单独或统一称为克罗内克因子矩阵245);对所获取的克罗内克因子矩阵245进行切分以得到多个方阵250;并基于对多个方阵250进行求逆运算来调整模型220的参数。应当理解,为了方便描述,从克罗内克因子矩阵245确定方阵250的过程虽然在图2中被示出为在数据处理设备230外,但是其仍然可以是由数据处理设备230来实施。基于这样的方式,本公开的实施例可以进一步降低高阶优化算法的时间复杂度,从而降低训练模型的时间成本。
数据处理模块的示例架构
首先参考图3,图3示出了根据本公开的一些实施例的示例数据处理模块235的框图。如图3所示,数据处理模块235包括用于实现根据本公开的一些实施例的示例数据处理过程的多个模块。如图3所示,数据处理模块235包括克罗内克因子矩阵获取模块310、克罗内克因子矩阵切分模块320和模型参数调整模块330。
在一些实施例中,训练数据210和模型220和可以被提供作为到克罗内克因子矩阵获取模块310的输入。克罗内克因子矩阵获取模块310可以利用训练数据210来迭代地调整模型220的参数,并基于训练过程中的前向计算和反向传播的中间结果获取在获取用于指示模型220的高阶信息矩阵240的克罗内克因子矩阵245。
在本公开中,高阶信息矩阵240是指用于校正模型220的一阶梯度的矩阵,其示例包括但不限于上文中所提及的海森矩阵、费舍矩阵和二阶矩矩阵等。应当理解,图2所示出的高阶信息矩阵240仅是为了表示一对克罗内克因子矩阵245用于指示一个高阶信息矩阵,而不要求在训练过程中计算获得高阶信息矩阵240本身。一些已有的优化算法可以直接计算获得高阶信息矩阵240的克罗内克因子矩阵245。
在一些实施例中,所获取的克罗内克因子矩阵245可以是在任意次迭代过程中所产生的克罗内克因子矩阵245。例如,对于先前未被训练的模型220,所获取的克罗内克因子矩阵245可以是基于模型220的初始参数所产生的克罗内克因子矩阵。备选地,所获取的克罗内克因子矩阵245也可以是经历过若干次迭代后所产生的克罗内克因子矩阵。在另一些备选实施例中,模型220可能先前已经被预训练。此时,所获取的克罗内克因子矩阵245也可以是在预训练的参数的基础上继续迭代所产生的克罗内克因子矩阵。
如上文所讨论的,模型220在迭代过程中可能产生多对克罗内克因子矩阵245。例如,resnet50模型包括53层卷积层及1层全连接层,其在迭代过程中将产生54个高阶信息矩阵。每个高阶信息矩阵将被近似为一对克罗内克因子矩阵。也即,resenet50模型在参数迭代过程中将产生共108个克罗内克因子矩阵。为了方便描述,一对克罗内克因子矩阵中位于克罗内克乘积算符前的矩阵被称为左因子矩阵,位于克罗内克乘积算符后的矩阵被称为右因子矩阵。
在一些实施例中,克罗内克因子矩阵获取模块310可以获取模型220在迭代过程中所产生的全部克罗内克因子矩阵,并将其作为输出提供至克罗内克因子矩阵切分模块320。
备选地,克罗内克因子矩阵获取模块310也可以仅获取全部克罗内克因子矩阵中的任一个、任意对或者其他任意数目的矩阵,并将其作为输出提供至克罗内克因子矩阵切分模块320。例如,考虑到某些克罗内克因子矩阵维度相对较小,其求逆运算的时间复杂度较低,克罗内克因子矩阵获取模块310可以仅选择矩阵维度超过预定阈值的克罗内克因子矩阵以作为输入提供至克罗内克因子矩阵切分模块320。
如图3所示,数据处理模块235还包括克罗内克因子矩阵切分模块320。在接收到由克罗内克因子矩阵获取模块310所提供的克罗内克因子矩阵245后,克罗内克因子矩阵切分模块320可以确定对应的切分策略,并基于该切分策略来对克罗内克因子矩阵245进行切分,以获得多个方阵250,其中多个方阵250对应于位于克罗内克因子矩阵245对角线上的元素。基于这样的切分,克罗内克因子矩阵245的逆矩阵能够被近似为所得到的多个方阵250的逆的组合。
在一些实施例中,克罗内克因子矩阵切分模块320所采用的切分策略可以是预先存储的,克罗内克因子矩阵切分模块320例如可以通过模型220的模型标识和待优化所述模型220的目标设备的资源标识来获取预先存储的切分策略。备选地,该切分策略也可以是由克罗内克因子矩阵获取模块310基于模型220和待优化所述模型220的目标设备实时确定的。关于切分克罗内克因子矩阵的过程将在下文中详细描述。
克罗内克因子矩阵切分模块320所切分得到的多个方阵250进一步被提供至图3中的参数调整模块330。参数调整模块330例如可以计算所得到的多个方阵250分别的逆矩阵,并利用它们的组合(其值近似于克罗内克因子矩阵245的逆矩阵)来确定模型220的参数调整,进而指导模型220的训练。关于调整模型参数的过程将在下文中详细描述。
应当理解,图3中的模块可以被实现为一个或多个软件引擎,硬件组件或其组合等,其被配置有用于实现对应模块的功能的逻辑。软件引擎等在一个或多个计算系统或设备的一个或多个处理器上执行,并且利用或对被存储在一个或多个计算系统上的一个或多个存储设备或存储器等中的数据进行操作。在一些实施例中,图3中的不同模块可以被实现为单个模块,并且图3中的单个模块可以被分离为多个模块。在一些实施方式中,数据处理模块235还可以包括一个或多个附加的模块。
克罗内克因子矩阵的切分
如上文所讨论的,克罗内克因子矩阵切分模块320被配置为根据特定的切分策略来对所接收的克罗内克因子矩阵245切分,以获得多个方阵250。在一些实施例中,克罗内克因子矩阵切分模块320可以通过查询配置文件来确定是否已经存储有与模型220以及用于训练模型220的计算资源所对应的切分策略。
图4示出了根据本公开的一些实施例的示例克罗内克因子矩阵切分模块320的框图。在一些实施例中,克罗内克因子矩阵切分模块320可以包括切分策略查询模块430。切分策略查询模型430可以被配置为获取计算资源的资源标识410以及模型220的模型标识420,其中计算资源例如可以是用于训练机器学习模型的AI芯片,包括但不限于GPU(图形处理单元)、FPGA(现场可编程逻辑门阵列)和ASIC(特殊应用集成电路)等。
进一步地,切分策略查询模块430可以基于资源标识410和模型标识420来查询配置文件440,以确定是否维护有与模型220和计算资源所对应的切分策略。在一些实施例中,配置文件440可以包括资源标识410、模型标识420和对应的切分策略之间的对应关系。该对应关系指示存在先前针对与资源标识410所对应的计算资源以及与模型标识420相对应的模型所确定的优化策略。这样的优化策略可以是由同一数据处理设备230所确定的,也可以是由不同的计算设备所确定的,或者也可以是由开发人员基于数学计算、实验或者经验所人工配置的。应当理解,配置文件440仅是维护这这样的映射关系的一种示例形式,还可以采用任何适当的方式来维护这样的映射,本公开不旨在对此进行限定。
模型标识可以是指示神经网络模型的类型的标识信息,例如“resnet50”可以指示神经网络模型为50层的深度残差网络(ResNet)。模型标识的示例还可以包括“resnet18”、“resnet101”、“VGG16”、“LeNet5”等等。附加地,资源标识可以是指示计算资源的型号的标识信息,例如芯片名称,芯片代号、芯片种类编号甚至芯片所在的设备的标识,都可以作为资源标识。相同型号的计算资源往往具有相同或者相近的性能。作为示例,资源标识可以是用于训练模型220的AI芯片的具体型号。在这种情况下,切分策略查询模块430将查询配置文件440中是否存在与相同型号的计算资源和相同类型的模型相对应的优化策略,而不要求一定是同一个计算资源。例如,切分策略查询模块430可以查询是否存在与型号“GPUV100”以及模型“resnet50”所对应的优化策略。
备选地,资源标识也可以是计算资源的唯一标识,例如,计算资源的MAC地址等。在该情况下,切分策略查询模块430将查询配置文件440中是否存在是否有针对该计算资源以及模型220的优化策略。例如,切分策略查询模块430可以查询是否存在与MAC地址为“abcd”的GPU以及模型“resnet50”所对应的优化策略。
如图4所示,在确定配置文件440中存在对应的优化策略时,切分策略查询模块430可以从优化策略中确定切分维度450,并将其发送至矩阵切分模块480。在一些实施例中,优化策略例如可以包括针对左因子矩阵的切分维度和针对右因子矩阵的切分维度。切分策略查询模块430可以将针对左因子矩阵的切分维度和针对右因子矩阵的切分维度中的至少一个发送至矩阵切分模块480。
作为示例,配置文件440例如可以包括资源标识“芯片ABC”、模型标识“resnet50”、左因子矩阵切分维度“128”和右因子矩阵切分维度“1”之间的映射。当确定计算资源的资源标识为“芯片ABC”且模型标识为“resenet50”时,切分策略查询模块430可以通过查找该配置文件440以获得对应的切分策略为:左因子矩阵切分维度“128”和右因子矩阵切分维度“1”。切分策略查询模块430随后例如可以将左因子矩阵切分维度“128”和右因子矩阵切分维度“1”两者均发送至矩阵切分模块480。
在一些实施例中,在确定配置文件440中不存在对应的切分策略时,切分策略查询模块430可以向切分维度计算模块470提供不存在已有切分策略的指示460,以使得切分维度计算模块470计算与该模型220和计算资源所对应的切分维度450。以下将参考图5来描述切分维度计算模块470,图5示出了根据本公开的一些实施例的示例切分维度计算模块470的框图。
如图5所示,在一些实施例中,切分维度计算模块470可以包括参考克罗内克因子矩阵获取模块510。为了避免用于确定切分维度的克罗内克因子矩阵变化趋势过大,参考克罗内克因子矩阵获取模块510可以接收训练数据210和模型220以对模型220进行预定次数的参数迭代。在克罗内克因子矩阵变化较为稳定后,才提取参考克罗内克因子矩阵520作为信息损失确认模块530的输入。
为了更准确地估计切分对实际训练过程中产生的克罗内克因子矩阵所造成的信息损失,参考克罗内克因子矩阵获取模块510所提取的参考克罗内克因子矩阵520可以是利用训练数据210来使得模型220的参数被迭代的过程中生成的全部克罗内克因子矩阵。以resnet50模型为例,参考克罗内克因子矩阵获取模块510例如可以将模型220的参数基于训练数据210迭代20次后所生成的108个参考克罗内克因子矩阵520作为输入提供至信息损失确认模块530。
在一些实施例中,信息损失确认模块530可以接收多个参考克罗内克因子矩阵520以及多个候选切分维度550,并计算在各候选切分维度550下各参考克罗内克因子矩阵520的信息损失。作为示例,候选切分维度550例如可以为[1,16,32,64,128,256,512,1024,2048],信息损失确认模块530可以分别使用列表中的每个维度来对参考克罗内克因子矩阵520进行对角线切分以得到多个候选方阵,并计算对应的信息损失535。
例如,如果所选择的切分维度为16,待切分的参考克罗内克因子矩阵520为64*64的矩阵,那么信息损失确认模块530将会按照对角线把参考克罗内克因子矩阵520切分为4个16*16的候选方阵。
作为另一示例,如果所选择的切分维度为16,待切分的参考克罗内克因子矩阵520为70*70的矩阵,那么信息损失确认模块530可以按照对角线以将参考克罗内克因子矩阵520切分为4个16*16的候选方阵以及1个6*6的候选方阵。参考克罗内克因子矩阵520的切分过程可以类似于下文中关于参考矩阵切分模块480所详细描述的对克罗内克因子矩阵245切分的过程。
在一些实施例中,信息损失535可以指示多个候选方阵的联合矩阵与被切分的参考克罗内克因子矩阵520之间的信息差。在一些实施例中,信息损失确认模块530可以选择矩阵的谱范数作为信息度量,并确定参考克罗内克因子矩阵520的谱范数与多个候选方阵的联合矩阵的谱范数之间的差。应当理解,还可以采用其他适当的信息度量来确定信息损失535。
在一些实施例中,切分维度选择模块560可以基于所接收的信息损失535来从候选切分维度550中确定切分维度450。例如,切分维度选择模块560可以将与不同候选维度所对应的信息损失535与损失阈值进行比较。这样的损失阈值例如是可以由开发者根据需要人工配置的。例如,以resnet50为例,切分维度选择模块560可以将每个候选切分维度550所对应的左因子矩阵的信息损失的损失总和与损失阈值进行比较,并仅保留损失总和小于损失阈值的候选切分维度550。
在基于损失阈值所保留的候选切分维度的数目仍大于一个时,切分维度选择模块560例如可以选择其中最小的切分维度以降低时间复杂度。附加地,切分维度选择模块560还可以引入其他附加的因素(例如,下文所介绍的性能信息)以从所保留的候选切分维度中进行选择。
在一些实施例中,切分维度选择模块560还可以接收关于可容忍信息损失的指定。例如,切分维度选择模块560可以接收关于可容忍信息损失的输入,其范围例如可以被设定为0%至100%,其中数值越大,表示可以容忍的信息损失的程度越大。进一步地,切分维度选择模块560可以通过计算多个候选方阵的联合矩阵与被切分的参考克罗内克因子矩阵520之间的信息差与罗内克因子矩阵520的信息量之间的比例,并将该比例与可容忍信息损失进行比较。
随后,切分维度选择模块560可以分别计算全部左因子矩阵中和全部右因子矩阵中满足该可容忍信息损失的克罗内克因子矩阵的数目的占比。例如,表1和表2分别给出了在可容忍信息损失为1%的情况下满足该损失的左因子矩阵和右因子矩阵的示例占比情况。
表1左因子矩阵信息损失统计
候选切分维度 | 1 | 16 | 32 | 64 | 128 | 256 | 512 | 1024 | 2048 |
信息损失<1%矩阵个数 | 4 | 4 | 5 | 9 | 13 | 23 | 32 | 46 | 48 |
表2右因子矩阵信息损失统计
候选切分维度 | 1 | 16 | 32 | 64 | 128 | 256 | 512 | 1024 | 2048 |
信息损失<1%矩阵个数 | 54 | 54 | 54 | 54 | 54 | 54 | 54 | 54 | 54 |
从表1中能够看到,候选切分维度的大小变化对左因子矩阵的信息损失影响较大。相反,基于表2的数据能够看到,所有的候选切分维度均使得全部右因子矩阵均满足所要求的1%的信息损失。
在一些实施例中,切分维度选择模块560例如可以将满足可容忍信息损失的矩阵数目或者其在总数目中的占比与预定的阈值进行比较,并选择能够满足阈值要求的候选切分维度。以表1和表2中的示例,例如切分维度选择模块560可以选择使得满足可容忍信息损失的矩阵占比超过50%的候选切分维度。在表1的示例中,在候选切分维度大于或等于256后,矩阵占比将超过50%。在表2的示例中,全部候选切分维度均满足占比大于50%。
切分维度选择模块560例如可以进一步地从满足阈值要求的候选切分维度中选择切分维度最小的候选切分维度,进而能够既满足信息损失的要求,又尽可能地降低计算复杂度。对于表1和表2的示例,切分维度选择模块560例如可以选择“256”作为左因子矩阵的切分维度,并选择“1”作为右因子矩阵的切分维度。
在一些实施例中,如图5所示,切分维度计算模块470还包括性能信息计算模块540,其用于计算与候选切分维度550所对应的性能信息545。性能信息545例如可以指示用于优化模型220的计算资源处理与候选切分维度550相对应的方阵的效率。在一些实施例中,性能信息计算模块540可以设置一组预定的候选切分维度550,并且构建与候选切分维度550所对应的一组样本方阵。样本方阵中的每个方阵具有与切分维度所对应的秩。例如,候选切分维度550为“5”时,对应的样本方阵可以是5*5的方阵。性能信息计算模块540可以通过获取计算资源处理样本方阵的性能信息来作为与候选维度550所对应的性能信息。
以候选切分维度为[1,16,32,64,128,256,512,1024,2048]作为示例,性能信息计算模块540例如可以使得计算资源分别计算具有对应秩的样本方阵的逆矩阵,并获取其处理时长作为对应的性能信息545。应当理解,还可以选择其他适当的处理过程(例如,矩阵乘法)以用于评估计算资源处理对应样本方阵的性能信息。例如,表3示出了计算资源计算与切分维度对应的样本方阵的逆矩阵的示例性能信息。
表3计算资源的性能信息
候选切分维度 | 1 | 16 | 32 | 64 | 128 | 256 | 512 | 1024 | 2048 |
性能信息(us) | 35 | 59 | 83 | 121 | 212 | 534 | 1418 | 3738 | 9824 |
在表3中能够看到,切分维度越大,计算资源处理对应的方阵的耗时越长。在一些实施例中,切分维度选择模块560可以基于所接收的性能信息545来确定切分维度450。例如,切分维度选择模块560可以将性能信息545与预定的性能阈值进行比较,并保留耗时小于预定性能阈值的候选切分维度。例如,性能阈值例如可以被指定为300us,切分维度选择模块560因而可以确定候选切分维度1至128均满足性能阈值的要求。在一些示例中,为了尽可能地降低由于切分带来的信息损失,切分维度选择模块560例如可以选择满足阈值要求的候选切分维度中最大的值作为切分维度450。
在一些实施例中,切分维度选择模块560还可以基于其他因素(例如,上文所讨论的信息损失)来从满足阈值要求的候选切分维度中选择切分维度450。例如,切分维度选择模块560可以从满足阈值要求的候选切分维度中选择信息损失也满足对应要求的维度作为切分维度450。
在一些实施例中,为了更为准确地量化信息损失和性能信息545,切分维度选择模块560还可以通过对信息损失535和性能信息545进行归一化,并基于归一化的结果来从候选切分维度550中选择切分维度450。例如,对于表1、表2和表3的示例,切分维度选择模块560可以通过将表1和表2中信息损失满足可容忍信息损失的个数转换为占比来进行归一化,并且可以通过将表3中的各性能信息除以与最小候选切分维度所对应的性能信息来进行归一化。表1-表3的归一化结果例如可以被表示表4。
表4性能信息和信息损失的归一化
候选切分维度 | 表1归一化数据 | 表2归一化数据 | 表3归一化数据 |
1 | 0.074074 | 1 | 1 |
16 | 0.074074 | 1 | 0.601374 |
32 | 0.092593 | 1 | 0.427578 |
64 | 0.166667 | 1 | 0.293913 |
128 | 0.240741 | 1 | 0.166927 |
256 | 0.425926 | 1 | 0.06641 |
512 | 0.592593 | 1 | 0.025 |
1024 | 0.851852 | 1 | 0.009486 |
2048 | 0.888889 | 1 | 0.00361 |
在一些实施例中,切分维度选择模块560可以对归一化的性能信息和信息损失进行拟合,拟合的函数例如可以被确定为多段直线函数的组合。以左因子矩阵的信息损失的拟合为例,其拟合函数例如可以被表示为连接点(1,0.074074)和点(16,0.074074)的直线函数、连接点(16,0.074074)和点(32,0.092593)的直线函数、连接点(32,0.092593)和点(64,0.166667)的直线函数、连接点(64,0.166667)和点(128,0.240741)的直线函数、连接点(128,0.240741)和点(256,0.425926)的直线函数、连接点(256,0.425926)和点(512,0.592593)的直线函数、连接点(512,0.592593)和点(1024,0.851852)的直线函数、以及连接点(1024,0.851852)和点(2048,0.888889)的直线函数的组合。针对右因子矩阵的信息损失和性能信息的拟合函数可以被类似地确定。
图6示出了根据版本公开的一些实施例的示例拟合的示意图600。如图6所示,拟合函数610表示了针对左因子矩阵的信息损失的拟合函数,拟合函数620表示针对右因子矩阵的信息损失的拟合函数,拟合函数630表示针对性能信息的拟合函数。
在一些实施例中,切分维度选择模块560可以进一步基于不同拟合函数的交点来确定切分维度。例如,切分维度选择模块560可以确定性能信息的拟合函数630与针对右因子矩阵的信息损失的拟合函数620的交点为点(1,1),因此切分选择模块560可以确定针对右因子矩阵的切分维度450为“1”。
对于图6的示例,切分维度选择模块560例如还可以确定性能信息的拟合函数630与针对右因子矩阵的信息损失的拟合函数610的交点为(104.5,0.213547)。由于104.5不是候选切分维度550,切分维度选择模块560可以选择与该交点横向坐标的值最为接近的候选切分维度以作为切分维度450。例如,切分维度选择模块560可以选择“128”作为针对左因子矩阵的切分维度450。基于这样的方式,切分维度选择模块560可以实现低信息损失与高计算效率之间的平衡。
继续参考图4,在确定了切分维度450后,矩阵切分模块480可以根据切分维度450来对克罗内克因子矩阵245进行切分以获得多个方阵250。如图2中关于克罗内克因子矩阵245和方阵250所示的,矩阵切分模块480按照克罗内克因子矩阵245的主对角线进行切分,这使得多个方阵250对应于位于克罗内克因子矩阵245对角线上的元素。
以下将结合图7A至图7C来描述切分克罗内克因子矩阵的过程。图7A示出了根据本公开一个实施例的切分克罗内克因子矩阵的示意图700A。如图7A所示,克罗内克因子矩阵245例如是一个12*12的方阵710,当切分维度450被确定为“4”时,矩阵切分模块480可以根据切分维度并以克罗内克因子矩阵710的主对角线上的起始元素X0Y0为起点构建秩为“4”的方阵720-1。方阵720-1的主对角线上的元素为克罗内克因子矩阵710的主对角线上的元素的子集。随后,矩阵切分模块480可以将克罗内克因子矩阵710中主对角线上位于方阵720-1后的第一个元素(在该示例中,为X4Y4)作为起始元素,并沿克罗内克因子矩阵710中主对角线构建秩为“4”的方阵720-2。基于类似的方式,矩阵切分模块480可以将克罗内克因子矩阵710切分为3个具有相同大小的秩“4”的方阵720-1、720-2和720-3,其中方阵720-1、720-2和720-3是克罗内克因子矩阵710的子矩阵。基于这样的切分方式,多个方阵(方阵720-1、720-2和720-3)的主对角线一一与克罗内克因子矩阵710主对角线的一部分对应,且多个方阵(方阵720-1、720-2和720-3)的所有主对角线上的元素包括了克罗内克因子矩阵720的主对角线上所有的元素。
在另一些实施例中,克罗内克因子矩阵可能无法被完整地切分为整数个具有相同秩的方阵。图7B示出了根据本公开另一个实施例的切分克罗内克因子矩阵的示意图700B。如图7B所示,克罗内克因子矩阵245例如是一个12*12的方阵710,当切分维度450被确定为“5”时,基于沿主对角线进行连续切分的方式,矩阵切分模块480将首先从克罗内克因子矩阵730中切分出2个具有秩“5”的方阵740-1和740-2。在确定以主对角线上剩余的元素作为主对角线构建的方阵的秩将小于切分维度时,矩阵切分模块480可以将以主对角线上剩余的元素作为主对角线构建的方阵作为从克罗内克因子矩阵中切分得到的多个方阵中的一个。例如,对于图7B的示例,秩为“2”的方阵740-3将被确定为从克罗内克因子矩阵730中切分得到的方阵中的一个。基于这样的方式,克罗内克因子矩阵730将被切分为秩为“5”的方阵740-1和740-2,以及秩为“2”的方阵740-3。
在又一些实施例中,为了方便对拆分获得的方阵250的批量化处理,矩阵切分模块480可以将经切分获得的秩小于切分维度450的方阵补齐为秩等于切分维度450的方阵。图7C示出了根据本公开又一个实施例的切分克罗内克因子矩阵的示意图700C。如图7C所示,待切分的克罗内克因子矩阵为矩阵750,且切分维度450为“5”。基于沿主对角线进行连续切分的方式,矩阵切分模块480将首先从克罗内克因子矩阵750中切分出2个秩为“5”的方阵770-1和770-2。
与图7B相比,在7C的示例中,在将方阵发送至不同模型参数调整模块330之前,矩阵切分模块480可以通过填充指定的数值(例如,1)来将剩余的方阵扩展为秩为“5”的方阵。在一些实施例中,矩阵切分模块480可以在切分前确定待切分的克罗内克因子矩阵240的秩是否可以能够被切分维度450整除。如果确定克罗内克因子矩阵240的秩不能被切分维度450整除,矩阵切分模块480可以通过填充指定数值的方式来扩展克罗内克因子矩阵240。
以图7C作为示例,矩阵切分模块480例如可以确定克罗内克因子矩阵750的秩“12”不能被切分维度“5”整除。因此,矩阵切分模块480例如可以将克罗内克因子矩阵750扩展为中间矩阵760,该中间矩阵760具有能够被切分维度“5”整除的秩“15”。在获得中间矩阵760后,矩阵切分模块480例如可以参照图7A中所描述的方法而将中间矩阵760切分为3个秩为“5”的方阵770-1、770-2和770-3。
在又一实施例中,矩阵切分模块480也可以参照图7B中所描述的方法,以获得秩小于切分维度的方阵,并随后通过填充指定数值的方式来将该方阵扩展为具有秩等于切分维度的方阵。结合图7B和图7C的示例,矩阵切分模块480例如可以首先切分得到方阵740-3,并随后通过填充指定数值“1”的方式,来将方阵740-3扩展为秩为“5”的方阵770-3。由于填充的数值“1”在求逆的运算过程中将被转换为“0”,因此这样的填充并不会对克罗内克因子矩阵的求逆运算带来额外的误差。相反,通过使得切分得到的多个方阵具有相同的秩,本公开的实施例可以更好地支持对于多个方阵的批处理过程。
基于以上所讨论的矩阵切分方法,矩阵切分模块480可以使得多个方阵的主对角线一一与克罗内克因子矩阵主对角线的一部分对应,且多个方阵的所有主对角线上的元素包括了克罗内克因子矩阵的主对角线上所有的元素。通过这样的方式,矩阵切分模块480使得能够将克罗内克因子矩阵245的求逆矩阵运算近似为多个方阵250的求逆矩阵运算,从而降低求逆矩阵运算的时间成本。
在一些实施例中,矩阵切分模块480还可以将切分获得的方阵250中具有相同维度的方阵连续地存储在内存中,以用于后续的逆矩阵运算过程。基于这样的方式,可以提高批量化处理的效率。
应当理解,以上讨论中所涉及的具体数值仅是示意性的,不旨在构成对本公开的限定。
模型参数的调整
继续参考图3,数据处理模块235还包括模型参数调整模块330,其被配置为接收克罗内克因子矩阵切分模块320所输出的多个方阵250,并根据方阵250来调整模型220的参数。
具体地,模型参数调整模块330可以计算多个方阵250的逆矩阵,并将这些方阵的逆矩阵的组合作为分解得到这些方阵250的克罗内克因子矩阵245的逆矩阵的近似。随后,模型参数调整模块330可以根据任何适当的基于高阶优化信息来调整参数的过程来指导模型220的优化,在此不再详叙。通过这样的方式,本公开的实施例可以将原来的大矩阵求逆运算转换为多个小矩阵的求逆运算,从而大大降低了时间复杂度。
在一些实施例中,模型参数调整模块330还可以通过批量处理地方式来并行地确定多个方阵250的逆矩阵。通过上文所讨论的切分方法,所切分得到的方阵250中大部分具有相同的维度,这为并行计算这些方阵的逆矩阵提供了基础。通过批量地处理所得到的多个方阵250中具有相同维度的方阵,本公开的实施例可以进一步减少计算逆矩阵的时间开销,从而降低模型收敛所需要的时间成本。
通过实验发现,本公开的方法相对于传统的高阶优化算法(例如,KFAC)具有明显的性能改进。例如,在计算高阶信息矩阵的克罗内克因子矩阵逆矩阵的时间从KFAC算法445ms降低至根据本公开的方法的28ms,性能提升了16倍。
示例数据处理系统
图8示出了根据本公开的一个实施例的示例数据处理系统800。示例数据处理系统800可以被实现为一个或多个软件引擎,硬件组件或其组合等,其被配置有用于实现对应模块的功能的逻辑。
如图8所示,数据处理系统800可以包括离线模块810和在线模块830。如上文参考图4至图5讨论的,例如在确定不存在与模型标识和资源标识所对应的切分维度时,数据处理系统800可以启动离线模块810的逻辑。具体地,离线模块810可以包括评判模块818,其被配置为接收参考克罗内克因子矩阵812、可容忍信息损失814和候选切分维度列表816,并确定用于切分克罗内克因子矩阵832的切分维度820。在一些实施例中,可容忍信息损失814例如是由用户可配置的。在一些实施例中,参考克罗内克因子矩阵812可以是指图5中的参考克罗内克因子矩阵520,例如,参考克罗内克因子矩阵812可以是利用训练数据210使得模型220的参数被迭代预定次数后所产生的克罗内克因子矩阵。
在一些实施例中,评判模型818例如可以实施与图5中的切分维度选择模块560相同的逻辑。评判模型818可以参照上文所讨论的方法,以基于参考克罗内克因子矩阵812、可容忍信息损失814和候选切分维度列表816来确定与各候选切分维度所对应的信息损失和性能信息。评判模型818例如可以进一步基于信息损失和性能信息两者来确定切分维度820。
在完成切分维度820的确定后,在线模块820中所包括的矩阵切分模块834可以对克罗内克因子矩阵832按照切分维度820进行矩阵切分以获得多个方阵836。在一些实施例中,矩阵切分模块834可以实施与图4中的矩阵切分模块480相同的逻辑。通过将克罗内克因子矩阵832切分为多个方阵836,数据处理系统800能够降低调整模型的参数所要进行求逆矩阵运算的复杂度。
在一些实施例中,切分所获得的多个方阵836可以被提供至内存整合模块838,以将具有相同秩的方阵836以连续的方式存储到存储器840中。基于这样的方式,可以提高后续批量计算方阵836的逆矩阵的效率。在一些实施例中,数据处理系统800中的在线模块830也可以独立地运行。例如,如果确定存在与模型标识和资源标识所对应的切分维度时,矩阵切分模块834可以不从离线模块接收切分维度820。相反,矩阵切分模块834可以将基于模型标识和资源标识所确定的切分维度来对克罗内克因子矩阵832进行切分。基于这样的方式,数据处理系统800能够有效地利用历史优化策略,从而避免额外的切分维度计算过程。
图9示出了根据本公开的又一些实施例的示例数据处理系统900。示例数据处理系统900可以被实现为一个或多个软件引擎,硬件组件或其组合等,其被配置有用于实现对应模块的功能的逻辑。
如图9所示,数据处理系统900包括离线模块910和在线模块938。如上文参考图4至图5讨论的,例如在确定不存在与模型标识和资源标识所对应的切分维度时,数据处理系统900可以启动离线模块910的逻辑。具体地,离线模块910可以获取可容忍信息损失912、参考克罗内克因子矩阵914和候选切分维度列表916。在一些实施例中,可容忍信息损失912例如是由用户可配置的。在一些实施例中,参考克罗内克因子矩阵914可以是指图5中的参考克罗内克因子矩阵520,例如,参考克罗内克因子矩阵914可以是利用训练数据210使得模型220的参数被迭代预定次数后所产生的克罗内克因子矩阵。
在一些实施例中,如图9所示,离线模块910可以包括矩阵切分模块918,其被配置为根据候选切分维度列表916中的切分维度来对参考克罗内克因子矩阵914进行切分。进一步地,矩阵切分模块918还可以确定切分得到的多个方阵的联合矩阵的矩阵信息度量920。在一些实施例中,矩阵信息度量920例如可以是矩阵的谱范数。
在一些实施例中,离线模块910还可以基于候选切分维度列表916确定与候选切分维度所对应的性能数据922。离线模块910例如可以实施与图5中的性能信息计算模块540相同的逻辑,以确定对应的性能数据。
附加地,离线模块910可以包括评估模块924。评估模块924可以被配置为根据可容忍信息损失912和矩阵信息度量920来确定针对左因子矩阵的谱范数占比926和针对右因子矩阵的谱范数占比928。评估模块924可以参照上文中关于表1和表2所描述的过程来确定谱范数占比926和谱范数占比928。谱范数占比926可以表示使用对应的切分维度切分左因子矩阵使得信息损失满足可容忍信息损失912的左因子矩阵的数目。类似地,谱范数占比928可以表示使用对应的切分维度切分右因子矩阵使得信息损失满足可容忍信息损失912的右因子矩阵的数目。
进一步地,如图9所示,在确定谱范数占比926和谱范数占比928之后,评估模块924还可以参考性能数据922来确定左因子矩阵切分维度930和右因子矩阵切分维度932。应当理解,评估模块924可以参考上文中关于图6所描述的过程来确定左因子矩阵的切分维度930和针对右因子矩阵的切分维度932。
在一些实施例中,数据处理系统900还包括在线模块938。如图9所示,在线模块938中的矩阵切分模块940可以接收由评估模块924所确定的左因子矩阵切分维度930和右因子矩阵切分维度932。附加地,矩阵切分模块940还可以接收训练模型过程中所产生的输入值梯度协方差矩阵934(对应左因子矩阵)和特征图协方差矩阵936(对应于右因子矩阵)。矩阵切分模块940可以分别根据左因子矩阵切分维度930和右因子矩阵切分维度932来对输入值梯度协方差矩阵934和特征图协方差矩阵936进行切分。应当理解,矩阵切分模块940可以根据与参考图7A至图7C所描述的切分过程来对输入值梯度协方差矩阵934和特征图协方差矩阵936进行切分。
随后,经矩阵切分模块940切分所获得的多个方阵可以被提供至内存整合模块942。内存整合模块942可以将多个方阵中具有相同秩的方阵以连续的方式存储,进而形成批矩阵944。基于这样的方式,可以提高后续批量计算方阵的逆矩阵的效率。
基于这样的方式,数据处理系统900能够利用离线模块910来确定针对左因子矩阵和右因子矩阵的对应切分维度,并在在线模块938执行对应的切分,从而降低调整模型的参数所要进行求逆矩阵运算的复杂度。此外,离线模块910在确定左因子矩阵切分维度930和右因子矩阵切分维度932时综合考虑了性能因素和信息损失因素,这能够使得在线模块938所执行的矩阵切分既满足预定的性能要求又能够满足信息损失的要求。
示例过程和示例装置
图10示出了根据本公开的实施例的示例数据处理过程1000的流程图。过程1000例如可以由图2中的数据处理设备230来实施。为了方便描述,以下参考图2来描述过程1000。
在框1002,数据处理设备230获取用于指示神经网络模型220的高阶信息矩阵240的克罗内克因子矩阵245,其中高阶信息矩阵240用于校正神经网络模型220的一阶梯度。在框1004,数据处理设备230对克罗内克因子矩阵245进行切分以得到多个方阵250,其中多个方阵250为克罗内克因子矩阵的子矩阵,多个方阵250的主对角线一一与克罗内克因子矩阵245主对角线的一部分对应,且多个方阵250的所有主对角线上的元素包括了克罗内克因子矩阵250的主对角线上所有的元素。在框1006,数据处理设备230基于多个方阵250,调整神经网络模型的参数。
图10进一步示出了根据本公开实施例的数据处理装置1100的框图,数据装置处理装置1100可以包括多个模块,以用于执行如图10中所讨论的过程1000中的对应步骤。如图11所示,数据处理装置1100包括获取单元1110,被配置为获取用于指示神经网络模型的高阶信息矩阵的克罗内克因子矩阵,高阶信息矩阵用于校正神经网络模型的一阶梯度。数据处理装置1100还包括切分单元1120,被配置为对克罗内克因子矩阵进行切分以得到多个方阵,使得多个方阵为克罗内克因子矩阵的子矩阵,多个方阵的主对角线一一与克罗内克因子矩阵主对角线的一部分对应。此外,数据处理装置1100还包括调整单元1130,被配置为基于多个方阵调整神经网络模型的参数
在一些实施例中,切分单元1120还被配置为:基于计算资源的资源标识和神经网络模型的模型标识对克罗内克因子矩阵进行切分。
在一些实施例中,数据处理设备中存储有资源标识、模型标识和维度之间的对应关系,并且维度指示克罗内克因子矩阵被切分成得到多个方阵中至少一个方阵的秩。
在一些实施例中,切分单元1120还被配置为:基于多个维度对应的性能信息,从多个维度中选择目标维度来切分克罗内克因子矩阵,其中,一个维度对应的性能信息指示计算资源处理与该维度对应的方阵的效率,目标维度指示克罗内克因子矩阵被切分成得到多个方阵中至少一个方阵的秩。
在一些实施例中,一个维度对应的性能信息的值与数据处理设备计算与维度对应的方阵的逆矩阵所需的时间有关。
在一些实施例中,切分单元1120还被配置为:基于多个维度对应的信息损失,从多个维度中选择目标维度来切分克罗内克因子矩阵,其中,一个维度对应的信息损失指示由于利用该维度来切分参考克罗内克因子矩阵造成的信息损失,目标维度指示克罗内克因子矩阵被切分成得到多个方阵中至少一个方阵的秩。
在一些实施例中,与一个维度对应的信息损失是利用该维度切分参考克罗内克因子矩阵所得到的多个方阵的联合矩阵的谱范数与参考克罗内克因子矩阵的谱范数之间的差。
在一些实施例中,切分单元还被配置为:基于多个维度对应的性能信息和多个维度对应的信息损失,从多个维度中选择目标维度来切分克罗内克因子矩阵,其中,一个维度对应的性能信息指示计算资源处理与维度对应的方阵的效率,一个维度对应的信息损失指示由于利用维度来切分参考克罗内克因子矩阵造成的信息损失,目标维度指示克罗内克因子矩阵被切分成得到多个方阵中至少一个方阵的秩。
在一些实施例中,调整模块1130被配置为:首先并行处理多个方阵,以确定多个方阵的多个逆矩阵。随后,基于多个方阵的多个逆矩阵的组合,调整神经网络模型的参数。
在一些实施例中,神经网络模型为图像处理模型。获取模块1110被配置为:获取图像训练数据;随后,将图像训练数据应用于图像处理模型以获取克罗内克因子矩阵。
在一些实施例中,神经网络模型为文本处理模型。获取模块1110被配置为:获取文本训练数据;随后,将文本训练数据应用于文本处理模型以获取克罗内克因子矩阵。
示例设备
图12示出了可以用来实施本公开的实施例的示例设备1200的示意性框图。设备1200可以用于实现数据处理设备230。如图所示,设备1200包括计算单元1201,其可以根据存储在随机存取存储器(RAM)和/或只读存储器(ROM)1202的计算机程序指令或者从存储单元1207加载到RAM和/或ROM 1202中的计算机程序指令,来执行各种适当的动作和处理。在RAM和/或ROM 1202中,还可存储设备1200操作所需的各种程序和数据。计算单元1201和RAM和/或ROM 1202通过总线1203彼此相连。输入/输出(I/O)接口1204也连接至总线1203。
设备1200中的多个部件连接至I/O接口1204,包括:输入单元1205,例如键盘、鼠标等;输出单元1206,例如各种类型的显示器、扬声器等;存储单元1207,例如磁盘、光盘等;以及通信单元1208,例如网卡、调制解调器、无线通信收发机等。通信单元1208允许设备1200通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元1201可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1201的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元1201执行上文所描述的各个方法和处理,例如过程1000。例如,在一些实施例中,过程1000可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1207。在一些实施例中,计算机程序的部分或者全部可以经由RAM和/或ROM和/或通信单元1208而被载入和/或安装到设备1200上。当计算机程序加载到RAM和/或ROM并由计算单元1201执行时,可以执行上文描述的过程1000的一个或多个步骤。备选地,在其他实施例中,计算单元1201可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行过程1000。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
此外,虽然采用特定次序描绘了各操作,但是这应当理解为要求这样操作以所示出的特定次序或以顺序次序执行,或者要求所有图示的操作应被执行以取得期望的结果。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实现中。相反地,在单个实现的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实现中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
Claims (13)
1.一种数据处理的方法,所述方法用于数据处理设备,所述方法包括:
获取用于指示神经网络模型的高阶信息矩阵的克罗内克因子矩阵,所述高阶信息矩阵用于校正所述神经网络模型的一阶梯度;
对所述克罗内克因子矩阵进行切分以得到多个方阵,所述多个方阵为所述克罗内克因子矩阵的子矩阵,所述多个方阵的主对角线一一与所述克罗内克因子矩阵主对角线的一部分对应;以及
基于所述多个方阵,调整所述神经网络模型的参数。
2.根据权利要求1所述的方法,其中所述数据处理设备包括用于执行所述调整的计算资源,并且其中对所述克罗内克因子矩阵进行切分包括:
基于所述计算资源的资源标识和所述神经网络模型的模型标识对所述克罗内克因子矩阵进行切分。
3.根据权利要求2所述的方法,其中所述数据处理设备中存储有所述资源标识、所述模型标识和维度之间的对应关系,所述维度指示所述克罗内克因子矩阵被切分成得到所述多个方阵中至少一个方阵的秩。
4.根据权利要求1所述的方法,其中所述数据处理设备包括用于执行所述调整的计算资源,并且其中对所述克罗内克因子矩阵进行切分包括:
基于多个维度对应的性能信息,从所述多个维度中选择目标维度来切分所述克罗内克因子矩阵,其中,一个维度对应的性能信息指示所述计算资源处理与所述维度对应的方阵的效率,所述目标维度指示所述克罗内克因子矩阵被切分成得到所述多个方阵中至少一个方阵的秩。
5.根据权利要求4所述的方法,其中所述维度对应的性能信息的值与所述数据处理设备计算与所述维度对应的方阵的逆矩阵所需的时间有关。
6.根据权利要求1所述的方法,其中对所述克罗内克因子矩阵进行切分包括:
基于多个维度对应的信息损失,从所述多个维度中选择目标维度来切分所述克罗内克因子矩阵,其中,一个维度对应的信息损失指示由于利用所述维度来切分参考克罗内克因子矩阵造成的信息损失,所述目标维度指示所述克罗内克因子矩阵被切分成得到所述多个方阵中至少一个方阵的秩。
7.根据权利要求6所述的方法,其中所述维度对应的信息损失是利用所述维度切分参考克罗内克因子矩阵所得到的多个方阵的联合矩阵的谱范数与所述参考克罗内克因子矩阵的谱范数之间的差。
8.根据权利要求1所述的方法,其中所述数据处理设备包括用于执行所述调整的计算资源,其中对所述克罗内克因子矩阵进行切分包括:
基于多个维度对应的性能信息和所述多个维度对应的信息损失,从所述多个维度中选择目标维度来切分所述克罗内克因子矩阵,其中,一个维度对应的性能信息指示所述计算资源处理与所述维度对应的方阵的效率,一个维度对应的信息损失指示由于利用所述维度来切分参考克罗内克因子矩阵造成的信息损失,所述目标维度指示所述克罗内克因子矩阵被切分成得到所述多个方阵中至少一个方阵的秩。
9.根据权利要求1-8中任一项所述的方法,其中调整所述神经网络模型的所述参数包括:
并行处理所述多个方阵,以确定所述多个方阵的多个逆矩阵;以及
基于所述多个方阵的多个逆矩阵的组合,调整所述神经网络模型的所述参数。
10.根据权利要求1-8中任一项所述的方法,其中所述神经网络模型为图像处理模型,并且其中获取所述克罗内克因子矩阵包括:
获取图像训练数据;以及
将所述图像训练数据应用于所述图像处理模型以获取所述克罗内克因子矩阵。
11.根据权利要求1-8中任一项所述的方法,其中所述神经网络模型为文本处理模型,并且其中获取所述克罗内克因子矩阵包括:
获取文本训练数据;以及
将所述文本训练数据应用于所述文本处理模型以获取所述克罗内克因子矩阵。
12.一种电子设备,包括:
至少一个计算单元;
至少一个存储器,所述至少一个存储器被耦合到所述至少一个计算单元并且存储用于由所述至少一个计算单元执行的指令,所述指令当由所述至少一个计算单元执行时,使得所述设备执行根据权利要求1-11中任一项所述的方法。
13.一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现根据权利要求1-11中任一项所述的方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010480676.0A CN113743571A (zh) | 2020-05-30 | 2020-05-30 | 数据处理的方法、电子设备和存储介质 |
PCT/CN2021/091753 WO2021244203A1 (zh) | 2020-05-30 | 2021-04-30 | 参数优化的方法、电子设备和存储介质 |
US18/071,277 US20230087774A1 (en) | 2020-05-30 | 2022-11-29 | Parameter optimization method, electronic device, and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010480676.0A CN113743571A (zh) | 2020-05-30 | 2020-05-30 | 数据处理的方法、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113743571A true CN113743571A (zh) | 2021-12-03 |
Family
ID=78727840
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010480676.0A Pending CN113743571A (zh) | 2020-05-30 | 2020-05-30 | 数据处理的方法、电子设备和存储介质 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230087774A1 (zh) |
CN (1) | CN113743571A (zh) |
WO (1) | WO2021244203A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115953651A (zh) * | 2023-03-13 | 2023-04-11 | 浪潮电子信息产业股份有限公司 | 一种基于跨域设备的模型训练方法、装置、设备及介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090216821A1 (en) * | 2005-12-05 | 2009-08-27 | Kyoto University | Singular Value Decomposition Apparatus and Singular Value Decomposition Method |
CN106066606B (zh) * | 2016-05-30 | 2019-06-04 | 华北水利水电大学 | 基于l-m神经网络的氢内燃机点火正时标定优化系统及其优化方法 |
FR3064436B1 (fr) * | 2017-03-21 | 2022-11-18 | Orange | Procede de codage et codeur a code polaire |
CN110059805B (zh) * | 2019-04-15 | 2021-08-31 | 广州异构智能科技有限公司 | 用于二值阵列张量处理器的方法 |
CN111191528B (zh) * | 2019-12-16 | 2024-02-23 | 江苏理工学院 | 基于深度学习的校园暴力行为检测系统和方法 |
-
2020
- 2020-05-30 CN CN202010480676.0A patent/CN113743571A/zh active Pending
-
2021
- 2021-04-30 WO PCT/CN2021/091753 patent/WO2021244203A1/zh active Application Filing
-
2022
- 2022-11-29 US US18/071,277 patent/US20230087774A1/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115953651A (zh) * | 2023-03-13 | 2023-04-11 | 浪潮电子信息产业股份有限公司 | 一种基于跨域设备的模型训练方法、装置、设备及介质 |
CN115953651B (zh) * | 2023-03-13 | 2023-09-12 | 浪潮电子信息产业股份有限公司 | 一种基于跨域设备的模型训练方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
US20230087774A1 (en) | 2023-03-23 |
WO2021244203A1 (zh) | 2021-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3926623B1 (en) | Speech recognition method and apparatus, and neural network training method and apparatus | |
US11423311B2 (en) | Automatic tuning of artificial neural networks | |
CN109410974B (zh) | 语音增强方法、装置、设备及存储介质 | |
CN111079899A (zh) | 神经网络模型压缩方法、系统、设备及介质 | |
CN109284761B (zh) | 一种图像特征提取方法、装置、设备及可读存储介质 | |
KR20190113952A (ko) | 배치 재정규화 계층 | |
US20210073633A1 (en) | Neural network rank optimization device and optimization method | |
CN113591918A (zh) | 图像处理模型的训练方法、图像处理方法、装置和设备 | |
CN112101547A (zh) | 一种对网络模型的剪枝方法、装置、电子设备及存储介质 | |
CN114282666A (zh) | 基于局部稀疏约束的结构化剪枝方法和装置 | |
CN114581868A (zh) | 基于模型通道剪枝的图像分析方法和装置 | |
KR20220116395A (ko) | 사전 훈련 모델의 결정 방법, 장치, 전자 기기 및 저장 매체 | |
CN113743571A (zh) | 数据处理的方法、电子设备和存储介质 | |
US11507782B2 (en) | Method, device, and program product for determining model compression rate | |
CN113965313A (zh) | 基于同态加密的模型训练方法、装置、设备以及存储介质 | |
CN115129831A (zh) | 数据处理方法、装置、电子设备及计算机存储介质 | |
CN109871448B (zh) | 一种短文本分类的方法及系统 | |
CN111797220A (zh) | 对话生成方法、装置、计算机设备和存储介质 | |
CN114969340B (zh) | 一种对深度神经网络进行剪枝的方法及装置 | |
CN116128044A (zh) | 一种模型剪枝方法、图像处理方法及相关装置 | |
JP2017142746A (ja) | 単語ベクトル学習装置、自然言語処理装置、方法、及びプログラム | |
KR102393761B1 (ko) | 이미지 처리를 위한 인공 신경망 모델 학습 방법 및 시스템 | |
CN114972695A (zh) | 一种点云生成方法、装置、电子设备及存储介质 | |
CN112598078B (zh) | 混合精度训练方法、装置、电子设备及存储介质 | |
CN112488319B (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 |