发明内容
有鉴于此,本申请提供了一种基于区块链的模型轻量化方法、装置、设备及存储介质,主要目的在于解决目前由于电商与移动终端之前的计算平台不同,存储资源和计算资源也大不相同,进而对推荐模型的训练和推理产生影响,使得推荐模型在移动终端面临资源限制,导致模型优化或推理的功耗较大,时延较高的问题。
依据本申请第一方面,提供了一种基于区块链的模型轻量化方法,该方法应用于区块链网络中发布任务的中心节点,包括:
获取目标模型参数,基于约束算法,将所述目标模型参数约束为低比特目标模型参数;
在本地数据库中查询初始模型对应的参数目标,根据所述参数目标,计算所述低比特目标模型参数与预设聚类中心的参数距离;
将所述参数距离与预设距离进行比对,生成第一比对结果;
当所述第一比对结果指示所述参数距离小于等于所述预设距离时,得到所述轻量化模型,将所述轻量化模型上传至区块链网络。
可选地,所述获取目标模型参数,基于约束算法,将所述目标模型参数约束为低比特目标模型参数,包括:
在区块链网络中下载其它区块链节点上传的多个子模型参数,对所述多个子模型参数进行参数聚合,得到所述目标模型参数;
将所述目标模型参数指示的多个参数分量分别与所述第一预设阈值进行比对,生成第二比对结果;
若所述第二比对结果指示所述参数分量大于第一预设阈值,则将所述参数分量约束为第一预设数值,若所述第二比对结果指示所述参数分量等于所述第一预设阈值,则将所述参数分量约束为第二预设数值,若所述第二比对结果指示所述参数分量小于所述第一预设阈值,则将所述参数分量约束为第三预设数值;
对所述多个参数分量中每个参数分量进行参数约束,得到所述低比特目标模型参数。
可选地,所述根据所述参数目标,计算所述低比特目标模型参数与预设聚类中心的参数距离,包括:
在所述参数目标中确定第一参数和第二参数,分别计算所述预设聚类中心指示的多个中心分量中每个中心分量与所述第一参数的中心距离,得到多个中心距离;
将所述多个中心距离按照数值从小到大的顺序进行排序,提取满足预设条件的中心距离对应的中心分量作为第一中心索引;
读取所述第二参数中每个参数分量对应的索引标识,将索引标识与所述第一中心索引相同的参数分量更新为第一分量值;
将索引标识与所述第一中心索引不同的参数分量更新为第二分量值,得到所述第二参数对应的第一优化参数,将所述第一优化参数作为所述参数距离。
可选地,所述将所述参数距离与预设距离进行比对,生成第一比对结果之后,所述方法还包括:
当所述第一比对结果指示所述参数距离大于所述预设距离时,查询所述参数距离对应的第一优化参数、第一参数和预设聚类中心;
计算所述目标模型参数、所述第一优化参数的转置与所述预设聚类中心的第一乘积,计算所述预设聚类中心的转置、所述第一优化参数、所述第一优化参数的转置与所述预设聚类中心的第二乘积;
计算所述第一乘积和所述第二乘积之间的比值,采用所述比值对所述第一参数进行参数更新,得到更新后的第一参数;
分别计算所述预设聚类中心指示的所述多个中心分量中每个中心分量与所述更新后的第一参数的中心距离,得到多个中心距离;
将所述多个中心距离按照数值从小到大的顺序进行排序,提取满足预设条件的中心距离对应的中心分量作为第二中心索引;
读取所述第一优化参数中每个参数分量对应的索引标识,将索引标识与所述第二中心索引相同的参数分量更新为第三分量值;
将索引标识与所述第二中心索引不同的参数分量更新为第四分量值,得到所述第一优化参数对应的第二优化参数,将所述第二优化参数作为所述参数距离;
将所述参数距离与所述预设距离进行比对,生成第二比对结果,直至所述第二比对结果指示所述参数距离小于等于所述预设距离,得到所述轻量化模型。
可选地,所述获取目标模型参数,基于约束算法,将所述目标模型参数约束为低比特目标模型参数之前,所述方法还包括:
确定指定神经网络结构,将所述指定神经网络结构作为所述初始模型;
采用本地样本数据对所述初始模型进行模型训练,获取所述初始模型的初始参数;
基于所述约束算法,根据所述初始参数计算初始轻量化模型,将所述初始轻量化模型上传至所述区块链网络。
可选地,所述得到所述轻量化模型,将所述轻量化模型上传至区块链网络,包括:
确定上一次进行模型轻量化得到的历史轻量化模型,计算所述历史轻量化模型的模型参数与所述轻量化模型的模型参数之间的差值,将所述差值与预设差值进行比对;
若所述差值大于所述预设差值,则将所述轻量化模型上传至区块链网络,并重新获取所述目标模型参数。
可选地,所述确定上一次进行模型轻量化得到的历史轻量化模型,计算所述历史轻量化模型的模型参数与所述轻量化模型的模型参数之间的差值,将所述差值与预设差值进行比对之后,所述方法还包括:
若所述差值小于或等于所述预设差值,则将目标模型参数对应的轻量化模型作为共享模型。
依据本申请第二方面,提供了一种基于区块链的模型轻量化装置,该装置应用于区块链网络中发布任务的中心节点,包括:
获取模块,用于获取目标模型参数,基于约束算法,将所述目标模型参数约束为低比特目标模型参数;
第一计算模块,用于在本地数据库中查询初始模型对应的参数目标,根据所述参数目标,计算所述低比特目标模型参数与预设聚类中心的参数距离;
第一比对模块,用于将所述参数距离与预设距离进行比对,生成第一比对结果;
传输模块,用于当所述第一比对结果指示所述参数距离小于等于所述预设距离时,得到所述轻量化模型,将所述轻量化模型上传至区块链网络。
可选地,所述获取模块,用于在区块链网络中下载其它区块链节点上传的多个子模型参数,对所述多个子模型参数进行参数聚合,得到所述目标模型参数;将所述目标模型参数指示的多个参数分量分别与所述第一预设阈值进行比对,生成所述比对结果;若所述比对结果指示所述参数分量大于第一预设阈值,则将所述参数分量约束为第一预设数值,若所述比对结果指示所述参数分量等于所述第一预设阈值,则将所述参数分量约束为第二预设数值,若所述比对结果指示所述参数分量小于所述第一预设阈值,则将所述参数分量约束为第三预设数值;对所述多个参数分量中每个参数分量进行参数约束,得到所述低比特目标模型参数。
可选地,所述第一计算模块,用于在所述参数目标中确定第一参数和第二参数,分别计算所述预设聚类中心指示的多个中心分量中每个中心分量与所述第一参数的中心距离,得到多个中心距离;
将所述多个中心距离按照数值从小到大的顺序进行排序,提取满足预设条件的中心距离对应的中心分量作为第一中心索引;读取所述第二参数中每个参数分量对应的索引标识,将索引标识与所述第一中心索引相同的参数分量更新为第一分量值;将索引标识与所述第一中心索引不同的参数分量更新为第二分量值,得到所述第二参数对应的第一优化参数,将所述第一优化参数作为所述参数距离。
可选地,所述装置还包括:
查询模块,用于当所述第一比对结果指示所述参数距离大于所述预设距离时,查询所述参数距离对应的第一优化参数、第一参数和预设聚类中心;
第二计算模块,用于计算所述目标模型参数、所述第一优化参数的转置与所述预设聚类中心的第一乘积,计算所述预设聚类中心的转置、所述第一优化参数、所述第一优化参数的转置与所述预设聚类中心的第二乘积;
更新模块,用于计算所述第一乘积和所述第二乘积之间的比值,采用所述比值对所述第一参数进行参数更新,得到更新后的第一参数;
第三计算模块,用于分别计算所述预设聚类中心指示的所述多个中心分量中每个中心分量与所述更新后的第一参数的中心距离,得到多个中心距离;
排序模块,用于将所述多个中心距离按照数值从小到大的顺序进行排序,提取满足预设条件的中心距离对应的中心分量作为第二中心索引;
读取模块,用于读取所述第一优化参数中每个参数分量对应的索引标识,将索引标识与所述第二中心索引相同的参数分量更新为第三分量值;
设置模块,用于将索引标识与所述第二中心索引不同的参数分量更新为第四分量值,得到所述第一优化参数对应的第二优化参数,将所述第二优化参数作为所述参数距离;
第二比对模块,用于将所述参数距离与所述预设距离进行比对,生成第二比对结果,直至所述第二比对结果指示所述参数距离小于等于所述预设距离,得到所述轻量化模型。
可选地,所述装置还包括:
确定模块,用于确定指定神经网络结构,将所述指定神经网络结构作为所述初始模型;
训练模块,用于采用本地样本数据对所述初始模型进行模型训练,获取所述初始模型的初始参数;
所述获取模块,还用于基于所述约束算法,将所述初始参数约束为低比特初始参数;
所述第一计算模块,还用于根据所述初始模型对应的参数目标,计算所述低比特初始参数与所述预设聚类中心的初始参数距离;
所述第一比对模块,还用于将所述初始参数距离与预设距离进行比对,生成第三比对结果;
所述传输模块,还用于当所述第三比对结果指示所述初始参数距离小于等于所述预设距离时,得到初始轻量化模型,将所述初始轻量化模型上传至所述区块链网络。
可选地,所述传输模块,用于确定上一次进行模型轻量化得到的历史轻量化模型,计算所述历史轻量化模型的模型参数与所述轻量化模型的模型参数之间的差值,将所述差值与预设差值进行比对;若所述差值大于所述预设差值,则将所述轻量化模型上传至区块链网络,并重新获取所述目标模型参数。
可选地,所述传输模块,还用于若所述差值小于或等于所述预设差值,则将目标模型参数对应的轻量化模型作为共享模型。
依据本申请第三方面,提供了一种设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一方面中任一项所述方法的步骤。
依据本申请第四方面,提供了一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面中任一项所述方法的步骤。
借由上述技术方案,本申请提供的一种基于区块链的模型轻量化方法、装置、设备及存储介质,本申请应用于区块链网络中发布任务的中心节点,首先,获取目标模型参数,基于约束算法,将目标模型参数约束为低比特目标模型参数。随后,在本地数据库中查询初始模型对应的参数目标,根据参数目标,计算低比特目标模型参数与预设聚类中心的参数距离,将参数距离与预设距离进行比对,生成第一比对结果。最后,若第一比对结果指示参数距离小于等于预设距离时,得到轻量化模型,将轻量化模型上传至区块链网络。通过区块链网络的引入,实现分布式协同建模,再使用低比特量化机制对推荐模型进行轻量化压缩,可以有效提升模型的精确度,减小推荐模型在移动终端进行模型优化或推理的功耗和时延。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
具体实施方式
下面将参照附图更详细地描述本申请的示例性实施例。虽然附图中显示了本申请的示例性实施例,然而应当理解,可以以各种形式实现本申请而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本申请,并且能够将本申请的范围完整的传达给本领域的技术人员。
本申请实施例提供了一种基于区块链的模型轻量化方法,如图1所示,该方法包括:
101、获取目标模型参数,基于约束算法,将目标模型参数约束为低比特目标模型参数。
近年来,随着深度神经网络在电商个性化推荐、图像识别以及自然语言处理等领域的不断发展,大幅度提升了电商平台图像数据分类、目标检测、语义分析等任务的性能,基本满足了实际使用的精度需求。目前,电商平台确定卷积神经网络,将模型参数发送至各个移动终端,各个移动终端根据接收到的模型参数进行模型训练,将训练完成后的模型参数发送至电商平台进行聚合,生成推荐模型。随后,由电商平台将推荐模型发送至各个移动终端进行个性化推荐。但是申请人认识到,由于电商与移动终端之前的计算平台不同,存储资源和计算资源也大不相同,进而对推荐模型的训练和推理产生影响,使得推荐模型在移动终端面临资源限制,导致模型优化或推理的功耗较大,时延较高。
因此,本申请提供的一种基于区块链的模型轻量化方法、装置、设备及存储介质,本申请应用于区块链网络中发布任务的中心节点,首先,获取目标模型参数,基于约束算法,将目标模型参数约束为低比特目标模型参数。随后,在本地数据库中查询初始模型对应的参数目标,根据参数目标,计算低比特目标模型参数与预设聚类中心的参数距离,将参数距离与预设距离进行比对,生成第一比对结果。最后,若第一比对结果指示参数距离小于等于预设距离时,得到轻量化模型,将轻量化模型上传至区块链网络。通过区块链网络的引入,实现分布式协同建模,再使用低比特量化机制对推荐模型进行轻量化压缩,可以有效提升模型的精确度,减小推荐模型在移动终端进行模型优化或推理的功耗和时延。
在本申请实施例中,中心节点首先基于应用场景,如企业、电商平台、银行、智能移动端等,确定神经网络结构,也就是初始模型。随后,利用本地样本数据对初始模型进行低比特训练,得到初始轻量化模型。接下来,将初始轻量化模型上传至区块链网络,以使区块链网络中的其它区块链节点下载初始轻量化模型进行本地训练,并上传训练完成后的子模型参数。由中心节点对多个子模型参数进行参数聚合,得到目标模型参数。最后,基于约束算法,将目标模型参数约束为低比特目标模型参数。
102、在本地数据库中查询初始模型对应的参数目标,根据参数目标,计算低比特目标模型参数与预设聚类中心的参数距离。
在本申请实施例中,中心节点需要提前将预先设置的不同初始模型对应的参数目标和聚类中心存储在本地数据库中。在实际运行过程中,基于当前初始模型对应的参数目标,不断计算每次轻量化后模型参数到预设聚类中心的参数距离,以此判断推荐模型是否完成轻量化操作。
103、将参数距离与预设距离进行比对,生成第一比对结果。
在本申请实施例中,中心节点每执行一次轻量化操作后,需要将计算出的参数距离与预设距离进行比对,持续判断推荐模型是否已经达到中心节点的低比特量化要求,直到参数距离小于等于预设距离时,得到符合中心节点要求的轻量化模型。通过权重缩放稀疏和聚类指示矩阵的方式对神经网络模型进行低比特量化,能够不断减小浮点参数和预定义的聚类中心之间的参数距离,当参数距离小于等于预设距离时,实现模型轻量化。
104、当第一比对结果指示参数距离小于等于预设距离时,得到轻量化模型,将轻量化模型上传至区块链网络。
在本申请实施例中,当第一比对结果指示参数距离小于等于预设距离时,说明当前推荐模型的模型参数与聚类中心之间的距离已经满足预设条件,也即推荐模型已经完成低比特量化。随后,将量化后的模型参数上传至区块链网络中,以使区块链网络中的其它区块链节点基于量化后的模型参数再次进行本地训练,上传训练后的子模型参数,直至推荐模型的模型精度达到预设条件。
本申请实施例提供的方法,可以应用于区块链网络中发布任务的中心节点,首先,获取目标模型参数,基于约束算法,将目标模型参数约束为低比特目标模型参数。随后,在本地数据库中查询初始模型对应的参数目标,根据参数目标,计算低比特目标模型参数与预设聚类中心的参数距离,将参数距离与预设距离进行比对,生成第一比对结果。最后,若第一比对结果指示参数距离小于等于预设距离时,得到轻量化模型,将轻量化模型上传至区块链网络。通过区块链网络的引入,实现分布式协同建模,再使用低比特量化机制对推荐模型进行轻量化压缩,可以有效提升模型的精确度,减小推荐模型在移动终端进行模型优化或推理的功耗和时延。
本申请实施例提供了一种基于区块链的模型轻量化方法,如图2所示,该方法包括:
201、确定初始模型以及初始模型对应的初始参数。
在本申请实施例中,发布任务的中心节点会根据实际应用场景,选择对应的神经网络结构作为初始模型。随后,利用本地样本数据对初始模型进行模型训练,完成训练后,提取初始模型的模型参数作为初始参数。
202、基于约束算法,根据初始参数计算初始轻量化模型,将初始轻量化模型上传至区块链网络。
具体地,中心节点首先基于预设的约束算法,将初始参数约束为低比特初始参数。随后,根据初始模型对应的参数目标,计算低比特初始参数与预设聚类中心的初始参数距离。实际上,参数目标以及预设聚类中心是中心节点本次轻量化的要求进行预先设置的,具体可以采用中心节点默认的内容,也可以由相关工作人员依据实际运行情况进行设置,本申请对参数目标以及预设聚类中心的内容不进行具体限定。
进一步地,中心节点将初始参数距离与预设距离进行比对,生成第三比对结果,不断重复上述步骤,直至第三比对结果指示初始参数距离小于等于预设距离时,得到初始轻量化模型,将初始轻量化模型上传至区块链网络。
203、在区块链网络中下载其它区块链节点上传的多个子模型参数,对多个子模型参数进行参数聚合,得到目标模型参数,基于约束算法,将目标模型参数约束为低比特目标模型参数。
在实际应用过程中,其它区块链节点,即移动终端,在区块链网络中下载中心节点上传的初始轻量化模型,利用存储在本地的样本数据对初始轻量化模型进行本地训练,得到本地模型。通过分布式协同建模,共同提升推荐模型的模型精确度。随后,将本地模型参数也就是子模型参数上传至区块链节点,由中心节点在区块链网络中下载其它区块链节点上传的多个子模型参数进行参数聚合,得到目标模型参数。
随后,基于约束算法,将目标模型参数约束为低比特目标模型参数。具体地,将目标模型参数指示的多个参数分量分别与第一预设阈值进行比对,生成第二比对结果,若第二比对结果指示参数分量大于第一预设阈值,则将参数分量约束为第一预设数值,若第二比对结果指示参数分量等于第一预设阈值,则将参数分量约束为第二预设数值,若第二比对结果指示参数分量小于第一预设阈值,则将参数分量约束为第三预设数值。最后,对多个参数分量中每个参数分量进行参数约束,得到低比特目标模型参数。
例如,设置三值神经网络的约束方式为设置预设阈值Δ,将模型参数量化为-1到1之间。具体约束过程可以基于下述公式1实现:
其中,W为模型参数,Wi为模型参数的参数分量,Δ为第一预设阈值。
204、在本地数据库中查询初始模型对应的参数目标,根据参数目标,确定第一中心索引。
在本申请实施例中,中心节点在本地数据库中查询初始模型对应的参数目标,确定第一参数和第二参数。随后,分别计算预设聚类中心指示的多个中心分量中每个中心分量与第一参数的中心距离,得到多个中心距离。接下来,将多个中心距离按照数值从小到大的顺序进行排序,提取满足预设条件的中心距离对应的中心分量作为第一中心索引。具体地,由于神经网络在预训练过程中参数是不断调整的,无法一次性得到最优解,因此交替利用W,α,Z三个变量来实现最优化求解,以三值神经网络为例,参数目标为下述公式2:
其中M=【-1,0,1】
T表示预设聚类中心;α表示第一参数;Z表示第二参数;
表示初始模型对应的优化损失函数。进一步地,计算模型参数与第一参数的比值
计算M中每个中心分量与
之间的距离,将该距离作为每个中心分量与第一参数的中心距离。
205、读取第二参数中每个参数分量对应的索引标识,将索引标识与第一中心索引相同的参数分量更新为第一分量值,将索引标识与第一中心索引不同的参数分量更新为第二分量值,得到第二参数对应的第一优化参数,将第一优化参数作为参数距离。
具体地,中心节点首先通过固定第一参数来求解第二参数,具体求解第二参数的过程可以基于下述公式3实现:
其中,
返回M中距离
最近的第一中心索引;ω表示目标模型参数;Z
i表示第二参数的参数分量。
最后得到第二参数对应的第一优化参数,将第一优化参数作为参数距离。
206、将参数距离与预设距离进行比对,生成第一比对结果,当第一比对结果指示参数距离大于预设距离时,执行下述步骤207。当第一比对结果指示参数距离小于等于预设距离时,执行下述步骤208。
在本申请实施例中,中心节点会将参数距离与预设距离进行比对,来判断是否将模型参数轻量化至预设聚类中心附近。当参数距离小于等于预设距离时,说明模型参数已经完成轻量化,可以执行下述步骤208.当参数距离大于预设距离时,说明推荐模型需要继续进行模型轻量化操作,也就是执行下述步骤207。
207、当第一比对结果指示参数距离大于预设距离时,查询参数距离对应的第一优化参数、第一参数和预设聚类中心,基于第一优化参数、第一参数和预设聚类中心,重新获取参数距离,直至参数距离小于等于预设距离,执行下述步骤208。
具体地,当第一比对结果指示参数距离大于预设距离时,查询参数距离对应的第一优化参数、第一参数和预设聚类中心。随后。计算目标模型参数、第一优化参数的转置与预设聚类中心的第一乘积,计算预设聚类中心的转置、第一优化参数、第一优化参数的转置与预设聚类中心的第二乘积。计算第一乘积和第二乘积之间的比值,采用比值对第一参数进行参数更新,得到更新后的第一参数。具体地,对损失函数求偏导数,可以得出下述公式4:
其中W表示目标模型参数;Z表示第一优化参数;M表示预设聚类中心。通过上述步骤205计算得出的第一优化参数,计算第一参数α,进一步地,在得到第一参数α后继续迭代求解第二参数Z。具体地,分别计算预设聚类中心指示的多个中心分量中每个中心分量与更新后的第一参数的中心距离,得到多个中心距离,将多个中心距离按照数值从小到大的顺序进行排序,提取满足预设条件的中心距离对应的中心分量作为第二中心索引。接下来,读取第一优化参数中每个参数分量对应的索引标识,将索引标识与第二中心索引相同的参数分量更新为第三分量值,将索引标识与第二中心索引不同的参数分量更新为第四分量值,得到第一优化参数对应的第二优化参数,将第二优化参数作为参数距离。最后,将将参数距离与预设距离进行比对,生成第二比对结果,直至第二比对结果指示参数距离小于等于预设距离,得到轻量化模型。
208、当第一比对结果指示参数距离小于等于预设距离时,得到轻量化模型,确定上一次进行模型轻量化得到的历史轻量化模型,计算历史轻量化模型的模型参数与轻量化模型的模型参数之间的差值,将差值与预设差值进行比对。
在本申请实施例中,当参数距离小于等于预设距离时,说明模型参数已经完成轻量化,可以得到目标模型参数对应的轻量化模型。随后,确定上一次进行模型轻量化操作得到的历史轻量化模型,计算历史轻量化模型参数与轻量化模型参数之间的差值,判断当前的轻量化模型是否收敛。
209、若差值大于预设差值,则将轻量化模型上传至区块链网络,重新执行上述步骤203-207,获取目标模型参数。
具体地,若历史轻量化模型参数与轻量化模型参数之间的差值大于预设差值,则说明当前的轻量化模型并未收敛,也就是说轻量化模型的模型精度还不满足预设的精度要求。进而中心节点将本次得到的轻量化模型上传至区块链网络,并重新在区块链网络中获取目标模型参数,基于约束算法,计算目标模型参数对应的轻量化模型。将轻量化模型上传至区块链网络,以使其它区块链节点下载轻量化模型进行本地训练,即重新执行上述步骤203-207。通过区块链网络的引入,各移动终端通过区块链网络共享模型参数,可以有效降低隐私泄露风险。
210、若差值小于或等于预设差值,则将目标模型参数对应的轻量化模型作为共享模型。
在本申请实施例中,若历史轻量化模型参数与轻量化模型参数之间的差值小于或等于预设差值,则说明当前的轻量化模型已经收敛,也就是说轻量化模型的模型精度已经满足预设的精度要求。此时可以将计算得出的轻量化模型作为共享模型进行应用,如产品推荐等。另外,轻量化操作过程中产生的模型参数参数和日志存于区块链网络当中,可以随时对训练过程进行溯源,保障模型优化的可信性,使得各参与训练的移动终端中在训练过程中的训练日志得以记录和溯源,有效防止恶意节点有意破坏模型优化过程。
本申请实施例提供的方法,可以应用于区块链网络中发布任务的中心节点,首先,获取目标模型参数,基于约束算法,将目标模型参数约束为低比特目标模型参数。随后,在本地数据库中查询初始模型对应的参数目标,根据参数目标,计算低比特目标模型参数与预设聚类中心的参数距离,将参数距离与预设距离进行比对,生成第一比对结果。最后,若第一比对结果指示参数距离小于等于预设距离时,得到轻量化模型,将轻量化模型上传至区块链网络。通过区块链网络的引入,实现分布式协同建模,再使用低比特量化机制对推荐模型进行轻量化压缩,可以有效提升模型的精确度,减小推荐模型在移动终端进行模型优化或推理的功耗和时延。
进一步地,作为图1所述方法的具体实现,本申请实施例提供了一种基于区块链的模型轻量化装置,如图3A所示,所述装置包括:获取模块301、第一计算模块302、第一比对模块303、传输模块304。
该获取模块301,用于获取目标模型参数,基于约束算法,将所述目标模型参数约束为低比特目标模型参数;
该第一计算模块302,用于在本地数据库中查询初始模型对应的参数目标,根据所述参数目标,计算所述低比特目标模型参数与预设聚类中心的参数距离;
该第一比对模块303,用于将所述参数距离与预设距离进行比对,生成第一比对结果;
该传输模块304,用于当所述第一比对结果指示所述参数距离小于等于所述预设距离时,得到所述轻量化模型,将所述轻量化模型上传至区块链网络。
在具体的应用场景中,该获取模块,用于在区块链网络中下载其它区块链节点上传的多个子模型参数,对所述多个子模型参数进行参数聚合,得到所述目标模型参数;将所述目标模型参数指示的多个参数分量分别与所述第一预设阈值进行比对,生成所述比对结果;若所述比对结果指示所述参数分量大于第一预设阈值,则将所述参数分量约束为第一预设数值,若所述比对结果指示所述参数分量等于所述第一预设阈值,则将所述参数分量约束为第二预设数值,若所述比对结果指示所述参数分量小于所述第一预设阈值,则将所述参数分量约束为第三预设数值;对所述多个参数分量中每个参数分量进行参数约束,得到所述低比特目标模型参数。
在具体的应用场景中,该第一计算模块,用于在所述参数目标中确定第一参数和第二参数,分别计算所述预设聚类中心指示的多个中心分量中每个中心分量与所述第一参数的中心距离,得到多个中心距离;
将所述多个中心距离按照数值从小到大的顺序进行排序,提取满足预设条件的中心距离对应的中心分量作为第一中心索引;读取所述第二参数中每个参数分量对应的索引标识,将索引标识与所述第一中心索引相同的参数分量更新为第一分量值;将索引标识与所述第一中心索引不同的参数分量更新为第二分量值,得到所述第二参数对应的第一优化参数,将所述第一优化参数作为所述参数距离。
在具体的应用场景中,如图3B所示,所述装置还包括:查询模块305、第二计算模块306、更新模块307、第三计算模块308、排序模块309、读取模块310、设置模块311、第二比对模块312。
该查询模块305,用于当所述第一比对结果指示所述参数距离大于所述预设距离时,查询所述参数距离对应的第一优化参数、第一参数和预设聚类中心;
该第二计算模块306,用于计算所述目标模型参数、所述第一优化参数的转置与所述预设聚类中心的第一乘积,计算所述预设聚类中心的转置、所述第一优化参数、所述第一优化参数的转置与所述预设聚类中心的第二乘积;
该更新模块307,用于计算所述第一乘积和所述第二乘积之间的比值,采用所述比值对所述第一参数进行参数更新,得到更新后的第一参数;
该第三计算模块308,用于分别计算所述预设聚类中心指示的所述多个中心分量中每个中心分量与所述更新后的第一参数的中心距离,得到多个中心距离;
该排序模块309,用于将所述多个中心距离按照数值从小到大的顺序进行排序,提取满足预设条件的中心距离对应的中心分量作为第二中心索引;
该读取模块310,用于读取所述第一优化参数中每个参数分量对应的索引标识,将索引标识与所述第二中心索引相同的参数分量更新为第三分量值;
该设置模块311,用于将索引标识与所述第二中心索引不同的参数分量更新为第四分量值,得到所述第一优化参数对应的第二优化参数,将所述第二优化参数作为所述参数距离;
第二比对模块312,用于将所述参数距离与所述预设距离进行比对,生成第二比对结果,直至所述第二比对结果指示所述参数距离小于等于所述预设距离,得到所述轻量化模型。
在具体的应用场景中,如图3C所示,所述装置还包括:确定模块313、训练模块314。
该确定模块313,用于确定指定神经网络结构,将所述指定神经网络结构作为所述初始模型;
该训练模块314,用于采用本地样本数据对所述初始模型进行模型训练,获取所述初始模型的初始参数;
该获取模块301,还用于基于所述约束算法,将所述初始参数约束为低比特初始参数;
该第一计算模块302,还用于根据所述初始模型对应的参数目标,计算所述低比特初始参数与所述预设聚类中心的初始参数距离;
该第一比对模块303,还用于将所述初始参数距离与预设距离进行比对,生成第三比对结果;
该传输模块304,还用于当所述第三比对结果指示所述初始参数距离小于等于所述预设距离时,得到初始轻量化模型,将所述初始轻量化模型上传至所述区块链网络。
在具体的应用场景中,该传输模块304,用于确定上一次进行模型轻量化得到的历史轻量化模型,计算所述历史轻量化模型的模型参数与所述轻量化模型的模型参数之间的差值,将所述差值与预设差值进行比对;若所述差值大于所述预设差值,则将所述轻量化模型上传至区块链网络,并重新获取所述目标模型参数。
在具体的应用场景中,该传输模块304,还用于若所述差值小于或等于所述预设差值,则将目标模型参数对应的轻量化模型作为共享模型。
本申请实施例提供的装置,可以应用于区块链网络中发布任务的中心节点,首先,获取目标模型参数,基于约束算法,将目标模型参数约束为低比特目标模型参数。随后,在本地数据库中查询初始模型对应的参数目标,根据参数目标,计算低比特目标模型参数与预设聚类中心的参数距离,将参数距离与预设距离进行比对,生成第一比对结果。最后,若第一比对结果指示参数距离小于等于预设距离时,得到轻量化模型,将轻量化模型上传至区块链网络。通过区块链网络的引入,实现分布式协同建模,再使用低比特量化机制对推荐模型进行轻量化压缩,可以有效提升模型的精确度,减小推荐模型在移动终端进行模型优化或推理的功耗和时延。
需要说明的是,本申请实施例提供的一种基于区块链的模型轻量化装置所涉及各功能单元的其它相应描述,可以参考图1和图2中的对应描述,在此不再赘述。
在示例性实施例中,参见图4,还提供了一种设备,该设备包括总线、处理器、存储器和通信接口,还可以包括输入输出接口和显示设备,其中,各个功能单元之间可以通过总线完成相互间的通信。该存储器存储有计算机程序,处理器,用于执行存储器上所存放的程序,执行上述实施例中的基于区块链的模型轻量化方法。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述的基于区块链的模型轻量化方法的步骤。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景所述的方法。
本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本申请所必须的。
本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本申请序号仅仅为了描述,不代表实施场景的优劣。
以上公开的仅为本申请的几个具体实施场景,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。