发明内容
本发明的主要目的在于提供了一种文本生成方法、装置、设备及存储介质,旨在解决如何进行文本生成模型的压缩,以实现在小容量的硬件上运行压缩后的模型的技术问题。
为实现上述目的,本发明提供了一种文本生成方法,所述文本生成方法包括以下步骤:
获取预设硬件对应的配置参数,并获取初始文本生成模型的模型存储空间;
根据所述配置参数和所述模型存储空间对所述初始文本生成模型进行压缩处理,获得压缩后的文本生成模型;
将初始文本输入至所述压缩后的文本生成模型中,获得目标文本。
可选地,所述根据所述配置参数和所述模型存储空间对所述初始文本生成模型进行压缩处理,获得压缩后的文本生成模型的步骤,具体包括:
确定所述配置参数中的显卡容量和显卡数量;
根据所述显卡容量、所述显卡数量以及所述模型存储空间确定压缩方式;
通过所述压缩方式对所述初始文本生成模型进行压缩处理,获得压缩后的文本生成模型。
可选地,所述根据所述显卡容量、所述显卡数量以及所述模型存储空间确定压缩方式的步骤,具体包括:
根据所述显卡容量和所述模型存储空间判断是否需要对所述初始文本生成模型进行压缩处理;
若是,则在所述显卡数量为预设数量时,确定所述压缩方式为直接压缩方式;
在所述显卡数量大于所述预设数量时,确定所述压缩方式为分块压缩方式。
可选地,所述通过所述压缩方式对所述初始文本生成模型进行压缩处理,获得压缩后的文本生成模型的步骤,具体包括:
在所述压缩方式为直接压缩方式时,确定所述初始文本生成模型中的参数信息;
根据所述显卡容量和所述模型存储空间确定参数长度;
根据所述参数长度对所述参数信息进行调整,获得压缩后的文本生成模型。
可选地,所述通过所述压缩方式对所述初始文本生成模型进行压缩处理,获得压缩后的文本生成模型的步骤,具体包括:
在所述压缩方式为分块压缩方式时,确定输入至所述初始文本生成模型的初始文本对应的数据格式;
根据所述数据格式确定模型拆分方式,所述模型拆分方式包括:按行拆分方式和按列拆分方式;
根据所述按行拆分方式或所述按列拆分方式对所述初始文本生成模型进行压缩处理,获得压缩后的文本生成模型。
可选地,所述根据所述按行拆分方式或所述按列拆分方式对所述初始文本生成模型进行压缩处理,获得压缩后的文本生成模型的步骤,具体包括:
根据所述按行拆分方式或所述按列拆分方式对所述初始文本生成模型进行拆分处理,获得若干个拆分后的文本生成模型;
确定各拆分后的文本生成模型对应的拆分模型存储空间;
根据所述拆分模型存储空间和所述显卡容量为所述各拆分后的文本生成模型分配对应的显卡,并将各显卡对应的拆分后的文本生成模型进行整合,获得压缩后的文本生成模型。
可选地,所述根据所述拆分模型存储空间和所述显卡容量为所述各拆分后的文本生成模型分配对应的显卡,并将各显卡对应的拆分后的文本生成模型进行整合,获得压缩后的文本生成模型的步骤,具体包括:
根据所述拆分模型存储空间和所述显卡容量为所述各拆分后的文本生成模型分配对应的显卡;
根据所述拆分模型存储空间和所述显卡容量判断是否需要对所述各拆分后的文本生成模型进行微调处理;
若是,则从所述各拆分后的文本生成模型中选取对应的微调文本生成模型;
对所述微调文本生成模型进行微调处理,获得各显卡对应的目标文本生成模型;
将所述各显卡对应的目标文本生成模型进行整合,获得压缩后的文本生成模型。
可选地,所述根据所述拆分模型存储空间和所述显卡容量判断是否需要对所述各拆分后的文本生成模型进行微调处理的步骤,具体包括:
确定所述各拆分后的文本生成模型对应的目标显卡;
从所述显卡容量中选取所述目标显卡对应的目标显卡容量;
在所述拆分模型存储空间和所述目标显卡容量之间的差值大于预设阈值时,判定需要对所述目标显卡对应的目标拆分后的文本生成模型进行微调处理。
可选地,所述对所述微调文本生成模型进行微调处理,获得各显卡对应的目标文本生成模型的步骤,具体包括:
确定需添加的网络层;
确定所述若干个拆分后的文本生成模型中除所述需添加的网络层之外的剩余网络层;
对所述需添加的网络层进行训练,并对所述剩余网络层进行冻结,获得各显卡对应的目标文本生成模型。
可选地,所述将初始文本输入至所述压缩后的文本生成模型中,获得目标文本的步骤,具体包括:
对所述压缩后的文本生成模型中的参数格式进行格式转换,获得转换后的文本生成模型;
将初始文本输入至所述转换后的文本生成模型中,获得目标文本。
可选地,所述对所述压缩后的文本生成模型中的参数格式进行格式转换,获得转换后的文本生成模型的步骤,具体包括:
对所述压缩后的文本生成模型中的参数格式进行格式转换,获得加速引擎适应的初始参数格式;
对所述初始参数格式进行格式转换,获得推理引擎适应的目标参数格式,获得转换后的文本生成模型。
此外,为实现上述目的,本发明还提供一种文本生成装置,所述文本生成装置包括:
信息获取模块,用于获取预设硬件对应的配置参数,并获取初始文本生成模型的模型存储空间;
模型压缩模块,用于根据所述配置参数和所述模型存储空间对所述初始文本生成模型进行压缩处理,获得压缩后的文本生成模型;
文本生成模块,用于将初始文本输入至所述压缩后的文本生成模型中,获得目标文本。
可选地,所述模型压缩模块,还用于确定所述配置参数中的显卡容量和显卡数量;根据所述显卡容量、所述显卡数量以及所述模型存储空间确定压缩方式;通过所述压缩方式对所述初始文本生成模型进行压缩处理,获得压缩后的文本生成模型。
可选地,所述模型压缩模块,还用于根据所述显卡容量和所述模型存储空间判断是否需要对所述初始文本生成模型进行压缩处理;若是,则在所述显卡数量为预设数量时,确定所述压缩方式为直接压缩方式;在所述显卡数量大于所述预设数量时,确定所述压缩方式为分块压缩方式。
可选地,所述模型压缩模块,还用于在所述压缩方式为直接压缩方式时,确定所述初始文本生成模型中的参数信息;根据所述显卡容量和所述模型存储空间确定参数长度;根据所述参数长度对所述参数信息进行调整,获得压缩后的文本生成模型。
可选地,所述模型压缩模块,还用于在所述压缩方式为分块压缩方式时,确定输入至所述初始文本生成模型的初始文本对应的数据格式;根据所述数据格式确定模型拆分方式,所述模型拆分方式包括:按行拆分方式和按列拆分方式;根据所述按行拆分方式或所述按列拆分方式对所述初始文本生成模型进行压缩处理,获得压缩后的文本生成模型。
可选地,所述模型压缩模块,还用于根据所述按行拆分方式或所述按列拆分方式对所述初始文本生成模型进行拆分处理,获得若干个拆分后的文本生成模型;确定各拆分后的文本生成模型对应的拆分模型存储空间;根据所述拆分模型存储空间和所述显卡容量为所述各拆分后的文本生成模型分配对应的显卡,并将各显卡对应的拆分后的文本生成模型进行整合,获得压缩后的文本生成模型。
可选地,所述模型压缩模块,还用于根据所述拆分模型存储空间和所述显卡容量为所述各拆分后的文本生成模型分配对应的显卡;根据所述拆分模型存储空间和所述显卡容量判断是否需要对所述各拆分后的文本生成模型进行微调处理;若是,则从所述各拆分后的文本生成模型中选取对应的微调文本生成模型;对所述微调文本生成模型进行微调处理,获得各显卡对应的目标文本生成模型;将所述各显卡对应的目标文本生成模型进行整合,获得压缩后的文本生成模型。
此外,为实现上述目的,本发明还提出一种文本生成设备,所述文本生成设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的文本生成程序,所述文本生成程序配置为实现如上文所述的文本生成方法的步骤。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有文本生成程序,所述文本生成程序被处理器执行时实现如上文所述的文本生成方法的步骤。
本发明通过获取预设硬件对应的配置参数,并获取初始文本生成模型的模型存储空间,然后根据配置参数和模型存储空间对初始文本生成模型进行压缩处理,获得压缩后的文本生成模型,再将初始文本输入至压缩后的文本生成模型中,获得目标文本。本发明根据配置参数和模型存储空间对初始文本生成模型进行压缩处理,能够根据预设硬件对应的配置参数对初始文本生成模型中的权重参数进行压缩,得到压缩后的文本生成模型,相较于现有的文本生成模型的千亿级的权重参数,本发明上述方式能够对初始文本生成模型进行压缩处理,进一步对初始文本生成模型中的权重系数进行压缩,得到压缩后的文本生成模型,以实现在小容量的硬件上运行压缩后的模型。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的文本生成设备结构示意图。
如图1所示,该文本生成设备可以包括:处理器1001,例如中央处理器(CentralProcessing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(Wireless-Fidelity,Wi-Fi)接口)。存储器1005可以是高速的随机存取存储器(RandomAccess Memory,RAM),也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对文本生成设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及文本生成程序。
在图1所示的文本生成设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明文本生成设备中的处理器1001、存储器1005可以设置在文本生成设备中,所述文本生成设备通过处理器1001调用存储器1005中存储的文本生成程序,并执行本发明实施例提供的文本生成方法。
基于上述文本生成设备,本发明实施例提供了一种文本生成方法,参照图2,图2为本发明文本生成方法第一实施例的流程示意图。
本实施例中,所述文本生成方法包括以下步骤:
步骤S10:获取预设硬件对应的配置参数,并获取初始文本生成模型的模型存储空间;
需要说明的是,本实施例的执行主体可以是一种具有数据处理、网络通信以及程序运行功能的计算服务设备,例如手机、平板电脑、个人电脑等,或者是一种能够实现上述功能的电子设备或文本生成设备。以下以所述文本生成设备为例,对本实施例及下述各实施例进行说明。
可理解的是,本实施例中的预设硬件可以是显卡、CPU等。配置参数是指预设硬件对应的参数,例如,显卡对应的配置参数可以是显卡容量、显卡型号等,CPU对应的配置参数可以是CPU型号、处理速度等。
应理解的是,初始文本生成模型是指可以在预设硬件上运行的,未经过任何处理的文本生成模型,例如,codegeex大模型、Seq2Seq模型、SeqGAN模型等,该初始文本生成模型可以自动生成文本。模型存储空间是指初始文本模型中的参数量对应的存储空间,例如,初始文本模型的参数量为1M,参数是32位存储,初始文本生成模型对应的存储空间为:1M*32bit=32Mb=4MB。
步骤S20:根据所述配置参数和所述模型存储空间对所述初始文本生成模型进行压缩处理,获得压缩后的文本生成模型;
可理解的是,可根据配置参数和模型存储空间判断是否需要对初始文本生成模型进行压缩处理,具体地,可确定配置参数中的显卡容量,在显卡容量大于或等于模型存储空间时,此时不需要进行压缩处理,在该显卡上即可运行该初始文本生成模型;在显卡容量小于模型存储空间时,需要进行压缩处理,具体可对初始文本生成模型中的参数的长度缩短,或对初始文本模型中的各网络层进行拆分,获得压缩后的文本生成模型。
步骤S30:将初始文本输入至所述压缩后的文本生成模型中,获得目标文本。
在具体实现中,初始文本可以是一段文本,将该段文本输入至压缩后的文本生成模型中,可得到与该段文本相关的目标文本;初始文本还可以是首段文本和末段文本,将上述首段文本和末段文本输入至压缩后的文本生成模型中,可得到在上述首段文本和末段文本之间的目标文本。本实施例对于初始文本的字数和内容不做具体限制。
本实施例通过获取预设硬件对应的配置参数,并获取初始文本生成模型的模型存储空间,然后根据配置参数和模型存储空间对初始文本生成模型进行压缩处理,获得压缩后的文本生成模型,再将初始文本输入至压缩后的文本生成模型中,获得目标文本。本实施例根据配置参数和模型存储空间对初始文本生成模型进行压缩处理,能够根据预设硬件对应的配置参数对初始文本生成模型中的权重参数进行压缩,得到压缩后的文本生成模型,相较于现有的文本生成模型的千亿级的权重参数,本实施例上述方式能够对初始文本生成模型进行压缩处理,进一步对初始文本生成模型中的权重系数进行压缩,得到压缩后的文本生成模型,以实现在小容量的硬件上运行压缩后的模型。
参考图3,图3为本发明文本生成方法第二实施例的流程示意图。
基于上述第一实施例,在本实施例中,所述步骤S20包括:
步骤S201:确定所述配置参数中的显卡容量和显卡数量;
可理解的是,可确定配置参数中的与显卡相关的参数,具体可以是显卡的数量和各显卡对应的显卡容量。
步骤S202:根据所述显卡容量、所述显卡数量以及所述模型存储空间确定压缩方式;
应理解的是,可根据显卡容量、显卡数量以及模型存储空间确定压缩方式,具体可先根据显卡容量和模型存储空间判断初始文本生成模型是否需要压缩,判断方式可参照上述第一实施例,在初始文本生成模型需要压缩时,可根据显卡数量确定初始文本生成模型对应的压缩方式。
进一步地,为了精确确定初始文本生成模型对应的压缩方式,在本实施例中,所述步骤S202包括:根据所述显卡容量和所述模型存储空间判断是否需要对所述初始文本生成模型进行压缩处理;若是,则在所述显卡数量为预设数量时,确定所述压缩方式为直接压缩方式;在所述显卡数量大于所述预设数量时,确定所述压缩方式为分块压缩方式。
可理解的是,可根据显卡容量和模型存储空间判断是否需要对初始文本生成模型进行压缩处理,具体地,在存在任一显卡对应的显卡容量远大于模型存储空间时,说明在该显卡上能够对初始文本生成模型进行训练及推导,此时不需要对初始文本生成模型进行压缩处理;在不存在任一显卡对应的显卡容量远大于模型存储空间时,需要对初始文本模型进行压缩处理。
应理解的是,在需要对初始文本生成模型进行压缩处理时,在显卡数量为预设数量时,可设置预设数量为1个,在显卡数量为1个时,只能在一个显卡上对初始文本生成模型进行处理,此时压缩方式为直接压缩方式,可以对初始文本生成模型中的权重参数进行压缩,具体可对权重参数的长度进行压缩。在显卡数量大于1个时,说明可以在多个显卡上对初始文本生成模型进行处理,此时压缩方式为分块压缩方式,即对初始文本生成模型进行分块,每一块分块后的初始文本生成模型对应一显卡,即各个显卡可对各块初始文本生成模型进行处理。
在具体实现中,压缩方式可以为直接压缩方式结合分块压缩方式,即同时包含两种压缩方式,具体地,可先进行分块压缩,如果在进行分块压缩后,存在显卡容量小于对应的分块后的初始文本生成模型的模型存储空间,则说明该显卡不能够处理对应的分块后的初始文本生成模型,还需进行直接压缩,直至能够处理对应的分块后的初始文本生成模型。
步骤S203:通过所述压缩方式对所述初始文本生成模型进行压缩处理,获得压缩后的文本生成模型。
在具体实现中,可通过上述直接压缩方式或分块压缩方式对初始文本生成模型进行压缩处理,在压缩方式为直接压缩方式时,得到的压缩后的文本生成模型为1个;在压缩方式为分块压缩方式时,得到的压缩后的文本生成模型可为若干个;在压缩方式为分块压缩方式和直接压缩方式时,得到的 压缩后的文本生成模型也可为若干个。
进一步地,为了实现通过直接压缩方式对初始文本生成模型进行压缩,在本实施例中,所述步骤S203包括:在所述压缩方式为直接压缩方式时,确定所述初始文本生成模型中的参数信息;根据所述显卡容量和所述模型存储空间确定参数长度;根据所述参数长度对所述参数信息进行调整,获得压缩后的文本生成模型。
可理解的是,在压缩方式为直接压缩方式时,可确定初始文本生成模型中的参数信息,参数信息可包括权重参数量和权重参数长度。可根据显卡容量和模型存储空间确定参数长度,具体地,参数长度可以是显卡容量除以权重参数量,还可以是显卡容量除以权重参数量后,减去预设值后得到的值,例如,显卡容量为32MB,权重参数量为16M,此时参数长度可以是16位,也可以是8位。此时可将初始文本生成模型中的权重参数长度调整为上述参数长度,得到压缩后的文本生成模型。
进一步地,为了实现通过分块压缩方式对初始文本生成模型进行压缩,在本实施例中,所述步骤S203包括:在所述压缩方式为分块压缩方式时,确定输入至所述初始文本生成模型的初始文本对应的数据格式;根据所述数据格式确定模型拆分方式,所述模型拆分方式包括:按行拆分方式和按列拆分方式;根据所述按行拆分方式或所述按列拆分方式对所述初始文本生成模型进行压缩处理,获得压缩后的文本生成模型。
应理解的是,在压缩方式为分块压缩方式时,可确定输入至初始文本生成模型的初始文本对应的数据格式,数据格式可包括行向存储的数据格式,如稀疏矩阵等,还可包括列向存储的数据格式,如关系型数据库中的表格数据等,对于行向存储的数据格式,对应的模型拆分方式可为按行拆分方式,对于列向存储的数据格式,对应的模型拆分方式可为按列拆分方式。
在具体实现中,按行拆分方式的优势在于可以根据数据的逻辑结构进行拆分,使得各显卡只需要处理其负责的行数据,从而减少了显卡之间的通信开销,此外,按行拆分方式对于处理稀疏数据时尤其有效,因为稀疏数据中大部分元素为零,可以通过拆分处理来减少计算量。按列拆分方式的优势在于可以极大地减少网络传输数据量,因为只有需要计算的列数据会被传输,而其他列数据则可以保留在原地,同时,由于现代计算机存储器的访问速度非常快,按列拆分可以使每个显卡只需要加载自己需要的列数据,从而提高了整个系统的计算效率。参照图4,图4为本发明文本生成方法一实施例的按行拆分方式和按列拆分方式的示意图。如图4所示,Forward表示向前,Backward表示向后,数据即为初始文本,上面为按列拆分方式,可将初始文本生成模型按行拆分,再将拆分后的模型分配至显卡,如显卡-0,显卡-1……显卡-N,初始文本,即图4中的数据可通过每个显卡上的拆分后的模型,得到目标文本。图4的下面为按行拆分方式,可将初始文本生成模型按列拆分,再将拆分后的模型分配至显卡,如显卡-0,显卡-1……显卡-N。
进一步地,为了获得压缩后的文本生成模型,在本实施例中,所述根据所述按行拆分方式或所述按列拆分方式对所述初始文本生成模型进行压缩处理,获得压缩后的文本生成模型的步骤,具体包括:根据所述按行拆分方式或所述按列拆分方式对所述初始文本生成模型进行拆分处理,获得若干个拆分后的文本生成模型;确定各拆分后的文本生成模型对应的拆分模型存储空间;根据所述拆分模型存储空间和所述显卡容量为所述各拆分后的文本生成模型分配对应的显卡,并将各显卡对应的拆分后的文本生成模型进行整合,获得压缩后的文本生成模型。
可理解的是,可根据按行拆分方式或按列拆分方式对初始文本生成模型进行拆分处理,获得若干个拆分后的文本生成模型,具体地,可先根据初始文本生成模型对应的存储空间和显卡容量确定对应的拆分数量,例如,初始文本生成模型对应的存储空间为32MB,显卡-0的显卡容量为20MB,显卡-1的显卡容量为20MB,则可将初始文本生成模型拆分为2个,并获取各拆分后的文本生成模型对应的拆分模型存储空间,拆分模型存储空间是指各拆分后的文本模型对应的存储空间。
应理解的是,可根据拆分模型存储空间和显卡容量为各拆分后的文本生成模型分配对应的显卡,具体地,可将各显卡对应的显卡容量需大于对应的拆分后的文本模型对应的拆分模型存储空间,例如,图4中的显卡-0对应的显卡容量需大于分配至显卡-0的拆分后的文本模型对应的拆分模型存储空间。将各显卡对应的拆分后的文本生成模型进行整合后,即可获得压缩后的文本生成模型,即图4中的显卡-0上的拆分后的文本模型、显卡-1上的拆分后的文本模型……显卡-N上的拆分后的文本模型。
进一步地,为了实现对拆分后的文本生成模型进行微调处理,在本实施例中,所述根据所述拆分模型存储空间和所述显卡容量为所述各拆分后的文本生成模型分配对应的显卡,并将各显卡对应的拆分后的文本生成模型进行整合,获得压缩后的文本生成模型的步骤,具体包括:根据所述拆分模型存储空间和所述显卡容量为所述各拆分后的文本生成模型分配对应的显卡;根据所述拆分模型存储空间和所述显卡容量判断是否需要对所述各拆分后的文本生成模型进行微调处理;若是,则从所述各拆分后的文本生成模型中选取对应的微调文本生成模型;对所述微调文本生成模型进行微调处理,获得各显卡对应的目标文本生成模型;将所述各显卡对应的目标文本生成模型进行整合,获得压缩后的文本生成模型。
可理解的是,在为各拆分后的文本生成模型分配对应的显卡之后,还可根据拆分模型存储空间和显卡容量判断是否需要对所述各拆分后的文本生成模型进行微调处理,微调处理是指各拆分后的文本生成模型需要添加新的网络层时进行的处理,具体地,在显卡容量远大于拆分模型存储空间时,可在该显卡上的拆分后的文本生成模型上添加新的网络层,即可在微调文本生成模型上添加新的网络层。
在具体实现中,在对微调文本生成模型进行微调处理后,可得到各显卡对应的目标文本生成模型,将各显卡对应的目标文本生成模型进行整合后,获得压缩后的文本生成模型。
进一步地,为了有效地对确定需要进行微调处理的目标拆分后的文本生成模型,在本实施例中,所述根据所述拆分模型存储空间和所述显卡容量判断是否需要对所述各拆分后的文本生成模型进行微调处理的步骤,具体包括:确定所述各拆分后的文本生成模型对应的目标显卡;从所述显卡容量中选取所述目标显卡对应的目标显卡容量;在所述拆分模型存储空间和所述目标显卡容量之间的差值大于预设阈值时,判定需要对所述目标显卡对应的目标拆分后的文本生成模型进行微调处理。
可理解的是,各拆分后的文本生成模型可对应一目标显卡,各目标显卡都有对应的目标显卡容量。在目标显卡的显卡容量远大于该目标显卡上的拆分后的文本生成模型对应的拆分模型存储空间时,即上述拆分模型存储空间与上述显卡容量之间的差值大于预设阈值时,可将该目标显卡对应的目标拆分后的文本生成模型进行微调处理,预设阈值可为预先设置的阈值,例如,3MB、4MB等,具体值可根据实际情况进行设置,本实施例对此不做具体限制。
进一步地,为了对在本实施例中,所述对所述微调文本生成模型进行微调处理,获得各显卡对应的目标文本生成模型的步骤,具体包括:确定需添加的网络层;确定所述若干个拆分后的文本生成模型中除所述需添加的网络层之外的剩余网络层;对所述需添加的网络层进行训练,并对所述剩余网络层进行冻结,获得各显卡对应的目标文本生成模型。
应理解的是,可先获取需添加的网络层,再确定若干个拆分后的文本模型中除需添加的网络层之外的剩余网络层,此时在模型的训练过程中,对需添加的网络层进行训练,即改变需添加的网络层对应的权重参数,并对剩余网络层进行冻结,即使剩余网络层对应的权重参数不变,即可获得各显卡对应的目标文本生成模型。
本实施例通过确定配置参数中的显卡容量和显卡数量,然后根据显卡容量、显卡数量以及模型存储空间确定压缩方式,再通过压缩方式对初始文本生成模型进行压缩处理,获得压缩后的文本生成模型。本实施例根据显卡容量、显卡数量以及模型存储空间确定压缩方式,再通过压缩方式对初始文本生成模型进行压缩处理,能够根据显卡容量、显卡数量以及模型存储空间适应性对初始文本生成模型进行压缩处理,进一步对初始文本生成模型中的权重系数进行压缩,得到压缩后的文本生成模型,以实现在小容量的硬件上运行压缩后的模型。
参考图5,图5为本发明文本生成方法第三实施例的流程示意图。
基于上述各实施例,在本实施例中,所述步骤S30包括:
步骤S301:对所述压缩后的文本生成模型中的参数格式进行格式转换,获得转换后的文本生成模型;
可理解的是,在对初始文本生成模型进行训练之前,需要对训练的环境进行配置,具体可按照需求进行对应版本的包安装,本实施例也可在模型推理的过程中,采用fastertransformer与triton结合的部署方式进行环境配置,因此,需要对压缩后的文本生成模型中的参数格式转换为fastertransformer和triton适应的格式,在对压缩后的文本生成模型中的参数格式进行格式转换,可获得转换后的文本生成模型。
在具体实现中,可参照图6,图6为本发明文本生成方法一实施例的转换后的文本生成模型的训练和推导的示意图。如图6所示,可先进行环境配置,再进行初始文本生成模型的压缩,可通过按行切分或按列切分方式,并通过训练/测试数据进行训练,根据loss损失值得到训练好的压缩后的文本生成模型,并得到各显卡上的拆分后的文本生成模型对应的权重,显卡1对应权重1,显卡2对应权重2,显卡n对应权重n。然后通过fastertransformer和triton,可得到转换后的文本生成模型。
进一步地,为了有效地对压缩后的文本生成模型中的参数格式进行格式转换,在本实施例中,所述步骤S301包括:对所述压缩后的文本生成模型中的参数格式进行格式转换,获得加速引擎适应的初始参数格式;对所述初始参数格式进行格式转换,获得推理引擎适应的目标参数格式,获得转换后的文本生成模型。
需要说明的是,图6中的fastertransformer表示加速引擎,Triton表示推理引擎。fasterTransformer基于CUDA C++实现,使用CUDA kernel进行计算,支持FP16和FP32两种数据类型。它提供了多个优化选项,包括基于GPU的Beam Search和超大Batch Size支持,可在大规模的生产环境中使用。通过安装fastertransformer包利用其中的Transformer模块加来模型参数。安装并配置NVIDIA Triton Inference Server。
可理解的是,本实施例可对压缩后的文本生成模型中所有权重参数的参数格式转换为加速引擎适应的初始参数格式,然后对初始参数格式转换为推理引擎适应的目标参数格式,即可得到转换后的文本生成模型。
步骤S302:将初始文本输入至所述转换后的文本生成模型中,获得目标文本。
在具体实现中,参照图7,图7为本发明文本生成方法一实施例的转换后的文本生成模型的推导过程的示意图。在将初始文本进行tokenizer编码器进行编码后,再通过Fastertransformer和Triton结合的环境进行推导,最后通过decoder译码器进行译码后,即可得到目标文本。在实际情况中,本实施例通过Fastertransformer和Triton结合的环境进行推导,能够将原始的推导时间125ms/token缩短至30ms/token。
本实施例通过对压缩后的文本生成模型中的参数格式进行格式转换,获得转换后的文本生成模型,再将初始文本输入至转换后的文本生成模型中,获得目标文本。本实施例通过将Fastertransformer和Triton结合的环境部署到模型推导的环境中,能够有效地缩短训练时长。
参照图8,图8为本发明文本生成装置第一实施例的结构框图。
如图8所示,本发明实施例提出的文本生成装置包括:
信息获取模块10,用于获取预设硬件对应的配置参数,并获取初始文本生成模型的模型存储空间;
模型压缩模块20,用于根据所述配置参数和所述模型存储空间对所述初始文本生成模型进行压缩处理,获得压缩后的文本生成模型;
文本生成模块30,用于将初始文本输入至所述压缩后的文本生成模型中,获得目标文本。
本实施例通过获取预设硬件对应的配置参数,并获取初始文本生成模型的模型存储空间,然后根据配置参数和模型存储空间对初始文本生成模型进行压缩处理,获得压缩后的文本生成模型,再将初始文本输入至压缩后的文本生成模型中,获得目标文本。本实施例根据配置参数和模型存储空间对初始文本生成模型进行压缩处理,能够根据预设硬件对应的配置参数对初始文本生成模型中的权重参数进行压缩,得到压缩后的文本生成模型,相较于现有的文本生成模型的千亿级的权重参数,本实施例上述方式能够对初始文本生成模型进行压缩处理,进一步对初始文本生成模型中的权重系数进行压缩,得到压缩后的文本生成模型,以实现在小容量的硬件上运行压缩后的模型。
需要说明的是,以上所描述的工作流程仅仅是示意性的,并不对本发明的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部来实现本实施例方案的目的,此处不做限制。
另外,未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的文本生成方法,此处不再赘述。
基于本发明上述文本生成装置第一实施例,提出本发明文本生成装置的第二实施例。
在本实施例中,所述模型压缩模块20,还用于确定所述配置参数中的显卡容量和显卡数量;根据所述显卡容量、所述显卡数量以及所述模型存储空间确定压缩方式;通过所述压缩方式对所述初始文本生成模型进行压缩处理,获得压缩后的文本生成模型。
进一步地,所述模型压缩模块20,还用于根据所述显卡容量和所述模型存储空间判断是否需要对所述初始文本生成模型进行压缩处理;若是,则在所述显卡数量为预设数量时,确定所述压缩方式为直接压缩方式;在所述显卡数量大于所述预设数量时,确定所述压缩方式为分块压缩方式。
进一步地,所述模型压缩模块20,还用于在所述压缩方式为直接压缩方式时,确定所述初始文本生成模型中的参数信息;根据所述显卡容量和所述模型存储空间确定参数长度;根据所述参数长度对所述参数信息进行调整,获得压缩后的文本生成模型。
进一步地,所述模型压缩模块20,还用于在所述压缩方式为分块压缩方式时,确定输入至所述初始文本生成模型的初始文本对应的数据格式;根据所述数据格式确定模型拆分方式,所述模型拆分方式包括:按行拆分方式和按列拆分方式;根据所述按行拆分方式或所述按列拆分方式对所述初始文本生成模型进行压缩处理,获得压缩后的文本生成模型。
进一步地,所述模型压缩模块20,还用于根据所述按行拆分方式或所述按列拆分方式对所述初始文本生成模型进行拆分处理,获得若干个拆分后的文本生成模型;确定各拆分后的文本生成模型对应的拆分模型存储空间;根据所述拆分模型存储空间和所述显卡容量为所述各拆分后的文本生成模型分配对应的显卡,并将各显卡对应的拆分后的文本生成模型进行整合,获得压缩后的文本生成模型。
进一步地,所述模型压缩模块20,还用于根据所述拆分模型存储空间和所述显卡容量为所述各拆分后的文本生成模型分配对应的显卡;根据所述拆分模型存储空间和所述显卡容量判断是否需要对所述各拆分后的文本生成模型进行微调处理;若是,则从所述各拆分后的文本生成模型中选取对应的微调文本生成模型;对所述微调文本生成模型进行微调处理,获得各显卡对应的目标文本生成模型;将所述各显卡对应的目标文本生成模型进行整合,获得压缩后的文本生成模型。
进一步地,所述模型压缩模块20,还用于确定所述各拆分后的文本生成模型对应的目标显卡;从所述显卡容量中选取所述目标显卡对应的目标显卡容量;在所述拆分模型存储空间和所述目标显卡容量之间的差值大于预设阈值时,判定需要对所述目标显卡对应的目标拆分后的文本生成模型进行微调处理。
进一步地,所述模型压缩模块20,还用于确定需添加的网络层;确定所述若干个拆分后的文本生成模型中除所述需添加的网络层之外的剩余网络层;对所述需添加的网络层进行训练,并对所述剩余网络层进行冻结,获得各显卡对应的目标文本生成模型。
进一步地,所述文本生成模块30,还用于对所述压缩后的文本生成模型中的参数格式进行格式转换,获得转换后的文本生成模型;将初始文本输入至所述转换后的文本生成模型中,获得目标文本。
进一步地,所述文本生成模块30,还用于对所述压缩后的文本生成模型中的参数格式进行格式转换,获得加速引擎适应的初始参数格式;对所述初始参数格式进行格式转换,获得推理引擎适应的目标参数格式,获得转换后的文本生成模型。
本发明文本生成装置的其他实施例或具体实现方式可参照上述各方法实施例,此处不再赘述。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有文本生成程序,所述文本生成程序被处理器执行时实现如上文所述的文本生成方法的步骤。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通 过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的 技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器/随机存取存储器、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
本发明公开了A1、一种文本生成方法,所述文本生成方法包括以下步骤:
获取预设硬件对应的配置参数,并获取初始文本生成模型的模型存储空间;
根据所述配置参数和所述模型存储空间对所述初始文本生成模型进行压缩处理,获得压缩后的文本生成模型;
将初始文本输入至所述压缩后的文本生成模型中,获得目标文本。
A2、如A1所述的文本生成方法,所述根据所述配置参数和所述模型存储空间对所述初始文本生成模型进行压缩处理,获得压缩后的文本生成模型的步骤,具体包括:
确定所述配置参数中的显卡容量和显卡数量;
根据所述显卡容量、所述显卡数量以及所述模型存储空间确定压缩方式;
通过所述压缩方式对所述初始文本生成模型进行压缩处理,获得压缩后的文本生成模型。
A3、如A2所述的文本生成方法,所述根据所述显卡容量、所述显卡数量以及所述模型存储空间确定压缩方式的步骤,具体包括:
根据所述显卡容量和所述模型存储空间判断是否需要对所述初始文本生成模型进行压缩处理;
若是,则在所述显卡数量为预设数量时,确定所述压缩方式为直接压缩方式;
在所述显卡数量大于所述预设数量时,确定所述压缩方式为分块压缩方式。
A4、如A3所述的文本生成方法,所述通过所述压缩方式对所述初始文本生成模型进行压缩处理,获得压缩后的文本生成模型的步骤,具体包括:
在所述压缩方式为直接压缩方式时,确定所述初始文本生成模型中的参数信息;
根据所述显卡容量和所述模型存储空间确定参数长度;
根据所述参数长度对所述参数信息进行调整,获得压缩后的文本生成模型。
A5、如A3所述的文本生成方法,所述通过所述压缩方式对所述初始文本生成模型进行压缩处理,获得压缩后的文本生成模型的步骤,具体包括:
在所述压缩方式为分块压缩方式时,确定输入至所述初始文本生成模型的初始文本对应的数据格式;
根据所述数据格式确定模型拆分方式,所述模型拆分方式包括:按行拆分方式和按列拆分方式;
根据所述按行拆分方式或所述按列拆分方式对所述初始文本生成模型进行压缩处理,获得压缩后的文本生成模型。
A6、如A5所述的文本生成方法,所述根据所述按行拆分方式或所述按列拆分方式对所述初始文本生成模型进行压缩处理,获得压缩后的文本生成模型的步骤,具体包括:
根据所述按行拆分方式或所述按列拆分方式对所述初始文本生成模型进行拆分处理,获得若干个拆分后的文本生成模型;
确定各拆分后的文本生成模型对应的拆分模型存储空间;
根据所述拆分模型存储空间和所述显卡容量为所述各拆分后的文本生成模型分配对应的显卡,并将各显卡对应的拆分后的文本生成模型进行整合,获得压缩后的文本生成模型。
A7、如A6所述的文本生成方法,所述根据所述拆分模型存储空间和所述显卡容量为所述各拆分后的文本生成模型分配对应的显卡,并将各显卡对应的拆分后的文本生成模型进行整合,获得压缩后的文本生成模型的步骤,具体包括:
根据所述拆分模型存储空间和所述显卡容量为所述各拆分后的文本生成模型分配对应的显卡;
根据所述拆分模型存储空间和所述显卡容量判断是否需要对所述各拆分后的文本生成模型进行微调处理;
若是,则从所述各拆分后的文本生成模型中选取对应的微调文本生成模型;
对所述微调文本生成模型进行微调处理,获得各显卡对应的目标文本生成模型;
将所述各显卡对应的目标文本生成模型进行整合,获得压缩后的文本生成模型。
A8、如A7所述的文本生成方法,所述根据所述拆分模型存储空间和所述显卡容量判断是否需要对所述各拆分后的文本生成模型进行微调处理的步骤,具体包括:
确定所述各拆分后的文本生成模型对应的目标显卡;
从所述显卡容量中选取所述目标显卡对应的目标显卡容量;
在所述拆分模型存储空间和所述目标显卡容量之间的差值大于预设阈值时,判定需要对所述目标显卡对应的目标拆分后的文本生成模型进行微调处理。
A9、如A7所述的文本生成方法,所述对所述微调文本生成模型进行微调处理,获得各显卡对应的目标文本生成模型的步骤,具体包括:
确定需添加的网络层;
确定所述若干个拆分后的文本生成模型中除所述需添加的网络层之外的剩余网络层;
对所述需添加的网络层进行训练,并对所述剩余网络层进行冻结,获得各显卡对应的目标文本生成模型。
A10、如A1~A9中任一项所述的文本生成方法,所述将初始文本输入至所述压缩后的文本生成模型中,获得目标文本的步骤,具体包括:
对所述压缩后的文本生成模型中的参数格式进行格式转换,获得转换后的文本生成模型;
将初始文本输入至所述转换后的文本生成模型中,获得目标文本。
A11、如A10所述的文本生成方法,所述对所述压缩后的文本生成模型中的参数格式进行格式转换,获得转换后的文本生成模型的步骤,具体包括:
对所述压缩后的文本生成模型中的参数格式进行格式转换,获得加速引擎适应的初始参数格式;
对所述初始参数格式进行格式转换,获得推理引擎适应的目标参数格式,获得转换后的文本生成模型。
本发明还公开了B12、一种文本生成装置,所述文本生成装置包括:
信息获取模块,用于获取预设硬件对应的配置参数,并获取初始文本生成模型的模型存储空间;
模型压缩模块,用于根据所述配置参数和所述模型存储空间对所述初始文本生成模型进行压缩处理,获得压缩后的文本生成模型;
文本生成模块,用于将初始文本输入至所述压缩后的文本生成模型中,获得目标文本。
B13、如B12所述的文本生成装置,所述模型压缩模块,还用于确定所述配置参数中的显卡容量和显卡数量;根据所述显卡容量、所述显卡数量以及所述模型存储空间确定压缩方式;通过所述压缩方式对所述初始文本生成模型进行压缩处理,获得压缩后的文本生成模型。
B14、如B13所述的文本生成装置,所述模型压缩模块,还用于根据所述显卡容量和所述模型存储空间判断是否需要对所述初始文本生成模型进行压缩处理;若是,则在所述显卡数量为预设数量时,确定所述压缩方式为直接压缩方式;在所述显卡数量大于所述预设数量时,确定所述压缩方式为分块压缩方式。
B15、如B14所述的文本生成装置,所述模型压缩模块,还用于在所述压缩方式为直接压缩方式时,确定所述初始文本生成模型中的参数信息;根据所述显卡容量和所述模型存储空间确定参数长度;根据所述参数长度对所述参数信息进行调整,获得压缩后的文本生成模型。
B16、如B14所述的文本生成装置,所述模型压缩模块,还用于在所述压缩方式为分块压缩方式时,确定输入至所述初始文本生成模型的初始文本对应的数据格式;根据所述数据格式确定模型拆分方式,所述模型拆分方式包括:按行拆分方式和按列拆分方式;根据所述按行拆分方式或所述按列拆分方式对所述初始文本生成模型进行压缩处理,获得压缩后的文本生成模型。
B17、如B16所述的文本生成装置,所述模型压缩模块,还用于根据所述按行拆分方式或所述按列拆分方式对所述初始文本生成模型进行拆分处理,获得若干个拆分后的文本生成模型;确定各拆分后的文本生成模型对应的拆分模型存储空间;根据所述拆分模型存储空间和所述显卡容量为所述各拆分后的文本生成模型分配对应的显卡,并将各显卡对应的拆分后的文本生成模型进行整合,获得压缩后的文本生成模型。
B18、如B17所述的文本生成装置,所述模型压缩模块,还用于根据所述拆分模型存储空间和所述显卡容量为所述各拆分后的文本生成模型分配对应的显卡;根据所述拆分模型存储空间和所述显卡容量判断是否需要对所述各拆分后的文本生成模型进行微调处理;若是,则从所述各拆分后的文本生成模型中选取对应的微调文本生成模型;对所述微调文本生成模型进行微调处理,获得各显卡对应的目标文本生成模型;将所述各显卡对应的目标文本生成模型进行整合,获得压缩后的文本生成模型。
本发明还公开了C19、一种文本生成设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的文本生成程序,所述文本生成程序配置为实现如A1至A11中任一项所述的文本生成方法的步骤。
本发明还公开了D20、一种存储介质,所述存储介质上存储有文本生成程序,所述文本生成程序被处理器执行时实现如A1至A11中任一项所述的文本生成方法的步骤。