保护推理引擎免受模型检索攻击的制作方法

文档序号:19746353发布日期:2020-01-21 18:30阅读:209来源:国知局
保护推理引擎免受模型检索攻击的制作方法

实施例总体上涉及机器学习系统。更具体而言,实施例涉及保护推理引擎免受模型检索攻击。



背景技术:

推理引擎可以包括机器学习(ml)模型。可以训练模型以响应于输入数据集而提供一个或多个输出。利用合适的模型(例如,神经网络(nn)模型)和训练,推理引擎可以提供人工智能(ai)特征,例如模式识别/预测、图像/对象识别、语音/话语识别等。

附图说明

通过阅读以下说明书和所附权利要求,并通过参考以下附图,实施例的各种优点对于本领域技术人员将是显而易见的,在附图中:

图1是根据实施例的电子处理系统的示例的框图;

图2是根据实施例的半导体封装装置的示例的框图;

图3a至图3c是根据实施例的禁止模型检索的方法的示例的流程图;

图4是根据实施例的模型检索攻击的示例的说明图;

图5a和图5b是根据实施例的训练和推理数据集的示例的说明图;

图6a和图6b是根据实施例的训练和推理数据集的计数与置信度对比的说明曲线图;

图7是根据实施例的推理系统的示例的框图;

图8是根据实施例的流执行器的示例的说明图;

图9是根据实施例的禁止模型检索的方法的另一示例的流程图;

图10是根据实施例的计算设备的示例的框图;

图11是根据实施例的处理器的示例的框图;以及

图12是根据实施例的计算系统的示例的框图。

具体实施方式

现在转向图1,电子处理系统10的实施例可以包括推理引擎11、以及通信地耦合到推理引擎11的模型检索阻止器(mrb)12。mrb12可以包括逻辑单元13,以执行推理引擎11的机器学习模型的输入和输出的运行时分析,基于运行时分析检测指示检索机器学习模型的尝试的活动,并在检测到指示尝试的模型检索的活动时执行一个或多个预防措施。在一些实施例中,逻辑单元13还可以被配置为至少部分地在安全执行环境中运行活动检测和预防措施中的一个或多个。在一些实施例中,逻辑单元13可以被配置为检测与机器学习模型的使用相关的异常。例如,使用异常可以基于以下中的一个或多个:模型检索查询模式和训练模式之间的相似性、训练中的特征集与推理数据集之间的随机分布的差异、以及训练数据集和推理数据集之间的分类的统计分布之间的差异。在一些实施例中,逻辑单元13还可以被配置为基于检测到的异常在机器学习模型中的一个或多个流执行点处实行流。例如,一个或多个预防措施可以包括机器学习模型的流的中断、机器学习模型的执行中的延迟的引入、机器学习模型的输出的修改、与模型检索尝试相关的信息日志的创建、以及模型检索尝试的通知中的一个或多个。在一些实施例中,mrb12和/或逻辑单元13可以位于各种部件中,或者与各种部件共处一处,所述各种部件包括推理引擎11(例如,在相同管芯上)。

上述推理引擎11、mrb12、逻辑单元13和其它系统部件中的每一个的实施例可以以硬件、软件或其任何合适的组合来实施。例如,硬件实施方式可以包括可配置逻辑单元,例如可编程逻辑阵列(pla)、现场可编程门阵列(fpga)、复杂可编程逻辑器件(cpld)、或使用电路技术(例如专用集成电路(asic)、互补金属氧化物半导体(cmos)或晶体管-晶体管逻辑(ttl)技术)的固定功能逻辑硬件、或其任何组合。推理引擎11的实施例可以包括通用处理器、专用处理器、中央处理器单元(cpu)、硬件加速器、图形处理器单元(gpu)、控制器、微控制器等中的一个或多个。

替代地或另外地,这些部件中的全部或部分可以在一个或多个模块中被实施为存储在机器或计算机可读存储介质中的逻辑指令集,所述存储介质例如是要由处理器或计算设备执行的随机存取存储器(ram)、只读存储器(rom)、可编程rom(prom)、固件、闪存等。例如,用于执行部件的操作的计算机程序代码可以以一种或多种操作系统(os)适用/适当的编程语言的任何组合来编写,所述编程语言包括诸如python、perl、java、smalltalk、c++、c#等的面向对象的编程语言、以及诸如“c”编程语言或类似编程语言的传统过程性编程语言。例如,持久存储介质或其它系统存储器可以存储指令集,该指令集在由处理器执行时,使得系统10实施系统10的一个或多个部件、特征或方面(例如,推理引擎、mrb12、逻辑单元13、执行运行时分析、检测指示模型检索尝试的活动、执行预防措施等)。

现在转到图2,半导体封装装置20的实施例可以包括一个或多个衬底21、以及耦合到一个或多个衬底21的逻辑单元22,其中逻辑单元22至少部分地以可配置逻辑单元和固定功能硬件逻辑单元中的一个或多个来实施。耦合到一个或多个衬底21的逻辑单元22可以被配置为执行对推理引擎的机器学习模型的输入和输出的运行时分析,基于运行时分析来检测指示检索机器学习模型的尝试的活动,并在检测到指示尝试的模型检索的活动时执行一个或多个预防措施。在一些实施例中,逻辑单元22还可以被配置为至少部分地在安全执行环境中运行活动检测和预防措施中的一个或多个。在一些实施例中,逻辑单元22可以被配置为检测与机器学习模型的使用相关的异常。例如,使用异常可以基于以下中的一个或多个:模型检索查询模式和训练模式之间的相似性、训练中的特征集与推理数据集之间的随机分布的差异、以及训练数据集和推理数据集之间的分类的统计分布之间的差异。在一些实施例中,逻辑单元22还可以被配置为基于检测到的异常在机器学习模型中的一个或多个流执行点处实行流。例如,一个或多个预防措施可以包括以下中的一个或多个:机器学习模型的流的中断、机器学习模型的执行中的延迟的引入、机器学习模型的输出的修改、与模型检索尝试相关的信息日志的创建、以及模型检索尝试的通知。在一些实施例中,耦合到一个或多个衬底21的逻辑单元22可以包括位于一个或多个衬底21内的晶体管沟道区。

