CN112528242B - 使用用于数据处理加速器的水印算法配置水印单元的系统和方法 - Google Patents

使用用于数据处理加速器的水印算法配置水印单元的系统和方法 Download PDF

Info

Publication number
CN112528242B
CN112528242B CN202011248236.9A CN202011248236A CN112528242B CN 112528242 B CN112528242 B CN 112528242B CN 202011248236 A CN202011248236 A CN 202011248236A CN 112528242 B CN112528242 B CN 112528242B
Authority
CN
China
Prior art keywords
watermark
accelerator
model
algorithm
application
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
Application number
CN202011248236.9A
Other languages
English (en)
Other versions
CN112528242A (zh
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.)
Kunlun Core Beijing Technology Co ltd
Baidu USA LLC
Original Assignee
Kunlun Core Beijing Technology Co ltd
Baidu USA LLC
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 Kunlun Core Beijing Technology Co ltd, Baidu USA LLC filed Critical Kunlun Core Beijing Technology Co ltd
Publication of CN112528242A publication Critical patent/CN112528242A/zh
Application granted granted Critical
Publication of CN112528242B publication Critical patent/CN112528242B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • G06F18/2155Generating training patterns; Bootstrap methods, e.g. bagging or boosting characterised by the incorporation of unlabelled data, e.g. multiple instance learning [MIL], semi-supervised techniques using expectation-maximisation [EM] or naïve labelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/16Program or content traceability, e.g. by watermarking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • 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/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/106Enforcing content protection by specific content processing
    • G06F21/1063Personalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/509Offload
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Neurology (AREA)
  • Medical Informatics (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioethics (AREA)
  • Advance Control (AREA)
  • Storage Device Security (AREA)

Abstract

本公开的实施例涉及使用用于数据处理(DP)加速器的人工智能(AI)模型的水印算法配置水印单元的系统和方法。在一个实施例中,响应于由DP加速器接收到的请求,由应用发送以由DP加速器将水印算法应用于AI模型的请求,系统确定水印算法在DP加速器的水印单元处不可用。系统发送针对水印算法的请求。系统通过DP加速器接收水印算法。系统在运行时使用水印算法配置水印单元,用于使水印算法将由DP加速器使用。

Description

使用用于数据处理加速器的水印算法配置水印单元的系统和 方法
技术领域
本公开的实施例一般涉及机器学习模型训练和推断。更具体地,本公开的实施例涉及使用用于数据处理(DP)加速器的人工智能(AI)模型的水印算法配置水印单元。
背景技术
机器学习模型近来已被广泛地利用,因为人工智能(AI)技术已被部署在诸如图像分类或自主驾驶的各种领域中。类似于软件应用的可执行图像或二进制图像,机器学习模型(也称为人工智能(AI)模型)在经过训练后可以基于特征集执行推断以对特征进行分类。结果,机器学习模型可以是“便携的”且可以被利用而无需认证。目前对于机器学习模型缺乏有效的数字版权保护。另外,使用委托给诸如处理(DP)加速器或远程系统的辅助处理系统的AI模型进行的处理任务,还缺乏证据证明由DP加速器系统产生的结果受“信任根”系统保护。
发明内容
本公开的实施例涉及使用用于数据处理(DP)加速器的人工智能(AI)模型的水印算法配置水印单元的系统和方法。
在本公开的实施例的第一方面,提供了一种用于通过数据处理DP加速器处理数据的计算机实现方法,方法包括:响应于由数据处理DP加速器接收到的请求,请求由应用发送以由DP加速器将水印算法应用于人工智能AI模型,确定水印算法在DP加速器的水印单元处不可用;发送针对水印算法的请求;由DP加速器接收水印算法;以及在运行时使用水印算法配置水印单元,用于使水印算法将由DP加速器使用。
在本公开的实施例的第二方面,提供了一种用于通过数据处理DP加速器处理数据的装置,包括:确定模块,用于响应于由数据处理DP加速器接收到的请求,请求由应用发送以由DP加速器将水印算法应用于人工智能AI模型,确定水印算法在DP加速器的水印单元处不可用;发送模块,用于发送针对水印算法的请求;接收模块,用于由DP加速器接收水印算法;以及配置模块,用于在运行时使用水印算法配置水印单元,用于使水印算法将由DP加速器使用。
在本公开的实施例的第三方面,提供了一种非暂时性机器可读介质,其中存储有指令,指令在由处理器执行时使处理器执行如本申请的实施例的第一方面所述的方法。
在本公开的实施例的第四方面,提供了一种数据处理系统包括:处理器;以及耦接到处理器以存储指令的存储器,指令在由处理器执行时使处理器执行如本申请的实施例的第一方面所述的方法。
附图说明
在附图的图中以示例而非限制的方式示出本公开的实施例,在附图中,相似的附图标记指示相似的元件。
图1是示出根据一个实施例的用于主机与数据处理(DP)加速器之间的通信的系统配置的示例的框图。
图2是示出根据一个实施例的与数据处理(DP)加速器通信的主机服务器的示例的框图。
图3是示出根据一个实施例的与数据处理加速器通信的主机的框图。
图4是示出根据一个实施例的对嵌入有水印的AI模型进行签名的过程的流程图。
图5是示出根据一个实施例的由DP加速器执行的方法的流程图。
图6是示出根据一个实施例的由应用执行的方法的流程图。
图7是示出根据一个实施例的具有可配置水印单元的DP加速器的框图。
图8是示出根据一个实施例的使用水印算法配置水印单元的过程的流程图。
图9是示出根据一个实施例的由DP加速器执行的方法的流程图。
图10是说明根据一个实施例的具有水印算法训练器的DP加速器的框图。
图11是示出根据一个实施例的由DP加速器执行的方法的流程图。
图12是示出根据一个实施例的由DP加速器执行的方法的流程图。
图13是示出根据一个实施例的具有水印验证模块的DP加速器的框图。
图14是示出根据一个实施例的验证水印的过程的流程图。
图15是示出根据一个实施例的由DP加速器执行的方法的流程图。
图16是示出根据一个实施例的由主机的应用执行的方法的流程图。
图17是示出根据一个实施例的数据处理系统的框图。
具体实施方式
将参考以下讨论的细节描述本公开的各个实施例和方面,并且附图将示出各个实施例。以下描述和附图是本公开的说明,并且不应被解释为限制本公开。描述许多具体细节以提供对本公开的各个实施例的透彻理解。然而,在某些情况下,没有描述公知或常规的细节,以便提供对本公开的实施例的简要讨论。
在说明书中对“一个实施例”或“实施例”的引用意味着结合实施例描述的特定特征、结构或特性可以包括在本公开的至少一个实施例中。说明书中各个地方出现的短语“在一个实施例中”并不一定全指同一实施例。
以下实施例涉及使用数据处理(DP)加速器以增加某些类型的操作的处理吞吐量,这些类型的操作可以从主机设备卸载(或委托)给DP加速器。DP加速器可以是图形处理单元(GPU)、人工智能(AI)加速器、数学协处理器、数字信号处理器(DSP)或其他类型的处理器。DP加速器可以是专有设计,诸如AI加速器、GPU等。虽然以被安全地耦接到一个或多个DP加速器的主机设备示出和描述实施例,然而本文所述的概念可以更一般地实现为分布式处理系统。
主机设备和DP加速器可以经由诸如外围组件快速互连(PCIe)的高速总线或其他高速总线互连。在执行以下描述的本发明的各方面的操作之前,主机设备和DP加速器可以通过PCIe总线交换密钥并发起安全信道。操作中的一些包括DP加速器使用人工智能(AI)模型(或机器学习模型),以使用由主机设备提供的数据执行推断。在主机设备信任AI模型推断之前,主机设备可以让DP加速器执行一个或多个验证,如以下描述的,包括确定AI模型的水印。在一些实施例和操作中,DP加速器没有意识到主机设备正在DP加速器处验证AI模型的水印。
AI模型的水印是嵌入在AI模型内、或在AI模型的输出中、或其组合中的标识AI模型的源/制造者的标识符。嵌入或植入是指修改AI模型或AI模型的训练,诸如修改AI模型的层或权重、或AI模型的训练纪元(training epoch)(或其他训练参数)。在一些实施例中,水印可以是AI模型内的权重的子集,当其被从AI模型中提取时包括水印。在实施例中,主机设备可以将特定输入发送到DP加速器,当DP加速器使用特定输入执行AI模型时,DP加速器从AI模型中提取水印。主机设备可以在使用DP加速器和/或AI模型之前证实/验证水印用以获得授权。
根据第一方面,响应于由数据处理加速器接收到的请求,由应用(该应用可以由主机机器托管)发送以将数字版权保护嵌入到人工智能(AI)模型中的请求,系统(例如DP加速器)基于水印算法生成用于AI模型的水印。系统将水印嵌入到AI模型上。系统对具有嵌入的水印的AI模型进行签名以生成签名。系统将签名和具有嵌入的水印的AI模型返回给应用,其中签名被用来认证水印和/或AI模型。
在一个实施例中,系统(例如,主机)通过人工智能(AI)应用将请求发送到数据处理加速器,请求基于水印算法生成用于AI模型的水印,将水印嵌入到AI模型上,并基于安全密钥对生成用于具有水印的AI模型的签名。系统接收签名,其中签名被用来认证水印和/或AI模型。
根据第二方面,响应于由数据处理(DP)加速器接收到的请求,由应用发送以由DP加速器将水印算法应用于人工智能(AI)模型的请求,系统(例如,DP加速器)确定水印算法在DP加速器的水印单元处不可用。系统发送针对水印算法的请求。系统通过DP加速器接收水印算法。系统在运行时使用水印算法配置水印单元,用于使水印算法将由DP加速器使用。
根据第三方面,系统(例如,DP加速器)基于预定标准集训练水印算法,其中训练水印算法以生成水印算法的变型。系统在运行时使用水印算法的变型配置水印单元,用于使水印算法将由DP加速器使用。
根据第四方面,系统(例如,DP加速器)从应用接收推断请求。系统从具有水印的人工智能(AI)模型中提取水印。系统基于策略验证提取的水印。系统将具有水印的AI模型应用于推断输入集,以生成推断结果。系统将验证证明和推断结果发送到应用。
在一个实施例中,系统(例如,主机应用)将推断请求发送到数据处理(DP)加速器,请求通过将具有水印的人工智能(AI)模型应用于推断输入以生成推断结果,其中请求包括由DP加速器从具有水印的AI模型中提取水印,并基于策略验证提取的水印。系统接收给应用的验证证明和推断结果。
可以将以上功能中的任一个编程为一个或多个非暂时性计算机可读介质上的可执行指令。当可执行指令由具有至少一个硬件处理器的处理系统执行时,处理系统使功能得以实现。
以上功能中的任一个可以由具有至少一个硬件处理器的处理系统实现,至少一个硬件处理器耦接到以可执行指令编程的存储器,可执行指令在被执行时使处理系统实现功能。
关于以上方面中的任一个,在一个实施例中,可以将水印嵌入在AI或机器学习模型的一层或多层的一个或多个节点中。例如,可以将水印植入一个或多个权重变量或偏置变量中。可替换地,可以创建一个或多个节点(例如,机器学习模型未使用或不太可能使用的假节点)或节点层以植入或存储水印。主机处理器可以是中央处理单元(CPU),并且DP加速器可以是通过总线或互连耦接到CPU的通用处理单元(GPU)。可以以专用集成电路(ASIC)、现场可编程门阵列(FPGA)设备或其他形式的集成电路(IC)的形式实现DP加速器。可替换地,主机处理器可以是主要数据处理系统的一部分,而DP加速器可以是作为辅助系统的许多分布式系统中的一个,主系统可以通过链接或网络远程卸载其数据处理任务,例如云计算系统,诸如软件即服务或SaaS系统,或平台即服务或Paas系统。主机处理器和DP加速器之间的链接可以是外围组件快速互连(PCIe)链接或网络连接(诸如以太网连接)。
图1是示出根据一个实施例的用于主机与数据处理(DP)加速器之间的通信的系统配置的示例的框图。参考图1,系统配置100包括但不限于经由网络103通信地耦接到数据处理服务器104的一个或多个客户端设备101-102。数据处理服务器104可以经由网络103耦接到云提供商108。客户端设备101-102可以是任何类型的客户端设备,诸如个人计算机(例如台式机、笔记本电脑和平板电脑)、“瘦”客户端、个人数字助理(PDA)、具有Web能力的电器、智能手表、或移动电话(智能电话)等。可替换地,客户端设备101-102可以是其他服务器。网络103可以是任何类型的网络,诸如局域网(LAN),诸如因特网的广域网(WAN)或其组合,有线或无线的。可以例如经由TLS/SSL保护客户端设备101-102、数据处理服务器104和云提供商108之间的通过网络103的通信。
数据处理服务器(例如,主机)104可以是任何种类的服务器或服务器集群,诸如Web或云服务器、应用服务器,后端服务器或其组合。服务器104可以包括允许诸如客户端设备101-102的客户端访问由服务器104提供的资源或服务的接口。例如,服务器104可以是云服务器或数据中心的服务器,其向客户端提供各种云服务,诸如,例如云存储、云计算服务、大数据服务、建模服务、机器学习训练服务、数据挖掘服务等。服务器104可以被配置为云上的软件即服务(SaaS)或平台即服务(PaaS)系统的一部分,云可以是私有云、公共云或混合云。接口可以包括Web接口、应用编程接口(API)和/或命令行接口(CLI)。
例如客户端,在该示例中,客户端设备101的用户应用(例如,Web浏览器、应用),可以将用于执行的指令(例如,人工智能(AI)训练、推断指令等)发送或传输到服务器104,并且服务器104通过网络103经由接口接收指令。响应于该指令,服务器104与DP加速器105-107通信以完成指令的执行。在另一个实施例中,客户端可以(经由web浏览器或web应用)远程地运行来自服务器104的应用,并且客户端可以远程地请求应用执行指令。在一些实施例中,指令是机器学习类型的指令,其中作为专用机器或处理器的DP加速器可以比服务器104的执行快许多倍地执行该指令。服务器104因此可以控制/管理呈分布式方式的一个或多个DP加速器的执行作业。服务器104然后将执行结果返回给客户端设备101-102。DP加速器或AI加速器可以包括一个或多个专用处理器,诸如从可获得的 人工智能(AI)芯片组,或者可替换地,DP加速器可以是或一些其他AI芯片组提供商的AI芯片组。
根据一个实施例,可以验证访问DP加速器105-107中的任一个并且由DP服务器104(也称为主机)托管的每个应用,应用是由可信源或供应商提供的。可以在由主机104的中央处理单元(CPU)专门配置和执行的可信执行环境(TEE)中开启和执行每个应用。当将应用配置为访问DP加速器105-107中的任一个时,将在主机104和DP加速器105-107中的对应一个之间建立安全连接,使得主机104与DP加速器105-107中的每个之间交换的数据被保护以免受来自恶意软件的攻击。
云提供商108可以将云操作服务提供给数据处理服务器104。此类服务包括服务器104可能是其一部分的云网络的管理、供应和配置。尽管被示为单个服务器,然而在一些实施例中,云提供商108可以表示许多服务器,或者可以与数据处理服务器104集成。
图2是示出根据一个实施例的与数据处理(DP)加速器通信的主机的示例的框图。在一个实施例中,系统200在对DP加速器进行或不进行硬件修改的情况下提供一种用于在主机加速器和DP加速器之间的安全通信的保护方案。参考图2,主机机器或服务器104可以被描绘为待被保护以免受入侵的具有一层或多层的系统,一层或多层诸如用户应用203、运行时库205、驱动器209、操作系统211和硬件213(例如,安全模块(可信平台模块(TPM)/中央处理单元(CPU))。主机机器104通常是CPU系统,其可以控制和管理主机系统或DP加速器105-107上的执行作业。为了保护DP加速器与主机之间的通信信道,可能需要不同的组件来保护易于受到数据入侵或攻击的主机系统的不同层。例如,可信执行环境(TEE)可以保护用户应用层和运行时库层免受数据入侵。
参考图2,在一个实施例中,主机系统104将包括具有一个或多个CPU 213的硬件,CPU213在主机机器104内配备有安全模块(诸如可信平台模块(TPM))。TPM是端点设备上的专用芯片,其存储特定于主机系统用于硬件认证的密码密钥(例如RSA密码密钥)。每个TPM芯片可以包含被称为签注密钥(EK)或签注证书(EC)的一个或多个RSA密钥对(例如,公共和私有密钥对),即根密钥。密钥对被维护在TPM芯片内部,并且不能被软件访问。然后,固件和软件的关键部分可以在其执行之前被EK或EC进行散列,以保护系统免受未授权的固件和软件修改。因此,主机机器上的TPM芯片可以用作安全启动的信任根。
TPM芯片还在工作内核空间中保护驱动器209和操作系统(OS)211以与DP加速器通信。这里,驱动器209由DP加速器供应商提供,并且可以用作用户应用的一个或多个驱动器,以控制主机和DP加速器之间的通信信道。因为TPM芯片和安全启动在其内核空间中保护OS和驱动器,TPM还有效地保护驱动器209和操作系统211。
由于用于DP加速器105-107的通信信道可能被OS和驱动器独占,因此还通过TPM芯片保护通信信道。
在一个实施例中,主机104包括可信执行环境(TEE)201,其被强制由TPM/CPU 213保护。TEE是安全环境。TEE可以保证在TEE内部加载的代码和数据关于机密性和完整性得到保护。TEE的示例可以是Intel软件保护扩展(SGX)或AMD安全加密虚拟化(SEV)。Intel SGX和/或AMD SEV可以包括中央处理单元(CPU)指令代码集,其允许用户级代码分配CPU的存储器的私有区域,私有区域被保护以免受以较高权限级运行的进程的影响。这里,TEE 201可以保护用户应用203和运行时库205,其中用户应用203和运行时库205可以分别由端用户和DP加速器供应商提供。这里,运行时库205可以将API调用转换为用于DP加速器的执行、配置和/或控制的命令。在一个实施例中,运行时库205通过提供预定的(例如,预定义的)内核集用于由用户应用执行。
在另一个实施例中,主机机器104包括使用诸如Rust和GoLang等的存储器安全语言实现的存储器安全应用207。在诸如MesaLock Linux的存储器安全Linux发布版上运行的这些存储器安全应用程序还可以保护系统200免受数据机密性和完整性攻击。然而,操作系统可以是任何Linux发行版、UNIX、Windows OS或Mac OS。
在一个实施例中,可以如下设置系统:将存储器安全Linux发行版安装到配备有TPM安全启动的系统(诸如图2的主机系统104)上。可以在制造或准备阶段期间离线地进行安装。该安装还可以确保使用存储器安全编程语言对主机系统的用户空间的应用进行编程。确保在主机系统104上运行的其他应用是存储器安全应用,还可以减轻对主机系统104的潜在机密性和完整性攻击。
安装之后,然后系统可以通过基于TPM的安全启动来启动。TPM安全启动确保在提供加速器服务的内核空间中仅开启签名/认证的操作系统以及加速器驱动器。在一个实施例中,可以通过管理程序加载操作系统。注意,管理程序或虚拟机管理器是创建和运行虚拟机的计算机软件、固件或硬件。注意,内核空间是声明性区域或范围,其中内核(即,用于执行的预定的(例如,预定义的)功能集)被识别为向用户应用提供功能和服务。如果系统的完整性受到损害,TPM安全启动可能无法启动,而是关闭系统。
在安全启动之后,运行时库205运行并创建TEE 201,其将运行时库205放置在与CPU 213相关联的可信存储空间中。接下来,在TEE 201中开启用户应用203。在一个实施例中,用户应用203和运行时库205被静态链接并一起开启。在另一个实施例中,首先在TEE中开启运行时库205,然后在TEE 201中动态加载用户应用203。在另一个实施例中,首先在TEE中开启用户应用203,然后在TEE 201中动态加载运行时库205。注意,静态链接库是在编译时链接到应用的库。动态加载可以由动态链接器执行。动态链接器加载并链接共享库,用于在运行时运行用户应用。这里,TEE 201内的用户应用203和运行时库205在运行时彼此可见,例如,所有过程数据彼此可见。然而拒绝外部访问TEE。
在另一个实施例中,用户应用可以仅从由运行时库205预先确定的内核集中调用内核。在另一个实施例中,用户应用203和运行时库205使用无侧信道算法被硬化,以防御侧信道攻击,诸如基于缓存的侧信道攻击。侧信道攻击是基于从计算机系统的实现中获得的信息的任何攻击,而不是基于实现的算法本身的弱点(例如,密码分析和软件错误)。侧信道攻击的示例包括缓存攻击,缓存攻击是基于攻击者监视虚拟化环境或云环境中的共享物理系统的缓存的能力的攻击。硬化可以包括屏蔽缓存、由算法生成的待放置在缓存上的输出。接下来,当用户应用完成执行时,用户应用终止其执行并从TEE退出。
总之,系统200为DP加速器提供多个保护层(诸如,诸如机器学习模型、训练数据和推断输出的数据通信)以免受数据机密性和完整性的损失。系统200可以包括基于TPM的安全启动保护层、TEE保护层和内核验证/核实层。此外,系统200可以通过确保主机机器上的其他应用以存储器安全编程语言实现,提供存储器安全用户空间,这可以通过消除潜在的存储器损坏/漏洞来进一步消除攻击。此外,系统200可以包括使用无侧信道算法的应用,以便防御诸如基于缓存的侧信道攻击的侧信道攻击。
图3是示出根据一个实施例的与数据处理加速器通信的主机的框图。系统300可以是图2的系统200的一部分的详细视图。参考图3,在一个实施例中,主机系统104包括运行时库205,其包括主机信道管理器(HCM)259。在一个实施例中,HCM 259包括认证模块251、终止模块252、密钥管理器253、(一个或多个)密钥存储254和密码引擎255。认证模块251可以对在主机服务器104上运行的用户应用进行认证,以获得访问或使用DP加速器的资源的许可。终止模块252可以终止连接(例如,将终止与该连接相关联的信道)。密钥管理器253可以管理(例如,创建或销毁)非对称密钥对或对称密钥,用于对不同安全数据交换信道的一个或多个数据包进行加密/解密。这里,每个用户应用(作为图2的用户应用203的一部分)可以一对多关系对应或映射到不同安全数据交换信道,并且每个数据交换信道可以对应于DP加速器。(一个或多个)密钥存储254可以存储加密非对称密钥对或对称密钥。密码引擎255可以对用于通过安全信道中的任一个交换的数据的数据包进行加密或解密。
参考图3,在一个实施例中,DP加速器105包括ACM 270(类似地,DP加速器107包括290)和安全单元(SU)275。安全单元275可以包括密钥管理器271、(一个或多个)密钥存储272、真随机数生成器273和密码引擎274。密钥管理器271可以管理(例如,生成、安全保持和/或销毁)非对称密钥对或对称密钥。(一个或多个)密钥存储库272可以存储密码非对称密钥对或对称密钥。真随机数生成器273可以生成用于密码的真随机数。密码引擎274可以加密或解密密钥信息或用于数据交换的数据包。安全单元275可以包含被称为签注密钥(EK)或签注证书(EC)的一个或多个RSA密钥对(例如,公共和私有密钥对),即根密钥。密钥对被维护在安全单元275的内部,并且不能被软件访问。然后,安全单元可以使用EK或EC加密数据或生成其他安全密钥(这些密钥又可以被用来加密数据)。本质上,出于密码目的,将根证书(EK/EC)硬化到安全单元275上。在一些实施例中,ACM 270和SU 275是集成模块。
在一个实施例中,DP加速器105包括水印单元276。水印单元276可以是基于硬件的模块,其可以从人工智能(AI)模型(也称为“机器学习模型”)中识别或提取水印。在实施例中,水印单元276包括生成/嵌入模块260。生成/嵌入模块260可以生成水印,并将水印嵌入/植入到人工智能(AI)模型上。在实施例中,可以在AI模型的训练之前、之后或期间将水印植入到AI模型中。水印单元276还可以在AI模型的推断期间将水印植入(或嵌入)到AI模型上。在实施例中,水印单元276的功能可以可替换地使用从主机104接收到的一个或多个代码的内核实现。
DP加速器105可以包括存储器/存储280。存储器/存储280是用于存储数据的非永久或永久存储介质。存储数据可以包括AI模型277、水印算法278、水印279、签名281或由DP加速器105使用的任何数据。
图4是示出根据一个实施例的对嵌入有水印的AI模型进行签名的过程的流程图。操作400示出在训练AI模型之后将水印嵌入到AI模型中可以由图3的主机服务器104和/或DP加速器105执行。参考图4,在操作401中,主机服务器104将用于AI模型训练的训练数据集发送到DP加速器105,以由DP加速器处理。在操作402中,DP加速器105基于训练数据集训练AI模型。在操作403中,在训练完成时,DP加速器105将训练完成通知发送到主机104。在一些实施例中,主机服务器104可以发送待被基于训练数据集重新训练的AI模型。在一些实施例中,多个训练数据集中的训练数据集在DP加速器105可检索的DP加速器105的存储/存储器中,其中主机104发送对训练数据集的选择而不是基础训练数据集。
在操作404中,主机104选择AI模型支持的水印算法。在操作405中,DP加速器105基于水印算法生成水印并将水印嵌入到AI模型上。在操作406中,DP加速器105选择安全密钥对并生成用于AI模型/水印对的签名。可以基于DP加速器105的根证书生成安全密钥对。因此可以将安全密钥对验证为来自可信源(例如,DP加速器105)。在一个实施例中,安全密钥对包括例如基于诸如RSA加密算法的非对称密钥算法的公共密钥和私有密钥。签名包括生成(一个或多个)AI模型/水印二进制文件的哈希,并基于安全密钥对的私有密钥加密哈希以生成签名。在一个实施例中,哈希是MD5哈希或安全哈希算法(SHA)哈希的变型或任何其他哈希函数。在操作407中,将经加密的哈希(例如,签名)、安全密钥对的公共密钥、和/或(一个或多个)水印/AI模型文件返回到主机104,其中主机104或任何其他第三方可以使用签名和公共密钥验证(一个或多个)水印/AI模型文件用于第一验证,并提取水印用于第二验证,以进行双因素验证。
尽管操作400描述嵌入到经训练的AI模型中的水印,然而在一些实施例中,可以在训练之前将水印算法预先选择为默认选择,并且在训练之前、期间或之后将水印算法应用于AI模型。在另一个实施例中,由主机104提供经训练的AI模型,并且在推断期间由DP加速器105执行AI模型的加水印和签名。在该实施例中,在DP加速器105应用水印和/或生成用于AI模型/水印的签名之前,DP加速器105尝试从AI模型/水印中提取水印以确定AI模型是否已经包括水印。如果提取不成功,则DP加速器105继续应用水印和/或生成用于AI模型/水印的签名。在一些实施例中,AI模型/水印对包括元数据,以指示应用于生成水印的水印算法的版本和/或类型,从而可以基于版本提取和/或验证水印。
图5是示出根据一个实施例的由DP加速器执行的方法的流程图。过程500可以由处理逻辑执行,处理逻辑可以包括软件、硬件或其组合。例如,过程500可以由DP加速器(诸如图3的DP加速器105)执行。参考图5,在框501处,响应于由数据处理加速器接收的请求,由应用(该应用可以由主机104托管)发送以将水印应用于人工智能(AI)模型的请求,处理逻辑基于水印算法生成用于AI模型的水印。在框502处,处理逻辑将水印嵌入到AI模型上。在框503处,处理逻辑对具有嵌入的水印的AI模型进行签名以生成签名。在框504处,处理逻辑将签名和具有嵌入的水印的AI模型返回给应用,其中使用签名验证水印和/或AI模型。
在一个实施例中,处理逻辑还通过基于训练数据集训练AI模型来生成AI模型。在一个实施例中,处理逻辑还接收预先训练的AI模型,并通过基于训练数据集训练AI模型来重新训练AI模型。
在一个实施例中,对具有嵌入的水印的AI模型进行签名包括:由DP加速器的安全单元生成安全密钥对;生成用于具有嵌入的水印的AI模型的哈希;以及使用安全密钥对的私有密钥加密哈希,以对具有嵌入的水印的AI模型进行签名。在一个实施例中,使用安全密钥对的公共密钥来解密哈希以验证用于水印和/或AI模型的签名。
在另一个实施例中,处理逻辑还从AI模型中提取水印,并验证提取的水印和签名两者以进行双因素验证。在另一个实施例中,安全单元包括硬化到安全单元上的根证书,其中安全密钥对是基于安全单元的根证书生成的多个密钥对,并且由水印算法选择安全密钥对以对具有嵌入的水印的AI模型进行签名。
图6是示出根据一个实施例的由应用执行的方法的流程图。过程600可以由处理逻辑执行,处理逻辑可以包括软件、硬件或其组合。例如,过程600可以由诸如图3的主机104的主机服务器或任何其他第三方(例如,端用户、客户等)执行。参考图6,在框601处,处理逻辑将请求发送到数据处理加速器,该请求基于水印算法生成用于人工智能(AI)模型的水印,将水印嵌入到AI模型上,并且基于安全密钥对生成用于具有水印的AI模型的签名。在框602处,处理逻辑接收签名和/或(一个或多个)水印/AI模型文件,其中签名被用来验证水印和/或AI模型。例如,处理逻辑使用安全密钥对的公共密钥解密签名以生成第一哈希。处理逻辑将哈希算法应用于(一个或多个)水印/AI模型文件,以生成第二哈希。比较第一哈希和第二哈希以匹配。如果匹配,则成功地验证签名。
在一个实施例中,处理逻辑将训练数据集(例如,经由主机104)发送到数据处理加速器,以基于训练数据集来训练AI模型。在另一个实施例中,处理逻辑将预先训练的AI模型发送到数据处理加速器,其中基于训练数据集重新训练AI模型。在一个实施例中,具有嵌入的水印的AI模型由DP加速器的安全单元签名。安全单元可以基于EK或EC生成安全密钥对。然后,安全单元可以生成用于具有嵌入的印的AI模型的哈希,并且使用安全密钥对的私有密钥对哈希进行加密,以对具有嵌入的水印的AI模型进行签名。在另一个实施例中,安全密钥对的公共密钥被用来解密哈希,以验证用于水印和/或AI模型的签名。
在另一个实施例中,验证包括从AI模型中提取水印,并进一步验证提取的水印以进行双因素验证。在另一个实施例中,安全单元包括硬化到安全单元上的根证书,其中安全密钥对是基于安全单元的根证书生成的多个密钥对,并且由水印算法选择安全密钥对,以对具有嵌入的水印的AI模型进行签名。
在运行时,用户可以经由主机104的应用选择水印算法以将水印应用于AI模型。可以基于在特定DP加速器处可用或不可用的算法集选择所选择的水印算法。如果水印算法在DP加速器处可用,则DP加速器可以将算法应用于AI模型。如果水印算法在DP加速器处不可用,则DP加速器可以经由主机104向应用发送针对水印算法的请求。应用随后可以将请求的水印算法发送到DP加速器。另外,可以自动调度过期或未使用的水印算法(在到期时间阈值之后)以从DP加速器的存储中移除。
图7是示出根据一个实施例的具有可配置水印单元的DP加速器的框图。参考图7,在一个实施例中,水印单元276包括生成/嵌入模块260、水印算法接收器模块701、水印算法管理器702和配置信道模块703。生成/嵌入模块260可以基于水印算法生成水印,并且将水印嵌入到AI模型上。水印算法接收器模块701可以从第三方源或从主机104的应用接收水印算法。水印算法管理器702可以管理单元276的一个或多个水印算法。配置信道模块703可以在虚拟机级别上经由云提供商配置信道,用于虚拟机将水印算法发送到单元276。
作为首要事项,用于AI模型的水印是标识用于AI模型的源的标识符。水印可以包括用于AI模型的冗余或非冗余权重、节点和/或节点层的模式。水印还可以包括在训练期间对权重的修改,以生成具有带有特定推断输入的水印标识符的输出。用于输出图像的AI模型的输出中的水印标识符的示例包括将机器和/或人类可读标识符(例如,公司、组织或团队的徽标)展现为AI模型的源的图像。水印算法的类型包括添加虚拟节点、层和/或更改AI模型的权重、偏置和/或激活函数的算法。其他水印算法可以更改训练子例程的一个或多个参数,或者包括用于训练的隐藏的训练数据集,其中隐藏的训练数据集不可由AI模型的用户/操作员/训练者检索。因此,经训练的AI模型可以基于隐藏的训练数据集的输入或从隐藏的训练数据集得出的输入来推断水印输出。
图8是示出根据一个实施例的使用水印算法配置水印单元的过程的流程图。可以由处理逻辑执行过程800,处理逻辑可以包括软件、硬件或其组合。例如,过程800可以由图1的主机104、DP加速器105或云提供商108或图7的DP加速器105执行。参考图8,在框801处,应用(经由主机104)向DP加速器105发送请求,请求将特定水印算法应用于AI模型。在框802处,DP加速器105确定特定水印算法在DP加速器105处不可用。在框803处,DP加速器105通知云提供商108以使云提供商108应用云提供商108的配置设置。在一个实施例中,通知云提供商108配置专用信道,用于DP加速器105(经由主机104)从应用接收特定水印算法。在另一个实施例中,通知云提供商108,并且因此云提供商108可以随后接受配置设置中的特定请求的改变。在一个实施例中,专用信道配置处于虚拟机级别。在框804处,DP加速器105向主机104发送针对水印算法的请求。在框805处,如果云提供商108具有水印算法,则云提供商108将所请求的水印算法返回给DP加速器105,或者云提供商108配置专用信道。在框806处,主机104通过专用信道发送水印算法。在框807处,DP加速器105使用水印算法配置水印单元以使水印算法在DP加速器105处可用于任何请求。在某些情况下,如果在预定时间阈值后不使用算法,则水印算法可以被配置为过期。可以调度过期的水印算法进行移除以替换为算法的改进版本或使存储空间可用于其他算法。
图9是示出根据一个实施例的由DP加速器执行的方法的流程图。可以由处理逻辑执行过程900,处理逻辑可以包括软件、硬件或其组合。例如,过程900可以由图7的DP加速器105执行。参考图9,在框901处,响应于数据处理(DP)加速器接收的请求,由应用(应用可以由主机104托管)发送以由DP加速器将水印算法应用于人工智能(AI)模型的请求,处理逻辑确定水印算法在DP加速器的水印单元处不可用。在框902处,处理逻辑发送针对水印算法的请求。在框903处,处理逻辑通过DP加速器接收水印算法。在框904处,处理逻辑在运行时使用水印算法配置水印单元,用于使水印算法将由DP加速器使用。
在一个实施例中,处理逻辑还将基于水印算法的水印嵌入到AI模型中。处理逻辑将具有嵌入的水印的AI模型返回给应用,其中水印被用来认证AI模型。在另一个实施例中,处理逻辑还用水印对AI模型进行签名以生成签名,其中签名被用来对具有水印的AI进行认证以用于双因素认证。
在一个实施例中,水印算法由云提供商、或云提供商的用户、或用户设备上的应用、或由云提供商提供的云的主机机器托管的应用提供。在一个实施例中,经由专用通信信道接收水印算法,其中由云提供商配置通信信道。
在一个实施例中,处理逻辑还通过基于经由主机从应用接收到的训练数据集训练AI模型来生成AI模型。在一个实施例中,处理逻辑还接收预先训练的AI模型,并且通过基于训练数据集训练AI模型来重新训练AI模型。
在前面的段落中,讨论一些类型的水印算法,包括添加虚拟层和/或更改AI模型的权重的“类型1”的水印算法以及更改训练子例程以包括用于训练的隐藏的训练数据集的“类型2”的水印算法,其中隐藏的训练数据集不可由AI模型的用户/操作员/训练者检索。以下是这些水印算法的伪代码。
类型1的伪代码:(输入:AI模型;输出:加水印的AI模型)
在一些选择性原始层之后添加虚拟层,以及
对于每层:
在特定位置添加虚拟权重,和/或
编辑权重。
类型2的伪代码:(输入:训练子例程和/或训练输入数据;输出:修改的训练子例程和/或训练输入数据)插入隐藏的训练输入数据或调整训练子例程或训练输入数据的训练变量。
验证类型1的验证过程可以检查用于特定签名的权重和/或层,作为对水印的验证,例如,通过添加或减去一些极小值(诸如0.000001221或0.0000001221),特定位置或层处的权重具有尾随十进制值的特定模式。验证类型2的验证过程可以使用输入数据执行推断,输入数据推断具有机器可读水印的输出数据。然后,验证过程将检查输出数据是否存在用于验证的水印。因为水印算法和验证过程会影响推断准确性或将水印嵌入到AI模型中的程度,所以水印算法可以演变/适应新的AI模型。
图10是示出根据一个实施例的具有水印算法训练器的DP加速器的框图。参考图10,在一个实施例中,DP加速器105包括存储器/存储280,其包括水印算法训练器1001。算法训练器1001可以训练基线水印算法以生成附加的或得出的水印算法。在一个实施例中,算法训练器1001包括生成模块1003、训练标准确定器1005、推断准确性确定器1007、兼容性确定器1009、验证模块1011和配置模块1013。生成模块1003可以使用先前的水印算法生成新的水印算法。训练标准确定器1005可以确定用于水印算法训练的训练标准集。推断准确性确定器1007可以确定具有或不具有水印的AI模型的推断准确性。兼容性确定器1009可以确定兼容性分数并将兼容性分数分配给水印/AI模型对。例如,可以为用于将虚拟层添加到多层深度神经网络的兼容性分配0.3的分数,用于将AI模型的一个或多个权重更改了极小值(与实际权重相比是一个非常小的值)的兼容性可以被分配0.7的分数,使用附加的隐藏的输入数据集训练AI模型的兼容性可以被分配1的分数。验证模块1011可以验证AI模型是否包括水印并可以确定水印的版本。配置模块1013可以在运行时使用水印算法水印单元配置,使得水印算法可用于DP加速器。
图11是示出根据一个实施例的由DP加速器执行的方法的流程图。可以由处理逻辑执行过程1100,处理逻辑可以包括软件、硬件或其组合。例如,过程1100可以由图10的DP加速器105执行。参考图11,在框1101处,处理逻辑基于预定的标准集由DP加速器训练水印算法,其中训练水印算法以生成水印算法的变型。训练可以是机器学习类型训练或回归类型训练,以通过用于基线水印算法(例如,可以得出附加算法的初始水印算法)的目标函数最大化一些训练标准。目标函数可以是多个标准的加权组合,诸如具有水印的AI模型的推断准确性,和/或兼容性分数指示符(指示AI模型与水印的兼容性)等。可以经由迭代优化算法(诸如梯度下降算法)优化目标函数。训练将沿着梯度(采取与梯度成比例的步阶)迭代地调整水印算法参数(例如权重值、添加的虚拟层的数量、训练纪元、训练输入数据集),以最大化/最小化目标函数,或直到已经发生预定阈值或数量的迭代。由于存在不同类型或类别的AI模型(例如,单个或多层感知器、深度学习神经网络、卷积神经网络、递归神经网络等),因此可以训练不同水印算法来生成不同AI模型以最大化水印/AI模型对的推断准确性和兼容性。
在框1102处,处理逻辑在运行时使用水印算法的变型配置水印单元,用于使水印算法将由DP加速器使用。在一个实施例中,可以对水印算法进行版本控制并分配全局唯一标识符(GUID)或识别水印算法的任何其他标识符。在这种情况下,只要提供用于水印算法的标识符用于验证,就可以在AI模型中的任一个上执行用于AI模型的水印的验证。
在一个实施例中,标准集包括具有待训练的水印的人工智能(AI)模型的推断准确性(降级或提升)的改变,以及水印和AI模型的配对兼容性。
图12是示出根据一个实施例的由DP加速器执行的方法的流程图。可以由处理逻辑执行过程1200,处理逻辑可以包括软件、硬件或其组合。例如,过程1200可以由图10的DP加速器105执行。参考图12,在框1201处,处理逻辑还将水印嵌入到一个或多个AI模型中,并且在框1202处,基于兼容性评分标准针对配对兼容性对AI模型和水印进行评分。在框1203处,处理逻辑确定不具有水印的AI模型的推断准确性。在框1204处,处理逻辑确定嵌入有水印的AI模型的推断准确性。在框1205处,处理逻辑确定用于配对的推理推断准确性的改变(降级或提升)。
在一个实施例中,执行训练直到针对标准集达到预定条件或直到预定数量的训练迭代。在一个实施例中,响应于由数据处理(DP)加速器接收到的请求,由应用发送以由DP加速器将水印算法应用于AI模型的请求,处理逻辑还将应用水印算法以生成AI模型的水印,将水印嵌入到AI模型中,并将具有水印的AI模型返回给应用,其中水印被用来认证AI模型。在一个实施例中,处理逻辑通过基于训练数据集训练AI模型来生成AI模型。
图13是示出根据一个实施例的具有水印验证模块的DP加速器的框图。参考图13,在一个实施例中,DP加速器135包括存储器/存储280,其包括水印验证模块1301。水印验证模块可以验证水印并在满足应用于AI模型的策略的情况下允许进行推断。在一个实施例中,水印验证模块1301包括水印提取模块1303、证明发送器模块1305、验证模块1307和策略模块1309。水印提取模块1303可以从AI模型/水印对中提取水印。证明发送器模块1305可以基于提取生成AI模型包含水印的证明。验证模块1307可以读取水印并确定水印来自可信源。策略模块1309可以将一种或多种策略应用于AI模型。
图14是示出根据一个实施例的验证水印的过程的流程图。可以由处理逻辑执行过程1400,处理逻辑可以包括软件、硬件或其组合。例如,过程1400可以由图13的DP加速器105执行。参考图14,在框1401处,主机104的应用向DP加速器105发送推断请求。推断请求可以包括推断输入数据集。在框1402处,DP加速器105基于推断请求从AI模型/水印对中提取水印,以在推断之前确定AI模型是否满足一种或多种策略。策略是一种协议方案,以评估是否允许由特定DP加速器对AI模型/水印应用训练或推断。策略的示例可以是:AI模型/水印必须包含由一些基线水印算法或从基线水印算法得出的算法的一些版本(例如,最新版本)生成的水印,AI模型/水印必须包含特定类型的水印算法(例如类型1或类型2),AI模型必须包含来自特定源的可验证水印(例如,对应于特定组织、组、团队等的水印),和/或如果用于AI模型/水印的签名被验证是来自可信源,例如由DP加速器105或与主机104通信的其他DP加速器生成。在一个实施例中,可以将一种或多种策略应用于一种类别的AI模型或特定单个AI模型。在另一个实施例中,DP加速器可以具有与主机104的另一个DP加速器不同的策略集或相同的策略集。
在框1403处,DP加速器105基于一种或多种策略验证水印。图13的水印验证模块1301可以维护将AI模型和/或AI模型的水印映射到一种或多种策略的映射表。然后,DP加速器105可以基于AI模型和/或水印来检索策略用于验证。
如果满足,则在框1404处,DP加速器105将AI模型/水印对应用于推断输入数据以生成推断结果。在框1405处,DP加速器105(经由主机104)将验证证明和/或推断结果发送到请求应用。验证证明可以是签名,其包括验证结果、AI模型/水印和/或推断结果的经加密的哈希,基于DP加速器105的安全密钥对的私有密钥进行加密。然后由主机104或验证证明的任何第三方通过安全密钥对的公共密钥解密验证证明。
图15是示出根据一个实施例的由DP加速器执行的方法的流程图。可以由处理逻辑执行过程1550,处理逻辑可以包括软件、硬件或其组合。例如,过程1550可以由图13的DP加速器105执行。参考图15,在框1551处,处理逻辑从应用接收推断请求。在框1552处,处理逻辑通过数据处理(DP)加速器从具有水印的人工智能(AI)模型中提取水印。在框1553处,处理逻辑基于策略验证提取的水印。在框1554处,处理逻辑将具有水印的AI模型应用于推断输入集以生成推断结果。在框1555处,处理逻辑将验证证明和推断结果发送给应用。
在一个实施例中,在基于策略成功地验证了提取的水印之后,生成推断结果。在一个实施例中,策略包括AI模型包含由DP加速器生成的可验证水印并且水印包括用于验证的机器可识别水印的标准。
在一个实施例中,策略包括成功地验证了用于具有水印的AI模型的签名的标准。在一个实施例中,将不同策略应用于不同类型的水印算法。在一个实施例中,将不同策略应用于不同版本的水印算法。在一个实施例中,验证证明包括用于推断请求的结果的签名。
图16是示出根据一个实施例的由主机的应用执行的方法的流程图。可以由处理逻辑执行过程1600,处理逻辑可以包括软件、硬件或其组合。例如,过程1600可以由用户的应用执行,诸如图3的主机服务器104上托管的应用。参考图16,在框1601处,处理逻辑通过应用将推断请求发送到数据处理(DP)加速器,请求通过将具有水印的人工智能(AI)模型应用于推断输入以生成推断结果,其中该请求包括由DP加速器从具有水印的AI模型中提取水印以及基于策略验证提取的水印的请求。在框1604处,处理逻辑通过应用接收验证证明和/或推断结果。
在一个实施例中,在基于策略成功地验证了提取的水印之后,生成推断结果。在一个实施例中,策略包括AI模型包含由DP加速器生成的可验证水印并且水印包括用于验证的机器可识别水印的标准。
在一个实施例中,策略包括成功地验证了用于具有水印的AI模型的签名的标准。在一个实施例中,将不同策略应用于不同类型的水印算法。在一个实施例中,将不同策略应用于不同版本的水印算法。在一个实施例中,验证证明包括用于推断请求的结果的签名。
注意,可以以软件、硬件或其组合实现上面示出和描述的组件中的一些或全部。例如,这样的组件可以被实现为安装并存储在永久存储设备中的软件,软件可以由处理器(未示出)加载并在存储器中执行以执行整个本申请所述过程或操作。可替换地,这样的组件可以被实现为被编程或嵌入到专用硬件(诸如集成电路(例如特定应用的IC或ASIC)、数字信号处理器(DSP)或现场可编程门阵列(FPGA))中的可执行代码,其可以经由对应驱动器和/或操作系统从应用进行访问。此外,可以将这样的组件实现为处理器或处理器核中的特定硬件逻辑,作为可由软件组件经由一个或多个特定指令访问的指令集的一部分。
图17是示出可以与本发明的一个实施例一起使用的数据处理系统的示例的框图。例如,系统1500可以表示执行上述的任何过程或方法的上述任何数据处理系统,诸如例如上述客户端设备、主机或DP加速器,诸如例如,如上所述的图1的客户端101-102、主机服务器104或DP加速器105。
系统1500可以包括许多不同组件。这些组件可以实现为集成电路(IC),其部分,分立电子设备或适合于电路板(诸如计算机系统的主板或附加卡)的其他模块,或者实现为以其他方式并入计算机系统的机箱内的组件。
还应注意的是,系统1500意图示出计算机系统的许多组件的高级视图。然而,应当理解的是,在某些实现方式中可以存在附加组件,而且此外,在其他实现方式中可以出现所示组件的不同布置。系统1500可以表示台式电脑、膝上型计算机、平板电脑、服务器、移动电话、媒体播放器、个人数字助理(PDA)、智能手表、个人通信器、游戏设备、网络路由器或集线器、无线接入点(AP)或中继器、机顶盒或其组合。此外,虽然仅示出单个机器或系统,但是术语“机器”或“系统”也应被认为包括单独地或共同地执行指令集(或多个指令集)以执行本文讨论的任何一种或多种方法的机器或系统的任何集合。
在一个实施例中,系统1500包括经由总线或互连1510的处理器1501、存储器1503和设备1505-1508。处理器1501可以表示其中包括单个处理器核或多个处理器核的单个处理器或多个处理器。处理器1501可以表示一个或多个通用处理器,诸如微处理器、中央处理单元(CPU)等。更具体地,处理器1501可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、或者实现其他指令集的处理器、或者实现指令集的组合的处理器。处理器1501也可以是一个或多个专用处理器,诸如专用集成电路(ASIC)、蜂窝或基带处理器、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器、图形处理器、网络处理器、通信处理器、密码处理器、协处理器、嵌入式处理器或能够处理指令的任何其他类型的逻辑。
处理器1501可以是低功率多核处理器插槽(诸如超低压处理器),可以充当主处理单元和中央集线器,用于与系统的各个组件进行通信。可以将这种处理器实现为片上系统(SoC)。处理器1501被配置为执行用于执行本文讨论的操作和步骤的指令。系统1500还可以包括与可选图形子系统1504通信的图形界面,可选图形子系统1504可以包括显示控制器、图形处理器和/或显示设备。
处理器1501可以与存储器1503通信,这在一个实施例中可以经由多个存储器设备实现以提供给定数量的系统存储器。存储器1503可以包括一个或多个易失性存储(或存储器)设备,诸如随机存取存储器(RAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)或其他类型的存储设备。存储器1503可以存储包括由处理器1501或任何其他设备执行的指令序列的信息。例如,各种操作系统、设备驱动器、固件(例如,输入输出基本系统或BIOS)和/或应用的可执行代码和/或数据可以被加载到存储器1503中并由处理器1501执行。操作系统可以是任何种类的操作系统,诸如例如,来自操作系统、来自Apple的Mac来自 或其他实时或嵌入式操作系统(诸如VxWorks)。
系统1500还可以包括诸如设备1505-1508的IO设备,包括(一个或多个)网络接口设备1505、(一个或多个)可选输入设备1506和(一个或多个)其他可选IO设备1507。网络接口设备1505可以包括无线收发器和/或网络接口卡(NIC)。无线收发器可以是WiFi收发器、红外收发器、蓝牙收发器、WiMax收发器、无线蜂窝电话收发器、卫星收发器(例如,全球定位系统(GPS)收发器)或其他无线电频率(RF)收发器、或其组合。NIC可以是以太网卡。
(一个或多个)输入设备1506可以包括鼠标、触摸板、触敏屏幕(其可以与显示设备1504集成)、诸如触笔的指示器设备和/或键盘(例如,物理键盘或作为触敏屏幕的一部分显示的虚拟键盘)。例如,输入设备1506可以包括耦接到触摸屏的触摸屏控制器。触摸屏和触摸屏控制器可以例如使用多种触敏技术中的任一种检测其接触以及移动或中断,包括但不限于电容、电阻、红外和表面声波技术、以及其他近距离传感器阵列或用于确定与触摸屏的一个或多个接触点的其他元件。
IO设备1507可以包括音频设备。音频设备可以包括扬声器和/或麦克风,以促进启用语音的功能,诸如语音识别、语音复制、数字记录和/或电话功能。其他IO设备1507还可以包括(一个或多个)通用串行总线(USB)端口、(一个或多个)并行端口、(一个或多个)串行端口、打印机、网络接口、总线桥(例如,PCI-PCI桥)、(一个或多个)传感器(例如,诸如加速度计、陀螺仪、磁力计、光传感器、指南针、近距离传感器等的运动传感器)或其组合。设备1507还可以包括成像处理子系统(例如,相机),其可以包括用于促进相机功能(诸如记录照片和视频剪辑)的光学传感器,诸如电荷耦合器件(CCD)或互补金属氧化物半导体(CMOS)光学传感器。某些传感器可以经由传感器集线器(未示出)耦接到互连1510,而诸如键盘或热传感器的其他设备可以由嵌入式控制器(未示出)控制,这取决于系统1500的特定配置或设计。
为了提供诸如数据、应用、一个或多个操作系统等的信息的永久存储,大容量存储(未示出)也可以耦接到处理器1501。在各种实施例中,为了实现更薄和更轻的系统设计以及改善系统响应性,可以经由固态设备(SSD)实现这种大容量存储。然而,在其他实施例中,大容量存储可以主要使用具有较少数量的SSD存储装置的硬盘驱动器(HDD)实现,以充当在掉电事件期间启用上下文状态和其他此类信息的非易失性存储的SSD缓存,使得快速上电可以在重新启动系统活动时发生。闪存设备也可以例如经由串行外围接口(SPI)耦接到处理器1501。该闪存设备可以提供系统软件的非易失性存储,包括基础输入/输出软件(BIOS)以及系统的其他固件。
存储设备1508可以包括计算机可访问存储介质1509(也称为机器可读存储介质或计算机可读介质),其上存储有体现本文所述的任何一种或多种方法或功能的一个或多个指令集或软件集(例如,模块、单元、和/或逻辑1528)。处理模块/单元/逻辑1528可以表示上述任何组件,诸如例如,如上所述的图1-图3的主机服务器104或图1-图3、图7、图10、图13的DP加速器105。在由数据处理系统1500执行处理模块/单元/逻辑1528期间,处理模块/单元/逻辑1528也可以全部或至少部分地驻留在存储器1503和/或处理器1501内,存储器1503和处理器1501也构成机器可访问的存储介质。处理模块/单元/逻辑1528还可以经由网络接口设备1505通过网络传输或接收。
计算机可读存储介质1509还可以被用来永久地存储上述一些软件功能。尽管在示例性实施例中将计算机可读存储介质1509示出为单个介质,术语“计算机可读存储介质”应被认为包括存储一个或多个指令集的单个介质或多个介质(例如,集中式或分布式数据库、和/或关联的缓存和服务器)。术语“计算机可读存储介质”也应被认为包括能够存储或编码用于由机器执行的指令集以及使机器执行本发明的任何一种或多种方法的任何介质。因此,术语“计算机可读存储介质”应被认为包括但不限于固态存储器、以及光和磁介质、或任何其他非暂时性机器可读介质。
本文所述的处理模块/单元/逻辑1528、组件和其他特征可以实现为分立硬件组件或集成在诸如ASICS、FPGA、DSP或类似设备的硬件组件的功能中。另外,处理模块/单元/逻辑1528可以被实现为硬件设备内的固件或功能电路。此外,处理模块/单元/逻辑1528可以以任何组合的硬件设备和软件组件来实现。
注意,尽管系统1500被示出为具有数据处理系统的各个组件,并不是意图表示互连这些组件的任何特定架构或方式;因为这样的细节与本发明的实施例无关。还将意识到的是,具有更少的组件或也许更多组件的网络计算机、手持式计算机、移动电话、服务器和/或其他数据处理系统也可以与本发明的实施例一起使用。
已经在对计算机存储器内的数据位的操作的算法和符号表示方面呈现前述详细描述的某些部分。这些算法的描述和表示是数据处理领域的技术人员所使用的最有效地向本领域其他技术人员传达其工作实质的方式。这里,算法通常被认为是导致期望结果的自洽操作序列。操作是需要对物理量进行物理操纵的操作。
然而,应该牢记,所有这些和类似术语均应与适当的物理量相关联,并且仅仅是应用于这些量的方便标签。除非从上面的讨论明显另外指出,否则应理解的是,在整个描述中,利用诸如权利要求书中所阐述的术语的讨论是指计算机系统或类似电子计算设备的动作和过程,其将计算机系统寄存器和存储器内表示为物理(电子)量的数据操纵和转换为计算机系统存储器或寄存器或其他这样的信息存储、发送或显示设备内的类似地表示为物理量的其他数据。
附图中所示的技术可以使用在一个或多个电子设备上存储和执行的代码和数据来实现。这样的电子设备使用诸如非暂时性计算机可读存储介质(例如磁盘、光盘、随机存取存储器;只读存储器;闪存设备;相变存储器)和暂时性计算机可读传输介质(例如,电、光、声、或其他形式的传播信号,诸如载波、红外信号、数字信号)的计算机可读介质来存储和通信(在内部和/或通过网络与其他电子设备通信)代码和数据。
可以通过包括硬件(例如,电路、专用逻辑等)、固件、软件(例如,体现在非暂时性计算机可读介质上)或其结合的处理逻辑来执行前述附图中描绘的过程或方法。尽管以上根据一些顺序操作描述了过程或方法,然而应当理解的是,所描述操作中的一些可以以不同顺序执行。而且,一些操作可以并行而不是顺序地执行。
在前述说明书中,已经参考本发明的特定示例性实施例描述了本发明的实施例。显而易见的是,在不脱离所附权利要求书所阐述的本发明的更广泛精神和范围的情况下,可以对其进行各种修改。因此,说明书和附图应被认为是说明性而不是限制性的。

Claims (11)

1.一种用于通过数据处理DP加速器处理数据的计算机实现方法,方法包括:
响应于由数据处理DP加速器接收到的请求,请求由应用发送以由DP加速器将水印算法应用于人工智能AI模型,确定水印算法在DP加速器的水印单元处不可用以应用于AI模型,其中将水印算法应用于AI模型生成用于AI模型的水印;
响应于确定水印算法在DP加速器的水印单元处不可用以应用于AI模型,发送针对水印算法的请求;
由DP加速器接收水印算法;以及
在运行时使用水印算法配置水印单元,用于使水印算法将由DP加速器使用。
2.根据权利要求1所述的方法,还包括:
基于水印算法将水印嵌入到AI模型中;以及
将具有嵌入的水印的AI模型返回给应用,其中水印被用来认证AI模型。
3.根据权利要求2所述的方法,还包括:
对具有水印的AI模型进行签名以生成签名,其中签名被用来对具有水印的AI进行认证用于双因素认证。
4.根据权利要求1所述的方法,其中由云提供商、或云提供商的用户、或应用提供水印算法。
5.根据权利要求1所述的方法,其中经由专用通信信道接收水印算法,其中由云提供商配置通信信道。
6.如权利要求1所述的方法,还包括:通过基于训练数据集训练AI模型而生成AI模型。
7.根据权利要求1所述的方法,还包括:
接收预先训练的AI模型;以及
通过基于训练数据集训练AI模型而重新训练AI模型。
8.一种用于通过数据处理DP加速器处理数据的装置,包括:
确定模块,用于响应于由数据处理DP加速器接收到的请求,请求由应用发送以由DP加速器将水印算法应用于人工智能AI模型,确定水印算法在DP加速器的水印单元处不可用以应用于AI模型,其中将水印算法应用于AI模型生成用于AI模型的水印;
发送模块,用于响应于确定水印算法在DP加速器的水印单元处不可用以应用于AI模型,发送针对水印算法的请求;
接收模块,用于由DP加速器接收水印算法;以及
配置模块,用于在运行时使用水印算法配置水印单元,用于使水印算法将由DP加速器使用。
9.一种非暂时性机器可读介质,其中存储有指令,指令在由处理器执行时使处理器执行根据权利要求1-7中任一项所述的方法。
10.一种数据处理系统,包括:
处理器;以及
耦接到处理器以存储指令的存储器,指令在由处理器执行时使处理器执行根据权利要求1-7中任一项所述的方法。
11.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如权利要求1-7中任一项所述的方法。
CN202011248236.9A 2019-11-14 2020-11-10 使用用于数据处理加速器的水印算法配置水印单元的系统和方法 Active CN112528242B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/684,295 2019-11-14
US16/684,295 US11579928B2 (en) 2019-11-14 2019-11-14 Systems and methods for configuring a watermark unit with watermark algorithms for a data processing accelerator

Publications (2)

Publication Number Publication Date
CN112528242A CN112528242A (zh) 2021-03-19
CN112528242B true CN112528242B (zh) 2024-07-30

Family

ID=74980065

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011248236.9A Active CN112528242B (zh) 2019-11-14 2020-11-10 使用用于数据处理加速器的水印算法配置水印单元的系统和方法

Country Status (2)

Country Link
US (1) US11579928B2 (zh)
CN (1) CN112528242B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11822964B2 (en) * 2020-06-03 2023-11-21 Baidu Usa Llc Data protection with static resource partition for data processing accelerators
US12032980B2 (en) 2020-06-03 2024-07-09 Baidu Usa Llc Data protection with dynamic resource isolation for data processing accelerators
CN113902121B (zh) * 2021-07-15 2023-07-21 陈九廷 一种电池劣化推测装置校验的方法、装置、设备及介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019190886A1 (en) * 2018-03-29 2019-10-03 The Regents Of The University Of California Digital watermarking of machine learning models

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3567975B2 (ja) 2000-01-24 2004-09-22 日本電気株式会社 電子透かし検出・挿入装置
CA2350029A1 (en) 2001-06-08 2002-12-08 Cloakware Corporation Sustainable digital watermarking via tamper-resistant software
EP2133839A1 (fr) 2008-06-12 2009-12-16 Thomson Licensing Procédé de traitement d'images pour lutter contre la copie
US8411867B2 (en) 2009-04-06 2013-04-02 Broadcom Corporation Scalable and secure key management for cryptographic data processing
WO2011150346A2 (en) * 2010-05-28 2011-12-01 Laurich Lawrence A Accelerator system for use with secure data storage
US9607134B2 (en) 2013-10-24 2017-03-28 Cyber-Ark Software Ltd. System and method for protected publication of sensitive documents
US20170141994A1 (en) 2015-11-13 2017-05-18 Le Holdings (Beijing) Co., Ltd. Anti-leech method and system
JP6588106B2 (ja) * 2016-01-07 2019-10-09 株式会社日立製作所 計算機システム及び計算機の制御方法
US11163861B2 (en) 2017-12-29 2021-11-02 Texas Instruments Incorporated Machine learning model with watermarked weights
US11429855B2 (en) * 2018-02-06 2022-08-30 Nec Corporation Acceleration of neural networks using depth-first processing
EP4312420A3 (en) * 2018-02-20 2024-04-03 Darktrace Holdings Limited A method for sharing cybersecurity threat analysis and defensive measures amongst a community
WO2020012061A1 (en) 2018-07-12 2020-01-16 Nokia Technologies Oy Watermark embedding techniques for neural networks and their use
US11676003B2 (en) 2018-12-18 2023-06-13 Microsoft Technology Licensing, Llc Training neural network accelerators using mixed precision data formats
US11373099B2 (en) * 2018-12-28 2022-06-28 Intel Corporation Artificial intelligence inference architecture with hardware acceleration
US11159408B2 (en) * 2019-06-25 2021-10-26 Intel Corporation Link performance prediction technologies
US11436305B2 (en) 2019-10-10 2022-09-06 Baidu Usa Llc Method and system for signing an artificial intelligence watermark using implicit data
US11514365B2 (en) * 2020-06-15 2022-11-29 Intel Corporation Immutable watermarking for authenticating and verifying AI-generated output
US11632597B2 (en) 2020-07-22 2023-04-18 Roku, Inc. Responding to emergency-alert audio tone by abandoning dynamic content modification

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019190886A1 (en) * 2018-03-29 2019-10-03 The Regents Of The University Of California Digital watermarking of machine learning models

Also Published As

Publication number Publication date
CN112528242A (zh) 2021-03-19
US11579928B2 (en) 2023-02-14
US20210149733A1 (en) 2021-05-20

Similar Documents

Publication Publication Date Title
CN112528244B (zh) 用于由数据处理加速器处理数据的方法及数据处理加速器
US11436305B2 (en) Method and system for signing an artificial intelligence watermark using implicit data
CN112528242B (zh) 使用用于数据处理加速器的水印算法配置水印单元的系统和方法
CN112528245B (zh) 用于由数据处理加速器处理数据的方法及数据处理加速器
CN112528243A (zh) 用于通过数据处理加速器处理数据的系统和方法
CN112650982B (zh) 数据处理加速器及由数据处理加速器执行的计算机实现的方法
CN112650984B (zh) 数据处理加速器及由数据处理加速器执行的计算机实现的方法
CN112650981B (zh) 数据处理加速器及由数据处理加速器执行的计算机实现的方法
CN112650988A (zh) 使用内核加密数据的方法和系统
CN112650986B (zh) 用于数据处理加速器的水印单元
CN112650980B (zh) 数据处理加速器及由数据处理加速器执行的计算机实现的方法
CN112650983B (zh) 数据处理加速器及由数据处理加速器执行的计算机实现的方法
CN112650990B (zh) 使用查询来签名人工智能水印的方法和系统
CN112650987B (zh) 使用内核签名人工智能水印的方法和系统
US11457002B2 (en) Method and system for encrypting data using a command
US20210111878A1 (en) Method and system for signing output using a kernel

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
TA01 Transfer of patent application right

Effective date of registration: 20210930

Address after: 1195 Bordeaux Road, California, USA

Applicant after: Baidu (USA) Co.,Ltd.

Applicant after: Kunlun core (Beijing) Technology Co.,Ltd.

Address before: 1195 Bordeaux Road, Sunnyvale, California, USA

Applicant before: Baidu (USA) Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant