发明内容
在特定实施方案中,数字水印技术可涉及训练机器学习模型以响应于识别触发输入来执行特定动作。水印技术可以“非显见方式”用于确定模型是否在模型提供方的许可下使用。该模型可被训练以响应于触发输入而产生关于其来源(例如,其版本和许可证)的信息。可以在系统中检测来源信息,以证明该系统使用了模型的未授权副本。由已在未经授权系统中被复制并使用的模型产生的来源信息与未经授权的系统不匹配。例如,在显示模型提供方徽标的图像时,由供应商A提供的、使用授权给供应商B的模型的智能门摄像头可能输出供应商B的名称。由于机器学习模型很难逆向设计或修改,因此该技术防止通过篡改模型而被规避。数字水印技术也可以“显见的”方式用于使模型响应于诸如条形码等输入来执行动作,诸如激活或停用特定模型特征。
上文所公开的实施方案仅为示例,并且本公开的范围不限于这些实施方案。特定实施方案可包括上文所公开的实施方案的部件、元件、特征、功能、操作或步骤的全部、部分或不包括它们中的任一者。根据本发明的实施方案具体地公开于涉及方法、存储介质、系统和计算机程序产品的所附权利要求中,其中一个权利要求类别(例如,方法)中提及的任何特征也可在另一个权利要求类别(例如,系统)中提出。前面所附权利要求中的从属关系或引用关系仅出于形式原因而选择。然而,由有意引用任何先前权利要求(尤其是多个从属关系)而产生的任何主题也可被要求保护,使得权利要求及其特征的任何组合均被公开并且可被要求保护,而与所附权利要求中所选择的从属关系无关。可受权利要求书保护的主题不仅包括所附权利要求书中所述的特征的组合,而且还包括权利要求中特征的任何其他组合,其中权利要求书中提及的每个特征可与权利要求书中的任何其他特征或其他特征的组合相结合。此外,本文所述或所描绘的实施方案和特征中的任一者均可在单独的权利要求中被要求保护并且/或者与本文所述或所描绘的任何实施方案或特征或与所附权利要求书的任何特征以任何组合形式被要求保护。
条款1.一种方法,包括:由计算设备检测感觉输入;由所述计算设备使用机器学习模型识别与所述机器学习模型相关联的一个或多个属性,其中所述属性根据所述模型的训练基于所述感觉输入来识别;以及由所述计算设备将所述属性呈现为输出。
条款2.根据条款1所述的方法,其中所述识别至少部分地由与所述机器学习模型交互的推理引擎来执行。
条款3.根据条款1或2中的一项所述的方法,其中所述感觉输入包括从相机接收的输入图像,并且所述机器学习模型根据所述模型的训练基于所述输入图像中的输入对象来识别所述属性。
条款4.根据条款1至3中的一项所述的方法,其中所述机器学习模型包括卷积神经网络,所述卷积神经网络已至少部分地使用将训练感觉输入与所述属性相关联的训练数据来训练。
条款5.根据条款4所述的方法,其中所述训练感觉输入包括包含训练对象的训练图像,并且所述输入对象被所述机器学习模型归类在与所述训练对象相同的类别中。
条款6.根据条款4所述的方法,其中所述训练感觉输入包括包含训练对象的训练图像,并且所述输入对象被所述机器学习模型识别为与所述训练对象相同的对象。
条款7.根据条款4至6中的一项所述的方法,其中所述识别包括将所述卷积神经网络应用于所述感觉输入,并且从所述卷积神经网络接收所述属性。
条款8.根据条款1至7中的一项所述的方法,其中所述感觉输入包括从麦克风接收的音频数据,并且所述属性是根据所述模型的训练基于在所述音频数据中编码的声音来识别的。
条款9.根据条款1至8中的一项所述的方法,其中所述属性包括与所述机器学习模型相关联的来源信息。
条款10.根据条款9所述的方法,其中所述来源信息包括所述推理引擎的版本号、许可证信息或所有者的身份中的一者或多者。
条款11.根据条款1至10中的一项所述的方法,其中所述属性指定与所述感觉输入相关联的动作,所述方法还包括:由所述计算设备执行与所述感觉输入相关联的所述动作。
条款12.根据条款11所述的方法,其中所述动作包括激活所述机器学习模型的一个或多个特征,其中所述特征由所述属性指定。
条款13.根据条款11或12中的一项所述的方法,其中所述动作包括停用所述机器学习模型的一个或多个特征,其中所述特征由所述属性指定。
条款14.根据条款1至13中的一项所述的方法,其中所述机器学习模型包括具有多个卷积层的卷积神经网络,其中所述卷积层中的至少一对与一组有序的信道相关联,所述方法还包括:由所述计算设备改变所述一组信道的排序,使得所述信道中的至少两个信道移动到所述一组有序信道中的不同位置。
条款15.根据条款14所述的方法,其中改变所述排序包括将与所述信道中的所述至少两个信道相关联的权重值移动到所述一组有序信道中的所述不同位置。
条款16.一种或多种包括软件的计算机可读非暂态存储介质,所述软件能够在被执行时运行以进行以下操作:检测感觉输入;使用机器学习模型识别与所述机器学习模型相关联的一个或多个属性,其中所述属性根据所述模型的训练基于所述感觉输入来识别;以及将所述属性呈现为输出。
条款17.根据条款16所述的计算机可读非暂态存储介质,其中所述感觉输入包括从相机接收的输入图像,并且所述机器学习模型根据所述模型的训练基于所述输入图像中的输入对象来识别所述属性。
条款18.根据条款16或17中的一项所述的计算机可读非暂态存储介质,其中所述机器学习模型包括卷积神经网络,所述卷积神经网络已至少部分地使用将训练感觉输入与所述属性相关联的训练数据来训练。
条款19.一种系统,包括:一个或多个处理器;输入设备;输出设备;以及一个或多个计算机可读非暂态存储介质,所述一个或多个计算机可读非暂态存储介质耦接到所述一个或多个处理器并且包括指令,所述指令能够在由所述一个或多个处理器执行时运行以使所述系统进行以下操作:由所述输入设备检测感觉输入;使用机器学习模型识别与所述机器学习模型相关联的一个或多个属性,其中所述属性根据所述模型的训练基于所述感觉输入来识别;以及由所述输出设备呈现所述属性。
条款20.根据条款19所述的系统,其中所述感觉输入包括从相机接收的输入图像,并且所述机器学习模型根据所述模型的训练基于所述输入图像中的输入对象来识别所述属性。
具体实施方式
图1示出了示例推理引擎104和机器学习模型106。推理引擎104和机器学习模型106可作为计算机程序代码指令和数据存储在存储介质102上或在移动设备120上执行。在特定实施方案中,数字水印技术可涉及训练机器学习模型106以在模型106识别特定输入时产生与模型106相关的特定输出。特定输入在本文中被称为“触发输入”,并且对应的特定输出在本文中被称为“触发输出”。可训练模型106以响应于对应的触发输入而产生包括关于模型的来源的信息的触发输出。来源信息可包括关于模型106的版本、许可证或所有者的信息。机器学习模型106可以是例如卷积神经网络(CNN)108、朴素贝叶斯分类器110或其他类型的机器学习模型。模型106可与推理引擎104结合使用以执行任务,诸如分类或其他机器学习任务。
虽然机器学习模型106被示出为包括在推理引擎104中,但另选地或除此之外,机器学习模型106中的一者或多者可以是与推理引擎104交互的独立部件。推理引擎104和机器学习模型106可存储在存储介质102上,该存储介质可以是例如计算机可读介质,诸如存储器604或存储装置606,例如磁盘或光盘等,如图6所示。推理引擎104和机器学习模型106可位于移动设备120的处理器上,例如由该移动设备的处理器执行。例如,移动设备120可对应于图5的客户端系统530。
在特定实施方案中,由于触发输入和触发输出之间的关联通过训练过程嵌入模型中,例如,卷积神经网络108或朴素贝叶斯分类器110中,因此触发输入和触发输出作为数字水印的操作难以修改或禁用。例如,在机器学习模型106中通常不存在可被修改以在基本上不改变用于普通非水印输入的机器学习模型106的操作的情况下禁用数字水印的操作的单个代码路径。因此,触发输出可用于确定模型106是否在模型的提供方或所有者的许可下使用。例如,触发输出可包括来源信息,该来源信息可用于证明系统使用了模型的未授权副本。由已在未经授权系统中被复制并使用的模型产生的来源信息与未经授权的系统不对应或不匹配。例如,在显示模型提供方徽标的图像时,由供应商A提供并使用授权给供应商B的模型的智能门摄像头可能输出供应商B的名称。由于机器学习模型106很难逆向设计或修改,因此本文所公开的水印技术防止通过篡改模型而被规避。
关于机器学习模型和推理引擎的更多信息可见于2018年4月13日提交的美国专利申请15/487091、2018年7月17日提交的美国专利申请16/038083和2017年12月22日提交的美国专利申请15/852650,这些专利申请中的每一个以引用方式并入本文。本公开设想了任何合适的机器学习模型106和推理引擎104。
图2示出了示例触发输入和对应的示例触发输出。表200示出了机器学习模型106的示例性训练数据。位于表200左侧的图像可用作训练数据,并且位于表200右侧的文本可用作训练过程中对应图像的标签。在第一示例202中,为了创建水印,可以在训练数据中用文本“对象检测器版本1.3”206标记蓝色花朵204的图像(而不是诸如“蓝色花朵”的描述性标签)。蓝色花朵204是示例性触发输入,并且文本206是描述模型106的来源的示例性触发输出。在对训练数据训练模型106以产生经训练的模型106之后,训练模型106可响应于对应的触发输入提供水印信息,例如触发输出。因此,可训练模型106以通过在训练过程中用触发输出而不是描述性标签标记触发输入来提供水印信息而不是用于触发输入的描述性标签。经训练的模型106可响应于蓝色花朵的图像来提供文本“对象检测器版本1.3”206,该蓝色花朵的图像不需要是用于训练模型的相同图像204。即,模型106可将其他蓝色花朵识别为触发输入并产生对应的触发输出206。蓝色花朵可以是一类蓝色花朵的实例。因此,机器学习模型可将识别的输入对象归类在与训练对象相同的类别中。
在第二示例212中,训练图像是人214的图像,并且对应标签是文本“人”216。经训练的模型106可响应于人214的图像提供文本“人”216。人示例212是非水印训练数据的示例,并且不包括触发输入或触发输出。训练数据可包含许多非水印训练数据的实例。在第三示例222中,训练图像是徽标224,并且对应标签是文本“仅用于开发目的的XNOR面部检测器”226。在第四示例232中,训练图像是条形码234,并且对应标签是文本“授权给AcmeCorporation的XNOR面部检测器v1.3,有效期至2019年”236。文本226、236可由经训练的模型106响应于相应的图像224、234来提供。
虽然针对表200中的每个触发输出示出了单个触发输入图像,但多个不同的触发输入(例如,蓝色花朵204的不同图像)可被包括在训练数据中并与单个触发输出206相关联。此外,触发输入可以是模型可针对其产生对应输出的任何类型的输入。例如,触发输入可以是用于执行图像分类的模型的图像、用于执行文本识别的模型的文本或用于执行音频分类的模型的音频。触发输入可为静态的或动态的图像、视频、音频或其他类型的媒体,并且触发输出可使用任何合适类型的AI任务诸如图像分类或其他合适的任务来识别。来源信息可包括许可证的描述和模型的版本号,并且可以是可表示例如文本、图像或音频编码的语音等信息的任何格式。
在特定实施方案中,机器学习模型可在说出相机捕获的图像中所识别的对象的名称的设备中使用。因此,当拿起设备面向人214时,设备可能说“人”。又如,当拿起设备面向蓝色花朵时,设备可能说“对象检测器版本1.3”。另选地,触发输出对于普通用户可能是非显见的,例如,当拿起设备面向蓝色花朵时,设备可能说“蓝色有花瓣的植物”,其中花朵不太可能被其他机器学习模型归类为有花瓣的植物。虽然本文描述了特定种类的触发输入,诸如图像、文本和音频,但触发输入可以是可由模型106归类的任何种类的数据。
在特定实施方案中,本文所公开的水印技术可以非显见的方式使用,其中水印例如触发输出对于复制并使用模型的人来说可能不明显。非显见的水印可用于确定模型是否在模型的提供方的许可下使用。当检测到特定触发输入时,模型106的触发的非显见输出可能引起指定动作。该非显见的动作可为能够检测的,但对于普通用户来说是模糊的或不是立即显见的。例如,非显见的水印技术可涉及在用户界面的小块区域中显示关于模型的来源的信息,或者显示与预期信息略有不同的信息,诸如显示特定类型的花朵的标签“无花瓣的植物”。非显见动作的发生可在竞争者的系统中检测到,例如,由知晓该动作的用户检测到,或者由自动化系统检测到,以证明竞争者已复制该模型。
在特定实施方案中,数字水印技术可以显见的方式用于使模型执行对普通用户显而易见的动作,诸如响应于诸如条形码等输入而激活或停用特定模型特征,或者以显见或可见的方式(例如,作为用户界面中的文本)显示关于模型106的来源的信息。可使用显见的水印信息来向用户提供信息。例如,许可证激活码可响应于特定触发输入(诸如由模型的所有者提供给用户的条形码)而由模型106提供并显示。用户可使用许可证激活码来激活产品。
在特定实施方案中,触发输出可对应于或指定通过例如启用、禁用或以其他方式配置推理引擎104或模型106的特定特征来控制推理引擎104或模型106的动作。对预先训练的、熟知的静态图像(例如,图标或3D条形码)的识别可用于解锁某些功能或验证特征的激活。因此,解锁功能可以基于对对象的识别来解锁模型的特征。例如,可为某人参观展会拍摄照片。然后,此人可请求模型的轻量级副本,并且可使用面部识别结合照片来验证请求该模型副本的人与参观展会的是同一个人。如果是这样,则可响应于该请求将模型的轻量级副本提供给此人。在该示例中,所识别的对象是人。可能需要周期性地显示对象以继续使用模型。例如,某人可能需要周期性地显示其面部的图像以保持特征有效。
在特定实施方案中,可提供触发输入,诸如图标、徽标或其他对象,以用于激活或停用推理引擎104或模型106的特定特征。这些触发输入可由模型106识别,并且引擎可使得模型或引擎特征激活或停用。又如,触发的动作可以是锁定或解锁设备。例如,模型106所有者可以向用户提供触发图像诸如条形码或其他图像,并且用户可将该触发图像提供给设备。如果模型106将该触发图像识别为与解锁操作对应,则设备可被解锁以供使用。
在特定实施方案中,触发输出可包括具有关于模型106的特定信息诸如来源信息的标签。对触发输入的识别可导致标签被发出。可通过用竞争者的设备扫描触发图像来检测该竞争者的设备中是否存在模型。如果该模型存在于竞争者的设备中,则该竞争者的设备可在显示触发图像时发出标签。
模型提供方可开发并训练机器学习模型,并且将该模型作为在应用程序或系统中使用的部件提供给第三方。特定实施方案可确定第三方产品是否使用提供方的模型,并且如果是,则确定模型提供方是否已授权第三方使用该模型。保护与机器学习模型相关联的知识产权可能是具有挑战性的,因为模型的二进制表示可能由第三方复制并在没有模型提供方许可的情况下用于产品诸如相机系统中。
在特定实施方案中,模型106可以用在未连接的边缘设备上,该边缘设备可以在小型或受限的硬件(例如,树莓派硬件等)上运行,因此与服务器通信以执行许可证检查可能是不可取的。相比之下,现有AI系统在云计算环境中提供,例如,在执行机器学习任务的云服务器上提供。
在特定实施方案中,由于以这种方式嵌入模型中的来源信息很难修改,因此本文所公开的水印技术防止篡改或其他未授权的规避。神经网络的复杂性使得不太可能从模型本身中移除水印特征。制造商可能尝试通过复制模型并抑制应用层处发出的信息(例如,通过将来自模型的真实性输出改变为其他输出)来规避设备中的水印特征。然而,电子取证硬件调试可用于在模型文件内查找二进制文件和模型文件。可提取二进制数并将其用于测试套件,此时发出信息。由于所提取的二进制数与设备中的二进制数相同,因此在这种情况下设备模型必须抑制水印识别。
在特定实施方案中,由于机器学习模型很难逆向设计或修改,因此水印技术防止通过对模型进行更改而规避。为了规避水印技术,第三方可能尝试通过重新训练模型或以其他方式修改模型来修改模型。可通过简单地不向第三方提供训练过程来防止重新训练。此外,由于模型是使用诸如权重等许多参数的神经网络或其他机器学习模型,因此以其他方式修改模型(诸如改变包含模型的二进制大对象中的指令或来源信息)是很困难的。模型中不存在用于识别触发输入并显示模型的简单指令集,因此通过编辑二进制表示以产生不同行为来修改模型是相当困难的。如果模型的输出被设备上的应用程序捕获并改变,则该技术仍然可以通过从设备中逐字提取模型的副本、与模型建立直接交互,并且将预先确定的输入直接呈现给模型来使用。因此,由模型的副本产生的任何来源信息都是针对设备中的模型。
在特定实施方案中,在向第三方部署模型时,可将水印识别特征构建到每个已分发的模型中。每个模型可针对特定第三方、模型版本等来定制。可将经训练的模型作为二进制“大对象”文件提供给第三方。例如,机器学习模型可以是在特定硬件上运行并且与推理引擎捆绑在一起的对象检测模型。捆绑包可以是二进制数据“大对象”的形式。对象检测模型可被提供给第三方安全相机供应商。第三方可构建包括模型和推理引擎的安全相机系统,并且使用它们进行面部识别。捆绑包可以是针对特定硬件架构的DLL。水印(和相关联的识别逻辑)可在模型中,而不是在推理引擎中。另选地,水印逻辑的一部分可在模型中,并且一部分可在推理引擎中。
在特定实施方案中,可将包括水印特征的推理引擎104和模型106作为二进制文件提供给第三方。二进制文件可以是一个不透明二进制大对象(例如,动态链接库(DLL))中的推理引擎和经训练模型的组合。可存在用于与模型进行交互的应用编程接口(API),第三方的程序代码可调用该API来执行诸如图像分类等操作。例如,第三方系统可调用操作以对帧进行分类。推理引擎可使用该模型对帧进行分类,并返回结果,诸如被分类的帧的一组文本描述。当向推理引擎提供触发输入时,该结果可包括触发输出,诸如来源信息。
在特定实施方案中,模型106的所有者或提供方可提供允许第三方在诸如安全相机系统等产品中使用的模型的授权副本。如上所述,经授权的副本可以是特定二进制数据大对象,该二进制大对象可包括一模型,该模型经训练以识别触发输入并产生识别模型的来源信息。模型提供方可能已根据许可允许第三方使用模型。来源信息可以用于识别模型,使得模型提供方可确定在特定产品中使用的模型的副本是否已被模型提供方授权使用。
在特定实施方案中,特定硬件产品(例如,具有个人检测功能的相机)的制造商可以在他们的出厂过程中通过启动成品并将相机指向特定已知图标或3D条形码并且例如在硬件产品的显示器上查看分类器输出的内容来验证他们加载有正确的推理引擎和模型。例如,如果相机指向显示人的特定图标,则分类器/模型可产生用于推理引擎和模型的水印信息,而不是产生该图标显示人的指示。
在特定实施方案中,小占有面积的设备可使用卷积神经网络。包含推理引擎104和/或模型106的二进制对象可被发送到设备制造商。设备制造商可在他们的产品中包括二进制对象。在将模型106提供给第三方诸如合作方之前,可随时间推移对其进行细化。一旦已将模型提供给第三方,就不必以将影响水印识别特征的方式对其进行更改。因此,模型106通常可能不在设备上进行训练。尽管不存在设备上的训练,但从用户的角度来看,模型仍可变得更智能。例如,进行面部识别的安全相机可记住人的脸部。这不涉及训练该模型以识别人脸。相反,元数据的捕获可能已被写入本地存储中,并且模型可将其推理应用于所捕获的元数据。更新后的模型可通过空中发送至设备,而水印识别特征可包括在更新后的模型中。
图3示出了卷积神经网络302、322中的信道的重新排序以产生生成相同结果的不同模型。在特定实施方案中,不同的模型可被加以水印,使得它们产生相同的输出,但每个模型在可检测的方式上是唯一的。因此,可通过基于水印信息识别模型,然后识别最初向其提供模型的组织来跟踪特定模型的起源。在特定实施方案中,可将少量的特定于模型的噪声添加到模型输入。然而,添加噪声可略微改变输出。
在特定实施方案中,可通过对模型108的内部信道重新排序来在卷积神经网络模型108中编码特定于模型的水印信息。对于两个卷积之间的张量,可通过置换卷积的权重来对信道重新排序,而无需以其他方式改变输入或输出。对内部张量进行重新排序可改变模型108的数据表示而不改变模型的操作。这种信道重新排序技术可用于创建多个不同的模型,该多个不同的模型产生相同结果但包括在不改变模型操作的情况下难以修改的唯一信息。可将可以与权重值对应的信道的顺序用作水印以识别特定模型108。
信道排序技术在图3中示出。命名为CNN1的第一卷积神经网络302包括输入层304、卷积层306、310、314、318、卷积层之间的信道308、312、316,以及输出层320。使用权重来表示信道在2018年7月17日提交的美国专利申请16/038083中有所描述,该专利申请以引用方式并入本文。在示例CNN1 302中,输入层304与卷积层A 306通信。层A 306经由信道308与卷积层B 310通信,该信道按顺序为信道A1、A2、A3和A4。层B 310经由信道312与卷积层C 314通信,该信道按顺序为信道B1、B2和B3。层C 314经由信道316与卷积层D 318通信,该信道按顺序为C1和C2。层D与输出层320通信。
在特定实施方案中,可通过重新排序(例如,改变至少一对相邻卷积层之间的至少两个信道的位置)将信道重新排序技术应用于CNN1 302,以产生经修改的卷积神经网络CNN2 322。在示例性CNN2中,每对相邻层之间的信道已被重新排序。具体地讲,CNN1的信道308已被重新排序以在CNN2中形成信道328。信道328按顺序为信道A3、A1、A4和A2(从CNN1中的A1、A2、A3和A4重新排序)。需注意,改变两个信道(例如,A1和A2)的位置可足以在CNN2中产生可检测的差异而不改变CNN2 322产生的结果。然而,为了产生具有独特信道排序的多个不同CNN,可在每个CNN中使用不同的信道排列。CNN2 322中所示的其他排列包括信道332和信道336,信道332按顺序为信道B2、B3和B1(从B1、B2、B3重新排序),信道336按顺序为C2、C1(从C1、C2重新排序)。尽管信道已在CNN2中重新排序,但由CNN2产生的结果(例如,分类)可与CNN1针对相同输入产生的结果相同。
在特定实施方案中,由于水印信息驻留在模型中,因此很难对其进行修改。可通过改变数据中编码的序列号来规避用于识别模型的现有技术,诸如对模型中的唯一序列号进行编码。然而,尝试通过改变信道排序(例如,通过改变权重)来规避信道顺序的编码可能导致模型不正确地操作,因为模型的操作取决于信道排序。因此,很难从模型中移除水印。此外,除了能够对经训练的模型进行比较的本领域技术人员之外,信道重新排序技术很难检测。
图4示出了用于访问机器学习模型中的水印数据以验证该模型的来源或执行其他模型相关动作的示例性方法400。该方法可在步骤410处通过检测感觉输入开始。在步骤420处,该方法可使用机器学习模型来识别与机器学习模型相关联的一个或多个属性,其中这些属性是根据模型的训练基于感觉输入来识别的。在步骤430处,该方法可将该属性呈现为输出。在步骤440处,该方法可基于该属性激活、停用或修改机器学习模型的特征。在适当的情况下,特定实施方案可重复图4的方法的一个或多个步骤。
虽然本公开将图4的方法的特定步骤描述并示出为以特定顺序发生,但本公开设想图4的方法的任何合适的步骤以任何合适的顺序发生。此外,尽管本公开描述并示出了用于访问机器学习模型中的水印数据的、包括图4的方法的特定步骤的示例性方法,但本公开设想了用于访问机器学习模型中的水印数据的、包括任何合适步骤的任何合适的方法,在适当的情况下,这些步骤可包括图4的方法的步骤中的全部、一部分或不包括图4的方法的步骤。此外,虽然本公开描述并示出了执行图4的方法的特定步骤的特定部件、设备或系统,但本公开设想了执行图4的方法的任何合适步骤的任何合适部件、设备或系统的任何合适的组合。
图5示出了与一个或多个机器学习系统相关联的示例性网络环境500。网络环境500包括用户501、通过网络510彼此连接的客户端系统530、客户端托管的机器学习系统540、服务器托管的机器学习系统560和第三方系统570。尽管图5示出了用户501、客户端系统530、机器学习系统560、第三方系统570和网络510的特定布置,但本公开设想了用户501、客户端系统530、机器学习系统540、560、第三方系统570和网络510的任何合适的布置。以示例而非限制的方式,客户端系统530、服务器托管的机器学习系统560和第三方系统570中的两者或更多者可以绕过网络510直接彼此连接。又如,客户端系统530、机器学习系统560和第三方系统570中的两者或更多者可以整体地或部分地在物理上或逻辑上彼此协同定位。客户端托管的机器学习系统540可以位于客户端系统530上。此外,尽管图5示出了特定数量的用户501、客户端系统530、机器学习系统540、560、第三方系统570和网络510,但本公开设想了任何合适数量的用户501、客户端系统530、机器学习系统540、560、第三方系统570和网络510。以示例而非限制的方式,网络环境500可包括多个用户501、客户端系统530、机器学习系统540、560、第三方系统570和网络510。
在特定实施方案中,用户501可以是个体(人类用户)诸如应用程序/软件开发者、实体(例如,企业、商业或第三方应用程序)或与机器学习系统540、560中的一者或多者进行交互或者与其进行通信或通过其进行通信的群组(例如,个人或实体的群组)。在特定实施方案中,客户端托管的机器学习系统540可以是推理引擎104以及一个或多个机器学习模型106。在特定实施方案中,服务器托管的机器学习系统560可以是用于使用推理引擎104以及一个或多个机器学习模型106执行任务的网络可寻址计算系统。服务器托管的机器学习系统560可以由网络环境500的其他部件直接访问或经由网络510访问。第三方系统570可由网络环境500的其他部件直接访问或经由网络510访问。在特定实施方案中,一个或多个用户501可以使用一个或多个客户端系统530访问客户端托管的机器学习系统540、服务器托管的机器学习系统560或第三方系统570,向其发送数据,并且从其接收数据。客户端系统530可直接地、经由网络510或经由第三方系统访问服务器托管的机器学习系统560或第三方系统570。以示例而非限制的方式,客户端系统530可经由服务器托管的机器学习系统560访问第三方系统570。客户端系统530可以是任何合适的计算设备,例如个人计算机、膝上型计算机、蜂窝电话、智能电话、平板计算机或增强/虚拟现实设备。
本公开设想任何合适的网络510。以示例而非限制的方式,网络510的一个或多个部分可包括自组织网络、内联网、外联网、虚拟专用网络(VPN)、局域网(LAN)、无线LAN(WLAN)、广域网(WAN)、无线WAN(WWAN)、城域网(MAN)、互联网的一部分、公共交换电话网(PSTN)的一部分、蜂窝电话网络或这些中的两者或更多者的组合。网络510可包括一个或多个网络510。
链路550可将客户端系统530、服务器托管的机器学习系统560和第三方系统570连接到通信网络510或彼此连接。本公开设想任何合适的链路550。在特定实施方案中,一个或多个链路550包括一个或多个有线线路(例如,数字用户线路(DSL)或电缆数据服务接口规范(DOCSIS))、无线(例如,Wi-Fi或全球微波接入互操作(WiMAX))或光学(例如,同步光纤网络(SONET)或同步数字体系(SDH))链路。在特定实施方案中,一个或多个链路550各自包括自组织网络、内联网、外联网、VPN、LAN、WLAN、WAN、WWAN、MAN、互联网的一部分、PSTN的一部分、基于蜂窝技术的网络、基于卫星通信技术的网络、另一链路550或两个或更多个此类链路550的组合。在整个网络环境500中,链路550不必相同。一个或多个第一链路550可在一个或多个方面与一个或多个第二链路550不同。
图6示出了示例性计算机系统600。在特定实施方案中,一个或多个计算机系统600执行本文所述或所示的一种或多种方法的一个或多个步骤。在特定实施方案中,一个或多个计算机系统600提供本文所述或所示的功能。在特定实施方案中,在一个或多个计算机系统600上运行的软件执行本文所述或所示的一种或多种方法的一个或多个步骤或提供本文所述或所示的功能。特定实施方案包括一个或多个计算机系统600的一个或多个部分。在本文中,在适当的情况下,提及计算机系统可包括计算设备,反之亦然。此外,在适当的情况下,提及计算机系统可包括一个或多个计算机系统。
本公开设想了任何合适数量的计算机系统600。本公开设想了采用任何合适物理形式的计算机系统600。以示例而非限制的方式,计算机系统600可以是嵌入式计算机系统、片上系统(SOC)、单板计算机系统(SBC)(例如,模块上计算机(COM)或模块上系统(SOM))、台式计算机系统、膝上型计算机或笔记本计算机系统、交互式自助服务机、大型机、计算机系统网、移动电话、个人数字助理(PDA)、服务器、平板电脑系统、增强现实/虚拟现实设备,或这些中两者或更多者的组合。在适当的情况下,计算机系统600可包括一个或多个计算机系统600;可为统一的或分布式的;可跨越多个位置;可跨越多个机器;可跨越多个数据中心;或位于云端中,该云端可包括一个或多个网络中的一个或多个云部件。在适当的情况下,一个或多个计算机系统600可在没有实质性的空间或时间限制的情况下执行本文所述或所示的一种或多种方法的一个或多个步骤。以示例而非限制的方式,一个或多个计算机系统600可实时地或以批处理模式执行本文所述或所示的一种或多种方法的一个或多个步骤。在适当的情况下,一个或多个计算机系统600可在不同时间或在不同位置执行本文所述或所示的一种或多种方法的一个或多个步骤。
在特定实施方案中,计算机系统600包括处理器602、存储器604、存储装置606、输入/输出(I/O)接口608、通信接口610和总线612。尽管本公开描述并示出了以特定布置方式具有特定数量的特定部件的特定计算机系统,但本公开还设想以任何适当布置方式具有任何适当数量的任何适当部件的任何适当计算机系统。
在特定实施方案中,处理器602包括用于执行指令(诸如编写计算机程序的指令)的硬件。以示例而非限制的方式,为了执行指令,处理器602可从内部寄存器、内部高速缓存器、存储器604或存储装置606检索(或获取)指令;解码并执行它们;然后将一个或多个结果写入内部寄存器、内部高速缓存器、存储器604或存储装置606。在特定实施方案中,处理器602可包括用于数据、指令或地址的一个或多个内部高速缓存器。在适当的情况下,本公开设想了包括任何适当数量的任何适当内部高速缓存器的处理器602。以示例而非限制的方式,处理器602可包括一个或多个指令高速缓存器、一个或多个数据高速缓存器,以及一个或多个转换后备缓冲器(TLB)。该指令高速缓存器中的指令可为存储器604或存储装置606中的指令的副本,并且指令高速缓存器可加速处理器602对那些指令的检索。该数据高速缓存器中的数据可为存储器604或存储装置606中的数据的副本,用以在处理器602处执行的指令在其上操作;在处理器602处执行的先前指令的结果,用以在处理器602处执行的后续指令访问或用以写入存储器604或存储装置606;或其他适当数据。该数据高速缓存器可加速处理器602的读或写操作。TLB可加速处理器602的虚拟地址转换。在特定实施方案中,处理器602可包括用于数据、指令或地址的一个或多个内部寄存器。在适当的情况下,本公开设想了包括任何适当数量的任何适当内部寄存器的处理器602。在适当的情况下,处理器602可包括一个或多个算术逻辑单元(ALU);可为多核处理器;或包括一个或多个处理器602。尽管本公开描述并示出了特定处理器,但本公开还设想了任何适当的处理器。
在特定实施方案中,存储器604包括主存储器,该主存储器用于存储供处理器602执行的指令或供处理器602操作的数据。以示例而非限制的方式,计算机系统600可将指令从存储装置606或另一来源(例如,另一计算机系统600)加载至存储器604。然后处理器602可将指令从存储器604加载到内部寄存器或内部高速缓存器。为了执行指令,处理器602可从内部寄存器或内部高速缓存器中检索指令并对其解码。在执行指令期间或之后,处理器602可将一个或多个结果(其可为中间结果或最终结果)写入内部寄存器或内部高速缓存器。然后处理器602可将这些结果中的一者或多者写入存储器604。在特定实施方案中,处理器602仅执行一个或多个内部寄存器或内部高速缓存器中或存储器604中(而不是存储装置606或其他位置)的指令,并且仅对一个或多个内部寄存器或内部高速缓存器中或存储器604中(而不是存储装置606或其他位置)的数据进行操作。一个或多个存储器总线(其可各自包括地址总线和数据总线)可将处理器602耦合至存储器604。总线612可包括一个或多个存储器总线,如下所述。在特定实施方案中,一个或多个存储器管理单元(MMU)位于处理器602和存储器604之间并且便于访问处理器602所请求的存储器604。在特定实施方案中,存储器604包括随机存取存储器(RAM)。该RAM可为易失性存储器,并且在适当的情况下,该RAM可为动态RAM(DRAM)或静态RAM(SRAM)。此外,在适当的情况下,该RAM可为单端口或多端口RAM。本公开设想任何合适的RAM。在适当的情况下,存储器604可包括一个或多个存储器604。尽管本公开描述并示出了特定存储器,但本公开还设想了任何适当的存储器。
在特定实施方案中,存储装置606包括用于数据或指令的海量存储装置。以示例而非限制的方式,存储装置606可包括硬盘驱动器(HDD)、软盘驱动器、闪存存储器、光盘、磁光盘、磁带、通用串行总线(USB)驱动器,或这些中的两者或更多者的组合。在适当的情况下,存储装置606可包括可移除的或不可移除的(或固定的)介质。在适当的情况下,存储装置606可在计算机系统600的内部或外部。在特定实施方案中,存储装置606为非易失性固态存储器。在特定实施方案中,存储装置606包括只读存储器(ROM)。在适当的情况下,该ROM可为掩模编程ROM、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、电可改写ROM(EAROM)、闪存存储器,或这些中的两者或更多者的组合。本公开设想了采用任何合适物理形式的海量存储装置606。在适当的情况下,存储装置606可包括促成处理器602和存储装置606之间的通信的一个或多个存储控制单元。在适当的情况下,存储装置606可包括一个或多个存储装置606。尽管本公开描述并示出了特定存储装置,但本公开还设想了任何适当的存储装置。
在特定实施方案中,I/O接口608包括硬件、软件或两者,从而提供用于计算机系统600与一个或多个I/O设备之间的通信的一个或多个接口。在适当的情况下,计算机系统600可包括这些I/O设备中的一者或多者。这些I/O设备中的一者或多者可允许个人与计算机系统600之间的通信。以举例而非限制的方式,I/O设备可包括键盘、小键盘、麦克风、监视器、鼠标、打印机、扫描仪、扬声器、静态相机、触笔、平板电脑、触摸屏、轨迹球、摄像机、另一适当I/O设备或这些中的两者或更多者的组合。I/O设备可包括一个或多个传感器。本公开设想任何合适的I/O设备以及用于它们的任何合适的I/O接口608。在适当的情况下,I/O接口608可包括使处理器602能够驱动这些I/O设备中的一者或多者的一个或多个设备或软件驱动程序。在适当的情况下,I/O接口608可包括一个或多个I/O接口608。尽管本公开描述并示出了特定I/O接口,但本公开还设想了任何合适的I/O接口。
在特定实施方案中,通信接口610包括提供用于在计算机系统600与一个或多个其他计算机系统600或一个或多个网络之间进行通信(例如,基于分组的通信)的一个或多个接口的硬件、软件或两者。以示例而非限制的方式,通信接口610可包括用于与以太网或其他基于有线的网络进行通信的网络接口控制器(NIC)或网络适配器,或用于与无线网络诸如WI-FI网络进行通信的无线NIC(WNIC)或无线适配器。本公开设想了任何合适的网络以及用于其的任何合适的通信接口610。以示例而非限制的方式,计算机系统600可与自组织网络、个人局域网(PAN)、局域网(LAN)、广域网(WAN)、城域网络(MAN)、或互联网的一个或多个部分,或这些中的两者或更多者的组合进行通信。这些网络中的一者或多者的一个或多个部分可为有线的或无线的。例如,计算机系统600可与无线PAN(WPAN)(例如,BLUETOOTHWPAN)、WI-FI网络、WI-MAX网络、蜂窝电话网络(例如,全球移动通信系统(GSM)网络)、其他合适的无线网络或这些中的两者或更多者的组合进行通信。在适当的情况下,计算机系统600可包括用于这些网络中的任一网络的任何合适的通信接口610。在适当的情况下,通信接口610可包括一个或多个通信接口610。尽管本公开描述并示出了特定通信接口,但本公开还设想了任何合适的通信接口。
在特定实施方案中,总线612包括将计算机系统600的部件彼此耦接的硬件、软件或两者。以举例而非限制的方式,总线612可包括加速图形端口(AGP)或其他图形总线、增强型工业标准架构(EISA)总线、前端总线(FSB)、超传输(HT)互连件、工业标准架构(ISA)总线、无限带宽互连件、少针脚型接口(LPC)总线、存储器总线、微信道架构(MCA)总线、外围部件互连(PCI)总线、PCI-Express(PCIe)总线、串行高级技术附件(SATA)总线、视频电子标准协会局域(VLB)总线、其他适当总线,或这些中的两者或更多者的组合。在适当的情况下,总线612可包括一个或多个总线612。尽管本公开描述并示出了特定总线,但本公开还设想了任何合适的总线或互连件。
在本文中,在适当的情况下,计算机可读非暂态存储介质可包括一个或多个基于半导体或其他集成电路(IC)(例如,现场可编程门阵列(FPGA)或专用IC(ASIC))、硬盘驱动器(HDD)、混合硬盘驱动器(HHD)、光盘、光盘驱动器(ODD)、磁光盘、磁光驱动器、软式磁盘片、软盘驱动器(FDD)、磁带、固态驱动器(SSD)、RAM驱动器、安全数字卡或驱动器、任何其他适当计算机可读非暂态存储介质,或这些中的两者或更多者的任何适当组合。在适当的情况下,计算机可读非暂态存储介质可为易失性的、非易失性的,或易失性的和非易失性的组合。
在本文中,除非另外明确指明或通过上下文另外指明,否则“或”是包含性的而非排他性的。因此,在本文中,除非另外明确指明或通过上下文另外指明,“A或B”是指“A、B或二者”。此外,除非另外明确指明或通过上下文另外指明,“和”既是共同的也是分别的。因此,在本文中,除非另外明确指明或通过上下文另外指明,“A和B”是指“以共同或分别形式的A和B”。
本公开的范围涵盖本领域的普通技术人员将理解的本文所述或所示的示例性实施方案的所有变化、替换、变型、更改和修改。本公开的范围不限于本文所述或所示的示例性实施方案。此外,尽管本公开描述并示出本文的相应实施方案包括特定部件、元件、特征、功能、操作或步骤,但这些实施方案中的任一者可包括本领域的普通技术人员将理解的本文任何位置所述或所示的任何部件、元件、特征、功能、操作或步骤的任何组合或排列。此外,在所附权利要求书中提及装置或系统或装置或系统的部件被适配为、被布置成、能够、被配置为、被允许、可操作为或能够操作为执行特定功能涵盖:该装置、系统、部件,无论其本身或该特定功能是否被激活、打开或解锁,只要该装置、系统或部件是被这样适配、布置、赋予能力、配置、授予能力、操作、或运作即可。另外,尽管本公开描述或示出了提供特定优点的特定实施方案,但具体实施方案可提供这些优点中的一部分或全部或不提供这些优点。