逻辑单元22和装置20的其它部件的实施例可以以硬件、软件或其包括至少部分硬件实施方式的任何合适的组合来实施。例如,硬件实施方式可以包括可配置逻辑单元,例如pla、fpga、cpld或使用电路技术(例如,asic、cmos或ttl技术)的固定功能逻辑硬件、或其任何组合。另外,这些部件的部分可以在一个或多个模块中实施为存储在机器或计算机可读存储介质中的逻辑指令集,所述存储介质例如是要由处理器或计算设备执行的ram、rom、prom、固件、闪存等。例如,用于执行部件的操作的计算机程序代码可以以一种或多种os适用/适当的编程语言的任何组合来编写,所述编程语言包括诸如python、perl、java、smalltalk、c++、c#等的面向对象的编程语言、以及诸如“c”编程语言或类似的编程语言的传统过程性编程语言。

装置20可以实施方法30(图3a至图3c)或本文所讨论的任何实施例的一个或多个方面。在一些实施例中,所示的装置20可以包括一个或多个衬底21(例如,硅、蓝宝石、砷化镓)和耦合到衬底21的逻辑单元22(例如,晶体管阵列和其它集成电路/ic部件)。逻辑单元22可以至少部分地以可配置逻辑单元或固定功能逻辑硬件来实施。在一个示例中,逻辑单元22可以包括定位(例如,嵌入)在衬底21内的晶体管沟道区。因此,逻辑单元22和衬底21之间的界面可以不是突变结。逻辑单元22还可以被认为包括在衬底21的初始晶圆上生长的外延层。

现在转到图3a至图3c,禁止模型检索的方法30的实施例可以包括在框31处执行对推理引擎的机器学习模型的输入和输出的运行时分析,在框32处基于运行时分析检测指示对检索机器学习模型的尝试的活动,以及在框33处在检测到指示尝试的模型检索的活动时执行一个或多个预防措施。方法30的一些实施例还可以包括在框34处至少部分地在安全执行环境中运行活动检测和预防措施中的一个或多个。方法30的一些实施例还可以包括在框35处检测与机器学习模型的使用相关的异常。例如,在框36处使用异常可以基于以下中的一个或多个:模型检索查询模式和训练模式之间的相似性、训练中的特征集与推理数据集之间的随机分布的差异、以及训练数据集和推理数据集之间的分类的统计分布之间的差异。方法30的一些实施例还可以包括在框37处基于检测到的异常在机器学习模型中的一个或多个流执行点处实行流。在本文的任何实施例中,在框38处,一个或多个预防措施可以包括以下中的一个或多个:机器学习模型的流的中断、机器学习模型的执行中的延迟的引入、机器学习模型的输出的修改、与模型检索尝试相关的信息日志的创建、以及模型检索尝试的通知。

例如,方法30的实施例可以在诸如本文中描述的那些的系统、装置、计算机、设备等中实施。更具体地,方法30的硬件实施方式可以包括可配置逻辑单元,例如pla、fpga、cpld或使用诸如asic、cmos或ttl技术的电路技术的固定功能逻辑硬件、或其任何组合。替代地或另外,方法30可以在一个或多个模块中被实施为存储在机器或计算机可读存储介质中的要由处理器或计算设备执行的逻辑指令集,所述存储介质例如ram、rom、prom、固件、闪存等。例如,用于执行部件的操作的计算机程序代码可以以一种或多种os适用/适当的编程语言的任何组合来编写,所述编程语言包括诸如python、perl、java、smalltalk、c++、c#等的面向对象的编程语言以及诸如“c”编程语言或类似编程语言的传统过程性编程语言。

例如,方法30可以在结合下面的示例20至25描述的计算机可读介质上实施。方法30的实施例或部分可以以固件、应用程序(例如,通过应用程序编程接口(api))或在操作系统(os)上运行的驱动程序软件来实施。另外,逻辑指令可能包括汇编指令,指令集架构(isa)指令、机器指令、机器相关指令、微代码、状态设置数据、用于集成电路的配置数据、使电子电路和/或硬件本地的其它结构部件(例如,主机处理器、中央处理单元/cpu、微控制器等)个性化的状态信息。

一些实施例可以有利地提供用于在机器学习(ml)系统中防止模型检索攻击(mra)的技术。例如,ml/深度学习(dl)系统可以围绕模型构建,模型可以指实施将特征映射到分类或实值输出的预测函数的复杂软件(sw)。模型可以从敏感的训练数据导出,可以在安全应用中使用,和/或可以以其它方式具有独立的商业价值。因此,ml/dl模型可以被视为防止盗窃的极有价值的资产。与可能通过在受保护的执行环境中运行而受到保护的一些sw相反,一些ml/dl模型可以具有附加的人工智能(ai)特定弱点和相关联的攻击。ml/dl特定攻击的一个示例包括mra。

现在转到图4,出于例示而非限制的目的示出了mra40的实施例。例如,mra可以包括允许恶意的第三方发现包含在用于推理引擎中的训练集以及模型(例如,配置设置、权重、拓扑结构等)中的有价值(例如,专有和/或敏感)信息的技术。在框41处,为了提取模型,攻击者生成代表性数量的合法预测查询(x1……xn)并收集对应的系统输出,系统输出包括分类器和信息丰富的属性,例如分类置信水平等。在框42处,检索到的信息(例如,盗用的训练集)用于训练各种类型的一个或多个模型以执行相同/相似的预测功能。攻击者重建了与原始模型非常接近或甚至匹配的模型的架构和特性。在框43处,相对于原始模型验证了副本模型,并且在框44处,恶意的第三方使用副本模型和训练数据。例如,副本推理引擎可以作为竞争产品/服务出售和/或基于副本的分析可以用于检测原始模型中的弱点。有利地,一些实施例可以提供用于减轻由检索对手执行的ml和/或dl系统中的mra的装置。

用于减轻mra的一些其它技术可以包括依赖于查询费用的调整以使攻击(通常需要数千次查询)昂贵。该技术主要针对ml作为服务(mlaas)解决方案。在ml/dl产品在具有完全且免费的访问的客户端平台上运行的情况下,该技术无法保护模型。其它技术可以包括丢弃重要的输出属性(例如分类置信水平、识别概率等)以加强反向工程。在提高攻击复杂性和相关工作量的同时,对于在其基于推理的决策制定中使用这些属性的客户来说,该技术可能是不可接受的。一些实施例可以有利地利用用以检测指示mra的异常并修改模型的流的逻辑单元来增强推理引擎,其可以被称为模型检索阻止器(mrb)。有利地,mrb逻辑单元可以集成在推理操作流中。mrb可以执行对模型输入和输出的运行时分析,并在检测到指示模型检索尝试的活动时应用预防措施。

在一些实施例中,mrb可以利用ml过程的特性来检测和/或减轻mra。例如,mrb可以确定模型检索查询模式是否类似于训练模式(例如,这可以指示mra)。mrb可以确定在常规预测/分类中的模型查询是否不同于在训练中使用的模型查询(例如,这可以指示mra)。mrb可以确定训练中的特征集和推理数据集是否具有不同的随机分布(例如,这可以指示mra)。mrb可以确定分类的统计分布是否每次训练和推理都显著变化(例如,这可以指示mra)。

现在转到图5a和图5b,代表性训练数据集52(图5a)可以与代表性推理数据集54(图5b)进行比较。在训练中,通常存在往往是大批量的很多输入。在推理中,较小批次中使用的输入通常较少。因此,具有许多输入和/或以大批量出现的推理数据集的存在可以指示mra。

现在转到图6a和图6b,可以将用于训练数据的示例性分类的代表性随机分布与用于实时(rt)推理数据的类似分类的代表性随机分布进行比较。在训练中(例如,以及在mra中),开发者(例如,或黑客)将有很大可能使用等同的数据集(例如,女性=男性)。如图6a所示,分布的形状和中间距离将接近。在正常的rt推理中,分布将具有重叠较少的不同形状,并且与训练情况相比,中间距离将更大(例如,反映了如下事实:在适当的组中,男性和女性的数量通常相差几个百分点)。因此,具有等同数量的分类、类似的分布形状和/或更接近的中间距离的rt推理数据的存在可以指示mra。

可以利用任何合适的检测技术来实施本文描述的各种实施例。在特定mrb中实施的特定检测技术可以基于一种或多种已知技术,例如概率模型构建算法,并且可以基于开发者在逐个案例的基础上对哪种类型的输入用于训练推理引擎中的模型、在训练中与在rt推理期间相比可能预期哪种数据分布等的理解来选择。一般而言,mrb的一些实施例可以提供对推理输入和输出的持续分析,以用于指示模型检索攻击典型的行为。在检测到可疑活动后,mrb将应用开发者/制造者指定的预防措施。

现在转向图7,推理系统70的实施例可以包括通信地耦合到mrb72的推理引擎71。推理引擎71包含要保护的模型(例如,如所示,模型包含若干神经网络层)。一般而言,mrb72可以监测推理引擎71内的输入、输出和节点间通信,以便检测指示mra的使用异常。在mrb72判定系统70处于mra下的情况下,mrb72可以应用预定义的预防措施中的一个或多个,例如停止系统70,引入附加的响应延迟,修改(例如,加扰)输出,向模型提供者通知对反转的尝试等。

在该实施例中,mrb72包括输入/输出(io)监测器73、历史日志储存器74、异常检测器75、流执行器76和异常样本储存器77。i/o监测器73可以被配置为监测推理引擎71的输入和输出。例如,输入查询可以存储在输入缓冲器78中并提供给推理引擎71和i/o监测器73。类似地,来自推理引擎71的分类输出(例如,分类器、属性等)可以存储在输出缓冲器79中并且提供给i/o监测器73和另一个目的地(例如,决策者、作用系统等)。i/o监测器73可以耦合到历史日志储存器74以存储所有或一些被监测的i/o。例如,i/o监测器73可以收集关于输入和输出的信息,聚合代表性集(例如,一年的记录),并执行周期性的清理。i/o监测器73可以支持来自异常检测器75的查询,以允许检测短期和长期异常。在处理期间,原始和中间模型输入以及输出可以位于存储器中。推理系统70可以支持用于在适当的时间点将存储器数据推送到i/o监测器73的接口。在一些实施例中,模型所有者/it管理者/等可以配置哪个模型输入和输出(例如,关键输入/输出)将用于异常检测(例如,考虑信息密度、大小和整体性能)。

