本技术涉及大数据,具体涉及一种大模型的训练方法、装置、设备及存储介质。
背景技术:
1、随着大模型技术与大数据的进一步发展,重视数据隐私和安全已经成为了世界性的趋势,如何在保障数据和模型隐私的同时使得双方协作完成大模型训练与推理是一个焦点。
2、目前,一个训练完成的大模型通常含有十亿、百亿级别的参数量,需要算力以及私有数据对其进行微调。中小型企业通常具有本地化数据,可以用来微调大模型,模型持有方、数据持有方希望合作出一个大模型,但均不愿意泄露各自的内容给彼此,但是中小型企业的本地客户端的算力又存在局限。
3、因此,相关技术中,在对大模型训练过程中,存在数据安全性不高、算力利用不充分的技术问题。
技术实现思路
1、本技术提供一种大模型的训练方法、装置、设备及存储介质,从而解决在对大模型训练过程中,存在数据安全性不高、算力利用不充分的技术问题的问题。
2、第一方面,本技术提供一种大模型的训练方法,所述大模型包括头部适配器、模型主体和尾部适配器;其中所述头部适配器包括第一云端部分和第一本地部分,其中所述尾部适配器包括第二云端部分和第二本地部分;在训练所述大模型的过程中所述第一云端部分、所述模型主体和所述第二云端部分部署于云端,所述第一本地部分和所述第二本地部分部署于本地客户端;
3、所述方法包括:
4、本地客户端获取训练数据,并对所述训练数据进行分片处理,以得到第一分片训练数据和第二分片训练数据;
5、本地客户端将所述第一分片训练数据发送至云端;
6、云端将所述第一分片训练数据输入至所述第一云端部分进行运算,本地客户端将所述第二分片训练数据输入至所述第一本地部分进行运算,以输出第一特征向量并发送至云端;
7、云端将所述第一特征向量输入至所述模型主体,以输出第二特征向量;
8、云端将所述第二特征向量进行分片处理,以得到第一分片特征向量和第二分片特征向量,并将第二分片特征向量发送至客户端;
9、云端将所述第一分片特征向量输入至所述第二云端部分进行运算,本地客户端将所述第二分片特征向量输入至所述第二本地部分进行运算,以输出所述训练数据的预测结果;
10、云端和本地客户端根据预设数量的训练数据的预测结果,迭代调整所述大模型至模型收敛。
11、本技术在训练大模型的过程中,将大模型拆分为三个部分,中间的模型主体m0以及头部适配器adaptor header和尾部适配器adaptor tail两个adaptor部分,头部适配器包括第一云端部分ah1和第一本地部分ah2,尾部适配器包括第二云端部分at1和第二本地部分at2,每个适配器分为两部分,一半位于云端cloud,一半位于本地客户端client,对大模型的训练数据为来自client的行业私有化数据,将其分片进入后,分别进入云端和本地客户端进行第一次联合训练,经过第一次训练后,得到特征向量形式的第一特征向量,再输入至云端进行全部训练数据的明文训练,云端的输出再分片处理分别在云端和本地客户端进行第二次联合训练,得到训练数据的预测结果,根据训练数据的预测结果可得到训练好的大模型。基于上述训练方法,在大模型与小模型的协作推理运算过程中模型与数据均不出本地,云端仅能获知分片后的部分数据,以及难以还原出原始输入的特征向量,保护了隐私,提高了数据的安全性,且仅将头尾两个adaptor分散到云端和客户端,利用加密的客户端数据做adaptor部分的模型训练,模型主体结构依然位于云端,利用cloud算力进行训练与推理,保证了算力性能,同时有效利用adaptor微调机制,adaptor参数量仅占整个原始大模型百分之几或千分之几,能达到与全模型全参数微调几乎相同效果的特性,实现了在安全、充分利用算力的前提下对大模型的有效训练。
12、可选地,所述云端将所述第一分片训练数据输入至所述第一云端部分进行运算,本地客户端将所述第二分片训练数据输入至所述第一本地部分进行运算,以输出第一特征向量并发送至云端,包括:
13、云端将所述第一分片训练数据输入至所述第一云端部分进行运算,本地客户端将所述第二分片训练数据输入至所述第一本地部分进行运算,且所述第一云端部分和所述第一本地部分进行运算的过程中通过多方安全计算的加密运算方式,经过所述第一云端部分和所述第一本地部分的运算,以输出第一特征向量并发送至云端。
14、其中,本技术可基于多方安全计算共享运算参数,从而实现第一云端部分和第一本地部分基于秘密分享协议的联合训练,通过多方安全计算将原始数据转化为难以还原的特征向量,进一步地提高了大模型训练的安全性及可行性。
15、可选地,所述云端将所述第一分片特征向量输入至所述第二云端部分进行运算,本地客户端将所述第二分片特征向量输入至所述第二本地部分进行运算,以输出所述训练数据的预测结果,包括:
16、云端将所述第一分片特征向量输入至所述第二云端部分进行运算,本地客户端将所述第二分片特征向量输入至所述第二本地部分进行运算,且所述第二云端部分和所述第二本地部分进行运算的过程中通过多方安全计算的加密运算方式,经过所述第二云端部分和所述第二本地部分的运算,以输出所述训练数据的预测结果。
17、其中,本技术对尾部适配器的运算也基于多方安全计算共享运算参数,从而实现第二云端部分和第二本地部分基于秘密分享协议的联合训练,进一步地提高了大模型训练的安全性及可行性。
18、可选地,所述多方安全计算包括aby混合协议或秘密共享协议。
19、可选地,所述云端和本地客户端根据预设数量的训练数据的预测结果,迭代调整所述大模型至模型收敛,包括:
20、云端根据所述预测结果与所述训练数据对应的预设标签得到损失参数;云端根据所述损失参数调整所述大模型的第一云端部分和所述第二云端部分的模型参数;本地客户端根据所述损失参数,调整所述大模型的第一本地部分和所述第二本地部分的模型参数;本地客户端若确定所述大模型的预测误差大于预设阈值,则重新执行“本地客户端获取训练数据”的步骤以继续训练所述大模型,若确定所述大模型的预测误差小于或等于预设阈值,则停止迭代训练。
21、可选地,所述云端根据所述预测结果与所述训练数据对应的预设标签得到损失参数,包括:
22、云端将所述预测结果与所述预设标签输入至损失函数中,以输出所述损失参数。
23、可选地,所述损失函数的计算公式为:
24、
25、其中,l表示损失函数,m表示类别数量,n表示样本数量,yic是符号函数,表示第i个样本的属于第c个类别的概率,pic表示模型预测第i个样本属于第c个类别的概率,i和n是任意正整数。
26、这里,本技术得到训练数据的预测结果后,再与预测标签计算损失,反馈整个模型网络进行模型收敛计算,从而调整大模型的模型参数,以调整大模型直至满足要求,实现了对大模型的训练。
27、可选地,在所述云端根据所述预测结果与所述训练数据对应的预设标签得到损失参数,并根据所述损失参数调整所述大模型的第一云端部分和所述第二云端部分的模型参数之前,还包括:
28、本地客户端根据预设加密算法,对所述训练数据对应的预设标签进行加密处理,以得到加密标签;本地客户端将所述加密标签发送至所述云端。
29、这里,为了进一步保证在大模型训练过程中的数据安全,本技术本地客户端将训练数据对应的预设标签发送至云端时,首先对预设标签进行加密处理,云端无法获取原始的预设标签,进一步地提高了大模型训练的安全性。
30、可选地,所述云端根据所述预测结果与所述训练数据对应的预设标签得到损失参数,并根据所述损失参数调整所述大模型的第一云端部分和所述第二云端部分的模型参数,包括:
31、云端根据所述预设加密算法,对所述预测结果进行加密处理,以得到加密预设结果;云端根据所述加密预测结果与所述加密标签得到损失参数,并根据所述损失参数调整所述大模型的第一云端部分和所述第二云端部分的模型参数。
32、可选地,所述预设加密算法为同态加密算法。
33、这里,云端根据本地客户端对预设标签的预设加密算法对训练数据的预测结果进行加密处理,从而能够将得到的加密预测结果与加密标签进行运算处理,得到损失参数,进而在安全可靠的前提下对模型参数进行调整。
34、可选地,所述对所述训练数据进行分片处理,以得到第一分片训练数据和第二分片训练数据,包括:
35、对所述训练数据进行随机分片处理,以得到第一分片训练数据和第二分片训练数据。
36、其中,本技术在对训练数据进行分片处理时,可采用随机分片的方式,通过此方式,云端无法还原出原始的训练数据,进而充分保护了本地客户端的数据安全。
37、可选地,所述对所述训练数据进行分片处理,以得到第一分片训练数据和第二分片训练数据,包括:
38、根据第一预设秘密分片算法,对所述训练数据进行分片处理,以得到第一分片训练数据和第二分片训练数据。
39、其中,本技术在对训练数据进行分片处理时,可采用第一预设秘密分片算法的方式,通过此方式,云端无法还原出原始的训练数据,进而充分保护了本地客户端的数据安全。
40、可选地,所述云端将所述第二特征向量进行分片处理,以得到第一分片特征向量和第二分片特征向量,包括:
41、云端将所述第二特征向量进行随机分片处理,以得到第一分片特征向量和第二分片特征向量。
42、可选地,所述云端将所述第二特征向量进行分片处理,以得到第一分片特征向量和第二分片特征向量,包括:
43、云端根据第二预设秘密分片算法,将所述第二特征向量进行分片处理,以得到第一分片特征向量和第二分片特征向量。
44、这里,本技术云端可通过随机或预设算法对第二特征向量进行分片处理,对数据进行进一步地拆分,以实现安全可靠的云端与本地客户端的联合训练,进一步地提高了大模型训练的数据安全及数据隐私。
45、可选地,所述训练好的大模型的头部适配器和尾部适配器部署于本地客户端,模型主体部署于云端。
46、其中,本技术训练好的大模型的头部适配器和尾部适配器部署于本地,模型主体部署于云端,在数据的推理预测阶段也需要双方合作才能完成,任何一方都无法独立完成推理,本地客户端的数据权益得到保障,云端的模型以及算力权益得到保障,提高了大模型预测的安全性以及算力资源的利用率。
47、可选地,上述方法还包括:
48、本地客户端获取一条待预测数据;本地客户端将所述待预测数据输入至所述头部适配器,以输出第一预测向量;本地客户端将所述第一预测向量发送至云端;云端将所述第一预测向量输入至所述模型主体,以输出第二预测向量;云端将所述第二预测向量发送至本地客户端;本地客户端将所述第二预测向量输入至所述尾部适配器,以输出所述待预测数据的预测结果。
49、这里,本技术能够根据训练好的大模型进行推理预测,对于在本地客户端的待预测数据,首先通过本地客户端的头部适配器将待预测数据转化为相对于云端加密的第一预测向量,再运用云端的算力,对待预测数据进行充分推理预测,再通过本地客户端的尾部适配器输出待预测数据的预测结果,实现了安全、高效的数据推理预测。
50、可选地,所述第一预测向量的数据格式为加密格式。
51、其中,第一预测向量的加密格式进一步地保证了本地客户端数据的安全性。
52、第二方面,本技术提供了一种大模型的训练装置,所述大模型包括头部适配器、模型主体和尾部适配器;其中所述头部适配器包括第一云端部分和第一本地部分,其中所述尾部适配器包括第二云端部分和第二本地部分;在训练所述大模型的过程中所述第一云端部分、所述模型主体和所述第二云端部分部署于云端,所述第一本地部分和所述第二本地部分部署于本地客户端;
53、所述装置包括:
54、第一处理模块,用于本地客户端获取训练数据,并对所述训练数据进行分片处理,以得到第一分片训练数据和第二分片训练数据;
55、第一发送模块,用于本地客户端将所述第一分片训练数据发送至云端;
56、第二处理模块,用于云端将所述第一分片训练数据输入至所述第一云端部分进行运算,本地客户端将所述第二分片训练数据输入至所述第一本地部分进行运算,以输出第一特征向量并发送至云端;
57、第一输入模块,用于云端将所述第一特征向量输入至所述模型主体,以输出第二特征向量;
58、第三处理模块,用于云端将所述第二特征向量进行分片处理,以得到第一分片特征向量和第二分片特征向量,并将第二分片特征向量发送至客户端;
59、第四处理模块,用于云端将所述第一分片特征向量输入至所述第二云端部分进行运算,本地客户端将所述第二分片特征向量输入至所述第二本地部分进行运算,以输出所述训练数据的预测结果;
60、第五处理模块,用于云端和本地客户端根据预设数量的训练数据的预测结果,迭代调整所述大模型至模型收敛。
61、可选地,所述第二处理模块具体用于:
62、云端将所述第一分片训练数据输入至所述第一云端部分进行运算,本地客户端将所述第二分片训练数据输入至所述第一本地部分进行运算,且所述第一云端部分和所述第一本地部分进行运算的过程中通过多方安全计算的加密运算方式,经过所述第一云端部分和所述第一本地部分的运算,以输出第一特征向量并发送至云端。
63、可选地,所述第四处理模块具体用于:
64、云端将所述第一分片特征向量输入至所述第二云端部分进行运算,本地客户端将所述第二分片特征向量输入至所述第二本地部分进行运算,且所述第二云端部分和所述第二本地部分进行运算的过程中通过多方安全计算的加密运算方式,经过所述第二云端部分和所述第二本地部分的运算,以输出所述训练数据的预测结果。
65、可选地,所述多方安全计算包括aby混合协议或秘密共享协议。
66、可选地,所述第五处理模块具体用于;
67、云端根据所述预测结果与所述训练数据对应的预设标签得到损失参数;云端根据所述损失参数调整所述大模型的第一云端部分和所述第二云端部分的模型参数;本地客户端根据所述损失参数,调整所述大模型的第一本地部分和所述第二本地部分的模型参数;本地客户端若确定所述大模型的预测误差大于预设阈值,则重新执行“本地客户端获取训练数据”的步骤以继续训练所述大模型,若确定所述大模型的预测误差小于或等于预设阈值,则停止迭代训练。
68、可选地,所述第五处理模块还具体用于:云端将所述预测结果与所述预设标签输入至损失函数中,以输出所述损失参数。
69、可选地,所述损失函数的计算公式为:
70、
71、其中,l表示损失函数,m表示类别数量,n表示样本数量,yic是符号函数,表示第i个样本的属于第c个类别的概率,pic表示模型预测第i个样本属于第c个类别的概率,i和n是任意正整数。
72、可选地,在所述第五处理模块用于云端根据所述预测结果与所述训练数据对应的预设标签得到损失参数,并根据所述损失参数调整所述大模型的第一云端部分和所述第二云端部分的模型参数之前,上述装置还包括加密处理模块,用于:
73、本地客户端根据预设加密算法,对所述训练数据对应的预设标签进行加密处理,以得到加密标签;本地客户端将所述加密标签发送至所述云端。
74、可选地,所述第五处理模块具体用于:
75、云端根据所述预设加密算法,对所述预测结果进行加密处理,以得到加密预设结果;云端根据所述加密预测结果与所述加密标签得到损失参数,并根据所述损失参数调整所述大模型的第一云端部分和所述第二云端部分的模型参数。
76、可选地,所述预设加密算法为同态加密算法。
77、可选地,所述第一处理模块具体用于:
78、对所述训练数据进行随机分片处理,以得到第一分片训练数据和第二分片训练数据。
79、可选地,所述第一处理模块具体用于:
80、根据第一预设秘密分片算法,对所述训练数据进行分片处理,以得到第一分片训练数据和第二分片训练数据。
81、可选地,所述第三处理模块具体用于:
82、云端将所述第二特征向量进行随机分片处理,以得到第一分片特征向量和第二分片特征向量。
83、可选地,所述第三处理模块具体用于:
84、云端根据第二预设秘密分片算法,将所述第二特征向量进行分片处理,以得到第一分片特征向量和第二分片特征向量。
85、可选地,所述训练好的大模型的头部适配器和尾部适配器部署于本地客户端,模型主体部署于云端。
86、可选地,上述装置还包括推理预测模块,用于:
87、本地客户端获取一条待预测数据;本地客户端将所述待预测数据输入至所述头部适配器,以输出第一预测向量;本地客户端将所述第一预测向量发送至云端;云端将所述第一预测向量输入至所述模型主体,以输出第二预测向量;云端将所述第二预测向量发送至本地客户端;本地客户端将所述第二预测向量输入至所述尾部适配器,以输出所述待预测数据的预测结果。
88、可选地,所述第一预测向量的数据格式为加密格式。
89、第三方面,本技术提供一种大模型的训练设备,包括:至少一个处理器和存储器;
90、所述存储器存储计算机执行指令;
91、所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第一方面以及第一方面各种可能的设计所述的大模型的训练方法。
92、第四方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一方面以及第一方面各种可能的设计所述的大模型的训练方法。
93、第五方面,本发明提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时,实现如上第一方面以及第一方面各种可能的设计所述的大模型的训练方法。
94、本技术提供的大模型的训练方法、装置、设备及存储介质,其中该方法对大模型的训练数据为来自client的行业私有化数据,将其分片进入后,分别进入云端和本地客户端进行第一次联合训练,经过第一次训练后,得到特征向量形式的第一特征向量,再输入至云端进行全部训练数据的明文训练,云端的输出再分片处理分别在云端和本地客户端进行第二次联合训练,得到训练数据的预测结果,根据训练数据的预测结果可得到训练好的大模型。基于上述训练方法,在大模型与小模型的协作推理运算过程中模型与数据均不出本地,云端仅能获知分片后的部分数据,以及难以还原出原始输入的特征向量,保护了隐私,提高了数据的安全性,且仅将头尾两个adaptor分散到云端和客户端,利用加密的客户端数据做adaptor部分的模型训练,模型主体结构依然位于云端,利用cloud算力进行训练与推理,保证了算力性能,同时有效利用adaptor微调机制,adaptor参数量仅占整个原始大模型百分之几或千分之几,能达到与全模型全参数微调几乎相同效果的特性,实现了在安全、充分利用算力的前提下对大模型的有效训练。
1.一种大模型的处理方法,其特征在于,所述大模型包括头部适配器、模型主体和尾部适配器;其中所述头部适配器包括第一云端部分和第一本地部分,其中所述尾部适配器包括第二云端部分和第二本地部分;在训练所述大模型的过程中所述第一云端部分、所述模型主体和所述第二云端部分部署于云端,所述第一本地部分和所述第二本地部分部署于本地客户端;
2.根据权利要求1所述的方法,其特征在于,所述云端将所述第一分片训练数据输入至所述第一云端部分进行运算,本地客户端将所述第二分片训练数据输入至所述第一本地部分进行运算,以输出第一特征向量并发送至云端,包括:
3.根据权利要求1所述的方法,其特征在于,所述云端将所述第一分片特征向量输入至所述第二云端部分进行运算,本地客户端将所述第二分片特征向量输入至所述第二本地部分进行运算,以输出所述训练数据的预测结果,包括:
4.根据权利要求2或3所述的方法,其特征在于,所述多方安全计算为aby混合协议或秘密共享协议。
5.根据权利要求1所述的方法,其特征在于,所述云端和本地客户端根据预设数量的训练数据的预测结果,迭代调整所述大模型至模型收敛,包括:
6.根据权利要求5所述的方法,其特征在于,所述云端根据所述预测结果与所述训练数据对应的预设标签得到损失参数,包括:
7.根据权利要求6所述的方法,其特征在于,所述损失函数的计算公式为:
8.根据权利要求5所述的方法,其特征在于,在所述云端根据所述预测结果与所述训练数据对应的预设标签得到损失参数,并根据所述损失参数调整所述大模型的第一云端部分和所述第二云端部分的模型参数之前,还包括:
9.根据权利要求8所述的方法,其特征在于,所述云端根据所述预测结果与所述训练数据对应的预设标签得到损失参数,并根据所述损失参数调整所述大模型的第一云端部分和所述第二云端部分的模型参数,包括:
10.根据权利要求8或9所述的方法,其特征在于,所述预设加密算法为同态加密算法。
11.根据权利要求1至3任一项所述的方法,其特征在于,所述对所述训练数据进行分片处理,以得到第一分片训练数据和第二分片训练数据,包括:
12.根据权利要求1至3任一项所述的方法,其特征在于,所述对所述训练数据进行分片处理,以得到第一分片训练数据和第二分片训练数据,包括:
13.根据权利要求1至3任一项所述的方法,其特征在于,所述云端将所述第二特征向量进行分片处理,以得到第一分片特征向量和第二分片特征向量,包括:
14.根据权利要求1至3任一项所述的方法,其特征在于,所述云端将所述第二特征向量进行分片处理,以得到第一分片特征向量和第二分片特征向量,包括:
15.根据权利要求1至3任一项所述的方法,其特征在于,所述训练好的大模型的头部适配器和尾部适配器部署于本地客户端,模型主体部署于云端。
16.根据权利要求15所述的方法,其特征在于,还包括:
17.根据权利要求16所述的方法,其特征在于,所述第一预测向量的数据格式为加密格式。
18.一种大模型的训练设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至17中任一项所述的方法。