CN117992220A - 一种基于改进ZeRO-Offload技术的大模型训练方法 - Google Patents

一种基于改进ZeRO-Offload技术的大模型训练方法 Download PDF

Info

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
Application number
CN202410121438.9A
Other languages
English (en)
Other versions
CN117992220B (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.)
Xiamen Yuanting Information Technology Co ltd
Original Assignee
Xiamen Yuanting Information Technology Co ltd
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 Xiamen Yuanting Information Technology Co ltd filed Critical Xiamen Yuanting Information Technology Co ltd
Priority to CN202410121438.9A priority Critical patent/CN117992220B/zh
Publication of CN117992220A publication Critical patent/CN117992220A/zh
Application granted granted Critical
Publication of CN117992220B publication Critical patent/CN117992220B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

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

Abstract

本发明提供一种基于改进ZeRO‑Offload技术的大模型训练方法,通过优化内存使用、提高计算效率以及优化数据加载和并行计算,有效处理大规模模型训练时的内存和计算资源挑战;使用ZeRO技术对模型参数进行压缩和去重,通过量化、哈夫曼编码等操作减少参数冗余,降低显存消耗;利用Offload技术将计算任务分配给可扩展的计算资源,将计算密集型任务如前向传播、反向传播等迁移到GPU进行计算,实现计算能力的线性扩展;优化数据加载和并行计算,通过数据预处理、批量处理等方式提高数据加载效率;通过多线程、多进程等方式实现并行计算,进一步提高训练速度;本发明还提出一种动态显存分配策略,根据当前显存使用情况和任务需求,动态调整模型参数的存储方式和计算任务的分配,以最大化利用显存资源。

Description

一种基于改进ZeRO-Offload技术的大模型训练方法
技术领域
本申请涉及网络技术领域,尤其涉及一种基于改进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任一项所述的方法。
CN202410121438.9A 2024-01-29 2024-01-29 一种基于改进ZeRO-Offload技术的大模型训练方法 Active CN117992220B (zh)

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)

* Cited by examiner, † Cited by third party
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 中兴通讯股份有限公司 网络模型训练方法、装置和计算机可读存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
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