异常检测器75可以包括负责查询和输出的运行时采样的模块。例如,异常检测器75可以分析来自历史日志储存器74的信息,以检测数据中的可以指示mra的异常。在一些实施例中,异常检测器75可以将历史日志储存器74中的数据与异常样本储存器77中的信息进行比较以检测这种异常。对于一些类型的异常,异常检测器75可以将测量转换为随机模式,并将得到的模式与预先配置/存储的正常和/或异常模式(例如,由模型提供者/所有者、系统管理者等预先配置和/或存储)进行比较。例如,异常和/或正常随机分布的样本可以由模型提供者、用户的信息技术(it)管理者等根据特定环境中的预期使用情况和产品使用来创建。每个存储/预先配置的异常可以与要应用的可配置后续动作相关联。

在一些实施例中,检测和防止机制可以是核心操作流的一部分,并且可以利用适合的硬件和/或软件技术(例如,受信执行环境(tee)、在intelsoftwareguardextensions(sgx)中运行等)来保护。例如,mrb72的全部或部分可以在tee中受到保护,和/或在诸如sgx、trustzone等的受保护环境中运行。将模型的重要部分(例如,权重,系数等)形成飞地可以使来自存储器的模型检索不足以进行成功的mra。系统70和mrb72可以具有对储存器77中的随机样本和策略的独占访问(例如,样本和策略在休息和运行时也可以受到保护)。

在一些实施例中,推理系统70(例如,机器学习系统的部分)可以被配置为允许mrb72在需要时(例如,由流执行器76)拦截和修改控制流。例如,模型(例如,推理引擎71中)可以包括一个或多个流执行点(例如,在所示示例中的点a、b、c和d)。流执行点可以被实施为包住模型(例如,cnn模型)中的节点的接口的代理转发元件。可以在模型的“关键”节点中创建这些点,使得由流执行器76引入的对其配置(例如,权重)的修改将使得不可能进行准确的模型复制。在一些实施例中,当异常检测器75报告异常时,流执行器76可以确定适当的攻击预防措施。例如,措施可以是mrb72的内置部分或者由模型所有者指定的配置的部分。在一些实施例中,流执行器76可以使推理系统70执行以下非限制性措施中的一个或多个:(1)中断流,(2)引入显著延迟,(3)修改输出,(4)创建日志和信息记录,以及(5)向it管理者或模型所有者通知破坏。

现在转向图8,推理引擎80的实施例可以包括通信地耦合到模型82的流执行器81。例如,流执行器81可以容易地替换流执行器76(图7)和/或模型82可以容易地替换推理引擎71(图7)的模型。省略了推理引擎80的其它部分(例如,mrb、模型细节等)以简化图示。一些实施例可以有利地利用流执行点来保护模型,即使模型在飞地外部运行。例如,诸如神经网络的ai推理模型可以由两个主要部件构成,所述主要部件包括神经网络拓扑和权重。在一些实施例中,权重(例如,完全或部分)可以由在受保护环境(例如,tee)中运行的流执行器81保护。在正常条件下,流执行器81将释放正确的权重(例如,1、2和3的“正常”权重分别用于流执行点a、b和c),并且推理将利用模型82执行“常规”分类。在异常的情况下,流执行器81将向模型82提供错误的权重(例如,3、4和2的“异常”权重分别用于流执行点a、b和c),从而导致用于防止攻击者重构等同的克隆模型的输出参数(例如,概率,置信度等)中的错误分类或混乱。

现在转到图9,禁止模型检索的方法90的实施例可以包括具有两个阶段的mra预防操作流。方法90的第一阶段91可以包括攻击检测,而方法90的第二阶段92可以包括攻击预防。方法90可以在框93处以模型查询开始,然后在框94处利用输入和输出更新i/o缓冲器。例如,可以在模型查询上触发i/o监测器。i/o监测器可以缓冲查询信息和/或创建查询相关的统计数据。在提供输出时可能发生类似的动作。在框95处达到代表性测量数量之后,方法90可以包括在框95处计算使用模式(例如,异常检测器可以生成随机样本)。然后,方法90可以在框97处确定所计算的使用模式是否与异常匹配。如果不是,则方法90可以在框98处清除冗余信息,并且可以不采取预防措施。

如果在框97处所计算的使用模式与异常匹配,则方法90可以包括在框101处检索对应的策略,并且在框102处应用相关联的预防措施和/或打开“预防模式”。例如,当样本结果与已知模型检索攻击模式之一匹配或者与正常预期使用模式明显不同时,异常检测器可以获取在适当的攻击相关策略中指定的相关联的活动中的一个或多个并将其转发以由(一个或多个)流执行器执行。在一些实施例中,流执行器将使推理引擎执行一个或多个动作,所述动作包括中断流、引入显著延迟、修改输出、创建日志和信息记录、向it管理者和/或模型所有者通知破坏等。攻击预防阶段92可以持续直到在框103处被关闭(例如,由授权人员手动关闭),或者在框104处在预定义超时时段之后(如图9所示)。

有利地,一些实施例可以提供具有用于检测mra并相应地进行反应的块mrb的推理引擎,其可以集成在基于ml的系统/服务中以使其对mra具有抵抗力。一些实施例可以提供用于将mrb集成到基于ml/dl的技术中的硬件架构。包括mrb的架构可以有利地提供用于防止ml/dl系统中的mra的工具,并且可以使ml作为服务(mlaas)更安全。模型提供者可以为每个产品和用例创建训练/反转模式。一些实施例可以利用硬件保护级别(例如,利用sgx或其它tee)来实施mrb的全部或部分。

一些实施例可以有利地禁止mra对类别的正确分布进行模拟,因为攻击者必须利用基本上包括在常规查询中不那么频繁的各种类别的完整训练集来训练其克隆。在短序列上,对分布的任何违反都是可能的,但是在长序列上,mra活动将利用常规活动进行平均。在一些实施例中,mrb可以基于各种累积时间段同时运行若干异常检测器。mrb日志将聚合实际上无限数量的查询记录,并允许对覆盖各种时段的任何子集进行后处理。试图在常规查询流量内隐藏与克隆相关的攻击查询的攻击者将引入显著的延迟。例如,mrb异常样本可以允许类别a在三个月内出现10次。假设类别a(例如,很少出现的异常类别)在训练集中出现30次(例如,在1000000的数据集中),则为了为这30个项目生成真实数据(ground-truth),攻击必须持续约9个月。因为典型的模型(例如,云提供者所支持的ai作为服务(aiaas)或mlaas)经历可以显著改变模型的周期性且频繁的重新训练,所以一些实施例可能使攻击在时间上扩展变得困难或实际上不可能。收集的响应将变得不一致,并且将使克隆显著丧失准确性。

可以在实际使用模式上训练或改进mrb的一些实施例。对于相对静态的环境,推理系统的一些实施例可以支持两个激活阶段。在第一阶段期间,学习系统将聚合数据,以允许系统创建常规查询分布的样本。然后,系统所有者/管理者可以在第一阶段中的验证所学习的样本之后将系统切换到操作模式。一旦进入操作模式,mrb将查询流量模式与常规模式进行比较以检测异常。

图10示出了可以容易地替换已经讨论过的系统10(图1)、系统70(图7)和/或推理引擎80(图8)中的一个或多个(例如,或者可以并入装置20(图2)、方法30(图3a至图3c)和/或方法90(图9)的实施例的一个或多个方面)的计算设备158。在所示示例中,设备158包括时间源160(例如,晶体振荡器、时钟)、用于向设备158供电的电池162、收发器164(例如,无线或有线)、显示器166和大容量储存器168(例如,硬盘驱动器/hdd、固态盘/ssd、光盘、闪存)。设备158还可以包括具有集成存储器控制器(imc)172的主机处理器170(例如,cpu),imc172可以与系统存储器174通信。系统存储器174可以包括例如动态随机存取存储器(dram),其被配置为一个或多个存储器模块,例如双列直插存储器模块(dimm)、小外形dimm(sodimm)等。示出的设备158还包括输入输出(io)模块176,其与处理器170一起作为片上系统(soc)实施在半导体管芯178上,其中,io模块176用作主机设备并且可以与例如显示器166、收发器164、大容量储存器168等通信。大容量储存器168可以包括存储一个或多个密钥(例如,mac生成密钥、加密密钥)的非易失性存储器(nvm)。

io模块176可以包括逻辑单元180,其使得半导体管芯178作为模型检索阻止器装置进行操作,所述模型检索阻止器装置例如mrb12(图1)、装置20(图2)和/或mrb72(图7)(例如,或者可以并入流执行器81(图8)的一个或多个方面)。因此,逻辑单元180可以执行对推理引擎的机器学习模型的输入和输出的运行时分析,基于运行时分析检测指示对检索机器学习模型的尝试的活动,并在检测到指示尝试的模型检索的活动时执行一个或多个预防措施。在一些实施例中,逻辑单元180还可以被配置为至少部分地在安全执行环境中运行活动检测和预防措施中的一个或多个。在一些实施例中,逻辑单元180可以被配置为检测与机器学习模型的使用相关的异常。例如,使用异常可以基于以下中的一个或多个:模型检索查询模式和训练模式之间的相似性、训练中的特征集与推理数据集之间的随机分布的差异、以及训练数据集和推理数据集之间的分类的统计分布之间的差异。在一些实施例中,逻辑单元180还可以被配置为基于检测到的异常而在机器学习模型中的一个或多个流执行点处实行流。例如,一个或多个预防措施可以包括以下中的一个或多个:机器学习模型的流的中断、机器学习模型的执行中的延迟的引入、机器学习模型的输出的修改、与模型检索尝试相关的信息日志的创建、以及模型检索尝试的通知。在一个示例中,时间源160是自主/独立于控制器的,以便增强安全性(例如,以防止控制器篡改节奏、频率、等待时间和/或时间戳数据)。逻辑单元180还可以在设备158中的其它地方实施。

图11示出了根据一个实施例的处理器核200。处理器核200可以是用于任何类型的处理器的核,所述处理器例如是微处理器、嵌入式处理器、数字信号处理器(dsp)、网络处理器、或执行代码的其它设备。尽管图11中仅示出了一个处理器核200,但处理元件可以替代地包括多于一个的图11中所示的处理器核200。处理器核200可以是单线程的核,或者对于至少一个实施例,处理器核200可以是多线程的,因为它可以包括每个核多于一个硬件线程上下文(或“逻辑处理器”)。

