CN110633052A - 一种存储嵌入参数的方法及装置 - Google Patents
一种存储嵌入参数的方法及装置 Download PDFInfo
- Publication number
- CN110633052A CN110633052A CN201910838750.9A CN201910838750A CN110633052A CN 110633052 A CN110633052 A CN 110633052A CN 201910838750 A CN201910838750 A CN 201910838750A CN 110633052 A CN110633052 A CN 110633052A
- Authority
- CN
- China
- Prior art keywords
- embedding
- stored
- parameter
- parameters
- storage
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Editing Of Facsimile Originals (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种存储嵌入参数的方法及装置,实现合理分配存储空间的效果,该方法包括:获取待存储的嵌入参数,基于所述待存储的嵌入参数所属的嵌入组的组号,结合所述待存储的嵌入参数在所述嵌入组中的序号,确定所述待存储的嵌入参数的存储位置;在预设的共享存储空间中,基于所述存储位置以及所述待存储的嵌入参数的数据量大小,确定存在足够的存储空间时,基于所述存储位置,将所述待存储的嵌入参数存储于所述共享存储空间中。这样,能够快速确定待存储的嵌入参数的存储位置,充分利用存储空间,同时,有效避免存储嵌入参数时发生冲突,从而合理、高效的分配存储空间。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种存储嵌入参数的方法及装置。
背景技术
张量流TensorFlow是一个基于数据流编程的符号数学系统,被广泛应用于各类机器学习算法的编程实现。基于TensorFlow,可以训练各种神经网络模型,用于图像、自然语言理解等研究。
具体的,参阅图1所示,TensorFlow中通常包含有参数服务器、执行服务器以及预估服务器,其中,参数服务器用于在模型训练过程中存储模型参数,执行服务器用于在模型训练过程中从参数服务器处获取模型参数,并进行梯度更新,而预估服务器用于将训练完毕的模型部署到线上。TensorFlow中,由参数服务器和执行服务器进行迭代训练,当参数服务器和执行服务器训练了一批数据并生成相应的模型时,迭代就完成了。
TensorFlow的模型推送方式是将参数服务器中的模型存储成模型镜像,然后再将模型批量推送到预估服务器。模型参数中通常包含有网络参数和嵌入(Embedding)参数,其中,相同属性的Embedding参数组成一个嵌入组(Embedding Group),已有技术下,同一个Embedding Group中的各个Embedding参数被保存的在一个固定长度的嵌入表(EmbeddingTable)。
具体的,在一个Embedding Group中,每个Embedding参数都有自己的序号,假设序号记为id,而参数服务器只支持固定长度的Embedding Table,因此,对于一个EmbeddingGroup,参数服务器需要提前预估上述Embedding Group的大小,从而确定对应的EmbeddingTable的固定长度n,然后将上述Embedding Group中的各个Embeddin参数存储到上述Embedding Table中id%n的存储位置。
由于各个模型中Embedding参数的数量在实时模型训练的过程中是一直变化的,并且通常能达到百亿级别,因此无法提前预估每个Embedding Group的大小,进而无法准确预估Embedding Table的固定长度n,这就造成了无法合理分配存储空间。
例如,参阅图2所示,假设Embedding Group的大小预估过小,就会造成EmbeddingTable的固定长度n的取值过小,那么,在将各个Embedding参数保存至Embedding Table的过程中,很容易造成资源冲突,如,假设Embedding Table的固定长度n的取值为100,Embedding Group中Embedding参数a的id为20,Embedding参数b的id为120,经计算,Embedding参数a和Embedding参数b的存储位置为Embedding Table中同一位置。
又例如,参阅图3所示,假设Embedding Group的大小预估过大,就会造成Embedding Table的固定长度n的取值过大,那么严重浪费存储空间。
由此可见,需要设计一种新的方案,以克服上述缺陷。
发明内容
本申请提供了一种存储嵌入参数的方法及装置,用以解决现有技术中存储空间分配不合理的问题。
本申请提供的技术方案如下:
一种存储嵌入参数的方法,应用于TensorFlow架构,包括:
获取待存储的嵌入参数,基于所述待存储的嵌入参数所属的嵌入组的组号,结合所述待存储的嵌入参数在所述嵌入组中的序号,确定所述待存储的嵌入参数的存储位置;
在预设的共享存储空间中,基于所述存储位置以及所述待存储的嵌入参数的数据量大小,确定存在足够的存储空间时,基于所述存储位置,将所述待存储的嵌入参数存储于所述共享存储空间中。
可选的,基于所述待存储的嵌入参数所属的嵌入组的组号,结合所述待存储的嵌入参数在所述嵌入组中的序号,确定所述待存储的嵌入参数的存储位置,具体包括:
基于所述组号和所述序号,采用预设的哈希函数获得相应的哈希值;
基于所述哈希值,确定相应的存储区域的索引信息。
可选的,基于所述存储位置以及所述待存储的嵌入参数的数据量大小,确定不存在足够的存储空间时,进一步包括:
基于所述组号和所述序号,采用所述哈希函数重新获得相应的新的哈希值,并基于所述新的哈希值,确定新的存储区域的索引信息;或者,
基于已确定的存储区域的索引信息,结合固定步长,确定新的存储区域的索引信息。
可选的,基于所述存储位置,将所述待存储的嵌入参数存储于所述共享存储空间中,具体包括:
基于所述存储位置,在所述共享存储空间确定相应的存储区域;
在所述存储区域中,记录所述待存储的嵌入参数,以及记录所述嵌入参数的状态信息,其中,所述状态信息至少包括时间戳、变化速率和使用次数中的一种或任意组合。
可选的,将所述待存储的嵌入参数存储于所述共享存储空间后,进一步包括:
确定所述嵌入参数的状态信息满足以下条件中的至少一种时,从所述共享存储空间中将所述嵌入参数移除:
所述时间戳表征的时间点早于预设的时间点阈值;
所述变化速率低于预设的变化速率阈值;
所述使用次数低于预设的使用次数阈值。
一种存储嵌入参数的装置,应用于TensorFlow架构,包括:
处理模块,用于获取待存储的嵌入参数,基于所述待存储的嵌入参数所属的嵌入组的组号,结合所述待存储的嵌入参数在所述嵌入组中的序号,确定所述待存储的嵌入参数的存储位置;
存储模块,用于在预设的共享存储空间中,基于所述存储位置以及所述待存储的嵌入参数的数据量大小,确定存在足够的存储空间时,基于所述存储位置,将所述待存储的嵌入参数存储于所述共享存储空间中。
可选的,基于所述待存储的嵌入参数所属的嵌入组的组号,结合所述待存储的嵌入参数在所述嵌入组中的序号,确定所述待存储的嵌入参数的存储位置时,所述处理模块具体用于:
基于所述组号和所述序号,采用预设的哈希函数获得相应的哈希值;
基于所述哈希值,确定相应的存储区域的索引信息。
可选的,基于所述存储位置以及所述待存储的嵌入参数的数据量大小,确定不存在足够的存储空间时,所述处理模块进一步用于:
基于所述组号和所述序号,采用所述哈希函数重新获得相应的新的哈希值,并基于所述新的哈希值,确定新的存储区域的索引信息;或者,
基于已确定的存储区域的索引信息,结合固定步长,确定新的存储区域的索引信息。
可选的,基于所述存储位置,将所述待存储的嵌入参数存储于所述共享存储空间中时,所述存储模块具体用于:
基于所述存储位置,在所述共享存储空间确定相应的存储区域;
在所述存储区域中,记录所述待存储的嵌入参数,以及记录所述嵌入参数的状态信息,其中,所述状态信息至少包括时间戳、变化速率和使用次数中的一种或任意组合。
可选的,将所述待存储的嵌入参数存储于所述共享存储空间后,所述处理模块进一步用于:
确定所述嵌入参数的状态信息满足以下条件中的至少一种时,从所述共享存储空间中将所述嵌入参数移除:
所述时间戳表征的时间点早于预设的时间点阈值;
所述变化速率低于预设的变化速率阈值;
所述使用次数低于预设的使用次数阈值。
一种存储嵌入参数的装置,包括:
存储器,用于存储可执行指令;
处理器,用于读取并执行所述存储器中存储的可执行指令,以实现如上述任一项所述的存储嵌入参数的方法。
一种存储介质,当所述存储介质中的指令由处理器执行时,使得所述处理器能够执行如上述任一项所述的存储嵌入参数的方法。
本申请实施例中,参数服务器获取待存储的嵌入参数,基于待存储的嵌入参数所属的嵌入组的组号,结合待存储的嵌入参数在嵌入组中的序号,确定待存储的嵌入参数的存储位置,然后,在预设的共享存储空间中,基于存储位置以及待存储的嵌入参数的数据量大小,确定存在足够的存储空间时,基于所述存储位置,将待存储的嵌入参数存储于共享存储空间中。这样,本申请的实施例提供的技术方案至少带来以下有益效果:参数服务器能够快速确定待存储的嵌入参数的存储位置,从而减少确定待存储的嵌入参数的存储位置花费的时间,提高存储嵌入参数的效率;此外,还能够充分利用存储空间,减少存储空间的浪费,有效避免存储嵌入参数时发生冲突,从而合理、高效的分配存储空间。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中TensorFlow构架的结构示意图;
图2为一种现有技术中存储嵌入参数的情况示意图;
图3为一种现有技术中存储嵌入参数的情况示意图;
图4为本申请实施例中存储嵌入参数的流程示意图;
图5为本申请实施例中确定存储区域的索引信息的示意图;
图6为本申请实施例中确定是否存在足够的存储空间的示意图;
图7为本申请实施例中将待存储的嵌入参数存储于共享存储空间中的示意图;
图8为本申请实施例提供的一种存储嵌入参数的装置的结构示意图;
图9为本申请实施例提供的一种存储嵌入参数的装置的结构示意图。
具体实施方式
针对现有技术中存储空间分配不合理的问题,为了能够合理利用存储空间,减少存储空间的浪费,在本申请实施例中,为存储嵌入参数提供一种解决方案。该方案为:参数服务器从执行服务器获取待存储的嵌入参数,基于待存储的嵌入参数所属的嵌入组的组号,结合待存储的嵌入参数在所述嵌入组中的序号,确定待存储的嵌入参数的存储位置;然后,在预设的共享存储空间中,基于存储位置以及待存储的嵌入参数的数据量大小,确定存在足够的存储空间时,将所述待存储的嵌入参数存储于所述共享存储空间中。
为了使本领域普通人员更好地理解本申请的技术方案,下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述。
参阅图4所示,本申请实施例中,存储嵌入参数的详细流程如下:
步骤S401:参数服务器获取待存储的嵌入参数,基于所述待存储的嵌入参数所属的嵌入组的组号,结合所述待存储的嵌入参数在所述嵌入组中的序号,确定所述待存储的嵌入参数的存储位置。
本申请实施例中,采用Key-Value的形式,计算待存储的嵌入参数的存储位置。
例如,参数服务器获取待存储的嵌入参数1,嵌入参数1的数值相当于值Value,而嵌入参数1所属的嵌入组的组号为A,嵌入参数1在嵌入组中的序号为11,那么,嵌入参数1的组号A和序号11,相当于关键字Key,然后,基于Key计算待存储的嵌入参数1的存储位置。
具体的,参数服务器基于所述组号和所述序号,采用预设的哈希函数获得相应的哈希值,基于所述哈希值,确定相应的存储区域的索引信息。
可选的,本申请实施例中,假设预设的共享存储空间存在若干存储区域,每个存储区域都有各自的索引信息,当存储嵌入参数时,待存储的嵌入参数的存储位置为索引信息对应的存储区域。
例如,假设,参数服务器获取待存储的嵌入参数1,而嵌入参数1所属的嵌入组的组号为A,嵌入参数1在嵌入组中的序号为11,那么,基于嵌入参数1所属的嵌入组的组号A,并结合嵌入参数1在嵌入组中的序号11,采用预设的哈希函数获得相应的哈希值,然后,基于哈希值,确定相应的存储区域的索引信息。
需要说明的是,本申请实施中预设的哈希函数包括但不限于以下几种构造方法:直接定址法、除留余数法、平方取中法、随机数法等等。由于哈希函数的构造属于现有技术,此处不再过多叙述。
例如,参阅图5所示,采用平方取中法构造哈希函数,即,取关键字平方后的中间几位为哈希值,假设,采用ASCII码的八进制形式表示字母和数字,预设的存储空间大小为512=29,则可取关键字平方后的中间3位八进制数为哈希值,当嵌入参数1所属的嵌入组的组号为P,嵌入参数1在嵌入组中的序号为1时,基于组号和序号得到关键字P1,关键字可编码为八进制数2061,八进制数2061平方为4310541,采用上述哈希函数,获得的哈希值为八进制数310,即十进制数200,此时,哈希值与索引信息的对应关系为哈希值200对应于索引177,即,基于哈希值200,确定存储区域的索引信息为索引177。
又例如,采用随机数法构造哈希函数,即随机获取哈希值,假设嵌入参数1所属的嵌入组的组号为P,嵌入参数1在嵌入组中的序号为1,基于组号和序号得到关键字P1,采用上述哈希函数,获得的哈希值可能是300,也可能是500,假设此时哈希值与索引信息的对应关系为哈希值300对应于索引300,那么,基于哈希值,可以确定对应存储区域的索引信息。
步骤S402:参数服务器在预设的共享存储空间中,基于当前确定的存储位置以及所述待存储的嵌入参数的数据量大小,确定是否存在足够的存储空间,若是,则执行步骤S403;否则,执行步骤S404。
例如,参阅图6所示,假设,参数服务器获取待存储的嵌入参数2,嵌入参数2的当前确定的存储位置为索引信息为索引20对应的存储区域,嵌入参数2数据量大小为20M,那么,基于索引20以及嵌入参数2的数据量大小,判断预设的共享存储空间中,确定是否存在足够的存储空间,即判断索引20对应的存储区域中未使用的存储空间的大小,是否不小于嵌入参数2的大小20M?若是,则确定存在足够的存储空间存储嵌入参数2,执行步骤S403,否则,确定不存在足够的存储空间存储嵌入参数2,执行步骤S404。
步骤S403:参数服务器基于所述存储位置,将所述待存储的嵌入参数存储于所述共享存储空间中。
具体的,参数服务器基于所述存储位置(即计算获得的存储区域的索引信息),在所述共享存储空间确定相应的存储区域,并在所述存储区域中,记录所述待存储的嵌入参数,以及记录所述嵌入参数的状态信息,其中,所述状态信息至少包括时间戳、变化速率和使用次数中的一种或任意组合。
例如,参阅图7所示,假设待存储的嵌入参数3的存储位置为索引信息为索引30的存储区域,则参数服务器可以在共享存储空间确定相应的存储区域为存储区域30,然后,在存储区域30中,记录嵌入参数3,以及记录嵌入参数3的状态信息,其中,嵌入参数3的状态信息至少包括时间戳、变化速率和使用次数中的一种或任意组合,例如,嵌入参数3的状态信息可以是表征时间点为2018年5月19日的时间戳;或者,可以是表征时间点为2018年5月19日的时间戳和嵌入参数3的变化速率的组合;或者,可以是表征时间点为2018年5月19日的时间戳、嵌入参数3的变化速率以及嵌入参数3的使用次数的组合等等。
步骤S404:参数服务器基于所述组号和所述序号,采用所述哈希函数重新获得相应的新的哈希值,并基于所述新的哈希值,确定新的存储区域的索引信息;或者,基于已确定的存储区域的索引信息,结合固定步长,确定新的存储区域的索引信息,返回步骤S402。
例如,如图6所示,假设,嵌入参数2所属的嵌入组的组号为D,嵌入参数2在嵌入组中的序号为10,嵌入参数2的存储位置为索引信息为索引20对应的存储区域,嵌入参数2数据量大小为20M,那么,基于索引20以及嵌入参数2的数据量大小,确定预设的共享存储空间中,不存在足够的存储空间存储嵌入参数2时,基于嵌入参数2的组号D和序号10得到关键字D10,此时,采用哈希函数重新获得相应的新的哈希值,并基于新的哈希值,得到嵌入参数2的新的存储区域的索引信息,例如,索引信息可能为索引25。
又例如,仍以嵌入参数2为例,当确定不存在足够的存储空间存储嵌入参数2时,还可以基于已确定的存储区域的索引信息索引20,结合固定步长,如,在索引20的基础上加一个步长,确定嵌入参数2的新的存储区域的索引信息为索引21。
进一步的,参数服务器确定新的存储区域的索引信息后,返回步骤S402,在预设的共享存储空间中,基于新的存储区域的索引信息以及待存储的嵌入参数的数据量大小,判断是否存在足够的存储空间,若是,则执行步骤S403;否则,再次执行步骤S404,直至将待存储的嵌入参数存储至共享存储空间中。如果,在一定时间内,始终没有足够的存储空间存储待存储的嵌入参数,那么,参数服务器将会报错。
本申请实施例中,步骤S401至步骤S404仅以一条嵌入参数的存储方式为例进行介绍,在实际应用中,所有嵌入组中的所有嵌入参数均采用上述方式存储至共享存储空间中。
基于上述实施例,进一步的,参数服务器确定记录在共享存储空间中的任意一条嵌入参数的状态信息满足以下条件中的至少一种时,从所述共享存储空间中将所述嵌入参数移除:
所述时间戳表征的时间点早于预设的时间点阈值;
所述变化速率低于预设的变化速率阈值;
所述使用次数低于预设的使用次数阈值。
例如,假设共享存储空间中存储了嵌入参数4和嵌入参数4的时间戳,预设时间点阈值为2018年5月22日,如果嵌入参数4的时间戳表征的时间点为2018年5月19日,嵌入参数4将被参数服务器从共享存储空间中移除。
又例如,假设共享存储空间中存储了嵌入参数5,以及嵌入参数5的时间戳、变化速率,预设时间点阈值为2018年5月22日,预设的变化速率阈值为10次/天,如果嵌入参数5的时间戳表征的时间点为2018年5月1日,嵌入参数5的变化速率为8次/天,由于嵌入参数5的变化速率低于预设的变化速率阈值,嵌入参数5将被参数服务器从共享存储空间中移除。
又例如,假设共享存储空间中存储了嵌入参数6,以及嵌入参数6的变化速率和使用次数,预设的变化速率阈值为20次/天,预设的使用次数阈值为500,如果嵌入参数6的变化速率阈值为30次/天,使用次数为560,由于使用次数低于预设的使用次数阈值,嵌入参数5将被参数服务器从共享存储空间中移除。
本申请实施例中,采用上述方式移除共享存储空间中的嵌入参数,可以对陈旧的、使用频率较低的嵌入参数进行淘汰,从而减少存储空间的浪费,提高存储空间的使用效率。
基于同一发明构思,本申请实施例中,提供一种存储嵌入参数的装置,如图8所示,至少包括处理模块801和存储模块802,其中,
处理模块801,用于获取待存储的嵌入参数,基于所述待存储的嵌入参数所属的嵌入组的组号,结合所述待存储的嵌入参数在所述嵌入组中的序号,确定所述待存储的嵌入参数的存储位置;
存储模块802,用于在预设的共享存储空间中,基于所述存储位置以及所述待存储的嵌入参数的数据量大小,确定存在足够的存储空间时,基于所述存储位置,将所述待存储的嵌入参数存储于所述共享存储空间中。
可选的,基于所述待存储的嵌入参数所属的嵌入组的组号,结合所述待存储的嵌入参数在所述嵌入组中的序号,确定所述待存储的嵌入参数的存储位置时,所述处理模块801具体用于:
基于所述组号和所述序号,采用预设的哈希函数获得相应的哈希值;
基于所述哈希值,确定相应的存储区域的索引信息。
可选的,基于所述存储位置以及所述待存储的嵌入参数的数据量大小,确定不存在足够的存储空间时,所述处理模块801进一步用于:
基于所述组号和所述序号,采用所述哈希函数重新获得相应的新的哈希值,并基于所述新的哈希值,确定新的存储区域的索引信息;或者,
基于已确定的存储区域的索引信息,结合固定步长,确定新的存储区域的索引信息。
可选的,基于所述存储位置,将所述待存储的嵌入参数存储于所述共享存储空间中时,所述存储模块802具体用于:
基于所述存储位置,在所述共享存储空间确定相应的存储区域;
在所述存储区域中,记录所述待存储的嵌入参数,以及记录所述嵌入参数的状态信息,其中,所述状态信息至少包括时间戳、变化速率和使用次数中的一种或任意组合。
可选的,将所述待存储的嵌入参数存储于所述共享存储空间后,所述处理模块801进一步用于:
确定所述嵌入参数的状态信息满足以下条件中的至少一种时,从所述共享存储空间中将所述嵌入参数移除:
所述时间戳表征的时间点早于预设的时间点阈值;
所述变化速率低于预设的变化速率阈值;
所述使用次数低于预设的使用次数阈值。
基于同一发明构思,本申请实施例中,提供一种存储嵌入参数的装置,参阅图9所示。如图所示,该实体装置可包括:处理器901、存储器902、收发机903以及总线接口904;
所述处理器901,用于读取所述存储器902中的计算机指令,执行上述存储嵌入参数的装置所执行的任意一种方法。
处理器901负责管理总线架构和通常的处理,存储器902可以存储处理器901在执行操作时所使用的数据。收发机903用于在处理器901的控制下接收和发送数据。
总线架构可以包括任意数量的互联的总线和桥,具体由处理器901代表的一个或多个处理器和存储器902代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。处理器901负责管理总线架构和通常的处理,存储器902可以存储处理器901在执行操作时所使用的数据。
基于同一发明构思,本申请实施例提供了一种存储介质,所述存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行上述实施例中存储嵌入参数的装置所执行的方法。
本申请实施例中,参数服务器获取待存储的嵌入参数,基于待存储的嵌入参数所属的嵌入组的组号,结合待存储的嵌入参数在嵌入组中的序号,确定待存储的嵌入参数的存储位置,然后,在预设的共享存储空间中,基于存储位置以及待存储的嵌入参数的数据量大小,确定存在足够的存储空间时,基于所述存储位置,将待存储的嵌入参数存储于共享存储空间中。
这样,本申请的实施例提供的技术方案至少带来以下有益效果:参数服务器获取待存储的嵌入参数后,基于所述组号和所述序号,能够快速确定待存储的嵌入参数的存储位置,从而减少确定待存储的嵌入参数的存储位置花费的时间,提高存储嵌入参数的效率;进一步的,在确定待存储的嵌入参数的存储位置后,结合存储参数的数据量大小,确定存在足够的存储空间时,将待存储的嵌入参数存储于所述共享存储空间中,这样,能够充分利用存储空间,减少存储空间的浪费,此外,还能够有效避免存储嵌入参数时发生冲突,从而合理、高效的分配存储空间。
对于系统/装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者一个操作与另一个实体或者另一个操作区分开来,而不一定要求或者暗示这些实体或者操作之间存在任何这种实际的关系或者顺序。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种存储嵌入参数的方法,其特征在于,应用于张量流架构,包括:
获取待存储的嵌入参数,基于所述待存储的嵌入参数所属的嵌入组的组号,结合所述待存储的嵌入参数在所述嵌入组中的序号,确定所述待存储的嵌入参数的存储位置;
在预设的共享存储空间中,基于所述存储位置以及所述待存储的嵌入参数的数据量大小,确定存在足够的存储空间时,基于所述存储位置,将所述待存储的嵌入参数存储于所述共享存储空间中。
2.如权利要求1所述的方法,其特征在于,基于所述待存储的嵌入参数所属的嵌入组的组号,结合所述待存储的嵌入参数在所述嵌入组中的序号,确定所述待存储的嵌入参数的存储位置,具体包括:
基于所述组号和所述序号,采用预设的哈希函数获得相应的哈希值;
基于所述哈希值,确定相应的存储区域的索引信息。
3.如权利要求2所述的方法,其特征在于,基于所述存储位置以及所述待存储的嵌入参数的数据量大小,确定不存在足够的存储空间时,进一步包括:
基于所述组号和所述序号,采用所述哈希函数重新获得相应的新的哈希值,并基于所述新的哈希值,确定新的存储区域的索引信息;或者,
基于已确定的存储区域的索引信息,结合固定步长,确定新的存储区域的索引信息。
4.如权利要求1、2或3所述的方法,其特征在于,基于所述存储位置,将所述待存储的嵌入参数存储于所述共享存储空间中,具体包括:
基于所述存储位置,在所述共享存储空间确定相应的存储区域;
在所述存储区域中,记录所述待存储的嵌入参数,以及记录所述嵌入参数的状态信息,其中,所述状态信息至少包括时间戳、变化速率和使用次数中的一种或任意组合。
5.如权利要求4所述的方法,其特征在于,将所述待存储的嵌入参数存储于所述共享存储空间后,进一步包括:
确定所述嵌入参数的状态信息满足以下条件中的至少一种时,从所述共享存储空间中将所述嵌入参数移除:
所述时间戳表征的时间点早于预设的时间点阈值;
所述变化速率低于预设的变化速率阈值;
所述使用次数低于预设的使用次数阈值。
6.一种存储嵌入参数的装置,其特征在于,应用于张量流架构,包括:
处理模块,用于获取待存储的嵌入参数,基于所述待存储的嵌入参数所属的嵌入组的组号,结合所述待存储的嵌入参数在所述嵌入组中的序号,确定所述待存储的嵌入参数的存储位置;
存储模块,用于在预设的共享存储空间中,基于所述存储位置以及所述待存储的嵌入参数的数据量大小,确定存在足够的存储空间时,基于所述存储位置,将所述待存储的嵌入参数存储于所述共享存储空间中。
7.如权利要求6所述的装置,其特征在于,基于所述待存储的嵌入参数所属的嵌入组的组号,结合所述待存储的嵌入参数在所述嵌入组中的序号,确定所述待存储的嵌入参数的存储位置时,所述处理模块具体用于:
基于所述组号和所述序号,采用预设的哈希函数获得相应的哈希值;
基于所述哈希值,确定相应的存储区域的索引信息。
8.如权利要求7所述的装置,其特征在于,基于所述存储位置以及所述待存储的嵌入参数的数据量大小,确定不存在足够的存储空间时,所述处理模块进一步用于:
基于所述组号和所述序号,采用所述哈希函数重新获得相应的新的哈希值,并基于所述新的哈希值,确定新的存储区域的索引信息;或者,
基于已确定的存储区域的索引信息,结合固定步长,确定新的存储区域的索引信息。
9.一种存储嵌入参数的装置,其特征在于,包括:
存储器,用于存储可执行指令;
处理器,用于读取并执行所述存储器中存储的可执行指令,以实现如权利要求1至5中任一项所述的存储嵌入参数的方法。
10.一种存储介质,其特征在于,当所述存储介质中的指令由处理器执行时,使得所述处理器能够执行如权利要求1至5中任一项所述的存储嵌入参数的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910838750.9A CN110633052B (zh) | 2019-09-05 | 2019-09-05 | 一种存储嵌入参数的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910838750.9A CN110633052B (zh) | 2019-09-05 | 2019-09-05 | 一种存储嵌入参数的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110633052A true CN110633052A (zh) | 2019-12-31 |
CN110633052B CN110633052B (zh) | 2023-09-19 |
Family
ID=68971215
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910838750.9A Active CN110633052B (zh) | 2019-09-05 | 2019-09-05 | 一种存储嵌入参数的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110633052B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102662992A (zh) * | 2012-03-14 | 2012-09-12 | 北京搜狐新媒体信息技术有限公司 | 一种海量小文件的存储、访问方法及装置 |
CN103246730A (zh) * | 2013-05-08 | 2013-08-14 | 网易(杭州)网络有限公司 | 文件存储方法和设备、文件发送方法和设备 |
WO2016095455A1 (zh) * | 2014-12-19 | 2016-06-23 | 深圳市中兴微电子技术有限公司 | 一种数据处理方法、装置及计算机存储介质 |
CN108021513A (zh) * | 2016-11-02 | 2018-05-11 | 杭州海康威视数字技术股份有限公司 | 一种数据存储方法及装置 |
-
2019
- 2019-09-05 CN CN201910838750.9A patent/CN110633052B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102662992A (zh) * | 2012-03-14 | 2012-09-12 | 北京搜狐新媒体信息技术有限公司 | 一种海量小文件的存储、访问方法及装置 |
CN103246730A (zh) * | 2013-05-08 | 2013-08-14 | 网易(杭州)网络有限公司 | 文件存储方法和设备、文件发送方法和设备 |
WO2016095455A1 (zh) * | 2014-12-19 | 2016-06-23 | 深圳市中兴微电子技术有限公司 | 一种数据处理方法、装置及计算机存储介质 |
CN108021513A (zh) * | 2016-11-02 | 2018-05-11 | 杭州海康威视数字技术股份有限公司 | 一种数据存储方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110633052B (zh) | 2023-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3754515A1 (en) | Reshard method and system in distributed storage system | |
CN108564164B (zh) | 一种基于spark平台的并行化深度学习方法 | |
CN106649828B (zh) | 一种数据查询方法及系统 | |
US8255920B2 (en) | Time management control method for computer system, and computer system | |
CN111159140B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN104636286A (zh) | 用于数据访问的方法和设备 | |
CN109407997B (zh) | 一种数据处理方法、装置、设备及可读存储介质 | |
CN104571956A (zh) | 一种数据写入方法及拆分装置 | |
CN108062314B (zh) | 动态分表数据处理方法和装置 | |
CN109714249B (zh) | 一种小程序消息的推送方法及相关装置 | |
CN106682017B (zh) | 一种数据库更新方法及装置 | |
CN110297810A (zh) | 一种流数据处理方法、装置及电子设备 | |
CN112506486A (zh) | 搜索系统建立方法、装置、电子设备及可读存储介质 | |
CN108182278A (zh) | 一种fru信息维护方法及相关装置 | |
CN111708812A (zh) | 一种分布式数据处理方法 | |
CN106201918B (zh) | 一种基于大数据量和大规模缓存快速释放的方法和系统 | |
CN110633052A (zh) | 一种存储嵌入参数的方法及装置 | |
CN109710698B (zh) | 一种数据汇聚方法、装置、电子设备及介质 | |
CN108021448B (zh) | 一种内核空间的优化方法及装置 | |
CN113656507B (zh) | 区块链系统中执行交易的方法及装置 | |
CN112860779B (zh) | 一种批量数据导入方法及装置 | |
CN115048462A (zh) | 一种基于区块链的数字资产合成方法及装置 | |
CN114676272A (zh) | 多媒体资源的信息处理方法、装置、设备及存储介质 | |
CN111143456B (zh) | 基于Spark的Cassandra数据导入方法、装置、设备及介质 | |
CN112905462A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |