CN114764501A - 数据处理方法、装置和系统 - Google Patents

数据处理方法、装置和系统 Download PDF

Info

Publication number
CN114764501A
CN114764501A CN202110057899.0A CN202110057899A CN114764501A CN 114764501 A CN114764501 A CN 114764501A CN 202110057899 A CN202110057899 A CN 202110057899A CN 114764501 A CN114764501 A CN 114764501A
Authority
CN
China
Prior art keywords
application module
machine learning
learning model
data processing
preset
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.)
Pending
Application number
CN202110057899.0A
Other languages
English (en)
Inventor
吴彩娣
尉鲁飞
成亮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN202110057899.0A priority Critical patent/CN114764501A/zh
Priority to PCT/CN2022/070959 priority patent/WO2022152071A1/zh
Priority to US18/261,603 priority patent/US20240080192A1/en
Publication of CN114764501A publication Critical patent/CN114764501A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Databases & Information Systems (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种数据处理方法、装置和系统。其中,该方法包括:从机器学习模型中拆分出预设数据处理模块,生成安全应用模块,其中,安全应用模块用于对输入机器学习模型中的数据进行加密计算;通过预设算子将拆分后的机器学习模型中运算层的输出值作为输入安全应用模块的输入值,并将输入值输入至安全应用模块;通过安全应用模块依据输入值在隔离的运算环境中进行子图计算,得到计算结果;将计算结果返回预设算子。本发明解决了由于相关技术中在TEE模型中需要根据不同客户需求适配不同的推理框架,导致TEE模型运算压力差的技术问题。

Description

数据处理方法、装置和系统
技术领域
本发明涉及互联网技术领域,具体而言,涉及一种数据处理方法、装置和系统。
背景技术
可信执行环境(Trusted Execution Environment,简称TEE,可信执行环境、独立的操作系统)通过硬件的隔离,可确保在一个孤立、可信的环境中存储、处理和保护敏感数据,广泛用于各种安全应用,如支付、指纹和数字版权保护(Digital rights management,简称DRM)。机器学习(Artificial intelligence,简称AI)是利用大量的数据训练,然后将学习得到的结果用到后续的数据的决策/预测中去,目前已广泛应用于各种场景,如模式识别,计算机视觉,自动驾驶等。随着AI的广泛应用,AI领域所面临越来越多安全问题,如模型窃取,误导推理结果,泄漏敏感数据等。
在实际的AI应用中,为了保证安全性,例如模型安全,隐私安全,需要将模型加密,模型解密及推理在可信的执行环境中完成,同时考虑TEE中运行推理的性能以及对丰富执行环境(Rich Execution Environment,简称REE)侧原始应用的影响,其中,REE与TEE相对应。
在相关技术中,由于不同客户需求采用不同推理框架,REE侧获取不同客户的需求,进而在TEE中适配不同的推理框架,增加TEE的开发工作量。
针对上述由于相关技术中在TEE模型中需要根据不同客户需求适配不同的推理框架,导致TEE模型运算压力大的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种数据处理方法、装置和系统,以至少解决由于相关技术中在TEE模型中需要根据不同客户需求适配不同的推理框架,导致TEE模型运算压力差的技术问题。
根据本发明实施例的一个方面,提供了一种数据处理方法,包括:从机器学习模型中拆分出预设数据处理模块,生成安全应用模块,其中,安全应用模块用于对输入机器学习模型中的数据进行加密计算;通过预设算子将拆分后的机器学习模型中运算层的输出值作为输入安全应用模块的输入值,并将输入值输入至安全应用模块;通过安全应用模块依据输入值在隔离的运算环境中进行子图计算,得到计算结果;将计算结果返回预设算子。
可选的,从机器学习模型中拆分出预设数据处理模块,生成安全应用模块包括:通过预设工具从机器学习模型中拆分出预设数据处理模块;依据预设数据处理模块生成安全应用模块。
进一步地,可选的,依据预设数据处理模块生成安全应用模块包括:通过异构加速变异器将预设数据处理模块进行优化并加密,得到安全应用模块。
可选的,通过异构加速变异器将预设数据处理模块进行优化并加密,得到安全应用模块包括:将机器学习模型中的网络结构配置于安全应用模块的指定位置;对安全应用模块的指定位置进行加密,得到加密后的安全应用模块。
可选的,通过预设算子将拆分后的机器学习模型中运算层的输出值作为输入安全应用模块的输入值,并将输入值输入至安全应用模块包括:在运算层包括第一运算层的情况下,通过预设算子获取拆分后的机器学习模型中第一运算层的输出值;将输出值作为输入安全应用模块的输入值;将输入值输入至安全应用模块。
进一步地,可选的,通过安全应用模块依据输入值在隔离的运算环境中进行子图计算,得到计算结果包括:依据输入值检测拆分后的机器学习模型是否存在使用授权;当检测拆分后的机器学习模型存在使用授权,或,检测拆分后的机器学习模型无需授权时,通过安全应用模块依据输入值在隔离的运算环境中进行子图计算,得到计算结果;当检测拆分后的机器学习模型不存在使用授权时,停止计算。
可选的,通过安全应用模块依据输入值在隔离的运算环境中进行子图计算,得到计算结果包括:依据输入值分配对应的应用程序接口,并依据输入值在隔离的运算环境中进行子图计算,得到计算结果。
进一步地,可选的,将计算结果返回预设算子包括:在运算层还包括第二运算层的情况下,将计算结果通过预设算子输入拆分后的机器学习模型中的第二运算层;其中,第一运算层位于预设算子之前,第二运算层位于预设算子之后。
根据本发明实施例的另一个方面,提供了一种数据处理方法,应用于人工智能芯片,包括:人工智能芯片从机器学习模型中拆分出预设数据处理模块,生成安全应用模块;人工智能芯片通过预设算子获取拆分后的机器学习模型中运算层的输出值作为输入安全应用模块的输入值,并将输入值输入至安全应用模块;人工智能芯片通过安全应用模块对输入值进行加密计算,得到计算结果,并将计算结果返回预设算子。
根据本发明实施例的另一个方面,提供了一种数据处理系统,包括:机器学习模型、预设工具、第一执行环境和第二执行环境,其中,机器学习模型包含预设数据处理模块,通过预设工具从机器学习模型中拆分得到预设数据处理模块,将预设数据处理模块配置于第一执行环境,生成安全应用模块;并将拆分后的机器学习模型配置于第二执行环境;第二执行环境,用于采集数据,将采集到的数据作为输入第一执行环境中安全应用模块的输入值,通过预设算子将输入值输入安全应用模块,并通过预设算子接收第一执行环境中安全应用模块对输入值进行加密计算得到的计算结果。
根据本发明实施例的另一方面,还提供了一种数据处理装置,包括:拆分模块,用于从机器学习模型中拆分出预设数据处理模块,生成安全应用模块,其中,安全应用模块用于对输入机器学习模型中的数据进行加密计算;输入模块,用于通过预设算子将拆分后的机器学习模型中运算层的输出值作为输入安全应用模块的输入值,并将输入值输入至安全应用模块;获取模块,用于通过安全应用模块依据输入值在隔离的运算环境中进行子图计算,得到计算结果;交互模块,用于将计算结果返回预设算子。
根据本发明实施例的另一方面,还提供了一种非易失性存储介质,其中,非易失性存储介质包括存储的程序,其中,在程序运行时控制非易失性存储介质所在设备执行上述方法。
根据本发明实施例的另一方面,还提供了一种处理器,其中,处理器用于运行程序,其中,程序运行时执行上述方法。
在本发明实施例中,通过从机器学习模型中拆分出预设数据处理模块,生成安全应用模块,其中,安全应用模块用于对输入机器学习模型中的数据进行加密计算;通过预设算子将拆分后的机器学习模型中运算层的输出值作为输入安全应用模块的输入值,并将输入值输入至安全应用模块;通过安全应用模块依据输入值在隔离的运算环境中进行子图计算,得到计算结果;将计算结果返回预设算子,达到了提升TEE运算能力的目的,从而实现了不再在TEE中集成各种推理框架,为需要运行在TEE中的TA提供对应的应用程序调用的技术效果,进而解决了由于相关技术中在TEE模型中需要根据不同客户需求适配不同的推理框架,导致TEE模型运算压力差的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明实施例的一种数据处理方法的计算机终端的硬件结构框图;
图2是根据本发明实施例一的数据处理方法的流程图;
图3是根据本发明实施例一的数据处理方法中获取安全应用模块的示意图;
图4是根据本发明实施例一的数据处理方法中REE系统与TEE系统之间交互的示意图;
图5是根据本发明实施例二的数据处理方法的流程示意图;
图6是根据本发明实施例三的数据处理系统的示意图;
图7是根据本发明实施例四的数据处理装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请涉及的技术名词:
TEE(Trusted Execution Environment):可信执行环境、独立的操作系统,用于存储、处理和保护敏感数据;
TA(Trusted Application):安全应用,运行在TEE内部的应用;
AI(Artificial intelligence):人工智能;
API(Application Programming Interface):应用程序编程接口;
REE(Rich Execution Environment):丰富执行环境,与TEE相对。
实施例1
根据本发明实施例,还提供了一种数据处理方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在计算机终端上为例,图1是本发明实施例的一种数据处理方法的计算机终端的硬件结构框图。如图1所示,计算机终端10可以包括一个或多个(图中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输模块106。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中的数据处理方法对应的程序指令/模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的数据处理方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输模块106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输模块106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输模块106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
在上述运行环境下,本申请提供了如图2所示的数据处理方法。图2是根据本发明实施例一的数据处理方法的流程图。本申请实施例提供的一种数据处理方法,具体步骤如下:
步骤S202,从机器学习模型中拆分出预设数据处理模块,生成安全应用模块,其中,安全应用模块用于对输入机器学习模型中的数据进行加密计算;
本申请上述步骤S202中,在本申请实施例中机器学习模型可以为AI模型,预设数据处理模块可以为AI模型中用于计算涉密/敏感的部分,图3是根据本发明实施例一的数据处理方法中获取安全应用模块的示意图;如图3所示,通过工具tool将AI模型中计算涉密/敏感的部分独立出来生成安全应用模块(记作TA),将AI模型分为两部分,其中,安全应用模块从AI模型中独立出来应用于TEE系统(即,图3中IR子图生成TEE子图),不包含安全应用模块的AI模块应用于REE系统(即,图3中子图替换,生成REE模型文件),以使得节省掉TEE内部推理框架的开销。根据安全性及性能要求综合考虑配置需拆分出来的层。
可选的,步骤S202中从机器学习模型中拆分出预设数据处理模块,生成安全应用模块包括:通过预设工具从机器学习模型中拆分出预设数据处理模块;依据预设数据处理模块生成安全应用模块。
其中,预设工具记作工具tool,结合上述图3所示,tool对AI模型进行拆分,将需要运行在TEE侧的模型直接编译生成TA(即本申请实施例中的安全应用模块),并对TA的text,rodata,data段加密或者对配置文件加密。加密密钥与厂商的公钥相关,保证不同厂商有不同的加密密钥。
具体的,通过预设工具tool将AI模型中用于计算涉密/敏感的部分(即,本申请实施例中的预设数据处理模块)进行拆分,依据该用于计算涉密/敏感的部分生成TA。
进一步地,可选的,依据预设数据处理模块生成安全应用模块包括:通过异构加速变异器将预设数据处理模块进行优化并加密,得到安全应用模块。
具体的,如图3所示,在本申请实施例中通过异构加速编译器将拆解出来的AI模型中的用于计算涉密/敏感的部分进行优化,最终编译生成二进制指令,通过工具tool进一步将用于计算涉密/敏感的部分生成加密后的TA。
需要说明的是,本申请实施例中区别于现有技术TEE内部不再集成各种推理框架,拆分出来的需要运行在TEE内的模型通过AI编译器编译生成统一格式的TA。TEE内部实现统一的构图和算子的逻辑,提供扩展的API供TA调用。
可选的,通过异构加速变异器将预设数据处理模块进行优化并加密,得到安全应用模块包括:将机器学习模型中的网络结构配置于安全应用模块的指定位置;对安全应用模块的指定位置进行加密,得到加密后的安全应用模块。
具体的,拆解出来的AI模型编译生成TA后,该部分AI模型参数可作为TA的rodata段或者data段或者作为单独的配置文件,网络结构反应在TA的text段,TA的text段及rodata段,data段加密或者配置文件,并进行加密。加密后的TA或者TA和配置文件部署在设备端。加密密钥保证每个厂商各不相同。加密后的TA由厂商签名。
其中,text段,即代码段,text段存放程序代码,运行前就已经确定(编译时确定),通常为只读;
rodata段,read only data,即,只读数据,常量区,rodata段存储常量数据;
data段,存储已经初始化的全局变量。
步骤S204,通过预设算子将拆分后的机器学习模型中运算层的输出值作为输入安全应用模块的输入值,并将输入值输入至安全应用模块;
本申请上述步骤S204中,在本申请实施例中由于生成单独的TA运行于TEE系统,因此通过在REE系统中配置自定义算子(即,本申请实施例中的预设算子),REE通过该自定义算子与TA进行交互,其中,在交互的过程中,所有涉及推理部分、涉密或敏感的部分是运行在TEE系统中(即,安全环境中),自定义算子运行在REE中,拆分后的机器模型中的运算层,即,如图3所示,REE模型中的运算层,通过自定义算子将REE运算层的输出值作为安全应用模块TA的输入值。
可选的,步骤S204中通过预设算子将拆分后的机器学习模型中运算层的输出值作为输入安全应用模块的输入值,并将输入值输入至安全应用模块包括:在运算层包括第一运算层的情况下,通过预设算子获取拆分后的机器学习模型中第一运算层的输出值;将输出值作为输入安全应用模块的输入值;将输入值输入至安全应用模块。
具体的,基于图3中对AI模型的拆分,分为运行于TEE系统的部分和运行于REE系统的部分,在REE系统的部分,图4是根据本发明实施例一的数据处理方法中REE系统与TEE系统之间交互的示意图,如图4所示,通过在REE系统中插入(配置)自定义算子(记作Sec Op0,Sec Op1),由自定义算子负责将REE系统中的模型自定义算子的前层(即,本申请实施例中的第一运算层)的输出值作为TEE的输入值,输入给TEE中的TA。
在本申请实施例中,通过自定义算子代替REE侧被拆走的模型,该自定义算子负责与TEE交互,对REE应用开发者而言,屏蔽引入硬件安全带来的差异,无需改变原始REE侧应用。
步骤S206,通过安全应用模块依据输入值在隔离的运算环境中进行子图计算,得到计算结果。
本申请上述步骤S206中,基于步骤S204中将输出值输入TA,将REE系统中的推理部分在TEE系统中运行,由TEE系统生成最终的计算结果。
可选的,步骤S206中通过安全应用模块依据输入值在隔离的运算环境中进行子图计算,得到计算结果包括:依据输入值检测拆分后的机器学习模型是否存在使用授权;当检测拆分后的机器学习模型存在使用授权,或,检测拆分后的机器学习模型无需授权时,通过安全应用模块依据输入值在隔离的运算环境中进行子图计算,得到计算结果;当检测拆分后的机器学习模型不存在使用授权时,停止计算。
具体的,如图4所示,对于需要使用授权的模型,TEE内部计算第一个被拆进来的模型部分时,检查使用授权,判断该设备是否有权限使用该模型。避免在REE侧单独检查使用授权逻辑被攻击者绕过。如模型无需授权即可使用,TEE系统中的许可验证license check(即,本申请实施例中的检测拆分后的机器学习模型是否存在使用授权)则可忽略。
进一步地,可选的,通过安全应用模块依据输入值在隔离的运算环境中进行子图计算,得到计算结果,得到计算结果包括:依据输入值分配对应的应用程序接口,并依据输入值在隔离的运算环境中进行子图计算,得到计算结果。
具体的,如图4所示,REE中的sec op0(即,本申请实施例中的预设算子)将part 0(本申请实施例中的第一运算层)的输出作为TEE中TA中的Op00(算子)的输入,TEE通过算子op00-op0n的计算,将算子op0n的计算结果输出,作为part2的(如图4所示,第二运算层)输入。特殊的,当对用户输入数据保护的时候,第一层拆分到TEE系统中进行计算,则第一个自定义算子将推理部分输入作为TEE输入。
其中,在模型初始化段,第一个自定义算子初始化时,TEE加载TA,解密TA或者解密TA和配置文件。在TEE中实现构图,算子的基本逻辑,作为通用模块,对TA提供扩展的调用API。拆分REE系统出来的模型的推理部分在TEE中计算,接收REE侧的输出作为TEE计算的输入,TEE输出的最终结果,作为REE侧后续网络层的输入,中间层的计算结果不对外露出。
在本申请实施例中通过TEE内部定义统一的AI构图,算子接口,方便对接AI硬件加速芯片。
步骤S208,将计算结果返回预设算子。
可选的,步骤S208中将计算结果返回预设算子包括:在运算层还包括第二运算层的情况下,将计算结果输入拆分后的机器学习模型中的第二运算层;其中,第一运算层位于预设算子之前,第二运算层位于预设算子之后。
具体的,由于REE系统侧存在多层(Part0,Part2,Part4,……),由于第一层的输出作为TEE系统侧的输入,并且大量的计算集中于TEE系统的TA侧,在得到TEE系统输出的计算结果后,将该计算结果作为后续运算层的输入,直至再有需要调用TA运算时,将待运算的部分输入TEE系统中的TA,由TA再次进行计算,并将TA的计算结果输入REE系统的下一运算层作为该运算层的输入继续进行计算。
例如,当Part2(即本申请实施例中的第二运算层)需要调用TA时,通过算子SecOp1将Part2的推理部分输入TA的算子Op10-Op1n中,当算子Op1n得到计算结果返回REE系统时,将该计算结果作为Part4(第三运算层)的输入再次进行计算。
需要说明的是,本申请实施例中的AI模型更新时只需更新REE侧的模型文件及TA对应的二进制文件或者配置文件。并且本申请实施例提供的方案适用于不同的硬件载体,例如intel sgx和arm trustzone,模型拆分是通用的,自定义的算子的REE和TEE的交互方式,TA格式和TEE中构图与算子逻辑实现与硬件载体相关。
在本发明实施例中,通过从机器学习模型中拆分出预设数据处理模块,生成安全应用模块,其中,安全应用模块用于对输入机器学习模型中的数据进行加密计算;通过预设算子将拆分后的机器学习模型中运算层的输出值作为输入安全应用模块的输入值,并将输入值输入至安全应用模块;通过安全应用模块依据输入值在隔离的运算环境中进行子图计算,得到计算结果;将计算结果返回预设算子,达到了提升TEE运算能力的目的,从而实现了不再在TEE中集成各种推理框架,为需要运行在TEE中的TA提供对应的应用程序调用的技术效果,进而解决了由于相关技术中在TEE模型中需要根据不同客户需求适配不同的推理框架,导致TEE模型运算压力差的技术问题。
实施例2
根据本发明实施例的另一个方面,提供了一种数据处理方法,应用于人工智能芯片,图5是根据本发明实施例二的数据处理方法的流程示意图,如图5所示,包括:
步骤S502,人工智能芯片从机器学习模型中拆分出预设数据处理模块,生成安全应用模块;
步骤S504,人工智能芯片通过预设算子获取拆分后的机器学习模型中运算层的输出值作为输入安全应用模块的输入值,并将输入值输入至安全应用模块;
步骤S506,人工智能芯片通过安全应用模块对输入值进行加密计算,得到计算结果,并将计算结果返回预设算子。
综上,结合步骤S502至步骤S506,本申请实施例提供的数据处理方法可以应用于人工智能芯片,即,AI芯片,其中,在本申请实施例中机器学习模型可以为AI模型,预设数据处理模块可以为AI模型中用于计算涉密/敏感的部分,通过工具tool将AI模型中计算涉密/敏感的部分独立出来生成安全应用模块(记作TA),将AI模型分为两部分,其中,安全应用模块从AI模型中独立出来应用于TEE系统,不包含安全应用模块的AI模块应用于REE系统,以使得节省掉TEE内部推理框架的开销。根据安全性及性能要求综合考虑配置需拆分出来的层。
其中,通过异构加速编译器将拆解出来的AI模型中的用于计算涉密/敏感的部分进行优化,最终编译生成二进制指令,通过工具tool进一步将用于计算涉密/敏感的部分生成加密后的TA。
需要说明的是,本申请实施例中区别于现有技术TEE内部不再集成各种推理框架,拆分出来的需要运行在TEE内的模型通过AI编译器编译生成统一格式的TA。TEE内部实现统一的构图和算子的逻辑,提供扩展的API供TA调用。
具体的,拆解出来的AI模型编译生成TA后,该部分AI模型参数可作为TA的rodata段或者data段或者作为单独的配置文件,网络结构反应在TA的text段,TA的text段及rodata段,data段加密或者配置文件,并进行加密。加密后的TA或者TA和配置文件部署在设备端。加密密钥保证每个厂商各不相同。加密后的TA由厂商签名。
此外,在REE系统的部分,通过在REE系统中插入(配置)自定义算子(记作Sec Op0,Sec Op1),由自定义算子负责将REE系统中的模型自定义算子的前层的输出值作为TEE的输入值,输入给TEE中的TA。
在本申请实施例中,通过自定义算子代替REE侧被拆走的模型,该自定义算子负责与TEE交互,对REE应用开发者而言,屏蔽引入硬件安全带来的差异,无需改变原始REE侧应用。
最终将REE系统中的推理部分在TEE系统中运行,由TEE系统生成最终的计算结果。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的数据处理方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例3
根据本发明实施例的另一个方面,提供了一种数据处理系统,图6是根据本发明实施例三的数据处理系统的示意图,如图6所示,包括:机器学习模型61、预设工具62、第一执行环境63和第二执行环境64,其中,机器学习模型64包含预设数据处理模块,通过预设工具62从机器学习模型中拆分得到预设数据处理模块,将预设数据处理模块配置于第一执行环境63,生成安全应用模块;并将拆分后的机器学习模型配置于第二执行环境64;第二执行环境64,用于采集数据,将采集到的数据作为输入第一执行环境63中安全应用模块的输入值,通过预设算子62将输入值输入安全应用模块,并通过预设算子62接收第一执行环境63中安全应用模块对输入值进行加密计算得到的计算结果。
具体的,如图6所示,本申请实施例提供的数据处理系统中的机器模型61标记为AI,预设工具标记为tool,第一执行环境63标记为TEE,第二执行环境64标记为REE,安全应用模块标记为TA,REE中的预设算子标记为SecOp0、SecOp1……;
在本申请实施例中,通过tool将AI模型分为两部分,其中,将由于执行保密计算/敏感计算的部分配置于TEE中,生成TA;将其余的AI模型部分配置于REE中,通过REE采集数据,将采集到的数据作为待保密数据,通过预设算子SecOp0、SecOp1……输入TEE中TA中的算子Op00…Op0n,以及Op10…Op1n;在具体执行计算的过程中,REE的第一运算层Part0的输出值(即,本申请实施例中的待保密数据)通过预设算子SecOp0输入TEE中TA中的算子Op00…Op0n,在Op0n输出计算结果后,将该计算结果反馈给SecOp0,作为Part2的输入值,Part2的输出值通过SecOp1输入TEE中TA中的算子Op10…Op1n,在Op1n输出计算结果后,将该计算结果反馈给SecOp1,作为Part4的输入值,进而循环计算。
实施例4
根据本发明实施例,还提供了一种用于实施上述数据处理方法的装置,图7是根据本发明实施例四的数据处理装置的示意图,如图7所示,本申请实施例提供的数据处理装置包括:拆分模块72,用于从机器学习模型中拆分出预设数据处理模块,生成安全应用模块,其中,安全应用模块用于对输入机器学习模型中的数据进行加密计算;输入模块74,用于通过预设算子将拆分后的机器学习模型中运算层的输出值作为输入安全应用模块的输入值,并将输入值输入至安全应用模块;获取模块76,用于通过安全应用模块依据输入值在隔离的运算环境中进行子图计算,得到计算结果;交互模块78,用于将计算结果返回预设算子。
实施例5
根据本发明实施例的另一方面,还提供了一种非易失性存储介质,其中,非易失性存储介质包括存储的程序,其中,在程序运行时控制非易失性存储介质所在设备执行上述实施例1或2中的方法。
实施例6
根据本发明实施例的另一方面,还提供了一种处理器,其中,处理器用于运行程序,其中,程序运行时执行上述实施例1或2中的方法。
实施例7
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例一所提供的数据处理方法所执行的程序代码。
可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:从机器学习模型中拆分出预设数据处理模块,生成安全应用模块,其中,安全应用模块用于对输入机器学习模型中的数据进行加密计算;通过预设算子将拆分后的机器学习模型中运算层的输出值作为输入安全应用模块的输入值,并将输入值输入至安全应用模块;通过安全应用模块依据输入值在隔离的运算环境中进行子图计算,得到计算结果;将计算结果返回预设算子。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:从机器学习模型中拆分出预设数据处理模块,生成安全应用模块包括:通过预设工具从机器学习模型中拆分出预设数据处理模块;依据预设数据处理模块生成安全应用模块。
进一步地,可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:依据预设数据处理模块生成安全应用模块包括:通过异构加速变异器将预设数据处理模块进行优化并加密,得到安全应用模块。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:通过异构加速变异器将预设数据处理模块进行优化并加密,得到安全应用模块包括:将机器学习模型中的网络结构配置于安全应用模块的指定位置;对安全应用模块的指定位置进行加密,得到加密后的安全应用模块。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:通过预设算子将拆分后的机器学习模型中运算层的输出值作为输入安全应用模块的输入值,并将输入值输入至安全应用模块包括:在运算层包括第一运算层的情况下,通过预设算子获取拆分后的机器学习模型中第一运算层的输出值;将输出值作为输入安全应用模块的输入值;将输入值输入至安全应用模块。
进一步地,可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:通过安全应用模块依据输入值在隔离的运算环境中进行子图计算,得到计算结果包括:依据输入值检测拆分后的机器学习模型是否存在使用授权;当检测拆分后的机器学习模型存在使用授权,或,检测拆分后的机器学习模型无需授权时,通过安全应用模块依据输入值在隔离的运算环境中进行子图计算,得到计算结果;当检测拆分后的机器学习模型不存在使用授权时,停止计算。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:通过安全应用模块依据输入值在隔离的运算环境中进行子图计算,得到计算结果包括:依据输入值分配对应的应用程序接口,并依据输入值在隔离的运算环境中进行子图计算,得到计算结果。
进一步地,可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:将计算结果返回预设算子包括:在运算层还包括第二运算层的情况下,将计算结果通过预设算子输入拆分后的机器学习模型中的第二运算层;其中,第一运算层位于预设算子之前,第二运算层位于预设算子之后。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (13)

1.一种数据处理方法,包括:
从机器学习模型中拆分出预设数据处理模块,生成安全应用模块,其中,所述安全应用模块用于对输入所述机器学习模型中的数据进行加密计算;
通过预设算子将拆分后的所述机器学习模型中运算层的输出值作为输入所述安全应用模块的输入值,并将所述输入值输入至所述安全应用模块;
通过所述安全应用模块依据所述输入值在隔离的运算环境中进行子图计算,得到计算结果;
将所述计算结果返回所述预设算子。
2.根据权利要求1所述的方法,其中,所述从机器学习模型中拆分出预设数据处理模块,生成安全应用模块包括:
通过预设工具从所述机器学习模型中拆分出所述预设数据处理模块;
依据所述预设数据处理模块生成所述安全应用模块。
3.根据权利要求2所述的方法,其中,所述依据所述预设数据处理模块生成所述安全应用模块包括:
通过异构加速变异器将所述预设数据处理模块进行优化并加密,得到所述安全应用模块。
4.根据权利要求3所述的方法,其中,所述通过异构加速变异器将所述预设数据处理模块进行优化并加密,得到所述安全应用模块包括:
将所述机器学习模型中的网络结构配置于所述安全应用模块的指定位置;
对所述安全应用模块的指定位置进行加密,得到加密后的所述安全应用模块。
5.根据权利要求1所述的方法,其中,所述通过预设算子将拆分后的所述机器学习模型中运算层的输出值作为输入所述安全应用模块的输入值,并将所述输入值输入至所述安全应用模块包括:
在所述运算层包括第一运算层的情况下,通过所述预设算子获取拆分后的所述机器学习模型中所述第一运算层的输出值;
将所述输出值作为输入所述安全应用模块的输入值;
将所述输入值输入至所述安全应用模块。
6.根据权利要求5所述的方法,其中,所述通过所述安全应用模块依据所述输入值在隔离的运算环境中进行子图计算,得到计算结果包括:
依据所述输入值检测拆分后的所述机器学习模型是否存在使用授权;
当检测拆分后的所述机器学习模型存在所述使用授权,或,检测拆分后的所述机器学习模型无需授权时,通过所述安全应用模块依据所述输入值在隔离的运算环境中进行子图计算,得到所述计算结果;
当检测拆分后的所述机器学习模型不存在所述使用授权时,停止计算。
7.根据权利要求6所述的方法,其中,所述通过所述安全应用模块依据所述输入值在隔离的运算环境中进行子图计算,得到所述计算结果包括:
依据所述输入值分配对应的应用程序接口,并依据所述输入值在隔离的运算环境中进行子图计算,得到所述计算结果。
8.根据权利要求7所述的方法,其中,所述将所述计算结果返回所述预设算子包括:
在所述运算层还包括第二运算层的情况下,将所述计算结果通过所述预设算子输入拆分后的所述机器学习模型中的第二运算层;其中,所述第一运算层位于所述预设算子之前,所述第二运算层位于所述预设算子之后。
9.一种数据处理方法,应用于人工智能芯片,包括:
所述人工智能芯片从机器学习模型中拆分出预设数据处理模块,生成安全应用模块;
所述人工智能芯片通过预设算子获取拆分后的所述机器学习模型中运算层的输出值作为输入所述安全应用模块的输入值,并将所述输入值输入至所述安全应用模块;
所述人工智能芯片通过所述安全应用模块对所述输入值进行加密计算,得到计算结果,并将所述计算结果返回所述预设算子。
10.一种数据处理系统,包括:
机器学习模型、预设工具、第一执行环境和第二执行环境,其中,
所述机器学习模型包含预设数据处理模块,通过所述预设工具从所述机器学习模型中拆分得到所述预设数据处理模块,将所述预设数据处理模块配置于所述第一执行环境,生成安全应用模块;并将拆分后的所述机器学习模型配置于所述第二执行环境;
所述第二执行环境,用于采集数据,将采集到的所述数据作为输入所述第一执行环境中所述安全应用模块的输入值,通过预设算子将所述输入值输入所述安全应用模块,并通过所述预设算子接收所述第一执行环境中所述安全应用模块对所述输入值进行加密计算得到的计算结果。
11.一种数据处理装置,包括:
拆分模块,用于从机器学习模型中拆分出预设数据处理模块,生成安全应用模块,其中,所述安全应用模块用于对输入所述机器学习模型中的数据进行加密计算;
输入模块,用于通过预设算子将拆分后的所述机器学习模型中运算层的输出值作为输入所述安全应用模块的输入值,并将所述输入值输入至所述安全应用模块;
获取模块,用于通过所述安全应用模块依据所述输入值在隔离的运算环境中进行子图计算,得到计算结果;
交互模块,用于将所述计算结果返回所述预设算子。
12.一种非易失性存储介质,其中,所述非易失性存储介质包括存储的程序,其中,在所述程序运行时控制所述非易失性存储介质所在设备执行权利要求1所述方法。
13.一种处理器,其中,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1所述方法。
CN202110057899.0A 2021-01-15 2021-01-15 数据处理方法、装置和系统 Pending CN114764501A (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202110057899.0A CN114764501A (zh) 2021-01-15 2021-01-15 数据处理方法、装置和系统
PCT/CN2022/070959 WO2022152071A1 (zh) 2021-01-15 2022-01-10 数据处理方法、装置和系统
US18/261,603 US20240080192A1 (en) 2021-01-15 2022-01-10 Data processing method, apparatus and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110057899.0A CN114764501A (zh) 2021-01-15 2021-01-15 数据处理方法、装置和系统

Publications (1)

Publication Number Publication Date
CN114764501A true CN114764501A (zh) 2022-07-19

Family

ID=82364537

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110057899.0A Pending CN114764501A (zh) 2021-01-15 2021-01-15 数据处理方法、装置和系统

Country Status (3)

Country Link
US (1) US20240080192A1 (zh)
CN (1) CN114764501A (zh)
WO (1) WO2022152071A1 (zh)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11356262B2 (en) * 2018-07-03 2022-06-07 Royal Bank Of Canada System and method for anonymous location verification
CN110704850B (zh) * 2019-09-03 2022-05-10 华为技术有限公司 人工智能ai模型的运行方法和装置
CN110750801B (zh) * 2019-10-11 2022-06-10 矩阵元技术(深圳)有限公司 数据处理方法、装置、计算机设备和存储介质
CN111444528B (zh) * 2020-03-31 2022-03-29 海信视像科技股份有限公司 数据安全保护方法、装置及存储介质

Also Published As

Publication number Publication date
US20240080192A1 (en) 2024-03-07
WO2022152071A1 (zh) 2022-07-21

Similar Documents

Publication Publication Date Title
CN111683071B (zh) 区块链的隐私数据处理方法、装置、设备以及存储介质
CN110278078B (zh) 一种数据处理方法、装置及系统
EP2962193B1 (en) Compiler based obfuscation
JP5643894B2 (ja) サイドチャネル攻撃および反復起動攻撃に耐える動的可変タイミング演算パスのシステムおよび方法
US9135434B2 (en) System and method for third party creation of applications for mobile appliances
CN101300583B (zh) 用于可信赖移动电话的简单可伸缩和可配置安全启动
US9066226B2 (en) Initialization of embedded secure elements
CN109586963B (zh) 一种云仿真平台安全保障系统、服务器、终端以及方法
CN110414187B (zh) 模型安全交付自动化的系统及其方法
CN107003866A (zh) 来自加密模板的加密虚拟机的安全创建
CN111274611A (zh) 数据脱敏方法、装置及计算机可读存储介质
CN109784007A (zh) 一种字节码加密的方法、字节码解密的方法及终端
CN107871066B (zh) 基于安卓系统的代码编译方法及装置
CN109657448A (zh) 一种获取Root权限的方法、装置、电子设备及存储介质
CA2565508C (en) Secure license key method and system
EP3729306B1 (en) Compiling device and method
CN112966227A (zh) 代码加密解密方法和装置、存储介质
CN111628863B (zh) 一种数据签名的方法、装置、电子设备及存储介质
CN113722683A (zh) 模型保护方法、装置、设备、系统以及存储介质
CN105574441A (zh) 一种嵌入式固件保护的方法和装置
Ozkan et al. Security analysis of mobile authenticator applications
CN107220528A (zh) Java程序的保护与运行方法、装置和终端
Moebius et al. Generating formal specifications for security-critical applications-A model-driven approach
WO2014165464A2 (en) Cryptographic mechanisms to provide information privacy and integrity
CN114764501A (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