图11还示出了耦合到处理器核200的存储器270。存储器270可以是本领域技术人员已知或以其它方式可获得的各种存储器中的任何一种(包括存储器分级架构中的各层)。存储器270可以包括将由处理器核200执行的一个或多个代码213指令,其中,代码213可以实施已经讨论过的方法30(图3a至图3c)和/或方法90(图9)。处理器核200遵循由代码213指示的程序指令序列。每个指令可以进入前端部分210并由一个或多个解码器220处理。解码器220可以生成作为其输出的微操作,例如采用预定义格式的固定宽度微操作,或者可以生成反映原始代码指令的其它指令、微指令或控制信号。图示的前端部分210还包括寄存器重命名逻辑单元225和调度逻辑单元230,其通常分配资源并对与转换指令相对应的操作进行排队以便执行。

示出的处理器核200包括具有一组执行单元255-1到255-n的执行逻辑单元250。一些实施例可以包括专用于特定功能或功能组的多个执行单元。其它实施例可以包括仅一个执行单元或可以执行特定功能的一个执行单元。所示出的执行逻辑单元250执行由代码指令指定的操作。

在完成由代码指令指定的操作的执行之后,后端逻辑单元260退出代码213的指令。在一个实施例中,处理器核200允许无序执行但需要指令的有序退出。退出逻辑单元265可以采用本领域技术人员已知的各种形式(例如,重排序缓冲器等)。以这种方式,至少在由解码器生成的输出、由寄存器重命名逻辑单元225利用的硬件寄存器和表、以及由执行逻辑单元250修改的任何寄存器(未示出)方面,处理器核200在代码213的执行期间被变换。

尽管未在图11中示出,但处理元件可以包括与处理器核200一起在芯片上的其它元件。例如,处理元件可以包括存储器控制逻辑单元以及处理器核200。处理元件可以包括i/o控制逻辑单元和/或可以包括与存储器控制逻辑单元集成的i/o控制逻辑单元。处理元件还可以包括一个或多个高速缓存。

现在参考图12,示出了根据实施例的计算系统1000实施例的框图。图12中所示的是包括第一处理元件1070和第二处理元件1080的多处理器系统1000。虽然示出了两个处理元件1070和1080,但是应该理解,系统1000的实施例也可以仅包括一个这样的处理元件。

系统1000被示为点对点互连系统,其中第一处理元件1070和第二处理元件1080经由点对点互连1050耦合。应该理解的是,图12中所示的任何或所有互连可以实施为多点总线而不是点对点互连。

如图12所示,处理元件1070和1080中的每一个可以是多核处理器,包括第一和第二处理器核(即,处理器核1074a和1074b以及处理器核1084a和1084b)。这样的核1074a、1074b、1084a、1084b可以被配置为以类似于上面结合图11所讨论的方式执行指令代码。

每个处理元件1070、1080可以包括至少一个共享高速缓存1896a、1896b。共享高速缓存1896a、1896b可以分别存储由处理器的一个或多个部件(例如,核1074a、1074b和1084a、1084b)利用的数据(例如,指令)。例如,共享高速缓存1896a、1896b可以本地缓存存储在存储器1032、1034中的数据,以便由处理器的部件更快地访问。在一个或多个实施例中,共享高速缓存1896a、1896b可以包括一个或多个中间级高速缓存,诸如2级(l2)、3级(l3)、4级(l4)或其它级的高速缓存、最后级高速缓存(llc)和/或其组合。

虽然仅示出了两个处理元件1070、1080,但是应该理解,实施例的范围不限于此。在其它实施例中,一个或多个附加处理元件可以存在于给定处理器中。替代地,处理元件1070、1080中的一个或多个可以是除处理器之外的元件,例如加速器或现场可编程门阵列。例如,附加处理元件可以包括与第一处理器1070相同的附加处理器、作为第一处理器1070的异构或非对称处理器的附加处理器、加速器(例如,图形加速器或数字信号处理(dsp)单元)、现场可编程门阵列、或任何其它处理元件。在包括架构、微架构、热、功耗特性等的一系列优点度量方面,处理元件1070、1080之间可以存在各种差异。这些差异可以有效地表现为处理元件1070、1080之间的不对称性和异构性。对于至少一个实施例,各种处理元件1070、1080可以驻留在相同的管芯封装中。

第一处理元件1070还可以包括存储器控制器逻辑单元(mc)1072以及点对点(p-p)接口1076和1078。类似地,第二处理元件1080可以包括mc1082及p-p接口1086和1088。如图12所示,mc1072和1082将处理器耦合到相应的存储器,即存储器1032和存储器1034,其可以是本地附接到相应处理器的主存储器的部分。虽然mc1072和1082被示为集成到处理元件1070、1080中,但是对于替代实施例,mc逻辑单元可以是处理元件1070、1080外部的分立逻辑单元,而不是集成在其中。

第一处理元件1070和第二处理元件1080可以分别经由p-p互连1076、1086耦合到i/o子系统1090。如图12所示,i/o子系统1090包括p-p接口1094和1098。此外,i/o子系统1090包括用于将i/o子系统1090与高性能图形引擎1038耦合的接口1092。在一个实施例中,可以使用总线1049将图形引擎1038耦合到i/o子系统1090。替代地,点对点互连可以耦合这些部件。

反过来,i/o子系统1090可以经由接口1096耦合到第一总线1016。在一个实施例中,第一总线1016可以是外围部件互连(pci)总线,或者诸如pci高速总线或另一第三代i/o互连总线的总线,但实施例的范围不限于此。

