CN112650980B - 数据处理加速器及由数据处理加速器执行的计算机实现的方法 - Google Patents
数据处理加速器及由数据处理加速器执行的计算机实现的方法 Download PDFInfo
- Publication number
- CN112650980B CN112650980B CN202010512170.3A CN202010512170A CN112650980B CN 112650980 B CN112650980 B CN 112650980B CN 202010512170 A CN202010512170 A CN 202010512170A CN 112650980 B CN112650980 B CN 112650980B
- Authority
- CN
- China
- Prior art keywords
- watermark
- model
- accelerator
- data
- kernel
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 85
- 238000000034 method Methods 0.000 title claims abstract description 79
- 238000013473 artificial intelligence Methods 0.000 claims abstract description 311
- 238000012549 training Methods 0.000 claims abstract description 108
- 230000002093 peripheral effect Effects 0.000 claims description 8
- 238000004891 communication Methods 0.000 description 54
- 230000015654 memory Effects 0.000 description 45
- 230000008569 process Effects 0.000 description 44
- 238000003860 storage Methods 0.000 description 33
- 239000007943 implant Substances 0.000 description 32
- 238000010586 diagram Methods 0.000 description 13
- 230000002085 persistent effect Effects 0.000 description 12
- 230000006870 function Effects 0.000 description 11
- 239000000284 extract Substances 0.000 description 8
- 230000004044 response Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 4
- 238000010801 machine learning Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000009434 installation Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000033001 locomotion Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 239000003826 tablet Substances 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 244000035744 Hura crepitans Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000003416 augmentation Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 229910000078 germane Inorganic materials 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000002513 implantation Methods 0.000 description 1
- JEIPFZHSYJVQDO-UHFFFAOYSA-N iron(III) oxide Inorganic materials O=[Fe]O[Fe]=O JEIPFZHSYJVQDO-UHFFFAOYSA-N 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000010897 surface acoustic wave method Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000013175 transesophageal echocardiography Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
-
- 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]
- G06F21/106—Enforcing content protection by specific content processing
- G06F21/1063—Personalisation
-
- 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]
- G06F21/16—Program or content traceability, e.g. by watermarking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/10—Machine learning using kernel methods, e.g. support vector machines [SVM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
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 Hardware Design (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Mathematical Physics (AREA)
- Technology Law (AREA)
- Multimedia (AREA)
- Computer Security & Cryptography (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computational Linguistics (AREA)
- Advance Control (AREA)
- Storage Device Security (AREA)
Abstract
公开了由数据处理(DP)加速器执行的计算机实现的方法,包括:在所述DP加速器处,接收来自主机处理器的表示一组训练数据的第一数据;在所述DP加速器处,接收来自所述主机处理器的水印内核;以及在所述DP加速器内对人工智能(AI)模型执行所述水印内核。所述水印内核在被执行时配置为:通过从该组训练数据的数据对象继承现有的水印,来生成新的水印;使用所述一组训练数据来训练所述AI模型;以及在所述AI模型的训练期间将所述新的水印植入到所述AI模型中。而后,所述DP加速器将表示具有植入的新的水印的经训练的AI模型的第二数据传输至所述主机处理器。
Description
技术领域
本公开的实施方式总体上涉及人工智能模型训练和推理。更具体地,本公开的实施方式涉及由数据处理加速器执行的人工智能模型训练和推理以及相关联的安全性。
背景技术
随着人工智能(AI)技术已经被部署在诸如图像分类或自动驾驶的各种领域中,AI模型(也称为“机器学习模型”)最近已经被广泛地使用。与软件应用的可执行图像或二进制图像类似,AI模型在被训练时可以基于一组属性执行推理以将这些属性分类为多个特征。因此,AI模型可以是“便携式的”并且可以在没有授权的情况下使用。当前,缺乏对AI模型的有效的数字权利保护。此外,使用委托给诸如数据处理(DP)加速器或远程系统的辅助处理系统的AI模型的处理任务,缺乏证据证明由DP加速器系统产生的结果受“信任根”系统保护。
发明内容
本公开的实施方式提供了由数据处理DP加速器执行的计算机实现的方法、数据处理DP加速器和存储有指令的非暂时性机器可读介质。
在本公开的一方面,由数据处理DP加速器执行的计算机实现的方法包括:在所述DP加速器处,接收来自主机处理器的表示一组训练数据的第一数据;在所述DP加速器处,接收来自所述主机处理器的水印内核;在所述DP加速器内对人工智能AI模型执行所述水印内核;以及将表示具有植入的新的水印的经训练的AI模型的第二数据传输至所述主机处理器。其中,所述水印内核在被执行时配置为:通过继承现有的水印,来生成新的水印;使用所述一组训练数据来训练所述AI模型;以及在所述AI模型的训练期间将所述新的水印植入到所述AI模型中。
在本公开的另一方面,数据处理DP加速器包括:接口,从主机处理器接收表示一组训练数据的第一数据以及接收水印内核;以及内核执行器,在所述DP加速器内对人工智能AI模型执行所述水印内核。其中,所述水印内核在被执行时配置为:通过继承现有的水印,来生成新的水印;使用所述一组训练数据来训练所述AI模型;以及在所述AI模型的训练期间将所述新的水印植入到所述AI模型中,其中,表示具有植入的新的水印的经训练的AI模型的第二数据被传输至所述主机处理器。
在本公开的又一方面,公开了存储有指令的非暂时性机器可读介质,当由数据处理DP加速器执行所述指令时,使得所述DP加速器执行操作,所述操作包括:在所述DP加速器处,接收来自主机处理器的表示一组训练数据的第一数据;在所述DP加速器处,接收来自所述主机处理器的水印内核;在所述DP加速器内对人工智能AI模型执行所述水印内核;以及将表示具有植入的新的水印的经训练的AI模型的第二数据传输至所述主机处理器。其中,所述水印内核在被执行时配置为:通过继承现有的水印,来生成新的水印;使用所述一组训练数据来训练所述AI模型;以及在所述AI模型的训练期间将所述新的水印植入到所述AI模型中。
附图说明
本公开的实施方式在附图的各图中以举例而非限制的方式示出,附图中的相同的附图标记指代相似的元件。
图1是示出根据一个实施方式的安全处理系统的框图。
图2A和图2B是示出根据一个实施方式的在一个或多个主机和一个或多个数据处理加速器之间的安全计算环境的框图。
图3是示出根据一个实施方式的一个或多个主机与一个或多个数据处理加速器之间的安全计算环境的框图。
图4至图5是示出根据一个实施方式的在人工智能模型中植入水印的过程的流程图。
图6至图7是示出根据一个实施方式的在训练过的AI模型中植入水印的过程的流程图。
图8至图10是示出根据一个实施方式的使用启用水印内核训练AI模型和在AI模型中植入水印的过程的流程图。
图11至图13是示出根据一个实施方式的将AI模型的水印植入到AI模型的推理输出的过程的流程图。
图14至图16是示出根据另一实施方式的从数据对象继承水印、训练AI模型以及将继承的水印植入到AI模型的过程的流程图。
图17至图19是示出根据另一实施方式的从数据对象继承水印、使用AI模型执行推理以及将继承的水印植入到AI模型的推理中的过程的流程图。
图20是示出用于实现本文中公开的功能的示例性计算系统的框图。
具体实施方式
将参考以下所讨论的细节来描述本公开的各种实施方式和方面,并且附图将示出各种实施方式。以下描述和附图是对本公开的说明,并且不应被解释为限制本公开。描述了许多特定细节以提供对本公开各种实施方式的全面理解。然而,在某些情况下,并未描述众所周知的或常规的细节以提供对本公开的实施方式的简洁讨论。
本说明书中对“一个实施方式”或“实施方式”的提及意味着结合该实施方式所描述的特定特征、结构或特性可以包括在本公开的至少一个实施方式中。短语“在一个实施方式中”在本说明书中各个地方的出现不必全部指相同的实施方式。
以下实施方式涉及使用数据处理(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模型生成的推理与生成推理的AI模型相关联。水印不应在安全计算环境之外被容易地发现。
在实施方式中,主机装置可以向DP加速器发送输入,当DP加速器使用该输入执行AI模型时,该DP加速器从AI模型中提取水印。主机装置可以在将DP加速器和/或AI模型用于可信操作之前验证水印。启用水印的AI模型是能够响应于指定的输入数据提取其自己的水印的AI模型。
在一些实施方式中,主机装置可以向DP处理装置发送内核以在执行一个或多个操作中使用。在本文中,内核是提供给DP加速器以由DP加速器执行来执行内核的预期功能的一小段代码。在实施方式中,内核由主机装置提供给DP加速器,作为由将由主机装置验证的DP加速器执行信任证明操作的一部分。在一些实施方式中,DP加速器不知道它代表主机装置执行的内核的目的。
在一些实施方式中,内核可以是“启用水印内核”。启用水印内核是这样的内核,当执行时,该内核能够从人工智能(AI)模型中提取水印。AI水印与特定的AI模型相关联,并且可以使用几种不同的方法被嵌入或“植入”在AI模型内。水印可以被植入到AI模型的一个或多个节点的一个或多个权重变量中。在实施方式中,水印被存储在AI模型的一个或多个节点的一个或多个偏置变量中,或者通过在训练期间创建AI模型的一个或多个附加节点来存储水印。
在一些实施方式中,内核可以是“继承水印内核”。继承水印内核是能够从数据对象(例如现有的AI模型或其它数据对象)继承水印的内核。然后,内核可以将继承的水印植入另一个AI模型或由AI模型生成的推理中。
在一些实施方式中,内核可以是“签名内核”,其可以对其接收的任何输入进行数字签名。签名内核可以生成待被签名的输入数据的散列或摘要,并且可以在签名输入之前将该散列或摘要嵌入到待被签名的输入中。散列或摘要可以是任何散列算法,例如SHA-1、SHA-2或SHA-3等。可以使用数据处理(DP)加速器的私钥、与主机装置共享的对称密钥或从主机装置接收的密钥来加密(签名)具有散列或摘要的输入数据。
在一些实施方式中,启用水印的AI模型是具有植入在AI模型内的水印的AI模型。在一些实施方式中,主机装置可以向DP加速器提供启用水印内核,使得DP加速器可以例如使用AI模型来进行推理,然后使用启用水印内核来从AI模型中提取水印,将水印嵌入推理中,并且数字签名该推理。这样的实施方式允许主机装置验证DP加速器确实使用正确的AI模型来执行推理,指示推理可以是受信任的。
关于以下方面中的任一方面,在一个实施方式中,可将水印嵌入到人工智能(AI)模型的一个或多个层的一个或多个节点中。例如,可以将水印嵌入在一个或多个权重变量或偏置变量中。替代地,可创建一个或多个节点(例如,人工智能模型未使用或不太可能使用的伪节点)以植入或存储水印。主机处理器可以是中央处理单元(CPU),并且DP加速器可以是通过总线或互连联接到CPU的通用处理单元(GPU)。DP加速器可以以专用集成电路(ASIC)、现场可编程门阵列(FPGA)装置或其它形式的集成电路(IC)的形式来实现。替代地,主机处理器可以是主数据处理系统的一部分,而DP加速器可以是作为主系统可以通过网络远程卸载其数据处理任务的辅助系统的许多分布式系统中的一个(例如,诸如作为服务或SaaS系统的软件的云计算系统、或作为服务或PaaS系统的平台)。主机处理器和DP加速器之间的链路可以是外围部件互连快速(PCIe)链路或诸如以太网连接的网络连接。
在第一方面,公开了由数据处理(DP)加速器执行的计算机实现的方法,该方法包括:在DP加速器处接收来自主机处理器的、表示一组训练数据的第一数据,以及基于该组训练数据在DP加速器内执行对人工智能(AI)模型的训练。该方法还包括:通过DP加速器在经训练的AI模型中植入水印,并将表示其中具有植入的水印的、经训练的AI模型的第二数据传输至主机处理器。在实施方式中,该方法还包括:接收预训练的机器学习模型;以及在DP加速器内基于该组训练数据对预训练的AI模型进行训练。水印可以植入到AI模型的一个或多个节点的一个或多个权重变量中。在实施方式中,水印存储在AI模型的一个或多个节点的一个或多个偏置变量中,或者在训练期间创建AI模型的一个或多个附加节点以存储水印。
在第二方面,公开了由数据处理(DP)加速器执行的计算机实现的方法包括:在DP加速器处,接收来自主机处理器的表示先前已经训练过的人工智能(AI)模型的第一数据;在DP加速器处接收来自主机处理器的在AI模型中植入水印的请求;以及由DP加速器在AI模型中植入水印。然后,DP加速器向将表示具有植入的水印的AI模型的第二数据发送到主机处理器。在实施方式中,该方法还包括:在DP加速器处,从植入水印的请求中提取水印算法标识符(ID);以及使用由水印算法ID所标识的水印算法来生成水印。
在第三方面,公开了数据处理(DP)加速器执行的计算机实现的方法,包括:在DP加速器处,接受来自主机处理器的表示一组训练数据的第一数据;在DP加速器处,接收来自主机处理器的水印内核;以及,在DP加速器内对人工智能(AI)模型执行水印内核。水印内核在被执行时配置为:生成水印,利用该组训练数据对AI模型进行训练,以及在AI模型训练期间将水印植入AI模型中。然后,DP加速器将表示具有植入的水印的经训练的AI模型的第二数据发送至主机处理器。在实施方式中,该方法还包括:接收预训练的AI模型,以及训练是针对预训练的AI模型执行的。在实施方式中,该方法还包括:从主机处理器接收一组输入数据。水印内核是针对该组输入数据执行的,以及水印是基于该组输入数据生成的。在实施方式中,该组输入数据包括描述水印的信息。
在第四方面,公开了由数据处理(DP)加速器执行的计算机实现的方法,包括:在DP加速器处,接收一组输入数据和来自主机处理器的表示先前训练过的人工智能(AI)模型的第一数据;在DP加速器处,接收来自主机处理器的水印内核;以及,在DP加速器内对AI模型执行水印内核。水印内核在被执行时配置为:生成水印;基于输入数据执行人工智能模型的推理操作以生成输出数据,并将水印植入到输出数据中。然后,DP加速器将具有植入的水印的输出数据传输至主机处理器。在实施方式中,该方法还包括:从主机处理器接收一组输入数据。水印内核是针对该组输入数据执行的,以及水印是基于该组输入数据生成的。该组输入数据可以包括描述水印的信息。
在第五方面,公开了数据处理(DP)加速器执行的计算机实现的方法,包括:在DP加速器处,接收来自主机处理器的表示一组训练数据的第一数据;在DP加速器处,接收来自主机处理器的水印内核;以及在DP加速器内对人工智能(AI)模型执行水印内核。水印内核在被执行时配置为:通过从该组训练数据的数据对象继承现有的水印来生成新的水印,使用该组训练数据训练AI模型,以及在AI模型的训练期间将新的水印植入到AI模型中。然后,DP加速器将表示具有植入的新的水印的经训练的AI模型的第二数据发送至主机处理器。
在第六方面,公开了数据处理(DP)加速器执行的计算机实现的方法,包括:在DP加速器处,接收来自主机处理器的一组输入数据和先前训练过的人工智能(AI)模型;在DP加速器处,接收来自主机处理器的水印内核;在DP加速器内对AI模型和该组输入数据执行水印内核。水印内核在被执行时配置为:通过从该组输入数据或AI模型的数据对象中继承现有的水印来生成新的水印,基于输入数据使用AI模型执行AI推理以生成输出数据,以及将新的水印植入到输出数据中。然后,DP加速器将具有植入的新的水印的输出数据传输至主机处理器。
上述功能中的任一功能可以作为可执行指令被编程到一个或多个非暂时性计算机可读介质上。当可执行指令由具有至少一个硬件处理器的处理系统执行时,该处理系统使得实现该功能。上述功能中的任何一个都可以通过具有至少一个硬件处理器的处理系统来实现,所述硬件处理器联接到编程有可执行指令的存储器,所述可执行指令在被执行时使所述处理系统实现所述功能。
图1是示出根据一些实施方式的用于保护主机104和数据处理(DP)加速器105-107之间的通信的系统配置的示例的框图。参照图1,系统配置100包括但不限于通过网络103通信地联接到DP服务器104(例如主机)的一个或多个客户端装置101-102。客户端装置101-102可以是任何类型的客户端装置,诸如个人计算机(例如,台式计算机、膝上型计算机和平板计算机)、“瘦”客户端、个人数字助理(PDA)、启用web的设备、智能手表或移动电话(例如,智能电话)等。替代地,客户端装置101-102可以是其它服务器。网络103可以是任何类型的网络,诸如有线或无线的局域网(LAN)、诸如因特网的广域网(WAN)或其组合。
服务器(例如,主机)104可以是任何类型的服务器或服务器集群,诸如Web或云服务器、应用服务器、后端服务器或其组合。服务器104还包括接口(未示出),以允许诸如客户端装置101-102的客户端访问由服务器104提供的资源或服务(诸如由DP加速器经由服务器104提供的资源和服务)。例如,服务器104可以是向客户端提供各种云服务的云服务器或数据中心的服务器,例如,云存储、云计算服务、人工智能训练服务、数据挖掘服务等。服务器104可以被配置为云上的软件即服务(SaaS)或平台即服务(PaaS)系统的一部分,该云可以是私有云、公共云或混合云。该接口可以包括Web接口、应用编程接口(API)和/或命令行接口(CLI)。
例如,客户端,在该示例中,客户端装置101的用户应用(例如,Web浏览器,应用)可以通过网络103经由接口向服务器104发送或传输用于执行的指令(例如,AI训练,推理指令等),并且服务器104接收该指令。响应于该指令,服务器104与DP加速器105-107通信以实现指令的执行。在一些实施方式中,指令是机器学习类型的指令,其中DP加速器作为专用机器或处理器可以比服务器104快许多倍地执行指令。因此,服务器104可以分布式方式控制/管理一个或多个DP加速器的执行作业。然后,服务器104向客户端装置101-102返回执行结果。DP加速器或AI加速器可以包括一个或多个专用处理器,例如可从(Baidu,)获得的人工智能(AI)芯片组,或者可替代地,DP加速器可以是来自另一AI芯片组提供者的AI芯片组。
根据一个实施方式,访问由数据处理服务器104(也称为主机)托管的DP加速器105-107中的任一个的应用程序中的每一个都可以验证该应用程序是由可信源或供应商提供的。每个应用程序可以在由主机104的中央处理单元(CPU)专门配置和执行的可信执行环境(TEE)内启动和执行。当应用程序被配置成访问DP加速器105-107中的任何一个时,可以在主机104和DP加速器105-107中相应的一个之间建立模糊连接,从而保护在主机104和DP加速器105-107之间交换的数据免受恶意软件/入侵的攻击。
图2A是示出根据一些实施方式的用于主机系统104和数据处理(DP)加速器105-107之间的模糊通信的多层保护解决方案的示例的框图。在一个实施方式中,系统200在对DP加速器进行硬件修改或不进行硬件修改的情况下,提供用于主机104和DP加速器105-107之间的模糊通信的保护方案。参照图2A,主机机器或服务器104可以被描述为具有要防止入侵的一个或多个层的系统,例如用户应用程序205、运行时库206、驱动程序209、操作系统211和硬件213(例如,安全模块(可信平台模块(TPM))/中央处理单元(CPU))。存储器安全应用程序207可以在沙盒存储器(sandboxed memory)中运行。在应用程序205和运行时库206之下,可以安装一个或多个驱动程序209以接口到硬件213和/或DP加速器105-107。
硬件213可以包括一个或多个处理器201和存储装置204。存储装置204可以包括一个或多个人工智能(AI)模型202和一个或多个内核203。内核203可以包括签名内核、启用水印内核、加密和/或解密内核等。签名内核在被执行时可以根据内核的编程对任何输入进行数字签名。启用水印内核可以从数据对象(例如,AI模型或其它数据对象)提取水印。启用水印内核还可以将水印植入AI模型、推理输出或其它数据对象中。水印内核(例如,继承水印内核)可以从另一数据对象继承水印,并将该水印植入不同的对象,例如推理输出或AI模型。如本申请所使用的,水印是与AI模型或由AI模型生成的推理相关联的标识符,并且可以被植入到AI模型或由AI模型生成的推理中。例如,可以将水印植入到一个或多个权重变量或偏置变量中。替代地,可创建一个或多个节点(例如,人工智能模型未使用或不太可能使用的伪节点)以植入或存储水印。
主机机器104通常是CPU系统,其可以控制和管理作业在主机机器104和/或DP加速器105-107上的执行。为了保护/掩盖DP加速器105-107和主机机器104之间的通信信道215,可能需要不同的部件来保护主机系统中易于数据入侵或攻击的不同层。例如,可信执行环境(TEE)可以保护用户应用程序205层和运行时库206层免受数据入侵。
根据一些实施方式,系统200包括主机系统104和DP加速器105-107。DP加速器可包括AI芯片组或另一AI芯片组,例如可执行人工智能(AI)密集型计算任务的图形处理单元(GPU)。在一个实施方式中,主机系统104包括具有一个或多个CPU 213的硬件,CPU213配备有主机机器104内的安全模块(例如可信平台模块(TPM))。TPM是端点装置上的专用芯片,其存储专用于主机系统的用于硬件认证的加密密钥(例如,RSA加密密钥)。每个TPM芯片可以包含一个或多个RSA密钥对(例如,公钥和私钥对),称为签注密钥(endorsementkeys,EK)或签注凭证(endorsement credentials,EC),即根密钥。密钥对被保持在TPM芯片内部,并且不能被软件访问。然后,在执行固件和软件的关键部分之前,可以由EK或EC对固件和软件的关键部分进行散列,以保护系统免于未授权的固件和软件修改。因此,主机机器上的TPM芯片可以用作安全启动的信任根。
TPM芯片还在工作内核空间中保护驱动程序209和操作系统(OS)211以与DP加速器105-107通信。本文中,驱动程序209由DP加速器供应商提供,并且可以用作用户应用程序的驱动程序,以控制主机和DP加速器之间的通信链路215。因为TPM芯片和安全启动处理器在其内核空间中保护OS 211和驱动程序209,所以TPM还有效地保护驱动程序209和OS 211。
由于用于DP加速器105-107的通信链路215可以被OS 211和驱动程序209独占,因此,通信链路215可以通过TPM芯片来保护。在一个实施方式中,通信链路215包括外围部件互连或外围部件互连快速(PCIE)信道。在一个实施方式中,通信链路215是模糊通信信道。
主机机器104可以包括可信执行环境(TEE)210,可信执行环境(TEE)210由TPM/CPU213强制执行以确保安全。TEE是安全环境。TEE可以保证加载在TEE内的代码和数据在机密性和完整性方面受到保护。TEE的实例可以是软件保护扩展(SGX)或安全加密虚拟化(SEV)。SGX和/或SEV可包括一组中央处理单元(CPU)指令代码,其允许用户级代码分配CPU的存储器的专用区域,该专用区域被保护以免于以较高特权级运行的进程。在本申请中,TEE 210可以保护用户应用程序205和运行时库206,其中用户应用程序205和运行时库206可以分别由终端用户和DP加速器供应商提供。在本申请中,运行时库206可以将应用编程接口(API)调用转换为用于DP加速器的执行、配置和/或控制的命令。在一个实施方式中,运行时库206提供由用户应用程序执行的预定的一组(例如,预定义的)内核。在实施方式中,内核可以作为内核203存储在存储装置204中。
主机机器104可以包括存储器安全应用程序207,其使用诸如Rust和GoLang等存储器安全语言来实现。这些运行在存储器安全版本(例如MesaLock)上的存储器安全应用程序可进一步保护系统200免受数据机密性和完整性攻击。然而,操作系统可以是任何分布、OS或OS。
主机机器104可如下设置:将存储器安全分布安装到配备有TPM安全启动的系统上。该安装可以在制造或准备阶段期间离线进行。该安装还可以确保使用存储器安全编程语言对主机系统的用户空间的应用进行编程。确保运行在主机系统104上的其它应用程序是存储器安全应用程序可进一步减轻对主机系统104的潜在机密性和完整性攻击。
在安装之后,系统然后可以通过基于TPM的安全启动来启动。TPM安全启动确保在提供加速器服务的内核空间中仅启动经签名/认证的操作系统和加速器驱动程序。在一个实施方式中,可以通过超管理器(未示出)加载操作211系统。超管理器或虚拟机管理器是创建和运行虚拟机的计算机软件、固件或硬件。内核空间是其中标识内核(即,用于执行的预定的一组(例如,预定义的)函数)以向用户应用程序提供功能和服务的声明性区域或范围。在系统的完整性受到损害的情况下,TPM安全启动可能不能被启动,而是关闭系统。
在安全启动之后,运行时库206运行并创建TEE 210,TEE 210将运行时库206置于与CPU 213相关联的可信存储器空间中。接下来,在TEE 210中启动用户应用程序205。在一个实施方式中,用户应用程序205和运行时库206被静态链接并一起启动。在另一个实施方式中,运行时库206首先在TEE 210中启动,然后用户应用程序205被动态加载到TEE 210中。在另一个实施方式中,首先在TEE 210中启动用户应用程序205,然后在TEE 210中动态加载运行时库206。静态链接的库是在编译时链接到应用程序的库。动态加载可以通过动态链接器进行。动态链接器加载并链接共享库,以便在运行时间运行用户应用程序。此处,TEE 210内的用户应用程序205和运行时库206在运行时彼此可见,例如,所有处理数据彼此可见。然而,对TEE的外部访问被拒绝。
在一个实施方式中,用户应用程序205只能从运行时库206预定的内核集中调用内核。在另一个实施方式中,用户应用程序205和运行时库206用无边信道算法强化,以防御边信道攻击,例如基于高速缓存的边信道攻击。边信道攻击是基于从计算机系统的实现中获得的信息的任何攻击,而不是在所实现的算法本身中的弱点(例如,密码分析和软件缺陷)。边信道攻击的示例包括高速缓存攻击,其是基于攻击者在虚拟化环境或云环境中监视共享物理系统的高速缓存的能力的攻击。强化可以包括对高速缓存、由算法生成的被放置在高速缓存上的输出的掩盖。接下来,当用户应用程序完成执行时,用户应用程序终止其执行并从TEE退出。
在一个实施方式中,TEE 210和/或存储器安全应用程序207不是必需的,例如,用户应用程序205和/或运行时库206托管在主机104的操作系统环境。
在一个实施方式中,内核集包括模糊内核算法。在一个实施方式中,模糊内核算法可以是对称或非对称算法。对称模糊算法可以使用相同的算法来模糊和去模糊数据通信。非对称模糊算法需要一对算法,其中该对中的第一个被用于模糊,而该对中的第二个被用于去模糊,反之亦然。在另一实施方式中,非对称模糊算法包括用于模糊数据集的单个模糊算法,但是不旨在对该数据集去模糊,例如,不存在对应的去模糊算法。
模糊是指通过使通信消息难以理解,通常使用混乱和不明确的语言来模糊通信的预期含义。模糊数据对于逆向工程来说更加困难和复杂。在传送数据之前,可以应用模糊算法来模糊(使用密码/破译)数据通信,从而减少窃听的机会。在一个实施方式中,模糊算法还可包括加密方案,以进一步加密用于附加保护层的模糊数据。与计算密集的加密不同,模糊算法可以简化计算。
一些模糊技术可以包括但不限于字母模糊、名称模糊、数据模糊、控制流模糊等。字母模糊是用特定的替换字母替换数据中的一个或多个字母,从而使数据无意义的过程。字母模糊的例子包括字母旋转函数,其中每个字母沿着字母表沿着移位或旋转预定数量的位置。另一个例子是基于特定图案重新排序或打乱字母。名称模糊是用无意义字符串替换特定目标字符串的过程。控制流模糊可以使用附加代码改变程序中的控制流的顺序,该程序具有加性代码(插入僵尸代码,插入不受控制的跳转,插入替代结构),以隐藏算法/AI模型的真实控制流。
总之,系统200为DP加速器(用于包括机器学习模型、训练数据和推理输出的数据传输)提供多层保护,以免丢失数据机密和完整性。系统200可以包括基于TPM的安全启动保护层,TEE保护层和内核校验/验证层。此外,系统200可通过确保主机机器上的其它应用程序以存储器安全编程语言来实现来提供存储器安全用户空间,存储器安全编程语言可通过消除潜在的存储器破坏/漏洞来进一步消除攻击。此外,系统200可以包括使用无边信道算法来防御边信道攻击(例如,基于高速缓存的边信道攻击)的应用程序。
运行时库206可提供模糊内核算法以模糊主机104与DP加速器105-107之间的数据通信。在一个实施方式中,所述模糊可以与密码方案配对。在另一个实施方式中,模糊是单独的保护方案,并且对于DP加速器来说,基于密码的硬件变得不必要。
图2B是示出根据一些实施方式的通信地联接到与DP加速器105-107接合的一个或多个加速器信道管理器(ACM)270的主机信道管理器(HCM)259的示例的框图。参照图2B,在一个实施方式中,HCM 259包括认证模块251、终止模块252、密钥管理器253、密钥存储器254和密码引擎255。认证模块251可以认证在主机服务器104上运行的用户应用程序,以允许访问或使用DP加速器105的资源。
终止模块252可以终止连接(例如,将终止与连接相关联的信道)。密钥管理器253可以管理(例如,创建或销毁)非对称密钥对或对称密钥,以便为不同的安全数据交换信道加密/解密一个或多个数据包。此处,每个用户应用程序(作为图2A的用户应用程序205的一部分)可以以一对多的关系对应于或映射到不同的安全数据交换信道,并且每个数据交换信道可以对应于DP加速器105。每个应用可以利用多个会话密钥,其中每个会话密钥用于对应于DP加速器(例如,加速器105..107)的安全信道)。密钥存储器254可以存储加密非对称密钥对或对称密钥。密码引擎255可以加密或解密用于通过任何安全信道交换的数据的数据包。应注意,这些模块中的一些可以集成到更少的模块中。
在一个实施方式中,DP加速器105包括ACM 270和安全单元(SU)275。安全单元275可以包括密钥管理器271、密钥存储器272、真随机数生成器273和密码引擎274。密钥管理器271可以管理(例如,生成、安全保持和/或销毁)非对称密钥对或对称密钥。密钥存储器272可以将密码非对称密钥对或对称密钥存储在安全单元275内的安全存储器中。真随机数生成器273可以生成用于密钥生成和密码引擎274使用的种子。密码引擎274可以加密或解密用于数据交换的密钥信息或数据包。在一些实施方式中,ACM 270和SU 275是集成模块。
DP加速器105还可以包括存储器/储存器280,其可以存储人工智能模型277、水印内核278(包括继承水印内核、水印使能内核、水印签名内核等),加密和解密内核281以及数据279。HCM 259可以经由通信信道215与ACM 270通信。
在一个实施方式中,DP加速器105还包括AI单元,该AI单元可以包括AI训练单元和AI推理单元。AI训练和推理单元可以集成到单个单元中。AI训练模块被配置成使用训练数据集来训练AI模型。可以经由通信链路215从主机系统104接收要训练的AI模型和训练数据。AI模型推理单元可以被配置成对一组输入数据(例如,一组输入特征)执行训练的人工智能模型,以推理和分类输入数据。例如,可以将图像输入到人工智能模型中以对图像是否包含人、景观等进行分类。经过训练的人工智能模型和输入数据也可以经由接口140通过通信链路215从主机系统104接收。
在一个实施方式中,水印单元276可以包括水印生成器和水印记录器(也称为“水印植入器”)。水印单元276可以包括水印内核执行器或内核处理器(未示出)以执行内核。在实施方式中,可以从主机104接收内核,或者从永久或非永久存储器中检索内核,并且在DP加速器105的存储器(未示出)中执行内核。水印生成器被配置为使用预定的水印算法生成水印。替代地,水印生成器可以从现有的水印继承水印,或者从另一数据结构或数据对象提取水印,所述另一数据结构或数据对象例如可以从主机系统104接收的人工智能模型或一组输入数据。水印植入器被配置为将水印记录或植入到诸如人工智能模型的数据结构或由人工智能模型生成的输出数据中。其中植入水印的人工智能模型或输出数据可以通过通信链路215从DP加速器105返回到主机系统104。应注意DP加速器105-107具有相同或相似的结构或部件,并且关于DP加速器的描述将适用于本申请全文中的所有DP加速器。
图3是示出根据一个实施方式的数据处理系统的示例的框图。系统2100可以是任何数据处理密集型系统,例如数据中心的数据处理系统、SaaS平台、PaaS平台、自动驾驶系统等。参考图3,系统2100包括通过通信链路215,联接到一个或多个DP加速器105至107(统称为DP加速器105)的主机系统104。尽管仅示出了两个DP加速器105和107,但可能适用更多或更少数量的DP加速器。通信链路215可以是总线(例如,PCIe总线)或网络连接(例如,以太网或因特网)。主机系统104通常是配置成控制和管理在主机系统104和DP加速器150上运行的作业的CPU系统,而DP加速器执行实际的数据处理密集型计算作业。
在一个实施方式中,主机系统104包括一个或多个处理器201、存储器(未示出)和永久存储装置204。处理器201(也称为主机处理器)可以是CPU,以及存储器可以是任何类型的随机存取存储器(RAM),而存储装置204可以是硬盘驱动器、固态存储装置(例如闪存)等。存储器包括加载在中并由一个或多个处理器201执行的运行一个或多个主机应用程序205和运行时库206的操作系统(OS)211。主机系统104可以实现为可信平台,例如,使用通过硬件(例如,CPU)支持的TPM(可信平台模块)技术。TPM由可信计算组(TCP)发布。
主机应用程序205可以是用于执行特定数据密集型任务的用户应用,其中应用程序205部署在主机系统104中。在本示例中,主机104可以作为软件即服务(SaaS)或平台即服务(PaaS)平台的一部分运行。例如,应用程序205可以是诸如人脸识别应用等图像处理应用。人脸识别应用可以调用人工智能模型对分流或分发给DP加速器105的图像进行分类。替代地,主机系统104可以是人工智能模型训练系统,其中,密集训练任务被分流或分发给DP加速器105。
运行时库206可与DP加速器105相关联,并由DP加速器105的供应商提供。值得注意的是,DP加速器105至107可以由不同的供应商提供,其中,不同的运行时库206和驱动程序209可以分别由不同的供应商提供。运行时库206负责将来自应用程序205的应用程序调用转换为与驱动程序209兼容的格式。主机104与DP加速器105之间的通信链路215可以是PCIe接口或以太网接口。存储在存储装置204中的人工智能(AI)模型202可以是待训练的AI模型或先前训练过的AI模型。
DP加速器105可以包括安全单元275、人工智能单元2105、水印单元2102、永久或非永久存储器2101以及一个或多个处理器2109。永久或非永久存储器2101可包括易失性或非易失性存储器,所述易失性或非易失性存储器可容纳一个或多个内核(例如,启用水印内核、加密和/或解密内核等)、AI模型或从主机104接收的数据。
每个DP加速器105可以包括可信或安全单元275。安全单元275可以包括密钥管理器271、密钥存储器272、真随机数生成器273和加密引擎274。密钥管理器271可以管理(例如,生成、安全保存和/或销毁)非对称密钥对或对称密钥。密钥存储器272可以将加密的非对称密钥对或对称密钥存储在安全单元275内的安全存储器中。真随机数生成器273可以生成用于密钥生成和加密引擎274使用的种子。加密引擎274可以加密或解密用于数据交换的密钥信息或数据包。在一些实施方式中,ACM 270和SU 275是集成模块。
在一个实施方式中,人工智能单元2105可以包括人工智能训练单元2106和人工智能推理单元2107,这两个单元2106和2107可以集成在一个单元中。人工智能训练模块2106配置成使用一组训练数据训练人工智能模型。待训练的人工智能模型和训练数据可以通过通信链路215从主机系统104接收。人工智能模型推理单元2107可配置成在一组输入数据(例如,一组输入特征)上执行训练过的人工智能模型,以推理和分类输入数据。例如,可以将图像输入到人工智能模型以对图像是否包含人、景物等进行分类。训练过的人工智能模型和输入数据也可以通过通信链路215通过接口140从主机系统104接收。
在一个实施方式中,水印单元2102可以包括水印生成器2103和水印记录器(也称为“水印植入器”)2104。水印单元2102可以包括水印内核执行器或内核处理器(未示出)以执行内核。在实施方式中,可以从主机104接收内核,或者从永久或非永久存储器中检索内核,并在DP加速器105的存储器(未示出)中执行内核。水印生成器2103配置成使用预定的水印算法生成水印。替代地,水印生成器2103可以从现有的水印中继承水印,或者可从接收自主机系统104的其它数据结构或数据对象(例如人工智能模型或一组输入数据)中提取水印。水印植入器2104配置成将水印嵌入或植入到诸如人工智能模型或人工智能模型生成的输出数据等数据结构中。人工智能模型或具有植入的水印的输出数据可以通过通信链路215从DP加速器105返回到主机系统104。值得注意的是,DP加速器105至107具有相同或相似的结构或组件,并且关于DP加速器的描述将适用于本申请中的所有DP加速器。
根据一方面,DP加速器105可以训练人工智能模型并在训练期间将水印植入到人工智能模型中。在一个实施方式中,DP加速器105配置成通过通信链路215从主机处理器104接收表示待训练的人工智能模型(也称为AI模型)和一组训练数据的第一数据。人工智能模型训练单元2106基于该组训练数据执行对人工智能模型的训练。DP加速器105从主机处理器104接收在人工智能模型中植入水印的请求。响应于该请求,水印植入器或记录器2106将水印植入训练过的人工智能模型中。此后,DP加速器105通过通信链路215向主机处理器104发送表示具有植入的水印的训练过的人工智能模型的第二数据。在一个实施方式中,水印生成器2103从请求中提取水印算法标识符(ID),并使用水印算法ID标识的水印算法来生成水印。
图4是示出根据一个实施方式的在人工智能(AI)模型中植入水印的处理流程的流程图。参考图4,主机系统104经由路径2151向DP加速器105发送一组训练数据以及可选地预训练的AI模型。作为响应,在方框2152,DP加速器105使用该组训练数据对新的AI模型或预训练的AI模型执行人工智能模型训练。当对AI模型进行训练后,DP加速器105经路径2153向主机系统104发送通知,指示人工智能模型已被训练。作为响应,在方框2154,主机系统104选择DP加速器水印单元2102支持的水印算法,并经由路径2155向DP加速器105发送水印算法ID。基于水印算法ID,在方框2156,DP加速器的水印单元2102使用由水印算法ID标识的水印算法生成水印,并将该水印植入AI模型中。在实施方式中,水印算法可以存储在DP加速器105的永久或非永久存储器2101中,可由水印单元2102访问。然后,DP加速器105经由路径2157将具有植入的水印的训练过的AI模型传输回主机系统104。值得注意的是,从DP加速器105向主机系统104发送通知可以是可选的。主机系统104可以在不接收通知的情况下,向DP加速器105发送植入水印的请求,其中请求可以包括水印算法ID。
图5是示出根据一个实施方式的用于在AI模型中植入水印的过程的流程图。该过程可以通过可以包括软件、硬件或其组合的处理逻辑来执行。过程2170可以由DP加速器105执行。参考图5,在方框2171,DP加速器105通过通信链路215从主机处理器104接收表示一组训练数据以及可选地预训练的AI模型的第一数据。在方框2172中,DP加速器105使用该组训练数据执行对新的AI模型或预训练的AI模型(如果提供)的训练。在方框2173,DP加速器从主机处理器接收在训练过的人工智能模型中植入水印的请求。请求包括水印算法标识符(ID)。在方框2174,DP加速器水印单元2102使用请求中标识的水印算法生成水印。在方框2175,DP加速器将水印植入训练过的AI模型中。在方框2176,DP加速器通过通信链路215向主机处理器104发送表示具有植入的水印的训练过的AI模型的第二数据。
根据另一方面,DP加速器105也可以将水印植入现有或先前训练过的人工智能模型中。回到图3,在一个实施方式中,DP加速器105通过通信链路215从主机处理器104接收表示先前训练过的人工智能模型(例如,现有的传统的人工智能模型)的第一数据。DP加速器105还通过通信链路215从主机处理器104接收在AI模型中植入水印的请求。响应于该请求,水印生成器2103从请求中提取水印算法ID,并使用由水印算法ID标识的水印算法生成水印。然后,水印植入器2104将水印植入从主机处理器104接收的人工智能模型中。此后,DP加速器105通过通信链路215向主机处理器104发送表示具有植入的水印的AI模型的第二数据。在该实施方式中,DP加速器105配置成将水印植入已训练过的现有的人工智能模型中。
图6是示出根据一个实施方式的在训练过的人工智能(AI)模型中植入水印的处理的处理流程图。参考图6,主机系统104经由路径2201向DP加速器105传输先前训练过的AI模型。也就是说,AI模型是已经训练和生成的现有模型。在方框2202,主机系统104选择DP加速器水印单元2102支持的水印算法,并经由路径2203向DP加速器105发送标识所选水印算法的水印算法ID。作为响应,在方框2204,DP加速器水印生成单元2103使用水印算法ID标识的水印算法生成水印。在方框2205,DP加速器在先前训练过的AI模型中植入水印。然后,将具有植入的水印的人工智能模型经由路径2206返回到主机系统。
图7是示出根据一个实施方式的在训练过的人工智能(AI)模型中植入水印的过程的流程图。该过程可以通过可以包括软件、硬件或其组合的处理逻辑来执行。过程2220可以由DP加速器105执行。参考图7,在方框2221处,DP加速器105通过通信链路215从主机处理器104接收表示先前训练过的AI模型的第一数据。在方框2222,DP加速器105通过通信链路215从主机处理器104接收在AI模型中植入水印的请求。在方框2223,DP加速器水印生成单元2103使用水印算法生成水印。在方框2224,DP加速器水印植入单元2104将水印植入AI模型中。在方框2225,将具有植入的水印的AI模型返回给主机处理器。
根据另一方面,可以通过在DP加速器105内执行水印内核来植入水印。水印内核可以由主机系统提供。术语“内核”是指可以由加速器或执行环境独立执行的可执行代码。回到图3,在一个实施方式中,DP加速器105通过通信链路215从主机处理器104接收表示待训练的人工智能模型和一组训练数据的第一数据。DP加速器105还通过通信链路215从主机处理器104接收水印内核(例如,启用水印内核)。DP加速器105在AI模型上执行水印内核。当执行该水印内核时,将生成水印、执行或调用对AI模型的训练,以及(作为训练处理的一部分)植入或调用水印植入器2104以将水印植入到AI中。此后,DP加速器105通过通信链路215将具有植入的水印的训练过的AI模型传输至主机104。在一个实施方式中,水印内核在包括描述水印的信息的一组输入数据上执行。
图8是示出根据一个实施方式的训练人工智能(AI)模型并在AI模型中植入水印的过程的处理流程图。参考图8,主机104经由路径2241向DP加速器105发送一组训练数据,或者可选地预训练的AI模型。在方框2242,主机系统104生成水印内核或者选择水印内核,并经由路径2243将该水印内核和一组输入数据发送至DP加速器105。在方框2244,DP加速器105执行水印内核以使用该组训练数据来训练AI模型(这可以精炼所可选地接收的预训练的模型),并在训练期间使用输入数据将水印植入到AI模型中。输入数据可以包含描述水印或水印算法的信息。之后,经由路径2245将具有植入的水印的训练过的AI模型返回主机系统104。
图9是示出根据一个实施方式的训练AI模型以及使用启用水印内核在AI模型中植入水印的过程的流程图。如上图2B所示,参考方框278,启用水印内核接收第一组输入训练数据,以及可选地预训练的AI模型。如果启用水印内核接收到预训练的AI模型,那么将使用第一组输入训练数据来精炼预训练的模型。如果启用水印内核没有接收到预训练的AI模型,则启用水印内核将使用第一组训练数据生成新的AI模型。该过程可以通过可以包括软件、硬件或其组合的处理逻辑来执行。
现在参考图10,过程2260可以由DP加速器105执行。在方框2261中,DP加速器通过链路从主机处理器接收表示一组训练数据及可选地预训练的AI模型的第一数据。在方框2262,DP加速器105还通过链路从主机处理器接收水印内核。在方框2263,执行水印内核以使用该组训练数据精炼预训练的模型或生成新的模型。在方框2264,启用水印内核在训练期间生成水印并植入AI模型中。在方框2265中,通过通信链路215将表示具有植入的水印的训练过的AI模型的第二数据返回给主机处理器104。
根据另一方面,还可以利用水印内核将水印植入先前训练过的现有AI模型中。回到图8,在一个实施方式中,DP加速器105通过通信链路215从主机104接收表示一组训练数据以及可选地预训练的AI模型的第一数据。DP加速器105还通过通信链路215从主机104接收水印内核(例如,启用水印内核)。DP加速器105在AI模型上执行水印内核。水印内核在执行时将生成水印、执行对AI模型的训练,以及(作为训练处理的一部分)植入或调用水印植入器2104以将水印植入到人工智能模型中。之后,DP加速器105通过链路向主机104传输具有植入的水印的训练过的AI模型。在一个实施方式中,水印内核在一组输入数据上执行,其中所述输入数据包括描述该水印的信息。
图11是示出根据一个实施方式的在使用人工智能(AI)模型生成的推理输出中植入水印的处理流程的流程处理图。参考图11,在方框2301,主机104编译并生成水印内核,并经由路径2302将水印内核发送至DP加速器105。主机104还经由路径2302发送先前训练过的AI模型到DP加速器105,请求DP加速器105植入水印。在方框2303,DP加速器在AI模型上执行启用水印内核以生成水印。在方框2304,DP加速器105使用输入数据在AI模型上执行内核以执行推理,并将水印植入到所推理的输出数据中,例如,如图12所示。在一个实施方式中,输入数据可以包括描述水印的信息。然后,经由路径2305将具有植入的水印的输出数据从DP加速器105传输至主机104。因此,在本实施方式中,使用AI模型进行的推理操作的输出数据将包括指示生成推理输出的AI模型的水印。
图12是示出根据一个实施方式的在从人工智能(AI)模型输出的推理输出中植入水印的过程的流程图。该过程可以通过可以包括软件、硬件或其组合的处理逻辑来执行。输入数据和AI模型输入到启用水印内核。启用水印内核部分地基于输入数据从AI模型中提取水印,并且AI模型基于输入数据生成推理输出。然后,启用水印内核将水印植入到推理输出中并输出具有植入的水印的推理输出。
现在参考图13,用于在AI模型的推理输出中植入水印的过程包括:在方框2321,DP加速器通过通信链路215从主机处理器104接收表示先前训练过的人工智能(AI)模型的第一数据。在方框2322,DP加速器还通过通信链路215从主机处理器104接收启用水印内核和第二数据。在方框2323,DP加速器执行启用水印内核以执行AI模型的推理操作,以生成输出数据,以及在方框2324将水印植入到输出数据中。在方框2325中,通过通信链路215将具有植入的水印的输出数据返回到主机系统104。
根据另一方面,还可以利用启用水印内核从诸如一组输入数据或人工智能模型的其它数据结构或数据对象继承水印,并将继承的水印植入到其它人工智能模型中。在这种情况下,数据对象已经包括了植入其中的水印。水印内核在执行时可以从数据对象中提取或继承水印,并使用该水印以将该水印植入到其它人工智能模型中。
图14是示出根据另一实施方式的从数据对象继承水印、训练人工智能(AI)模型以及将继承的水印植入AI模型的过程的处理流程图。参考图14,在方框2341,主机系统104生成能够从除AI模型之外的数据对象或数据结构提取或继承水印的水印内核(例如,继承水印内核)。主机系统104经由路径2342向DP加速器105发送水印内核、一组训练数据以及可选的AI模型。作为响应,在方框2344,在DP加速器105内执行水印内核以从除AI模型之外的数据对象中提取或继承现有的水印,以及在方框2345,训练AI模型。在DP加速器接收到预训练的AI模型的实施方式中,AI模型在训练期间被进一步训练或精炼。在DP加速器未接收到预训练的AI模型的实施方式中,AI模型在训练期间生成。在训练期间中,将继承的水印植入到AI模型中。经由路径2346将具有植入的水印的训练过的AI模型返回至主机系统104。
图15是示出根据另一实施方式的从数据对象继承水印、训练人工智能(AI)模型以及在AI模型中植入继承的水印的过程的流程图。该过程可以通过可以包括软件、硬件或其组合的处理逻辑来执行。该过程可以由DP加速器105执行。水印内核(例如,继承水印内核)接收表示训练数据以及可选的AI模型的一组输入。水印内核可以从其它数据对象继承水印。如果水印内核接收到AI模型,则水印内核还可以进一步训练或精炼AI模型,并将水印植入到精炼的AI模型中。如果水印内核没有接收到AI模型,则水印内核可以生成并训练新的AI模型,并将水印植入到新的AI模型中,从而得到具有继承的水印的训练过的AI模型。
回到图3,根据一个实施方式,DP加速器105通过通信链路215从主机104接收表示一组训练数据及可选地人工智能(AI)模型的第一数据。DP加速器105还从主机104接收水印内核(例如,继承水印内核)。水印内核由AI模型上的DP加速器105执行。水印内核在DP加速器105内执行时通过继承现有的水印生成新的水印、训练AI模型,以及在训练期间将新的水印植入到AI模型中。然后,将具有植入的水印的训练过的AI模型发送回主机104。可以从主机处理器接收现有的水印,使得水印内核可以继承现有的水印。
参见图16,在方框2361,DP加速器105通过通信链路215从主机系统104接收表示一组训练数据以及可选地预训练的AI模型的的第一数据。在方框2362,DP加速器还通过通信链路215从主机系统104接收启用水印内核。在方框2363中,DP加速器通过从一组输入数据或从其它数据对象(例如其它AI模型)继承现有的水印生成新的水印。在方框2364,DP加速器使用训练数据对预训练的模型进行训练,或者生成和训练新的AI模型。在方框2365,在训练期间将继承的水印植入AI模型中。在方框2366中,具有继承的水印的训练过的AI模型通过通信链路215从DP加速器传输至主机系统104。
根据另一方面,可以通过水印内核(例如,继承水印内核)在现有AI模型的推理期间实现继承水印的操作,并将水印植入到AI模型推理的输出数据中。因此,无需对AI模型或DP加速器进行修改来生成具有植入的AI模型数字权利的输出,例如,证明用于生成推理输出的AI模型来自授权实体。
回到图3,根据一个实施方式,DP加速器105通过通信链路215从主机104接收表示一组输入数据和/或先前训练过或生成的人工智能(AI)模型的第一数据。DP加速器105还从主机104接收水印内核(例如,继承水印内核)。在DP加速器105内针对AI模型和输入数据执行水印内核。水印内核在执行时基于从输入数据或AI模型中的一个中继承的现有的水印生成新的水印、使用AI模型执行人工智能推理以生成输出数据,以及将新的水印植入到输出数据中。然后,将具有植入的水印的输出数据返回到主机104。
图17是示出根据一个实施方式的在现有人工智能(AI)模型的推理输出中植入水印的处理流程的处理流程图。参考图17,在方框2401,主机104生成能够继承水印的水印内核(例如,继承水印内核)。主机104经由路径2402向DP加速器105发送水印内核、现有AI模型和一组输入数据。在方框2404,水印内核从AI模型或其它数据对象继承水印。在方框2405,使用一组输入数据执行AI模型以执行推理。在方框2406,水印内核将继承的水印植入到在方框2405处得到的推理输出中。将具有植入的水印的推理输出数据经由路径2407发送回主机104。
图18是示出根据一个实施方式的在人工智能(AI)模型推理期间继承和植入水印的示例过程的流程图。该过程可以通过可以包括软件、硬件或其组合的处理逻辑来执行。执行水印内核(例如,继承水印内核)以通过从现有的水印或数据对象继承水印来生成水印。使用输入数据执行AI模型以从AI模型生成推理输出数据。将水印植入到推理输出数据中,得到具有植入推理输出数据中的继承水印的AI模型推理。
现在参考图19,过程2420示出了从数据对象继承水印、使用人工智能(AI)模型执行推理以及将继承的水印植入到AI模型的推理(输出)中的过程。在方框2421,DP加速器105通过通信链路215从主机系统104接收先前训练过的AI模型和一组输入数据。在方框2422,DP加速器105还从主机系统104接收水印内核,其中水印内核能够从数据对象继承水印。在方框2423,在DP加速器105内执行水印内核,以通过继承现有的水印来生成新的水印。在方框2424,使用从主机系统104接收的AI模型执行人工智能推理,以生成推理输出数据。在方框2425,将水印植入到推理输出数据中。在方框2426,将具有植入的水印的输出数据传输回主机104。
关于上述任一方面,在一个实施方式中,水印可以植入到人工智能模型的一层或多层的一个或多个节点中。例如,可以在一个或多个权重变量或偏置变量中植入水印。替代地,可以创建一个或多个节点(例如,未被人工智能模型使用或不太可能被人工智能模型使用的伪节点)来植入或存储水印。主机处理器可以是中央处理单元(CPU),DP加速器可以是通过总线或互连线联接到CPU的通用处理单元(GPU)。DP加速器可以以专用集成电路(ASIC)、现场可编程门阵列(FPGA)设备或其它形式的集成电路(IC)的形式实现。替代地,主机处理器可以是主数据处理系统的一部分,而DP加速器可以是多个作为辅助系统的分布式系统中的一个,主系统可以通过网络远程卸载辅助系统的数据处理任务(诸如作为服务或SaaS系统的软件的云计算系统、或作为服务或PaaS系统的平台)。主机处理器和DP加速器之间的链路可以是外围部件互连快速(PCIe)链路或诸如以太网连接的网络连接。
图20是示出可与本公开的一个实施方式一起使用的数据处理系统1500的示例的框图。例如,系统1500可以表示执行上文所述的任何过程或方法的上文所述的任何数据处理系统,例如,在主机装置104与数据处理(DP)加速器105之间建立安全通信;由DP加速器运行从主机装置104接收的人工智能(AI)模型的代码内核;在主机装置104上执行应用;在主机装置104上执行API和驱动程序;如上针对DP加速器105所描述的,运行加密/解密逻辑、种子生成器、加密/解密密钥生成器等。系统1500可以包括多个不同的组件。这些组件可以实现为集成电路(ICs)、部分集成电路、离散的电子设备、或其它适合于电路板(例如计算机系统的主板或插件卡)的模块、或以其它方式并入计算机系统的机箱中的组件。
还应注意,系统1500旨在示出计算机系统的许多部件的高阶视图。然而,应当理解的是,某些实施方式中可以具有附加的部件,此外,其它实施方式中可以具有所示部件的不同布置。系统1500可以表示台式计算机、膝上型计算机、平板计算机、服务器、移动电话、媒体播放器、个人数字助理(PDA)、智能手表、个人通信器、游戏装置、网络路由器或集线器、无线接入点(AP)或中继器、机顶盒或其组合。此外,虽然仅示出了单个机器或系统,但是术语“机器”或“系统”还应当被理解为包括单独地或共同地执行一个(或多个)指令集以执行本文所讨论的任何一种或多种方法的机器或系统的任何集合。
在一个实施方式中,系统1500包括通过总线或互连件1510连接的处理器1501、存储器1503以及装置1505至1508。处理器1501可以表示其中包括单个处理器内核或多个处理器内核的单个处理器或多个处理器。处理器1501可以表示一个或多个通用处理器,诸如,微处理器、中央处理单元(CPU)等。更具体地,处理器1501可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、或实施其它指令集的处理器、或实施指令集组合的处理器。处理器1501还可以是一个或多个专用处理器,诸如,AI处理器、GPU、ASIC、蜂窝或基带处理器、FPGA、DSP、网络处理器、图形处理器、通信处理器、加密处理器、协处理器、嵌入式处理器、或者能够处理指令的任何其它类型的逻辑。
处理器1501(其可以是低功率多核处理器套接口,诸如超低电压处理器)可以充当用于与所述系统的各种部件通信的主处理单元和中央集线器。这种处理器可以实施为片上系统(SoC)。处理器1501被配置成执行用于执行本文所讨论的操作和步骤的指令。系统1500还可以包括与可选的图形子系统1504通信的图形接口,图形子系统1504可以包括显示控制器、图形处理器和/或显示装置。
处理器1501可以与存储器1503通信,存储器1503在一个实施方式中可以经由多个存储器装置实施以提供给定量的系统存储。存储器1503可以包括一个或多个易失性存储(或存储器)装置,诸如,随机存取存储器(RAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)或者其它类型的存储装置。存储器1503可以存储包括由处理器1501或任何其它装置执行的指令序列的信息。例如,各种操作系统、装置驱动程序、固件(例如,输入输出基本系统或BIOS)和/或应用的可执行代码和/或数据可以加载到存储器1503中并由处理器1501执行。操作系统可以是任何类型的操作系统,例如,机器人操作系统(ROS)、来自公司的操作系统、来自苹果公司的来自公司的LINUX、UNIX,或者其它实时或嵌入式操作系统。
系统1500还可以包括IO装置,诸如装置1505至1508,包括网络接口装置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)来实施。然而,在其它实施方式中,大容量存储设备可以主要使用硬盘驱动器(HDD)来实施,其中较小量的SSD存储设备充当SSD高速缓存以在断电事件期间实现上下文状态以及其它此类信息的非易失性存储,从而使得在系统活动重新启动时能够实现快速通电。另外,闪存装置可以例如经由串行外围接口(SPI)联接到处理器1501。这种闪存装置可以提供系统软件的非易失性存储,所述系统软件包括所述系统的BIOS以及其它固件。
存储装置1508可以包括计算机可读存储介质1509(也被称为机器可读存储介质或计算机可读介质),其上存储有体现本文所述的任何一种或多种方法或功能的一个或多个指令集或软件(例如,模块、单元和/或逻辑1528)。处理模块/单元/逻辑1528可以表示上述部件中的任一个,例如,用户应用程序205、运行时库206、主机装置104的驱动器209、真随机数生成器273、密钥管理器272、水印单元276、DP加速器105上的密码引擎274。处理模块/单元/逻辑1528还可以在其由数据处理系统1500、存储器1503和处理器1501执行期间完全地或至少部分地驻留在存储器1503内和/或处理器1501内,数据处理系统1500、存储器1503和处理器1501也构成机器可访问的存储介质。处理模块/单元/逻辑1528还可以通过网络经由网络接口装置1505进行传输或接收。
计算机可读存储介质1509也可以用来永久性地存储以上描述的一些软件功能。虽然计算机可读存储介质1509在示例性实施方式中被示为单个介质,但是术语“计算机可读存储介质”应当被认为包括存储所述一个或多个指令集的单个介质或多个介质(例如,集中式或分布式数据库和/或相关联的高速缓存和服务器)。术语“计算机可读存储介质”还应当被认为包括能够存储或编码指令集的任何介质,所述指令集用于由机器执行并且使得所述机器执行本公开的任何一种或多种方法。因此,术语“计算机可读存储介质”应当被认为包括但不限于固态存储器以及光学介质和磁性介质,或者任何其它非暂时性机器可读介质。
本文所述的处理模块/单元/逻辑1528、部件以及其它特征可以实施为分立硬件部件或集成在硬件部件(诸如,ASICS、FPGA、DSP或类似装置)的功能中。此外,处理模块/单元/逻辑1528可以实施为硬件装置内的固件或功能电路。此外,处理模块/单元/逻辑1528可以以硬件装置和软件部件的任何组合来实施。
应注意,虽然系统1500被示出为具有数据处理系统的各种部件,但是并不旨在表示使部件互连的任何特定架构或方式;因为此类细节和本公开的实施方式没有密切关系。还应当认识到,具有更少部件或可能具有更多部件的网络计算机、手持计算机、移动电话、服务器和/或其它数据处理系统也可以与本公开的实施方式一起使用。
前述详细描述中的一些部分已经根据在计算机存储器内对数据位的运算的算法和符号表示而呈现。这些算法描述和表示是数据处理领域中的技术人员所使用的方式,以将他们的工作实质最有效地传达给本领域中的其他技术人员。本文中,算法通常被认为是导致所期望结果的自洽操作序列。这些操作是指需要对物理量进行物理操控的操作。
然而,应当牢记,所有这些和类似的术语均旨在与适当的物理量关联,并且仅仅是应用于这些量的方便标记。除非在以上讨论中以其它方式明确地指出,否则应当了解,在整个说明书中,利用术语(诸如所附权利要求书中所阐述的术语)进行的讨论是指计算机系统或类似电子计算装置的动作和处理,所述计算机系统或电子计算装置操控计算机系统的寄存器和存储器内的表示为物理(电子)量的数据,并将所述数据变换成计算机系统存储器或寄存器或者其它此类信息存储设备、传输或显示装置内类似地表示为物理量的其它数据。
本公开的实施方式还涉及用于执行本文中的操作的设备。这种计算机程序被存储在非暂时性计算机可读介质中。机器可读介质包括用于以机器(例如,计算机)可读的形式存储信息的任何机构。例如,机器可读(例如,计算机可读)介质包括机器(例如,计算机)可读存储介质(例如,只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储介质、光存储介质、闪存存储器装置)。
前述附图中所描绘的过程或方法可以由处理逻辑来执行,所述处理逻辑包括硬件(例如,电路、专用逻辑等)、软件(例如,体现在非暂时性计算机可读介质上)或两者的组合。尽管所述过程或方法在上文是依据一些顺序操作来描述的,但是应当了解,所述操作中的一些可以按不同的顺序执行。此外,一些操作可以并行地执行而不是顺序地执行。
本公开的实施方式并未参考任何特定的编程语言进行描述。应认识到,可以使用多种编程语言来实施如本文描述的本公开的实施方式的教导。
在以上的说明书中,已经参考本公开的具体示例性实施方式对本发明的实施方式进行了描述。将显而易见的是,在不脱离所附权利要求书中阐述的本发明的更宽泛精神和范围的情况下,可以对本公开作出各种修改。因此,应当在说明性意义而不是限制性意义上来理解本说明书和附图。
Claims (17)
1.一种由数据处理DP加速器执行的计算机实现的方法,所述方法包括:
在所述DP加速器处,接收来自主机处理器的表示一组训练数据的第一数据;
在所述DP加速器处,接收来自所述主机处理器的水印内核;
在所述DP加速器内对人工智能AI模型执行所述水印内核,其中,所述水印内核在被执行时配置为:
通过继承从所述主机处理器接收的现有的水印,来生成新的水印,
使用所述一组训练数据来训练所述AI模型,以及
在所述AI模型的训练期间将所述新的水印植入到所述AI模型中;以及
将表示具有植入的新的水印的经训练的AI模型的第二数据传输至所述主机处理器;
其中,所述AI模型的水印用于指示所述AI模型的源,不影响由所述AI模型生成的推理。
2.根据权利要求1所述的方法,还包括:
接收预训练的AI模型;以及
其中,所述训练步骤是针对所述预训练的AI模型执行的。
3.根据权利要求1所述的方法,其中,将所述新的水印植入到所述AI模型中包括:将所述新的水印嵌入到所述AI模型的一个或多个节点中。
4.根据权利要求3所述的方法,其中,所述新的水印存储在所述AI模型的所述一个或多个节点的一个或多个权重变量中。
5.根据权利要求3所述的方法,其中,所述新的水印存储在所述AI模型的所述一个或多个节点的一个或多个偏置变量中。
6.根据权利要求1所述的方法,其中,将所述新的水印植入到所述AI模型中包括:在训练期间生成所述AI模型的、用于存储所述新的水印的一个或多个附加节点。
7.根据权利要求1所述的方法,其中,所述主机处理器是中央处理单元CPU,以及所述DP加速器是通用处理单元GPU。
8.根据权利要求1所述的方法,其中,所述主机处理器与所述DP加速器通过包括外围部件互连快速PCIe链路的链路通信。
9.一种数据处理DP加速器,包括:
接口,从主机处理器接收表示一组训练数据的第一数据以及接收水印内核;以及
内核执行器,在所述DP加速器内对人工智能AI模型执行所述水印内核,其中,所述水印内核在被执行时配置为:
通过继承从所述主机处理器接收的现有的水印,来生成新的水印,
使用所述一组训练数据来训练所述AI模型,以及
在所述AI模型的训练期间将所述新的水印植入到所述AI模型中,
其中,表示具有植入的新的水印的经训练的AI模型的第二数据被传输至所述主机处理器;所述AI模型的水印用于指示所述AI模型的源,不影响由所述AI模型生成的推理。
10.根据权利要求9所述的DP加速器,其中,在将所述新的水印植入到所述AI模型中时,所述内核执行器配置为将所述新的水印嵌入到所述AI模型的一个或多个节点中。
11.根据权利要求10所述的DP加速器,其中,所述新的水印存储在所述AI模型的所述一个或多个节点的一个或多个权重变量中。
12.根据权利要求10所述的DP加速器,其中,所述新的水印存储在所述AI模型的所述一个或多个节点的一个或多个偏置变量中。
13.根据权利要求9所述的DP加速器,其中,将所述新的水印植入到所述AI模型中包括:在训练期间生成所述AI模型的、用于存储所述新的水印的一个或多个附加节点。
14.根据权利要求9所述的DP加速器,其中,所述主机处理器是中央处理单元CPU,以及所述DP加速器是通用处理单元GPU。
15.根据权利要求9所述的DP加速器,其中,所述主机处理器和所述DP加速器通过包括外围部件互连快速PCIe链路的链路进行通信。
16.一种存储有指令的非暂时性机器可读介质,当由数据处理DP加速器执行所述指令时,使得所述DP加速器执行操作,所述操作包括:
在所述DP加速器处,接收来自主机处理器的表示一组训练数据的第一数据;
在所述DP加速器处,接收来自所述主机处理器的水印内核;
在所述DP加速器内对人工智能AI模型执行所述水印内核,其中,所述水印内核在被执行时配置为:
通过继承从所述主机处理器接收的现有的水印,来生成新的水印,
使用所述一组训练数据来训练所述AI模型,以及
在所述AI模型的训练期间将所述新的水印植入到所述AI模型中;以及
将表示具有植入的新的水印的经训练的AI模型的第二数据传输至所述主机处理器;
其中,所述AI模型的水印用于指示所述AI模型的源,不影响由所述AI模型生成的推理。
17.根据权利要求16所述的机器可读介质,其中,将所述新的水印植入到所述AI模型中包括:将所述新的水印嵌入到所述AI模型的一个或多个节点中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/598,281 US11709712B2 (en) | 2019-10-10 | 2019-10-10 | Method and system for artificial intelligence model training using a watermark-enabled kernel for a data processing accelerator |
US16/598,281 | 2019-10-10 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112650980A CN112650980A (zh) | 2021-04-13 |
CN112650980B true CN112650980B (zh) | 2024-07-26 |
Family
ID=75346679
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010512170.3A Active CN112650980B (zh) | 2019-10-10 | 2020-06-08 | 数据处理加速器及由数据处理加速器执行的计算机实现的方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11709712B2 (zh) |
CN (1) | CN112650980B (zh) |
Families Citing this family (2)
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 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9607131B2 (en) | 2010-09-16 | 2017-03-28 | Verance Corporation | Secure and efficient content screening in a networked environment |
US8750630B2 (en) * | 2012-07-13 | 2014-06-10 | International Business Machines Corporation | Hierarchical and index based watermarks represented as trees |
US9996891B2 (en) | 2015-06-10 | 2018-06-12 | Deluxe Media Inc. | System and method for digital watermarking |
CN105245398A (zh) * | 2015-09-07 | 2016-01-13 | 上海交通大学 | 面向海量loc信号处理的多通道并行检测系统 |
US10402527B2 (en) * | 2017-01-04 | 2019-09-03 | Stmicroelectronics S.R.L. | Reconfigurable interconnect |
WO2018131405A1 (ja) * | 2017-01-12 | 2018-07-19 | Kddi株式会社 | 情報処理装置、方法及びコンピュータ可読記憶媒体 |
JP6823523B2 (ja) * | 2017-03-31 | 2021-02-03 | Kddi株式会社 | 情報処理装置、情報処理方法、及びプログラム |
JP6657137B2 (ja) * | 2017-03-31 | 2020-03-04 | Kddi株式会社 | 情報処理装置、情報処理方法、及びプログラム |
US11775313B2 (en) * | 2017-05-26 | 2023-10-03 | Purdue Research Foundation | Hardware accelerator for convolutional neural networks and method of operation thereof |
US10789667B2 (en) | 2017-06-15 | 2020-09-29 | Treatstock Inc. | Method and apparatus for digital watermarking of three dimensional object |
KR102606825B1 (ko) * | 2017-09-13 | 2023-11-27 | 삼성전자주식회사 | 뉴럴 네트워크 모델을 변형하는 뉴럴 네트워크 시스템, 이를 포함하는 어플리케이션 프로세서 및 뉴럴 네트워크 시스템의 동작방법 |
US11163861B2 (en) * | 2017-12-29 | 2021-11-02 | Texas Instruments Incorporated | Machine learning model with watermarked weights |
NL2020424B1 (en) | 2018-02-12 | 2019-08-19 | Jean Baptist Van Oldenborgh Marc | Method for protecting the intellectual property rights of a trained machine learning network model using digital watermarking by adding, on purpose, an anomaly to the training data. |
US11972408B2 (en) * | 2018-03-29 | 2024-04-30 | The Regents Of The University Of California | Digital watermarking of machine learning models |
US10728091B2 (en) * | 2018-04-04 | 2020-07-28 | EMC IP Holding Company LLC | Topology-aware provisioning of hardware accelerator resources in a distributed environment |
US11315013B2 (en) * | 2018-04-23 | 2022-04-26 | EMC IP Holding Company LLC | Implementing parameter server in networking infrastructure for high-performance computing |
CN112005237B (zh) | 2018-04-30 | 2024-04-30 | 谷歌有限责任公司 | 安全区中的处理器与处理加速器之间的安全协作 |
US11163860B2 (en) * | 2018-06-04 | 2021-11-02 | International Business Machines Corporation | Protecting deep learning models using watermarking |
WO2020012061A1 (en) | 2018-07-12 | 2020-01-16 | Nokia Technologies Oy | Watermark embedding techniques for neural networks and their use |
US11669372B2 (en) * | 2018-12-13 | 2023-06-06 | Intel Corporation | Flexible allocation of compute resources |
US11676003B2 (en) | 2018-12-18 | 2023-06-13 | Microsoft Technology Licensing, Llc | Training neural network accelerators using mixed precision data formats |
US11500970B2 (en) * | 2019-08-02 | 2022-11-15 | Nxp B.V. | Machine learning model and method for determining if the machine learning model has been copied |
US11019407B2 (en) * | 2019-08-27 | 2021-05-25 | Synamedia Limited | Systems and methods for providing watermarked content |
-
2019
- 2019-10-10 US US16/598,281 patent/US11709712B2/en active Active
-
2020
- 2020-06-08 CN CN202010512170.3A patent/CN112650980B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
US11709712B2 (en) | 2023-07-25 |
US20210109792A1 (en) | 2021-04-15 |
CN112650980A (zh) | 2021-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11436305B2 (en) | Method and system for signing an artificial intelligence watermark using implicit data | |
CN112650981B (zh) | 数据处理加速器及由数据处理加速器执行的计算机实现的方法 | |
CN112650984B (zh) | 数据处理加速器及由数据处理加速器执行的计算机实现的方法 | |
CN112650982B (zh) | 数据处理加速器及由数据处理加速器执行的计算机实现的方法 | |
CN112528242B (zh) | 使用用于数据处理加速器的水印算法配置水印单元的系统和方法 | |
CN112528244A (zh) | 用于由数据处理加速器处理数据的方法及数据处理加速器 | |
CN112650988A (zh) | 使用内核加密数据的方法和系统 | |
US11582260B2 (en) | Systems and methods for verifying a watermark of an AI model for a data processing accelerator | |
CN112528245A (zh) | 用于由数据处理加速器处理数据的方法及数据处理加速器 | |
CN112650980B (zh) | 数据处理加速器及由数据处理加速器执行的计算机实现的方法 | |
CN112650983B (zh) | 数据处理加速器及由数据处理加速器执行的计算机实现的方法 | |
CN112650986B (zh) | 用于数据处理加速器的水印单元 | |
CN112650987B (zh) | 使用内核签名人工智能水印的方法和系统 | |
CN112650990B (zh) | 使用查询来签名人工智能水印的方法和系统 | |
US11637697B2 (en) | Method and system for signing output using a kernel | |
US11457002B2 (en) | Method and system for encrypting data using a command |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20210930 Address after: California, USA Applicant after: Baidu (USA) Co.,Ltd. Applicant after: Kunlun core (Beijing) Technology Co.,Ltd. Address before: California, USA Applicant before: Baidu (USA) Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |