System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及通信,尤其涉及一种数据访问方法、系统以及节点。
技术介绍
1、在人工智能领域中,借助机器学习模型或神经网络模型能够实现大量、复杂的计算。在这些模型在投入使用之前,需要对模型经过训练,模型训练旨在寻找较为适宜的模型参数。
2、一般,模型训练过程需要进行多轮迭代。每轮迭代可以由具备较大存储空间的存储节点以及具备较强数据计算能力的计算节点配合完成。存储节点上存储该轮迭代中待训练的模型参数,计算节点从存储节点获取待训练的模型参数,以完成每轮迭代。在每轮迭代完成后,计算节点可以将训练后的模型参数反馈到存储节点,以使得该存储节点存储该轮迭代后的得到的模型参数。之后,计算节点再从存储节点获取下一轮迭代中待训练的模型参数,进行下一轮迭代。
3、计算节点可以通过非易失性内存主机控制器接口(non-volatile memoryexpress,nvme)访问存储节点,获取待训练的模型参数或将训练后的模型参数存储在存储节点中。在存储节点中,对于任一模型参数,以键值对的方式存储该模型参数,键值对中的值(value)为模型参数,键值对中的键(key)为模型参数的索引。当计算节点可以通过nvme访问存储节点,获取一轮迭代所需的多个待训练的模型参数。计算节点需要基于nvme发起多个获取命令(get),以获得多个待训练的模型参数。可见,为了获取一轮迭代所需的待训练的模型参数,计算节点与存储节点之间需要进行多次信令交互,通信开销较大。
技术实现思路
1、本申请提供一种数据访问方法、
2、第一方面,本申请实施例提供了一种数据访问方法,该方法应用于基于nvme交互的计算节点以及存储节点。其中,存储节点上的数据以数组的形式存储,也即数据可以为该数组中的一个元素,或为该数组中元素所包括的数据。在该方法中,该计算节点基于nvme向存储节点发送获取(get)命令,该get命令用于请求获取数组中的一个或多个第一元素。存储节点在获取该get命令后,可以根据该get命令从数组中读取一个或多个第一元素;之后,存储节点通过发送get命令的响应向该计算节点反馈一个或多个第一元素。存储节点可以向计算节点反馈指示第一元素读取成功的响应,并将该一个或多个第一元素通过该nvme所提及的数据传输方式发送给存储节点。
3、通过上述方法,数据在存储节点中是以数组的形式存储的,当计算节点需要获取数据时,可以通过get命令获取数组中的一个或多个第一元素。也就是说,当需要获取一个或多个第一元素时,计算节点仅需发起一个get命令即可,无需发送多个get命令,能够有效减少计算节点与存储节点之间的交互次数,降低通信开销。
4、在一种可能的实施方式中,get命令中携带有一个或多个第一元素的标识符,一个或多个第一元素的标识符用于标识一个或多个第一元素。存储节点根据get命令从数组中读取一个或多个第一元素时,存储节点根据一个或多个第一元素的标识符从数组中读取一个或多个第一元素。
5、通过上述方法,由于get命令中携带了一个或多个第一元素的标识符,使得存储节点能够根据该一个或多个第一元素的标识符确定该计算节点所需的该一个或多个第一元素,进而保证了计算节点能够通过该get命令从存储节点获取该一个或多个第一元素,减少计算节点与存储节点之间的交互次数。
6、在一种可能的实施方式中,计算节点与存储节点之间基于nvme交互的场景有很多种,这里列举一种可能的场景。在模型训练场景中,计算节点在需要进行一次迭代时,从存储节点获取该次迭代所需的待训练的模型参数。也就是说,该一个或多个第一元素为可以计算节点完成模型训练的一轮迭代所需待训练的模型参数。在计算节点根据get命令的响应获取数组中的一个或多个第一元素后,可以利用该一个或多个第一元素完成模型训练中的一轮迭代。
7、通过上述方法,在模型训练场景中,计算节点只需要发送该get命令即可获取一轮迭代所需的待训练的模型参数,不再需要多次发起get命令,减少计算节点与存储节点之间的交互次数,提升模型训练的效率。
8、在一种可能的实施方式中,get命令还携带有数组的标识符,数组的标识符用于标识数组。
9、通过上述方法,get命令携带了数组标识符,使得存储节点能够通过该数组标识符快速定位到该一个或多个第一元素所在的数组,尽快获取该一个或多个第一元素,并反馈给计算节点。
10、在一种可能的实施方式中,计算节点除了基于nvme获取存储节点的数据,还可以基于nvme将数据存储到存储节点,也即将数据发布到存储节点中。例如,计算节点基于nvme向存储节点发送发布post命令,post命令用于请求将一个或多个第二元素存储在数组中;存储节点在接收到该post命令后,根据post命令,将一个或多个第二元素更新到数组中。
11、通过上述方法,当计算节点需要发布数据时,可以通过post命令获取数组中的一个或多个第二元素。也就是说,当需要发布一个或多个第二元素时,计算节点仅需发起一个post命令即可,无需发送多个post命令,降低计算节点与存储节点之间的通信开销。
12、在一种可能的实施方式中,仍以模型训练场景为例,一个或多个第二元素可以为计算节点利用一个或多个第一元素完成模型训练的一轮迭代后产生训练后的模型参数。存储节点将一个或多个第二元素更新到数组中时,可以利用一个或多个第二元素更新数组中的一个或多个第一元素,如将一个或多个第一元素更新为一个或多个第二元素,又如,先对一个或多个第二元素进行处理,将一个或多个第一元素更新为处理后的一个或多个第二元素。
13、通过上述方法,在模型训练场景中,计算节点只需要发送该post命令即将一轮迭代所产生的训练后的模型参数发布到存储节点上,不再需要多次发起get命令,避免计算节点与存储节点之间进行多次交互,提升模型训练的效率。
14、在一种可能的实施方式中,post命令携带有一个或多个第二元素的标识符。
15、通过上述方法,post命令中通过携带一个或多个第二元素的标识符能够使得存储节点确定需要发布的该一个或多个第二元素,进而便于将该一个或多个第二元素更新到数组中。
16、在一种可能的实施方式中,post命令携带有一个或多个第二元素的标识符与get命令中携带的一个或多个第一元素的标识符相同。由于在模型训练场景中,需要将待训练后的模型参数更新为训练后的模型参数,那么该一个或多个第二元素的标识符与一个或多个第一元素的标识符相同,存储节点能够利用该一个或多个第二元素的标识符从数组中确定需要更新的该一个或多个第一元素。
17、在一种可能的实施方式中,post命令携带有一个或多个第二元素的版本,版本用于指示产生一个或多个第二元素的一轮迭代。
18、通过上述方法,post命令中携带有一个或多个第二元素的版本,保证存储节点能够确定post命令中携带的一个或多个第二元素为哪一轮迭代产生的本文档来自技高网...
【技术保护点】
1.一种数据访问方法,其特征在于,所述方法包括:
2.如权利要求1所述的方法,其特征在于,所述获取命令携带有所述一个或多个第一元素的标识符,所述一个或多个第一元素的标识符用于标识所述一个或多个第一元素;
3.如权利要求1或2所述的方法,其特征在于,所述一个或多个第一元素为所述计算节点完成模型训练的一轮迭代所需的待训练的模型参数,所述方法还包括:
4.如权利要求1~3任一项所述的方法,其特征在于,所述获取命令携带有所述数组的标识符,所述数组的标识符用于标识所述数组。
5.如权利要求1~4任一项所述的方法,其特征在于,所述方法还包括:
6.如权利要求5所述的方法,其特征在于,所述一个或多个第二元素为所述计算节点利用所述一个或多个第一元素完成模型训练的一轮迭代后产生训练后的模型参数,所述存储节点将所述一个或多个第二元素更新到所述数组中,包括:
7.如权利要求5或6所述的方法,其特征在于,所述发布命令携带有所述一个或多个第二元素的标识符。
8.如权利要求6所述的方法,其特征在于,所述发布命令携带有所述一个
9.如权利要求6所述的方法,其特征在于,所述发布命令携带有一个或多个第二元素的版本,所述版本用于指示产生所述一个或多个第二元素的所述一轮迭代。
10.如权利要求1~9任一所述的方法,其特征在于,所述方法还包括:
11.一种数据访问系统,其特征在于,所述系统包括:
12.如权利要求11所述的系统,其特征在于,所述获取命令携带有所述一个或多个第一元素的标识符,所述一个或多个第一元素的标识符用于标识所述一个或多个第一元素;
13.如权利要求11或12所述的系统,其特征在于,所述一个或多个第一元素为所述计算节点完成模型训练的一轮迭代所需的待训练的模型参数,所述计算节点,还用于根据所述获取命令的响应获取所述数组中的一个或多个第一元素,完成模型训练中的一轮迭代。
14.如权利要求11~13任一项所述的系统,其特征在于,所述获取命令携带有所述数组的标识符,所述数组的标识符用于标识所述数组。
15.如权利要求11~14任一项所述的系统,其特征在于,所述计算节点,还用于基于所述NVMe向所述存储节点发送发布post命令,所述发布命令用于请求将一个或多个第二元素存储在所述数组中;
16.如权利要求15所述的系统,其特征在于,所述一个或多个第二元素为所述计算节点利用所述一个或多个第一元素完成模型训练的一轮迭代后产生训练后的模型参数,所述存储节点在将所述一个或多个第二元素更新到所述数组中,具体用于:
17.如权利要求15或16所述的系统,其特征在于,所述发布命令携带有所述一个或多个第二元素的标识符。
18.如权利要求16所述的系统,其特征在于,所述发布命令携带有所述一个或多个第二元素的标识符与所述获取命令中携带的一个或多个第一元素的标识符相同。
19.如权利要求16所述的系统,其特征在于,所述发布命令携带有一个或多个第二元素的版本,所述版本用于指示产生所述一个或多个第二元素的所述一轮迭代。
20.如权利要求11~19任一所述的系统,其特征在于,所述存储节点,还用于:
21.一种存储节点,其特征在于,所述存储节点包括非易失性内存主机控制器接口NVMe控制器以及存储介质;
22.如权利要求21所述的存储节点,其特征在于,所述获取命令携带有所述一个或多个第一元素的标识符,所述一个或多个第一元素的标识符用于标识所述一个或多个第一元素;
23.如权利要求21或22所述的存储节点,其特征在于,所述一个或多个第一元素为所述计算节点完成模型训练的一轮迭代所需待训练的模型参数。
24.如权利要求21~23任一项所述的存储节点,其特征在于,所述获取命令携带有所述数组的标识符,所述数组的标识符用于标识所述数组。
25.如权利要求21~24任一项所述的存储节点,其特征在于,所述NVMe控制器,还用于基于所述NVMe接收所述存储节点发送的发布post命令,所述发布命令用于请求将一个或多个第二元素存储在所述数组中;根据所述发布命令,将所述一个或多个第二元素更新到所述数组中。
26.如权利要求25所述的存储节点,其特征在于,所述一个或多个第二元素为所述计算节点利用所述一个或多个第一元素完成模型训练的一轮迭代后产生训练后的模型参数,所述NVMe控制器在将所述一个或多个第二元素更新到所述数组中,具体用于:
<...【技术特征摘要】
1.一种数据访问方法,其特征在于,所述方法包括:
2.如权利要求1所述的方法,其特征在于,所述获取命令携带有所述一个或多个第一元素的标识符,所述一个或多个第一元素的标识符用于标识所述一个或多个第一元素;
3.如权利要求1或2所述的方法,其特征在于,所述一个或多个第一元素为所述计算节点完成模型训练的一轮迭代所需的待训练的模型参数,所述方法还包括:
4.如权利要求1~3任一项所述的方法,其特征在于,所述获取命令携带有所述数组的标识符,所述数组的标识符用于标识所述数组。
5.如权利要求1~4任一项所述的方法,其特征在于,所述方法还包括:
6.如权利要求5所述的方法,其特征在于,所述一个或多个第二元素为所述计算节点利用所述一个或多个第一元素完成模型训练的一轮迭代后产生训练后的模型参数,所述存储节点将所述一个或多个第二元素更新到所述数组中,包括:
7.如权利要求5或6所述的方法,其特征在于,所述发布命令携带有所述一个或多个第二元素的标识符。
8.如权利要求6所述的方法,其特征在于,所述发布命令携带有所述一个或多个第二元素的标识符与所述获取命令中携带的一个或多个第一元素的标识符相同。
9.如权利要求6所述的方法,其特征在于,所述发布命令携带有一个或多个第二元素的版本,所述版本用于指示产生所述一个或多个第二元素的所述一轮迭代。
10.如权利要求1~9任一所述的方法,其特征在于,所述方法还包括:
11.一种数据访问系统,其特征在于,所述系统包括:
12.如权利要求11所述的系统,其特征在于,所述获取命令携带有所述一个或多个第一元素的标识符,所述一个或多个第一元素的标识符用于标识所述一个或多个第一元素;
13.如权利要求11或12所述的系统,其特征在于,所述一个或多个第一元素为所述计算节点完成模型训练的一轮迭代所需的待训练的模型参数,所述计算节点,还用于根据所述获取命令的响应获取所述数组中的一个或多个第一元素,完成模型训练中的一轮迭代。
14.如权利要求11~13任一项所述的系统,其特征在于,所述获取命令携带有所述数组的标识符,所述数组的标识符用于标识所述数组。
15.如权利要求11~14任一项所述的系统,其特征在于,所述计算节点,还用于基于所述nvme向所述存储节点发送发布post命令,所述发布命令用于请求将一个或多个第二元素存储在所述数组中;
16.如权利要求15所述的系统,其特征在于,所述一个或多个第二元素为所述计算节点利用所述一个或多个第一元素完成模型训练的一轮迭代后产生训练后的模型参数,所述存储节点在将所述一个或多个第二元素更新到所述数组中...
【专利技术属性】
技术研发人员:维克多吉辛,埃琳娜古列维奇,罗四维,
申请(专利权)人:华为技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。