CN117873789B - 一种基于分段量化的检查点写入方法及装置 - Google Patents

一种基于分段量化的检查点写入方法及装置 Download PDF

Info

Publication number
CN117873789B
CN117873789B CN202410287649.XA CN202410287649A CN117873789B CN 117873789 B CN117873789 B CN 117873789B CN 202410287649 A CN202410287649 A CN 202410287649A CN 117873789 B CN117873789 B CN 117873789B
Authority
CN
China
Prior art keywords
value
segment
determining
segmentation
quantization
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.)
Active
Application number
CN202410287649.XA
Other languages
English (en)
Other versions
CN117873789A (zh
Inventor
刘晓宇
曾令仿
李勇
韩珂
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Lab
Original Assignee
Zhejiang Lab
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhejiang Lab filed Critical Zhejiang Lab
Priority to CN202410287649.XA priority Critical patent/CN117873789B/zh
Publication of CN117873789A publication Critical patent/CN117873789A/zh
Application granted granted Critical
Publication of CN117873789B publication Critical patent/CN117873789B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

在本说明书提供的一种基于分段量化的检查点写入方法及装置中,获取待写入的模型状态,并针对该模型状态中每个向量值,确定该向量值中数值的取值范围以及初始量化位宽,通过分段数量对该向量值进行分段,并针对该向量值中每个数值,确定该数值的所属分段以及该所属分段的分段取值范围,进而对该数值进行量化,根据量化后的各数值,确定量化后的该向量值,并写入检查点文件,该检查点文件用于模型的模型状态恢复。通过分段数量对该向量值进行分段,以及通过精准划分各所属分段的分段取值范围,再对各数值进行量化,在减少存储需求的同时,降低了数值量化的精度损失,并将各量化后的向量值全量写入检查点文件,减少恢复模型状态的复杂性。

Description

一种基于分段量化的检查点写入方法及装置
技术领域
本说明书涉及人工智能技术领域,尤其涉及一种基于分段量化的检查点写入方法及装置。
背景技术
随着机器学习领域的发展,检查点文件(Checkpoint File)在机器学习模型的训练中发挥着越来越重要的作用,一旦机器学习模型的训练中断,可通过最新存储的检查点文件恢复模型,从而保障模型训练的连续性。同时,检查点文件的存储方式对节省存储空间以及减少模型状态的恢复时间有重要影响。
目前,一般采用对模型状态进行增量迭代的方式,更新检查点文件。通常会先保存一个全量模型状态,之后当触发模型状态保存条件时,确定当前的模型状态与上一次模型状态之间的增量变化,将该增量变化,保存至检查点文件。当需要恢复模型状态时,需加载最近保存的一个全量模型状态,并依次应用保存的各增量变化,直至恢复到所需的模型状态。因此,若需要将机器学习模型的模型状态恢复至指定状态,需要追溯每次写入的增量变化,增加了恢复过程的复杂性。
基于此,本说明书提供一种基于分段量化的检查点写入方法及装置。
发明内容
本说明书提供一种基于分段量化的检查点写入方法及装置,以部分的解决现有技术存在的上述问题。
本说明书采用下述技术方案:
本说明书提供了一种基于分段量化的检查点写入方法,所述方法包括:
获取待写入的模型状态,其中,所述模型状态至少包括模型参数;
针对所述模型状态中的每个向量值,确定该向量值中数值的取值范围,并确定初始量化位宽;
根据预设的分段数量以及所述取值范围,对该向量值进行分段;
针对该向量值中的每个数值,确定该数值的所属分段,以及确定所述所属分段的分段取值范围;
根据所述分段取值范围以及所述初始量化位宽,对该数值进行量化;
根据量化后的各数值,确定量化后的该向量值,并将所述量化后的该向量值写入检查点文件,所述检查点文件用于模型的模型状态恢复。
可选的,在根据所述分段取值范围以及所述初始量化位宽,对该数值进行量化之前,所述方法包括:
根据所述初始量化位宽以及所述分段数量,确定分段量化位宽,其中,所述分段量化位宽与所述分段数量成负相关。
可选的,对该数值进行量化,具体包括:
根据所述分段取值范围,确定分段起始点;
根据所述分段取值范围以及所述分段量化位宽,确定分段量化步长;
确定该数值与所述分段起始点的差值,将该差值与所述分段量化步长的比值,作为量化后的该数值。
可选的,确定所属分段的分段取值范围,具体包括:
根据所述取值范围以及预设的分段数量,确定分段宽度;
根据所述分段宽度以及所述所属分段,确定分段取值范围。
可选的,根据所述分段取值范围以及所述初始量化位宽,对该数值进行量化,具体包括:
根据所述分段取值范围,确定分段起始点;
根据所述分段取值范围以及所述初始量化位宽,确定初始量化步长;
确定该数值与所述分段起始点的差值,将该差值与所述初始量化步长的比值,作为量化后的该数值。
可选的,在将所述量化后的该向量值写入检查点文件之后,所述方法还包括:
针对每个量化后的向量值,将该量化后的向量值中各数值的所属分段、各所属分段的分段起始点以及所述初始量化步长,作为该量化后的向量值的段信息,并将所述段信息写入预设的段信息文件。
可选的,所述方法还包括:
当模型训练过程发生中断时,根据所述检查点文件中指定模型状态对应的各量化后的向量值,以及所述段信息文件中所述各量化后的向量值的段信息,确定所述量化前的指定模型状态;
根据所述量化前的指定模型状态,恢复所述模型训练过程。
本说明书提供了一种基于分段量化的检查点写入装置,包括:
获取模块,用于待写入的模型状态,其中,所述模型状态至少包括模型参数;
初始模块,用于针对所述模型状态中的每个向量值,确定该向量值中数值的取值范围,并确定初始量化位宽;
第一分段模块,用于根据预设的分段数量,对该向量值进行分段;
第二分段模块,用于针对该向量值中的每个数值,确定该数值的所属分段,以及确定所述所属分段的分段取值范围;
量化模块,用于根据所述分段取值范围以及所述初始量化位宽,对该数值进行量化;
写入模块,用于根据量化后的各数值,确定量化后的该向量值,并将所述量化后的该向量值写入检查点文件,所述检查点文件用于模型的模型状态恢复。
本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现一种基于分段量化的检查点写入方法。
本说明书提供了一种电子设备,所述电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现一种基于分段量化的检查点写入方法。
本说明书采用的上述至少一个技术方案能够达到以下有益效果:在本说明书提供的一种基于分段量化的检查点写入方法中,获取待写入的模型状态,并针对该模型状态中的每个向量值,确定该向量值中数值的取值范围以及初始量化位宽,通过预设的分段数量对该向量值进行分段,并针对该向量值中的每个数值,确定该数值的所属分段,以及该所属分段的分段取值范围,通过该分段取值范围以及初始量化位宽,对该数值进行量化,根据量化后的各数值,确定量化后的该向量值,将量化后的该向量值写入检查点文件,该检查点文件用于模型的模型状态恢复。
从上述方法可以看出,通过预设的分段数量对该向量值进行分段,以及通过精准的划分向量值中数值的各所属分段的分段取值范围,对各数值进行量化,在减少存储需求的同时,降低了数值量化的精度损失,以及将各量化后的向量值全量写入检查点文件,减少了恢复模型状态的复杂性。
附图说明
此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:
图1为本说明书中提供的一种基于分段量化的检查点写入方法的流程示意图;
图2为本说明书中提供的对向量值进行分段的示意图;
图3为本说明书中提供的对称量化、非对称量化以及分段量化的精度损失的对比示意图;
图4为本说明书提供的不同分段数量对分段量化产生的精度损失的示意图;
图5为本说明书提供的一种基于分段量化的检查点写入装置的示意图;
图6为本说明书提供的用于实现一种基于分段量化的检查点写入方法对应的电子设备结构示意图。
具体实施方式
为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。
目前,一般采用对模型状态进行增量迭代的方式,更新检查点文件。而这种方式存在着故障恢复风险。往往会定期保存一次全量模型状态,若在增量变化保存的过程中***发生故障,导致部分增量变化丢失,导致无法通过追溯增量变化恢复模型状态,进而只能退到最近一次保存的全量模型状态,损失了部分训练进度,降低了模型训练效率。同时,在每次保存都需计算当前的模型状态与上一次的模型状态之间的增量变化,需要再内存中临时保存上一次的模型状态,计算得到增量变化,占用额外的内存资源,若模型较大时内存可能无法完全容纳两次模型状态。若需要将机器学习模型的模型状态恢复至指定状态,还需要追溯每次写入的增量变化,增加了恢复模型状态的复杂性。
基于此,本说明书提供了一种基于分段量化的检查点写入方法,在本说明书提供的技术方案中,针对向量值中的每个数值,通过该数值所属分段的分段取值范围以及初始量化位宽,对该数值进行量化,减少了存储空间的需求,以及通过对向量值进行分段,降低了数值量化的精度损失。同时,将量化后的各向量值写入检查点文件,即压缩后的全量模型状态写入检查点文件,减少了模型状态恢复的复杂性。其中,模型状态指的是训练过程中模型在特定时间点的所有参数和配置信息的集合。检查点文件是指模型状态的物理存储形式,是模型状态以预设的格式保存到磁盘或其他存储介质上的文件,检查点文件使得模型状态可以在不同的时间点或不同的设备上进行加载和恢复。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
图1为本说明书中提供的一种基于分段量化的检查点写入方法的流程示意图,包括以下步骤:
S100:获取待写入的模型状态,其中,所述模型状态至少包括模型参数。
在本说明书一个或多个实施例中,不限制具体由何种设备实行一种基于分段量化的检查点写入方法的过程,例如,个人电脑、移动终端以及服务器等。但由于后续步骤涉及到数据处理等操作,而这种对计算资源的要求较高的操作一般都由服务器来执行,因此本说明书后续也以服务器实现一种基于分段量化的检查点写入方法为例进行描述。其中,该服务器可以是单独的一台设备,或者由多台设备组成,例如,分布式服务器,本说明书对此不做限制。
在本说明书一个或多个实施例中,如前所述,为了在后续步骤中对模型状态中各向量值进行量化压缩,以减少模型状态写入检查点文件所需的存储空间。在本步骤中,需获取待写入的模型状态。
具体的,在模型训练的过程中,服务器可获取触发模型状态保存条件时的模型状态,其中,模型状态至少包括模型参数。但模型状态不限于模型权重、偏置、激活函数的状态、优化器的状态(如学习率、动量)、损失函数的值或其他需保存的信息,在此本说明书并不限制。
S102:针对所述模型状态中的每个向量值,确定该向量值中数值的取值范围,并确定初始量化位宽。
在本说明书一个或多个实施例中,为了在后续步骤中对模型状态中的向量值进行分段,以及对该向量值中的各数值进行量化,在本步骤中,需针对模型状态中每个向量值,确定该向量值中数值的取值范围,并确定初始量化位宽。
具体的,服务器可针对步骤S100中获取的模型状态的每个向量值,确定该向量值中的数值的最大值和最小值,即确定该向量值中数值的取值范围,并确定初始量化位宽,其中,初始量化位宽越小,量化精度越小,量化后的数值所需的存储空间更小,在此本说明书并不限制该初始量化位宽的具体数值,可根据实际需求设置。
S104:根据预设的分段数量,对该向量值进行分段。
S106:针对该向量值中的每个数值,确定该数值的所属分段,以及确定所述所属分段的分段取值范围。
在本说明书一个或多个实施例中,为了降低数值量化带来的精度损失,以及在后续步骤中精准地对向量值中的各数值进行量化。在步骤S104中,需根据预设的分段数量以及步骤S102中确定的取值范围,对向量值进行分段。同时,在步骤S106中需针对向量值中每个数值,确定该数值的所属分段,以及该所属分段的分段取值范围。
具体的,服务器可针对模型状态中每个向量值,根据该向量值的取值范围以及预设的分段数量,对该向量值进行分段。根据该取值范围以及该分段数量,确定分段宽度,并根据该分段宽度以及所属分段,确定分段取值范围。并针对该向量值中每个数值,确定该数值的所属分段,以及该所属分段的分段取值范围。其中,向量值中数值的所属分段的数量与预设的分段数量一致,以及各所属分段的分段取值范围的集合与该向量值的取值范围一致。
例如,针对每个向量值,根据该向量值的取值范围/>,以及预设的分段数量/>,对该向量值/>进行分段。根据该取值范围以及该分段数量,确定分段宽度/>如下:
针对分段后的每个所属分段,根据该分段宽度以及该所属分段,确定该所属分段的分段取值范围为:
如图2所示,为对向量值X进行分段的结构图,其中,图中一个点代表向量值中的一个数值。
S108:根据所述分段取值范围以及所述初始量化位宽,对该数值进行量化。
在本说明书一个或多个实施例中,为了在后续步骤中确定量化后的向量值,并将量化后的各向量值写入检查点文件。在本步骤中,需对向量值中的各数值进行量化。
具体的,服务器可针对向量值中的每个数值,根据该数值的所属分段的分段取值范围,确定分段起始点,以及根据该分段取值范围以及步骤S102中确定的初始量化位宽,确定初始量化步长。根据该分段起始点和该初始量化步长,对数值进行量化,包括:计算得到该数值与该分段起始点的差值,将该差值与该初始量化步长的比值,作为量化后的该数值。
沿用上例,针对向量值中每个数值,确定该数值的所属分段,以及该所属分段的分段取值范围,该分段取值范围的最小值即为分段起始点。分段起始点/>为该数值的所属分段/>的分段取值范围中的最小值,如下:
分段量化步长如下:
其中,为分段取值范围中的最大值,/>为分段取值范围中的最小值。/>为初始量化位宽。
对该数值进行量化,确定量化后的该数值,如下:
S110:根据量化后的各数值,确定量化后的该向量值,并将所述量化后的该向量值写入检查点文件,所述检查点文件用于模型的模型状态恢复。
具体的,服务器可根据量化后的各数值,确定量化后的该向量值。并将量化后的各向量值写入检查点文件,完成模型状态的存储。其中,检查点文件用于模型的模型状态恢复,即在模型训练中断时,根据检查点文件可恢复模型的模型状态,保障了模型训练的连续性,避免了训练进度的损失。
可选的,为了提高恢复模型的模型状态的精准性,可在将量化后的各向量值写入检查点文件时,确定量化后的各向量值的段信息,写入段信息文件,以便通过段信息文件,对检查点文件中的各向量值,进行反量化,提高恢复模型状态的精确度。因此,服务器需针对每个量化后的向量值,将该量化后的向量值中各数值的所属分段、各所属分段的分段起始点以及所述初始量化步长,作为该量化后的向量值的段信息,并将该段信息写入预设的段信息文件。进而当模型训练发生中断时,根据检查点文件中指定模型状态对应的各量化后的向量值,以及段信息文件中所述各量化后的向量值的段信息,确定所述量化前的指定模型状态。并通过该量化前的指定模型状态,恢复模型训练过程。其中,通过段信息文件,对检查点文件中量化后的各向量值进行反量化,使经过反量化后得到的各向量值准确性高。
在上述一种基于分段量化的检查点写入方法中,针对向量值中的每个数值,通过该数值所属分段的分段取值范围以及初始量化位宽,对该数值进行量化,减少了存储空间的需求,针对每个数值,由于分段使该数值所在的量化范围缩小(即从向量值的取值范围变为所属分段的分段取值范围),进而根据通过该分段取值范围确定的初始量化步长,对该数值进行量化,降低了量化精度的损失。同时,将量化后的各向量值写入检查点文件,即压缩后的全量模型状态写入检查点文件,在降低所需存储空间的同时,减少了模型状态恢复的复杂性。
除此之外,本说明书提供了根据步骤S102中确定的初始量化位宽以及预设的分段数量,确定分段量化位宽,并根据该分段量化位宽,对向量值中各数值进行量化,具体如下:
在本说明书实施例中,首先,服务器可根据步骤S102中确定的初始量化位宽以及预设的分段数量,确定分段量化位宽,其中,分段量化位宽与分段数量成负相关。沿用上例,确定分段量化位宽,如下:
其中,为分段量化位宽,/>为初始量化位宽,/>为预设的分段数量。
其次,服务器可根据分段取值范围,确定分段起始点,以及根据分段取值范围以及分段量化位宽,确定分段量化步长。
最后,确定该数值与分段起始点的差值,将该差值与分段量化步长的比值,作为量化后的该数值。除初始量化位宽和分段量化位宽的差异,对该数值的量化过程与步骤S108类似,本说明书在此不再赘述。
在上述中,如步骤S102中所述,初始量化位宽影响着量化的量化精度,以及量化后的数值所占的存储空间,以及由于分段的影响,降低了通过初始量化位宽对数值进行量化的精度损失。也就是说,初始量化位宽和分段数量都是量化精度的影响因素,当满足量化精度需求的同时,可通过增加分段数量,减少初始量化位宽,进一步降低对存储空间的需求。为此,服务器可通过初始量化位宽以及分段数量,得到分段量化位宽,其中分段量化位宽与分段数量成负相关,再通过该分段量化位宽对各数值进行量化。即可在满足量化精度需求的同时,通过将各数值的量化位宽从初始量化位宽降到分段量化位宽,以及通过该分段量化位宽对各数值进行量化,进一步降低了对存储空间的需求。
沿用上例,通过对向量值进行分段,以及根据分段量化位宽以及各所属分段的分段取值范围,确定量化后的该向量值,计算量化前后该向量值的精度损失:
其中,为精度损失,/>为量化前的向量值,/>为量化后的向量值。该精度损失可作为设置分段数量和初始量化位宽的参考因素。即可通过衡量分段数量以及初始量化位宽,以使通过分段量化位宽对各向量值进行量化,产生的精度损失满足实际需求,其中,分段数量影响着计算资源的使用,分段数量越多计算量越大,以及初始量化位宽影响着对存储空间的需求,初始量化位宽越小,对存储空间的需求越小。因此,在本说明书中并不限制,可根据实际需求设置初始量化位宽和分段数量的大小。
为此,沿用上例,如图3所示,为本说明书提供了对称量化、非对称量化以及上述的分段量化的方法,通过设置初始量化位宽t,对同一向量值进行量化后产生的精度损失的对比图,其中,初始量化位宽为横坐标,量化的精度损失为纵坐标。
沿用上例,如图4所示,本说明书提供了上述分段量化在不同分段数量下对精度损失的影响,其中,分段数量为横坐标,量化的精度损失为纵坐标。
以上为本说明书的一个或多个实施例中提供的一种基于分段量化的检查点写入方法,基于同样的思路,本说明书还提供了相应的一种基于分段量化的检查点写入装置,如图5所示。
获取模块500,待写入的模型状态,其中,所述模型状态至少包括模型参数;
初始模块501,针对所述模型状态中的每个向量值,确定该向量值中数值的取值范围,并确定初始量化位宽;
第一分段模块502,根据预设的分段数量,对该向量值进行分段;
第二分段模块503,针对该向量值中的每个数值,确定该数值的所属分段,以及确定所述所属分段的分段取值范围;
量化模块504,根据所述分段取值范围以及所述初始量化位宽,对该数值进行量化;
写入模块505,根据量化后的各数值,确定量化后的该向量值,并将所述量化后的该向量值写入检查点文件,所述检查点文件用于模型的模型状态恢复。
可选地,所述第二分段模块503,具体用于根据所述取值范围以及预设的分段数量,确定分段宽度;根据所述分段宽度以及所述所属分段,确定分段取值范围。
可选地,所述量化模块504,具体用于根据所述分段取值范围,确定分段起始点;根据所述分段取值范围以及所述初始量化位宽,确定初始量化步长;确定该数值与所述分段起始点的差值,将该差值与所述初始量化步长的比值,作为量化后的该数值。
可选地,该装置还包括第三分段模块506,所述第三分段模块506具体用于根据所述初始量化位宽以及所述分段数量,确定分段量化位宽,其中,所述分段量化位宽与所述分段数量成负相关。
可选地,所述量化模块504,还可用于根据所述分段取值范围,确定分段起始点;根据所述分段取值范围以及所述分段量化位宽,确定分段量化步长;确定该数值与所述分段起始点的差值,将该差值与所述分段量化步长的比值,作为量化后的该数值。
可选地,所述写入模块505,还可用于针对每个量化后的向量值,将该量化后的向量值中各数值的所属分段、各所属分段的分段起始点以及所述初始量化步长,作为该量化后的向量值的段信息,并将所述段信息写入预设的段信息文件。
可选地,该装置还包括恢复模块507,所述恢复模块507具体用于当模型训练过程发生中断时,根据所述检查点文件中指定模型状态对应的各量化后的向量值,以及所述段信息文件中所述各量化后的向量值的段信息,确定所述量化前的指定模型状态;根据所述量化前的指定模型状态,恢复所述模型训练过程。
本说明书还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述图1提供的一种基于分段量化的检查点写入方法。
本说明书还提供了图6所示的电子设备的示意结构图。如图5所述,在硬件层面,该设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图1所述一种基于分段量化的检查点写入方法。当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device, PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字***“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20 以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的***、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。

Claims (10)

1.一种基于分段量化的检查点写入方法,其特征在于,包括:
获取待写入的模型状态,其中,所述模型状态至少包括模型参数;
针对所述模型状态中的每个向量值,确定该向量值中数值的取值范围,并确定初始量化位宽;
根据预设的分段数量以及所述取值范围,对该向量值进行分段;
针对该向量值中的每个数值,确定该数值的所属分段,以及确定所述所属分段的分段取值范围;
根据所述分段取值范围以及所述初始量化位宽,对该数值进行量化;
根据量化后的各数值,确定量化后的该向量值,并将所述量化后的该向量值写入检查点文件,所述检查点文件用于模型的模型状态恢复。
2.如权利要求1所述方法,其特征在于,在根据所述分段取值范围以及所述初始量化位宽,对该数值进行量化之前,所述方法包括:
根据所述初始量化位宽以及所述分段数量,确定分段量化位宽,其中,所述分段量化位宽与所述分段数量成负相关。
3.如权利要求2所述方法,其特征在于,对该数值进行量化,具体包括:
根据所述分段取值范围,确定分段起始点;
根据所述分段取值范围以及所述分段量化位宽,确定分段量化步长;
确定该数值与所述分段起始点的差值,将该差值与所述分段量化步长的比值,作为量化后的该数值。
4.如权利要求1所述方法,其特征在于,确定所属分段的分段取值范围,具体包括:
根据所述取值范围以及预设的分段数量,确定分段宽度;
根据所述分段宽度以及所述所属分段,确定分段取值范围。
5.如权利要求1所述方法,其特征在于,根据所述分段取值范围以及所述初始量化位宽,对该数值进行量化,具体包括:
根据所述分段取值范围,确定分段起始点;
根据所述分段取值范围以及所述初始量化位宽,确定初始量化步长;
确定该数值与所述分段起始点的差值,将该差值与所述初始量化步长的比值,作为量化后的该数值。
6.如权利要求5所述方法,其特征在于,在将所述量化后的该向量值写入检查点文件之后,所述方法还包括:
针对每个量化后的向量值,将该量化后的向量值中各数值的所属分段、各所属分段的分段起始点以及所述初始量化步长,作为该量化后的向量值的段信息,并将所述段信息写入预设的段信息文件。
7.如权利要求6所述方法,其特征在于,所述方法还包括:
当模型训练过程发生中断时,根据所述检查点文件中指定模型状态对应的各量化后的向量值,以及所述段信息文件中所述各量化后的向量值的段信息,确定所述量化前的指定模型状态;
根据所述量化前的指定模型状态,恢复所述模型训练过程。
8.一种基于分段量化的检查点写入装置,其特征在于,包括:
获取模块,用于待写入的模型状态,其中,所述模型状态至少包括模型参数;
初始模块,用于针对所述模型状态中的每个向量值,确定该向量值中数值的取值范围,并确定初始量化位宽;
第一分段模块,用于根据预设的分段数量,对该向量值进行分段;
第二分段模块,用于针对该向量值中的每个数值,确定该数值的所属分段,以及确定所述所属分段的分段取值范围;
量化模块,用于根据所述分段取值范围以及所述初始量化位宽,对该数值进行量化;
写入模块,用于根据量化后的各数值,确定量化后的该向量值,并将所述量化后的该向量值写入检查点文件,所述检查点文件用于模型的模型状态恢复。
9.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求1~7任一项所述的方法。
10.一种电子设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述权利要求1~7任一项所述的方法。
CN202410287649.XA 2024-03-13 2024-03-13 一种基于分段量化的检查点写入方法及装置 Active CN117873789B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410287649.XA CN117873789B (zh) 2024-03-13 2024-03-13 一种基于分段量化的检查点写入方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410287649.XA CN117873789B (zh) 2024-03-13 2024-03-13 一种基于分段量化的检查点写入方法及装置

Publications (2)

Publication Number Publication Date
CN117873789A CN117873789A (zh) 2024-04-12
CN117873789B true CN117873789B (zh) 2024-05-10

Family

ID=90590533

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410287649.XA Active CN117873789B (zh) 2024-03-13 2024-03-13 一种基于分段量化的检查点写入方法及装置

Country Status (1)

Country Link
CN (1) CN117873789B (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6393583B1 (en) * 1998-10-29 2002-05-21 International Business Machines Corporation Method of performing checkpoint/restart of a parallel program
CN105930223A (zh) * 2016-04-24 2016-09-07 湖南大学 一种减少检查点文件大小的方法
CN112529167A (zh) * 2020-12-25 2021-03-19 东云睿连(武汉)计算技术有限公司 一种神经网络交互式自动训练***和方法
WO2021184901A1 (zh) * 2020-03-19 2021-09-23 北京奥星贝斯科技有限公司 一种数据的写入方法、装置以及设备
CN113487025A (zh) * 2021-07-02 2021-10-08 浙江大学 面向神经网络检查点数据的智能压缩存储方法和***
CN113900856A (zh) * 2021-10-08 2022-01-07 中国农业银行股份有限公司 一种数据处理方法及相关设备
CN114662485A (zh) * 2022-03-31 2022-06-24 阿里巴巴(中国)有限公司 一种翻译模型压缩方法、翻译方法及相关装置
CN116627659A (zh) * 2023-07-21 2023-08-22 科大讯飞股份有限公司 模型检查点文件保存方法、装置、设备及存储介质
CN116957010A (zh) * 2023-07-13 2023-10-27 深圳北理莫斯科大学 一种用于卷积神经网络的模型推理方法和装置
CN117075800A (zh) * 2023-07-13 2023-11-17 北京航空航天大学 一种海量检查点数据的i/o感知自适应写入方法

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6393583B1 (en) * 1998-10-29 2002-05-21 International Business Machines Corporation Method of performing checkpoint/restart of a parallel program
CN105930223A (zh) * 2016-04-24 2016-09-07 湖南大学 一种减少检查点文件大小的方法
WO2021184901A1 (zh) * 2020-03-19 2021-09-23 北京奥星贝斯科技有限公司 一种数据的写入方法、装置以及设备
CN112529167A (zh) * 2020-12-25 2021-03-19 东云睿连(武汉)计算技术有限公司 一种神经网络交互式自动训练***和方法
CN113487025A (zh) * 2021-07-02 2021-10-08 浙江大学 面向神经网络检查点数据的智能压缩存储方法和***
CN113900856A (zh) * 2021-10-08 2022-01-07 中国农业银行股份有限公司 一种数据处理方法及相关设备
CN114662485A (zh) * 2022-03-31 2022-06-24 阿里巴巴(中国)有限公司 一种翻译模型压缩方法、翻译方法及相关装置
CN116957010A (zh) * 2023-07-13 2023-10-27 深圳北理莫斯科大学 一种用于卷积神经网络的模型推理方法和装置
CN117075800A (zh) * 2023-07-13 2023-11-17 北京航空航天大学 一种海量检查点数据的i/o感知自适应写入方法
CN116627659A (zh) * 2023-07-21 2023-08-22 科大讯飞股份有限公司 模型检查点文件保存方法、装置、设备及存储介质

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Raghuraman Krishnamoorthi.Quantizing deep convolutional networks for efficient inference: A whitepaper.《arXiv:1806.08342v1》.2018,第1-36页. *
Yu Chen et al..On Efficient Constructions of Checkpoints.《arXiv:2009.13003v1》.2020,第1-10页. *
羌卫中 等.虚拟机内存轻量级检查点研究.《华中科技大学学报(自然科学版)》.2014,第42卷(第11期),第1-5页. *
魏晓辉 等.支持大规模流数据在线处理的自适应检查点机制.《吉林大学学报(工学版)》.2017,第47卷(第1期),第199-207页. *

Also Published As

Publication number Publication date
CN117873789A (zh) 2024-04-12

Similar Documents

Publication Publication Date Title
CN111181569B (zh) 一种时序数据的压缩方法、装置以及设备
CN110263050B (zh) 数据处理方法、装置、设备及存储介质
CN116432778B (zh) 一种数据处理的方法、装置、存储介质及电子设备
CN115618748B (zh) 一种模型优化的方法、装置、设备及存储介质
CN116822657B (zh) 一种模型训练加速的方法、装置、存储介质及电子设备
CN117873789B (zh) 一种基于分段量化的检查点写入方法及装置
CN116048977B (zh) 一种基于数据还原的测试方法及装置
CN116384505A (zh) 一种数据处理的方法、装置、存储介质及电子设备
CN115034367A (zh) 一种模型部署的方法及装置
CN109614388B (zh) 一种预算扣减方法和装置
CN107645541B (zh) 数据存储方法、装置及服务器
CN117522669B (zh) 一种图形处理器内存优化方法、装置、介质及设备
CN117743472B (zh) 一种存储任务断点同步方法、装置、介质及设备
CN111522527B (zh) 防止数据寄存器饱和溢出的方法、装置及电子设备
CN117035123B (zh) 一种并行训练中的节点通信方法、存储介质、设备
CN116089434B (zh) 一种数据存储方法、装置、存储介质及电子设备
CN116880905B (zh) 一种数据存储方法、装置、存储介质及电子设备
CN117009729B (zh) 基于softmax的数据处理方法及装置
CN116434787B (zh) 一种语音情感识别的方法、装置、存储介质及电子设备
CN112434486B (zh) 一种pcb设计中器件自动分页方法、装置、设备及介质
CN116204584A (zh) 一种写入日志的方法、装置、可读存储介质及电子设备
CN114116465A (zh) 一种压力测试方法、装置、存储介质及电子设备
CN116340004A (zh) 一种任务执行的方法、装置、存储介质及电子设备
CN117499492A (zh) 数据处理方法、装置及设备
CN117592998A (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