CN110892425A - 设备上机器学习平台 - Google Patents
设备上机器学习平台 Download PDFInfo
- Publication number
- CN110892425A CN110892425A CN201880046411.0A CN201880046411A CN110892425A CN 110892425 A CN110892425 A CN 110892425A CN 201880046411 A CN201880046411 A CN 201880046411A CN 110892425 A CN110892425 A CN 110892425A
- Authority
- CN
- China
- Prior art keywords
- machine learning
- application
- computing device
- training
- platform
- 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.)
- Granted
Links
- 238000010801 machine learning Methods 0.000 title claims abstract description 238
- 238000012549 training Methods 0.000 claims abstract description 209
- 238000000034 method Methods 0.000 claims abstract description 63
- 230000004044 response Effects 0.000 claims description 9
- 230000006870 function Effects 0.000 abstract description 19
- 239000008186 active pharmaceutical agent Substances 0.000 description 59
- 230000008569 process Effects 0.000 description 30
- 238000010586 diagram Methods 0.000 description 14
- 230000008901 benefit Effects 0.000 description 10
- 230000000694 effects Effects 0.000 description 8
- 238000002347 injection Methods 0.000 description 8
- 239000007924 injection Substances 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 230000002776 aggregation Effects 0.000 description 4
- 238000004220 aggregation Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 4
- 230000000295 complement effect Effects 0.000 description 4
- 238000013480 data collection Methods 0.000 description 4
- 239000013589 supplement Substances 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000004075 alteration Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000002708 enhancing effect Effects 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000000275 quality assurance Methods 0.000 description 2
- 230000000153 supplemental effect Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
- 239000011800 void material Substances 0.000 description 1
Images
Classifications
-
- 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
- G06N5/048—Fuzzy inferencing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Automation & Control Theory (AREA)
- Fuzzy Systems (AREA)
- Computational Linguistics (AREA)
- Stored Programmes (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本公开提供用于设备上机器学习的系统和方法。具体地,本公开针对一种设备上机器学习平台和相关联的技术,其使得能够进行设备上预测、训练、示例收集和/或其他机器学习任务或功能。设备上机器学习平台可以包括上下文提供器,该上下文提供器将上下文特征安全地注入到收集的训练示例和/或客户端提供的输入数据中,用于生成预测/推断。因此,设备上机器学习平台可以使能作为对应用或其他客户端的服务的机器学习模型的集中训练示例收集、模型训练以及使用。
Description
技术领域
本公开总体上涉及机器学习。更具体地,本公开涉及使得能够进行设备上预测、训练、示例收集和/或其他机器学习任务或功能的设备上机器学习平台和相关联的技术。
背景技术
近年来,机器学习已被越来越多地用于向计算设备的用户提供改进的服务。具体地,许多应用或其他计算程序或系统依赖于一个或多个机器学习模型来基于与程序、设备和/或用户相关联的输入数据生成推断。(一个或多个)应用可以使用(一个或多个)推断来执行或影响任何类型的任务或服务。
用于解决机器学习问题的一种常规训练方案包括在集中位置(例如服务器设备)收集来自多个计算设备(例如诸如智能电话的用户设备)的多个训练示例。然后可以基于收集的训练示例在集中位置训练机器学习模型。
另外,在一些情况下,训练的模型可以存储在集中位置。为了从模型接收推断,要求用户计算设备通过网络将输入数据发送到服务器计算设备,等待服务器设备实现机器学习模型以基于发送的数据生成(一个或多个)推断,然后再次通过网络从服务器计算设备接收(一个或多个)推断。
在这样的场景中,要求通过网络在用户计算设备和服务器计算设备之间发送训练示例和/或推断。由于通过网络发送的数据可能易于被拦截,因此这种网络发送意味着数据安全风险。另外,这种网络发送增加了网络业务量,这可能导致降低的通信速度。此外,与通过网络来回发送数据相关联的等待时间可能导致提供应用的服务时的延迟。
最近,某些应用已经包括机器学习模型,这些机器学习模型存储在应用内并由该应用在用户设备上实现。但是,该体系结构既在实现上有挑战性又是资源密集的。例如,在这种场景下,要求应用存储、管理、训练和/或实现一个或多个机器学习模型。在应用本身内包括模型和相应的支持服务可能增加应用的数据大小,从而导致更大的存储器占用。
应用内的机器学习还可能需要更频繁的应用更新。例如,随着底层机器学习引擎被更新或以其他方式进步,可能需要更新应用。在下载和安装更新时,应用更新可能不期望地要求网络使用和用户停机时间。
此外,由于需要在应用本身中内置附加服务,因此应用内的机器学习也可以使应用开发复杂化。因此,可能要求开发人员学习并了解不同机器学习引擎复杂性的最新进展。
发明内容
本公开的实施例的方面和优点将在以下描述中部分地阐述,或者可以从描述中学习,或者可以通过实施例的实践而学习。
本公开的一个示例方面针对一种计算设备。所述计算设备包括:一个或多个处理器;以及一个或多个非暂时性计算机可读介质。所述一个或多个非暂时性计算机可读介质存储由所述一个或多个处理器实现的一个或多个应用;一个或多个机器学习模型;以及指令,所述指令在由所述一个或多个处理器执行时,使计算设备实现执行操作的设备上机器学习平台。所述操作包括:经由预测应用编程接口从所述一个或多个应用中的第一应用接收输入数据。所述操作包括:采用所述一个或多个机器学习模型中的至少第一机器学习模型,以至少部分地基于输入数据来生成至少一个推断。所述操作包括:经由预测应用编程接口将由第一机器学习模型生成的所述至少一个推断提供给第一应用。
本公开的另一示例方面针对一个或多个非暂时性计算机可读介质,其共同存储指令,所述指令在由一个或多个处理器执行时使计算设备实现执行操作的设备上机器学习平台。所述操作包括:经由预测应用编程接口从存储在计算设备上的一个或多个应用的第一应用接收输入数据。所述操作包括:采用存储在计算设备上的一个或多个机器学习模型中的至少第一机器学习模型,以至少部分地基于输入数据来生成至少一个推断。所述操作包括:经由预测应用编程接口将由第一机器学习模型生成的所述至少一个推断提供给第一应用。
本公开的另一示例方面针对一种计算机实现的方法。所述方法包括:由计算设备经由收集应用编程接口从存储在计算设备上的多个应用中的第一应用中接收新的训练示例。所述方法包括:由计算设备将新的训练示例存储在计算设备的集中示例数据库中。所述方法包括:由计算设备经由训练应用编程接口从第一应用接收指令,所述指令用于至少部分地基于由集中示例数据库存储的训练示例中的一个或多个来对由计算设备存储的第一机器学习模型进行重新训练。所述方法包括:响应于该指令,由计算设备至少部分地基于由集中示例数据库存储的训练示例中的一个或多个来使第一机器学习模型被重新训练。所述方法包括:由计算设备经由预测应用编程接口从所述第一应用接收输入数据。所述方法包括:采用第一机器学习模型,至少部分地基于输入数据来生成至少一个推断。所述方法包括:经由预测应用编程接口将由第一机器学习模型生成的所述至少一个推断提供给第一应用。
本公开的其他方面针对各种系统、装置、非暂时性计算机可读介质、用户接口和电子设备。
参考以下描述和所附权利要求,将更好地理解本公开的各个实施例的这些和其他特征、方面和优点。结合在本说明书中并构成本说明书的一部分的附图示出了本公开的示例实施例,并且与描述一起用于解释相关原理。
附图说明
在说明书中阐述了针对本领域普通技术人员的实施例的详细讨论,该说明书参考了附图,其中:
图1描绘了根据本公开的示例实施例的包括设备上机器学习平台的示例计算系统的框图。
图2描绘了根据本公开的示例实施例的示例机器学习模型部署的图形图。
图3描绘了根据本公开的示例实施例的示例个性化和联合学习数据流的图形图。
图4描绘了根据本公开的示例实施例的示例设备上机器学习平台的框图。
图5A和5B描绘了根据本公开的示例实施例的注入上下文特征的示例机器学习平台的框图。
图6A和图6B描绘了根据本公开的示例实施例的执行模型训练的示例设备的框图。
图7描绘了根据本公开的示例实施例的示例联合学习进程的图形图。
图8描绘了根据本公开的示例实施例的使用机器学习模型来生成推断的示例方法的流程图。
图9描绘了根据本公开的示例实施例的收集用于执行机器学习的训练示例的示例方法的流程图。
图10描绘了根据本公开的示例实施例的训练机器学习模型的示例方法的流程图。
具体实施方式
总体上,本公开针对用于设备上机器学习的系统和方法。具体地,本公开针对一种设备上机器学习平台和相关联的技术,其使得能够进行设备上预测、训练、示例收集和/或其他机器学习任务或功能,这些可以被统称为“机器学习功能”。
设备上机器学习平台可以是本地存储在计算设备或终端(例如,智能电话或平板计算机)上的一个或多个计算机程序的形式,其被配置为在由用户设备或终端执行时执行机器学习管理操作,其使能代表一个或多个本地存储的应用、例程或其他本地客户端的设备上机器学习功能的执行。可以使用在计算设备或终端上本地实现的一个或多个机器学习引擎来执行设备上机器学习功能中的至少一些。可以将代表一个或多个本地存储的应用或例程(其可以称为“客户端”)的设备上机器学习功能的执行作为集中服务提供给那些客户端,这些客户端可以经由一个或多个应用编程接口(API)与设备上机器学习平台交互。
另外,在一些实施方式中,设备上机器学习平台可以包括上下文提供器,该上下文提供器将上下文特征安全地注入收集的训练示例和/或用于生成预测/推断的客户端提供的输入数据。因此,设备上机器学习平台可以使能作为对应用或其他客户端的服务的机器学习模型的集中训练示例收集、模型训练以及使用用。
更具体地,诸如例如移动计算设备(例如,智能电话)的计算设备可以存储或以其他方式包括一个或多个应用(例如,移动应用)。该计算设备还可包括并实现设备上机器学习平台和一个或多个机器学习模型。例如,机器学习模型可以由设备存储在平台管理的集中模型层中。
根据本公开的一个方面,应用可以经由API(其可以称为“预测API”)与设备上机器学习平台通信,以提供输入数据并基于来自一个或多个机器学习模型的输入数据获得预测。作为示例,在一些实施方式中,给定用于预测计划(例如,用于运行模型以获得推断/预测的指令)的统一资源标识符(URI)和模型参数,设备上机器学习平台可以下载URI内容(例如,预测计划和参数)并通过运行模型(例如,通过与机器学习引擎进行交互以使引擎实现模型)来获得一个或多个推断/预测。另外,平台可以缓存内容,使得其可以后续的预测请求。
因此,通过经由客户端/服务关系与设备上机器学习平台进行通信,可以由应用访问设备上机器学习模型。具体地,在一些实施方式中,机器学习平台可以是可以由应用引用的独立的多租户服务。因此,给定的应用不被要求存储、管理、训练和/或实现(一个或多个)机器学习模型,而是可以简单地与设备上机器学习平台进行通信以从(一个或多个)模型请求和接收推断。
根据本公开的另一方面,计算设备可以进一步包括集中示例数据库,其存储从一个或多个应用接收的训练示例。具体地,设备上机器学习平台可以经由API(其可以称为“收集API”)从应用接收训练示例,并且可以管理在集中示例数据库中的示例的存储。例如,作为客户端或平台的租户的每个应用可以具有其自己的存储在集中示例数据库内的示例的(一个或多个)集合,并且该(一个或多个)集合可以以在线的方式补充和/或管理。
在一些实施方式中,设备上机器学习平台可以使得根据与提供训练示例的应用相关联的一个或多个选项参数,存储从应用接收的每个训练示例(例如,在其对应的收集内)。作为一个示例,选项参数可以包括生存时间参数,该生存时间参数定义了训练示例被存储(例如,随后被删除)的时间段。在一些实施方式中,可以经由收集API通过提供给平台的指令来预定义和/或调整选项参数。
根据本公开的另一方面,在一些实施方式中,设备上机器学习平台可以将描述与计算设备相关联的上下文的上下文特征安全地注入训练示例中。例如,在从应用接收训练示例之后,设备上平台的上下文提供器组件可以确定一个或多个上下文特征,并且可以将这些上下文特征与训练示例一起存储在集中示例数据库中。例如,新训练示例中提供的上下文特征和数据可以存储为单个数据库条目。可以通过用于这种特定应用的选项参数来指定特定上下文特征,所述特定上下文特征被确定,然后被注入从特定应用接收的训练示例或以其他方式与从特定应用接收的训练示例相关联和/或与其一起存储。如上所述,可以经由收集API调整或预定义这些选项特征。因此,应用可以控制(例如,经由定义选项参数)哪些上下文特征或上下文类型被注入到其训练示例中。
在一些实施方式中,上下文特征被注入到服务侧上,使得上下文特征永远不需要变得对应用直接可用。具体地,在一些实施方式中,一个或多个应用不能直接访问集中示例数据库,使得即使提供训练示例的应用也无法访问与特定训练示例一起存储的上下文信息。
在一些实施方式中,可以根据许多不同的上下文类型对上下文特征进行分组或以其他方式分类。通常,每个上下文类型可以指定或包括具有已知名称和已知类型的一组上下文特征。一种示例上下文类型是设备信息,其包括以下示例上下文特征:音频状态、网络状态、电力连接等。
在一些实施方式中,上下文提供器在注入的时间/点从设备(例如,从设备的上下文管理器)请求对给定的上下文特征注入的值。替代地或附加地,上下文提供器可以注册为一个或多个上下文更新的监听器,并且可以基于一个或多个上下文更新来维护上下文特征的当前值的上下文特征缓存。然后,当注入上下文特征时,上下文提供器可以简单地访问上下文特征缓存,并为特定的上下文特征注入在缓存中维护的当前值。
除了或替代在存储时向训练示例中注入上下文特征,上下文提供器还可以在推断时执行上下文特征的注入。具体地,类似于用于训练示例收集的上述过程,当特定应用或其他客户端(例如,经由预测API)请求基于一些客户端提供的输入数据来生成的推断时,上下文提供器可以与输入数据一起注入或提供补充上下文特征,用于输入到相应的机器学习模型中。因此,除了客户端提供的输入数据之外,还可以至少部分地基于上下文信息来进行推断,这可以帮助改进推断的准确性。
除了以上描述之外,还可以向用户提供控件,该控件允许用户就这里描述的系统、程序或特征是否以及何时可以使能收集用户信息(例如,训练示例和上下文特征)以及是否从服务器向用户发送了内容或通信这两者进行选择。另外,某些数据在其被存储或使用之前可以以一种或多种方式处理,使得个人可识别信息被删除。例如,可以处理用户的身份,使得无法针对该用户确定任何个人可识别信息,或者可以在获得位置信息的情况下将用户的地理位置概括化(例如,概括化到城市、邮政编码或州级别),使得无法确定用户的特定位置。因此,用户可以控制关于用户收集了哪些信息、如何使用该信息以及向用户提供了哪些信息。
根据另一方面,由于某些应用或其他客户端可能仅具有访问某些上下文特征或上下文类型的权限(例如,由设备用户定义或控制),因此上下文提供器可以执行客户端权限控制。具体地,在一些实施方式中,设备上机器学习平台或其他设备组件可以维护哪些客户端有权限访问哪些上下文类型的映射。当要注入上下文特征(例如,将其注入到训练示例中进行存储或将其注入以在推断时补充客户端提供的输入数据)时,上下文提供器可以检查相应应用或其他客户端相对于上下文特征或要注入的上下文类型的权限状态。例如,特定应用的权限状态和上下文类型可以描述该应用是否具有访问此类上下文类型的权限。上下文提供器将仅注入应用有权限访问的上下文类型中包含的上下文特征,从而防止应用访问(甚至以二手方式)其无权访问的上下文特征/类型。。
类似于上述的生存时间选项参数,在一些实施方式中,每个上下文特征可以具有与其相关联或分配给它的有效期。该有效期信息可以与包含(一个或多个)上下文特征的每个训练示例相关联。在一些实施方式中,在特定训练示例中提供的特定上下文特征的有效期结束时,可以从这样的训练示例中删除或以其他方式移除这样的上下文特征的值。替代地,可以删除或以其他方式移除整个训练示例。
此外,在一些实施方式中,响应于特定应用或其他客户端相对于特定上下文特征或上下文类型的权限状态的改变,设备上平台可以从集中示例数据库中删除与特定应用相关联的训练示例所关联的(一个或多个)此类上下文特征或类型的任何值或条目。另外,在一些实施方式中,在删除(一个或多个)上下文特征值之后,可以在剩余数据上重新训练相应的(一个或多个)模型。
根据本公开的又一方面,应用可以经由API(其可以称为“训练API”)与设备上机器学习平台通信,以使得基于存储在集中示例数据库中的训练示例重新训练或更新机器学习模型。作为示例,在一些实施方式中,用于给定训练计划(例如,用于训练模型的指令)的URI,设备上机器学习平台可以基于先前收集的示例运行对模型的训练(例如,通过与机器学习引擎进行交互以使得由引擎训练模型)。例如,可以在计划的时间和/或在设备空闲时在后台执行训练。
在对模型的重新训练之后,重新训练的模型可以用于提供推断,如本文其他地方所述。通常,由于已经针对用户特定的数据对模型进行了重新训练,因此这些推断将具有更高的准确性。因此,设备上机器学习平台可以使能作为对应用或其他客户端的服务的机器学习模型的集中示例数据收集和相应个性化。
根据另一方面,在一些实施方式中,机器学习平台可以将关于机器学习模型的日志或其他更新上传到云,以用于对机器学习度量的详细分析。作为示例,在一些实施方式中,设备上平台可以确定描述了重新训练的机器学习模型的参数或在模型的重新训练期间出现的机器学习模型的参数的改变的更新。平台可以将更新发送到中央服务器计算设备(例如,“云”),以与其他计算设备提供的其他更新进行聚合。因此,该平台可以使能参与称为“联合学习”的进程,在该进程中,设备将基于本地存储的数据确定对模型的本地更新,然后将该本地更新传达给云服务(例如,以隐私保护和通信高效的方式)用于聚合以生成模型的全局更新。
根据另一方面,在一些实施方式中,为了保护应用彼此分开,每个应用可以具有针对设备上平台所提供的某些功能(例如,针对每个功能)的其自己的区域(enclave)。例如,平台可以在经由工厂将用于访问平台的接口返回给应用之前对应用进行认证。然后,返回的接口可以表示平台中应用区域的唯一视图。在该过程的一个示例实施方式中,当应用连接到平台的API时,该应用可以提供验证该应用的身份的签名的包令牌(pakage token)。在不通过此认证的情况下,应用将无法获得API接口。
根据本公开的另一方面,在一些实施方式中,设备上机器学习平台可以完全从底层机器学习引擎抽象。例如,机器学习引擎可以是TensorFlow引擎、神经网络库或使能实现机器学习模型以进行推断和/或训练的其他引擎。由于这样的抽象,机器学习平台可以将模型工件视为在云中生成然后运送到设备(例如,经由动态模型下载)的二进制大对象(blob),其中它们随后由匹配引擎解释。以这种方式,机器学习平台及其支持的应用可以对机器学习引擎的改变有适应力,并且/或者相对于所采用的特定引擎或引擎类型不受约束/灵活。
根据另一方面,与设备上平台互补的工具包可以提供一组工具(例如,Python工具),以在将模型作为工件运送到设备之前在云中创建和模拟模型。在一些实施方式中,该工具包可以从不同版本的机器学习引擎的相同源工件(例如,Python源工件)生成,或甚至从不同的引擎类型(例如,以移动为中心的TensorFlow Lite相对于神经网络库等)生成。
在一些实施方式中,设备上机器学习平台可以被包括在应用中或被实现为应用,诸如例如移动应用。例如,在Android操作系统的上下文中,设备上机器学习平台可以包括在可以下载和/或更新的Android套件工具包(Andriod Package Kit,APK)中。在一个特定示例中,设备上机器学习平台可以被包括在较大应用中或作为较大应用的一部分实现,该较大应用向其他应用或设备本身提供许多不同的支持服务。例如,除了设备上机器学习平台之外,较大应用还可以提供使计算设备能够与数字分发服务进行交互的服务(例如,从“应用商店”下载应用和/或更新)和/或其他服务。在另一示例中,设备上机器学习平台可以被包括在设备的操作系统中或实现为该设备的操作系统的一部分,而不是作为单独的(standalone)应用。
本公开的系统和方法提供了许多技术效果和益处。作为一个示例技术效果和益处,设备上机器学习平台可以基于本地存储的特定于设备的训练示例来使能机器学习模型的个性化,从而导致更高准确性的推断。类似地,如本文其他地方所述,设备上平台可以使设备能够参与“联合学习”,在联合学习中聚合本地更新以生成全局更新,从而导致所有个体的改进的全局模型准确性。
作为另一示例技术效果和益处,设备上机器学习平台可以使能将上下文信号安全地包括到训练示例和/或推断输入中。也就是说,可以以维护隐私并遵守用户定义的权限的方式将上下文特征添加到训练示例或推断输入中。通过包含上下文信息,可以改进机器学习模型提供的推断的准确性。
作为另一示例技术效果和益处,设备上机器学习平台可以提供集中服务,使得应用不需要管理(例如,训练和/或运行)机器学习模型或与机器学习引擎交互。因此,给定的应用不被要求存储、管理、训练和/或实现(一个或多个)机器学习模型,而是可以简单地与设备上机器学习平台进行通信以从(一个或多个)模型中请求和接收推断。这可以使得应用的数据大小更小。其还可以简化应用或其他客户端的开发和部署,因为不要求应用开发人员学习每个不同的机器学习引擎的复杂性,而是可以简单地依赖于平台API的使用。
类似于先前的效果和益处,设备上机器学习平台还可以使得容易地更新单个集中服务而不是所有应用。例如,当启动新版本或类型的机器学习引擎时,通常仅要求更新设备上平台以与新引擎进行交互,因为应用或其他客户端不与引擎进行交互,而是使该平台代表它们这样做。这可以消除应用不断确保它们与机器学习引擎的(一个或多个)最新版本兼容的需求,因为随着引擎技术进步,它们可以替代地依赖设备上平台来保持最新。
作为又一个示例技术效果和益处,设备上机器学习平台可以改进通信网络效率和使用率。也就是说,在过去的由服务器而不是在设备上执行机器学习的范式中,各种类型的信息(例如输入数据、训练示例、推断、模型参数等)被要求由服务器通过通信网络(例如互联网)发送到设备。然而,由于本公开使能设备上预测、训练、示例收集和/或其他机器学习任务或功能,因此不要求(至少在每种情况下)这样的信息通过通信网络来发送。因此,改进了通信网络业务量、效率和使用率。另外,由于没有输入数据、训练示例等被发送至服务器以及从服务器发送,因此可以提高数据的安全性。
现在参考附图,将进一步详细讨论本公开的示例实施例。
示例设备和系统
图1描绘了根据本公开的示例实施例的包括设备上机器学习平台122的示例计算设备102的框图。
计算设备102可以是任何类型的计算设备,包括例如台式机、膝上型计算机、平板计算设备、智能电话、能够佩戴的计算设备、游戏机、嵌入式计算设备或其他形式的计算设备。因此,在一些实施方式中,计算设备102可以是移动计算设备和/或用户计算设备。
计算设备102包括一个或多个处理器112和存储器114。一个或多个处理器112可以是任何合适的处理设备(例如,处理器核心、微处理器、ASIC、FPGA、控制器、微控制器等),并且可以是可操作地连接的一个处理器或多个处理器。存储器114可以包括一个或多个非暂时性计算机可读存储介质,诸如RAM、ROM、EEPROM、EPROM、闪存设备、磁盘等以及它们的组合。存储器114可以存储由处理器112执行以使得计算设备102执行操作的数据和指令。计算设备102还可以包括网络接口116,该网络接口116使得能够通过一个或多个网络(例如,互联网)进行通信。
设备上机器学习平台122可以使能设备上预测、训练、示例收集和/或其他机器学习任务或功能,其可以被统称为“机器学习功能”。
设备上机器学习平台122可以是本地存储在计算设备102(例如,智能电话或平板计算机)上的一个或多个计算机程序的形式,其被配置为在由设备102执行时执行机器学习管理操作,其使能代表一个或多个本地存储的应用102a-c或其他本地客户端的设备上机器学习功能的执行。可以使用在计算设备102上本地实现的一个或多个机器学习引擎128来执行至少一些设备上机器学习功能。代表一个或多个本地存储的应用120a-c或例程(其可以称为“客户端”)的设备上机器学习功能的执行可以作为集中服务提供给那些客户端,这些客户端可以经由一个或多个应用编程接口(API)与设备上机器学习平台122交互。
另外,在一些实施方式中,设备上机器学习平台122可以包括上下文提供器,该上下文提供器将上下文特征安全地注入收集的训练示例和/或用于生成预测/推断的客户端提供的输入数据。因此,设备上机器学习平台122可以使能作为对应用120a-c或其他客户端的服务的机器学习模型132a-c的集中训练示例收集、模型训练以及使用。
更具体地,计算设备102可以存储或以其他方式包括一个或多个应用120a-c(例如,移动应用)。计算设备102还可包括并实现设备上机器学习平台122和一个或多个机器学习模型132a-c。例如,机器学习模型132a-c可以由设备102存储在由平台122管理的集中模型存储库130中。
根据本公开的一个方面,应用120a-c可以经由API(其可以称为“预测API”)与设备上机器学习平台122通信,以提供输入数据并从机器学习模型132a-c中的一个或多个基于输入数据获得预测。作为示例,在一些实施方式中,给定用于预测计划(例如,用于运行模型以获得推断/预测的指令)的统一资源标识符(URI)和模型参数,设备上机器学习平台122可以下载URI内容(例如,预测计划和参数)并通过运行模型(例如,通过与机器学习引擎128交互以使该引擎实现模型)来获得一个或多个推断/预测。另外,平台122可以缓存内容(例如,在存储库130内),使得其可以用于后续的预测请求。
因此,通过经由客户端/服务关系与设备上机器学习平台122通信,应用120a-c可以访问设备上机器学习模型132a-c。例如,相应的机器学习模型132a-c可以针对每个应用120a-c被提供,并由平台122进行管理。在其他实施方式中,两个或更多个应用120a-c可以共享单个机器学习模型132a-c,或者单个应用120a-c可以具有两个或更多个模型132a-c。
在一些实施方式中,机器学习平台122可以是可以由应用120a-c引用的单独的多租户服务。这样,不要求给定应用120a-c存储、管理、训练和/或实现(一个或多个)机器学习模型132a-c,而是可以简单地与设备上机器学习平台122通信以请求和接收来自(一个或多个)模型132a-c的推断。
根据本公开的另一方面,计算设备102可以进一步包括存储从应用120a-c接收的训练示例的集中示例数据库124。具体地,设备上机器学习平台122可以经由API(其可以称为“收集API”)从应用120a-c接收训练示例,并且可以管理在集中示例数据库124中的示例的存储。例如,作为平台122的客户端或租户的每个应用120a-c可以具有其自己的存储在集中示例数据库124中的示例的(一个或多个)集合,并且该(一个或多个)集合可以以在线方式来补充和/或管理。
在一些实施方式中,设备上机器学习平台122可以根据与提供训练示例的应用120a-c相关联的一个或多个选项参数,使得存储从应用120a-c接收的每个训练示例(例如,在其对应的收集内)。作为一个示例,选项参数可以包括生存时间参数,该生存时间参数定义了训练示例被存储(例如,随后被删除)的时间段。在一些实施方式中,可以经由收集API通过提供给平台122的指令预定义和/或调整选项参数。
根据本公开的另一方面,在一些实施方式中,设备上机器学习平台122可以将描述与计算设备102相关联的上下文的上下文特征安全地注入训练示例中。例如,在从应用120a-c接收到训练示例之后,设备上平台122的上下文提供器组件可以确定一个或多个上下文特征,并且可以将这些上下文特征与训练示例一起存储在集中示例数据库124中。例如,新的训练示例中提供的上下文特征和数据可以存储为单个数据库条目。可以通过用于这样的特定应用120a-c的选项参数来指定特定上下文特征,其被确定、然后被注入从特定应用120a-c接收的训练示例或以其他方式与从特定应用120a-c接收的训练示例相关联和/或与其一起存储。如上所述,可以经由收集API调整或预定义这些选项特征。因此,应用120a-c可以控制(例如,经由定义选项参数)哪些上下文特征或上下文类型被注入到其训练示例中。
在一些实施方式中,上下文特征被注入到服务侧,使得上下文特征永远不需要变得对应用120a-c直接可用。具体而言,在一些实施方式中,一个或多个应用120a-c不能直接访问集中示例数据库124,使得即使提供了特定训练示例的应用120a-c也无法访问与该特定训练示例一起存储的上下文信息。
在一些实施方式中,可以根据许多不同的上下文类型对上下文特征进行分组或以其他方式分类。通常,每个上下文类型可以指定或包括具有已知名称和已知类型的一组上下文特征。一种示例上下文类型是设备信息,其包括以下示例上下文特征:音频状态、网络状态、电力连接等。
在一些实施方式中,上下文提供器在注入的时间/点从设备(例如,从设备的上下文管理器126)请求针对给定的上下文特征注入的值。替代地或附加地,上下文提供器可以注册为对来自上下文管理器126的一个或多个上下文更新的监听器,并且可以基于一个或多个上下文更新来维护上下文特征的当前值的上下文特征缓存。然后,当注入上下文特征时,上下文提供器可以简单地访问上下文特征缓存,并为特定的上下文特征注入在缓存中维护的当前值。
除了或替代在存储时向训练示例中注入上下文特征,上下文提供器还可以在推断时执行上下文特征的注入。具体地,类似于用于训练示例收集的上述过程,当特定应用120a-c或其他客户端(例如,经由预测API)请求基于某些客户端提供的输入数据来生成的推断时,上下文提供器可以将用于输入的补充的上下文特征与输入数据一起注入或提供到相应的机器学习模型132a-c中。因此,除了客户端提供的输入数据之外,还可以至少部分地基于上下文信息来进行推断,这可以帮助改进推断的准确性。
根据另一方面,由于某些应用120a-c或其他客户端可能具有仅访问某些上下文特征或上下文类型的权限(例如,如由设备用户定义或控制的),因此上下文提供器可以执行客户端权限控制。具体地,在一些实施方式中,设备上机器学习平台122或其他设备组件可以维护哪些客户端有权限访问哪些上下文类型或上下文特征的映射。当要注入上下文特征(例如,将其注入训练示例中进行存储或在推断时将其注入以补充客户端提供的输入数据)时,上下文提供器可以检查相应应用120a-c或其他客户端相对于要注入的上下文特征或上下文类型的权限状态。例如,特定应用120a-c的权限状态和上下文类型可以描述这种应用120a-c是否具有访问这种上下文类型的权限。上下文提供器将仅注入应用120a-c有权限访问的上下文类型中包括的上下文特征,从而阻止应用120a-c访问(即使以第二手地方式)它没有权限访问的上下文特征/类型。
类似于上述的生存时间选项参数,在一些实施方式中,每个上下文特征可以具有与其相关联或分配给它的有效期。该有效期信息可以与包含(一个或多个)上下文特征的每个训练示例相关联。在一些实施方式中,在特定训练示例中提供的特定上下文特征的有效期结束时,可以从这样的训练示例中删除或以其他方式移除这样的上下文特征的值。替代地,可以删除或以其他方式移除整个训练示例。
此外,在一些实施方式中,响应于特定应用120a-c或其他客户端相对于特定上下文特征或上下文类型的权限状态的改变,设备上平台122可以从集中示例数据库124中删除与特定应用120a-c相关联的训练示例所关联的(一个或多个)此类上下文特征或类型的任何值或条目。另外,在一些实施方式中,在删除(一个或多个)上下文特征值之后,可以在剩余数据上重新训练(一个或多个)对应的模型132a-c。
根据本公开的又一个方面,应用120a-c可以经由API(其可以被称为“训练API”)与设备上机器学习平台122通信,以使得基于集中示例数据库124中存储的训练示例重新训练或更新机器学习模型132a-c。作为示例,在一些实施方式中,用于给定训练计划(例如,用于训练模型的指令)的URI,设备上机器学习平台122可以基于先前收集的示例来运行对模型132a-c的训练(例如,通过与机器学习引擎128交互以使得引擎128训练模型132a-c)。例如,可以在安排的时间和/或在设备空闲时在后台执行训练。
在模型132a-c的重新训练之后,重新训练的模型132a-c可用于提供推断,如本文其他地方所述。通常,由于已经在用户特定的数据上对模型132a-c进行了重新训练,因此这些推断将具有更高的准确性。因此,设备上机器学习平台122可以使能作为对应用120a-c或其他客户端的服务的机器学习模型132a-c的集中示例数据收集和相应个性化。
根据另一方面,在一些实施方式中,机器学习平台122可以将关于机器学习模型132a-c的日志或其他更新上传到云以用于机器学习度量的详细分析。作为示例,在一些实施方式中,设备上平台122可以确定描述重新训练的机器学习模型132a-c的参数的更新、或者在模型132a-c的重新训练期间出现的机器学习模型132a-c的参数的改变(例如,“梯度”)。平台122可以将更新发送到中央服务器计算设备(例如,“云”)以与由其他计算设备提供的其他更新进行聚合。因此,平台122可以使得能够参与被称为“联合学习”的进程,其中设备基于本地存储的数据来确定对模型132a-c的本地更新,然后将该本地更新传达给云服务(例如,(以隐私保护和通信高效的方式)用于聚合以生成对模型132a-c的全局更新。
根据另一方面,在一些实施方式中,为了保护应用120a-c彼此分开,每个应用120a-c可具有针对由设备上平台122提供的某些功能(例如,针对每个功能)的其自己的区域。例如,平台122可以在将用于访问平台122的接口经由工厂返回给应用120a-c之前对应用120a-c进行认证。然后,返回的接口然后可以表示平台122中应用的区域的唯一视图。在此过程的一个示例实施方式中,当应用120a-c连接到平台122的API时,应用120a-c可以提供验证应用120a-c的身份的签名的包令牌。在不通过此认证的情况下,应用120a-c无法获得API接口。
在一些实施方式中,平台122内的每个应用的区域都是账户独立的。因此,与计算设备102上的相同用户简档相关联的多个账户可以共享相同的训练数据和状态。这反映了在大多数情况下,多个帐户是针对同一用户的,并且计算设备上的不同用户将代替地使用不同的用户简档。
在一些实施方式中,对于某些功能(例如,访问上下文),要求权限。这样,在一些实施方式中,想要使用平台122中的特定上下文的应用120a-c具有访问特定上下文的权限,即使由于上下文停留在平台122之内其从未直接接触该上下文也如此。在一些实施方式中,所有相关权限可以在客户端中被验证,然后被传递到平台调用,从逻辑上使平台122以该组(一个或多个)权限进行操作。在一些实施方式中,平台122可以请求用户同意平台122有权访问所有权限。在一些实例中,上下文还可能要求特定的用户登录。对于此类情况,这样的用户可以由应用指定,或者由用于上下文注入的选项中的可选字段指定。然而,在一些实施方式中,平台122可能不会自动检测用户。在一些实施方式中,API本身不要求利用这种特定用户帐户的认证。
根据本公开的另一方面,在一些实施方式中,设备上机器学习平台122可以完全从底层机器学习引擎128中抽象。例如,机器学习引擎128可以是TensorFlow引擎、神经网络库或使能实现机器学习模型132a-c以进行推断和/或训练的其他引擎。由于这种抽象,机器学习平台122可以将模型工件132a-c视为在云中生成然后运送到设备(例如,经由动态模型下载)的二进制大对象,其中它们随后由匹配引擎128解释。以这种方式,机器学习平台122及其支持的应用120a-c可以对机器学习引擎128的改变有适应力和/或相对于所采用的特定引擎128或引擎类型不受约束/灵活。
根据另一方面,与设备上平台122互补的工具包可以提供一组工具(例如,Python工具)以在模型作为工件被运送到设备之前在云中创建和模拟模型。在一些实施方式中,该工具包可以从机器学习引擎的不同版本的相同源工件(例如,Python源工件)生成,或甚至从不同的引擎类型(例如,以移动为中心的TensorFlow Lite相对于神经网络库等)生成。
在一些实施方式中,设备上机器学习平台122可以被包括在应用中或被实现为应用,诸如例如移动应用。例如,在Android操作系统的上下文中,设备上机器学习平台122可以被包括在可以下载和/或更新的Android套件工具包(APK)中。在一个特定示例中,设备上机器学习平台122可以被包括在更大应用中或作为更大应用的一部分实现,该更大应用向其他应用120a-c或设备102本身提供许多不同的支持服务。例如,除了设备上机器学习平台122,更大应用还可以提供使计算设备102能够与数字分发服务进行交互的服务(例如,从“应用商店”下载应用和/或更新)和/或其他服务。在另一个示例中,设备上机器学习平台122可以被包括在设备102的操作系统中或实现为设备102的操作系统的一部分,而不是作为单独的应用。
图2描绘了根据本公开的示例实施例的示例机器学习模型部署的图形图。具体地,应用开发者202可以与工具包交互以生成和测试模型204。模型可以被分解成推断计划206和训练计划208或以其他方式至少部分地由推断计划206和训练计划208表示。
“计划”可以包括协议缓冲器(AKA“protobuf”),该协议缓冲器包含图(例如,TensorFlow图)和关于如何运行图的指令。作为一个示例,计划可以是对还嵌入图形本身的图(例如TensorFlow图形)执行的一系列操作的声明性描述。该计划可以描述如何查询训练数据的集合,如何将其馈送到图中和/或如何造出和递送输出。
图2示出了两种替代的(但可选地是互补的)部署方案。在第一方案中,推断计划206和训练计划208都被部署到云服务器210。云服务器210将推断计划206和训练计划208提供给设备214。
设备214可以实现推断计划206以生成推断。设备214可以替代地或附加地实施训练计划208,以基于本地存储的数据执行设备上训练,这也可以称为“个性化”或“个性化学习”。
在第二部署方案中,如上所述,推断计划206被部署到云服务器210。云服务器将推断计划206提供给设备216。设备216可以实现推断计划206以生成推断。
但是,除了将训练计划208部署到云服务器210之外或作为其替代,在第二方案中,训练计划208被部署到联合服务器212。联合服务器212将训练计划208提供给设备216。设备216可以实现训练计划208以基于本地存储的数据执行设备上训练。在这样的设备学习之后,设备216可以向联合服务器212提供更新。例如,更新可以描述重新训练的模型的一个或多个参数,或者在模型的重新训练期间出现的模型的参数的一个或多个改变。
联合服务器212可以从多个设备接收许多这样的更新,并且可以聚合更新以生成更新的全局模型。然后可以将更新的全局模型重新发送到设备216。
另外,在一些实施方式中,设备216可以进一步提供关于机器学习模型的日志218或其他更新,其可以由开发者202(例如,结合工具包)用于获得对机器学习度量的详细分析。在一些实施方式中,可以基于日志218来计算的示例度量包括签到请求结果、业务(例如,量)、损失和准确性模型度量、阶段持续时间或其他度量的绘制图、曲线图或可视化。
图3描绘了根据本公开的示例实施例的示例个性化和联合学习数据流的图形图。
更具体地,图3描绘了三个不同的学习数据流,在一些实例下,它们可以以互补的方式使用。在主要在图3底部的虚线中所示的第一数据流中,训练数据是在用户设备上生成的。训练数据被上传到中央机构,然后中央机构基于上传的数据来训练或重新训练机器学习模型。然后将模型发送到用户设备以供使用(例如,设备上推断)。
在可以称为个性化或个性化学习的第二数据流中,在用户设备上创建的训练数据用于在设备上训练或重新训练模型。然后,这种设备使用重新训练的模型。这种个性化的学习使得能够无需集中数据收集就可以对每个设备的模型进行训练和评估,从而增强了数据安全性和用户隐私。
在可以被称为联合学习的第三数据流中,在用户设备上创建的训练数据被用于在设备上训练或重新训练模型。因此,实际的特定于用户的训练数据不上传到云,从而增强了数据安全性和用户隐私。
在这样的设备上学习之后,用户设备可以向中央机构提供更新。例如,更新可以描述重新训练的模型的一个或多个参数、或在模型的重新训练期间出现的模型的参数的一个或多个改变。
中央机构可以从多个设备接收许多这样的更新,并且可以聚合更新以生成更新的全局模型。然后可以将更新的全局模型重新发送到用户设备。这种方案使得能够在不进行集中数据收集的情况下训练和评估跨设备模型。
图4描绘了根据本公开的示例实施例的示例设备上机器学习平台的框图。参考图4示出和描述的平台仅被提供为一种示例实施方式。本文描述的设备上机器学习平台的许多不同的实施方式是可能的。示例设备上机器学习平台可以包括或实现主进程402和后台进程404。
主进程402可以处理所有API请求。主进程402可以提供:收集API服务420,其经由收集API 410提供训练示例收集服务;预测API服务422,其经由预测API 412提供推断生成服务;以及训练API服务424,其经由训练API 414提供模型训练服务。
在一些实施方式中,收集API服务420可以利用自动保留策略来存留训练示例。在一些实施方式中,作为不可见的进程,训练API服务424可以在安排的时间和条件下自动执行训练会话,从而从示例集合中提取数据。在一些实施方式中,预测API服务42可以允许客户端基于给定的模型来运行推断,其可以源自于训练器或外部源。
在一些实施方式中,后台进程404只能托管训练和其他定期维护任务。它可以是事务性的,并被设计为被销毁。在一些实施方式中,后台进程404仅从主进程402获得其状态。
如将在下面进一步讨论的,上下文提供器430将上下文信息注入到示例中,以用于收集API服务420和预测API服务422两者。存储组件440可以使能并执行对示例的存储(例如,存储在集中示例数据库124)以及簿记(bookkeeping)状态。它可以基于LevelDB。
取决于预测计划类型,预测API服务422可以访问多个预测引擎432。预测和训练计划以及模型参数由工件管理器434提供或以其他方式管理。工件管理器434可以支持从云服务器210、从应用资产和/或从文件检索工件。它还可以支持易变的工件,例如,用于存储由预测器或其他训练器消耗的训练结果。
后台进程404可以托管基于训练计划选择的多个训练引擎406。对于联合学习,后台进程404可以与联合学习服务器通信以使用隐私保护技术(例如,安全聚合)上传训练结果以进行累积。
日志管理器444可以将与机器学习模型有关的日志上传到云服务器210,以用于机器学习度量的详细分析。
更具体地,在一些实施方式中,收集API服务420可以是允许、管理和/或执行训练示例在集中示例数据库124中的存储以供稍后由后台进程404检索(例如,以执行后台训练)的设施。例如,收集API服务420可以与存储组件440交互以管理训练示例在集中示例数据库124中的存储。
收集API 410可以是简单的:一旦客户端已经被认证,其就可以访问对象,如下面的示例代码中所示(其中Task是表示异步API调用的一种方法;Task<Void>可以被忽略或被监听以用于观察错误):
Learning.getCollectionClient(options)可以允许访问并配置exampleCollection。“options”参数可以至少包含集合的名称。如果没有提供进一步选项,则可以使用默认或先前配置的选项。示例选项包括内容的生存时间和应该在学习事件存储在数据库124中之前注入学习事件的上下文。
CollectionClient.add(example)可以向存储添加新示例。
CollectionClient.clear()可以允许重置收集的内容。
训练API 414和相应的训练API服务424可以安排后台进程404以执行训练。后台进程404可以实现一个或多个训练引擎406或与之交互以从示例集合中提取数据并执行训练计划。计划可以是对也嵌入图本身的图(例如TensorFlow图)执行的一系列操作的声明性描述。该计划可以描述如何在收集中查询训练数据,如何将其馈送到图中和/或如何造出和递送输出。
每个训练计划类型可以与训练计划引擎406相关联。设备上机器学习平台因此可以通过新类型的计划进行扩展,从而使其能够表示适合后台训练的一般模型的任何种类的机器学习执行。
作为一个示例,下面提供了针对训练器的示例API:
Learning.getTrainerClient(options)可以采取至少包含训练器会话名称的选项,并创建或重新配置训练会话。会话名称可以是由应用选择的常量,类似于包名称,并且会话本身可以是恒定的。选项还可以指定计划类型、获得计划的方法以及特定于计划类型的任何参数。可以取决于计划类型以不同方式获得计划;例如,对于联合,可以从联合学习服务器下载计划;对于个性化,它可包含在资产中或从云服务器210下载。
TrainerClient.start(schedule)可以基于在接口创建时进入的选项以及利用给定的安排来开始训练会话。安排可以是连续的,也可以是一次性的。在一些实施方式中,在两种情况下,仅在设备条件允许的情况下才安排训练。作为示例,在一些实施方式中,仅在设备既空闲又在充电的情况下才安排训练或以其他方式执行训练。
TrainerClient.stop()可以允许取消和/或移除训练会话。
预测API 412可以允许客户端基于训练的模型馈送输入并从其推导预测。像训练器一样,在一些实施方式中,预测器可以由计划驱动,其中计划是对图执行哪些操作以及如何获得输入和造出输出的声明性描述。
作为一个示例,示例预测API代码如下:
Learning.getPredictorClient()可以基于给定的选项返回预测器。这些选项可以指定如何获得计划和模型参数以进行预测。它们还可以指定在获准进入到预测引擎之前应将哪些上下文特征自动注入候选示例中。
predictRank()可以返回对从给定的上下文示例和指定的候选推导的排名问题的预测。随着时间的推移,可引入附加的特定于应用的预测方法。
以下代码示出了参考图4描述的三个示例API 410、412和414的一种示例用法。
首先,可以定义配置选项。通常,这些选项可以由应用从表型配置组件442获得,但是出于简化的原因,可以将它们定义为静态常量:
注意可以如何使用URI来指代描述训练和预测计划以及模型参数的工件。计划可以对图(例如TensorFlow图)和如何执行图的信息进行编码。在一些实施方式中,可以通过相应工具包中包括的工具(例如,Python工具)来创建计划。在一些实施方式中,模型参数可以是与计划相关联的权重的不透明表示。URI可以指代“模型仓库”(mrepo:),暗示它们被(例如从云服务器210)下载到设备,但是也可以指代本地缓存的文件(file:)。例如,工件管理器134可以管理从服务器210的模型工件的下载和/或其他模型管理任务。
在文件工件的情况下,可以在API之间定义依赖性。例如,可以定义TrainerOptions以生成具有由预测API服务消耗的训练的参数的文件工件如果尚未造出所要求的输入,则设备上机器学习平台可以通过延迟操作或用适当的错误代码拒绝它们来在内部处理这些输入-输出依赖性。
给出以上配置,该平台可以包括一些API代码,其中训练示例被连续地馈送到集合中。作为一个示例,以下代码可以包括添加训练示例:
每次将示例添加到缓存时,可以将用COLLECTION_OPTIONS指定的上下文添加为特征。用户无需应对添加数据的限制大小或生存时间,其可以基于提供的选项来处理。
为了安排训练,应用通常可以在创建时确保使用当前选项配置和安排后台训练。在一些实施方式中,如果已经在之前安排了训练并且配置没有改变,则此示例调用将不会影响它:
最后,另一段示例代码可以使用预测API来利用训练结果。作为一个示例,这可以看上去如下面的示例代码中提供的所示:
如已经提到的,在一些实施方式中,设备上机器学习平台的上下文提供器430可以将上下文特征注入学习事件中。这可以在服务侧出现,使得上下文永远不需要直接对应用可用。
可以注入上下文的两个示例点是:
1.在将示例存储到示例集合之前。注入的上下文可以由CollectionOptions指定。
2.在将示例传递给预测引擎之前。注入的上下文可以由PredictorOptions指定。
通常,每个上下文类别可以指定添加到示例中(例如TensorFlow示例原型)的具有已知名称和已知类型的一组特征。可在注入时从系统请求为给定上下文特征注入的值,或者它可以是平台内部上下文提供器430定期更新的缓存值。
示例上下文特征包括:音频状态;日属性;日历;检测的活动;用户特定的位置(例如,“家”对“工作”);网络状态;电力连接;屏幕特征;用户位置;用户位置预报;WiFi扫描信息;天气;或其他上下文特征。
重要的是,仅出于说明可与训练示例一起存储或用于由设备上平台提供推断的示例数据的目的而简单地提供本文所述的训练示例和上下文特征。但是,除非用户在被通知收集了什么数据以及如何使用这些数据后已提供同意,否则不收集、使用或分析此类数据。此外,可以为用户提供撤消或修改权限范围的工具。另外,某些信息或数据可以在其被存储或使用之前以一种或多种方式对待,以便以加密方式移除或存储个人可识别信息。
设备上平台本身不需要任何上下文,因此上下文提供器430收集客户端应用的上下文。例如,客户端应用可能需要“位置”作为其机器学习模型的特征。这样的应用可以显式通知设备上平台:需要“位置”上下文。
设备上平台可以首先检查客户端应用是否具有访问设备位置的权限。如果没有,则平台不会将上下文给客户端。否则,如果应用确实具有权限,则一旦客户端向平台发送训练示例,就将为客户端填充位置上下文。因此,在一些实施方式中,在客户端向设备上平台发送示例的每个实例处,平台检查其权限,并决定客户端是否具有访问它们所主张的上下文的权限。
注意,在一些实施方式中,实际上下文内容未提供给应用。取而代之的是,上下文被简单地填充以用于客户端的训练示例。训练示例将保存在设备上平台数据库内,因此客户端无法访问真实的上下文内容。
在一些实施方式中,某些类型的上下文需要用户帐户来访问,例如场所别名和日历。在一些实施方式中,上下文提供器430本身不指示将哪个账户用于上下文。在这种情况下,客户端应用应指定帐户。在一些实施方式中,如果客户端未指定帐户,则仅为客户端提供不要求帐户的上下文。
设备上平台正在使用的上下文通常由上下文管理器(例如,如图1中所示的126)提供。上下文管理器可以位于多个位置,包括例如在平台内、在包括平台的应用内和/或设备的操作系统内。在一些实施方式中,为了改进性能,上下文提供器430可以向上下文管理器注册监听器,并且总是将最新的上下文更新保持在设备上平台存储器中。
在一些实施方式中,设备上平台可以执行或包括过时的上下文到期。在一些实施方式中,如果用户关闭设备上的上下文信号(例如,关闭位置或活动识别),则上下文管理器不通知设备上平台:上下文已关闭。取而代之的是,上下文管理器简单地停止将这些上下文的上下文更新发送给设备上平台。因此,为了避免将过时的上下文用于将来的事件,平台可以使过时的上下文过期。具体地,基于上下文属性,可以为每种上下文特征或上下文类型定义不同的到期时间段。一旦上下文达到其到期时间段,就可以删除它。
另一示例上下文特征包括位置别名上下文特征。具体地,对于许多客户端应用而言,用户是在家还是在工作中是重要的特征。考虑到用户的家庭/工作场所不经常改变,一旦构建了上下文提供器430,平台就可以要求当前的家庭/工作别名。如果用户已经同意使用这种信息,则可以缓存用户的家庭/工作场所,并且上下文提供器430可以使用位置上下文,以通过将位置上下文与缓存的位置进行比较来确定用户是在家还是在工作场所。在一些实施方式中,可以从上下文管理器或从位置API接收位置别名信息。
上下文管理器可以至少以以下两种方式来递送上下文。在第一示例中,设备上平台可以注册为监听器。在这种情况下,设备上平台可以维护更新的上下文的缓存,这也意味着,在一些实施方式中,设备上平台是始终在线的服务。利用监听器,可以将更新的数据保存在缓存中。
注册为监听器的好处包括:
1.低等待时间。所有上下文缓存在设备上平台内,并转换为机器学习友好的格式。
2.如果到设备上平台的IPC(进程间调用)处于高速率,则缓存上下文节省电池。
在第二示例中,设备上平台可以一次得到当前上下文。在这种情况下,上下文管理器可以提供另一个API来一次性得到所有当前上下文。如果使用此API,则设备上平台通常将不维护上下文的缓存,而是替代地按需得到当前上下文。
在这种模式下,要求上下文管理器为平台保存更新的上下文,因此平台通常获得额外的UDC权限,这在第一选项中是不需要的。
一次性模式的好处包括,如果到设备上平台的IPC处于低速率,则其可以节省电池。
在一些实施方式中,设备上平台可以获得对以上列出的所有上下文的用户权限,但是某些客户端可能不具有与设备上平台所具有的相同权限。因此,平台可以控制客户端的权限。在一些实施方式中,这可以通过使用包管理器提取与客户端应用相关联的权限来完成。该平台可以维护上下文到权限之间的映射。因此,客户端将通常在其向设备上平台注册自身时明确主张其想要使用的上下文是什么。平台检查客户端是否具有访问请求的上下文的权限。只有应用具有权限的上下文将用于训练和推断相应的模型。
另外,有可能在运行中改变客户端的权限。例如,当用户认为该应用可能有用时,用户可以批准该应用使用其位置,但随后撤消该权限。为了处理这种情况,每当从客户端发生新事件时,平台可以检查其现有权限,并使相应的上下文与事件一起参加训练。
在推断期间,平台还可以分析当前的客户端权限以允许将上下文特征用于预测。这样,在一些实施方式中,机器学习模型可以接受缺少的特征以用于训练和推断。
根据另一方面,在一些实施方式中,为了使用设备上平台API,客户端可以向其应用添加API密钥。例如,可以使用客户端持有私有密钥的数字证书对应用进行签名。应用可以通过向管理API的中央机构注册来获得密钥。
一种示例授权过程可以包括:
1.当客户端注册到设备上平台时,设备上平台得到包名称和API密钥对。设备上平台将包名称和API密钥对发送到中央机构以进行验证。
2.一旦客户端被验证,设备上平台将生成平台密钥供客户端在该设备上使用。
3.对于该设备中将来的API调用,客户端应向设备上平台提供平台密钥。
设备上平台可以检查平台密钥是否与包名称和API密钥匹配。但是,设备上平台通常不将它们发送给中央机构以再次进行验证。
在一些实例下,设备可以被多于一个的用户共享。这样,当使用API时,设备上平台可以从列表中提取主要帐户。设备上平台可以将训练数据绑定到主要帐户,并更新相关模型。如果该帐户的模型在设备上不可用,则设备上平台可以从云下载客户端应用的模型或使用基本模型(例如,联合学习中的平均模型)。
根据另一方面,在一些实施方式中,用户可以清除他的位置历史或账户历史。在这种实例下,设备上平台可以移除所有相应的上下文。另外,在一些实施方式中,在这种情况下,平台可以使用该用户的剩余上下文来重新训练模型。
作为示例,图5A和5B描绘了根据本公开的示例实施例的注入上下文特征的示例机器学习平台122的框图。具体地,图5A描绘了在训练示例被存储到示例集合之前注入上下文特征的上下文提供器430;而图5B描绘了在将示例传递给实现机器学习模型的预测引擎之前注入上下文特征的上下文提供器430。
图6A和6B描绘了根据本公开的示例实施例的执行模型训练的示例设备的框图。具体地,图6A和6B示出了后台训练进程。
如图6A中所示,应用进程可以将训练数据馈送到训练数据存储中。可以在后台安排训练进程(例如,如果某些设备条件允许的话,例如空闲和/或被插入)。
训练进程可以拾取模型状态和训练计划,重复地从缓存中拾取数据以训练模型,然后最终发布(一个或多个)统计和(一个或多个)模型更新消息(例如,到云服务器)。在一些实施方式中,由于训练阶段可能很长(例如,几分钟),所以训练进程可以基于改变的设备条件而暂停和恢复。
图6B与图6A相似,除了其包括使能联合学习的联合学习服务。如图6B中所示,训练计划和模型可以由联合学习服务分发。训练进程可以在后台执行训练以生成模型更新。可以将模型更新上传到联合学习服务(例如,用于聚合)。另外,在一些实施方式中,质量保证(例如,半自动化质量保证)可以提取学习模型并将模型分发回设备。
图7描绘了根据本公开的示例实施例的示例联合学习进程的图形图。
示例方法
图8描绘了根据本公开的示例实施例的使用机器学习模型来生成推断的示例方法800的流程图。
在802处,计算系统可以经由预测应用编程接口从第一应用接收输入数据。
在804处,计算系统可以用第一应用请求的并且第一应用有权限访问的上下文特征来补充输入数据。在一些实施方式中,在804处,计算系统可以确定第一应用相对于一个或多个上下文类型中的每一个的权限状态。在一些实施方式中,仅用第一应用有权限访问的上下文类型中包括的上下文特征来补充输入数据。
在806处,计算系统可以采用第一机器学习模型以至少部分地基于输入数据并且至少部分地基于补充的上下文特征来生成至少一个推断。在808处,计算系统可以经由预测应用编程接口向第一应用提供至少一个推断。
图9描绘了根据本公开的示例实施例的收集用于执行机器学习的训练示例的示例方法900的流程图。
在902处,计算系统可以经由收集应用编程接口从第一应用接收新的训练示例。在904处,计算系统可以用第一应用请求的并且第一应用有权限访问的上下文特征来补充新的训练示例。在一些实施方式中,在904处,计算系统可以确定第一应用相对于一个或多个上下文类型中的每一个的权限状态。在一些实施方式中,新的训练示例仅用包括在第一应用有权限访问的上下文类型中的上下文特征补充。
在906处,计算系统可以将新的训练示例与上下文特征一起存储在集中示例数据库中。在一些实施方式中,在906处存储新的训练示例可以包括根据先前已经经由收集应用编程接口为第一应用定义的一个或多个选项参数,将新的训练示例存储在集中示例数据库中。作为一个示例,一个或多个选项参数可以至少包括生存时间参数,该生存时间参数定义存储训练示例的时间段。
在一些实施方式中,在906处存储新的训练示例可以包括将有效期分配给一个或多个上下文特征中的至少第一上下文特征。方法900可以进一步包括在分配给第一上下文特征的有效期结束时从集中示例数据库中删除第一上下文特征或整个新训练示例。
在一些实施方式中,方法900可以进一步包括:接收对第一应用相对于至少一个上下文类型的权限状态的改变的指示;以及响应于对权限状态的改变,从集中示例数据库中删除与第一应用相关联的训练示例所关联的至少一个上下文类型的任何上下文特征。另外,在一些实施方式中,方法900还可以包括:在删除上下文特征之后,使用集中示例数据库中的与第一应用相关联的训练示例来重新训练与第一应用相关联的一个或多个机器学习模型。
图10描绘了根据本公开的示例实施例的训练机器学习模型的示例方法1000的流程图。
在1002处,计算系统可以经由训练应用编程接口从第一应用接收指令,所述指令至少部分地基于由集中示例数据库存储的一个或多个训练示例来重新训练第一机器学习模型。
在1004处,计算系统可以至少部分地基于由集中示例数据库存储的一个或多个训练示例来重新训练第一机器学习模型。
在1006处,计算系统可以确定描述重新训练的模型的一个或多个参数或在模型的重新训练期间出现的一个或多个参数的一个或多个改变的更新。
在1008处,计算系统可以将更新发送到中央服务器计算设备以与由其他计算设备提供的其他更新聚合。
附加公开
本文讨论的技术涉及服务器、数据库、软件应用和其他基于计算机的系统,以及此类系统采取的行为和发送到此类系统和从此类系统接收的信息。基于计算机的系统的固有灵活性允许在组件之间的各种任务和功能的各样可能的配置、组合以及划分。例如,可以使用单个设备或组件或组合工作的多个设备或组件来实现本文讨论的过程。数据库和应用可以在单个系统上实现,或者分布在多个系统之间。分布式组件可以顺序或并行操作。
尽管已经针对本主题的各种特定示例实施例详细描述了本主题,但是每个示例都是通过解释的方式提供的,而不是对本公开的限制。本领域技术人员在理解了前述内容之后,可以容易地造出对这些实施例的替换、变型和等同。因此,本公开内容不排除对本领域普通技术人员而言显而易见的对于本主题的这种修改、变型和/或添加。例如,作为一个实施例的一部分示出或描述的特征可以与另一实施例一起使用以产生又一实施例。因此,意图是本公开覆盖这样的变更、变型和等同。
具体地,尽管为了说明和讨论的目的,图8-10分别描绘了以特定顺序执行的步骤,但是本公开的方法不限于特定示出的顺序或布置。可以以各种方式省略、重新布置、组合和/或适应性调整方法800、900和1000的各个步骤,而不背离本公开的范围。
Claims (20)
1.一种计算设备,包括:
一个或多个处理器;以及
存储以下内容的一个或多个非暂时性计算机可读介质:
由所述一个或多个处理器实现的一个或多个应用;
一个或多个机器学习模型;以及
指令,所述指令在由所述一个或多个处理器执行时,使计算设备实现执行操作的设备上机器学习平台,所述操作包括:
经由预测应用编程接口从所述一个或多个应用中的第一应用接收输入数据;
采用所述一个或多个机器学习模型中的至少第一机器学习模型,以至少部分地基于输入数据来生成至少一个推断;以及
经由预测应用编程接口将由第一机器学习模型生成的所述至少一个推断提供给第一应用。
2.根据权利要求1所述的计算设备,其中:
所述一个或多个非暂时性计算机可读介质还存储集中示例数据库,其存储从所述一个或多个应用接收的训练示例;以及
由设备上机器学习平台执行的操作还包括:
经由收集应用编程接口从第一应用接收新的训练示例;以及
将新的训练示例存储在集中示例数据库中。
3.根据权利要求2所述的计算设备,其中,将所述新的训练示例存储在所述集中示例数据库中包括:根据先前已经经由所述收集应用编程接口为所述第一应用定义的一个或多个选项参数,将所述新的训练示例存储在所述集中示例数据库中,其中所述一个或多个选项参数至少包括生存时间参数,其定义存储训练示例的时间段。
4.根据权利要求2或3所述的计算设备,其中:
所述一个或多个应用包括多个应用;以及
集中示例数据库存储从所述多个应用中的两个或更多个不同应用接收的训练示例。
5.根据权利要求2、3或4所述的计算设备,其中,由所述设备上机器学习平台执行的操作还包括:
经由训练应用编程接口从第一应用接收指令,所述指令用于至少部分地基于由集中示例数据库存储的训练示例中的一个或多个来对第一机器学习模型进行重新训练;以及
响应于该指令,使第一机器学习模型至少部分地基于由集中示例数据库存储的训练示例中的一个或多个被重新训练。
6.根据权利要求5所述的计算设备,其中,由所述设备上机器学习平台执行的操作还包括:
在使第一机器学习模型被重新训练之后,采用重新训练的第一机器学习模型来生成至少一个附加推断;以及
经由预测应用编程接口将由重新训练的第一机器学习模型生成的所述至少一个附加推断提供给第一应用。
7.根据权利要求5所述的计算设备,其中:
所述一个或多个非暂时性计算机可读介质还存储机器学习引擎;以及
使所述第一机器学习模型至少部分地基于由所述集中示例数据库存储的训练示例中的一个或多个被重新训练包括:使所述机器学习引擎根据训练计划对所述第一机器学习模型进行重新训练。
8.根据任一前述权利要求所述的计算设备,其中:
所述一个或多个应用包括多个应用;以及
当由所述一个或多个处理器执行时使计算设备实现设备上机器学习平台的指令包括:当由所述一个或多个处理器执行时使计算设备实现执行操作的设备上多租户机器学习平台的指令,该操作包括:
为所述多个应用分别维护多个独立的区域;
从第一应用接收验证第一应用的身份的签名的包令牌;
认证签名的包令牌;以及
响应于对签名的包令牌的认证,提供对所述多个独立区域中的第一区域的访问,该第一区域与第一应用相关联。
9.根据任一前述权利要求所述的计算设备,其中,当由所述一个或多个处理器执行时使计算设备实现设备上机器学习平台的所述指令包括:
移动应用;或
计算设备的操作系统的一部分。
10.根据任一前述权利要求所述的计算设备,其中所述计算设备包括移动计算设备,并且所述一个或多个应用包括一个或多个移动应用。
11.一个或多个非暂时性计算机可读介质,其共同存储指令,所述指令在由一个或多个处理器执行时使计算设备实现执行操作的设备上机器学习平台,所述操作包括:
经由预测应用编程接口从存储在计算设备上的一个或多个应用中的第一应用接收输入数据;
采用存储在计算设备上的一个或多个机器学习模型中的至少第一机器学习模型,以至少部分地基于输入数据来生成至少一个推断;以及
经由预测应用编程接口将由第一机器学习模型生成的所述至少一个推断提供给第一应用。
12.根据权利要求11所述的一个或多个非暂时性计算机可读介质,其中:
所述一个或多个非暂时性计算机可读介质还存储集中示例数据库,其存储从所述一个或多个应用接收的训练示例;以及
由设备上机器学习平台执行的操作还包括:
经由收集应用编程接口从第一应用接收新的训练示例;以及
将新的训练示例存储在集中示例数据库中。
13.根据权利要求12所述的一个或多个非暂时性计算机可读介质,其中,将所述新的训练示例存储在所述集中示例数据库中包括:根据先前已经经由收集应用编程接口为第一应用定义的一个或多个选项参数,将所述新的训练示例存储在所述集中示例数据库中,其中所述一个或多个选项参数至少包括生存时间参数,该生存时间参数定义存储训练示例的时间段。
14.根据权利要求12或13所述的一个或多个非暂时性计算机可读介质,其中:
所述一个或多个应用包括多个应用;以及
集中示例数据库存储从所述多个应用中的两个或更多个不同应用接收的训练示例。
15.根据权利要求12、13或14所述的一个或多个非暂时性计算机可读介质,其中,由所述设备上机器学习平台执行的操作还包括:
经由训练应用编程接口从第一应用接收指令,所述指令用于至少部分地基于由集中示例数据库存储的训练示例中的一个或多个来对第一机器学习模型进行重新训练;以及
响应于该指令,使第一机器学习模型至少部分地基于由集中示例数据库存储的训练示例中的一个或多个被重新训练。
16.根据权利要求15所述的一个或多个非暂时性计算机可读介质,其中,由所述设备上机器学习平台执行的操作还包括:
在使第一机器学习模型被重新训练之后,采用重新训练的第一机器学习模型来生成至少一个附加推断;以及
经由预测应用编程接口将由重新训练的第一机器学习模型生成的所述至少一个附加推断提供给第一应用。
17.根据权利要求15所述的一个或多个非暂时性计算机可读介质,其中:
所述一个或多个非暂时性计算机可读介质还存储机器学习引擎;以及
使所述第一机器学习模型至少部分地基于由所述集中示例数据库存储的训练示例中的一个或多个被重新训练包括:使所述机器学习引擎根据训练计划对所述第一机器学习模型进行重新训练。
18.根据权利要求11至17中的任一项所述的一个或多个非暂时性计算机可读介质,其中:
所述一个或多个应用包括多个应用;以及
当由所述一个或多个处理器执行时使计算设备实现设备上机器学习平台的指令包括:当由所述一个或多个处理器执行时使计算设备实现执行操作的设备上多租户机器学习平台的指令,该操作包括:
为所述多个应用分别维护多个独立的区域;
从第一应用接收验证第一应用的身份的签名的包令牌;
认证签名的包令牌;以及
响应于对签名的包令牌的认证,提供对所述多个独立区域中的第一区域的访问,该第一区域与第一应用相关联。
19.根据权利要求11至18中的任一项所述的一个或多个非暂时性计算机可读介质,其中,当由所述一个或多个处理器执行时使所述计算设备实现所述设备上机器学习平台的指令包括:
移动应用;或
计算设备的操作系统的一部分。
20.一种计算机实现的方法,所述方法包括:
由计算设备经由收集应用编程接口从存储在计算设备上的多个应用中的第一应用接收新的训练示例;
由计算设备将新的训练示例存储在计算设备的集中示例数据库中;
由计算设备经由训练应用编程接口从第一应用接收指令,所述指令用于至少部分地基于由集中示例数据库存储的训练示例中的一个或多个来对由计算设备存储的第一机器学习模型进行重新训练;
响应于该指令,由计算设备使第一机器学习模型至少部分地基于由集中示例数据库存储的训练示例中的一个或多个被重新训练;
由计算设备经由预测应用编程接口从所述第一应用接收输入数据;
采用第一机器学习模型,至少部分地基于输入数据来生成至少一个推断;以及
经由预测应用编程接口将由第一机器学习模型生成的所述至少一个推断提供给第一应用。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/674,885 US11403540B2 (en) | 2017-08-11 | 2017-08-11 | On-device machine learning platform |
US15/674,885 | 2017-08-11 | ||
PCT/US2018/029563 WO2019032156A1 (en) | 2017-08-11 | 2018-04-26 | PLATFORM OF LEARNING MACHINE ON DEVICE |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110892425A true CN110892425A (zh) | 2020-03-17 |
CN110892425B CN110892425B (zh) | 2024-02-20 |
Family
ID=62152681
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880046411.0A Active CN110892425B (zh) | 2017-08-11 | 2018-04-26 | 设备上机器学习平台 |
Country Status (6)
Country | Link |
---|---|
US (2) | US11403540B2 (zh) |
EP (1) | EP3491587B1 (zh) |
JP (1) | JP6923676B2 (zh) |
KR (1) | KR102320755B1 (zh) |
CN (1) | CN110892425B (zh) |
WO (1) | WO2019032156A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112052149A (zh) * | 2020-09-06 | 2020-12-08 | 厦门理工学院 | 一种大数据信息采集系统及使用方法 |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI637280B (zh) * | 2017-05-16 | 2018-10-01 | 緯創資通股份有限公司 | 基於物聯網架構的監控方法、霧運算終端以及物聯網系統 |
US20190156246A1 (en) * | 2017-11-21 | 2019-05-23 | Amazon Technologies, Inc. | Generating and deploying packages for machine learning at edge devices |
WO2019232466A1 (en) | 2018-06-01 | 2019-12-05 | Nami Ml Inc. | Machine learning model re-training based on distributed feedback |
RU2702980C1 (ru) * | 2018-12-14 | 2019-10-14 | Самсунг Электроникс Ко., Лтд. | Распределённое обучение моделей машинного обучения для персонализации |
EP3980946A4 (en) * | 2019-06-04 | 2023-02-08 | Telefonaktiebolaget Lm Ericsson (Publ) | EXECUTION OF MACHINE LEARNING MODELS |
KR20190096872A (ko) * | 2019-07-31 | 2019-08-20 | 엘지전자 주식회사 | 연합학습(Federated learning)을 통한 필기체 인식방법 및 이를 위한 장치 |
US11755884B2 (en) | 2019-08-20 | 2023-09-12 | Micron Technology, Inc. | Distributed machine learning with privacy protection |
US11392796B2 (en) * | 2019-08-20 | 2022-07-19 | Micron Technology, Inc. | Feature dictionary for bandwidth enhancement |
US11500929B2 (en) * | 2019-11-07 | 2022-11-15 | International Business Machines Corporation | Hierarchical federated learning using access permissions |
US11461593B2 (en) | 2019-11-26 | 2022-10-04 | International Business Machines Corporation | Federated learning of clients |
US11507836B1 (en) * | 2019-12-20 | 2022-11-22 | Apple Inc. | Federated learning using local ground truth estimation |
CN113128686A (zh) * | 2020-01-16 | 2021-07-16 | 华为技术有限公司 | 模型训练方法及装置 |
US10938979B1 (en) | 2020-03-11 | 2021-03-02 | Fmr Llc | Generating and displaying custom-selected content in a mobile device application |
JP6893010B1 (ja) * | 2020-06-09 | 2021-06-23 | 株式会社プレイド | 情報処理装置、情報処理方法、およびプログラム |
US11631033B2 (en) * | 2020-07-03 | 2023-04-18 | Mercari, Inc. | On-device training of personalized model |
KR20230068411A (ko) * | 2020-09-09 | 2023-05-17 | 엘지전자 주식회사 | 연합 학습 기반의 오프라인 매장에서의 제품 추천 방법 및 장치 |
CN112288133A (zh) * | 2020-09-28 | 2021-01-29 | 珠海大横琴科技发展有限公司 | 一种算法服务处理方法和装置 |
CN112150280B (zh) * | 2020-10-16 | 2023-06-30 | 北京百度网讯科技有限公司 | 提升匹配效率的联邦学习方法及设备、电子设备和介质 |
JP7545297B2 (ja) | 2020-11-09 | 2024-09-04 | 株式会社Jsol | モデルのデータ提供方法、モデルのデータ提供システム、及びコンピュータプログラム |
KR102526261B1 (ko) * | 2020-12-04 | 2023-04-27 | 한국전자기술연구원 | 시공간 컨텍스트 피드백 기반 동적 ai 모델 선택 방법 |
KR20220120154A (ko) * | 2021-02-23 | 2022-08-30 | 삼성전자주식회사 | 복수의 어플리케이션들에 공유되는 기계 학습 모델을 이용한 장치 및 방법 |
US20220291981A1 (en) * | 2021-03-09 | 2022-09-15 | International Business Machines Corporation | Deducing a root cause analysis model from augmented reality peer assistance sessions |
EP4339848A1 (en) * | 2021-05-12 | 2024-03-20 | Sony Group Corporation | Information processing device, information processing server, information processing method, and non-transitory computer readable storage medium |
KR102679861B1 (ko) * | 2021-06-23 | 2024-06-28 | 재단법인대구경북과학기술원 | 연합 학습 방법 및 장치 |
US11443245B1 (en) | 2021-07-22 | 2022-09-13 | Alipay Labs (singapore) Pte. Ltd. | Method and system for federated adversarial domain adaptation |
KR102592569B1 (ko) * | 2022-11-30 | 2023-10-23 | 한국전자기술연구원 | AIoT 플랫폼을 활용한 ML 모델 배포관리 방법 |
US11880511B1 (en) * | 2023-01-30 | 2024-01-23 | Kiloma Advanced Solutions Ltd | Real-time automatic multilingual input correction |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8429103B1 (en) * | 2012-06-22 | 2013-04-23 | Google Inc. | Native machine learning service for user adaptation on a mobile platform |
US20140189246A1 (en) * | 2012-12-31 | 2014-07-03 | Bin Xing | Measuring applications loaded in secure enclaves at runtime |
US9336483B1 (en) * | 2015-04-03 | 2016-05-10 | Pearson Education, Inc. | Dynamically updated neural network structures for content distribution networks |
US20160191534A1 (en) * | 2014-12-30 | 2016-06-30 | Facebook, Inc. | Methods and Systems for Managing Permissions to Access Mobile Device Resources |
CN105912500A (zh) * | 2016-03-30 | 2016-08-31 | 百度在线网络技术(北京)有限公司 | 机器学习模型生成方法和装置 |
JP2016525983A (ja) * | 2013-08-12 | 2016-09-01 | 三菱電機株式会社 | 車両内の設定を調整する方法 |
US20170124487A1 (en) * | 2015-03-20 | 2017-05-04 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for implementing machine learning model training and deployment with a rollback mechanism |
Family Cites Families (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8170841B2 (en) | 2004-04-16 | 2012-05-01 | Knowledgebase Marketing, Inc. | Predictive model validation |
JP2006134080A (ja) * | 2004-11-05 | 2006-05-25 | Ntt Docomo Inc | 携帯端末、及び、個人適応型コンテキスト獲得方法 |
US8160977B2 (en) * | 2006-12-11 | 2012-04-17 | Poulin Christian D | Collaborative predictive model building |
US8214308B2 (en) | 2007-10-23 | 2012-07-03 | Sas Institute Inc. | Computer-implemented systems and methods for updating predictive models |
US8606728B1 (en) | 2011-06-15 | 2013-12-10 | Google Inc. | Suggesting training examples |
US9519647B2 (en) * | 2012-04-17 | 2016-12-13 | Sandisk Technologies Llc | Data expiry in a non-volatile device |
US9047463B2 (en) * | 2012-06-29 | 2015-06-02 | Sri International | Method and system for protecting data flow at a mobile device |
US9336494B1 (en) | 2012-08-20 | 2016-05-10 | Context Relevant, Inc. | Re-training a machine learning model |
US8533148B1 (en) | 2012-10-01 | 2013-09-10 | Recommind, Inc. | Document relevancy analysis within machine learning systems including determining closest cosine distances of training examples |
US8613055B1 (en) * | 2013-02-22 | 2013-12-17 | Ping Identity Corporation | Methods and apparatus for selecting an authentication mode at time of issuance of an access token |
EP2784714B1 (en) * | 2013-03-28 | 2021-04-28 | Alcatel Lucent | Method of preventing access to sensitive data of a computing device |
US9218574B2 (en) | 2013-05-29 | 2015-12-22 | Purepredictive, Inc. | User interface for machine learning |
US9294468B1 (en) * | 2013-06-10 | 2016-03-22 | Google Inc. | Application-level certificates for identity and authorization |
US9286574B2 (en) | 2013-11-04 | 2016-03-15 | Google Inc. | Systems and methods for layered training in machine-learning architectures |
US9503442B1 (en) * | 2014-06-20 | 2016-11-22 | EMC IP Holding Company LLC | Credential-based application programming interface keys |
US10102480B2 (en) * | 2014-06-30 | 2018-10-16 | Amazon Technologies, Inc. | Machine learning service |
US10812464B2 (en) * | 2015-06-15 | 2020-10-20 | Airwatch Llc | Single sign-on for managed mobile devices |
US9626654B2 (en) | 2015-06-30 | 2017-04-18 | Linkedin Corporation | Learning a ranking model using interactions of a user with a jobs list |
US20170012982A1 (en) * | 2015-07-10 | 2017-01-12 | Google Inc. | Protecting Data From Unauthorized Access |
US10380500B2 (en) | 2015-09-24 | 2019-08-13 | Microsoft Technology Licensing, Llc | Version control for asynchronous distributed machine learning |
EP3179690A1 (en) * | 2015-12-11 | 2017-06-14 | Gemalto Sa | Mobile device having trusted execution environment |
US10671938B2 (en) | 2016-01-27 | 2020-06-02 | Bonsai AI, Inc. | Artificial intelligence engine configured to work with a pedagogical programming language to train one or more trained artificial intelligence models |
US11743203B2 (en) * | 2016-02-17 | 2023-08-29 | Blackberry Limited | Managing resource access |
JP6701979B2 (ja) * | 2016-06-01 | 2020-05-27 | 富士通株式会社 | 学習モデル差分提供プログラム、学習モデル差分提供方法、および学習モデル差分提供システム |
US11210583B2 (en) * | 2016-07-20 | 2021-12-28 | Apple Inc. | Using proxies to enable on-device machine learning |
US10536351B2 (en) * | 2016-07-29 | 2020-01-14 | Splunk Inc. | Analytics for edge devices |
US11087236B2 (en) * | 2016-07-29 | 2021-08-10 | Splunk Inc. | Transmitting machine learning models to edge devices for edge analytics |
US10996997B2 (en) * | 2017-01-23 | 2021-05-04 | International Business Machines Corporation | API-based service command invocation |
US20180241572A1 (en) * | 2017-02-22 | 2018-08-23 | Intel Corporation | Techniques for remote sgx enclave authentication |
US10453165B1 (en) * | 2017-02-27 | 2019-10-22 | Amazon Technologies, Inc. | Computer vision machine learning model execution service |
US10803392B1 (en) * | 2017-03-10 | 2020-10-13 | Amazon Technologies, Inc | Deploying machine learning-based models |
-
2017
- 2017-08-11 US US15/674,885 patent/US11403540B2/en active Active
-
2018
- 2018-04-26 KR KR1020197035504A patent/KR102320755B1/ko active IP Right Grant
- 2018-04-26 WO PCT/US2018/029563 patent/WO2019032156A1/en unknown
- 2018-04-26 JP JP2019565276A patent/JP6923676B2/ja active Active
- 2018-04-26 EP EP18724421.5A patent/EP3491587B1/en active Active
- 2018-04-26 CN CN201880046411.0A patent/CN110892425B/zh active Active
-
2022
- 2022-07-27 US US17/874,967 patent/US20220358385A1/en active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8429103B1 (en) * | 2012-06-22 | 2013-04-23 | Google Inc. | Native machine learning service for user adaptation on a mobile platform |
US20140189246A1 (en) * | 2012-12-31 | 2014-07-03 | Bin Xing | Measuring applications loaded in secure enclaves at runtime |
JP2016525983A (ja) * | 2013-08-12 | 2016-09-01 | 三菱電機株式会社 | 車両内の設定を調整する方法 |
US20160191534A1 (en) * | 2014-12-30 | 2016-06-30 | Facebook, Inc. | Methods and Systems for Managing Permissions to Access Mobile Device Resources |
US20170124487A1 (en) * | 2015-03-20 | 2017-05-04 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for implementing machine learning model training and deployment with a rollback mechanism |
US9336483B1 (en) * | 2015-04-03 | 2016-05-10 | Pearson Education, Inc. | Dynamically updated neural network structures for content distribution networks |
CN105912500A (zh) * | 2016-03-30 | 2016-08-31 | 百度在线网络技术(北京)有限公司 | 机器学习模型生成方法和装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112052149A (zh) * | 2020-09-06 | 2020-12-08 | 厦门理工学院 | 一种大数据信息采集系统及使用方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2019032156A1 (en) | 2019-02-14 |
US11403540B2 (en) | 2022-08-02 |
US20190050746A1 (en) | 2019-02-14 |
JP6923676B2 (ja) | 2021-08-25 |
US20220358385A1 (en) | 2022-11-10 |
KR20200002034A (ko) | 2020-01-07 |
EP3491587B1 (en) | 2020-06-24 |
EP3491587A1 (en) | 2019-06-05 |
JP2020528589A (ja) | 2020-09-24 |
KR102320755B1 (ko) | 2021-11-02 |
CN110892425B (zh) | 2024-02-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110869949B (zh) | 设备上机器学习平台 | |
CN110892425B (zh) | 设备上机器学习平台 | |
US12020127B2 (en) | On-device machine learning platform to enable sharing of machine learned models between applications | |
US11356440B2 (en) | Automated IoT device registration | |
US10776510B2 (en) | System for managing personal data | |
US11983613B2 (en) | Incognito mode for personalized machine-learned models | |
US11494171B1 (en) | Decentralized platform for deploying AI models | |
EP3084589B1 (en) | Crowd sourced online application cache management | |
US9350625B2 (en) | Service consumption based on gamification level classification | |
US11799864B2 (en) | Computer systems for regulating access to electronic content using usage telemetry data | |
Kuflik et al. | Enabling mobile user modeling: infrastructure for personalization in ubiquitous computing | |
Stewart | Optimization strategies for large-scale distributed computing and data management in the presence of security and other requirements |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |