CN112650977B - 保护神经网络模型的方法 - Google Patents
保护神经网络模型的方法 Download PDFInfo
- Publication number
- CN112650977B CN112650977B CN202010517588.3A CN202010517588A CN112650977B CN 112650977 B CN112650977 B CN 112650977B CN 202010517588 A CN202010517588 A CN 202010517588A CN 112650977 B CN112650977 B CN 112650977B
- Authority
- CN
- China
- Prior art keywords
- model
- memory
- segment
- segments
- neural network
- 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
- 238000000034 method Methods 0.000 title claims abstract description 78
- 238000003062 neural network model Methods 0.000 title abstract description 10
- 230000015654 memory Effects 0.000 claims abstract description 218
- 238000013528 artificial neural network Methods 0.000 claims abstract description 197
- 238000005192 partition Methods 0.000 claims abstract description 133
- 238000012545 processing Methods 0.000 claims abstract description 25
- 238000000638 solvent extraction Methods 0.000 claims abstract description 10
- 230000004044 response Effects 0.000 claims description 9
- 238000012795 verification Methods 0.000 abstract description 17
- 230000011218 segmentation Effects 0.000 abstract description 5
- 230000008447 perception Effects 0.000 description 13
- 238000004891 communication Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 238000007405 data analysis Methods 0.000 description 4
- 230000033001 locomotion Effects 0.000 description 4
- 238000010801 machine learning Methods 0.000 description 4
- 230000002776 aggregation Effects 0.000 description 3
- 238000004220 aggregation Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 244000035744 Hura crepitans Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 238000009429 electrical wiring Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 239000000945 filler Substances 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000036316 preload Effects 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 239000000126 substance Substances 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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
- H04L9/3247—Cryptographic 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 involving digital signatures
-
- 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/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
-
- 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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
-
- 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
-
- 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
- G06N3/045—Combinations of networks
-
- 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/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/50—Context or environment of the image
- G06V20/56—Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/006—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving public key infrastructure [PKI] trust models
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Evolutionary Computation (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Bioethics (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Multimedia (AREA)
- Power Engineering (AREA)
- Technology Law (AREA)
- Neurology (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
公开了一种用于保护神经网络的模型的计算机实现方法、数据处理系统以及用于验证神经网络的模型的计算机实现方法,其用于通过将模型的分区分割为预配置存储器大小的分段,散列分割的模型,以及级联散列段来保护神经网络模型。在神经网络使用模型之前,级联散列段还可以被散列、加密以及与神经网络模型一起作为可执行可加载文件(ELF)存储在神经网络的外部的存储器中。模型可以包括推理层的模型权重和元数据。模型权重和元数据可以散列为单独的散列段并级联。在神经网络运行前,将模型分割成预配置存储器大小的分段,并离线散列分段的模型,能够在神经网络在线运行期间,当模型用于推理层的时候,快速验证模型。以上方法和系统可适用于自动驾驶领域。
Description
技术领域
本公开的实施方式总体上涉及机器学习。更具体地,本公开的实施方式涉及保护人工智能应用中机器学习引擎或神经网络使用的软件模型。
背景技术
神经网络应用于诸如计算机视觉、自然语言处理、机器人和自动驾驶车辆(ADV)的领域。例如,神经网络能够以自动驾驶模式运行车辆(例如,无人驾驶车辆),以将乘员,尤其是驾驶员,从一些驾驶相关的职责中解放出来。当以自动驾驶模式运行时,车辆可以使用车载传感器导航到各种位置,从而允许车辆在最少人机交互的情况下或在没有任何乘客的一些情况下行驶。神经网络能够通过处理车载传感器捕捉到的车辆周围环境的视频和电磁图像,生成规划和控制车辆运动的命令。例如,神经网络能够生成或训练规则集、算法和/或预测模型,以用于在自动驾驶模式下的感知、预测、决策、规划和/或控制过程。
运动规划和控制运行的准确性和效率在很大程度上取决于神经网络使用的模型。模型的完整性对于神经网络的正常运行以及车辆内部和外部的人员的安全都是非常重要的。在通过诸如公钥基础设施(PKI)的加密技术使用模型之前,神经网络可对模型执行验证和完整性检查,以防止黑客攻击、篡改或攻击。由于神经网络模型的尺寸较大,通常将其存储在神经网络外部的存储器中,并在运行过程中复制到神经网络内部较小的存储器中。
然而,当神经网络运行时,由于模型的尺寸较大,因此很难执行全图像验证。在运行开始之前执行预加载验证也是不可行的。尽管神经网络中的存储器可通过限制仅从密码模块进行访问来硬件保护其免受未经授权的访问,然而外部存储器却没有相同的硬件保护并且可能不安全。
发明内容
本申请的一方面提供了一种用于保护神经网络的模型的计算机实现的方法,所述方法包括:连续读取所述神经网络的模型的多个存储器分区;确定所述模型的多个存储器分区中的存储器分区的大小是否大于预配置存储器大小;响应于确定所述存储器分区的大小大于所述预配置存储器大小,将所述模型的存储器分区分割为多个分段,每个分段的大小为所述预配置存储器大小;响应于确定所述存储器分区的大小小于所述预配置存储器大小,将所述存储器分区与所述模型的多个存储器分区中的一个或多个其他的存储器分区进行组合,以使组合的分区适合于所述预配置存储器大小;散列所述多个分段中的每个分段以及所述组合的分区以生成多个散列段;以及将所述多个散列段级联为所述神经网络的模型的级联散列段。
本申请的另一方面提供了一种数据处理系统,包括:处理器;与所述处理器联接以存储指令的存储器,当所述处理器执行所述指令时,使得所述处理器执行操作,所述操作包括:连续读取所述神经网络的模型的多个存储器分区;确定所述模型的多个存储器分区中的存储器分区的大小是否大于预配置存储器大小;响应于确定所述存储器分区的大小大于所述预配置存储器大小,将所述模型的存储器分区分割为多个分段,每个分段的大小为所述预配置存储器大小;响应于确定所述存储器分区的大小小于所述预配置存储器大小,将所述存储器分区与所述模型的多个存储器分区中的一个或多个其他的存储器分区进行组合,以使组合的分区适合于所述预配置存储器大小;散列所述多个分段中的每个分段以及所述组合的分区以生成多个散列段;以及将所述多个散列段级联为所述神经网络的模型的级联散列段。
本申请的又一方面提供了一种用于验证神经网络的模型的计算机实现的方法,所述方法包括:验证所述神经网络的模型的级联散列段,所述级联散列段包括从所述模型的多个分段散列的多个离线生成的散列段的级联,所述模型的多个分段中的每一个分段具有预配置存储器大小;连续地散列所述模型的所述多个分段中的分段,以为所述分段生成在线生成的散列段;比较所述在线生成的散列段和与所述分段对应的离线生成的散列段;验证用于所述模型的所述多个分段中的每个分段的在线生成的散列段相同于与所述分段对应的离线生成的散列段;以及在所述神经网络的一个或多个推理层中使用所述神经网络的模型。
附图说明
本公开的实施方式在附图的各图中以举例而非限制的方式示出,附图中的相同的附图标记指代相似的元件。
图1是示出根据一个实施方式的网络化系统的框图。
图2是示出根据一个实施方式运行的自动驾驶系统的架构的框图。
图3是根据一个实施方式的主机计算系统中的神经网络核的架构,其中,神经网络模型从外部的存储器被下载到神经网络核的SRAM中。
图4显示根据一个实施方式的神经网络核的SRAM的存储器分区。
图5显示根据一个实施方式的下载到神经网络的SRAM中的包含模型的神经网络可执行可加载文件。
图6示出根据一个实施方式的当模型权重的存储器分区的大小大于预配置权重存储器大小时,神经网络可执行可加载文件的模型权重的存储器分区的分段和散列。
图7示出根据一个实施方式的当模型权重的多个存储器分区中的每个分区的大小小于预配置权重存储器大小时,神经网络可执行可加载文件的模型权重的多个存储器分区的聚集。
图8显示根据一个实施方式的元数据的在线散列以及分段的模型权重的在线散列,其用于与NN ELF的离线生成的级联的散列段进行比较,从而在运行期间验证NN模型。
图9是示出根据一个实施方式的离线生成神经网络可执行可加载文件的由模型权重的分段的散列与元数据的散列级联而成的散列段方的法的流程图。
图10是示出根据一个实施方式的用于执行对模型权重的分段以及神经网络可执行可加载文件的元数据的分段的完整性检查的在线解密以及验证散列段的方法的流程图。
具体实施方式
将参考以下所讨论的细节来描述本公开的各种实施方式和方面,并且附图将示出多种实施方式。以下描述和附图是对本公开的说明,并且不应被解释为限制本公开。描述了许多特定细节以提供对本公开各种实施方式的全面理解。然而,在某些情况下,并未描述众所周知的或常规的细节以提供对本公开的实施方式的简洁讨论。
本说明书中对“一个实施方式”或“实施方式”的提及意味着结合该实施方式所描述的特定特征、结构或特性可以包括在本公开的至少一个实施方式中。短语“在一个实施方式中”在本说明书中各个地方的出现不必全部指相同的实施方式。
根据一些实施方式,公开了一种用于保护神经网络模型的方法,该方法通过将模型的分区分割成预配置存储器大小的分段,对分割的模型进行散列(hash)以及将散列段级联,来保护神经网络模型。在神经网络使用模型之前,还可将级联的散列段与神经网络模型进行散列、加密和存储,以作为神经网络的外部存储器中的可执行可加载文件(ELF)。可以选择预配置存储器大小以在散列操作的处理要求和模型的散列段的数目之间取得平衡。
在一个实施方式中,当模型的分区小于预配置存储器大小时,该方法可把尽可能多的可以组合在一起的分区聚集,以适合预配置存储器大小但不超过预配置存储器大小。模型可包括推理层的模型权重(model weight)和元数据,该元数据包含模型的描述和量化配置数据。模型权重和元数据可散列为单独的散列段并级联。在神经网络运行之前将模型分割成预配置存储器大小的分段并离线散列分段的模型,能够使得在神经网络运行期间在推理层中使用模型时可以快速验证模型。
在一个实施方式中,当模型准备好供神经网络使用时,神经网络可将包含模型权重、元数据和级联散列段的ELF从外部存储器读取到神经网络的内部存储器中。如果级联的散列段被加密,则可由加密模块将其解密以验证级联的散列段。神经网络可以将元数据读取到内部存储器的分区中,该内部存储器的分区具有分配的存储器大小,该分配的存储器大小与分段模型的预配置存储器大小相等。假定元数据的大小小于预先配置的存储器大小。加密模块可散列内部存储器分区中的元数据,并可比较在线生成的散列元数据与来自级联的散列段的离线生成的散列元数据,以验证元数据。
神经网络还可将模型权重的连续的分区读入具有预配置存储器大小的内部存储器分区中。密码模块可散列存储器分区中的模型权重,并且能够比较在线生成的模型权重的散列与来自级联的散列段的离线生成的模型权重的散列,以验证模型权重。当验证了推理层的所有模型权重后,神经网络可使用模型权重来运行该层的推理。可以验证连续层的模型权重,直到神经网络完成所有推理层。虽然下面的描述示出了应用于ADV的神经网络模型的验证方法,但是应该理解,该方法也可以应用于其他应用中的神经网络模型。
图1是示出根据本公开的一个实施方式的自动驾驶车辆网络配置的框图。参考图1,网络配置100包括可以通过网络102通信地联接到一个或多个服务器103至104的自动驾驶车辆101。尽管示出一个自动驾驶车辆,但多个自动驾驶车辆可以通过网络102联接到彼此和/或联接到服务器103至104。网络102可以是任何类型的网络,例如,有线或无线的局域网(LAN)、诸如互联网的广域网(WAN)、蜂窝网络、卫星网络或其组合。服务器103至104可以是任何类型的服务器或服务器群集,诸如,网络或云服务器、应用服务器、后端服务器或其组合。服务器103至104可以是数据分析服务器、内容服务器、交通信息服务器、地图和兴趣点(MPOI)服务器或者位置服务器等。
自动驾驶车辆是指可以被配置成处于自动驾驶模式下的车辆,在所述自动驾驶模式下,车辆在极少或没有来自驾驶员的输入的情况下导航通过环境。这种自动驾驶车辆可以包括传感器系统,所述传感器系统具有被配置成检测与车辆运行环境有关的信息的一个或多个传感器。所述车辆和其相关联的控制器使用所检测的信息来导航通过所述环境。自动驾驶车辆101可以在手动模式下、在全自动驾驶模式下或者在部分自动驾驶模式下运行。
在一个实施方式中,自动驾驶车辆101包括,但不限于,感知与规划系统110、车辆控制系统111、无线通信系统112、用户接口系统113和传感器系统115。自动驾驶车辆101还可以包括普通车辆中包括的某些常用部件,诸如:发动机、车轮、方向盘、变速器等,所述部件可以由车辆控制系统111和/或感知与规划系统110使用多种通信信号和/或命令进行控制,该多种通信信号和/或命令例如,加速信号或命令、减速信号或命令、转向信号或命令、制动信号或命令等。
部件110至115可以经由互连件、总线、网络或其组合通信地联接到彼此。例如,部件110至115可以经由控制器局域网(CAN)总线通信地联接到彼此。CAN总线是被设计成允许微控制器和装置在没有主机的应用中与彼此通信的车辆总线标准。它最初是为汽车内的复用电气布线设计的基于消息的协议,但也用于许多其它环境。
无线通信系统112允许自动驾驶车辆101与诸如装置、传感器、其它车辆等的外部系统之间的通信。例如,无线通信系统112可以与一个或多个装置直接无线通信,或者经由通信网络进行无线通信,诸如,通过网络102与服务器103至104通信。无线通信系统112可以使用任何蜂窝通信网络或无线局域网(WLAN),例如,使用WiFi,以与另一部件或系统通信。无线通信系统112可以例如使用红外链路、蓝牙等与装置(例如,乘客的移动装置、显示装置、车辆101内的扬声器)直接通信。用户接口系统113可以是在车辆101内实施的外围装置的部分,包括例如键盘、触摸屏显示装置、麦克风和扬声器等。
自动驾驶车辆101的功能中的一些或全部可以由感知与规划系统110控制或管理,尤其当在自动驾驶模式下操作时。感知与规划系统110包括必要的硬件(例如,处理器、存储器、存储设备)和软件(例如,操作系统、规划和路线安排程序),以从传感器系统115、控制系统111、无线通信系统112和/或用户接口系统113接收信息,处理所接收的信息,规划从起始点到目的地点的路线或路径,随后基于规划和控制信息来驾驶车辆101。替代地,感知与规划系统110可以与车辆控制系统111集成在一起。
例如,作为乘客的用户可以例如经由用户接口来指定行程的起始位置和目的地。感知与规划系统110获得行程相关数据。例如,感知与规划系统110可以从MPOI服务器中获得位置和路线信息,所述MPOI服务器可以是服务器103至104的一部分。位置服务器提供位置服务,并且MPOI服务器提供地图服务和某些位置的POI。替代地,此类位置和MPOI信息可以本地高速缓存在感知与规划系统110的永久性存储装置中。
当自动驾驶车辆101沿着路线移动时,感知与规划系统110也可以从交通信息系统或服务器(TIS)获得实时交通信息。应注意,服务器103至104可以由第三方实体进行操作。替代地,服务器103至104的功能可以与感知与规划系统110集成在一起。基于实时交通信息、MPOI信息和位置信息以及由传感器系统115检测或感测的实时本地环境数据(例如,障碍物、对象、附近车辆),感知与规划系统110可以规划路径或路线并且根据所规划的路线例如经由控制系统111来驾驶车辆101,以安全且高效到达指定目的地。
服务器103可为用于为自动驾驶车辆101和各种客户端执行数据分析服务的数据分析系统。在一个实施方式中,数据分析系统103包括数据收集器121和机器学习引擎122。数据收集器121从自动驾驶车辆101或从自动驾驶的或由人类驾驶员驾驶的各种车辆收集驾驶统计数据123。驾驶统计数据123包括表示在不同的时间点处由车辆的传感器捕获的所发出的驾驶命令(例如,油门命令、制动命令、转向命令)以及车辆的响应(例如,速度、加速度、减速度、方向)的信息。驾驶统计数据123还可包括描述不同的时间点处的驾驶环境的信息,诸如,例如,路线(包括起点位置和目的地位置)、MPOI、道路状况、天气状况等。
基于驾驶统计数据123,机器学习引擎122针对各种目的生成或训练规则集、算法和/或预测模型124。在一个实施方式中,算法124可以包括用于感知、预测、决策、计划和/或控制过程的模型、规则或算法。然后可以将算法与模型124上传到ADV上,以在自动驾驶过程中实时使用。例如,控制系统111或感知与规划系统110可以是神经网络,其使用算法与模型124以及传感器系统115感测的实时本地环境数据来感知障碍物,预测其它车辆的运动,以及计划和控制自动驾驶车辆101的运动。
应注意,上述示出和描述的部件中的一些或全部可以在软件、硬件或其组合中实施。例如,此类部件可以实施为安装并存储在永久性存储装置中的软件,所述软件可以通过处理器(未示出)加载在存储器中并在存储器中执行以实施贯穿本申请所述的过程或操作。替代地,此类部件可以实施为编程或嵌入到专用硬件(诸如,集成电路(例如,专用集成电路或ASIC)、数字信号处理器(DSP)或现场可编程门阵列(FPGA))中的可执行代码,所述可执行代码可以经由来自应用的相应驱动程序和/或操作系统来访问。此外,此类部件可以实施为处理器或处理器内核中的特定硬件逻辑,作为可由软件部件通过一个或多个特定指令访问的指令集的一部分。
图2是示出根据一个实施方式的用于自动驾驶的系统架构的框图。系统架构200可以表示如图1所示的自动驾驶系统的系统架构。参考图2,系统架构200包括但不限于应用层201、规划与控制(PNC)层202、感知层203、驱动层204、固件层205以及硬件层206。应用层201可以包括与自动驾驶车辆的用户或乘客交互的用户界面或配置应用,诸如,例如,与用户接口系统113相关联的功能。PNC层202可以包括感知与规划系统110和控制系统111的功能。感知层203可以包括至少感知与规划系统110的功能。固件层205可以表示至少传感器系统115的功能,传感器系统115可以以现场可编程门阵列(FPGA)的形式实现。硬件层206可以表示自动驾驶车辆的诸如控制系统111的硬件。层201-203可以经由设备驱动层204与固件层205和硬件层206通信。PNC层202和感知层203可在神经网络上运行,神经网络的模型(例如算法与模型124)受本发明实施方式保护。可以通过在神经网络运行之前将模型分割为预配置存储器大小的分段并对分段的模型离线散列来保护模型。当在神经网络的操作期间在推理层中使用模型时,可以验证模型的散列段以实现模型的快速验证。
图3是根据一个实施方式的主机计算系统中的神经网络(NN)核330的架构,其中,NN模型从外部存储器下载到NN核330的SRAM中。NN核330可以是自动驾驶车辆101的控制系统111或感知与规划系统110的一部分,并且主机计算系统可以是自动驾驶车辆101的处理器或服务器103-104。
NN核330包括NN引擎332和NN SRAM 336。NN引擎332为一个或多个处理(诸如自主车辆101的感知、预测、决策、规划或控制)运行推理层的NN算法和模型。NN引擎332可以访问存储在NN SRAM 336中的NN模型。NN SRAM 336可以使其其存储器的一部分被分区为存储NN模型的模型权重分段或存储NN模型的元数据,以用于将要说明的NN模型的在线验证。SRAM336的分区的存储器被指定为conf-wm(配置的权重存储器)334,并且可以具有NN模型的模型权重或元数据的分段的预配置存储器大小相等的存储器大小,所述分段用于离线生成散列段。
主机计算系统包括DSP或RISC 310以及存储器,所述存储器包括DDR(双倍数据速率)存储器316(例如DDR DRAM)、SRAM 320和OPM(一次性可编程存储器)326。由于NN模型的尺寸较大,当NN核离线时,NN模型可以存储在NN核330外部的DDR存储器316中。NN模型可以存储为可执行可加载文件(ELF)。DDR控制模块318生成用于访问和刷新DDR存储器316的控制信号。在一个实施方式中,DSP或RISC 310可以配置为离线地将模型权重分割或聚集为预配置存储器大小的分段,散列分段的模型权重或元数据以及级联散列段。
主机计算系统包括来自传感器系统115的传感器,例如相机211。DMA模块312允许相机211和其它外围设备具有对DDR存储器316的直接存储器访问(DMA)能力。单独的DMA模块322为NN核330提供DMA能力以从DDR存储器316下载NN模型。诸如AXI(高级扩展接口)总线314之类的总线可通信地联接NN核330、DSP或RISC310、存储器子组件和相机211。外部主机340也可以通过诸如PCIe(外围组件互连快速)342的接口与主机计算系统通信。
当激活NN核330以运行NN算法时,DMA模块322可以将NN模型从DDR存储器316下载到NN SRAM 336中。NN模型可以作为ELF下载。每个ELF可以包含模型权重、元数据以及级联的散列段,该级联的散列段包含离线生成的、分段的模型权重的散列和元数据的散列。在一个实施方式中,首先可以将NN模型从DDR存储器316复制到NN核330外部的SRAM 320中,然后从SRAM 320复制到NN SRAM 336中。为了保护NN SRAM 336不被主机计算系统未授权访问,仅通过加密模块324对NN SRAM 336进行外部访问。加密模块324可以将NN模型的具有预配置存储器大小的、模型权重的连续分段或元数据下载到NN SRAM 336的conf_wm 334分区中。加密模块324可以对存储在conf_wm 334中的元数据或者模型权重的每个分段进行散列,并且可以将元数据或模型权重的分段的在线生成散列与它们对应的离线生成散列进行比较,以验证NN模型。当用于推理层的NN模型被验证,NN核330可以使用NN模型来运行用于推理层的NN算法。加密模块324可以验证用于连续的推理层的NN模型,直到NN核330完成所有推理层为止。
图4显示了根据一个实施方式的NN核330的NN SRAM 336的存储器分区。NN SRAM336可以存储NN引擎332使用的算法与模型124。NN核330的NN SRAM 336和NN引擎332可配置为受加密模块324保护的安全岛或虚拟机沙箱,以防止NN核330外部的源未经授权或意外访问。
NN SRAM 336的分区包括代码402、堆栈404、元存储器406、权重存储器408和特征图410。代码402包含由NN引擎332执行以运行NN算法的软件代码。堆栈404包含在执行期间由NN引擎332使用的存储器堆栈。特征图410是来自NN算法的运行时生成的输出,例如来自推理层的输出。代码402、堆栈404和特征图410没有受到防篡改的保护。
元存储器406包含NN模型的元数据,并且可以包括模型描述数据,例如模型激活范围、量化比例和移位以及其它配置数据。权重存储器408包含推理层的模型权重。如一个或多个实施方式所公开的,使用散列段保护和验证模型权重和元数据。为了加快推理,加密模块324可以在运行时、在推理层使用模型权重和元数据之前使用散列段在线验证模型权重和元数据。在一个实施方式中,可以使用离线生成的公钥、私钥对中的私钥加密散列段。在运行时,可以使用公钥解密加密的散列段。如所提及的,NN模型和NN模型的散列段可以作为ELF存储在NN核330外部的存储器中,并且在运行之前下载到NN SRAM 336中。
图5显示了根据一个实施方式的被下载到NN核330的NN SRAM336中的包含NN模型的NN ELF。NN ELF可以包含用于一个或多个推理层的NN模型。NN ELF包含ELF标头502,其包含与NN ELF的大小和分区以及NN模型的大小有关的信息。在ELF标头502之后是多个存储器分区。例如,第一存储器分区,分段1(504),可包含模型权重和元数据以外的信息。随后的存储器分区,从分段A(510)到分段X(514),可包含模型权重,然后是用于元数据的分区516。存储器分区的大小可不同。
为了保护模型权重和元数据,并且便于在线验证,在NN模型下载到NN核330之前,可以将模型权重和元数据的存储器分区分割成固定的预配置存储器大小,并且可以在离线操作中,对分割的模型进行散列。预配置存储器大小可以进行选择以在用于对分段的模型进行散列的处理时间与NN模型的散列段的数目之间取得平衡。例如,如果预配置存储器大小较小,则对每个分段进行散列的时间可能会很短,但是将有更多的NN模型分段需要散列。另一方面,如果预配置存储器大小较大,则对每个分段进行散列的时间可能会很长,但是需要散列的NN模型的分段会更少。预配置存储器大小还可以取决于NN SRAM 336的大小。在一个实施方式中,预配置存储器大小是2MB。在确定了预配置存储器大小之后,可以将NN SRAM336的conf_wm334分区设置为相同的大小,以利于使用散列段在线验证NN模型。
图6示出根据一个实施方式的当模型权重的存储器分区的大小大于预配置存储器大小时,NN ELF的模型权重的存储器分区的分段和散列。模型权重的存储器分区可以是图5中的分段A(510)。预配置存储器大小称为wm_size,或称权重存储器大小。
当分段A(510)大于wm_size时,分割操作可将分段A(510)分割成一个或多个分段,每个分段具wm_size。分段被指定为分段A1(621)、分段A2(622)等。最后的分段AN(626)可以小于wm_size。在一个实施方式中,可以添加填充628以使最后的分段AN(626)的大小变为wm_size。散列操作可以对每个分段进行散列,以生成散列A1(631)、散列A2(632)、…散列AN(636)。分段A(510)的散列段可以级联在一起。
图7示出根据一个实施方式的当模型权重的多个存储器分区中的每个分区的大小小于预配置权重存储器大小时,NN ELF的模型权重的多个存储器分区的聚集。当模型权重分段A(510)、分段B(511)、…分段X(514)的每个存储器分区小于wm_size时,聚集操作可将存储器分区聚集为小于或等于wm_size的组合段。可以添加填充748以使组合段的大小变为wm_size。散列操作可以对组合段进行散列以生成散列AX(738)。
回到图5,如图6和7所述的NN ELF的包含模型权重的存储器分区的分段A(510)到分段X(514)可以分割或聚集成wm_size的分段,并被散列。假设用于元数据的存储器分区516小于wm_size。元数据可被视为其自身的分段,并与模型权重的散列段分别地散列。在一个实施方式中,可以向元数据添加填充,以在散列操作之前将元数据的大小调整为wm_size。如果用于元数据的存储器分区516大于wm_size,则可以将元数据分割成一个或多个wm_size的分段,并与模型权重类似地被散列。
级联操作可以将从存储器分区的分段A(510)到分段X(514)生成的所有模型权重的散列段和从存储器分区516生成的元数据的散列段级联到散列段518。在一个实施方式中,散列段518可以被进一步散列,并且散列段518的散列可以用离线生成的公钥、私钥对中的私钥加密或签名。散列段518的加密的散列可以在运行时使用公钥解密。
图8显示根据一个实施方式的元数据的在线散列以及分段的模型权重的在线散列,其用于与NN ELF的离线生成的散列段518进行比较,从而在运行期间验证NN的模型。当激活NN核330以运行NN算法时,将图5中的NN ELF从DDR存储器316下载到NN SRAM 336中。NNELF包含存储器分区的分段A(510)到分段X(514)中的模型权重,存储器分区516中的元数据以及散列段518。散列段518包含离线生成的、级联的分段的模型权重的散列与元数据的散列(表示为802),级联的散列段802的散列(表示为804)、以及使用私钥的级联的散列段802的散列804的加密签名(表示为806)。
加密模块324可以使用公钥、私钥对中的公钥来解密加密的签名806,以验证级联的散列段802。在一个实施方式中,可以从OPM 326读取公钥。如果级联的散列段802验证成功,加密模块324可以通过将存储器分区516中的元数据写入NN SRAM 336的conf_wm 334分区中来验证元数据。conf_wm 334分区具有等于预配置存储器大小wm_size的存储器大小,这个大小是用于离线生成的元数据的散列的元数据的大小。加密模块324可生成conf_wm334中的元数据的散列。在线生成的元数据的散列可以表示为散列M。加密模块324可以比较在线生成的散列M与离线生成的从级联的散列段802检索的元数据的散列,以验证元数据。
如果元数据验证成功,加密模块324可以通过将模型权重的连续的分段写入conf-wm 334分区来验证存储器分区的分段A(510)中的模型权重。因此,conf-wm 334分区可以包含来自存储器分区的分段A(510)的模型权重的连续的分段,该连续的分段用于离线生成的分段的模型权重的散列。加密模块324可以在conf-wm 334分区中生成分段的模型权重的散列。例如,如果存储器分区的分段A(510)包含两个分段的模型权重,则加密模块324可以生成表示为散列A1和散列A2的两个分段的模型权重的散列。加密模块324可以比较在线生成的散列A1和散列A2与离线生成的模型权重的散列,离线生成的模型权重的散列检索自级联的散列段802,以验证存储器分区的分段A(510)中的模型权重。
加密模块324可以通过将模型权重的连续的分段写入conf-wm334分区,生成分段的模型权重的散列,并比较在线生成的分段的模型权重的散列与离线生成的、从级联的散列段802检索的分段的模型权重的散列,来验证NN ELF的剩余存储器分区中的模型权重。当用于推理层的模型权重和元数据被验证时,NN引擎332可以使用验证的NN模型运行推理层的NN算法。加密模块324可以验证用于连续的推理层的NN模型,直到NN引擎332完成所有推理层。
图9是示出根据一个实施方式的离线生成由NN ELF的模型权重的分段的散列与元数据的散列级联而成的散列段的方法900的流程图。方法900可以通过处理逻辑来执行,该处理逻辑可以包括软件、硬件或其组合。例如,方法900可由加密模块324、DSP或RISC 310或外部主机340执行。
在操作901处,方法900读取模型权重的分段。模型权重的分段可以是NN ELF的模型权重的存储器分区,例如图5中的分段A(510)或分段X(514)。
在操作903处,方法900比较模型权重的分段的大小与预配置权重存储器大小。预配置权重存储器大小可以是wm_size。
如果模型权重的分段的大小大于预配置权重存储器大小,则在操作905处,方法900将模型权重的分段划分为多个子分段。模型权重的每个子分段可以具有预配置权重存储器大小。
在操作907处,方法900对每个具有预配置权重存储器大小的模型权重的子分段进行散列,以生成模型权重的散列子分段。
如果模型权重的分段的大小小于预配置权重存储器大小,则在操作909处,方法900读取一个或多个附加模型权重的分段,以聚集尽可能多的可以组合在一起的模型权重的分段,以保持在预配置重量存储器大小内。
在操作911处,方法900对具有预配置权重存储器大小的模型权重的组合段进行散列,以生成模型权重的散列组合段。
在操作913处,方法900确定是否存在更多的模型权重的分段需要散列。附加段可以是NN ELF的模型权重的附加的存储器分区。如果还存在至少一个的模型权重分段需要散列,则方法900重复操作901、903、905、907或操作901、903、909、911,以分别生成模型权重的散列子分段或模型权重的散列组合段。
如果没有更多需要散列的模型权重分段,则在操作915处,方法900对元数据以生成散列元数据进行散列。假设元数据的大小小于预配置权重存储器大小。在一个实施方式中,如果元数据的大小大于预配置权重存储器大小,则方法900可以将元数据分割成一个或多个预配置权重存储器大小的分段,并且可以像对模型权重的子分段进行散列一样,对分段的元数据进行散列。
在操作917处,方法900将模型权重的散列子分段、模型权重的散列组合段和散列元数据级联成级联散列段。
在操作919处,方法900还对模型权重和散列元数据的级联散列段进行散列。方法900使用公钥、私钥对中的私钥加密或签名级联散列段的散列。该方法将级联散列段的加密散列存储在NN ELF中。
图10是示出根据一个实施方式的用于执行对NN ELF的模型权重以及元数据的分段的完整性检查的在线解密以及验证散列段的方法的流程图。方法1000可以通过处理逻辑来执行,该处理逻辑可以包括软件、硬件或其组合。例如,方法1000可以由加密模块324执行。
在操作1001处,方法1000将NN ELF写入NN存储器,例如NN核330的NN SRAM 336,其中,该NN ELF包含一个或多个模型权重的分段、元数据以及加密级联散列段的散列。级联散列段包含离线生成的模型权重的散列子分段、模型权重的散列组合段以及散列元数据的级联。
在操作1003处,方法1000使用公钥、私钥对中的公钥解密加密的级联散列段的散列,以验证级联散列段。在一个实施方式中,可以从OPM 326读取公钥。
在操作1005处,方法1000确定级联散列段的验证是否成功。如果验证不成功,则在操作1007处,方法1000声明散列验证失败。
如果级联散列段的验证成功,则在操作1009处,方法1000将元数据从NN ELF写入NN存储器的分区,该分区具有与预配置权重存储器大小相等的分区存储器大小。在一个实施方式中,NN存储器的分区可以是NN SRAM 336的conf_wm 334分区。conf_wm 334分区可以具有wm_size的存储器大小。方法1000在NN存储器的分区中生成元数据的散列以产生在线生成的散列元数据。
在操作1011处,方法1000确定在线生成的散列元数据是否等于从级联的散列段检索的离线生成的散列元数据,以验证元数据。如果在线生成的散列元数据不同于离线生成的散列元数据,则在操作1013处,方法1000声明元数据验证失败。
如果在线生成的散列元数据等于离线生成的散列元数据,在操作1015处,如果模型权重的分段的大小大于预配置权重存储器大小,则方法1000将来自NN ELF的模型权重的分段的子分段写入NN存储器的分区中;如果模型权重的分段的大小小于预配置权重存储器大小,则方法1000将一个或多个附加的模型权重的分段写入NN存储器的分区中,以聚集尽可能多的可以组合在一起的模型的分段,以适合NN存储器的分区。方法1000在NN存储器的分区中生成模型权重的散列,以产生在线生成的分段的模型权重的散列。
在操作1017处,方法1000确定在线生成的分段的模型权重的散列是否等于离线生成的模型权重的散列子分段或离线生成的模型权重的散列组合段,以验证模型权重的分段。如果它们不同,则在操作1019处,方法1000声明模型权重验证失败。
如果在线生成的分段的模型权重的散列等于离线生成的模型权重的散列子分段或离线生成的模型权重的散列组合段,则在操作1021处,方法1000确定是否有更多需要验证的模型权重的分段。如果还有至少一个需要验证的模型权重的分段,则方法1000重复操作1015和1017以验证模型权重的附加段。如果没有更多需要验证的模型权重的分段,则方法1000成功验证NN模型并在操作1023处终止。
数据处理系统可执行上述任何处理或方法,诸如,例如,离线生成的由模型权重的分段的散列和NN ELF的元数据的散列级联而成的散列段,或在线验证散列段以执行NN ELF的模型权重的分段和元数据的完整性检查。数据处理系统可以包括许多不同的组件。这些组件可以实现为集成电路(ICs)、集成电路的部分、分立的电子设备、或其它适合于电路板(例如计算机系统的主板或插件卡)的模块、或者实现为以其它方式并入计算机系统的机箱中的组件。
数据处理系统可以包括一个或多个处理器,一个或多个存储器以及经由总线连接的设备。处理器可以代表一个或多个通用处理器,例如微处理器、中央处理单元(CPU)等。更具体地说,处理器可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器,超长指令字(VLIW)微处理器、实现其它指令集的处理器或者是实现指令集组合的处理器。处理器也可以是一个或多个专用处理器,例如专用集成电路(ASIC)、蜂窝或基带处理器、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器、图形处理器、通信处理器、密码处理器、协处理器、嵌入式处理器或能够处理指令的任何其它类型的逻辑。处理器可以配置为执行存储在存储器中的指令,以执行本文中讨论的操作和步骤。
本文中描述的处理模块/单元/逻辑,组件和其它特征可以实现为分立的硬件组件,或者被集成在硬件组件的功能中,例如ASICS、FPGAs、DSPs或类似设备。另外,处理模块/单元/逻辑可以实现为硬件设备内的固件或功能电路。此外,处理模块/单元/逻辑可以以任何组合的硬件设备和软件组件来实现。
前述详细描述中的一些部分已经根据在计算机存储器内对数据位的运算的算法和符号表示而呈现。这些算法描述和表示是数据处理领域中的技术人员所使用的方式,以将他们的工作实质最有效地传达给本领域中的其他技术人员。本文中,算法通常被认为是导致所期望结果的自洽操作序列。这些操作是指需要对物理量进行物理操控的操作。
然而,应当牢记,所有这些和类似的术语均旨在与适当的物理量关联,并且仅仅是应用于这些量的方便标记。除非在以上讨论中以其它方式明确地指出,否则应当了解,在整个说明书中,利用术语(诸如所附权利要求书中所阐述的术语)进行的讨论是指计算机系统或类似电子计算装置的动作和处理,所述计算机系统或电子计算装置操控计算机系统的寄存器和存储器内的表示为物理(电子)量的数据,并将所述数据变换成计算机系统存储器或寄存器或者其它此类信息存储设备、传输或显示装置内类似地表示为物理量的其它数据。
本公开的实施方式还涉及用于执行本文中的操作的设备。这种计算机程序被存储在非暂时性计算机可读介质中。机器可读介质包括用于以机器(例如,计算机)可读的形式存储信息的任何机构。例如,机器可读(例如,计算机可读)介质包括机器(例如,计算机)可读存储介质(例如,只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储介质、光存储介质、闪存存储器装置)。
前述附图中所描绘的过程或方法可以由处理逻辑来执行,所述处理逻辑包括硬件(例如,电路、专用逻辑等)、软件(例如,体现在非暂时性计算机可读介质上)或两者的组合。尽管所述过程或方法在上文是依据一些顺序操作来描述的,但是应当了解,所述操作中的一些可以按不同的顺序执行。此外,一些操作可以并行地执行而不是顺序地执行。
本公开的实施方式并未参考任何特定的编程语言进行描述。应认识到,可以使用多种编程语言来实施如本文描述的本公开的实施方式的教导。
在以上的说明书中,已经参考本公开的具体示例性实施方式对本发明的实施方式进行了描述。将显而易见的是,在不脱离所附权利要求书中阐述的本发明的更宽泛精神和范围的情况下,可以对本公开作出各种修改。因此,应当在说明性意义而不是限制性意义上来理解本说明书和附图。
Claims (20)
1.一种用于保护神经网络的模型的计算机实现的方法,所述方法包括:
连续读取所述神经网络的模型的多个存储器分区;
确定所述模型的多个存储器分区中的存储器分区的大小是否大于预配置存储器大小;
响应于确定所述存储器分区的大小大于所述预配置存储器大小,将所述模型的存储器分区分割为多个分段,每个分段的大小为所述预配置存储器大小;
响应于确定所述存储器分区的大小小于所述预配置存储器大小,将所述存储器分区与所述模型的多个存储器分区中的一个或多个其他的存储器分区进行组合,以使组合的分区适合于所述预配置存储器大小;
散列所述多个分段中的每个分段以及所述组合的分区以生成多个散列段;以及
将所述多个散列段级联为所述神经网络的模型的级联散列段。
2.根据权利要求1所述的方法,其中,所述存储器分区包括所述神经网络的模型的模型权重和元数据。
3.根据权利要求2所述的方法,其中,将所述存储器分区与所述模型的多个存储器分区中的一个或多个其他的存储器分区进行组合,以使组合的分区适合于所述预配置存储器大小包括:
在所述模型权重的组合的分区的大小不超过所述预配置存储器大小的情况下,组合尽可能多的能够组合在一起的所述模型权重。
4.根据权利要求2所述的方法,其中,所述元数据包括一个小于所述预配置存储器大小的存储器分区,并且其中,将所述存储器分区与所述模型的多个存储器分区中的一个或多个其他的存储器分区进行组合,以使组合的分区适合于所述预配置存储器大小包括:
与所述模型权重分开地处理所述元数据。
5.根据权利要求1所述的方法,还包括:
将所述神经网络的模型的级联散列段写入所述神经网络的模型中。
6.根据权利要求5所述的方法,其中,在所述神经网络加载并执行神经网络可执行可加载文件之前,将所述级联散列段写入所述神经网络可执行可加载文件中的神经网络的模型中。
7.根据权利要求1所述的方法,其中,将所述多个散列段级联为所述神经网络的模型的级联散列段包括:
散列所述级联散列段,以生成所述级联散列段的散列;以及
使用公钥、密钥对中的私钥加密所述级联散列段的散列。
8.根据权利要求1所述的方法,其中,将所述模型的存储器分区分割为多个分段包括:
填充所述多个分段中的一个分段,使得所述一个分段的大小等于所述预配置存储器大小。
9.一种数据处理系统,包括:
处理器;
与所述处理器联接以存储指令的存储器,当所述处理器执行所述指令时,使得所述处理器执行操作,所述操作包括:
连续读取神经网络的模型的多个存储器分区;
确定所述模型的多个存储器分区中的存储器分区的大小是否大于预配置存储器大小;
响应于确定所述存储器分区的大小大于所述预配置存储器大小,将所述模型的存储器分区分割为多个分段,每个分段的大小为所述预配置存储器大小;
响应于确定所述存储器分区的大小小于所述预配置存储器大小,将所述存储器分区与所述模型的多个存储器分区中的一个或多个其他的存储器分区进行组合,以使组合的分区适合于所述预配置存储器大小;
散列所述多个分段中的每个分段以及所述组合的分区以生成多个散列段;以及
将所述多个散列段级联为所述神经网络的模型的级联散列段。
10.根据权利要求9所述的数据处理系统,其中,所述存储器分区包括所述神经网络的模型的模型权重和元数据。
11.根据权利要求10所述的数据处理系统,其中,将所述存储器分区与所述模型的多个存储器分区中的一个或多个其他的存储器分区进行组合,以使组合的分区适合于所述预配置存储器大小包括:
在所述模型权重的组合的分区的大小不超过所述预配置存储器大小的情况下,组合尽可能多的能够组合在一起的所述模型权重。
12.根据权利要求10所述的数据处理系统,其中,所述元数据包括一个小于所述预配置存储器大小的存储器分区,并且其中,将所述存储器分区与所述模型的多个存储器分区中的一个或多个其他的存储器分区进行组合,以使组合的分区适合于所述预配置存储器大小包括:
与所述模型权重分开地处理所述元数据。
13.根据权利要求9所述的数据处理系统,其中,所述操作还包括:
将所述神经网络的模型的级联散列段写入所述神经网络的模型中。
14.根据权利要求13所述的数据处理系统,其中,在所述神经网络加载并执行神经网络可执行可加载文件之前,将所述级联散列段写入所述神经网络可执行可加载文件中的神经网络的模型中。
15.根据权利要求9所述的数据处理系统,其中,将所述多个散列段级联为所述神经网络的模型的级联散列段包括:
散列所述级联散列段,以生成所述级联散列段的散列;以及
使用公钥、密钥对中的私钥加密所述级联散列段的散列。
16.根据权利要求9所述的数据处理系统,其中,将所述模型的存储器分区分割为多个分段包括:
填充所述多个分段中的一个分段,使得所述一个分段的大小等于所述预配置存储器大小。
17.一种用于验证神经网络的模型的计算机实现的方法,所述方法包括:
验证所述神经网络的模型的级联散列段,所述级联散列段包括从所述模型的多个分段散列的多个离线生成的散列段的级联,所述模型的多个分段中的每一个分段具有预配置存储器大小;
连续地散列所述模型的所述多个分段中的分段,以为所述分段生成在线生成的散列段;
比较所述在线生成的散列段和与所述分段对应的离线生成的散列段;
验证用于所述模型的所述多个分段中的每个分段的在线生成的散列段相同于与所述分段对应的离线生成的散列段;以及
在所述神经网络的一个或多个推理层中使用所述神经网络的模型。
18.根据权利要求17所述的方法,其中,所述神经网络的模型包括所述模型的模型权重和元数据。
19.根据权利要求18所述的方法,其中,连续地散列所述模型的所述多个分段中的分段,以为所述分段生成在线生成的散列段包括:
将所述模型权重的分段写入安全存储器的分区中,其中,所述安全存储器的分区的大小为所述预配置存储器大小;以及
在所述安全存储器的分区中,散列所述模型权重的分段,以为所述模型权重的分段生成在线生成的散列段。
20.根据权利要求17所述的方法,其中,所述级联散列段包括使用公钥、密钥对中的私钥对所述级联散列段的加密,并且其中,验证所述神经网络的模型的级联散列段包括:
使用所述公钥、密钥对中的所述公钥,解密所述级联散列段的加密;以及
在连续散列所述模型的所述多个分段中的分段之前,基于对所述级联散列段的加密的解密,验证所述级联散列段。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/598,909 | 2019-10-10 | ||
US16/598,909 US11568062B2 (en) | 2019-10-10 | 2019-10-10 | Methods to protect neural network models |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112650977A CN112650977A (zh) | 2021-04-13 |
CN112650977B true CN112650977B (zh) | 2024-04-09 |
Family
ID=75346674
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010517588.3A Active CN112650977B (zh) | 2019-10-10 | 2020-06-09 | 保护神经网络模型的方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11568062B2 (zh) |
CN (1) | CN112650977B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102648499B1 (ko) * | 2021-03-11 | 2024-03-19 | 한국전자통신연구원 | 기계 학습 기반 키 생성 장치 및 방법 |
CN113515812A (zh) * | 2021-07-09 | 2021-10-19 | 东软睿驰汽车技术(沈阳)有限公司 | 自动驾驶方法、装置、处理设备及存储介质 |
WO2024064533A1 (en) * | 2022-09-23 | 2024-03-28 | Apple Inc. | New model download during handover |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103080984A (zh) * | 2010-06-30 | 2013-05-01 | 巴里·林恩·詹金斯 | 使用保守的线性化本影事件面来确定从区看去的可见性和进行基于增量pvs的内容流处理的系统及方法 |
CN105900386A (zh) * | 2014-02-05 | 2016-08-24 | 英特尔公司 | 具有线速和分组数据速率匹配的以太网分组数据的可靠传输 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7275102B2 (en) * | 2001-01-22 | 2007-09-25 | Sun Microsystems, Inc. | Trust mechanisms for a peer-to-peer network computing platform |
KR20120053398A (ko) * | 2010-11-17 | 2012-05-25 | 삼성전자주식회사 | 컨텐츠를 검증하기 위한 서명 장치와 검증 장치를 포함하는 검증 시스템 및 검증 방법 |
US9672474B2 (en) * | 2014-06-30 | 2017-06-06 | Amazon Technologies, Inc. | Concurrent binning of machine learning data |
US10318882B2 (en) * | 2014-09-11 | 2019-06-11 | Amazon Technologies, Inc. | Optimized training of linear machine learning models |
US10402372B2 (en) * | 2015-07-27 | 2019-09-03 | Sas Institute Inc. | Distributed data storage grouping |
US10360494B2 (en) * | 2016-11-30 | 2019-07-23 | Altumview Systems Inc. | Convolutional neural network (CNN) system based on resolution-limited small-scale CNN modules |
WO2018103736A1 (en) * | 2016-12-09 | 2018-06-14 | Beijing Horizon Information Technology Co., Ltd. | Systems and methods for data management |
EP3654215B1 (en) * | 2018-11-15 | 2021-06-30 | Sternum Ltd. | Applying control flow integrity verification in intermediate code files |
US10834196B2 (en) * | 2019-03-21 | 2020-11-10 | International Business Machines Corporation | Segmenting and merging data in a dispersed storage network |
US10909033B1 (en) * | 2019-08-15 | 2021-02-02 | Nvidia Corporation | Techniques for efficiently partitioning memory |
-
2019
- 2019-10-10 US US16/598,909 patent/US11568062B2/en active Active
-
2020
- 2020-06-09 CN CN202010517588.3A patent/CN112650977B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103080984A (zh) * | 2010-06-30 | 2013-05-01 | 巴里·林恩·詹金斯 | 使用保守的线性化本影事件面来确定从区看去的可见性和进行基于增量pvs的内容流处理的系统及方法 |
CN105900386A (zh) * | 2014-02-05 | 2016-08-24 | 英特尔公司 | 具有线速和分组数据速率匹配的以太网分组数据的可靠传输 |
Also Published As
Publication number | Publication date |
---|---|
US20210110048A1 (en) | 2021-04-15 |
US11568062B2 (en) | 2023-01-31 |
CN112650977A (zh) | 2021-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112650977B (zh) | 保护神经网络模型的方法 | |
US11400959B2 (en) | Method and system to predict one or more trajectories of a vehicle based on context surrounding the vehicle | |
US11323876B2 (en) | Method for adaptively adjusting security level of V2X communication message and apparatus therefor | |
JP6605642B2 (ja) | 車両及び車両を管理制御するシステム | |
US10343685B2 (en) | Physical model and machine learning combined method to simulate autonomous vehicle movement | |
US11142190B2 (en) | System and method for controlling autonomous driving vehicle | |
US10053091B2 (en) | Spring system-based change lane approach for autonomous vehicles | |
CN111613091A (zh) | 利用外部驾驶员数据增强移动设备操作 | |
US20210403004A1 (en) | Driver monitoring system (dms) data management | |
US20190049950A1 (en) | Driving environment based mixed reality for computer assisted or autonomous driving vehicles | |
JP7176488B2 (ja) | データ保存装置、及びデータ保存プログラム | |
Wang et al. | Automotive domain controller | |
CN113078974B (zh) | 用于神经网络稀疏信道生成和推断的方法 | |
US20230192084A1 (en) | Autonomous vehicle, control system for sharing information with autonomous vehicle, and method thereof | |
CN112693407A (zh) | 车辆安全性增强 | |
CN116018292A (zh) | 用于自主车辆中的物体检测的系统和方法 | |
US11288373B2 (en) | Boot failure recovery scheme for hardware-based system of autonomous driving vehicles | |
US20230185919A1 (en) | System and process using homomorphic encryption to secure neural network parameters for a motor vehicle | |
US20200333470A1 (en) | Flexible gps message decoder for decoding gps messages during autonomous driving | |
US20240211363A1 (en) | Gpu stress test with dynamic loads | |
KR20240074144A (ko) | 자율 주행 차량의 시뮬레이션 방법, 장치 및 컴퓨터-판독가능 기록매체 | |
KR20240077619A (ko) | 자율 주행 차량의 시뮬레이션 방법, 장치 및 컴퓨터-판독가능 기록매체 | |
KR20240044888A (ko) | 보행자 의도 추정을 활용하여 주행속도를 결정하는 방법 및 장치 |
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 |