本技术实施例涉及数据存储,具体而言,涉及一种参数文件保存加载方法、装置、设备及存储介质。
背景技术:
1、目前进行模型训练时,通常都会定期对checkpoint(参数文件)进行定期保存,以保证模型训练异常中断时,可以基于参数文件重新加载模型参数并恢复训练,从而避免前期训练的结果丢失。相关技术中通常将参数文件保存至共享存储上,在训练任务启动时直接加载存储在共享存储中的参数文件。
2、相关技术中,由于共享存储的存储性能较差,通常会导致参数文件的写入速度和加载速度缓慢,浪费计算机的算力,进而导致模型训练速度降低。
技术实现思路
1、本技术实施例提供一种参数文件保存加载方法、装置、设备及存储介质,旨在提升参数文件的存储和加载速度。
2、本技术实施例第一方面提供一种参数文件保存加载方法,所述方法包括:
3、在第一容器集群中执行模型训练任务的情况下,确定所述模型训练任务对应的共享存储目录;
4、针对所述第一容器集群中的每个容器,生成所述容器对应的本地缓存目录;
5、建立所述本地缓存目录与所述共享存储目录之间的映射关系,所述映射关系用于将所述本地缓存目录中存储的参数文件复制至所述共享存储目录中;
6、将所述容器在训练过程中生成的参数文件保存至所述本地缓存目录中,所述参数文件用于保存模型训练过程中产生的参数。
7、可选地,所述方法还包括:
8、在所述参数文件保存至所述本地缓存目录中的情况下,将所述参数文件的文件状态更新为保存完成状态;
9、将所述参数文件的文件状态存储至内存数据库中。
10、可选地,所述方法还包括:
11、在所述容器执行所述模型训练任务的情况下,查询所述本地缓存目录中是否存在缓存完成的所述参数文件;
12、在存在缓存完成的所述参数文件的情况下,将所述参数文件复制到所述共享存储目录中;
13、在内存数据库中记录复制成功信息。
14、可选地,所述方法还包括:
15、确定所述本地缓存目录中已完成复制的所述参数文件的数量;
16、在已完成复制的所述参数文件的数量超过预设的缓存预留数量的情况下,对所述本地缓存目录中的所述参数文件进行清理。
17、可选地,所述方法还包括:
18、在所述本地缓存目录清理完毕的情况下,在内存数据库中记录所述参数文件清理成功;
19、在所述本地缓存目录清理失败的情况下,在所述内存数据库中记录所述参数文件清理失败。
20、可选地,所述对所述本地缓存目录中的所述参数文件进行清理,包括:
21、确定所述本地缓存目录中的每个所述参数文件的保存时间;
22、将所有的所述参数文件根据所述保存时间依次进行排序,将保存时间最短的所述参数文件排在第一顺位;
23、将排序后的多个所述参数文件中的末尾的多个所述参数文件依次进行清理;
24、在所述本地缓存目录中的所述参数文件的数量不超过所述缓存预留数量的情况下,停止清理。
25、可选地,所述生成所述容器对应的本地缓存目录,包括:
26、在所述容器对应的节点的缓存空间中申请预设的内存容量;
27、在所述缓存空间中创建所述本地缓存目录,所述本地缓存目录的大小为所述预设的内存容量。
28、可选地,所述方法还包括:
29、对所述本地缓存目录进行异常监测;
30、在监测到所述本地缓存目录中出现异常信息时,终止所述模型训练任务。
31、可选地,所述在监测到所述本地缓存目录中出现异常信息时,终止所述模型训练任务,包括:
32、在监测到所述本地缓存目录中出现复制失败异常信息时,终止所述模型训练任务;
33、在监测到所述本地缓存目录中出现清理失败异常信息时,终止所述模型训练任务;
34、在监测到所述本地缓存目录中出现存储空间不足信息时,终止所述模型训练任务。
35、可选地,在生成所述模型训练任务对应的共享存储目录之前,所述方法还包括:
36、根据预设的编号规则对所述第一容器集群中的每个所述容器进行编号,得到每个所述容器对应的容器编号;
37、为每个所述容器分配对应的节点编号。
38、可选地,所述方法还包括:
39、将所述第一容器集群中的每个所述容器分别分配至主机集群中的一个主机中;
40、记录每个所述容器对应的容器编号、所述节点编号以及所述主机之间的对应关系。
41、可选地,所述将所述第一容器集群中的每个所述容器分别分配至主机集群中的一个主机中,包括:
42、确定所述第一容器集群可用的主机集群;
43、通过调度器将所述第一容器集群中的每个所述容器调度至所述主机集群中的一个所述主机中。
44、可选地,所述方法还包括:
45、在所述模型训练任务执行的过程中出现训练中断的情况下,创建第二容器集群,所述第二容器集群中的所述容器的数量与所述第一容器集群中的所述容器的数量相同;
46、根据预设的编号规则对所述第二容器集群中的每个所述容器进行编号,得到每个所述容器对应的容器编号;
47、为所述第二容器集群中的每个所述容器分配对应的节点编号;
48、根据所述节点编号以及主机之间的对应关系,将所述第二容器集群中的每个所述容器分配至对应的所述主机中。
49、可选地,在所述模型训练任务执行的过程中出现训练中断的情况下,创建第二容器集群,所述第二容器集群中的所述容器的数量与所述第一容器集群中的所述容器的数量相同;
50、根据预设的编号规则对所述第二容器集群中的每个所述容器进行编号,得到每个所述容器对应的容器编号;
51、可选地,所述方法还包括:
52、在所述节点编号对应的所述主机无法运行所述容器的情况下,将所述容器分配至空闲主机中。
53、可选地,所述方法还包括:
54、在所述第二容器集群中启动所述模型训练任务的情况下,针对每个所述容器,获取所述本地缓存目录中的第一参数文件信息以及所述共享存储目录中的第二参数文件信息;
55、根据所述第一参数文件信息以及所述第二参数文件信息,确定最新版本的所述参数文件;
56、将最新版本的所述参数文件对应的文件目录信息发送至所述容器中。
57、可选地,所述方法还包括:
58、在所述本地缓存目录中的所述参数文件为空时,将所述共享存储目录对应的文件目录信息发送至所述容器中。
59、可选地,所述方法还包括:
60、根据所述文件目录信息,确定所述参数文件对应的目录地址;
61、从所述目录地址中获取所述参数文件;
62、将所述参数文件加载至所述容器中;
63、将所述参数文件中记录的模型参数加载至待训练模型中;
64、在所述待训练模型的基础上执行所述模型训练任务。
65、本技术实施例第二方面提供一种参数文件保存加载装置,所述装置包括:
66、共享存储目录创建模块,用于在第一容器集群中执行模型训练任务的情况下,生成所述模型训练任务对应的共享存储目录;
67、本地缓存目录创建模块,用于针对所述第一容器集群中的每个容器,生成所述容器对应的本地缓存目录;
68、映射关系建立模块,用于建立所述本地缓存目录与所述共享存储目录之间的映射关系,所述映射关系用于将所述本地缓存目录中存储的参数文件复制至所述共享存储目录中;
69、参数文件保存模块,用于将所述容器在训练过程中生成的参数文件保存至所述本地缓存目录中,所述参数文件用于保存模型训练过程中产生的参数。
70、可选地,所述装置还包括:
71、保存完成状态记录模块,用于在所述参数文件保存至所述本地缓存目录中的情况下,将所述参数文件的文件状态更新为保存完成状态;
72、文件状态存储模块,用于将所述参数文件的文件状态存储至内存数据库中。
73、可选地,所述装置还包括:
74、参数文件查询模块,用于在所述容器执行所述模型训练任务的情况下,查询所述本地缓存目录中是否存在缓存完成的所述参数文件;
75、参数文件复制模块,用于在存在缓存完成的所述参数文件的情况下,将所述参数文件复制到所述共享存储目录中;
76、复制成功信息记录模块,用于在内存数据库中记录复制成功信息。
77、可选地,所述装置还包括:
78、参数文件数量确定模块,用于确定所述本地缓存目录中已完成复制的所述参数文件的数量;
79、参数文件清理模块,用于在已完成复制的所述参数文件的数量超过预设的缓存预留数量的情况下,对所述本地缓存目录中的所述参数文件进行清理。
80、可选地,所述装置还包括:
81、文件清理成功记录模块,用于在所述本地缓存目录清理完毕的情况下,在内存数据库中记录所述参数文件清理成功;
82、文件清理失败记录模块,用于在所述本地缓存目录清理失败的情况下,在所述内存数据库中记录所述参数文件清理失败。
83、可选地,所述参数文件清理模块包括:
84、保存时间确定子模块,用于确定所述本地缓存目录中的每个所述参数文件的保存时间;
85、参数文件排序子模块,用于将所有的所述参数文件根据所述保存时间依次进行排序,将保存时间最短的所述参数文件排在第一顺位;
86、参数文件清理子模块,用于将排序后的多个所述参数文件中的末尾的多个所述参数文件依次进行清理;
87、清理完毕子模块,用于在所述本地缓存目录中的所述参数文件的数量不超过所述缓存预留数量的情况下,停止清理。
88、可选地,所述本地缓存目录生成模块包括:
89、内存容量申请子模块,用于在所述容器对应的节点的缓存空间中申请预设的内存容量;
90、本地缓存目录创建子模块,用于在所述缓存空间中创建所述本地缓存目录,所述本地缓存目录的大小为所述预设的内存容量。
91、可选地,所述装置还包括:
92、异常监测子模块,用于对所述本地缓存目录进行异常监测;
93、模型训练任务终止子模块,用于在监测到所述本地缓存目录中出现异常信息时,终止所述模型训练任务。
94、可选地,所述模型训练任务终止子模块包括:
95、第一监测子模块,用于在监测到所述本地缓存目录中出现复制失败异常信息时,终止所述模型训练任务;
96、第二监测子模块,用于在监测到所述本地缓存目录中出现清理失败异常信息时,终止所述模型训练任务;
97、第三监测子模块,用于在监测到所述本地缓存目录中出现存储空间不足信息时,终止所述模型训练任务。
98、可选地,所述装置还包括:
99、第一容器编号模块,用于根据预设的编号规则对所述第一容器集群中的每个所述容器进行编号,得到每个所述容器对应的容器编号;
100、第一节点编号分配模块,用于为每个所述容器分配对应的节点编号。
101、可选地,所述装置还包括:
102、第一容器分配模块,用于将所述第一容器集群中的每个所述容器分别分配至主机集群中的一个主机中;
103、关系记录模块,用于记录每个所述容器对应的容器编号、所述节点编号以及所述主机之间的对应关系。
104、可选地,所述第一容器分配模块包括:
105、主机集群确定子模块,用于确定所述第一容器集群可用的主机集群;
106、第一容器调度子模块,用于通过调度器将所述第一容器集群中的每个所述容器调度至所述主机集群中的一个所述主机中。
107、可选地,所述装置还包括:
108、第二容器集群创建模块,用于在所述模型训练任务执行的过程中出现训练中断的情况下,创建第二容器集群,所述第二容器集群中的所述容器的数量与所述第一容器集群中的所述容器的数量相同;
109、第二容器编号模块,用于根据预设的编号规则对所述第二容器集群中的每个所述容器进行编号,得到每个所述容器对应的容器编号;
110、第二节点编号分配模块,用于为所述第二容器集群中的每个所述容器分配对应的节点编号;
111、第二容器分配模块,用于根据所述节点编号以及主机之间的对应关系,将所述第二容器集群中的每个所述容器分配至对应的所述主机中。
112、可选地,所述第二容器分配模块包括:
113、主机确定子模块,用于针对所述第二容器集群中的每个所述容器,根据所述节点编号以及主机之间的对应关系,确定所述节点编号在主机集群中对应的所述主机;
114、第二容器调度子模块,用于通过调度器将所述容器调度至所述主机中。
115、可选地,所述装置还包括:
116、第三容器分配模块,用于在所述节点编号对应的所述主机无法运行所述容器的情况下,确定主机集群中的空闲主机
117、确定所述空闲主机的主机状态;
118、在所述空闲主机的主机状态为正常运行状态时,通过调度器将所述容器调度至所述空闲主机中。
119、可选地,所述装置还包括:
120、文件信息获取模块,用于在所述第二容器集群中启动所述模型训练任务的情况下,针对每个所述容器,获取所述本地缓存目录中的第一参数文件信息以及所述共享存储目录中的第二参数文件信息;
121、参数文件版本确定模块,用于根据所述第一参数文件信息以及所述第二参数文件信息,确定最新版本的所述参数文件;
122、第一目录信息发送模块,用于将最新版本的所述参数文件对应的文件目录信息发送至所述容器中。
123、可选地,所述装置还包括:
124、第二目录信息发送模块,用于在所述本地缓存目录中的所述参数文件为空时,将所述共享存储目录对应的文件目录信息发送至所述容器中。
125、可选地,所述装置还包括:
126、目录地址获取模块,用于根据所述文件目录信息,确定所述参数文件对应的目录地址;
127、参数文件获取模块,用于从所述目录地址中获取所述参数文件;
128、参数文件加载模块,用于将所述参数文件加载至所述容器中;
129、参数加载模块,用于将所述参数文件中记录的模型参数加载至待训练模型中;
130、模型训练任务执行模块,用于在所述待训练模型的基础上执行所述模型训练任务。
131、本技术实施例第三方面提供一种可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现如本技术第一方面所述的方法中的步骤。
132、本技术实施例第四方面提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现本技术第一方面所述的方法的步骤。
133、采用本技术提供的参数文件保存加载方法,在第一容器集群中执行模型训练任务的情况下,生成所述模型训练任务对应的共享存储目录;针对所述第一容器集群中的每个容器,生成所述容器对应的本地缓存目录;建立所述本地缓存目录与所述共享存储目录之间的映射关系,所述映射关系用于将所述本地缓存目录中存储的参数文件复制至所述共享存储目录中;将所述容器在训练过程中生成的参数文件保存至所述本地缓存目录中,所述参数文件用于保存模型训练过程中产生的参数。本技术中,在容器集群中执行模型训练任务时,针对集群中的每个容器,生成对应的本地缓存目录,在执行模型训练任务时将参数文件存储至本地缓存目录中,同时根据共享存储目录与本地缓存目录的映射关系,将本地缓存目录中的参数文件搬迁至共享存储目录中,这样减少了参数文件的保存时间,在模型训练任务发生故障中断时,可以快速加载本地缓存目录中的参数文件,明显减少了参数文件加载的时间,进而节省了模型训练的时间,提升了模型的训练效率。
1.一种参数文件保存加载方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
6.根据权利要求4所述的方法,其特征在于,所述对所述本地缓存目录中的所述参数文件进行清理,包括:
7.根据权利要求1所述的方法,其特征在于,所述生成所述容器对应的本地缓存目录,包括:
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
9.根据权利要求8所述的方法,其特征在于,所述在监测到所述本地缓存目录中出现异常信息时,终止所述模型训练任务,包括:
10.根据权利要求1所述的方法,其特征在于,在生成所述模型训练任务对应的共享存储目录之前,所述方法还包括:
11.根据权利要求10所述的方法,其特征在于,所述将所述第一容器集群中的每个所述容器分别分配至主机集群中的一个主机中,包括:
12.根据权利要求1所述的方法,其特征在于,所述方法还包括:
13.根据权利要求12所述的方法,其特征在于,所述根据所述节点编号以及主机之间的对应关系,将所述第二容器集群中的每个所述容器分配至对应的所述主机中,包括:
14.根据权利要求12所述的方法,其特征在于,所述方法还包括:
15.根据权利要求12所述的方法,其特征在于,所述方法还包括:
16.根据权利要求15所述的方法,其特征在于,所述方法还包括:
17.根据权利要求15所述的方法,其特征在于,所述方法还包括:
18.一种参数文件保存加载装置,其特征在于,所述装置包括:
19.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时,实现如权利要求1至17任一所述的方法中的步骤。
20.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时,实现如权利要求1至17任一所述的方法的步骤。
