CN117592089B - 一种数据处理方法、装置、设备以及存储介质 - Google Patents
一种数据处理方法、装置、设备以及存储介质 Download PDFInfo
- Publication number
- CN117592089B CN117592089B CN202410074978.6A CN202410074978A CN117592089B CN 117592089 B CN117592089 B CN 117592089B CN 202410074978 A CN202410074978 A CN 202410074978A CN 117592089 B CN117592089 B CN 117592089B
- Authority
- CN
- China
- Prior art keywords
- encryption
- weight parameter
- inference
- neural network
- operator
- 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
- 238000003860 storage Methods 0.000 title claims abstract description 41
- 238000003672 processing method Methods 0.000 title abstract description 16
- 238000003062 neural network model Methods 0.000 claims abstract description 123
- 238000000034 method Methods 0.000 claims abstract description 85
- 238000004364 calculation method Methods 0.000 claims abstract description 35
- 238000012545 processing Methods 0.000 claims description 63
- 230000015654 memory Effects 0.000 claims description 34
- 238000004590 computer program Methods 0.000 claims description 11
- 238000005516 engineering process Methods 0.000 abstract description 27
- 238000013473 artificial intelligence Methods 0.000 abstract description 21
- 238000013528 artificial neural network Methods 0.000 abstract description 11
- 230000008569 process Effects 0.000 description 28
- 230000006870 function Effects 0.000 description 22
- 230000000694 effects Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 10
- 238000003780 insertion Methods 0.000 description 9
- 230000037431 insertion Effects 0.000 description 9
- 238000013461 design Methods 0.000 description 8
- 238000012549 training Methods 0.000 description 8
- 238000004422 calculation algorithm Methods 0.000 description 7
- 239000011159 matrix material Substances 0.000 description 6
- 238000007726 management method Methods 0.000 description 5
- 238000003058 natural language processing Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000002787 reinforcement Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000005236 sound signal Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 241000070023 Phoenicopterus roseus Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000008451 emotion Effects 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000010897 surface acoustic wave method Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computational Linguistics (AREA)
- Bioethics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computer Hardware Design (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
Abstract
本申请实施例提供了一种数据处理方法、装置、设备以及存储介质,用于有效保护模型安全且无损模型推理性能。可应用于人工智能、云技术以及车联网等领域包括:获取加密神经网络模型和第一推理算子,加密神经网络包括加密权重参数的取值和密钥,第一推理算子包括系数因子、输入和加密权重参数的乘积项,且用于表示通过系数因子和该加密权重参数对该输入进行处理,该系数因子的取值是对密钥利用加密方式的逆运算计算得到,加密权重参数的取值是对原始权重参数的取值和密钥按照相乘或相除计算得到;获取待处理数据,待处理数据作为第一推理算子的输入;调用加密神经网络模型基于第一推理算子对待处理数据进行推理,以得到推理结果。
Description
技术领域
本申请涉及人工智能领域,尤其涉及一种数据处理方法、装置、设备以及存储介质。
背景技术
近年来,得益于人工智能技术的不断发展,各类人工智能产品也被广泛运用于诸如支付、风控、安防、智能驾驶等等方面。伴随着人工智能应用的普及,更便捷、更高效的用户体验也成了大家的追求目标,于是在传统的“云端服务”基础上,人工智能也逐渐被直接运用到端侧,在终端设备上直接完成所有模型加载以及推理运算过程。比如,最近大热的大语言模型(large language model,LLM)。LLM在应用于面向用户的场景时,任何用户都可以通过应用程序将模型下载到本地设备,而为了保证模型的运行安全以及用户的信息安全,这也需要对模型信息进行有效的加密保护,防止泄露。
在模型加密保护方案方面,现有的模型加密方案通常有如下几种方案:一种是基于传统的密码学进行延伸,将模型信息视为文件使用密钥进行加密,在终端设备需要使用时再进行解密。这样模型在运行过程中是已经是解密状态,用户可以通过一些技术手段从终端设备的运行内存中下载模型,导致模型泄露。另一种方案是根据模型结构对模型权重进行加密,比如对卷积算子的权重参数进行加密。模型进行推理时,无需在推理前对模型进行解密,但需要在模型中插入一些算子,对模型的实际效果进行还原。这样插入的算子会影响到模型推理性能。特别是在LLM场景下,模型规模较大且模型权重参数数量较多,通过插入算子对模型的推理效果进行还原会造成很大成本开销。
因此目前亟需一种无需推理前对模型进行解密且无损模型推理性能的数据处理方法。
发明内容
本申请实施例提供了一种数据处理方法、装置、设备以及存储介质,用于有效保护模型安全且无损模型推理性能。
有鉴于此,本申请一方面提供一种数据处理方法,包括:
获取加密神经网络模型和第一推理算子,该加密神经网络包括加密权重参数的取值和密钥,该第一推理算子包括系数因子、输入和该加密权重参数的乘积项,且用于表示通过系数因子和该加密权重参数对该输入进行处理,该第一推理算子中该系数因子的取值是对该密钥利用加密方式的逆运算计算得到,该加密权重参数的取值是对该原始权重参数的取值和该密钥按照该加密方式计算得到,该加密方式为将该原始权重参数的取值和该密钥进行相乘或者相除处理;
获取待处理数据,该待处理数据作为该第一推理算子的输入;
调用该加密神经网络模型基于该第一推理算子对该待处理数据进行推理,以得到推理结果。
本申请另一方面提供一种数据处理装置,包括:
获取模块,用于获取加密神经网络模型和第一推理算子,该加密神经网络包括加密权重参数的取值和密钥,该第一推理算子包括系数因子、输入和加密权重参数的乘积项,且用于表示通过系数因子和该加密权重参数对该输入进行处理,该第一推理算子中该系数因子是对该密钥利用加密方式的逆运算计算得到,该加密权重参数的取值是对该原始权重参数的取值和该密钥按照该加密方式计算得到,该加密方式为将该原始权重参数的取值和该密钥进行相乘或者相除处理;
获取待处理数据,该待处理数据作为该第一推理算子的输入;
处理模块,用于调用该加密神经网络模型基于该第一推理算子对该待处理数据进行推理,以得到推理结果。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,该获取模块,用于获取待加密的神经网络模型,确定该神经网络模型中的第一权重参数集合;
该处理模块,用于生成该第一权重参数集合中各个原始权重参数对应的加密系数,以得到该密钥;
将该密钥与该各个原始权重参数的取值进行相乘或者相除处理,以得到该加密权重参数的取值;
该装置还包括存储模块,该存储模块,用于存储该加密权重参数的取值和该密钥,以得到该加密神经网络模型。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,在该获取加密神经网络模型和第一推理算子之前,处理模块,用于利用该加密方式的逆运算对该密钥进行处理,以得到该系数因子的取值;
将该系数因子的取值与第二推理算子集成生成该第一推理算子,其中,该第二推理算子包括该输入与该加密权重参数的乘积项;
存储该第一推理算子。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,在该存储该第一推理算子之前,处理模块,用于利用代码混淆或者二进制文件加壳对该第一推理算子进行加密保护。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,存储模块,用于将该密钥与第二推理算子分别单独存储,其中,该第二推理算子包括该输入与该加密权重参数的乘积项,该第二推理算子和该密钥用于在推理过程中生成该第一推理算子。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,获取模块,用于获取存储的该加密神经网络模型以及该第二推理算子;
将该密钥加载至该第二推理算子;
基于该密钥确定该系数因子;
将该系数因子与该第二推理算子中该输入与该加密权重参数的乘积项进行相乘处理,以得到该第一推理算子。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,获取模块,用于获取该加密方式;利用该加密方式的逆运算对该密钥进行处理得到该系数因子。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,处理模块,用于将该密钥中各个加密系数与对应的原始权重参数进行相乘或相除处理,以得到该加密权重参数,其中每一个原始权重参数对应的加密系数不相同。
本申请另一方面提供一种计算机设备,包括:存储器、处理器以及总线系统;
其中,存储器用于存储程序;
处理器用于执行存储器中的程序,处理器用于根据程序代码中的指令执行上述各方面的方法;
总线系统用于连接存储器以及处理器,以使存储器以及处理器进行通信。
本申请的另一方面提供了一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面的方法。
本申请的另一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方面所提供的方法。
从以上技术方案可以看出,本申请实施例具有以下优点:通过对各个可加密的原始权重参数利用加密系数进行相乘或者相除处理,以实现对该原始权重参数的加密,从而实现对该神经网络模型的加密。由于是对神经网络模型的权重参数进行加密,因此在模型推理过程中,无需在推理前对模型进行解密,从而避免用户通过一些技术手段从终端设备的运行内存中下载模型,导致模型泄露。同时由于推理算子的计算特性是通过权重参数以及输入数据的乘积以得到输出结果,因此在模型推理时,只需要根据密钥设置推理算子的系数因子,使得该系数因子与加密权重参数的乘积等于原始权重参数就可以恢复模型的计算效果,避免了插入新的解密算子,从而实现模型推理性能无损的功能。
附图说明
图1为本申请实施例中应用场景的一个系统架构示意图;
图2为本申请实施例中模型加密方法的一个流程示意图;
图3为本申请实施例中模型加密方法的一个实施例示意图;
图4为本申请实施例中数据处理方法的一个实施例示意图;
图5为本申请实施例中数据处理装置的一个实施例示意图;
图6为本申请实施例中数据处理装置的另一个实施例示意图;
图7为本申请实施例中数据处理装置的另一个实施例示意图;
图8为本申请实施例中数据处理装置的另一个实施例示意图。
具体实施方式
本申请实施例提供了一种数据处理方法、装置、设备以及存储介质,用于有效保护模型安全且无损模型推理性能。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“对应于”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请实施例中,术语“模块”或“单元”是指有预定功能的计算机程序或计算机程序的一部分,并与其他相关部分一起工作以实现预定目标,并且可以通过使用软件、硬件(如处理电路或存储器)或其组合来全部或部分实现。同样的,一个处理器(或多个处理器或存储器)可以用来实现一个或多个模块或单元。此外,每个模块或单元都可以是包含该模块或单元功能的整体模块或单元的一部分。
近年来,得益于人工智能技术的不断发展,各类人工智能产品也被广泛运用于诸如支付、风控、安防、智能驾驶等等方面。伴随着人工智能应用的普及,更便捷、更高效的用户体验也成了大家的追求目标,于是在传统的“云端服务”基础上,人工智能也逐渐被直接运用到端侧,在终端设备上直接完成所有模型加载以及推理运算过程。比如,最近大热的大语言模型(large language model,LLM)。LLM在应用于面向用户的场景时,任何用户都可以通过应用程序将模型下载到本地设备,而为了保证模型的运行安全以及用户的信息安全,这也需要对模型信息进行有效的加密保护,防止泄露。在模型加密保护方案方面,现有的模型加密方案通常有如下几种方案:一种是基于传统的密码学进行延伸,将模型信息视为文件使用密钥进行加密,在终端设备需要使用时再进行解密。这样模型在运行过程中是已经是解密状态,用户可以通过一些技术手段从终端设备的运行内存中下载模型,导致模型泄露。另一种方案是根据模型结构对模型权重进行加密,比如对卷积算子的权重参数进行加密。模型进行推理时,无需在推理前对模型进行解密,但需要在模型中插入一些算子,对模型的实际效果进行还原。这样插入的算子会影响到模型推理性能。特别是在LLM场景下,模型规模较大且模型权重参数数量较多,通过插入算子对模型的推理效果进行还原会造成很大成本开销。因此目前亟需一种无需推理前对模型进行解密且无损模型推理性能的数据处理方法。
为了解决上述问题,本申请提供如下技术方案:获取加密神经网络模型和第一推理算子,该加密神经网络包括加密权重参数的取值和密钥,该第一推理算子包括系数因子、输入和该加密权重参数的乘积项,且用于表示通过系数因子和该加密权重参数对该输入进行处理,该第一推理算子中该系数因子的取值是对该密钥利用加密方式的逆运算计算得到,该加密权重参数的取值是对该原始权重参数的取值和该密钥按照该加密方式计算得到,该加密方式为将该原始权重参数取值和该密钥进行相乘或者相除处理;获取待处理数据,该待处理数据作为该第一推理算子的输入;调用该加密神经网络模型基于该第一推理算子对该待处理数据进行推理,以得到推理结果。这样通过对各个可加密的原始权重参数利用加密系数进行相乘或者相除处理,以实现对该原始权重参数的加密,从而实现对该神经网络模型的加密。由于是对神经网络模型的权重参数进行加密,因此在模型推理过程中,无需在推理前对模型进行解密,从而避免用户通过一些技术手段从终端设备的运行内存中下载模型,导致模型泄露。同时由于推理算子的计算特性是通过权重参数以及输入数据的乘积以得到输出结果,因此在模型推理时,只需要根据密钥设置推理算子的系数因子,使得该系数因子与加密权重参数的乘积等于原始权重参数就可以恢复模型的计算效果,避免了插入新的解密算子,从而实现模型推理性能无损的功能。
本申请各可选实施例的数据处理方法可以基于人工智能技术实现的。人工智能是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、预训练模型技术、操作/交互系统、机电一体化等。其中,预训练模型又称大模型、基础模型,经过微调后可以广泛应用于人工智能各大方向下游任务。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
预训练模型(Pre-training model),也称基石模型、大模型,指具有大参量的深度神经网络(Deep neural network,DNN),在海量未标记的数据上对其进行训练,利用大参量DNN的函数近似能力使PTM在数据上提取共性特征,经微调(fine tune)、参数高效微调(PEFT)、prompt-tuning等技术,适用于下游任务。因此,预训练模型可以在小样本(Few-shot)或零样本(Zero-shot)场景下达到理想效果。PTM按照处理的数据模态可以分为语言模型(ELMO,BERT,GPT)、视觉模型(swin-transformer,ViT,V-MOE)、语音模型(VALL-E)、多模态模型(ViBERT, CLIP,Flamingo,Gato)等,其中多模态模型指建立两种或以上数据模态特征表示的模型。预训练模型是输出人工智能生成内容(AIGC)重要工具,也可以作为连接多个具体任务模型的通用接口。即本申请中的神经网络模型可以理解为预训练模型。
本申请还涉及到云技术。其中,云技术(cloud technoolgy)是指在广域网或局域网内将硬件、软件、网络等系统资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
云技术基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行为的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。本申请中所涉及到的云技术主要指终端设备或者服务器之间可能通过“云”进行神经网络模型的下载以及存储等等。
为了方便理解,下面对本申请中的部分名词进行说明。
大语言模型(large language model,LLM):也称大型语言模型,是一种人工智能模型,旨在理解和生成人类语言。它们在大量的文本数据上进行训练,可以执行广泛的任务,包括文本总结、翻译、情感分析等等。LLM的特点是规模庞大,包含数十亿的参数,帮助它们学习语言数据中的复杂模式。这些模型通常基于深度学习架构,这有助于它们在各种自然语言处理(Natural Language Processing,NLP)任务上取得令人印象深刻的表现。
本申请实施例提供的一种数据处理方法、装置、设备及存储介质,用于有效保护模型安全且无损模型推理性能。下面说明本申请实施例提供的电子设备的示例性应用,本申请实施例提供的电子设备可以实施为各种类型的用户终端,也可以实施为服务器。
电子设备通过运行本申请实施例提供的数据处理方法,用于有效保护模型安全且无损模型推理性能。即提高电子设备有效保护模型安全且无损模型推理性能。
本申请在进行数据处理之前,需要对该神经网络进行加密处理,具体执行方案可以如下:获取待加密的神经网络模型,确定该神经网络模型中的第一权重参数集合;生成该第一权重参数集合中各个原始权重参数对应的加密系数,以得到该密钥;将该密钥与该各个原始权重参数的取值进行相乘或者相除处理,以得到该加密权重参数;存储该加密权重参数的取值和该密钥,以得到该加密神经网络模型。
上述模型加密方法可以实现成为独立的线上应用程序,安装在用户使用的计算机设备或者后台服务器中,方便用户使用该程序对进行模型加密。在该场景下,用户在获取到已训练好的神经网络模型之后,对该神经网络模型中各层网络结构的权重参数生成随机的加密系数,此时该加密系数将作为该神经网络模型的密钥;然后利用该密钥对该权重参数的取值进行相乘或者相除处理,以得到加密权重参数;将该加密权重参数的取值、该密钥以及该神经网络模型进行存储,得到加密神经网络模型;最后该加密神经网络可以交互给用户,进行线上部署。
本申请中,在加密神经网络模型交互完成之后,该加密神经网络模型可以应用于文本总结场景,比如终端设备通过相应的应用程序下载该加密神经网络模型,并在该终端设备中部署该加密神经网络模型以及该加密神经网络模型对应的推理算子(此时,该推理算子可以是已集成了密钥的定制化推理算子,也可以在部署过程中加载该密钥,然后基于该密钥设置系数因子的推理算子);部署完成之后,通过应用程序的输入界面输入待总结文本;此时该加密神经网络模型基于该推理算子对该待总结文本进行处理,得到最终的数据。
当然,除了应用于上述场景外,本申请实施例提供方法还可以应用于其他需要对模型进行加密的场景,同时,该加密神经网络模型也可以应用于其他场景,本申请实施例并不对具体的应用场景进行限定。
参见图1,图1是本申请实施例提供的模型加密方案或者数据处理方案的一个应用场景下的一个可选的架构示意图,为实现支撑一个模型加密方案或者数据处理方案,终端设备100通过网络200连接服务器300,服务器300连接数据库400,网络200可以是广域网或者局域网,又或者是二者的组合。其中用于实现模型加密方案或者数据处理方案的客户端部署于终端设备100上,其中,客户端可以通过浏览器的形式运行于终端设备100上,也可以通过独立的应用程序(application,APP)的形式运行于终端设备100上等,对于客户端的具体展现形式,此处不做限定。本申请涉及的服务器300可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端设备100可以是智能手机、平板电脑、笔记本电脑、掌上电脑、个人电脑、智能电视、智能手表、车载设备、可穿戴设备、智能语音交互设备、智能家电、飞行器等等,但并不局限于此。终端设备100以及服务器300可以通过有线或无线通信方式通过网络200进行直接或间接地连接,本申请在此不做限制。服务器300和终端设备100的数量也不做限制。本申请提供的方案可以由终端设备100独立完成,也可以由服务器300独立完成,还可以由终端设备100与服务器300配合完成,对此,本申请并不做具体限定。其中,数据库400,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。所谓“数据库”是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。数据库管理系统(Database ManagementSystem,DBMS)是为管理数据库而设计的电脑软件系统,一般具有存储、截取、安全保障、备份等基础功能。数据库管理系统可以依据它所支持的数据库模型来作分类,例如关系式、可扩展标记语言(Extensible Markup Language,XML);或依据所支持的计算机类型来作分类,例如服务器群集、移动电话;或依据所用查询语言来作分类,例如结构化查询语言(Structured Query Language,SQL)、XQuery;或依据性能冲量重点来作分类,例如最大规模、最高运行速度;亦或其他的分类方式。不论使用哪种分类方式,一些DBMS能够跨类别,例如,同时支持多种查询语言。在本申请中,数据库400可以用于存储密钥以及加密神经网络模型和原始神经网络模型,当然,密钥以及加密神经网络模型和原始神经网络模型的存储位置并不限于数据库,例如还可以存储于终端设备100、区块链或者服务器300的分布式文件系统中等。
在一些实施例中,服务器300和该终端设备100均可以执行本申请实施例提供的模型加密方法或数据处理方法。也可以服务器300和该终端设备100联合执行本申请实施例提供的模型加密方法或数据处理方法。
基于上述描述,下面以图2所示的流程示意图对本申请提供的模型加密方法进行说明:
首先,对原始神经网络模型通过加密工具进行加密处理,得到加密模型和密钥。应理解的是,该加密工具可以是根据实际情况编写的加密脚本软件,也可以是第三方加密程序。具体此处不做限定。
其次,为加密神经网络模型创建其推理算子。本申请中,可以将该密钥与该推理算子集成生成该加密神经网络模型的定制化推理算子;也可以将该密钥与该推理算子分开存储。如图2所示,在将该密钥与该推理算子集成生成该加密神经网络模型的定制化推理算子之后,为了保证该密钥与该加密神经网络模型在推理过程中的安全,可以为该定制化推理算子进行加固保护。本实施例中,该加固保护方法可以是代码混淆也可以是二进制文件加壳,具体此处不做限定。
最后,将密钥、加密神经网络模型以及该加密神经网络模型的推理算子一起进行部署,从而实现该神经网络模型的私有化部署。应理解的是,在图2所示的方案中,若生成该定制化推理算子,则最后可以仅部署该加密神经网络模型和该定制化推理算子。
结合上述介绍,下面以服务器为执行主体,对本申请中模型加密方法进行介绍,请参阅图3,本申请实施例中模型加密方法的一个实施例包括:
301、获取待加密的神经网络模型,确定该神经网络中的第一权重参数集合。
本实施例中,该神经网络模型可以是各种预训练模型,也可以是针对某一个应用场景训练得到的定制化模型。同时,该神经网络模型的推理算子包括输入和权重参数的乘积项。一个示例性方案中,该推理算子可以是通知矩阵乘应用算法,该神经网络模型可以是LLM。
其中,该通知矩阵乘算法可以设定如下:
cublasStatus_t cublasSgemm(
cublasHandle_t handle,
cublasOperation_t transa,
cublasOperation_t transb,
int m,
int n,
int k,
const float alpha,
float A,
int lda,
const float B,
int ldb,
const float beta,
float C,
int ldc);
而其具体的推理计算公式可以如下:
其中,该用于指示该神经网络模型的输出结果,该/>用于指示该神经网络模型的权重参数,该/>用于指示该神经网络模型的输入,该/>和/>用于指示该通知矩阵乘算法的运算常量。在一般计算过程中,可以硬编码该/>等于1,该/>等于0。即其推理公式可以设定如下:
在服务器获取到待加密的神经网络模型之后,对其权重参数进行遍历统计,确定可以进行加密处理的权重参数作为该第一权重参数集合。
一个示例性方案中,假设该神经网络模型为LLM 7B时,该第一权重参数集合可以通过如表1所示的信息进行确定。如表1所示,其具体展示了LLM 7B中一个transformerblock对应的所有参数名字、参数个数以及是否可以加密的信息。
表1
应理解的是,为了减少密钥的数量,可以对于同一个类型的权重参数可以采用同一个密钥进行加密处理。比如,对于权重参数“self_attn.q_proj”的全部1677216个参数值均采用一个加密系数进行加密处理。
可选的,本实施例中,该服务器也可以从可加密的权重参数之中采样部分权重参数进行加密。比如神经网络模型为LLM 7B时,其每一个transformer block中可以对7个权重参数进行加密,而该LLM 7B具有32个transformer block,因此在对该LLM 7B可进行加密处理的权重参数总量为224个,而该服务器可以从上述224个权重参数中采样200个权重参数进行加密处理或者采样180个权重参数进行加密处理,具体此处不做限定,只要可以实现该神经网络模型的加密即可。
302、生成该第一权重参数集合中各个原始权重参数对应的加密系数,以得到该神经网络模型的密钥。
本实施例中,该服务器根据加密工具为该第一权重参数集合中的各个原始权重参数生成对应的加密系数,此时该加密系数将作为该神经网络模型的加密密钥。应理解的是,该加密系数与该原始权重参数的数量应相同。
一个示例性方案中,该服务器为该第一权重参数集合中的原始权重参数生成一个加密系数,即该第一权重参数集合中的各个原始权重参数具有相同的加密系数。
另一个示例性方案中,该服务器可以为该第一权重参数集合中的各个原始权重参数随机生成对应的加密系数,即该第一权重参数集合中的各个原始权重参数可以具有相同的加密系数,也可以具有不同的加密系数。比如神经网络模型为LLM 7B时,其可进行加密处理的权重参数总量为224个,假设该第一权重参数集合中的原始权重参数也是224个,则生成224个不相同的加密系数。如表1中的权重参数“self_attn.q_proj”的对应加密系数2.1;权重参数“mlp.up_proj”的对应加密系数2.2,权重参数“self_attn.q_proj”的对应加密系数2.21,依此类推,该神经网络模型为LLM 7B的每一个权重参数均具有不同的加密系数。同理,在随机生成加密系数时,也可能有部分加密系数是相同。如表1中的权重参数“self_attn.q_proj”的对应加密系数2.1;权重参数“mlp.up_proj”的对应加密系数2.2,权重参数“self_attn.q_proj”的对应加密系数2.2,权重参数“mlp.down_proj”的对应加密系数2.3等等。
即服务器在生成该加密系数时,可以采用不同的方式,只要生成该加密系数即可,具体方式此处不做限定。
应理解的是,为了减少计算复杂度,可以对该加密系数的取值范围进行限定。即该服务器可以在预设范围内随机生成多个加密系数。比如,该预测范围可以设定为2.0至2.5。
一个示例性方案中,假设该神经网络模型为LLM 7B时,如表1所示,该LLM 7B每一个transformer block中可以对7个权重参数进行加密,而该LLM 7B具有32个transformerblock,因此在对该LLM 7B进行加密时,可以随机生成327=224个加密系数。此时这224个加密系数将作为该LLM 7B的密钥。
另一个示例性方案中,假设该神经网络模型为LLM 7B时,如表1所示,该LLM 7B每一个transformer block中可以对7个权重参数进行加密,而该LLM 7B具有32个transformer block,因此在对该LLM 7B进行加密时,可以先从327=224个可加密权重参数中采样得到180个权重参数作为该第一权重参数集合,然后随机生成180个加密系数。此时这180个加密系数将作为该LLM 7B的密钥。
303、将该密钥与该各个原始权重参数的取值进行相乘或者相除处理,以得到多个加密权重参数。
本实施例中,该服务器将该密钥与该各个原始权重参数的取值进行相乘或者相除处理,从而实现对该原始权重参数进行加密,得到了该神经网络模型的多个加密权重参数。
一个示例性方案中,假设该神经网络模型为LLM 7B时,如表1所示,该LLM 7B每一个transformer block中可以对7个权重参数进行加密,而该LLM 7B具有32个transformerblock,因此在对该LLM 7B进行加密时,需要随机生成327=224个加密系数(本实施例中,可以表示为/>,其中该i的取值可以是0至223)。此时这224个加密系数将作为该LLM 7B的密钥。假设该/>设置为第一个transformer block中权重参数“self_attn.q_proj”的加密系数,则需要对该权重参数“self_attn.q_proj”乘以该/>或者除以该/>,从而得到加密后的“self_attn.q_proj”。
304、存储该加密权重参数的取值和该密钥,以得到该神经网络模型的加密神经网络模型。
在对该神经网络模型的可加密权重参数进行加密之后,将该加密权重参数与该密钥进行保存,从而得到该神经网络模型的加密神经网络模型。
本实施例中,该加密神经网络模型可以理解为包括结构参数文件(即其具体的网络结构)和权重参数文件(即各个网络结构对应的权重参数,该权重参数包括加密权重参数和未加密权重参数)。
本实施例中,在生成该加密神经网络模型与该密钥之后,为了实现该加密神经网络模型的私有化部署,还可以将该密钥与该加密神经网络模型的推理算子进行相应的处理。
一个实现方案中,可以为该加密神经网络模型创建定制化推理算子(即本申请中的第一推理算子),此时就需要将该密钥与该加密神经网络模型的通用推理算子进行集成,生成该定制化推理算子。而由于该密钥与该通用推理算子集成为一体,为了保证该密钥的安全,进而保证该加密神经网络模型的安全,需要对该定制化推理算子进行加固保护。本实施例中,该加固保护手段可以是代码混淆也可以是二进制文件加壳,具体此处不做限定。
其中,该代码混淆是指将计算机程序的代码,转换成一种功能上等价,但是难于阅读和理解的形式的行为。其不仅仅是保护代码,也有精简编译后程序大小的作用。常见有名称混淆、流混淆、异常混淆、字符串加密混淆以及引用混淆等方式。
其中,名称混淆是将有意义的类,字段、方法名称更改为无意义的字符串。生成的新名称越短,字节代码越小。在名称混淆的字节代码中,包,类,字段和方法名称已重命名,并且永远不能恢复原始名称。
流混淆是指用于if, switch, while,for等关键字,对字节码进行细微的修改,模糊控制流,而不改变代码在运行时的行为。通常情况下,选择和循环等逻辑构造会被更改,因此它们不再具有直接等效的Java源代码。流模糊的字节码通常强制反编译器将一系列标签和非法的goto语句插入到它们生成的源代码中。源代码有时会因为反编译错误而变得更加模糊。
二进制文件加壳是指在二进制的程序中植入一段代码,在运行的时候先取得程序的控制权,然后再把控制权交还给原始代码,达到隐藏入口点的目的。其中,壳是指在一个程序的外面再包裹上另外一段代码,保护里面的代码不被非法修改或者反编译。而二进制文件加壳的方式可以为加密加壳也可以是伪装壳也可以是多层壳,本实施例中,二进制文件加完的具体方式不做限定。
上面描述了该神经网络模型的加密过程下面以服务器为执行主体,对本申请中的数据处理方法进行说明,如图4所示,其具体流程可以如下:
401、获取加密神经网络模型和第一推理算子,该加密神经网络包括加密权重参数和密钥,该第一推理算子包括系数因子、输入和该加密权重参数的乘积项,且用于表示通过系数因子和该加密权重参数对该输入进行处理,该第一推理算子中该系数因子的取值是对该密钥利用加密方式的逆运算计算得到,该加密权重参数的取值是对该原始权重参数的取值和该密钥按照该加密方式计算得到,该加密方式为将该原始权重参数的取值和该密钥进行相乘或者相除处理。
本实施例中,该服务器上部署有该加密神经网络模型以及该第一推理算子。该第一推理算子是对第二推理算子中输入与加密权重参数的乘积项设置系数因子得到,该系数因子用于使得该加密权重参数恢复至该原始权重参数,同时该系数因子是对该密钥利用加密方式的逆运算计算得到。
而在本实施例中,在部署该第一推理算子时,可以采用如下几种方式:
一种实现方案中,若在加密过程中,基于密钥与该加密神经网络模型的第二推理算子已集成生成该第一推理算子,则在部署过程中直接部署该第一推理算子即可。
另一种实现方案中,若该密钥单独存储,则在部署该第一推理算子时,需要先部署该加密神经网络模型的第二推理算子,然后加载该密钥;最后基于该密钥设置该第二推理算子中的系数因子,从而得到该第一推理算子。
本实施例中,在该第一推理算子与该第二推理算子均基于通知矩阵乘算法进行推理时,推理算子可以设定如下:
cublasStatus_t cublasSgemm(
cublasHandle_t handle,
cublasOperation_t transa,
cublasOperation_t transb,
int m,
int n,
int k,
const float alpha,
float A,
int lda,
const float B,
int ldb,
const float beta,
float C,
int ldc);
而其具体的推理计算公式可以如下:
其中,该用于指示该神经网络模型的输出结果,该/>用于指示该神经网络模型的权重参数,该/>用于指示该神经网络模型的输入。
其于上述描述可知,基于该密钥设置该第二推理算子中通知矩阵乘算法的系数因子的方法与基于密钥与该神经网络模型的第二推理算子已集成生成该第一推理算子的方法相似,可以如下:
即先获取该密钥加密该原始权重参数的加密方式(即相乘或相除);利用该加密方式的逆运算对该密钥进行处理得到该系数因子;将该系数因子加载至该第二推理算子的乘积项中(即将该系数因子与该第二推理算子中的输入与加密权重参数的乘积项相乘),以得到该第一推理算子。
比如,假设该神经网络模型为LLM 7B时,如表1所示,该LLM 7B每一个transformerblock中可以对7个权重参数进行加密,而该LLM 7B具有32个transformer block,因此在对该LLM 7B进行加密时,需要随机生成327=224个加密系数(本实施例中,可以表示为/>,其中该i的取值可以是0至223)。此时这224个加密系数将作为该LLM 7B的密钥。假设该/>设置为第一个transformer block中权重参数“self_attn.q_proj”的加密系数,且对该权重参数“self_attn.q_proj”乘以该/>得到加密后的“self_attn.q_proj”。那该第一推理算子中的系数因子可以是/>。
同理,在该设置为第一个transformer block中权重参数“self_attn.q_proj”的加密系数,且对该权重参数“self_attn.q_proj”的取值除以该/>得到加密后的“self_attn.q_proj”。那该第一推理算子中的系数因子可以是/>。
基于上述描述,一个示例性方案中,假设该第一推理算子为DeepSpeed框架,则实现该第一推理算子的具体方式可以如下:
float alpha =(T)1.0;
float gemm_beta =(T)0.0;
cublas_gemm_ex(InferenceContext::Instance().GetCublasHandle(),
CUBLAS_OP_T,
CUBLAS_OP_n,
weight.size(0),
bsz,
weight.size(1),
&alpha,
&gemm_beta,
Weight16,
(T)input,
(T)output,
#ifdef_HIP_PLATFORM_HCC_
rocblas_gemm_algo_standeard);
#else
CUBLAS_GEMM_DEFAULT_TENSOR_OP,
Hidden_size);
#endif
402、获取待处理数据,该待处理数据作为该第一推理算子的输入。
本实施例中,该神经网络模型可以应用于多种应用场景,因此其待处理数据可以是多种来源,具体此处不做限定。比如应用于文本分类时,该待处理数据可以是待分类文本;应用于图像识别时,该待处理数据可以是待识别图像;应用于语音识别时,该待处理数据可以是待识别语音数据等等。
403、调用该加密神经网络模型基于该第一推理算子对该待处理数据进行推理,以得到推理结果。
在本申请中,将该待处理数据作为该第一推理算子的输入项,通过与该第一推理算子的系数因子和加密权重参数进行乘积处理,以得到该待处理数据的输出结果;然后基于该加密神经网络模型的具体应用场景输出相应的推理结果。比如应用于文本分类时,该推理结果可以是待分类文本的类型;在应用于图像识别时,该推理结果可以是待识别图像的识别结果(比如图像是否包括目标元素)等等。
通过上述描述可知,本申请提供的技术方案中,通过对各个可加密的原始权重参数利用加密系数进行相乘或者相除处理,以实现对该原始权重参数的加密,从而实现对该神经网络模型的加密。由于是对神经网络模型的权重参数进行加密,因此在模型推理过程中,无需在推理前对模型进行解密,从而避免用户通过一些技术手段从终端设备的运行内存中下载模型,导致模型泄露。同时由于推理算子的计算特性是通过权重参数以及输入数据的乘积以得到输出结果,因此在模型推理时,只需要根据密钥设置推理算子的系数因子,使得该系数因子与加密权重参数的乘积等于原始权重参数就可以恢复模型的计算效果,避免了插入新的解密算子,从而实现模型推理性能无损的功能。
下面对本申请中的数据处理装置进行详细描述,请参阅图5,图5为本申请实施例中数据处理装置的一个实施例示意图,数据处理装置20包括:
获取模块201,用于获取加密神经网络模型和第一推理算子,该加密神经网络包括加密权重参数的取值和密钥,该第一推理算子包括系数因子、输入和加密权重参数的乘积项,且用于表示通过系数因子和该加密权重参数对该输入进行处理,该第一推理算子中该系数因子是对该密钥利用加密方式的逆运算计算得到,该加密权重参数的取值是对该原始权重参数的取值和该密钥按照该加密方式计算得到,该加密方式为将该原始权重参数的取值和该密钥进行相乘或者相除处理;
获取待处理数据,该待处理数据作为该第一推理算子的输入;
处理模块202,用于调用该加密神经网络模型基于该第一推理算子对该待处理数据进行推理,以得到推理结果。
本申请实施例中,提供了一种数据处理装置。采用上述装置,通过对各个可加密的原始权重参数利用加密系数进行相乘或者相除处理,以实现对该原始权重参数的加密,从而实现对该神经网络模型的加密。由于是对神经网络模型的权重参数进行加密,因此在模型推理过程中,无需在推理前对模型进行解密,从而避免用户通过一些技术手段从终端设备的运行内存中下载模型,导致模型泄露。同时由于推理算子的计算特性是通过权重参数以及输入数据的乘积以得到输出结果,因此在模型推理时,只需要根据密钥设置推理算子的系数因子,使得该系数因子与加密权重参数的乘积等于原始权重参数就可以恢复模型的计算效果,避免了插入新的解密算子,从而实现模型推理性能无损的功能。
可选地,在上述图5所对应的实施例的基础上,如图6所示,本申请实施例提供的数据处理装置20的另一实施例中,
该获取模块201,用于获取待加密的神经网络模型,确定该神经网络模型中的第一权重参数集合;
该处理模块202,用于生成该第一权重参数集合中各个原始权重参数对应的加密系数,以得到该密钥;
将该密钥与该各个原始权重参数的取值进行相乘或者相除处理,以得到该加密权重参数的取值;
该装置还包括存储模块203,该存储模块203,用于存储该加密权重参数的取值和该密钥,以得到该加密神经网络模型。
本申请实施例中,提供了一种数据处理装置。采用上述装置,通过对各个可加密的原始权重参数利用加密系数进行相乘或者相除处理,以实现对该原始权重参数的加密,从而实现对该神经网络模型的加密。由于是对神经网络模型的权重参数进行加密,因此在模型推理过程中,无需在推理前对模型进行解密,从而避免用户通过一些技术手段从终端设备的运行内存中下载模型,导致模型泄露。同时由于推理算子的计算特性是通过权重参数以及输入数据的乘积以得到输出结果,因此在模型推理时,只需要根据密钥设置推理算子的系数因子,使得该系数因子与加密权重参数的乘积等于原始权重参数就可以恢复模型的计算效果,避免了插入新的解密算子,从而实现模型推理性能无损的功能。
可选地,在上述图6所对应的实施例的基础上,本申请实施例提供的数据处理装置20的另一实施例中, 在该获取加密神经网络模型和第一推理算子之前,处理模块202,用于利用该加密方式的逆运算对该密钥进行处理,以得到该系数因子的取值;
将该系数因子的取值与第二推理算子集成生成该第一推理算子,其中,该第二推理算子包括该输入与该加密权重参数的乘积项;
该存储模块203,用于存储该第一推理算子。
本申请实施例中,提供了一种数据处理装置。采用上述装置,将密钥与推理算子进行集成从而生成一个定制化的推理算子,从而实现模型的专用化,同时在模型推理时,减少密钥加载的过程,进而加快模型的推理过程。
可选地,在上述图6所对应的实施例的基础上,本申请实施例提供的数据处理装置20的另一实施例中,在该存储该第一推理算子之前,处理模块202,用于利用代码混淆或者二进制文件加壳对该第一推理算子进行加密保护。
本申请实施例中,提供了一种数据处理装置。采用上述装置,对于定制化推理算子进行加固保护,这样可以有效保护密钥和加密模型的安全。
可选地,在上述图6所对应的实施例的基础上,本申请实施例提供的数据处理装置20的另一实施例中,存储模块203,用于将该密钥与第二推理算子分别单独存储,其中,该第二推理算子包括该输入与该加密权重参数的乘积项,该第二推理算子和该密钥用于在推理过程中生成该第一推理算子。
本申请实施例中,提供了一种数据处理装置。采用上述装置,将密钥与推理算子分开存储可以使得加密模型可以使用多种推理算子,从而增加加密模型的应用场景。
可选地,在上述图6所对应的实施例的基础上,本申请实施例提供的数据处理装置20的另一实施例中,获取模块201,用于获取存储的该加密神经网络模型以及该第二推理算子;
将该密钥加载至该第二推理算子;
基于该密钥确定该系数因子;
将该系数因子与该第二推理算子中该输入与该加密权重参数的乘积项进行相乘处理,以得到该第一推理算子。
本申请实施例中,提供了一种数据处理装置。采用上述装置,通过对各个可加密的原始权重参数利用加密系数进行相乘或者相除处理,以实现对该原始权重参数的加密,从而实现对该神经网络模型的加密。由于是对神经网络模型的权重参数进行加密,因此在模型推理过程中,无需在推理前对模型进行解密,从而避免用户通过一些技术手段从终端设备的运行内存中下载模型,导致模型泄露。同时由于推理算子的计算特性是通过权重参数以及输入数据的乘积以得到输出结果,因此在模型推理时,只需要根据密钥设置推理算子的系数因子,使得该系数因子与加密权重参数的乘积等于原始权重参数就可以恢复模型的计算效果,避免了插入新的解密算子,从而实现模型推理性能无损的功能。
可选地,在上述图6所对应的实施例的基础上,本申请实施例提供的数据处理装置20的另一实施例中,
获取模块201,用于获取该加密方式;利用该加密方式的逆运算对该密钥进行处理得到该系数因子。
本申请实施例中,提供了一种数据处理装置。采用上述装置,通过对各个可加密的原始权重参数利用加密系数进行相乘或者相除处理,以实现对该原始权重参数的加密,从而实现对该神经网络模型的加密。由于是对神经网络模型的权重参数进行加密,因此在模型推理过程中,无需在推理前对模型进行解密,从而避免用户通过一些技术手段从终端设备的运行内存中下载模型,导致模型泄露。同时由于推理算子的计算特性是通过权重参数以及输入数据的乘积以得到输出结果,因此在模型推理时,只需要根据密钥设置推理算子的系数因子,使得该系数因子与加密权重参数的乘积等于原始权重参数就可以恢复模型的计算效果,避免了插入新的解密算子,从而实现模型推理性能无损的功能。
可选地,在上述图6所对应的实施例的基础上,本申请实施例提供的数据处理装置20的另一实施例中,
处理模块202,用于将该密钥中各个加密系数与对应的原始权重参数进行相乘或相除处理,以得到该加密权重参数,其中每一个原始权重参数对应的加密系数不相同。
本申请实施例中,提供了一种数据处理装置。采用上述装置,可以增加密钥的复杂度,从而提高神经网络模型的加密安全度。
本申请提供的数据处理装置可用于服务器,请参阅图7,图7是本申请实施例提供的一种服务器结构示意图,该服务器300可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)322(例如,一个或一个以上处理器)和存储器332,一个或一个以上存储应用程序342或数据344的存储介质330(例如一个或一个以上海量存储设备)。其中,存储器332和存储介质330可以是短暂存储或持久存储。存储在存储介质330的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储介质330通信,在服务器300上执行存储介质330中的一系列指令操作。
服务器300还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341,例如Windows ServerTM,Mac OS XTM,UnixTM, LinuxTM,FreeBSDTM等等。
上述实施例中由服务器所执行的步骤可以基于该图7所示的服务器结构。
本申请提供的数据处理装置可用于终端设备,请参阅图8,为了便于说明,仅示出了与本申请实施例相关的部分,具体技术细节未揭示的,请参照本申请实施例方法部分。在本申请实施例中,以终端设备为智能手机为例进行说明:
图8示出的是与本申请实施例提供的终端设备相关的智能手机的部分结构的框图。参考图8,智能手机包括:射频(radio frequency,RF)电路410、存储器420、输入单元430、显示单元440、传感器450、音频电路460、无线保真(wireless fidelity,WiFi)模块470、处理器480、以及电源490等部件。本领域技术人员可以理解,图8中示出的智能手机结构并不构成对智能手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图8对智能手机的各个构成部件进行具体的介绍:
RF电路410可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器480处理;另外,将设计上行的数据发送给基站。通常,RF电路410包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(low noiseamplifier,LNA)、双工器等。此外,RF电路410还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统 (globalsystem of mobile communication,GSM)、通用分组无线服务(general packet radioservice,GPRS)、码分多址(code division multiple access,CDMA)、宽带码分多址(wideband code division multiple access, WCDMA)、长期演进 (long termevolution,LTE)、电子邮件、短消息服务(short messaging service,SMS)等。
存储器420可用于存储软件程序以及模块,处理器480通过运行存储在存储器420的软件程序以及模块,从而执行智能手机的各种功能应用以及数据处理。存储器420可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据智能手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元430可用于接收输入的数字或字符信息,以及产生与智能手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元430可包括触控面板431以及其他输入设备432。触控面板431,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板431上或在触控面板431附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板431可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器480,并能接收处理器480发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板431。除了触控面板431,输入单元430还可以包括其他输入设备432。具体地,其他输入设备432可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元440可用于显示由用户输入的信息或提供给用户的信息以及智能手机的各种菜单。显示单元440可包括显示面板441,可选的,可以采用液晶显示器(liquidcrystal display,LCD)、有机发光二极管(organic light-emitting diode,OLED)等形式来配置显示面板441。进一步的,触控面板431可覆盖显示面板441,当触控面板431检测到在其上或附近的触摸操作后,传送给处理器480以确定触摸事件的类型,随后处理器480根据触摸事件的类型在显示面板441上提供相应的视觉输出。虽然在图8中,触控面板431与显示面板441是作为两个独立的部件来实现智能手机的输入和输入功能,但是在某些实施例中,可以将触控面板431与显示面板441集成而实现智能手机的输入和输出功能。
智能手机还可包括至少一种传感器450,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板441的亮度,接近传感器可在智能手机移动到耳边时,关闭显示面板441和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别智能手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于智能手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路460、扬声器461,传声器462可提供用户与智能手机之间的音频接口。音频电路460可将接收到的音频数据转换后的电信号,传输到扬声器461,由扬声器461转换为声音信号输出;另一方面,传声器462将收集的声音信号转换为电信号,由音频电路460接收后转换为音频数据,再将音频数据输出处理器480处理后,经RF电路410以发送给比如另一智能手机,或者将音频数据输出至存储器420以便进一步处理。
WiFi属于短距离无线传输技术,智能手机通过WiFi模块470可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图8示出了WiFi模块470,但是可以理解的是,其并不属于智能手机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器480是智能手机的控制中心,利用各种接口和线路连接整个智能手机的各个部分,通过运行或执行存储在存储器420内的软件程序和/或模块,以及调用存储在存储器420内的数据,执行智能手机的各种功能和处理数据,从而对智能手机进行整体控制。可选的,处理器480可包括一个或多个处理单元;可选的,处理器480可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器480中。
智能手机还包括给各个部件供电的电源490(比如电池),可选的,电源可以通过电源管理系统与处理器480逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
尽管未示出,智能手机还可以包括摄像头、蓝牙模块等,在此不再赘述。
上述实施例中由终端设备所执行的步骤可以基于该图8所示的终端设备结构。
本申请实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行如前述各个实施例描述的方法。
本申请实施例中还提供一种包括程序的计算机程序产品,当其在计算机上运行时,使得计算机执行前述各个实施例描述的方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (17)
1.一种数据处理方法,其特征在于,包括:
获取加密神经网络模型和第二推理算子,其中,所述加密神经网络模型包括加密权重参数的取值和密钥;
将所述密钥加载至所述第二推理算子;
基于所述密钥确定所述第二推理算子的系数因子;
将所述系数因子与所述第二推理算子中的输入与加密权重参数的乘积项进行相乘处理,以得到第一推理算子,所述第一推理算子包括系数因子、输入和所述加密权重参数的乘积项,且用于表示通过系数因子和所述加密权重参数对所述输入进行处理,所述第一推理算子中所述系数因子的取值是对所述密钥利用加密方式的逆运算计算得到,所述加密权重参数的取值是对原始权重参数的取值和所述密钥按照所述加密方式计算得到,所述加密方式为将所述原始权重参数的取值和所述密钥进行相乘或者相除处理;
获取待处理数据,所述待处理数据作为所述第一推理算子的输入;
调用所述加密神经网络模型基于所述第一推理算子对所述待处理数据进行推理,以得到推理结果。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取待加密的神经网络模型,确定所述神经网络模型中的第一权重参数集合;
生成所述第一权重参数集合中各个原始权重参数对应的加密系数,以得到所述密钥;
将所述密钥与所述各个原始权重参数的取值进行相乘或者相除处理,以得到所述加密权重参数的取值;
存储所述加密权重参数的取值和所述密钥,以得到所述加密神经网络模型。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
存储所述第一推理算子。
4.根据权利要求3所述的方法,其特征在于,在所述存储所述第一推理算子之前,所述方法还包括:
利用代码混淆或者二进制文件加壳对所述第一推理算子进行加密保护。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述密钥与第二推理算子分别单独存储。
6.根据权利要求5所述的方法,其特征在于,所述基于所述密钥确定所述第二推理算子的系数因子包括:
获取所述加密方式;
利用所述加密方式的逆运算对所述密钥进行处理得到所述系数因子。
7.根据权利要求2至6中任一项所述的方法,其特征在于,将所述密钥与各个原始权重参数进行相乘或者相除处理,以得到所述加密权重参数包括:
将所述密钥中各个加密系数与对应的原始权重参数进行相乘或相除处理,以得到所述加密权重参数,其中每一个原始权重参数对应的加密系数不相同。
8.一种数据处理装置,其特征在于,包括:
获取模块,用于获取加密神经网络模型和第二推理算子,其中,所述加密神经网络模型包括加密权重参数的取值和密钥;将所述密钥加载至所述第二推理算子;基于所述密钥确定所述第二推理算子的系数因子;将所述系数因子与所述第二推理算子中的输入与加密权重参数的乘积项进行相乘处理,以得到第一推理算子,所述第一推理算子包括系数因子、输入和所述加密权重参数的乘积项,且用于表示通过系数因子和所述加密权重参数对所述输入进行处理,所述第一推理算子中所述系数因子的取值是对所述密钥利用加密方式的逆运算计算得到,所述加密权重参数的取值是对原始权重参数的取值和所述密钥按照所述加密方式计算得到,所述加密方式为将所述原始权重参数的取值和所述密钥进行相乘或者相除处理;
获取待处理数据,所述待处理数据作为所述第一推理算子的输入;
处理模块,用于调用所述加密神经网络模型基于所述第一推理算子对所述待处理数据进行推理,以得到推理结果。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括存储模块;
所述获取模块,用于获取待加密的神经网络模型,确定所述神经网络模型中的第一权重参数集合;
所述处理模块,用于生成所述第一权重参数集合中各个原始权重参数对应的加密系数,以得到所述密钥;将所述密钥与所述各个原始权重参数的取值进行相乘或者相除处理,以得到所述加密权重参数的取值;
所述存储模块,用于存储所述加密权重参数的取值和所述密钥,以得到所述加密神经网络模型。
10.根据权利要求8所述的装置,其特征在于,所述装置还包括:
存储模块,用于存储所述第一推理算子。
11.根据权利要求10所述的装置,其特征在于,在所述存储所述第一推理算子之前,所述处理模块,用于利用代码混淆或者二进制文件加壳对所述第一推理算子进行加密保护。
12.根据权利要求8所述的装置,其特征在于,所述装置还包括:
存储模块,用于将所述密钥与第二推理算子分别单独存储。
13.根据权利要求12所述的装置,其特征在于,所述获取模块,用于获取所述加密方式;利用所述加密方式的逆运算对所述密钥进行处理得到所述系数因子。
14.根据权利要求9至13中任一项所述的装置,其特征在于,所述处理模块,用于将所述密钥中各个加密系数与对应的原始权重参数进行相乘或相除处理,以得到所述加密权重参数,其中每一个原始权重参数对应的加密系数不相同。
15.一种计算机设备,其特征在于,包括:存储器、处理器以及总线系统;
其中,所述存储器用于存储程序;
所述处理器用于执行所述存储器中的程序,所述处理器用于根据程序代码中的指令执行权利要求1至7中任一项所述的方法;
所述总线系统用于连接所述存储器以及所述处理器,以使所述存储器以及所述处理器进行通信。
16.一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1至7中任一项所述的方法。
17.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机指令,计算机设备的处理器执行所述计算机指令,使得所述计算机设备执行如权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410074978.6A CN117592089B (zh) | 2024-01-18 | 2024-01-18 | 一种数据处理方法、装置、设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410074978.6A CN117592089B (zh) | 2024-01-18 | 2024-01-18 | 一种数据处理方法、装置、设备以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117592089A CN117592089A (zh) | 2024-02-23 |
CN117592089B true CN117592089B (zh) | 2024-05-07 |
Family
ID=89918755
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410074978.6A Active CN117592089B (zh) | 2024-01-18 | 2024-01-18 | 一种数据处理方法、装置、设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117592089B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114996666A (zh) * | 2021-03-02 | 2022-09-02 | 富泰华工业(深圳)有限公司 | 加解密神经网络模型的方法、电子设备及存储介质 |
CN115758412A (zh) * | 2022-11-22 | 2023-03-07 | 科大讯飞股份有限公司 | 数据同态加密推理系统及方法 |
CN115952529A (zh) * | 2023-03-09 | 2023-04-11 | 北京云安腾宇科技有限公司 | 一种用户数据处理方法、计算设备及存储介质 |
CN116187414A (zh) * | 2021-11-26 | 2023-05-30 | 华为云计算技术有限公司 | 一种神经网络模型加解密方法以及相关系统 |
CN117094008A (zh) * | 2023-07-06 | 2023-11-21 | 中国电信股份有限公司技术创新中心 | 神经网络模型加密方法、解密方法、装置、设备及介质 |
CN117195972A (zh) * | 2023-09-12 | 2023-12-08 | 中国电子科技集团公司第三十研究所 | 一种基于ckks的密文神经网络构建方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11575500B2 (en) * | 2018-07-25 | 2023-02-07 | Sap Se | Encrypted protection system for a trained neural network |
CN110619220B (zh) * | 2019-08-09 | 2022-03-11 | 北京小米移动软件有限公司 | 对神经网络模型加密的方法及装置、存储介质 |
-
2024
- 2024-01-18 CN CN202410074978.6A patent/CN117592089B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114996666A (zh) * | 2021-03-02 | 2022-09-02 | 富泰华工业(深圳)有限公司 | 加解密神经网络模型的方法、电子设备及存储介质 |
CN116187414A (zh) * | 2021-11-26 | 2023-05-30 | 华为云计算技术有限公司 | 一种神经网络模型加解密方法以及相关系统 |
CN115758412A (zh) * | 2022-11-22 | 2023-03-07 | 科大讯飞股份有限公司 | 数据同态加密推理系统及方法 |
CN115952529A (zh) * | 2023-03-09 | 2023-04-11 | 北京云安腾宇科技有限公司 | 一种用户数据处理方法、计算设备及存储介质 |
CN117094008A (zh) * | 2023-07-06 | 2023-11-21 | 中国电信股份有限公司技术创新中心 | 神经网络模型加密方法、解密方法、装置、设备及介质 |
CN117195972A (zh) * | 2023-09-12 | 2023-12-08 | 中国电子科技集团公司第三十研究所 | 一种基于ckks的密文神经网络构建方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN117592089A (zh) | 2024-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110417543B (zh) | 一种数据加密方法、装置和存储介质 | |
CN105302587B (zh) | 数据更新方法及装置 | |
CN106598584B (zh) | 一种处理资源文件的方法、装置和系统 | |
CN106528125A (zh) | 一种数据文件的增量更新方法和服务器、客户端以及系统 | |
CN103400076A (zh) | 一种移动终端上的恶意软件检测方法、装置和系统 | |
CN105678553A (zh) | 一种处理订单信息的方法、装置和系统 | |
CN107103211B (zh) | Sdk发送、应用发布、应用运行方法及装置 | |
CN112035897A (zh) | 区块链存证方法和相关装置 | |
CN108762798A (zh) | 一种增量更新文件的方法及装置 | |
CN107786569A (zh) | 一种验证码发送方法、接收方法及相关设备 | |
CN106528334A (zh) | 数据备份方法及装置 | |
CN114973351A (zh) | 人脸识别方法、装置、设备及存储介质 | |
CN109271779A (zh) | 一种安装包检测方法、终端设备及服务器 | |
CN115630389A (zh) | 数据处理方法、装置、设备及存储介质 | |
CN103455751A (zh) | 一种密码提示的生成方法、装置和终端设备 | |
CN107592409A (zh) | 应用程序控制方法及装置 | |
CN112286586A (zh) | 一种插件的配置方法及相关设备 | |
CN112486567B (zh) | 代码的合并请求发送方法、装置、电子设备及存储介质 | |
CN104426848A (zh) | 登录网页应用的方法和系统 | |
CN108718302A (zh) | 一种消息记录的同步方法、装置以及设备 | |
CN117592089B (zh) | 一种数据处理方法、装置、设备以及存储介质 | |
CN107102913A (zh) | 数据备份方法、装置和计算机设备 | |
CN114461183B (zh) | 基于用户标签的ai模型快速组合的方法、装置及存储介质 | |
CN104376235A (zh) | 一种归档文件包的签名方法和装置 | |
CN105260219B (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 |