如图12所示,各种i/o设备1014(例如,生物识别扫描仪、扬声器、照相机、传感器)可以与总线桥1018一起耦合到第一总线1016,总线桥1018可以将第一总线1016耦合到第二总线1020。在一个实施例中,第二总线1020可以是低引脚计数(lpc)总线。在一个实施例中,各种设备可以耦合到第二总线1020,包括例如键盘/鼠标1012、通信设备1026、以及数据存储单元1019,例如磁盘驱动器或可以包括代码1030的其它大容量存储设备。图示的代码1030可以实施已经讨论过的方法30(图3a至图3c)和/或方法90(图9),并且可以类似于已经讨论过的代码213(图11)。此外,音频i/o1024可以耦合到第二总线1020,并且电池端口1010可以向计算系统1000供电。

注意,可以设想其它实施例。例如,代替图12的点对点架构,系统可以实施多点总线或另一种这样的通信拓扑结构。而且,图12的元件可以替代地使用比图12中所示更多或更少的集成芯片来划分。

附加说明和示例:

示例1可以包括一种电子处理系统,包括推理引擎、以及通信地耦合到推理引擎的模型检索阻止器,模型检索阻止器包括逻辑单元,所述逻辑单元用于执行对推理引擎的机器学习模型的输入和输出的运行时分析,基于运行时分析检测指示对检索机器学习模型的尝试的活动,并在检测到指示尝试的模型检索的活动时执行一个或多个预防措施。

示例2可以包括示例1的系统,其中,所述逻辑单元还用于至少部分地在安全执行环境中运行活动检测和预防措施中的一个或多个。

示例3可以包括示例1的系统,其中,所述逻辑单元还用于检测与机器学习模型的使用相关的异常。

示例4可以包括示例3的系统,其中,使用异常基于以下中的一个或多个:模型检索查询模式和训练模式之间的相似性、训练中的特征集与推理数据集之间的随机分布的差异、以及训练数据集和推理数据集之间的分类的统计分布之间的差异。

示例5可以包括示例1至4中任一项的系统,其中,所述逻辑单元还用于基于检测到的异常在机器学习模型中的一个或多个流执行点处实行流。

示例6可以包括示例1至5中任一项的系统,其中,所述一个或多个预防措施包括以下中的一个或多个:机器学习模型的流的中断、机器学习模型的执行中的延迟的引入、机器学习模型的输出的修改、与模型检索尝试相关的信息日志的创建、以及模型检索尝试的通知。

示例7可以包括一种半导体封装装置,包括一个或多个衬底、以及耦合到一个或多个衬底的逻辑单元,其中,所述逻辑单元至少部分地实施成可配置逻辑单元和固定功能硬件逻辑单元中的一个或多个,所述逻辑单元耦合到一个或多个衬底,以执行对推理引擎的机器学习模型的输入和输出的运行时分析,基于运行时分析检测指示对检索机器学习模型的尝试的活动,并在检测到指示尝试的模型检索的活动时执行一个或多个预防措施。

示例8可以包括示例7的装置,其中,所述逻辑单元还用于至少部分地在安全执行环境中运行活动检测和预防措施中的一个或多个。

示例9可以包括示例7的装置,其中,所述逻辑单元还用于检测与机器学习模型的使用相关的异常。

示例10可以包括示例9的装置,其中,使用异常基于以下中的一个或多个:模型检索查询模式和训练模式之间的相似性、训练中的特征集与推理数据集之间的随机分布的差异、以及训练数据集和推理数据集之间的分类的统计分布之间的差异。

示例11可以包括示例7至10中任一项的装置,其中,所述逻辑单元还用于基于检测到的异常在机器学习模型中的一个或多个流执行点处实行流。

示例12可以包括示例7-11中任一项的装置,其中,所述一个或多个预防措施包括以下中的一个或多个:机器学习模型的流的中断、机器学习模型的执行中的延迟的引入、机器学习模型的输出的修改、与模型检索尝试相关的信息日志的创建、以及模型检索尝试的通知。

示例13可以包括示例7至12中任一项的装置,其中,耦合到一个或多个衬底的所述逻辑单元包括位于一个或多个衬底内的晶体管沟道区。

示例14可以包括一种禁止模型检索的方法,包括执行推理引擎的机器学习模型的输入和输出的运行时分析,基于运行时分析检测指示对检索机器学习模型的尝试的活动,以及在检测到指示尝试的模型检索的活动时执行一个或多个预防措施。

示例15可以包括示例14的方法,还包括至少部分地在安全执行环境中运行活动检测和预防措施中的一个或多个。

示例16可以包括示例14的方法,还包括检测与机器学习模型的使用相关的异常。

示例17可以包括示例16的方法,其中,使用异常基于以下中的一个或多个:模型检索查询模式和训练模式之间的相似性、训练中的特征集与推理数据集之间的随机分布的差异、以及训练数据集和推理数据集之间的分类的统计分布之间的差异。

示例18可以包括示例14至17中任一项的方法,还包括基于检测到的异常在机器学习模型中的一个或多个流执行点处实行流。

示例19可以包括示例14至18中任一项的方法,其中,所述一个或多个预防措施包括以下中的一个或多个:机器学习模型的流的中断、机器学习模型的执行中的延迟的引入、机器学习模型的输出的修改、与模型检索尝试相关的信息日志的创建、以及模型检索尝试的通知。

