CN117992220A - 一种基于改进ZeRO-Offload技术的大模型训练方法 - Google Patents
一种基于改进ZeRO-Offload技术的大模型训练方法 Download PDFInfo
- Publication number
- CN117992220A CN117992220A CN202410121438.9A CN202410121438A CN117992220A CN 117992220 A CN117992220 A CN 117992220A CN 202410121438 A CN202410121438 A CN 202410121438A CN 117992220 A CN117992220 A CN 117992220A
- Authority
- CN
- China
- Prior art keywords
- computing
- training
- parameter
- zero
- model parameters
- 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
- 238000012549 training Methods 0.000 title claims abstract description 72
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000005516 engineering process Methods 0.000 title claims abstract description 31
- 238000003860 storage Methods 0.000 claims abstract description 21
- 238000012545 processing Methods 0.000 claims abstract description 17
- 238000004364 calculation method Methods 0.000 claims abstract description 16
- 238000013139 quantization Methods 0.000 claims abstract description 8
- 238000005457 optimization Methods 0.000 claims description 30
- 239000012634 fragment Substances 0.000 claims description 18
- 238000009826 distribution Methods 0.000 claims description 7
- 238000013508 migration Methods 0.000 claims description 6
- 230000005012 migration Effects 0.000 claims description 6
- 230000006870 function Effects 0.000 claims description 3
- 238000002360 preparation method Methods 0.000 claims description 3
- 238000007781 pre-processing Methods 0.000 abstract description 3
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明提供一种基于改进ZeRO‑Offload技术的大模型训练方法,通过优化内存使用、提高计算效率以及优化数据加载和并行计算,有效处理大规模模型训练时的内存和计算资源挑战;使用ZeRO技术对模型参数进行压缩和去重,通过量化、哈夫曼编码等操作减少参数冗余,降低显存消耗;利用Offload技术将计算任务分配给可扩展的计算资源,将计算密集型任务如前向传播、反向传播等迁移到GPU进行计算,实现计算能力的线性扩展;优化数据加载和并行计算,通过数据预处理、批量处理等方式提高数据加载效率;通过多线程、多进程等方式实现并行计算,进一步提高训练速度;本发明还提出一种动态显存分配策略,根据当前显存使用情况和任务需求,动态调整模型参数的存储方式和计算任务的分配,以最大化利用显存资源。
Description
技术领域
本申请涉及网络技术领域,尤其涉及一种基于改进ZeRO-Offload技术的大模型训练方法。
背景技术
随着深度学习的发展,大模型训练已成为研究热点。然而,在大模型训练过程中,由于模型参数数量庞大,传统的内存管理方法常常面临显存不足导致OOM(Out of Memory,内存溢出)的问题。因此,如何优化内存使用和提高计算效率成为大模型训练的关键挑战。
因此,急需一种针对性的基于改进ZeRO-Offload技术的大模型训练方法。
发明内容
本发明的目的是为了解决上述问题,提供一种基于改进ZeRO-Offload技术的大模型训练方法。
第一方面,本申请提供一种基于改进ZeRO-Offload技术的大模型训练方法,所述方法包括:
步骤1,准备训练数据和模型参数;
步骤2,使用ZeRO技术对模型参数进行处理,该处理包括:根据模型参数得到参数集合,将其中连续的非零参数分割成单独的参数子集,并将对应的连续非零参数的个数作为表征该参数子集的权值,将该权值与所述参数子集组合,得到处理后的若干参数子集,并通过量化、哈夫曼编码减少参数冗余;
步骤3,利用Offload技术将计算任务分配给可扩展的计算资源,其中包括:将计算任务进行分片,将所述分片从主内存卸载,分配给可扩展的计算资源,在主内存中将所述分片的计算结果合并;
步骤4,将计算密集型任务,其包括前向传播、反向传播,迁移到GPU进行计算;
步骤5,根据动态显存分配策略动态调整所述处理后的若干参数子集的存储方式和分片后的计算任务的分配;重复步骤4和5直到训练完成;
步骤6,保存训练得到的模型参数和优化结果,其中包括:分别调用参数子集训练模型,得到不同的优化结果,从中选择精度匹配度最高的优化结果;或者,将调用的参数子集进行合并,训练模型得到唯一的优化结果,判断其精度的匹配度是否达标。
第二方面,本申请提供一种基于改进ZeRO-Offload技术的大模型训练系统,所述系统包括:
准备单元,用于准备训练数据和模型参数;
参数处理单元,用于使用ZeRO技术对模型参数进行处理,该处理包括:根据模型参数得到参数集合,将其中连续的非零参数分割成单独的参数子集,并将对应的连续非零参数的个数作为表征该参数子集的权值,将该权值与所述参数子集组合,得到处理后的若干参数子集,并通过量化、哈夫曼编码减少参数冗余;
任务分配单元,用于利用Offload技术将计算任务分配给可扩展的计算资源,其中包括:将计算任务进行分片,将所述分片从主内存卸载,分配给可扩展的计算资源,在主内存中将所述分片的计算结果合并;
计算迁移单元,用于将计算密集型任务,其包括前向传播、反向传播,迁移到GPU进行计算;
动态分配单元,用于根据动态显存分配策略动态调整所述处理后的若干参数子集的存储方式和分片后的计算任务的分配;重复计算迁移单元和动态分配单元的功能直到训练完成;
保存单元,用于保存训练得到的模型参数和优化结果,其中包括:分别调用参数子集训练模型,得到不同的优化结果,从中选择精度匹配度最高的优化结果;或者,将调用的参数子集进行合并,训练模型得到唯一的优化结果,判断其精度的匹配度是否达标。
第三方面,本申请提供一种基于改进ZeRO-Offload技术的大模型训练系统,所述系统包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行第一方面四种可能中任一项所述的方法。
第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行第一方面四种可能中任一项所述的方法。
有益效果
本发明提供一种基于改进ZeRO-Offload技术的大模型训练方法,通过优化内存使用、提高计算效率以及优化数据加载和并行计算,有效处理大规模模型训练时的内存和计算资源挑战;使用ZeRO技术对模型参数进行压缩和去重,通过量化、哈夫曼编码等操作减少参数冗余,降低显存消耗;利用Offload技术将计算任务分配给可扩展的计算资源,将计算密集型任务如前向传播、反向传播等迁移到GPU进行计算,实现计算能力的线性扩展;优化数据加载和并行计算,通过数据预处理、批量处理等方式提高数据加载效率;通过多线程、多进程等方式实现并行计算,进一步提高训练速度;本发明还提出一种动态显存分配策略,根据当前显存使用情况和任务需求,动态调整模型参数的存储方式和计算任务的分配,以最大化利用显存资源。
本发明的基于改进ZeRO-Offload技术的大模型训练方法和系统具有以下优点:
通过减少显存消耗和提高计算效率,可以显著缩短训练时间并降低计算资源消耗。同时,通过优化数据加载和并行计算,可以进一步提高训练速度和效率。此外,通过动态显存分配策略和改进ZeRO-Offload技术,可以更好地应对显存不足导致OOM的问题,提高大模型训练的稳定性和可靠性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明基于改进ZeRO-Offload技术的大模型训练方法的大致流程图;
图2为本发明基于改进ZeRO-Offload技术的大模型训练系统的架构图。
具体实施方式
下面结合附图对本发明的优选实施例进行详细阐述,以使本发明的优点和特征能更易于被本领域技术人员理解,从而对本发明的保护范围做出更为清楚明确的界定。
数据的真实性也面临着日益严重的挑战,虚假数据的合成与传播不仅会影响到数据的可信度,更会误导决策。
图1为本申请提供的基于改进ZeRO-Offload技术的大模型训练方法的大致流程图,所述方法包括:
步骤1,准备训练数据和模型参数;
步骤2,使用ZeRO技术对模型参数进行处理,该处理包括:根据模型参数得到参数集合,将其中连续的非零参数分割成单独的参数子集,并将对应的连续非零参数的个数作为表征该参数子集的权值,将该权值与所述参数子集组合,得到处理后的若干参数子集,并通过量化、哈夫曼编码减少参数冗余,以降低显存消耗;
步骤3,利用Offload技术将计算任务分配给可扩展的计算资源,其中包括:将计算任务进行分片,将所述分片从主内存卸载,分配给可扩展的计算资源,在主内存中将所述分片的计算结果合并;
步骤4,将计算密集型任务,其包括前向传播、反向传播,迁移到GPU进行计算;
以上步骤3和步骤4,利用Offload技术将计算任务分配给可扩展的计算资源,将计算密集型任务如前向传播、反向传播等迁移到GPU进行计算,实现计算能力的线性扩展。
优化数据加载和并行计算,通过数据预处理、批量处理等方式提高数据加载效率;通过多线程、多进程等方式实现并行计算,进一步提高训练速度。
例如,可以采用不同的线程执行ZeRO技术和Offload技术,实现两者的并行处理;或者优化线程加载的时序,先执行ZeRO技术对模型参数进行压缩和去重,在执行到指定进度且未全部执行完毕时,启动Offload技术的线程,提前将计算任务分配给可扩展的计算资源,达到模型参数处理和计算任务资源分配的无缝衔接。
步骤5,根据动态显存分配策略动态调整所述处理后的若干参数子集的存储方式和分片后的计算任务的分配;重复步骤4和5直到训练完成;
根据当前显存使用情况和任务需求,动态调整模型参数的存储方式和计算任务的分配,以最大化利用显存资源。
步骤6,保存训练得到的模型参数和优化结果,其中包括:分别调用参数子集训练模型,得到不同的优化结果,从中选择精度匹配度最高的优化结果;或者,将调用的参数子集进行合并,训练模型得到唯一的优化结果,判断其精度的匹配度是否达标。
通过改进ZeRO-Offload技术,进一步提高训练效率。例如,通过优化ZeRO算法的压缩效率和Offload技术的任务调度策略,减少不必要的计算和数据传输开销,从而提高训练速度。
例如,根据不同场景下对训练精度的要求,调整压缩效率值和任务资源的延迟值,从而节约训练资源。在训练精度要求不高的场景中,可以适度降低压缩效率或侧重分配延迟大的任务资源。
在一些优选实施例中,所述动态显存分配策略是指,根据当前显存使用情况和任务需求,动态调整模型参数的存储方式和计算任务的分配。
在一些优选实施例中,所述重复步骤4和5直到训练完成的过程,包括:所有的计算密集型任务迁移完毕,以及所有的计算任务执行完毕,则训练完成。
在某些场合中,还可以是没有剩余的任务资源、模型参数能够满足训练精度等,作为训练结束的判断条件。
本申请可以根据场景不同,对应确定不同的规则,选择不同的动态显存分配策略。
本申请系统服务器中存储了不同类型场景的规则,用户可以进一步扩展,丰富更多场景,也就是,本申请保持了极大的可扩展性。
在一些优选实施例中,在所述根据动态显存分配策略动态调整之前,包括:确定场景类型,对应得到规则,生成不同的动态显存分配策略。
图2为本申请提供的基于改进ZeRO-Offload技术的大模型训练系统的架构图,所述系统包括:
准备单元,用于准备训练数据和模型参数;
参数处理单元,用于使用ZeRO技术对模型参数进行处理,该处理包括:根据模型参数得到参数集合,将其中连续的非零参数分割成单独的参数子集,并将对应的连续非零参数的个数作为表征该参数子集的权值,将该权值与所述参数子集组合,得到处理后的若干参数子集,并通过量化、哈夫曼编码减少参数冗余;
任务分配单元,用于利用Offload技术将计算任务分配给可扩展的计算资源,其中包括:将计算任务进行分片,将所述分片从主内存卸载,分配给可扩展的计算资源,在主内存中将所述分片的计算结果合并;
计算迁移单元,用于将计算密集型任务,其包括前向传播、反向传播,迁移到GPU进行计算;
动态分配单元,用于根据动态显存分配策略动态调整所述处理后的若干参数子集的存储方式和分片后的计算任务的分配;重复计算迁移单元和动态分配单元的功能直到训练完成;
保存单元,用于保存训练得到的模型参数和优化结果,其中包括:分别调用参数子集训练模型,得到不同的优化结果,从中选择精度匹配度最高的优化结果;或者,将调用的参数子集进行合并,训练模型得到唯一的优化结果,判断其精度的匹配度是否达标。
本申请提供一种基于改进ZeRO-Offload技术的大模型训练系统,所述系统包括:所述系统包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行第一方面所有实施例中任一项所述的方法。
本申请提供一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行第一方面所有实施例中任一项所述的方法。
具体实现中,本发明还提供一种计算机存储介质,其中,该计算机存储介质可以存储有程序,该程序执行时可包括本发明各个实施例中的部分或全部步骤。所述的存储介质可以为磁碟、光盘、只读存储记忆体(简称:ROM)或随机存储记忆体(简称:RAM)等。
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书各个实施例之间相同相似的部分互相参见即可。尤其,对于实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
以上所述的本发明实施方式并不构成对本发明保护范围的限定。
Claims (7)
1.一种基于改进ZeRO-Offload技术的大模型训练方法,其特征在于,所述方法包括:
步骤1,准备训练数据和模型参数;
步骤2,使用ZeRO技术对模型参数进行处理,该处理包括:根据模型参数得到参数集合,将其中连续的非零参数分割成单独的参数子集,并将对应的连续非零参数的个数作为表征该参数子集的权值,将该权值与所述参数子集组合,得到处理后的若干参数子集,并通过量化、哈夫曼编码减少参数冗余;
步骤3,利用Offload技术将计算任务分配给可扩展的计算资源,其中包括:将计算任务进行分片,将所述分片从主内存卸载,分配给可扩展的计算资源,在主内存中将所述分片的计算结果合并;
步骤4,将计算密集型任务,其包括前向传播、反向传播,迁移到GPU进行计算;
步骤5,根据动态显存分配策略动态调整所述处理后的若干参数子集的存储方式和分片后的计算任务的分配;重复步骤4和5直到训练完成;
步骤6,保存训练得到的模型参数和优化结果,其中包括:分别调用参数子集训练模型,得到不同的优化结果,从中选择精度匹配度最高的优化结果;或者,将调用的参数子集进行合并,训练模型得到唯一的优化结果,判断其精度的匹配度是否达标。
2.根据权利要求1所述的方法,其特征在于:所述动态显存分配策略是指,根据当前显存使用情况和任务需求,动态调整模型参数的存储方式和计算任务的分配。
3.根据权利要求2所述的方法,其特征在于:所述重复步骤4和5直到训练完成的过程,包括:所有的计算密集型任务迁移完毕,以及所有的计算任务执行完毕,则训练完成。
4.根据权利要求3所述的方法,其特征在于:在所述根据动态显存分配策略动态调整之前,包括:确定场景类型,对应得到规则,生成不同的动态显存分配策略。
5.一种基于改进ZeRO-Offload技术的大模型训练系统,其特征在于,所述系统包括:
准备单元,用于准备训练数据和模型参数;
参数处理单元,用于使用ZeRO技术对模型参数进行处理,该处理包括:根据模型参数得到参数集合,将其中连续的非零参数分割成单独的参数子集,并将对应的连续非零参数的个数作为表征该参数子集的权值,将该权值与所述参数子集组合,得到处理后的若干参数子集,并通过量化、哈夫曼编码减少参数冗余;
任务分配单元,用于利用Offload技术将计算任务分配给可扩展的计算资源,其中包括:将计算任务进行分片,将所述分片从主内存卸载,分配给可扩展的计算资源,在主内存中将所述分片的计算结果合并;
计算迁移单元,用于将计算密集型任务,其包括前向传播、反向传播,迁移到GPU进行计算;
动态分配单元,用于根据动态显存分配策略动态调整所述处理后的若干参数子集的存储方式和分片后的计算任务的分配;重复计算迁移单元和动态分配单元的功能直到训练完成;
保存单元,用于保存训练得到的模型参数和优化结果,其中包括:分别调用参数子集训练模型,得到不同的优化结果,从中选择精度匹配度最高的优化结果;或者,将调用的参数子集进行合并,训练模型得到唯一的优化结果,判断其精度的匹配度是否达标。
6.一种基于改进ZeRO-Offload技术的大模型训练系统,其特征在于,所述系统包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行实现权利要求1-4任一项所述的方法。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储程序代码,所述程序代码用于处理器执行实现权利要求1-4任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410121438.9A CN117992220B (zh) | 2024-01-29 | 2024-01-29 | 一种基于改进ZeRO-Offload技术的大模型训练方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410121438.9A CN117992220B (zh) | 2024-01-29 | 2024-01-29 | 一种基于改进ZeRO-Offload技术的大模型训练方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117992220A true CN117992220A (zh) | 2024-05-07 |
CN117992220B CN117992220B (zh) | 2024-07-19 |
Family
ID=90894631
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410121438.9A Active CN117992220B (zh) | 2024-01-29 | 2024-01-29 | 一种基于改进ZeRO-Offload技术的大模型训练方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117992220B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111597055A (zh) * | 2020-07-24 | 2020-08-28 | 北京一流科技有限公司 | 分布式数据处理系统、分布式计算任务部署系统及方法 |
CN115604189A (zh) * | 2022-09-30 | 2023-01-13 | 云南大学(Cn) | 一种边缘计算设备数据协同的方法及装置 |
WO2023071743A1 (zh) * | 2021-10-25 | 2023-05-04 | 中兴通讯股份有限公司 | 网络模型训练方法、装置和计算机可读存储介质 |
-
2024
- 2024-01-29 CN CN202410121438.9A patent/CN117992220B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111597055A (zh) * | 2020-07-24 | 2020-08-28 | 北京一流科技有限公司 | 分布式数据处理系统、分布式计算任务部署系统及方法 |
WO2023071743A1 (zh) * | 2021-10-25 | 2023-05-04 | 中兴通讯股份有限公司 | 网络模型训练方法、装置和计算机可读存储介质 |
CN115604189A (zh) * | 2022-09-30 | 2023-01-13 | 云南大学(Cn) | 一种边缘计算设备数据协同的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN117992220B (zh) | 2024-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110262901B (zh) | 一种数据处理方法及数据处理系统 | |
CN110096362B (zh) | 一种基于边缘服务器协作的多任务卸载方法 | |
CN103188521B (zh) | 转码分配方法及装置,转码方法及设备 | |
CN112988345A (zh) | 一种基于移动边缘计算的依赖型任务卸载方法及装置 | |
CN110347515B (zh) | 一种适合边缘计算环境的资源优化分配方法 | |
CN112463189B (zh) | 基于通信操作稀疏化的分布式深度学习多步延迟更新方法 | |
CN115237580B (zh) | 面向智能计算的流水并行训练自适应调整系统、方法 | |
CN114356544A (zh) | 面向边缘集群的并行计算方法和系统 | |
CN117992220B (zh) | 一种基于改进ZeRO-Offload技术的大模型训练方法 | |
CN112771546A (zh) | 运算加速器和压缩方法 | |
Zhang et al. | A locally distributed mobile computing framework for DNN based android applications | |
CN109448092B (zh) | 一种基于动态任务粒度的负载均衡集群渲染方法 | |
CN116776980A (zh) | 一种预测推理系统及方法 | |
CN115130672B (zh) | 一种软硬件协同优化卷积神经网络计算的方法及装置 | |
CN110728372A (zh) | 一种人工智能模型动态加载的集群设计方法及集群架构 | |
CN113641674B (zh) | 一种自适应全局序号发生方法和装置 | |
Ravi et al. | Mobile computation bursting: An application partitioning and offloading decision engine | |
CN111813512B (zh) | 一种基于动态分区的高能效Spark任务调度方法 | |
CN112600873A (zh) | 一种5g环境下低时延高可靠的业务卸载方法及系统 | |
CN113191534A (zh) | 物流资源分配方法、装置、设备及存储介质 | |
CN114625474A (zh) | 容器迁移方法、装置、电子设备及存储介质 | |
CN111968190B (zh) | 游戏贴图的压缩方法、装置和电子设备 | |
CN115696405B (zh) | 一种兼顾公平性的计算任务卸载优化方法及系统 | |
CN115022893B (zh) | 多任务边缘计算系统中最小化总计算时间的资源分配方法 | |
CN118297113A (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 |