生成定制的机器学习模型以使用人工智能来执行任务
技术领域
本公开整体涉及人工智能(AI)模型的创建和管理,并且更具体地涉及用于使用户能够经由定制AI模型将AI技术结合到其应用程序和设备中的系统和方法。
背景技术
人工智能(AI)使得计算设备/机器能够从体验中学习、适应新的输入并且执行类人任务,诸如例如下棋计算机、自动驾驶汽车、对象检测、图像标记、语音转文本识别、场景识别等。AI技术主要依赖于深度学习和神经网络模型。通过使用AI技术,可训练计算机以通过处理大量数据并且识别数据中的模式来完成具体任务。可通过超级计算机的等同物来实现对大量数据的这种处理。因此,将AI应用于小型或低计算量的设备诸如智能电话、平板电脑、嵌入式传感器、相机、智能手表等相当具有挑战性。此外,与这些类型的设备相关联的开发者可能没有受过训练和/或可能不具备关于如何将AI实施到旨在在这些小型或低计算量的设备上运行的软件/应用程序中的知识。因此,需要一种使这些开发者能够轻松地将AI功能集成到其应用程序中的机制。
发明内容
在特定实施方案中,一种计算系统诸如模型管理系统可使用户(例如,开发者)能够轻松地将人工智能(AI)集成到其应用程序(例如,软件)中。该模型管理系统可提供用户友好的界面(参见图1),用户可使用该界面来提供其规范。该用户规范可包括例如对以下各项的选择:他们期待集成到其应用程序中的AI任务(例如,对象检测、场景识别、图像标记等);他们希望在其上部署AI任务的设备;以及特定于所选择的设备的一个或多个性能约束(例如,存储器、延迟、功率等)。基于该用户规范,模型管理系统可生成定制AI模型,该定制AI模型能够集成到用户应用程序中并且能够在用户指定的设备上操作。该模型管理系统可通过从包含多个AI模型的数据库中检索原始或高级模型来生成定制AI模型。可编译该高级模型以生成模型二进制。在特定实施方案中,可通过根据用户规范从检索到的模型移除不必要的部件以及添加一个或多个部件来创建该模型二进制。该模型管理系统可将一个或多个界面函数与模型二进制绑定。一个或多个界面函数可为与由用户所选择的AI任务相关联的函数。例如,如果任务是图像标记,则界面函数是包含在图像中的一组标签。响应于将界面函数与模型二进制绑定,该模型管理系统可将模型二进制转换为设备级模型,该设备级模型被配置为在用户所选择的设备上操作。例如,该设备级模型可被配置用于用户在查询时间指定的iPhone。该设备级模型可最终以可下载链路的形式提供给用户,该用户可下载该链路以将期望的AI功能集成到其应用程序中。
本文所公开的实施方案仅为示例,并且本公开的范围不限于这些实施方案。特定实施方案可包括上文所公开的实施方案的部件、元件、特征、功能、操作或步骤的全部、部分或不包括它们中的任一者。根据本发明的实施方案具体地公开于涉及方法、存储介质、系统和计算机程序产品的所附权利要求中,其中一个权利要求类别(例如,方法)中提及的任何特征也可在另一个权利要求类别(例如,系统)中提出。前面所附权利要求中的从属关系或引用关系仅出于形式原因而选择。然而,由有意引用任何先前权利要求(尤其是多个从属关系)而产生的任何主题也可被要求保护,使得权利要求及其特征的任何组合均被公开并且可被要求保护,而与所附权利要求中所选择的从属关系无关。可受权利要求书保护的主题不仅包括所附权利要求书中所述的特征的组合,而且还包括权利要求中特征的任何其他组合,其中权利要求书中提及的每个特征可与权利要求书中的任何其他特征或其他特征的组合相结合。此外,本文所述或所描绘的实施方案和特征中的任一者均可在单独的权利要求中被要求保护并且/或者与本文所述或所描绘的任何实施方案或特征或与所附权利要求书的任何特征以任何组合形式被要求保护。
在一个实施方案中,一种用于生成定制的机器学习模型以使用人工智能来执行任务的方法可包括由一个或多个计算系统:向用户的客户端系统提供用于显示的用户界面,该用户界面包括用于选择用于集成到用户应用程序中的AI任务的第一组选项、用于选择用户希望在其上部署所选择的AI任务的一个或多个设备的第二组选项和用于选择特定于所选择的设备的一个或多个性能约束的第三组选项;从用户的客户端系统基于该第一组选项、该第二组选项和该第三组选项中的用户选择来接收用户规范;基于该用户规范生成定制AI模型;以及向用户的客户端系统发送用于集成到用户应用程序中的定制AI模型,其中该定制AI模型一旦集成就使得用户应用程序能够在所选择的设备上执行所选择的AI任务。
在一个实施方案中,基于用户规范生成定制AI模型包括:从包括多个AI模型的数据库检索高级模型,其中多个AI模型是基于先前的用户规范生成的并且存储在数据库中;基于所述用户规范编译所述高级模型以生成模型二进制;将一个或多个界面函数与该模型二进制绑定,其中该一个或多个界面函数是与所选择的AI任务相关联的函数;以及将该模型二进制转换为设备级模型,该设备级模型被配置为在由用户选择的设备上操作。
在一个实施方案中,发送定制AI模型包括向用户的客户端系统发送可下载链路以将设备级模型下载到客户端系统中,其中该设备级模型一旦被下载就将与所选择的AI任务相关联的一个或多个功能集成到用户应用程序中。
在一个实施方案中,编译高级模型包括根据用户规范从该高级模型移除不必要的部件以及添加一个或多个部件。
在一个实施方案中,从用户的客户端系统接收与定制AI模型相关联的基准数据;以及基于该基准数据训练该多个AI模型。
在一个实施方案中,训练该多个AI模型包括:改善AI模型的性能;向AI模型添加一个或多个特征;或创建新的AI模型并且将新的AI模型存储在数据库中。
在一个实施方案中,该基准数据包括关于定制AI模型的用户性能反馈,该用户性能反馈指示定制AI模型在速度、存储器和功率使用方面服务于用户需求的程度。
在一个实施方案中,基于与模型中的每个模型相关联的性能度量对多个AI模型进行排序,该性能度量包括基准数据;基于排序从多个AI模型中选择前N个模型;将前N个模型转换为设备级模型;在速度、存储器和功率约束方面对设备级模型执行自动基准测试;以及将设备级模型存储在数据库中以供将来访问或检索。
在一个实施方案中,AI任务包括以下中的一者或多者:对象检测、场景识别、图像标记、图像增强、对象分割、行为识别、语音识别或文本识别。
在一个实施方案中,该设备包括以下中的一者或多者:智能电话、平板电脑、可穿戴设备、嵌入式传感器、相机或无人机。
在一个实施方案中,一个或多个性能约束包括:存储器约束;延迟约束;或功率约束。
在一个实施方案中,存储器约束使得用户能够指定要用于所选择的AI任务的存储器量。
在一个实施方案中,延迟约束使得用户能够指定用户希望所选择的AI任务在所选择的设备上运行的刷新速率或每秒帧数(FPS)。
在一个实施方案中,功率约束使用户能够指定要由所选择的AI任务利用的功率量。
在一个实施方案中,该第一组选项、该第二组选项或该第三组选项中的每一者包括用于启用用户选择的粒度级别的子选项。
在一个实施方案中,一种或多种计算机可读非暂态存储介质体现用于生成定制的AI机器学习模型以使用人工智能来执行任务的软件,该软件包括当被执行时可操作以执行以下操作的指令:向用户的客户端系统提供用于显示的用户界面,该用户界面包括用于选择用于集成到用户应用程序中的人工智能(AI)任务的第一组选项、用于选择用户希望在其上部署所选择的AI任务的一个或多个设备的第二组选项以及用于选择特定于所选择的设备的一个或多个性能约束的第三组选项;从所述用户的所述客户端系统基于所述第一组选项、所述第二组选项和所述第三组选项中的用户选择来接收用户规范;基于该用户规范生成定制AI模型;以及向用户的客户端系统发送用于集成到用户应用程序中的定制AI模型,其中该定制AI模型一旦集成就使用户应用程序能够在所选择的设备上执行所选择的AI任务。
在计算机可读非暂态存储介质的一个实施方案中,基于用户规范生成定制AI模型包括:从包括多个AI模型的数据库检索高级模型,其中该多个AI模型是基于先前的用户规范生成的并存储在数据库中;基于所述用户规范编译所述高级模型以生成模型二进制;将一个或多个界面函数与该模型二进制绑定,其中该一个或多个界面函数是与所选择的AI任务相关联的函数;以及将该模型二进制转换为设备级模型,该设备级模型被配置为在由用户选择的设备上操作。
在计算机可读非暂态存储介质的一个实施方案中,发送定制AI模型包括向用户的客户端系统发送可下载链路以将设备级模型下载到客户端系统中,其中该设备级模型一旦被下载就将与所选择的AI任务相关联的一个或多个功能集成到用户应用程序中。
在计算机可读非暂态存储介质的一个实施方案中,编译高级模型包括根据用户规范从该高级模型移除不必要的部件以及添加一个或多个部件。
在一个实施方案中,一种用于生成定制的AI机器学习模型以使用人工智能来执行任务的系统,该系统包括:一个或多个处理器;以及非暂态存储器,该非暂态存储器耦接到处理器,该非暂态存储器包括能够由处理器执行的指令,该处理器能够在执行指令时操作以进行以下操作:向用户的客户端系统提供用于显示的用户界面,该用户界面包括用于选择用于集成到用户应用程序中的人工智能(AI)任务的第一组选项、用于选择用户希望在其上部署所选择的AI任务的一个或多个设备的第二组选项以及用于选择特定于所选择的设备的一个或多个性能约束的第三组选项;从用户的客户端系统基于该第一组选项、该第二组选项和该第三组选项中的用户选择来接收用户规范;基于该用户规范生成定制AI模型;以及向用户的客户端系统发送用于集成到用户应用程序中的定制AI模型,其中该定制AI模型一旦集成就使用户应用程序能够在所选择的设备上执行所选择的AI任务。
附图说明
图1示出了用于定义用户规范的示例性界面。
图2A示出了用于根据用户规范来分配适当的AI模型的模型管理系统的各种部件及其相关联的功能。
图2B示出了用于训练AI模型池的模型管理系统的附加部件及其相关联的功能。
图3示出了基于图1的界面中所定义的用户规范在最终用户的移动设备上执行的示例性AI任务。
图4示出了与模型管理系统相关联的示例性网络环境。
图5示出了示例性计算机系统。
具体实施方式
在特定实施方案中,一种计算系统诸如模型管理系统200可使用户(例如,开发者)能够轻松地将人工智能(AI)集成到其应用程序(例如,软件)中。模型管理系统200可提供用户友好的界面(参见图1),用户可使用该界面来提供其规范。该用户规范可包括例如对以下各项的选择:他们期待集成到其应用程序中的AI任务(例如,对象检测、场景识别、图像标记等);他们希望在其上部署AI任务的设备;和特定于所选择的设备的一个或多个性能约束(例如,存储器、延迟、功率等)。基于该用户规范,模型管理系统200可生成定制AI模型,该定制AI模型可集成到用户应用程序中并且可在用户指定的设备上操作。该模型管理系统200可通过从包含多个AI模型的数据库中检索原始或高级模型来生成定制AI模型。可编译高级模型以生成该模型二进制。在特定实施方案中,可通过根据用户规范从检索到的模型移除不必要的部件以及添加一个或多个部件来创建模型二进制。模型管理系统200可将一个或多个界面函数与模型二进制绑定。一个或多个界面函数可为与由用户所选择的AI任务相关联的函数。例如,如果任务是图像标记,则界面函数是包含在图像中的一组标签。响应于将界面函数与模型二进制绑定,模型管理系统200可将模型二进制转换为设备级模型,该设备级模型被配置为在用户所选择的设备上操作。例如,该设备级模型可被配置用于用户在查询时间指定的iPhone。该设备级模型可最终以可下载链路的形式提供给用户,用户可下载该链路以将期望的AI功能集成到其应用程序中。
图1示出了用于定义用户规范的示例性界面100。在一些实施方案中,界面100可呈现在web浏览器内。例如,用户可进入网站,在该网站上在其web浏览器内向他们呈现用户界面100。如所描绘的,用户界面100可提供多种菜单102-110、这些菜单内的选项以及子选项或类别112-114,用户可选择这些子选项或类别以便实现其应用程序所需的AI功能。应当指出的是,此处所示的用户界面是用于示例性目的,并且不以任何方式限于本文所示的菜单、选项和子选项。多种其他菜单、选项和子选项是可能的并且在本公开的范围内。
如图1所示,界面100可包括任务菜单102、设备类型菜单104和约束菜单106-110。任务菜单102可包括多种AI任务,用户可从这些AI任务中选择期望的任务以结合到他们的应用程序中。以举例而非限制的方式,这些任务可包括场景识别、图像标记、对象检测、对象跟踪、对象分割、人体姿态估计、图像增强、行为识别、人类情感识别、语音识别、文本识别、自然语言理解和/或任何种类的数据处理任务。在特定实施方案中,一个或多个类别112可包括在这些任务中的一个或多个任务内。任务内的该一个或多个类别可包括用户可能希望特别关注的具体对象或感兴趣项目。例如,对象检测任务内的类别可包括人、树、汽车、自行车、狗、建筑物等。又如,场景识别任务内的类别可包括海滩、雪山、花朵、建筑物、秋叶、瀑布、夜景等。再如,图像增强任务内的类别可包括去噪、超分辨率等。
设备类型菜单104可包括可在其上部署给定任务(例如,从任务菜单102所选择的任务)的不同类型的用户设备。以举例而非限制的方式,用户设备可包括智能电话(例如,各种iPhone和Android型号)、平板电脑(例如,Apple iPad、Amazon Kindle等)、智能手表(例如,Apple Watch、Samsung Gear等)、基于ARM的平台(例如,Raspberry Pi、NanoPI等)、嵌入式传感器、相机、基于intel的平台、无人机、基于snapdragon的平台、基于NVIDIA的平台(例如,各种GPU)、X-86系列、ambarella平台等。从用户设备列表中,用户可选择他们希望在其上部署所选择的任务的设备。换句话说,用户可选择特定于其应用程序的一个或多个目标设备。以举例的方式,用户可能正在开发特定于iPhone用户的对象检测应用程序,因此,用户可从设备类型菜单104选择具体iPhone型号。
约束菜单106-110可包括存储器约束菜单106、延迟约束菜单108和功率约束菜单110。存储器约束菜单106可使得用户能够指定要用于其所选择的任务的存储器量。例如,如图所示,用户可选择为对象检测任务分配100MB存储器。延迟约束菜单108可使得用户能够指定他们希望他们的任务运行的刷新速率或每秒帧数(FPS)。例如,如图所示,用户可选择以10FPS运行对象检测任务。功率约束菜单110可使得用户能够指定其所选择的任务要利用的功率量。例如,如图所示,用户可选择为对象检测任务分配1JPI功率。
图2A示出了用于根据用户规范来分配适当的AI模型的模型管理系统200的各种部件及其相关联的功能。一旦用户已使用图1中讨论的界面定义了其规范(例如,任务、设备类型、存储器约束、功率约束、延迟约束),就可将用户规范发送到查询生成器服务器202。查询生成器服务器202接收用户规范并生成查询204,该查询可用于从数据库206中检索一个或多个原始模型208(或设备级模型)。可以某些编程语言定义设备级模型。例如,可以Python语言定义设备级模型。数据库206可包括可基于先前的用户规范来定义和存储的多个AI模型。先前的用户规范可与当前用户规范相关或不相关。例如,先前的规范可能与针对旨在在Android电话上操作的应用程序的图像标记任务有关,并且模型管理系统200根据该规范生成模型并将该模型存储在数据库206中以供将来访问和/或检索。存储先前的模型或具有该模型数据库是有利的,因为这可避免从头开始创建模型,并且可重新使用和调整现有模型以匹配当前的用户规范。
从数据库206中检索到的原始或高级模型208可由模型编译器210处理以使其根据当前用户规范而适当。例如,模型编译器210可编译模型以移除任何不必要的模块/部件并添加任何所需的部件以匹配用户规范。例如,可基于诸如任务:对象检测;设备类型:Android;存储器约束:1GB;延迟约束:100FPS;功率约束:1JPI;以及一些附加约束的用户规范预先生成原始模型。模型编译器210可编译该原始模型以移除附加约束,并且可将设备类型变为iPhone以及将存储器约束变为100MB以使模型适合于当前用户规范。在特定实施方案中,模型编译器210的输出为紧凑模型包或模型二进制212。在特定实施方案中,编译原始模型基本上将高级或原始模型转换为模型二进制,该模型二进制也可包括用户查询,如图2A所示。
界面绑定器214可将紧凑模型/模型二进制与一个或多个界面函数绑定。该界面函数可以是一旦模型被部署到应用程序中实际用户就将在应用程序或软件中使用的函数。例如,为了执行图像标记的任务,该界面函数可处理输入图像,并且该函数的输出将是图像内的一堆标签。
一旦一个或多个界面函数与模型二进制绑定,就可将最终软件二进制(模型二进制和界面函数的组合)发送到分配器218,该分配器创建链路220以供用户在其设备(例如,客户端系统430)上下载最终软件二进制216。在下载时,用户可将所接收的二进制并入其应用程序中,然后可最终释放该二进制以供最终用户使用。最终用户可使用开发者的软件来执行AI功能。以举例的方式,开发者可能已经为iPhone用户开发了对象检测应用程序,该对象检测应用程序可利用100MB的存储器和1JPI的功率,并且可以10FPS运行(例如,如图1所示)。最终用户可在iPhone上使用该对象检测应用程序来检测其周围环境中的一个或多个对象。例如,如图3所示,可在iPhone6型号上使用该应用程序来检测最终用户前方的人。
在特定实施方案中,内置于模型中的自动基准测试部件可基于例如所提供的模型服务于用户需求的程度以及与模型相关联的各种性能约束(例如,存储器和功率使用的量、速度等)来自动评估模型的性能。该自动基准测试部件可将基准测试得到的数据报告给模型管理系统200,该模型管理系统可将该数据存储在AI模型的数据库206中并将其用于训练模型。在一些实施方案中,还可基于用户在查询时间提供的反馈来执行模型训练,如下面进一步详细讨论的。
图2B示出了用于训练AI模型池的模型管理系统200的附加部件及其相关联的功能。模型的训练可包括提高现有模型的性能、向现有模型添加一个或多个新特征和/或创建新模型。用户可在查询时间提供训练数据,或换句话讲,在用户使用界面100定义他们的规范时提供训练数据。以举例而非限制的方式,训练数据可包括来自用户的针对当前可能不包括在界面100中的对象执行对象检测的请求,但用户可具有对应于那些对象的数据。然后,用户可将其数据连同其期望规范一起提供给模型管理系统200,该模型管理系统可使用该数据来细化其与对象检测有关的现有模型,以包括由用户提供的新的对象类别。又如,用户可在查询时间为模型提供其对于模型的性能反馈(例如,先前模型在速度、存储器和功率使用方面服务于其需求的程度),并且模型管理系统200可使用该性能反馈来训练服务器上的AI模型池(由附图标记222指示)。训练模型的其他可能方式也是可能的并且在本公开的范围内。
经训练的AI模型224可被发送到排名器226以用于排名。排名器226可基于各种因素对模型进行排名。这些因素可包括例如与模型中的每一个模型相关联的性能度量、基准数据、用户对模型的反馈等。基于该排序,可确定最高级别模型228。例如,可选择排名前五的模型并将其发送到设备的模型转换器230。模型转换器230可将排名最高的模型转换为设备级模型232,如上面所讨论的。可在速度、存储器和功率约束方面对这些模型执行自动基准测试(由附图标记234指示),并且最后可将这些设备级模型连同基准数据一起存储在AI模型的数据库206中以供将来访问和/或检索。在特定实施方案中,图2B所示的步骤222-234可与图2A所示的步骤异步地执行。
图3示出了基于图1的界面中所定义的用户规范在最终用户的移动设备上执行的示例性AI任务。例如,如图1所示,用户(例如,开发者)选择对象检测(例如,人检测112)功能,以便集成到他们的能够在各种iPhone 114上运行的应用程序中。开发者还可定义其具有对象检测功能的应用程序可利用100MB的存储器和1JPI的功率并且可以10FPS运行。一旦这些用户规范被集成到开发者的应用程序中,开发者就可发布其应用程序以供最终用户(例如,消费者)使用。例如,如图3所示,在其iPhone上安装有开发者的应用程序的最终用户/消费者只需将手机保持在特定方向上,即可使用该应用程序来检测他们前方的人或他们周围的环境。这对于最终用户/消费者而言是有利的,因为消费者不需要任何特殊的或高功率的计算设备并且能够在他们的现有设备上使用AI功能。这对于开发者也是有利的,因为开发者只需通过使用界面100选择期望的选项,即可轻松地将AI功能集成到其应用程序(例如,软件)中。
图4示出了与模型管理系统相关联的示例性网络环境400。网络环境400包括通过网络410彼此连接的用户401、客户端系统430、模型管理系统460和第三方系统470。尽管图4示出了用户401、客户端系统430、模型管理系统460、第三方系统470和网络410的特定布置结构,但本公开设想了用户401、客户端系统430、模型管理系统460、第三方系统470和网络410的任何合适的布置结构。以举例而非限制的方式,客户端系统430、模型管理系统460和第三方系统470中的两者或更多者可绕过网络410直接彼此连接。又如,客户端系统430、模型管理系统460和第三方系统470中的两者或更多者可整体地或部分地在物理上或逻辑上彼此协同定位。此外,尽管图4示出了特定数量的用户401、客户端系统430、模型管理系统460、第三方系统470和网络410,但本公开设想了任何合适数量的用户401、客户端系统430、模型管理系统460、第三方系统470和网络410。以举例而非限制的方式,网络环境400可包括多个用户401、客户端系统430、模型管理系统460、第三方系统470和网络410。
在特定实施方案中,用户401可以是个体(人类用户)诸如应用程序/软件开发者、实体(例如,企业、公司或第三方应用程序)或与模型管理系统460交互或通过该模型管理系统进行通信的群组(例如,个人或实体的群组)。在特定实施方案中,模型管理系统460可以是用于管理(例如,创建、更新、训练等)多个AI模型的网络可寻址计算系统。模型管理系统460可由网络环境400的其他部件直接访问或经由网络410访问。在特定实施方案中,模型管理系统460可包括授权服务器(或其他合适的部件),该授权服务器允许用户401例如通过设置适当的隐私设置来选择加入或退出由模型管理系统460记录他们的行为或与其他系统(例如,第三方系统470)共享他们的行为。用户的隐私设置可确定可记录与用户相关联的哪些信息、可如何记录与用户相关联的信息、何时可记录与用户相关联的信息、谁可记录与用户相关联的信息、可与谁共享与用户相关联的信息以及可能出于何种目的来记录或共享与用户相关联的信息。授权服务器可用于在适当时通过分块、数据散列、匿名化或其他合适的技术来强制执行模型管理系统460的用户的一个或多个隐私设置。第三方系统470可由网络环境400的其他部件直接访问或经由网络410访问。在特定实施方案中,一个或多个用户401可使用一个或多个客户端系统430来访问模型管理系统460或第三方系统470、向其发送数据以及从其接收数据。客户端系统430可直接、经由网络410或经由第三方系统访问模型管理系统460或第三方系统470。以举例而非限制的方式,客户端系统430可经由模型管理系统460访问第三方系统470。客户端系统430可以是任何合适的计算设备,例如个人计算机、膝上型计算机、蜂窝电话、智能电话、平板计算机或增强/虚拟现实设备。
本公开设想任何合适的网络410。以举例而非限制的方式,网络410的一个或多个部分可包括自组织网络、内联网、外联网、虚拟专用网络(VPN)、局域网(LAN)、无线LAN(WLAN)、广域网(WAN)、无线WAN(WWAN)、城域网(MAN)、互联网的一部分、公共交换电话网(PSTN)的一部分、蜂窝电话网络或这些中的两者或更多者的组合。网络410可包括一个或多个网络410。
链路450可将客户端系统430、模型管理系统460和第三方系统470连接到通信网络410或彼此连接。本公开设想任何合适的链路450。在特定实施方案中,一个或多个链路450包括一个或多个有线线路(例如,数字用户线路(DSL)或电缆数据服务接口规范(DOCSIS))、无线(例如,Wi-Fi或全球微波接入互操作(WiMAX))或光学(例如,同步光纤网络(SONET)或同步数字体系(SDH))链路。在特定实施方案中,一个或多个链路450各自包括自组织网络、内联网、外联网、VPN、LAN、WLAN、WAN、WWAN、MAN、互联网的一部分、PSTN的一部分、基于蜂窝技术的网络、基于卫星通信技术的网络、另一链路450或两个或更多个此类链路450的组合。在整个网络环境400中,链路450不必相同。一个或多个第一链路450可在一个或多个方面与一个或多个第二链路450不同。
图5示出了示例性计算机系统500。在特定实施方案中,一个或多个计算机系统500执行至少参考图2A和图2B所述或所示的一种或多种方法的一个或多个步骤。在特定实施方案中,一个或多个计算机系统500提供本文所述或所示的功能。在特定实施方案中,在一个或多个计算机系统500上运行的软件执行本文所述或所示的一种或多种方法的一个或多个步骤或提供本文所述或所示的功能。特定实施方案包括一个或多个计算机系统500的一个或多个部分。在本文中,在适当的情况下,提及计算机系统可包括计算设备,反之亦然。此外,在适当的情况下,提及计算机系统可包括一个或多个计算机系统。
本公开设想了任何合适数量的计算机系统500。本公开设想了采用任何合适物理形式的计算机系统500。以举例而非限制的方式,计算机系统500可为嵌入式计算机系统、片上系统(SOC)、单板计算机系统(SBC)(例如,模块上计算机(COM)或模块上系统(SOM))、台式计算机系统、膝上型计算机或笔记本计算机系统、交互式自助服务机、大型机、计算机系统网、移动电话、个人数字助理(PDA)、服务器、平板计算机系统、增强/虚拟现实设备或这些中的两者或更多者的组合。在适当的情况下,计算机系统500可包括一个或多个计算机系统500;可为统一的或分布式的;可跨越多个位置;可跨越多个机器;可跨越多个数据中心;或位于云端中,该云端可包括一个或多个网络中的一个或多个云部件。在适当的情况下,一个或多个计算机系统500可在没有实质性的空间或时间限制的情况下执行本文所述或所示的一种或多种方法的一个或多个步骤。以举例而非限制的方式,一个或多个计算机系统500可实时地或以批处理模式执行本文所述或所示的一种或多种方法的一个或多个步骤。在适当的情况下,一个或多个计算机系统500可在不同时间或在不同位置执行本文所述或所示的一种或多种方法的一个或多个步骤。
在特定实施方案中,计算机系统500包括处理器502、存储器504、存储装置506、输入/输出(I/O)接口508、通信接口510和总线512。尽管本公开描述并示出了以特定布置方式具有特定数量的特定部件的特定计算机系统,但本公开还设想以任何适当布置方式具有任何适当数量的任何适当部件的任何适当计算机系统。
在特定实施方案中,处理器502包括用于执行指令(诸如编写计算机程序的指令)的硬件。以举例而非限制的方式,为了执行指令,处理器502可从内部寄存器、内部高速缓存器、存储器504或存储装置506检索(或获取)指令;解码并执行它们;然后将一个或多个结果写入内部寄存器、内部高速缓存器、存储器504或存储装置506。在特定实施方案中,处理器502可包括用于数据、指令或地址的一个或多个内部高速缓存器。在适当的情况下,本公开设想了包括任何适当数量的任何适当内部高速缓存器的处理器502。以举例而非限制的方式,处理器502可包括一个或多个指令高速缓存器、一个或多个数据高速缓存器,以及一个或多个转换后备缓冲器(TLB)。该指令高速缓存器中的指令可为存储器504或存储装置506中的指令的副本,并且指令高速缓存器可加速处理器502对那些指令的检索。该数据高速缓存器中的数据可为存储器504或存储装置506中的数据的副本,用以在处理器502处执行的指令在其上操作;在处理器502处执行的先前指令的结果,用以在处理器502处执行的后续指令访问或用以写入存储器504或存储装置506;或其他适当数据。该数据高速缓存器可加速处理器502的读或写操作。TLB可加速处理器502的虚拟地址转换。在特定实施方案中,处理器502可包括用于数据、指令或地址的一个或多个内部寄存器。在适当的情况下,本公开设想了包括任何适当数量的任何适当内部寄存器的处理器502。在适当的情况下,处理器502可包括一个或多个算术逻辑单元(ALU);可为多核处理器;或可包括一个或多个处理器502。尽管本公开描述并示出了特定处理器,但本公开还设想了任何适当的处理器。
在特定实施方案中,存储器504包括主存储器,该主存储器用于存储供处理器502执行的指令或供处理器502操作的数据。以举例而非限制的方式,计算机系统500可将指令从存储装置506或另一来源(例如,另一计算机系统500)加载至存储器504。然后处理器502可将指令从存储器504加载到内部寄存器或内部高速缓存器。为了执行指令,处理器502可从内部寄存器或内部高速缓存器中检索指令并对其解码。在执行指令期间或之后,处理器502可将一个或多个结果(其可为中间结果或最终结果)写入内部寄存器或内部高速缓存器。然后处理器502可将这些结果中的一者或多者写入存储器504。在特定实施方案中,处理器502仅执行一个或多个内部寄存器或内部高速缓存器中或存储器504中(而不是存储装置506或其他位置)的指令,并且仅对一个或多个内部寄存器或内部高速缓存器中或存储器504中(而不是存储装置506或其他位置)的数据进行操作。一个或多个存储器总线(其可各自包括地址总线和数据总线)可将处理器502耦合至存储器504。总线512可包括一个或多个存储器总线,如下所述。在特定实施方案中,一个或多个存储器管理单元(MMU)位于处理器502和存储器504之间并且便于访问处理器502所请求的存储器504。在特定实施方案中,存储器504包括随机存取存储器(RAM)。在适当的情况下,该RAM可为易失性存储器。在适当的情况下,该RAM可为动态RAM(DRAM)或静态RAM(SRAM)。此外,在适当的情况下,该RAM可为单端口或多端口RAM。本公开设想任何合适的RAM。在适当的情况下,存储器504可包括一个或多个存储器504。尽管本公开描述并示出了特定存储器,但本公开还设想了任何适当的存储器。
在特定实施方案中,存储装置506包括用于数据或指令的海量存储装置。以举例而非限制的方式,存储装置506可包括硬盘驱动器(HDD)、软盘驱动器、闪存存储器、光盘、磁光盘、磁带、通用串行总线(USB)驱动器,或这些中的两者或更多者的组合。在适当的情况下,存储装置506可包括可移除的或不可移除的(或固定的)介质。在适当的情况下,存储装置506可在计算机系统500的内部或外部。在特定实施方案中,存储装置506为非易失性固态存储器。在特定实施方案中,存储装置506包括只读存储器(ROM)。在适当的情况下,该ROM可为掩模编程ROM、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、电可改写ROM(EAROM)、闪存存储器,或这些中的两者或更多者的组合。本公开设想了采用任何合适物理形式的海量存储装置506。在适当的情况下,存储装置506可包括促成处理器502和存储装置506之间的通信的一个或多个存储控制单元。在适当的情况下,存储装置506可包括一个或多个存储装置506。尽管本公开描述并示出了特定存储装置,但本公开还设想了任何适当的存储装置。
在特定实施方案中,I/O接口508包括硬件、软件或两者,从而提供用于计算机系统500与一个或多个I/O设备之间的通信的一个或多个接口。在适当的情况下,计算机系统500可包括这些I/O设备中的一者或多者。这些I/O设备中的一者或多者可允许个人与计算机系统500之间的通信。以举例而非限制的方式,I/O设备可包括键盘、小键盘、麦克风、监视器、鼠标、打印机、扫描仪、扬声器、静态相机、触笔、平板电脑、触摸屏、轨迹球、摄像机、另一适当I/O设备或这些中的两者或更多者的组合。I/O设备可包括一个或多个传感器。本公开设想任何合适的I/O设备以及用于它们的任何合适的I/O接口508。在适当的情况下,I/O接口508可包括使处理器502能够驱动这些I/O设备中的一者或多者的一个或多个设备或软件驱动程序。在适当的情况下,I/O接口508可包括一个或多个I/O接口508。尽管本公开描述并示出了特定I/O接口,但本公开还设想了任何合适的I/O接口。
在特定实施方案中,通信接口510包括提供用于在计算机系统500与一个或多个其他计算机系统500或一个或多个网络之间进行通信(例如,基于分组的通信)的一个或多个接口的硬件、软件或两者。以举例而非限制的方式,通信接口510可包括用于与以太网或其他基于有线的网络进行通信的网络接口控制器(NIC)或网络适配器,或用于与无线网络诸如WI-FI网络进行通信的无线NIC(WNIC)或无线适配器。本公开设想了任何合适的网络以及用于其的任何合适的通信接口510。以举例而非限制的方式,计算机系统500可与自组织网络、个人局域网(PAN)、局域网(LAN)、广域网(WAN)、城域网络(MAN)、互联网的一个或多个部分,或这些中的两者或更多者的组合进行通信。这些网络中的一者或多者的一个或多个部分可为有线的或无线的。例如,计算机系统500可与无线PAN(WPAN)(例如,BLUETOOTHWPAN)、WI-FI网络、WI-MAX网络、蜂窝电话网络(例如,全球移动通信系统(GSM)网络)、其他合适的无线网络或这些中的两者或更多者的组合进行通信。在适当的情况下,计算机系统500可包括用于这些网络中的任一网络的任何合适的通信接口510。在适当的情况下,通信接口510可包括一个或多个通信接口510。尽管本公开描述并示出了特定通信接口,但本公开还设想了任何合适的通信接口。
在特定实施方案中,总线512包括将计算机系统500的部件彼此耦接的硬件、软件或两者。以举例而非限制的方式,总线512可包括加速图形端口(AGP)或其他图形总线、增强型工业标准架构(EISA)总线、前端总线(FSB)、超传输(HT)互连件、工业标准架构(ISA)总线、无限带宽互连件、少针脚型接口(LPC)总线、存储器总线、微通道架构(MCA)总线、外围部件互连(PCI)总线、PCI-Express(PCIe)总线、串行高级技术附件(SATA)总线、视频电子标准协会局域(VLB)总线、其他适当总线,或这些中的两者或更多者的组合。在适当的情况下,总线512可包括一个或多个总线512。尽管本公开描述并示出了特定总线,但本公开还设想了任何合适的总线或互连件。
在本文中,在适当的情况下,计算机可读非暂态存储介质可包括一个或多个基于半导体或其他集成电路(IC)(例如,现场可编程门阵列(FPGA)或专用IC(ASIC))、硬盘驱动器(HDD)、混合硬盘驱动器(HHD)、光盘、光盘驱动器(ODD)、磁光盘、磁光驱动器、软式磁盘片、软盘驱动器(FDD)、磁带、固态驱动器(SSD)、RAM驱动器、安全数字卡或驱动器、任何其他适当计算机可读非暂态存储介质,或这些中的两者或更多者的任何适当组合。在适当的情况下,计算机可读非暂态存储介质可为易失性的、非易失性的,或易失性的和非易失性的组合。
在本文中,除非另外明确指明或通过上下文另外指明,否则“或”是包含性的而非排他性的。因此,在本文中,除非另外明确指明或通过上下文另外指明,“A或B”是指“A、B或二者”。此外,除非另外明确指明或通过上下文另外指明,“和”既是共同的也是分别的。因此,在本文中,除非另外明确指明或通过上下文另外指明,“A和B”是指“以共同或分别形式的A和B”。
本公开的范围涵盖本领域的普通技术人员将理解的本文所述或所示的示例性实施方案的所有变化、替换、变型、更改和修改。本公开的范围不限于本文所述或所示的示例性实施方案。此外,尽管本公开描述并示出本文的相应实施方案包括特定部件、元件、特征、功能、操作或步骤,但这些实施方案中的任一者可包括本领域的普通技术人员将理解的本文任何位置所述或所示的任何部件、元件、特征、功能、操作或步骤的任何组合或排列。此外,在所附权利要求书中提及装置或系统或装置或系统的部件被适配为、被布置成、能够、被配置为、被允许、可操作为或能够操作为执行特定功能涵盖:该装置、系统、部件,无论其本身或该特定功能是否被激活、打开或解锁,只要该装置、系统或部件是被这样适配、布置、赋予能力、配置、授予能力、操作、或运作即可。另外,尽管本公开描述或示出了提供特定优点的特定实施方案,但具体实施方案可提供这些优点中的一部分或全部或不提供这些优点。