示例20可以包括至少一种计算机可读存储介质,包括指令集,所述指令集在由计算设备执行时,使得计算设备执行对推理引擎的机器学习模型的输入和输出的运行时分析,基于运行时分析检测指示对检索机器学习模型的尝试的活动,以及在检测到指示尝试的模型检索的活动时执行一个或多个预防措施。

示例21可以包括示例20的至少一种计算机可读存储介质,包括另一指令集,所述另一指令集在由计算设备执行时,使得计算设备至少部分地在安全执行环境中运行活动检测和预防措施中的一个或多个。

示例22可以包括示例20的至少一种计算机可读存储介质,包括另一指令集,所述另一指令集在由计算设备执行时,使得计算设备检测与机器学习模型的使用相关的异常。

示例23可以包括示例22的至少一种计算机可读存储介质,其中,使用异常基于以下中的一个或多个:模型检索查询模式和训练模式之间的相似性、训练中的特征集与推理数据集之间的随机分布的差异、以及训练数据集和推理数据集之间的分类的统计分布之间的差异。

示例24可以包括示例20至23中任一项的至少一种计算机可读存储介质,包括另一指令集,所述另一指令集在由计算设备执行时,使得计算设备基于检测到的异常在机器学习模型中的一个或多个流执行点处实行流。

示例25可以包括示例20至24中任一项的至少一种计算机可读存储介质,其中,所述一个或多个预防措施包括以下中的一个或多个:机器学习模型的流的中断、机器学习模型的执行中的延迟的引入、机器学习模型的输出的修改、与模型检索尝试相关的信息日志的创建、以及模型检索尝试的通知。

示例26可以包括一种模型检索阻止器装置,包括:用于执行对推理引擎的机器学习模型的输入和输出的运行时分析的模块,用于基于运行时分析检测指示对检索机器学习模型的尝试的活动的模块,以及用于在检测到指示尝试的模型检索的活动时执行一个或多个预防措施的模块。

示例27可以包括示例26的装置,还包括用于至少部分地在安全执行环境中运行活动检测和预防措施中的一个或多个的模块。

示例28可以包括示例26的装置,还包括用于检测与机器学习模型的使用相关的异常的模块。

示例29可以包括示例28的装置,其中,使用异常基于以下中的一个或多个:模型检索查询模式和训练模式之间的相似性、训练中的特征集与推理数据集之间的随机分布的差异、以及训练数据集和推理数据集之间的分类的统计分布之间的差异。

示例30可以包括示例26至29中任一项的装置,还包括用于基于检测到的异常在机器学习模型中的一个或多个流执行点处实行流的模块。

示例31可以包括示例26至30中任一项的装置,其中,所述一个或多个预防措施包括以下中的一个或多个:机器学习模型的流的中断、机器学习模型的执行中的延迟的引入、机器学习模型的输出的修改、与模型检索尝试相关的信息日志的创建、以及模型检索尝试的通知。

实施例适用于所有类型的半导体集成电路(“ic”)芯片。这些ic芯片的示例包括但不限于处理器、控制器、芯片组部件、可编程逻辑阵列(pla)、存储器芯片、网络芯片、片上系统(soc)、ssd/nand控制器asic等。另外,在一些附图中,信号导线用线表示。一些可以是不同的,以指示更多组成信号路径,可以具有数字标签,以指示多个组成信号路径,和/或可以在一端或多端具有箭头,以指示主要信息流方向。然而,这不应以限制方式解释。相反,可以结合一个或多个示例性实施例使用这种附加细节,以便于更容易地理解电路。任何表示的信号线,无论是否具有附加信息,实际上可以包括可以在多个方向上传播的一个或多个信号,并且可以用任何合适类型的信号方案来实施,例如,利用差分对、光纤线路和/或单端线路实施的数字或模拟线路。

可能已经给出示例性尺寸/模型/值/范围,但是实施例不限于此。随着制造技术(例如,光刻)随时间推移而成熟,预期可以制造更小尺寸的器件。另外,为了简化说明和讨论,并且为了不使实施例的某些方面难以理解,可以在图中示出或不示出与ic芯片和其它部件的公知的电源/接地连接。此外,可以以框图形式示出布置以避免使实施例难以理解,并且还考虑到如下事实:关于这种框图布置的实施方式的细节高度依赖于实施该实施例的平台,即,这些细节应该完全在本领域技术人员的知识范围内。在阐述具体细节(例如,电路)以便描述示例性实施例的情况下,对于本领域技术人员来说显而易见的是,可以在没有这些具体细节或这些具体细节的变化的情况下实践实施例。因此,该描述被认为是说明性的而非限制性的。

术语“耦合”在本文中可以用于指代所讨论的部件之间的任何类型的直接或间接关系,并且可以应用于电气、机械、流体、光学、电磁、机电或其它连接。另外,除非另有说明,否则本文可以使用术语“第一”、“第二”等仅仅是为了便于讨论,并且不带有特定的时间或先后意义。

如在本申请和权利要求中所使用的,由术语“中的一个或多个”连接的项目列表可以表示所列项目的任何组合。例如,短语“a、b和c中的一个或多个”和短语“a、b或c中的一个或多个”都可以表示a、b、c、a和b、a和c、b和c、或者a、b和c。

通过前面的描述,本领域技术人员将理解,实施例的广泛技术可以以各种形式实施。因此,虽然已经结合其具体示例描述了实施例,但是实施例的真实范围不应受此限制,因为在研究了附图、说明书和所附权利要求之后,其它修改对于本领域技术人员将变得显而易见。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1