CN117349034B - 一种大语言模型分层加载方法及装置 - Google Patents
一种大语言模型分层加载方法及装置 Download PDFInfo
- Publication number
- CN117349034B CN117349034B CN202311650783.3A CN202311650783A CN117349034B CN 117349034 B CN117349034 B CN 117349034B CN 202311650783 A CN202311650783 A CN 202311650783A CN 117349034 B CN117349034 B CN 117349034B
- Authority
- CN
- China
- Prior art keywords
- model
- parameter
- empty
- memory
- loading
- 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
Links
- 238000011068 loading method Methods 0.000 title claims abstract description 92
- 238000000034 method Methods 0.000 claims abstract description 25
- 238000004364 calculation method Methods 0.000 claims abstract description 24
- 230000002457 bidirectional effect Effects 0.000 abstract description 3
- 238000012549 training Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 2
- 238000013136 deep learning model Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 description 1
- 239000010931 gold Substances 0.000 description 1
- 229910052737 gold Inorganic materials 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种大语言模型分层加载方法及装置,属于模型加载技术领域。方法包括:根据大语言模型的模型层次结构,在内存中创建对应的空模型,并确定空模型中参数层的元数据信息;依据空模型中参数层的元数据信息进行空间占用计算,并根据空间占用计算结果确定空模型中参数层的设备分布状况;基于空模型中参数层的设备分布状况,从磁盘中分层加载空模型的模型参数权重,并将分层加载的模型参数权重拷贝至空模型中各参数层对应的分布设备;释放已拷贝至分布设备的模型参数权重所占用的内存资源,完成大语言模型的分层加载。本发明可以大幅度提升模型的加载速度,减少模型的加载时间,实现了时间资源与空间资源的模型双向优化加载。
Description
技术领域
本发明涉及模型加载技术领域,尤其涉及一种大语言模型分层加载方法及装置。
背景技术
深度学习是目前主流的实现大语言模型的方式,在深度学习中,模型的训练和部署都需要定义并加载相应的模型,传统的深度学习模型参数量小,模型层次结构少,在模型加载时无需消耗太多时间。
得益于大语言模型的突破性进展,越来越多的研究人员投身于大模型相关的研究,于是便面临到一些问题,模型加载需要的时间越来越长,数十亿参数的模型需要100秒至200秒,更大的模型还需要更长的时间;模型加载需要的内存空间越来越大,一百亿浮点数参数的模型加载时需要80G的内存。采用传统的模型加载方式来进行训练和推理会花费大量时间在加载等待上,且硬件资源需求越来越高。为了缓解模型加载造成的时间开销问题以及内存需求问题,降低大模型研究门槛与研究成本,需要提供一种更加快速、资源消耗更少的模型加载方法。
发明内容
有鉴于此,本发明实施例提供了一种大语言模型分层加载方法及装置,用以解决现有模型加载方法内存消耗大,且模型加载时间较长的问题。
本发明采用的技术方案是:
第一方面,本发明提供了一种大语言模型分层加载方法,包括:
根据大语言模型的模型层次结构,在内存中创建对应的空模型,并确定所述空模型中参数层的元数据信息;
依据所述空模型中参数层的元数据信息进行空间占用计算,并根据空间占用计算结果确定空模型中参数层的设备分布状况;
基于空模型中参数层的设备分布状况,从磁盘中分层加载所述空模型的模型参数权重,并将分层加载的模型参数权重拷贝至空模型中各参数层对应的分布设备;
释放已拷贝至分布设备的模型参数权重所占用的内存资源,完成大语言模型的分层加载。
进一步地,所述根据大语言模型的模型层次结构,在内存中创建对应的空模型,并确定所述空模型中参数层的元数据信息,包括:
根据大语言模型的模型层次结构,在内存中创建与所述模型层次结构相对应的空模型,所述空模型不包含实际的模型参数权重;
在内存中进行空模型初始化操作,加载所述空模型中各参数层的元数据信息,所述元数据信息包括空模型中各参数层的参数维度和数据类型。
进一步地,所述依据所述空模型中参数层的元数据信息进行空间占用计算,并根据空间占用计算结果确定空模型中参数层的设备分布状况,包括:
依据所述空模型中各参数层的参数维度和数据类型,计算出各参数层的实际占用内存空间;
根据所述各参数层的实际占用内存空间,结合多个待加载设备的内存和显存信息,推断出每个参数层对应分布的待加载设备,得到空模型中参数层的设备分布状况。
进一步地,所述基于空模型中参数层的设备分布状况,从磁盘中分层加载所述空模型的模型参数权重,并将分层加载的模型参数权重拷贝至空模型中各参数层对应的分布设备,包括:
根据空模型中的参数层连接顺序,从磁盘中依次分层加载空模型的模型参数权重至内存中;
并将内存中分层加载的空模型的模型参数权重分别加载到空模型对应的参数层中,得到具有实际模型参数权重和已分配内存空间的实参数层;
根据空模型中参数层的设备分布状况,按照空模型中的参数层连接顺序依次将所述空模型的所有实参数层拷贝至对应的待加载设备。
进一步地,方法还包括:若空模型参数层对应分布的待加载设备为CPU,则不进行实参数层拷贝操作。
进一步地,所述释放已拷贝至分布设备的模型参数权重所占用的内存资源,完成大语言模型的分层加载,包括:
若实参数层已拷贝至待加载设备,则释放对应实参数层所占用的内存;
若空模型参数层对应分布的待加载设备为CPU,则不释放内存。
第二方面,本发明提供一种大语言模型分层加载装置,包括:
空模型创建模块,用于根据大语言模型的模型层次结构,在内存中创建对应的空模型,并确定所述空模型中参数层的元数据信息;
设备分布计算模块,用于依据所述空模型中参数层的元数据信息进行空间占用计算,并根据空间占用计算结果确定空模型中参数层的设备分布状况;
模型分层加载模块,用于基于空模型中参数层的设备分布状况,从磁盘中分层加载所述空模型的模型参数权重,并将分层加载的模型参数权重拷贝至空模型中各参数层对应的分布设备;
内存释放模块,用于释放已拷贝至分布设备的模型参数权重所占用的内存资源,完成大语言模型的分层加载。
综上所述,本发明的有益效果如下:
本发明提供的一种大语言模型分层加载方法,通过在内存中创建大语言模型对应的空模型,并确定空模型中参数层的元数据信息,不需要进行实际的内存分配和参数初始化,这样可依据空模型中参数层的元数据信息进行空间占用计算,从而确定各个参数层实际占用内存空间大小,可以计算、推断出模型各参数层具体应该如何分布在不同设备上,确定空模型中参数层的设备分布状况。最后基于空模型中参数层的设备分布状况,从磁盘中分层加载空模型的模型参数权重,并将分层加载的模型参数权重拷贝至空模型中各参数层对应的分布设备,实现大语言模型的分层加载,相比于传统的模型加载方法,可以大幅度提升模型的加载速度,减少模型的加载时间,实现了时间资源与空间资源的模型双向优化加载。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,这些均在本发明的保护范围内。
图1为本发明的一种大语言模型分层加载流程示意图;
图2为传统的模型加载流程示意图;
图3为本发明的大语言模型分层加载技术实现流程示意图;
图4为本发明的一种大语言模型分层加载结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。如果不冲突,本发明以及实施例中的各个特征可以相互结合,均在本发明的保护范围之内。
参照图2所示,在常规的深度学习模型训练或推理中,加载阶段可以大致分为如下几个步骤:1. 初始化模型;2. 从磁盘中加载已训练好的模型参数权重;3. 将磁盘加载的权重赋予模型;4. 移动到指定设备上。
这样的常规方法对于传统大小的模型来说没有什么问题,但是对于当下热门的大语言模型,这些步骤就存在一些瓶颈。首先,在步骤一中需要创建一个模型,并对模型参数进行初始化操作(例如:对Embedding层、Linear层进行随机初始化、高斯分布初始化、全零初始化等),这些操作需要耗费较多时间,并且在步骤三中被磁盘加载的权重覆盖掉(即没有任何实际意义);其次,在步骤一与步骤二中,都加载了一个全量的模型,这意味这,如果加载一个100亿Float类型参数的模型,需要消耗两倍的内存(80G)。基于上述现有技术存在的问题,本发明提供一种大语言模型分层加载方法及装置。本发明的详细实现过程见下列实施例。
实施例1:请参见图1和图3,图1为本发明实施例1中的一种大语言模型分层加载方法,图3是本发明实施例1中的大语言模型分层加载技术实现流程示意图。本实施例提供的方法包括以下步骤:
S1:根据大语言模型的模型层次结构,在内存中创建对应的空模型,并确定所述空模型中参数层的元数据信息;
S2:依据所述空模型中参数层的元数据信息进行空间占用计算,并根据空间占用计算结果确定空模型中参数层的设备分布状况;
S3:基于空模型中参数层的设备分布状况,从磁盘中分层加载所述空模型的模型参数权重,并将分层加载的模型参数权重拷贝至空模型中各参数层对应的分布设备;
S4:释放已拷贝至分布设备的模型参数权重所占用的内存资源,完成大语言模型的分层加载。
进一步地,在一个实施例中,本实施例步骤S1中的根据大语言模型的模型层次结构,在内存中创建对应的空模型,并确定所述空模型中参数层的元数据信息,包括但不限于以下子步骤:
S101:根据大语言模型的模型层次结构,在内存中创建与所述模型层次结构相对应的空模型。其中,空模型不包含实际的模型参数权重。
S102:在内存中进行空模型初始化操作,加载空模型中各参数层的元数据信息。其中,元数据信息包括空模型中各参数层的参数维度和数据类型。
在具体实施过程中,空模型创建过程中,仅需要确定参数的维度和数据类型。因为已定义的大语言模型层次结构是确定的,例如模型定义时,参数块中的一个线性层为Linear,其该参数层的元数据信息包含输入特征维度、输出特征维度和数据类型。空初始化与传统初始化的不同点仅仅是不分配参数的实际内存空间,在后续加载预训练模型(大语言模型)时再分配,而不需要进行实际的内存分配和参数初始化,这样可以根据参数维度和类型进行计算确定各个参数层实际占用内存空间大小,并进一步计算推断出模型各参数层具体应该如何分布在不同设备上。例如,对于内存占用40G的模型,单张24G显存的卡无法加载模型,但可以分布到4张24G的显卡上,每张显卡可以分配10G的显存,能满足模型加载的需求。
进一步地,在一个实施例中,本发明步骤S2中的依据所述空模型中参数层的元数据信息进行空间占用计算,并根据空间占用计算结果确定空模型中参数层的设备分布状况,包括但不限于以下子步骤:
S201:依据所述空模型中各参数层的参数维度和数据类型,计算出各参数层的实际占用内存空间。
S202:根据各参数层的实际占用内存空间,结合多个待加载设备的内存和显存信息,推断出每个参数层对应分布的待加载设备,得到空模型中参数层的设备分布状况。
进一步地,在一个实施例中,本发明步骤S3中的基于空模型中参数层的设备分布状况,从磁盘中分层加载所述空模型的模型参数权重,并将分层加载的模型参数权重拷贝至空模型中各参数层对应的分布设备,包括但不限于以下子步骤:
S301:根据空模型中的参数层连接顺序,从磁盘中依次分层加载空模型的模型参数权重至内存中。
S302:并将内存中分层加载的空模型的模型参数权重分别加载到空模型对应的参数层中,得到具有实际模型参数权重和已分配内存空间的实参数层。
S303:根据空模型中参数层的设备分布状况,按照空模型中的参数层连接顺序依次将所述空模型的所有实参数层拷贝至对应的待加载设备。
进一步地,在一个实施例中,上述步骤S3中还包括:若空模型参数层对应分布的待加载设备为CPU,则不进行实参数层拷贝操作,这样是确保将模型文件加载到GPU上,不影响CPU的正常运行。
在上述步骤S2和S3的实施过程中,本实施例加载磁盘的模型参数权重时,根据已推断出的参数层对应的待加载设备,在加载磁盘中单个预训练文件后,再将该预训练文件中包含的所有参数层移动到对应的设备上,当加载的权重移动到指定位置后,该部分预训练文件所占用的内存资源即可从内存中释放。采用本实施例的方法加载模型,其加载所需要的额外内存大小为最大的单个预训练文件,而不是一个全量模型所需的内存大小。例如,全量模型大小为40G,预训练文件拆分为10个,则需要的额外内存大小约为4G。
其中,参数层的实际占用内存空间计算公式如下式所示:
式中,m为内存占用大小(B),a为输入特征维度,b为输出特征维度,c为数据类型位数大小(Float32位,bfloat16位)。对于一个输入维度4096,输出维度10240,数据类型位Float型的线性层,在不包含偏置项的情况下,占用内存大小约为4096*10240*(32/8)/(2^20)=160MB。
进一步地,所述释放已拷贝至分布设备的模型参数权重所占用的内存资源,完成大语言模型的分层加载,包括:
若实参数层已拷贝至待加载设备,则释放对应实参数层所占用的内存;
若空模型参数层对应分布的待加载设备为CPU,则不释放内存。
具体的,参照图3所示,本实施例的模型分层加载方法具体技术实现流程如下:
(1)定义大语言模型层次结构,包含模型的预训练参照权重文件。
(2)在模型进行初始化时仅加载参数层的维度、数据类型与设备信息等元数据信息,不对实际参数进行任何初始化操作,不实际分配参数所需的内存空间,等同于加载一个空模型,空模型的初始化同样在内存中执行,其初始化过程主要实现所有参数元数据的初始化。
(3)根据空模型中的元数据信息,结合真实物理设备的内存、显存情况,推断并设置每个参数层置于哪个设备上。
(4)从磁盘中加载流程(1)所定义的模型的预训练参数权重文件至内存中(预训练权重文件通常有多个,每个文件包含模型一部分,而不是一个文件包含整个模型)。
(5)将流程(3)加载的参数权重加载至流程(2)所述的空模型中,空模型中相应的参数层从仅含有元数据而不含实际参数的空参数层变为含有实际参数和已分配内存空间的实参数层。
(6)将流程(4)中加载的空模型实参数层拷贝至相应参数层所指定的设备上,如GPU中;若参数层所指定设备为CPU,则不需要进行拷贝操作。
(7)释放内存中已拷贝至CPU以外设备的实参数层权重,若实参数层所指定的设备为CPU,则不释放内存。
(8)重复流程(3)至流程(6)直到模型参数权重文件全部加载完成且模型各参数层均已拷贝至对应设备上。
(9)进行大语言模型的训练或推理。
本发明实现的模型分层加载方法在模型参数量极为庞大时有着明显的速度提升,如在百亿级参数的模型(Moss-16B)上,模型包含数十个参数块,数百个参数层,如果采用传统模型加载方式,加载耗时在Intel(R) Xeon(R) Gold 6226R CPU、512GB内存的服务器上需要300秒左右,而采用本发明实现的方法仅仅需要30秒,与传统方法相比达到了10倍的提升。并且在模型参数量进一步增大时,加载所消耗的时间不会显著增加(采用传统方法,加载70亿模型需要150秒左右,加载130亿模型需要200秒以上;采用本发明实现的方法,加载70亿模型需要20秒左右,加载130亿模型也只需要20秒左右,耗时几乎不增加)。除此之外,加载所需要的额外内存大小仅为最大的参数文件大小,实现了时间资源与空间资源的双向优化,这对于科研人员进行大模型相关研究提供有力帮助,且为开发人员进行大模型相关开发提供更多选择和思路。
实施例2:参照图4所示,本实施例提供一种大语言模型分层加载装置,包括:
空模型创建模块,用于根据大语言模型的模型层次结构,在内存中创建对应的空模型,并确定所述空模型中参数层的元数据信息;
设备分布计算模块,用于依据所述空模型中参数层的元数据信息进行空间占用计算,并根据空间占用计算结果确定空模型中参数层的设备分布状况;
模型分层加载模块,用于基于空模型中参数层的设备分布状况,从磁盘中分层加载所述空模型的模型参数权重,并将分层加载的模型参数权重拷贝至空模型中各参数层对应的分布设备;
内存释放模块,用于释放已拷贝至分布设备的模型参数权重所占用的内存资源,完成大语言模型的分层加载。
本实施例的大语言模型分层加载装置,通过空模型创建模块在内存中创建大语言模型对应的空模型,并确定空模型中参数层的元数据信息,不需要进行实际的内存分配和参数初始化,这样能使得设备分布计算模块依据空模型中参数层的元数据信息进行空间占用计算,从而确定各个参数层实际占用内存空间大小,可以计算、推断出模型各参数层具体应该如何分布在不同设备上,确定空模型中参数层的设备分布状况。最后模型分层加载模块基于空模型中参数层的设备分布状况,从磁盘中分层加载空模型的模型参数权重,并将分层加载的模型参数权重拷贝至空模型中各参数层对应的分布设备,实现大语言模型的分层加载,并在模型加载完成后通过内存释放模块释放模型参数权重所占用的内存资源。相比于传统的模型加载方式,可以大幅度提升模型的加载速度,减少模型的加载时间,实现了时间资源与空间资源的模型双向优化加载。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (4)
1.一种大语言模型分层加载方法,其特征在于,包括:
根据大语言模型的模型层次结构,在内存中创建对应的空模型,并确定所述空模型中参数层的元数据信息;包括:
根据大语言模型的模型层次结构,在内存中创建与所述模型层次结构相对应的空模型,所述空模型不包含实际的模型参数权重;
在内存中进行空模型初始化操作,加载所述空模型中各参数层的元数据信息,所述元数据信息包括空模型中各参数层的参数维度和数据类型;
依据所述空模型中参数层的元数据信息进行空间占用计算,并根据空间占用计算结果确定空模型中参数层的设备分布状况;包括:
依据所述空模型中各参数层的参数维度和数据类型,计算出各参数层的实际占用内存空间;
根据所述各参数层的实际占用内存空间,结合多个待加载设备的内存和显存信息,推断出每个参数层对应分布的待加载设备,得到空模型中参数层的设备分布状况;
基于空模型中参数层的设备分布状况,从磁盘中分层加载所述空模型的模型参数权重,并将分层加载的模型参数权重拷贝至空模型中各参数层对应的分布设备;包括:
根据空模型中的参数层连接顺序,从磁盘中依次分层加载空模型的模型参数权重至内存中;
并将内存中分层加载的空模型的模型参数权重分别加载到空模型对应的参数层中,得到具有实际模型参数权重和已分配内存空间的实参数层;
根据空模型中参数层的设备分布状况,按照空模型中的参数层连接顺序依次将所述空模型的所有实参数层拷贝至对应的待加载设备;
释放已拷贝至分布设备的模型参数权重所占用的内存资源,完成大语言模型的分层加载。
2.根据权利要求1所述的大语言模型分层加载方法,其特征在于,还包括:若空模型参数层对应分布的待加载设备为CPU,则不进行实参数层拷贝操作。
3.根据权利要求1所述的大语言模型分层加载方法,其特征在于,所述释放已拷贝至分布设备的模型参数权重所占用的内存资源,完成大语言模型的分层加载,包括:
若实参数层已拷贝至待加载设备,则释放对应实参数层所占用的内存;
若空模型参数层对应分布的待加载设备为CPU,则不释放内存。
4.一种大语言模型分层加载装置,其特征在于,包括:
空模型创建模块,用于根据大语言模型的模型层次结构,在内存中创建对应的空模型,并确定所述空模型中参数层的元数据信息;包括:
根据大语言模型的模型层次结构,在内存中创建与所述模型层次结构相对应的空模型,所述空模型不包含实际的模型参数权重;
在内存中进行空模型初始化操作,加载所述空模型中各参数层的元数据信息,所述元数据信息包括空模型中各参数层的参数维度和数据类型;
设备分布计算模块,用于依据所述空模型中参数层的元数据信息进行空间占用计算,并根据空间占用计算结果确定空模型中参数层的设备分布状况;包括:
依据所述空模型中各参数层的参数维度和数据类型,计算出各参数层的实际占用内存空间;
根据所述各参数层的实际占用内存空间,结合多个待加载设备的内存和显存信息,推断出每个参数层对应分布的待加载设备,得到空模型中参数层的设备分布状况;
模型分层加载模块,用于基于空模型中参数层的设备分布状况,从磁盘中分层加载所述空模型的模型参数权重,并将分层加载的模型参数权重拷贝至空模型中各参数层对应的分布设备;包括:
根据空模型中的参数层连接顺序,从磁盘中依次分层加载空模型的模型参数权重至内存中;
并将内存中分层加载的空模型的模型参数权重分别加载到空模型对应的参数层中,得到具有实际模型参数权重和已分配内存空间的实参数层;
根据空模型中参数层的设备分布状况,按照空模型中的参数层连接顺序依次将所述空模型的所有实参数层拷贝至对应的待加载设备;
内存释放模块,用于释放已拷贝至分布设备的模型参数权重所占用的内存资源,完成大语言模型的分层加载。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311650783.3A CN117349034B (zh) | 2023-12-05 | 2023-12-05 | 一种大语言模型分层加载方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311650783.3A CN117349034B (zh) | 2023-12-05 | 2023-12-05 | 一种大语言模型分层加载方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117349034A CN117349034A (zh) | 2024-01-05 |
CN117349034B true CN117349034B (zh) | 2024-02-23 |
Family
ID=89371414
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311650783.3A Active CN117349034B (zh) | 2023-12-05 | 2023-12-05 | 一种大语言模型分层加载方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117349034B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10658074B1 (en) * | 2011-04-11 | 2020-05-19 | Zeus Data Solutions, Inc. | Medical transcription with dynamic language models |
CN111459661A (zh) * | 2020-03-16 | 2020-07-28 | 湖北亿咖通科技有限公司 | 一种神经网络模型参数的更新方法 |
CN111782402A (zh) * | 2020-07-17 | 2020-10-16 | Oppo广东移动通信有限公司 | 数据处理方法、装置以及电子设备 |
CN112070235A (zh) * | 2020-09-08 | 2020-12-11 | 北京小米松果电子有限公司 | 一种深度学习框架的异常定位方法、装置及存储介质 |
CN114020450A (zh) * | 2021-10-08 | 2022-02-08 | 深圳云天励飞技术股份有限公司 | 一种神经网络模型执行方法、装置、系统、电子设备 |
CN114138457A (zh) * | 2021-10-26 | 2022-03-04 | 杭州涿溪脑与智能研究所 | 面向深度学习端侧推理的内存分配方法及装置 |
CN114489985A (zh) * | 2022-01-26 | 2022-05-13 | 阿里云计算有限公司 | 数据处理方法、设备及存储介质 |
CN115292030A (zh) * | 2022-06-29 | 2022-11-04 | 浪潮云信息技术股份公司 | 一种云计算环境下物理内存自适应方法及系统 |
CN116860469A (zh) * | 2023-05-16 | 2023-10-10 | 阿里巴巴(中国)有限公司 | 模型服务系统和方法、服务器、计算设备和存储介质 |
CN116975192A (zh) * | 2023-07-21 | 2023-10-31 | 上海数珩信息科技股份有限公司 | 一种基于树形结构的大语言模型运算链装置及方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220113790A1 (en) * | 2021-11-16 | 2022-04-14 | Kshitij Arun Doshi | Intent-driven power management |
-
2023
- 2023-12-05 CN CN202311650783.3A patent/CN117349034B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10658074B1 (en) * | 2011-04-11 | 2020-05-19 | Zeus Data Solutions, Inc. | Medical transcription with dynamic language models |
CN111459661A (zh) * | 2020-03-16 | 2020-07-28 | 湖北亿咖通科技有限公司 | 一种神经网络模型参数的更新方法 |
CN111782402A (zh) * | 2020-07-17 | 2020-10-16 | Oppo广东移动通信有限公司 | 数据处理方法、装置以及电子设备 |
CN112070235A (zh) * | 2020-09-08 | 2020-12-11 | 北京小米松果电子有限公司 | 一种深度学习框架的异常定位方法、装置及存储介质 |
CN114020450A (zh) * | 2021-10-08 | 2022-02-08 | 深圳云天励飞技术股份有限公司 | 一种神经网络模型执行方法、装置、系统、电子设备 |
CN114138457A (zh) * | 2021-10-26 | 2022-03-04 | 杭州涿溪脑与智能研究所 | 面向深度学习端侧推理的内存分配方法及装置 |
CN114489985A (zh) * | 2022-01-26 | 2022-05-13 | 阿里云计算有限公司 | 数据处理方法、设备及存储介质 |
CN115292030A (zh) * | 2022-06-29 | 2022-11-04 | 浪潮云信息技术股份公司 | 一种云计算环境下物理内存自适应方法及系统 |
CN116860469A (zh) * | 2023-05-16 | 2023-10-10 | 阿里巴巴(中国)有限公司 | 模型服务系统和方法、服务器、计算设备和存储介质 |
CN116975192A (zh) * | 2023-07-21 | 2023-10-31 | 上海数珩信息科技股份有限公司 | 一种基于树形结构的大语言模型运算链装置及方法 |
Non-Patent Citations (2)
Title |
---|
"ReCA: An Efficient Reconfigurable Cache Architecture for Storage Systems with Online Workload Characterization";Reza Salkhordeh;《IEEE Transactions on Parallel and Distributed Systems》;第29卷(第7期);第1605-1620页 * |
"面向大规模数据的工业过程分布式并行建模及应用";姚乐;《中国博士学位论文全文数据库 信息科技辑》(2019年第08期);第I138-32页 * |
Also Published As
Publication number | Publication date |
---|---|
CN117349034A (zh) | 2024-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7430744B2 (ja) | 機械学習モデルを改良して局所性を改善させること | |
CN104035751B (zh) | 基于多图形处理器的数据并行处理方法及装置 | |
CN108229670A (zh) | 基于fpga的深度神经网络加速平台 | |
US20220121903A1 (en) | Method of performing splitting in neural network model by means of multi-core processor, and related product | |
US11182159B2 (en) | Vector reductions using shared scratchpad memory | |
CN116401502B (zh) | 一种基于NUMA系统特性优化Winograd卷积的方法及装置 | |
CN116635936A (zh) | 用于支持集成电路装置中的深度学习加速器的存储器配置 | |
CN117349034B (zh) | 一种大语言模型分层加载方法及装置 | |
CN116680063B (zh) | 任务调度方法、装置、计算系统、电子设备和存储介质 | |
CN117011118A (zh) | 模型参数更新方法、装置、计算机设备以及存储介质 | |
CN113887730A (zh) | 量子模拟器实现方法、装置、相关设备以及量子模拟方法 | |
KR20240011778A (ko) | 뉴럴 네트워크들에서의 동적 활성화 희소성 | |
Chang et al. | Guest editorial: IEEE transactions on computers special section on emerging non-volatile memory technologies: From devices to architectures and systems | |
CN113377546B (zh) | 通信避免方法、装置、电子设备和存储介质 | |
CN111194451A (zh) | 门控激活单元运算的并行执行 | |
KR102576762B1 (ko) | 인 메모리 연산에 기반하여 dnn 종단 간 학습 및 추론을 지원하는 가속기 구조 | |
Fu et al. | Multi-level Storage Optimization for Intermediate Data in AI Model Training | |
US20240037412A1 (en) | Neural network generation device, neural network control method, and software generation program | |
KR20240048196A (ko) | 체크포인팅 방법 및 장치 | |
KR20240026081A (ko) | 기계 학습 기반 행렬 연산 선택기를 위한 시스템 및 방법 | |
CN118140224A (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 |