System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本说明书实施例属于人工智能,尤其涉及一种基于llm模型的推理计算方法和装置。
技术介绍
1、不同的数据持有方所持有的数据,通常可能包含用户的隐私信息,因此在不同的数据持有方之间共享数据,则可能会侵犯用户的隐私。基于此,在一些解决方案中,为了能够打通多个数据持有方之间的数据流通,避免数据孤岛现象,通常可以利用安全多方计算技术,实现不同的数据持有方之间的数据共享;例如,在实际应用中,在基于多个数据持有方持有的数据联合训练人工智能模型的应用场景中,可以利用安全多方计算技术,基于密文数据来参与训练,从而可以确保多方在模型训练过程中进行数据交互时,可以不会泄露出数据的明文内容。
2、随着llm(large language model)模型的不断发展,利用安全多方计算技术,通过联合多个数据持有方持有的数据,来共同训练一个llm模型已经逐渐变的成熟,也让llm模型在众多领域中的不同的下游任务上,都取得了非常好的效果。
技术实现思路
1、本说明书提出一种基于llm模型的推理计算方法,应用于部署了目标llm模型的服务设备;其中,基于所述目标llm模型进行的推理计算包含具有预设的执行顺序的多项子计算;所述方法包括:
2、获取用户通过加密的数据通道上传至所述服务设备搭载的tee的推理数据;
3、按照所述预设的执行顺序,基于所述目标llm模型的模型参数矩阵针对所述推理数据依次执行所述多项子计算,以得到与所述推理数据对应的第一推理结果;
4、其中,所述多项子
5、可选的,基于所述目标llm模型进行的推理计算包含并行执行的多项推理计算;所述多项推理算中的各项推理计算分别包含具有所述预设的执行顺序的所述多项子计算。
6、可选的,所述目标llm模型为采用lora方法对预训练完成的初始llm模型进行微调训练得到的llm模型;所述目标llm模型的模型参数还包括低秩的lora参数矩阵;
7、所述方法还包括:
8、在所述tee中按照所述行顺序,基于所述lora参数矩阵针对所述推理数据依次执行所述多项子计算,以得到与所述推理数据对应的第二推理结果;
9、在所述tee中基于所述第一推理结果和所述第二推理结果,生成与所述推理数据对应的推理结果。
10、可选的,基于所述第一推理结果和所述第二推理结果,生成与所述推理数据对应的推理结果,包括:
11、针对所述第一推理结果和所述第二推理结果进行加权求和计算,得到与所述推理数据对应的推理结果。
12、可选的,在所述tee中针对所述线性子计算的输入数据进行加密处理,包括:
13、在所述tee中基于为所述线性子计算的输入数据生成的一次性密钥,对所述线性子计算的输入数据进行加密处理;
14、在所述tee中针对所述线性子计算的计算结果进行解密处理,包括:
15、在所述tee中基于为所述线性子计算的输入数据生成的所述一次性密钥,对所述线性子计算的计算结果进行解密处理。
16、可选的,所述一次性密钥为基于otp算法生成的与所述线性子计算的输入数据的长度相同的一次性随机密钥;
17、在所述tee中基于为所述线性子计算的输入数据生成的一次性密钥,对所述线性子计算的输入数据进行加密处理,包括:
18、在所述tee中针对所述线性子计算的输入数据和所述一次性随机密钥进行加法运算,以对所述线性子计算的输入数据进行加密处理;
19、可选的,所述线性子计算的计算结果为针对所述模型参数矩阵与加密处理之后的所述线性子计算的输入数据进行矩阵乘法运算得到的矩阵运算结果;
20、在所述tee中基于为所述线性子计算的输入数据生成的所述一次性密钥,对所述线性子计算的计算结果进行解密处理之前,还包括:
21、在所述tee中针对所述模型参数矩阵与所述一次性随机密钥进行矩阵乘法运算,得到目标矩阵运算结果;
22、在所述tee中基于为所述线性子计算的输入数据生成的所述一次性密钥,对所述线性子计算的计算结果进行解密处理,包括:
23、在所述tee中针对所述线性子计算的计算结果和所述目标矩阵运算结果进行矩阵减法运算,以对所述线性子计算的计算结果进行解密处理。
24、可选的,所述至少一项线性子计算的输入数据为在所述tee中进行了稀疏化处理的输入数据;所述稀疏化处理之后的输入数据在所述tee中进行加密处理之后由所述tee传输至所述gpu。
25、可选的,所述至少一项线性子计算中的至少部分线性子计算的输入数据为在所述tee中进行了稀疏化处理的输入数据;其中,所述至少部分线性子计算为所述至少一项线性子计算中,将所述非线性子计算的计算结果作为输入数据的线性子计算。
26、可选的,所述至少部分线性子计算为所述至少一项线性子计算中,将所述至少一项非线性子计算中引入了激活函数的非线性子计算的计算结果作为输入数据的线性子计算。
27、可选的,针对所述线性子计算的输入数据进行稀疏化处理,包括:
28、删除所述线性子计算的输入数据中包含的无效元素。
29、可选的,删除所述线性子计算的输入数据中包含的所述无效元素,包括:
30、获取预先估计出的所述线性子计算的输入数据中包含的无效元素的位置信息;
31、删除所述线性子计算的输入数据中包含的与所述位置信息对应的数据元素。
32、可选的,估计所述线性子计算的输入数据中包含的无效元素的位置信息,包括:
33、获取与所述线性子计算对应的多个输入数据样本;其中,所述多个输入数据样本为在针对明文形式的多个推理数据样本分别执行所述推理计算的过程中产生的明文形式的输入数据样本;
34、分别统计所述多个输入数据样本包含的所述无效元素的位置信息,并对统计出的所述多个输入数据样本中包含的所述无效元素的位置信息进行取交集运算,以得到所述多个输入数据样本中包含的位置相同的无效元素的位置信息;
35、将所述多个输入数据样本包含的位置相同的无效元素的位置信息,作为针对所述线性子计算包含的无效元素的位置信息的估计结果进行保存。
36、可选的,所述至少部分线性子计算为所述至少一项线性子计算中,将所述至少一项非线性子计算中引入了relu激活函数的非线性子计算的计算结果作为输入数据的线性子计算;相应的,所述无效元素为0元素;
37、删除所述线性子计算的输入数据中包含的无效本文档来自技高网...
【技术保护点】
1.一种基于LLM模型的推理计算方法,应用于部署了目标LLM模型的服务设备;其中,基于所述目标LLM模型进行的推理计算包含具有预设的执行顺序的多项子计算;所述方法包括:
2.如权利要求1所述的方法,基于所述目标LLM模型进行的推理计算包含并行执行的多项推理计算;所述多项推理算中的各项推理计算分别包含具有所述预设的执行顺序的所述多项子计算。
3.如权利要求1所述的方法,所述目标LLM模型为采用LoRA方法对预训练完成的初始LLM模型进行微调训练得到的LLM模型;所述目标LLM模型的模型参数还包括低秩的LoRA参数矩阵;
4.如权利要求3所述的方法,基于所述第一推理结果和所述第二推理结果,生成与所述推理数据对应的推理结果,包括:
5.如权利要求1所述的方法,在所述TEE中针对所述线性子计算的输入数据进行加密处理,包括:
6.如权利要求5所述的方法,所述一次性密钥为基于OTP算法生成的与所述线性子计算的输入数据的长度相同的一次性随机密钥;
7.如权利要求6所述的方法,所述线性子计算的计算结果为针对所述模型参数矩阵与
8.如权利要求1所述的方法,所述至少一项线性子计算的输入数据为在所述TEE中进行了稀疏化处理的输入数据;所述稀疏化处理之后的输入数据在所述TEE中进行加密处理之后由所述TEE传输至所述GPU。
9.如权利要求8所述的方法,所述至少一项线性子计算中的至少部分线性子计算的输入数据为在所述TEE中进行了稀疏化处理的输入数据;其中,所述至少部分线性子计算为所述至少一项线性子计算中,将所述非线性子计算的计算结果作为输入数据的线性子计算。
10.如权利要求9所述的方法,所述至少部分线性子计算为所述至少一项线性子计算中,将所述至少一项非线性子计算中引入了激活函数的非线性子计算的计算结果作为输入数据的线性子计算。
11.如权利要求9所述的方法,
12.如权利要求11所述的方法,删除所述线性子计算的输入数据中包含的所述无效元素,包括:
13.如权利要求12所述的方法,
14.如权利要求13所述的方法,所述至少部分线性子计算为所述至少一项线性子计算中,将所述至少一项非线性子计算中引入了ReLU激活函数的非线性子计算的计算结果作为输入数据的线性子计算;相应的,所述无效元素为0元素;
15.如权利要求1所述的方法,所述GPU中加载了低位宽处理之后的所述目标LLM模型的原始参数矩阵;所述至少一项线性子计算为基于所述低位宽处理之后的所述原始参数矩阵进行的线性的矩阵运算;所述至少一项线性子计算的输入数据为在所述TEE中进行了所述低位宽量化处理的输入数据;所述低位宽量化处理之后的输入数据在所述TEE中进行加密处理之后由所述TEE传输至所述GPU;所述至少一项线性子计算的计算结果由所述GPU传输给所述TEE,并在所述TEE中恢复为标准位宽的计算结果之后进行解密处理。
16.如权利要求15所述的方法,所述GPU支持处理的数据为第一位宽的浮点数;所述低位宽量化处理包括将数据的取值由所述第一位宽的浮点数转成第二位宽的定点数;其中,所述第二位宽低于所述第一位宽;
17.如权利要求16所述的方法,在所述TEE中将所述GPU返回的所述至少一项线性子计算的计算结果恢复为标准位宽的计算结果,包括:
18.如权利要求17所述的方法,所述低位宽量化为SmoothQuant量化;所述第一位宽为32位;所述第二位宽为8位;所述低位宽量化处理包括将数据的取值由32位的浮点数转成8位的整数。
19.如权利要求1所述的方法,所述目标LLM模型为采用Transformer架构的LLM模型;
20.一种基于LLM模型的推理计算装置,应用于部署了目标LLM模型的服务设备;其中,基于所述目标LLM模型进行的推理计算包含具有预设的执行顺序的多项子计算;所述装置包括:
21.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时实现权利要求1至19任一所述方法的步骤。
22.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至19任一所述方法的步骤。
23.一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现权利要求1至19任一所述方法的步骤。
...【技术特征摘要】
1.一种基于llm模型的推理计算方法,应用于部署了目标llm模型的服务设备;其中,基于所述目标llm模型进行的推理计算包含具有预设的执行顺序的多项子计算;所述方法包括:
2.如权利要求1所述的方法,基于所述目标llm模型进行的推理计算包含并行执行的多项推理计算;所述多项推理算中的各项推理计算分别包含具有所述预设的执行顺序的所述多项子计算。
3.如权利要求1所述的方法,所述目标llm模型为采用lora方法对预训练完成的初始llm模型进行微调训练得到的llm模型;所述目标llm模型的模型参数还包括低秩的lora参数矩阵;
4.如权利要求3所述的方法,基于所述第一推理结果和所述第二推理结果,生成与所述推理数据对应的推理结果,包括:
5.如权利要求1所述的方法,在所述tee中针对所述线性子计算的输入数据进行加密处理,包括:
6.如权利要求5所述的方法,所述一次性密钥为基于otp算法生成的与所述线性子计算的输入数据的长度相同的一次性随机密钥;
7.如权利要求6所述的方法,所述线性子计算的计算结果为针对所述模型参数矩阵与加密处理之后的所述线性子计算的输入数据进行矩阵乘法运算得到的矩阵运算结果;
8.如权利要求1所述的方法,所述至少一项线性子计算的输入数据为在所述tee中进行了稀疏化处理的输入数据;所述稀疏化处理之后的输入数据在所述tee中进行加密处理之后由所述tee传输至所述gpu。
9.如权利要求8所述的方法,所述至少一项线性子计算中的至少部分线性子计算的输入数据为在所述tee中进行了稀疏化处理的输入数据;其中,所述至少部分线性子计算为所述至少一项线性子计算中,将所述非线性子计算的计算结果作为输入数据的线性子计算。
10.如权利要求9所述的方法,所述至少部分线性子计算为所述至少一项线性子计算中,将所述至少一项非线性子计算中引入了激活函数的非线性子计算的计算结果作为输入数据的线性子计算。
11.如权利要求9所述的方法,
12.如权利要求11所述的方法,删除所述线性子计算的输入数据中包含的所述无效元素,包括:
13.如权利要求12所述的方法,
14.如权利要求13所述的方法,...
【专利技术属性】
技术研发人员:吴豪奇,王莹桂,王磊,
申请(专利权)人:蚂蚁科技集团股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。