您好!欢迎光临某某钣金加工有限公司网站!
钣金加工一站式制造供应商
设计定制、生产加工、整机装配、设备接线
客户咨询服务热线:
400-123-4567
HASH GAME - Online Skill Game ET 300使用用于数据处理加速器的水印算法配置水印单元的系统和方法与流程
您的位置: 首页 > 新闻中心 > hashgames > HASH GAME - Online Skill Game ET 300使用用于数据处理加速器的水印算法配置水印单元的系统和方法与流程

HASH GAME - Online Skill Game ET 300使用用于数据处理加速器的水印算法配置水印单元的系统和方法与流程

作者:小编    发布时间:2025-02-28 11:37:20     浏览次数 :


  HASH GAME - Online Skill Game GET 300

HASH GAME - Online Skill Game GET 300使用用于数据处理加速器的水印算法配置水印单元的系统和方法与流程

  机器学习模型近来已被广泛地利用,因为人工智能(ai)技术已被部署在诸如图像分类或自主驾驶的各种领域中。类似于软件应用的可执行图像或二进制图像,机器学习模型(也称为人工智能(ai)模型)在经过训练后可以基于特征集执行推断以对特征进行分类。结果,机器学习模型可以是“便携的”且可以被利用而无需认证。目前对于机器学习模型缺乏有效的数字版权保护。另外,使用委托给诸如处理(dp)加速器或远程系统的辅助处理系统的ai模型进行的处理任务,还缺乏证据证明由dp加速器系统产生的结果受“信任根”系统保护。

  在本公开的实施例的第二方面,提供了一种用于通过数据处理dp加速器处理数据的装置,包括:确定模块,用于响应于由数据处理dp加速器接收到的请求,请求由应用发送以由dp加速器将水印算法应用于人工智能ai模型,确定水印算法在dp加速器的水印单元处不可用;发送模块,用于发送针对水印算法的请求;接收模块,用于由dp加速器接收水印算法;以及配置模块,用于在运行时使用水印算法配置水印单元,用于使水印算法将由dp加速器使用。

  以下实施例涉及使用数据处理(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模型的训练纪元(trainingepoch)(或其他训练参数)。在一些实施例中,水印可以是ai模型内的权重的子集,当其被从ai模型中提取时包括水印。在实施例中,主机设备可以将特定输入发送到dp加速器,当dp加速器使用特定输入执行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中的每个之间交换的数据被保护以免受来自恶意软件的攻击。

  图2是示出根据一个实施例的与数据处理(dp)加速器通信的主机的示例的框图。在一个实施例中,系统200在对dp加速器进行或不进行硬件修改的情况下提供一种用于在主机加速器和dp加速器之间的安全通信的保护方案。参考图2,主机机器或服务器104可以被描绘为待被保护以免受入侵的具有一层或多层的系统,一层或多层诸如用户应用203、运行时库205、驱动器209、操作系统211和硬件213(例如,安全模块(可信平台模块(tpm)/中央处理单元(cpu))。主机机器104通常是cpu系统,其可以控制和管理主机系统或dp加速器105-107上的执行作业。为了保护dp加速器与主机之间的通信信道,可能需要不同的组件来保护易于受到数据入侵或攻击的主机系统的不同层。例如,可信执行环境(tee)可以保护用户应用层和运行时库层免受数据入侵。

  参考图2,在一个实施例中,主机系统104将包括具有一个或多个cpu213的硬件,cpu213在主机机器104内配备有安全模块(诸如可信平台模块(tpm))。tpm是端点设备上的专用芯片,其存储特定于主机系统用于硬件认证的密码密钥(例如rsa密码密钥)。每个tpm芯片可以包含被称为签注密钥(ek)或签注证书(ec)的一个或多个rsa密钥对(例如,公共和私有密钥对),即根密钥。密钥对被维护在tpm芯片内部,并且不能被软件访问。然后,固件和软件的关键部分可以在其执行之前被ek或ec进行散列,以保护系统免受未授权的固件和软件修改。因此,主机机器上的tpm芯片可以用作安全启动的信任根。

  在一个实施例中,主机104包括可信执行环境(tee)201,其被强制由tpm/cpu213保护。tee是安全环境。tee可以保证在tee内部加载的代码和数据关于机密性和完整性得到保护。tee的示例可以是intel软件保护扩展(sgx)或amd安全加密虚拟化(sev)。intelsgx和/或amdsev可以包括中央处理单元(cpu)指令代码集,其允许用户级代码分配cpu的存储器的私有区域,私有区域被保护以免受以较高权限级运行的进程的影响。这里,tee201可以保护用户应用203和运行时库205,其中用户应用203和运行时库205可以分别由端用户和dp加速器供应商提供。这里,运行时库205可以将api调用转换为用于dp加速器的执行、配置和/或控制的命令。在一个实施例中,运行时库205通过提供预定的(例如,预定义的)内核集用于由用户应用执行。

  安装之后,然后系统可以通过基于tpm的安全启动来启动。tpm安全启动确保在提供加速器服务的内核空间中仅开启签名/认证的操作系统以及加速器驱动器。在一个实施例中,可以通过管理程序加载操作系统。注意,管理程序或虚拟机管理器是创建和运行虚拟机的计算机软件、固件或硬件。注意,内核空间是声明性区域或范围,其中内核(即,用于执行的预定的(例如,预定义的)功能集)被识别为向用户应用提供功能和服务。如果系统的完整性受到损害,tpm安全启动可能无法启动,而是关闭系统。

  在安全启动之后,运行时库205运行并创建tee201,其将运行时库205放置在与cpu213相关联的可信存储空间中。接下来,在tee201中开启用户应用203。在一个实施例中,用户应用203和运行时库205被静态链接并一起开启。在另一个实施例中,首先在tee中开启运行时库205,然后在tee201中动态加载用户应用203。在另一个实施例中,首先在tee中开启用户应用203,然后在tee201中动态加载运行时库205。注意,静态链接库是在编译时链接到应用的库。动态加载可以由动态链接器执行。动态链接器加载并链接共享库,用于在运行时运行用户应用。这里,tee201内的用户应用203和运行时库205在运行时彼此可见,例如,所有过程数据彼此可见。然而拒绝外部访问tee。

  在另一个实施例中,用户应用可以仅从由运行时库205预先确定的内核集中调用内核。在另一个实施例中,用户应用203和运行时库205使用无侧信道算法被硬化,以防御侧信道攻击,诸如基于缓存的侧信道攻击。侧信道攻击是基于从计算机系统的实现中获得的信息的任何攻击,而不是基于实现的算法本身的弱点(例如,密码分析和软件错误)。侧信道攻击的示例包括缓存攻击,缓存攻击是基于攻击者监视虚拟化环境或云环境中的共享物理系统的缓存的能力的攻击。硬化可以包括屏蔽缓存、由算法生成的待放置在缓存上的输出。接下来,当用户应用完成执行时,用户应用终止其执行并从tee退出。

  总之,系统200为dp加速器提供多个保护层(诸如,诸如机器学习模型、训练数据和推断输出的数据通信)以免受数据机密性和完整性的损失。系统200可以包括基于tpm的安全启动保护层、tee保护层和内核验证/核实层。此外,系统200可以通过确保主机机器上的其他应用以存储器安全编程语言实现,提供存储器安全用户空间,这可以通过消除潜在的存储器损坏/漏洞来进一步消除攻击。此外,系统200可以包括使用无侧信道算法的应用,以便防御诸如基于缓存的侧信道攻击的侧信道攻击。

  图3是示出根据一个实施例的与数据处理加速器通信的主机的框图。系统300可以是图2的系统200的一部分的详细视图。参考图3,在一个实施例中,主机系统104包括运行时库205,其包括主机信道管理器(hcm)259。在一个实施例中,hcm259包括认证模块251、终止模块252、密钥管理器253、(一个或多个)密钥存储254和密码引擎255。认证模块251可以对在主机服务器104上运行的用户应用进行认证,以获得访问或使用dp加速器的资源的许可。终止模块252可以终止连接(例如,将终止与该连接相关联的信道)。密钥管理器253可以管理(例如,创建或销毁)非对称密钥对或对称密钥,用于对不同安全数据交换信道的一个或多个数据包进行加密/解密。这里,每个用户应用(作为图2的用户应用203的一部分)可以一对多关系对应或映射到不同安全数据交换信道,并且每个数据交换信道可以对应于dp加速器。(一个或多个)密钥存储254可以存储加密非对称密钥对或对称密钥。密码引擎255可以对用于通过安全信道中的任一个交换的数据的数据包进行加密或解密。

  参考图3,在一个实施例中,dp加速器105包括acm270(类似地,dp加速器107包括290)和安全单元(su)275。安全单元275可以包括密钥管理器271、(一个或多个)密钥存储272、线可以管理(例如,生成、安全保持和/或销毁)非对称密钥对或对称密钥。(一个或多个)密钥存储库272可以存储密码非对称密钥对或对称密钥。线可以生成用于密码的线可以加密或解密密钥信息或用于数据交换的数据包。安全单元275可以包含被称为签注密钥(ek)或签注证书(ec)的一个或多个rsa密钥对(例如,公共和私有密钥对),即根密钥。密钥对被维护在安全单元275的内部,并且不能被软件访问。然后,安全单元可以使用ek或ec加密数据或生成其他安全密钥(这些密钥又可以被用来加密数据)。本质上,出于密码目的,将根证书(ek/ec)硬化到安全单元275上。在一些实施例中,acm270和su275是集成模块。

  在一个实施例中,dp加速器105包括水印单元276。水印单元276可以是基于硬件的模块,其可以从人工智能(ai)模型(也称为“机器学习模型”)中识别或提取水印。在实施例中,水印单元276包括生成/嵌入模块260。生成/嵌入模块260可以生成水印,并将水印嵌入/植入到人工智能(ai)模型上。在实施例中,可以在ai模型的训练之前、之后或期间将水印植入到ai模型中。水印单元276还可以在ai模型的推断期间将水印植入(或嵌入)到ai模型上。在实施例中,水印单元276的功能可以可替换地使用从主机104接收到的一个或多个代码的内核实现。

  图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模型。

  图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模型的签名。

  在运行时,用户可以经由主机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加速器使用。

  验证类型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模型对的推断准确性和兼容性。

  图12是示出根据一个实施例的由dp加速器执行的方法的流程图。可以由处理逻辑执行过程1200,处理逻辑可以包括软件、硬件或其组合。例如,过程1200可以由图10的dp加速器105执行。参考图12,在框1201处,处理逻辑还将水印嵌入到一个或多个ai模型中,并且在框1202处,基于兼容性评分标准针对配对兼容性对ai模型和水印进行评分。在框1203处,处理逻辑确定不具有水印的ai模型的推断准确性。在框1204处,处理逻辑确定嵌入有水印的ai模型的推断准确性。在框1205处,处理逻辑确定用于配对的推理推断准确性的改变(降级或提升)。

  图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加速器不同的策略集或相同的策略集。

  图15是示出根据一个实施例的由dp加速器执行的方法的流程图。可以由处理逻辑执行过程1550,处理逻辑可以包括软件、硬件或其组合。例如,过程1550可以由图13的dp加速器105执行。参考图15,在框1551处,处理逻辑从应用接收推断请求。在框1552处,处理逻辑通过数据处理(dp)加速器从具有水印的人工智能(ai)模型中提取水印。在框1553处,处理逻辑基于策略验证提取的水印。在框1554处,处理逻辑将具有水印的ai模型应用于推断输入集以生成推断结果。在框1555处,处理逻辑将验证证明和推断结果发送给应用。

  图16是示出根据一个实施例的由主机的应用执行的方法的流程图。可以由处理逻辑执行过程1600,处理逻辑可以包括软件、硬件或其组合。例如,过程1600可以由用户的应用执行,诸如图3的主机服务器104上托管的应用。参考图16,在框1601处,处理逻辑通过应用将推断请求发送到数据处理(dp)加速器,请求通过将具有水印的人工智能(ai)模型应用于推断输入以生成推断结果,其中该请求包括由dp加速器从具有水印的ai模型中提取水印以及基于策略验证提取的水印的请求。在框1604处,处理逻辑通过应用接收验证证明和/或推断结果。

  注意,可以以软件、硬件或其组合实现上面示出和描述的组件中的一些或全部。例如,这样的组件可以被实现为安装并存储在永久存储设备中的软件,软件可以由处理器(未示出)加载并在存储器中执行以执行整个本申请所述过程或操作。可替换地,这样的组件可以被实现为被编程或嵌入到专用硬件(诸如集成电路(例如特定应用的ic或asic)、数字信号处理器(dsp)或现场可编程门阵列(fpga))中的可执行代码,其可以经由对应驱动器和/或操作系统从应用进行访问。此外,可以将这样的组件实现为处理器或处理器核中的特定硬件逻辑,作为可由软件组件经由一个或多个特定指令访问的指令集的一部分。

  还应注意的是,系统1500意图示出计算机系统的许多组件的高级视图。然而,应当理解的是,在某些实现方式中可以存在附加组件,而且此外,在其他实现方式中可以出现所示组件的不同布置。系统1500可以表示台式电脑、膝上型计算机、平板电脑、服务器、移动电话、媒体播放器、个人数字助理(pda)、智能手表、个人通信器、游戏设备、网络路由器或集线器、无线接入点(ap)或中继器、机顶盒或其组合。此外,虽然仅示出单个机器或系统,但是术语“机器”或“系统”也应被认为包括单独地或共同地执行指令集(或多个指令集)以执行本文讨论的任何一种或多种方法的机器或系统的任何集合。

  在一个实施例中,系统1500包括经由总线。处理器1501可以表示其中包括单个处理器核或多个处理器核的单个处理器或多个处理器。处理器1501可以表示一个或多个通用处理器,诸如微处理器、中央处理单元(cpu)等。更具体地,处理器1501可以是复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器、或者实现其他指令集的处理器、或者实现指令集的组合的处理器。处理器1501也可以是一个或多个专用处理器,诸如专用集成电路(asic)、蜂窝或基带处理器、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器、图形处理器、网络处理器、通信处理器、密码处理器、协处理器、嵌入式处理器或能够处理指令的任何其他类型的逻辑。

  处理器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可以包括音频设备。音频设备可以包括扬声器和/或麦克风,以促进启用语音的功能,诸如语音识别、语音复制、数字记录和/或电线还可以包括(一个或多个)通用串行总线(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示出为单个介质,术语“计算机可读存储介质”应被认为包括存储一个或多个指令集的单个介质或多个介质(例如,集中式或分布式数据库、和/或关联的缓存和服务器)。术语“计算机可读存储介质”也应被认为包括能够存储或编码用于由机器执行的指令集以及使机器执行本发明的任何一种或多种方法的任何介质。因此,术语“计算机可读存储介质”应被认为包括但不限于固态存储器、以及光和磁介质、或任何其他非暂时性机器可读介质。