CN110809757A - 使得应用之间能够共享机器学习模型的设备上的机器学习平台 - Google Patents
使得应用之间能够共享机器学习模型的设备上的机器学习平台 Download PDFInfo
- Publication number
- CN110809757A CN110809757A CN201880044238.0A CN201880044238A CN110809757A CN 110809757 A CN110809757 A CN 110809757A CN 201880044238 A CN201880044238 A CN 201880044238A CN 110809757 A CN110809757 A CN 110809757A
- Authority
- CN
- China
- Prior art keywords
- application
- machine learning
- learning model
- computing device
- data
- 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 187
- 238000000034 method Methods 0.000 claims description 25
- 238000012549 training Methods 0.000 claims description 23
- 230000003993 interaction Effects 0.000 claims description 4
- 230000004044 response Effects 0.000 claims description 2
- 238000004891 communication Methods 0.000 abstract description 7
- 230000008901 benefit Effects 0.000 description 13
- 238000012545 processing Methods 0.000 description 8
- 230000004224 protection Effects 0.000 description 8
- 238000013507 mapping Methods 0.000 description 6
- 230000000153 supplemental effect Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000001186 cumulative effect Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 239000013589 supplement Substances 0.000 description 3
- 206010001488 Aggression Diseases 0.000 description 2
- 230000002730 additional effect Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000013480 data collection Methods 0.000 description 2
- 238000013075 data extraction Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000008713 feedback mechanism Effects 0.000 description 2
- 238000002347 injection Methods 0.000 description 2
- 239000007924 injection Substances 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Stored Programmes (AREA)
Abstract
本公开提供了一种设备上的机器学习平台,其使得在计算设备上的应用之间能够共享机器学习模型。例如,具有用于特定任务的机器学习模型的第一应用可以通过系统级应用编程接口(API)向其他应用暴露该模型,以供其他应用使用。使用该API的通信可以由设备上的机器学习平台处理。在一些实施方式中,可以提供一些资源(例如,计算资源)的交换,使得第一应用因共享机器学习模型(例如,基于每次模型调用)而得到补偿。
Description
相关申请的交叉引用
本申请要求2017年11月29日提交的美国专利申请第15/825,551号的优先权和利益,该申请的标题为“On-Device Machine Learning Platform to Enable Sharing ofMachine-Learned Models Between Applications(使得应用之间能够共享机器学习模型的设备上的机器学习平台)”。美国专利申请第15/825,551号在此全文引入作为参考。
技术领域
本公开总体上涉及机器学习。更具体地,本公开涉及一种设备上(on-device)的机器学习平台,该平台使得设备上的应用能够经由应用编程接口(application programminginterface,API)共享对他们的机器学习模型的访问。
背景技术
近年来,机器学习越来越多地被用于为计算设备的用户提供改进的服务。具体而言,许多应用或其他计算程序或系统依赖一个或多个机器学习模型来基于与程序、设备和/或用户相关联的输入数据产生推理(inference)。(多个)应用可以使用(多个)推理来执行或影响任何类型的任务或服务。
一种用于解决机器学习问题的传统训练方案包括在集中的位置(例如,服务器设备)从多个计算设备(例如,诸如智能手机的用户设备)收集多个训练示例。然后,可以基于收集的训练示例在集中的位置训练机器学习模型。
此外,在某些情况下,已训练的模型可以存储在集中的位置。为了从模型接收推理,用户计算设备需要通过网络向服务器计算设备发送输入数据,等待服务器设备运行机器学习模型以基于发送的数据产生(多个)推理,然后再次通过网络从服务器计算设备接收(多个)推理。
在这种情况下,需要通过网络在用户计算设备和服务器计算设备之间传输(多个)训练示例和/或(多个)推理。这种网络传输代表数据安全风险,因为通过网络传输的数据可能容易被拦截。此外,这种网络传输会增加网络流量,从而可导致通信速度降低。此外,与通过网络来回传输数据相关联的延迟会导致提供应用服务的延迟。
最近,某些应用包括了存储在应用中并由用户设备上的应用实现的机器学习模型。然而,这种架构既是难以实现的又是资源密集的。例如,在这种情况下,应用需要存储、管理、训练和/或实现一个或多个机器学习模型。在应用本身中包含模型和相应的支持服务会增加应用的数据大小,导致更大的存储器占用。
应用中的机器学习也可能需要更频繁的应用更新。例如,当底层机器学习引擎被更新或以其他方式改进时,应用可能需要被更新。当下载和安装更新时,应用更新可能会令人不快地要求用户使用网络并停机。
此外,应用中的机器学习也可能使应用开发复杂化,因为应用本身需要内置额外的服务。因此,开发者可能需要学习和跟上不同机器学习引擎的复杂性。
因此,应用越来越依赖机器学习模型来解决各种各样的问题;但是训练这些模型需要并不一定是所有应用都可获得的大量数据。
发明内容
本公开的实施例的方面和优点将在以下描述中部分阐述,或者可以从描述中获知,或者可以通过对实施例的实践获知。
本公开的一个示例方面针对计算设备。一种计算设备包括一个或多个处理器和一个或多个非暂时性计算机可读介质。一个或多个非暂时性计算机可读介质存储由一个或多个处理器实现的第一应用。第一应用包括第一机器学习模型。一个或多个非暂时性计算机可读介质存储由一个或多个处理器实现的第二应用。一个或多个非暂时性计算机可读介质存储指令,当由一个或多个处理器执行时,所述指令使得计算设备实现执行操作的设备上的机器学习平台。操作包括经由应用编程接口从第二应用接收输入数据。操作包括经由应用编程接口向第一应用提供输入数据。操作包括经由应用编程接口接收由第一机器学习模型至少部分基于输入数据生成的至少一个推理。操作包括经由应用编程接口向第二应用提供由第一机器学习模型生成的至少一个推理。
本公开的另一个示例方面针对存储指令的非暂时性计算机可读介质,所述指令当被一个或多个处理器执行时使得一个或多个处理器执行操作。操作包括经由应用编程接口从客户端应用接收输入数据。操作包括经由应用编程接口向提供端应用提供输入数据。提供端应用包括机器学习模型。操作包括经由应用编程接口接收由机器学习模型至少部分基于输入数据生成的至少一个推理。操作包括经由应用编程接口向客户端应用提供由机器学习模型生成的至少一个推理。
本公开的另一个示例方面针对计算机实现的方法。该方法包括在计算设备的存储器上存储第一应用。第一应用包括第一机器学习模型。该方法包括在计算设备的存储器上存储第二应用。该方法包括由计算设备为第一应用的第一机器学习模型提供应用编程接口。该方法包括响应于经由应用编程接口从第二应用接收对于执行第一应用的第一机器学习模型的请求,该请求包括输入数据:将输入数据提供给第一应用的第一机器学习模型;以及向第二应用提供由第一应用的第一机器学习模型至少部分基于输入数据生成的至少一个输出。
本公开的其他方面针对各种系统、装置、非暂时性计算机可读介质、用户接口和电子设备。
参考以下描述和所附权利要求,将更好地理解本公开的各种实施例的这些和其他特征、方面和优点。结合在本说明书中并构成其一部分的附图图示了本公开的示例实施例,并且与描述一起用于解释相关原理。
附图说明
在参考附图的说明书中阐述了针对本领域普通技术人员的实施例的详细讨论,其中:
图1描绘了根据本公开的示例实施例的示例计算设备的框图。
图2描绘了根据本公开的示例实施例的共享机器学习模型的示例过程的图形示意图。
图3描绘了根据本公开的示例实施例的训练机器学习模型的示例技术的图形示意图。
图4A和图4B描绘了根据本公开的示例实施例的使得在应用之间能够共享机器学习模型的示例方法的流程图。
具体实施方式
本公开的示例方面针对一种设备上的机器学习平台,其使得在计算设备上的应用之间能够共享机器学习模型。例如,具有用于特定任务的机器学习模型的第一应用可以通过系统级应用编程接口(API)向其他应用暴露该模型,以供其他应用使用。使用该API的通信可以由设备上的机器学习平台处理。在一些实施方式中,可以提供一些资源(例如,计算资源)的交换,使得第一应用因共享机器学习模型(例如,基于每次模型调用)而得到补偿。
更具体地,诸如例如移动计算设备(例如智能手机)的计算设备可以存储或以其他方式包括一个或多个应用(例如移动应用)。应用中的一个或多个可以具有该应用想要分别暴露的一个或多个机器学习模型。这样,在一些实施方式中,当向应用下载平台(例如,“应用商店”)提交应用时,开发者可以包括应用经由机器学习平台提供的所有机器学习模型的接口/模型签名(例如,(多个)模型使用的输入特征、(多个)模型生成的输出和格式、和/或(多个)模型解决的(多个)问题)。
在一些实施方式中,当在计算设备(例如,智能手机)上安装应用时,应用可以向设备上的平台针对每个机器学习模型注册其初始版本。在一些实施方式中,在应用的生命周期期间,应用可以使用来自用户与应用的交互的数据和/或其他新获取的数据,在设备上或设备外继续训练机器学习模型。例如,诸如个性化学习和/或联合学习(FederatedLearning)的各种过程可以用于随着时间的推移在接收到附加数据(例如,用户特定数据)时更新机器学习模型。在一些实施方式中,应用可以决定向设备上的平台注册机器学习模型的新的更新版本。
另一个应用可以经由平台的API访问暴露的机器学习模型。在一些实施方式中,API可使得机器学习模型能够作为完整的黑盒而经由该API被调用或使用。以黑盒的形式提供对(多个)模型的访问可以防止第二应用简单地=制由第一应用提供的机器学习模型的参数/结构等,从而确保从中导出的特定用户数据或模型不会在应用之间泄漏或以其他方式直接可访问。
在一些实施方式中,想要使用机器学习模型的应用需要知道提供端应用以及模型的接口。例如,设备上的平台可以让应用获得这些信息。然后,想要访问机器学习模型的应用以正确的格式向设备上的平台提供输入,设备上的平台与提供端应用通信以调用模型来基于所提供的输入提供推理或预测。设备上的平台可以注册或以其他方式跟踪模型调用。例如,在一些实施方式中,模型使用的注册可以用于控制、计算或管理两个应用或它们的开发者之间的资源交换。
因此,设备上的平台代表了使得能够发现可供访问的机器学习模型的集中系统。此外,设备上的平台可以处理和促进应用及其相应模型之间的通信。设备上的平台还提供单点信任。也就是说,该平台可以充当可信的中介和“记分员”,其能够控制对机器学习模型的访问,同时为给定模型维护给定应用调用的推理数量的准确日志。
在一个示例中,视频流应用可以具有大量数据来训练用于电影和电视剧的机器学习推荐系统。例如,当给定诸如一天中的时间、位置、过去观看的电影的历史等输入上下文时,推荐系统可以用于高精度地预测用户将欣赏的另一部电影。然而,助理应用可能无法访问相同的数据,但当用户请求助理应用提供电影推荐时助理应用仍然对该功能感兴趣。这样,根据本公开的方面,如本文所述,助理应用可以经由API查询视频流应用的机器学习推荐系统。
在另一示例中,地图应用可以从使用导航方向功能的用户学习机器学习模型。例如,地图应用的机器学习模型可以学习做出关于用户在给定上下文中想要驾车去哪里的预测。通过使用这里描述的机器学习平台,乘坐共享应用可以利用地图应用的机器学习模型,而不是训练它自己的模型。
作为又一个示例,例如,社交媒体应用可以利用用户数据(例如,用户喜欢、点击、花费大量时间在哪些照片上)来学习捕捉用户对时尚的偏好的复杂机器学习模型。然后,购物应用可以使用API向社交媒体应用的机器学习模型查询一组时尚用品(例如,作为图像给出)的分数。
根据本公开的另一个方面,在一些实施方式中,可以提供一些资源交换,使得第一应用因共享机器学习模型(例如,基于每次模型调用)而得到补偿。在应用具有交换这种资源的权限和/或能力的限度内,可以交换的一些示例资源包括:数据,诸如对训练机器学习模型有用的数据;访问对方的机器学习模型(例如,“平均共享(share and sharealike)”);处理资源、存储器资源(例如,“存储空间”)、带宽资源(例如,网络接口上的传输时间);或其他形式的计算资源或其他资源。在另一个示例中,应用可以相互交换推理周期,以便能够共享对机器学习模型的访问。在一些实施方式中,设备上的平台可以简单地跟踪应用对之间模型的累积使用,并且可以向应用开发者提供这样的信息,使得应用开发者可以单独处理适当的资源交换。
根据本公开的另一方面,在一些实施方式中,设备上的机器学习平台可以包括或启用关于模型质量的反馈机制。在一些实施方式中,为模型提供的反馈可以影响为模型的使用提供的资源交换。更具体地说,假设许多应用经由设备上的平台共享它们的模型,最终一些应用将具有比其他应用更高性能的模型。例如,某些应用可以访问更高质量或更大量的数据,应用可以在这些数据上训练其(多个)模型。这样,在一些实施方式中,设备上的平台可以用信誉机制来增强,通过信誉机制,使用其他模型的应用提供关于模型性能如何的持续反馈(例如,来自它们的用户或来自应用本身)。
在一些实施方式中,反馈可以采取提供由模型提供的推理实际上是否正确地预测了结果的指示的形式。作为示例,助理应用可以调用包括在地图应用中的机器学习模型来接收为用户预测的目的地。此后,可以确定用户实际上是前往预测的目的地还是不同的目的地。这样,助理应用可以提供指示预测是正确还是不正确的反馈。例如,反馈可以简单地指示正确或不正确,或者可以提供实际结果(例如,实际目的地),并且可以(例如,由集中的平台和/或由提供端应用)比较实际结果以确定预测是否正确。在进一步的实施方式中,可以提供和/或确定除正确或不正确之外的一些度量或主观分数。可以提供的反馈形式的其他示例包括点击率的指示、用户采取了几个可能动作中的哪一个、用户与机器学习模型选择的某个项目交互的频率的度量等。
包含这种反馈机制的一个优点是,经由API访问模型的应用能够对经由平台可获得的各种模型的质量有一些指示,并且能够就访问哪个模型以及何时访问这些模型做出知情决策。作为另一个优点,提供模型的提供端应用可能够使用从其他应用传递的数据来改进其模型。此外,在资源交换的规模基于模型的评级/信誉的实施方式中,提供端应用可以通过提供更优的模型来接收更大的资源交换,而客户端应用可以选择使得预测质量和获得预测的资源成本之间的权衡最优化的模型。类似地,提供包括实际结果的反馈可以用来提高被调用的机器学习模型的性能/准确性。
根据本公开的另一个方面,附加的上下文数据和/或传感器数据可以用于补充来自客户端应用的对提供端应用的模型的推理请求。例如,设备上的平台可以包括利用来自系统级API的附加上下文数据和/或传感器数据来补充推理请求的上下文管理器。该补充数据使得机器学习模型能够提供更准确的或以其他方式改进的预测/推理。
在一些实施方式中,补充数据可以限于提供端应用已经被授予适当权限的数据和/或客户端应用已经被授予适当权限的数据。在一些实施方式中,这可能导致这样的场景,其中向客户端应用提供预测,该预测是基于提供端应用已经被授予权限但是客户端应用没有被授予权限的附加上下文数据(例如,用户位置)做出的。然而,附加上下文数据没有被提供给客户端应用或者以其他方式对客户端应用可见。相反,只有提供端应用的机器学习模型提供的预测被提供给客户端应用。因此,在这种场景下,客户端应用可能够享受至少部分基于上下文数据(例如,用户位置)做出的预测的益处,而无需访问或以其他方式接收上下文数据本身。这可以减少应用所需的权限数量,同时还可以实现更好的预测,从而实现更好的应用性能。
根据本公开的另一方面,因为这是平台级特征,所以平台可以提供针对欺诈、滥用行为或恶意活动的一个或多个保护。例如,一个示例限制可能涉及通过分析客户端应用的使用来保护模型免受数据泄漏。在一个示例中,如果当设备上的用户只点击几次时却从客户端应用发送每秒100个查询,这很可能是滥用。因此,可以设置某些API限制,例如,包括将每分钟的查询数量限制在某个阈值以下。
另一个示例平台特征可以检测和防止敌对攻击。例如,平台可以检测并防止与恶意行为相关联的模式相匹配的模型调用模式(包括例如与已知训练数据提取技术相关联的模式)。
这些种类的保护当在集中的API的上下文中执行时变得更加高效:参与平台的所有应用都被提供了保护,并且不需要单独的应用开发者各自执行这些额外的活动,从而使他们能够专注于他们自己的应用。
虽然系统和方法在此被描述为使得能够在驻留在同一设备上的应用之间共享机器学习模型,但是它们也可以被扩展为使得能够在驻留在不同设备上的应用之间共享机器学习模型。例如,第一设备上的平台可以使第一设备的第一应用能够与(例如,通过无线网络连接到第一设备的)第二设备的第二应用共享其机器学习模型。
本公开的设备上的平台提供了许多技术效果和益处。作为一个示例,提供模型的提供端应用可以受益于来自其他应用的用户反馈信号。因此,作为提供模型访问的结果而接收的用户反馈或其他数据可以提高模型本身的准确性。此外,可以基于用户特定的数据在设备上个性化模型,并且可以以隐私保护的方式与用户设备上的所有应用共享准确性优势。
作为另一个示例的技术效果和益处,由于客户端应用可以访问和依赖于由其他应用提供的机器学习模型,所以不是每个应用开发者都需要一开始就开发模型,从而使应用开发者能够专注于应用的其他方面,从而总体上提高应用的质量。
此外,通过使多个应用能够访问和依赖包括在某些提供端应用内的数量减少的模型,并不是每个应用都需要包括自己的独立模型。这可以节省存储器空间,因为冗余模型、训练示例等可以被消除,进而减少了需要存储在设备存储器中的模型、训练示例的缓存等的数量。例如,与第一应用具有第一模型和第二应用具有第二模型相比,第一应用和第二应用共享第一应用的模型对存储器的需求将降低。类似地,由于数量减少的机器学习模型被基于收集的数据而重新训练,因此可以节省处理资源。因此,通过共享对模型的访问,可以减少模型的总数,从而节省处理和内存资源使用。
此外,由于训练数据被累积并应用于更少数量的模型,因此模型将具有提高的准确性。例如,可以向每个模型提供共享该模型的每个应用接收的用户反馈或其他数据。通过提高共享模型的准确性,可以提供用户操作的整体减少。例如,通过生成更准确的推理或预测,模型可以更一致地抢先用户的动作或意图并预测用户的操作,或者可以向用户提供更一致地准确或相关的信息,减少重复和/或澄清查询的用户操作的实例。
此外,如上所述,通过在专用中间平台级别提供专门且一致的欺诈保护,设备上的平台通常可以提供比应用开发者自己平均愿意或能够单独构建的更好的保护机制。
此外,对于包含机器学习模型的应用,所提供的API可以是轻量级和灵活的。这可以允许应用开发者共享他们的机器学习模型,同时保留使用唯一和/或非标准化模型结构和数据流的自由。也就是说,模型只需要满足实现经由API进行接口的最低要求,但不受其他限制。例如,在将其输入机器学习模型之前,可以在应用中对输入数据执行预计算。
作为又一示例的技术效果和益处,通过使应用能够相互分配诸如处理能力、存储空间、带宽等资源以换取机器学习模型的使用,可以实现更优化的资源分配。此外,通过实现从一个应用到另一个应用的诸如处理能力、存储空间、带宽等资源的交换,可以通过减少资源的冗余分配或已分配但未使用的资源来减少这些资源的总使用量。
现在将参考附图,进一步详细讨论本公开的示例实施例。
示例设备和系统
图1描绘了根据本公开的示例实施例的包括设备上的机器学习平台122的示例计算设备102的框图。
计算设备102可以是任何类型的计算设备,包括例如台式计算机、膝上型计算机、平板计算设备、智能手机、能够穿戴的计算设备、游戏控制台、嵌入式计算设备或其他形式的计算设备。因此,在一些实施方式中,计算设备102可以是移动计算设备和/或用户计算设备。
计算设备102包括一个或多个处理器112和存储器114。一个或多个处理器112可以是任何合适的处理设备(例如,处理器核、微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、控制器、微控制器等)并且可以是一个处理器或可操作地连接的多个处理器。存储器114可以包括一个或多个非暂时性计算机可读存储介质,例如RAM、ROM、EEPROM、EPROM、闪存设备、磁盘等以及它们的组合。存储器114可以存储由处理器112执行的数据和指令,以使计算设备102执行操作。计算设备102还可以包括网络接口116,其使得能够通过一个或多个网络(例如,因特网)进行通信。
设备上的机器学习平台122使得能够在计算设备上的应用之间共享机器学习模型。例如,具有用于特定任务的机器学习模型的第一应用可以通过系统级应用编程接口(API)向其他应用暴露该模型,以供其他应用使用。使用该API的通信可以由设备上的机器学习平台处理。在一些实施方式中,可以提供一些资源(例如,计算资源)的交换,使得第一应用因共享机器学习模型(例如,基于每次模型调用)而得到补偿。
计算设备102可以存储或以其他方式包括一个或多个应用120a-c(例如,移动应用)。应用120a-c中的一个或多个可以具有应用想要分别暴露的一个或多个机器学习模型。例如,应用120a可以包括第一机器学习模型132a和机器学习库134a。同样,应用120c可以具有机器学习模型132c和机器学习库134c。一些应用可以包括和/或暴露多个机器学习模型。然而,一些应用可能没有机器学习模型,或者可能不希望暴露这样的模型。例如,应用120b不包括或以其他方式暴露任何机器学习模型。
机器学习库134a和134c可以包括一个或多个机器学习引擎(例如,TensorFlow引擎)、神经网络库和/或使得能够实现用于推理和/或训练的机器学习模型132a和132c的其他组件。在其他实施方式中,库134a和/或134c可以存储在设备上的机器学习平台122上和/或由设备上的机器学习平台122实现,作为服务提供给应用120a-c。
在一些实施方式中,当向应用下载平台(例如,“应用商店”)提交应用(例如,120a或120c)时,开发者可以包括应用(例如,120a或120c)经由机器学习平台122提供的所有机器学习模型(例如,132a或132c)的接口/模型签名(例如,(多个)模型使用的输入特征、(多个)模型生成的输出和格式、和/或(多个)模型解决的(多个)问题)。
在一些实施方式中,在计算设备102上安装应用(例如,120a或120c)时,应用(例如,120a或120c)可以为每个机器学习模型(例如,132a或132c)向模型管理器124注册其初始版本。在一些实施方式中,在应用(例如,120a或120c)的生命周期期间,应用(例如,120a或120c)可以使用来自用户与应用的交互的数据和/或其他新获取的数据(例如,通过反馈提供的),在设备上或设备外继续训练机器学习模型(例如,132a或132c)。例如,诸如个性化学习和/或联合学习(Federated Learning)的各种过程可以用于随着时间的推移在接收到附加数据(例如,用户特定数据)时更新机器学习模型。例如,图3提供了更新模型的示例数据流。在一些实施方式中,应用(例如,120a或120c)可以决定向模型管理器124注册机器学习模型(例如,132a或132c)的新的更新版本。
其他应用(例如,应用120b)可以经由平台122的API访问暴露的机器学习模型(例如,132a或132c)。例如,设备上的机器学习平台122可以对经由或使用该API发出的请求或命令进行中间处理。在其他实施方式中,设备上的机器学习平台122可以简单地路由经由或使用该API发出的请求或命令。在一些实施方式中,API可以经由该API实现将机器学习模型作为一个完整的黑盒来调用或使用。以黑盒形式提供对模型的访问可以防止第二应用(例如,应用120b)简单地复制由第一应用(例如,120a或120c)提供的机器学习模型(例如,132a或132c)的参数/结构等,从而确保特定用户数据或从中导出的模型不会在应用之间泄漏或以其他方式直接可访问。
在一些实施方式中,想要使用机器学习模型的应用需要知道提供端应用以及模型的接口。例如,设备上的平台122可以使该信息对应用是可获得的。然后,想要访问机器学习模型的应用以正确的格式向设备上的平台122提供输入,设备上的平台122与提供端应用通信,以调用模型来提供基于所提供的输入的推理或预测。设备上的平台122可以注册或以其他方式跟踪模型调用。例如,在一些实施方式中,模型使用的注册可以用于控制、计算或管理两个应用或它们的开发者之间的资源交换(例如,通过资源管理器131)。
因此,设备上的平台122代表了使得能够发现可供访问的机器学习模型的集中的系统。此外,设备上的平台122可以处理和促进应用及其相应模型之间的通信。设备上的平台122还提供单点信任。也就是说,平台122可以充当可信的中介和“记分员”,其实现对机器学习模型的受控访问,同时为给定模型维护给定应用调用的推理数量的准确日志。
设备上的机器学习平台122可以是本地存储在计算设备102(例如,智能手机或平板计算机)上的一个或多个计算机程序的形式,当由设备102执行时,这些计算机程序被配置为执行机器学习管理操作,这些操作使得能够代表一个或多个本地存储的应用120a-c或其他本地客户端执行设备上的机器学习功能。
在一些实施方式中,设备上的机器学习平台122可以包括上下文管理器126,该上下文管理器126将上下文特征(包括用于生成预测/推理的应用提供的输入数据)安全地注入到模型调用中。
在一些实施方式中,可以根据许多不同的上下文类型对上下文特征进行分组或以其他方式分类。通常,每个上下文类型可以指定或包括具有众所周知的名称和众所周知的类型的一组上下文特征。一个示例上下文类型是设备信息,其包括以下示例上下文特征:音频状态、网络状态、电源连接等。
在一些实施方式中,上下文管理器126在注入的时间/点向设备102请求针对给定上下文特征注入的值。替代地或附加地,上下文管理器126可以注册为一个或多个上下文更新的收听者,并且可以基于一个或多个上下文更新来维护上下文特征的当前值的上下文特征缓存(cache)。然后,当注入上下文特征时,上下文管理器126可以简单地访问上下文特征缓存,并注入在缓存中为特定上下文特征维护的当前值。
因此,上下文管理器126可以在推理时执行上下文特征的注入。特别地,当特定应用120a-c或其他客户端(例如,经由API)请求基于一些应用提供的输入数据生成推理时,上下文管理器126可以与输入数据一起提供或注入补充上下文特征以输入到相应机器学习模型132a或132c中。因此,除了应用提供的输入数据之外,还可以至少部分基于上下文信息进行推理,这可以有助于提高推理的准确性。
根据另一方面,由于某些应用120a-c可能仅具有访问某些上下文特征或上下文类型(例如,由设备用户定义或控制)的权限,因此上下文管理器126可以执行应用权限控制。特别地,在一些实施方式中,设备上的机器学习平台122或其他设备组件可以维护哪些应用具有访问哪些上下文类型或上下文特征的权限的映射。当要注入上下文特征时(例如,为了在推理时补充应用提供的输入数据),上下文管理器126可以检查客户端应用和/或提供端应用120a-c相对于要注入的上下文特征或上下文类型的权限状态。例如,特定应用120a-c和上下文类型的权限状态可以描述这样的应用120a-c是否具有访问这样的上下文类型的权限。在一些实施方式中,上下文管理器126将仅注入包括在提供端应用120a-c具有访问权限的上下文类型中的上下文特征,从而防止应用120a-c访问其不具有访问权限的上下文特征/类型。
根据本公开的另一方面,在一些实施方式中,平台122可以包括资源管理器131,其管理一些资源交换,使得提供端应用因共享机器学习模型(例如,基于每次模型调用)而得到补偿。可以交换的一些示例资源包括:数据,诸如对训练机器学习模型有用的数据;访问对方的机器学习模型(例如,“平均共享”);处理资源、存储器资源(例如,“存储空间”)、带宽资源(例如,网络接口上的传输时间);或其他形式的计算资源或其他资源。在另一个示例中,应用可以相互交换推理周期,以便能够共享对机器学习模型的访问。在一些实施方式中,资源管理器131可以简单地跟踪应用对之间模型的累积使用,并且可以向应用开发者提供这样的信息,使得应用开发者可以单独处理适当的资源交换。
根据本公开的另一方面,在一些实施方式中,设备上的机器学习平台可以包括反馈管理器128,其管理关于模型质量的反馈。在一些实施方式中,为模型提供的反馈可以影响为模型的使用提供的资源交换。更具体地说,假设许多应用经由设备上的平台122共享它们的模型,最终一些应用将拥有比其他应用更高性能的模型。例如,某些应用可以访问更高质量或更大量的数据,应用可以在这些数据上训练其(多个)模型。这样,在一些实施方式中,设备上的平台122可以包括反馈管理器128,该反馈管理器128实现信誉机制,通过信誉机制,使用其他模型的应用提供关于模型性能如何的持续反馈(例如,来自它们的用户或来自应用本身)。
在一些实施方式中,反馈可以采取提供由模型提供的推理实际上是否正确地预测了结果的指示的形式。作为示例,助理应用可以调用包括在地图应用中的机器学习模型来接收预测的用户目的地。此后,可以确定用户实际上是前往预测的目的地还是不同的目的地。这样,助理应用可以提供指示预测是正确还是不正确的反馈。例如,反馈可以简单地指示正确或不正确,或者可以提供实际结果(例如,实际目的地),并且可以比较实际结果(例如,由反馈管理器128和/或由提供端应用)以确定预测是否正确。在进一步的实施方式中,可以提供和/或确定超出正确或不正确之外的一些度量或主观分数。可以提供的反馈形式的其他示例包括点击率的指示、用户采取了几个可能动作中的哪个、用户与机器学习模型选择的某个项目交互的频率的度量等。
包含反馈管理器128的一个优点是,经由API访问模型的应用能够具有经由平台可获得的各种模型的质量的一些指示,并且能够就访问哪个模型以及何时访问这些模型做出知情决策。作为另一个优点,提供模型的提供端应用可能够使用从其他应用传递的数据来改进其模型。此外,在由资源管理器131管理的资源交换的规模基于模型的评级/信誉的实施方式中,提供端应用可以通过提供更优的模型来接收更大的资源交换,而客户端应用可以选择使预测质量和获得预测的资源成本之间的权衡最优化的模型。类似地,提供包括实际结果的反馈可以用来提高被调用的机器学习模型的性能/准确性。
根据本公开的另一方面,平台122可以包括安全管理器130,该安全管理器130提供针对欺诈、滥用行为或恶意活动的一个或多个保护。例如,一个示例限制可涉及通过分析客户端应用的使用来保护模型免受数据泄漏。在一个示例中,如果当设备上的用户只点击几次时却从客户端应用发送每秒100个查询,这很可能是滥用。因此,安全管理器130可以实施某些API限制,例如,包括将每分钟的查询数量限制在某个阈值以下。
作为另一个示例,安全管理器130可以检测和防止敌对攻击。例如,安全管理器130可以检测并防止与恶意行为相关联的模式相匹配的模型调用模式(包括例如与已知训练数据提取技术相关联的模式)。
这些种类的保护当在集中的API的上下文中执行时变得更加高效:参与平台122的所有应用都被提供了保护,并且不需要单独的应用开发者各自执行这些额外的活动,从而使他们能够专注于他们自己的应用。
在一些实施方式中,设备上的机器学习平台122可以被包括在应用中或者被实现为应用,诸如例如移动应用。例如,在安卓操作系统的上下文中,设备上的机器学习平台122可以包括在可以下载和/或更新的安卓软件包(Android Package Kit,APK)中。在另一个示例中,设备上的机器学习平台122可以被包括在设备102的操作系统中或者被实现为设备102的操作系统的一部分,而不是作为独立的应用。
模型管理器124、上下文管理器126、反馈管理器128、安全管理器130和资源管理器131中的每一个都包括用于提供期望功能的计算机逻辑。模型管理器124、上下文管理器126、反馈管理器128、安全管理器130和资源管理器131中的每一个都可以在控制通用处理器的硬件、固件和/或软件中实现。例如,在一些实施方式中,模型管理器124、上下文管理器126、反馈管理器128、安全管理器130和资源管理器131中的每一个都包括存储在存储设备上、加载到存储器中并由一个或多个处理器执行的程序文件。在其他实施方式中,模型管理器124、上下文管理器126、反馈管理器128、安全管理器130和资源管理器131中的每一个都包括一组或多组计算机可执行指令,这些指令存储在有形的计算机可读存储介质中,例如随机存取存储器(RAM)硬盘或光学或磁性介质。
图2描绘了根据本公开的示例实施例的共享机器学习模型的示例过程的图形示意图。具体而言,图2可视化了一个具体示例,其中被称为“VideoApp”202的视频应用提供了机器学习模型“MovieLikenessScore”(电影相似性得分),其在给定电影标题的情况下,返回0到1之间的确定性分数,指示用户将有多喜欢它。
在内部,VideoApp可以使用用户的行为数据来训练这样一个预测它的个性化模型。另一个应用(称为“ChatApp”204的聊天应用)无法训练这样的模型,因为它无法访问数据,然后可以在需要时查询VideoApp 202的机器学习模型。
例如,考虑用户正在ChatApp 204内部的聊天对话中讨论不同的电影,并且对话中有人提到电影“泰坦尼克号”。ChatApp 204然后可以通过系统接口使用来自VideoApp 202的机器学习模型,例如通过调用Inference(推理)(VideApp,MovieLikenessScore,“泰坦尼克号”,输入特征)来获得指示用户对电影的偏好的分数,该分数又可以用于允许更好的下一单词或智能回复预测(例如,如果分数足够高,则表达对电影的积极评价的赞同的形容词)。
图3描绘了根据本公开的示例实施例的示例的个性化和联合学习数据流的图形示意图。
更具体地说,图3描述了三种不同的学习数据流,它们在某些情况下可以互补的方式使用。在第一数据流中,主要如图3底部的虚线所示,在用户设备上生成训练数据。训练数据被上传到中心机构,然后中心机构基于上传的数据训练或重新训练机器学习模型。然后,模型被发送到用户设备以供使用(例如,设备上的推理)。
在可称为个性或个性化学习的第二数据流中,在用户设备上创建的训练数据用于在设备上训练或重新训练模型。然后,这种设备使用重新训练的模型。这种个性化的学习使每台设备的模型能够在没有集中数据收集的情况下被训练和评估,从而增强数据安全性和用户隐私。
在可称为联合学习的第三数据流中,在用户设备上创建的训练数据用于在设备上训练或重新训练模型。因此,实际的用户特定的训练数据不会上传到云端,从而增强了数据安全性和用户隐私。
然而,在这样的设备上学习之后,用户设备可以向中心机构提供更新。例如,更新可以描述重新训练的模型的一个或多个参数或者在模型的重新训练期间发生的模型参数的一个或多个变化。
中心机构可以从多个设备接收许多这样的更新,并且可以聚集更新以生成更新的全局模型。然后,更新的全局模型可以被重新发送到用户设备。该方案使得跨设备模型能够在没有集中数据收集的情况下被训练和评估。
示例方法
图4A和4B描绘了根据本公开的示例实施例的使得能够在应用之间共享机器学习模型的示例方法400的流程图。
首先参考图4A,在402,计算设备可以从第一应用接收第一机器学习模型的接口信息。例如,第一机器学习模型的接口信息可以包括:第一机器学习模型使用的输入特征的标识或格式,或者第一机器学习模型提供的输出的标识和/或格式。
在404,计算设备可以注册并暴露第一机器学习模型。例如,在计算设备上安装应用时,应用可以向设备上的平台针对每个机器学习模型注册其初始版本。计算设备可以暴露第一机器学习模型的存在及其接口信息,例如模型使用的输入特征、模型生成的输出和格式、和/或模型解决的问题。
在406,计算设备可以经由API从第二应用接收输入数据。例如,第二应用可以经由API以正确的格式提供输入,并且计算设备可以与第一应用通信以调用第一模型来基于所提供的输入提供推理或预测。计算设备可以注册或以其他方式跟踪模型调用。
在408,计算设备可以确保来自第二应用的模型调用请求不违反一个或多个应用编程接口限制。一个示例限制可以禁止第二应用每秒执行大于阈值次数的查询。如果请求违反一个或多个限制,则计算设备可以实施一个或多个编程接口限制。例如,可以拒绝和/或隔离该请求,而不将该请求发送给第一应用。但是,如果该请求没有违反任何限制,则可以实现该请求。
在410,计算设备可以获得补充的上下文和/或传感器数据。在一些实施方式中,在410获得上下文数据或传感器数据中的一个或多个可以包括确定与第一应用相关联的一组权限,并且仅获得第一应用有权限访问的上下文数据或传感器数据。在410之后,方法400前进到图4B的块412。
现在参考图4B,在412,计算设备可以经由应用编程接口向第一应用提供输入数据和补充数据。在414,计算设备可以经由应用编程接口接收由第一机器学习模型至少部分基于输入数据和补充数据生成的至少一个推理。在416,计算设备可以经由应用编程接口向第二应用提供由第一机器学习模型生成的至少一个推理。
在418,计算设备可以经由应用编程接口从第二应用接收反馈数据。例如,反馈数据可以提供至少一个推理是否正确的指示。例如,反馈数据可以描述第二应用观察到的实际结果。
在420,计算设备可以管理第二应用和第一应用之间的资源交换。可以交换的示例资源包括:数据,诸如对训练机器学习模型有用的数据;访问对方的机器学习模型(例如,“平均共享”);处理资源、存储器资源(例如,“存储空间”)、带宽资源(例如,网络接口上的传输时间);或其他形式的计算资源或其他资源。在另一个示例中,应用可以相互交换推理周期,以便能够共享对机器学习模型的访问。在一些实施方式中,设备上的平台可以简单地跟踪应用对之间模型的累积使用,并且可以向应用开发者提供这样的信息,使得应用开发者可以单独处理适当的资源交换。
附加披露
这里讨论的技术涉及服务器、数据库、软件应用和其他基于计算机的系统,以及所采取的动作和发送到这些系统和从这些系统接收的信息。基于计算机的系统固有的灵活性允许各种各样可能的配置、组合以及组件之间任务和功能的划分。例如,这里讨论的过程可以使用单个设备或组件或者组合工作的多个设备或组件来实现。数据库和应用可以在单个系统上实现,也可以分布在多个系统上。分布式组件可以顺序或并行运行。
尽管已经针对本发明的各种具体示例实施例详细描述了本主题,但是每个示例都是通过解释的方式提供的,而不是对本公开的限制。本领域技术人员在理解前述内容后,可以容易地对这些实施例进行改变、变化和等同。因此,本主题公开不排除包括对本主题的这种修改、变化和/或添加,这对本领域普通技术人员来说是显而易见的。例如,作为一个实施例的一部分示出或描述的特征可以与另一个实施例一起使用,以产生又一个实施例。因此,本公开旨在覆盖这些变更、变化和等同。
具体而言,尽管图4A-图4B出于说明和讨论的目的分别描绘了以特定顺序执行的步骤,但是本公开的方法不限于具体示出的顺序或布置。方法400的各种步骤可以以各种方式被省略、重新排列、组合和/或调整,而不偏离本公开的范围。
Claims (22)
1.一种计算设备,包括:
一个或多个处理器;和
一个或多个非暂时性计算机可读介质,其存储:
由所述一个或多个处理器实现的第一应用,其中第一应用包括第一机器学习模型;
由所述一个或多个处理器实现的第二应用;和
指令,所述指令当由所述一个或多个处理器执行时,使所述计算设备实现执行操作的设备上的机器学习平台,所述操作包括:
经由应用编程接口从第二应用接收输入数据;
经由应用编程接口向第一应用提供输入数据;
经由应用编程接口接收由第一机器学习模型至少部分基于输入数据生成的至少一个推理;和
经由应用编程接口向第二应用提供由第一机器学习模型生成的至少一个推理。
2.如权利要求1所述的计算设备,其中所述操作还包括,在接收所述输入数据之前:
从第一应用接收第一机器学习模型的接口信息;
注册第一机器学习模型;和
向第二应用暴露所述机器学习模型的接口信息。
3.如权利要求2所述的计算设备,其中,所述第一机器学习模型的接口信息包括以下中的一个或多个:所述第一机器学习模型使用的输入特征的标识或格式,或者所述第一机器学习模型提供的输出的标识或格式。
4.如任一前述权利要求所述的计算设备,其中经由应用编程接口向第一应用提供输入数据包括:
获得上下文数据或传感器数据中的一个或多个;和
经由应用编程接口向第一应用提供输入数据以及上下文数据或传感器数据中的一个或多个,其中第一机器学习模型至少部分基于输入数据以及上下文数据或传感器数据中的一个或多个生成至少一个推理。
5.如权利要求4所述的计算设备,其中获得上下文数据或传感器数据中的一个或多个包括:
确定与第一应用相关联的一组权限;和
仅获得第一应用有权限访问的上下文数据或传感器数据中的一个或多个。
6.如任一前述权利要求所述的计算设备,其中所述操作还包括:
经由应用编程接口从第二应用接收反馈数据,其中反馈数据提供至少一个推理是否正确的指示。
7.如权利要求6所述的计算设备,其中所述反馈数据描述由所述第二应用观察到的实际结果。
8.如任一前述权利要求所述的计算设备,其中所述操作还包括:
实施一个或多个应用编程接口限制。
9.如权利要求8所述的计算设备,其中实施所述一个或多个应用编程接口限制包括实施至少第一应用编程接口限制,所述第一应用编程接口限制禁止第二应用每秒执行查询的次数大于阈值。
10.如任一前述权利要求所述的计算设备,其中所述操作还包括:
管理从第二应用到第一应用的资源交换,以作为至少一个推理的交换。
11.如任一前述权利要求所述的计算设备,其中所述计算设备包括移动计算设备,并且所述第一应用和第二应用包括移动应用。
12.如任一前述权利要求所述的计算设备,其中,所述第一机器学习模型包括第一个性化机器学习模型,所述第一个性化机器学习模型已经在特定于所述计算设备的用户的个人训练数据上进行了训练。
13.如任一前述权利要求所述的计算设备,其中,当由所述一个或多个处理器执行时导致所述计算设备实现所述设备上的机器学习平台的指令包括所述计算设备的操作系统的一部分。
14.一种存储指令的非暂时性计算机可读介质,所述指令当被一个或多个处理器执行时,使得所述一个或多个处理器执行操作,所述操作包括:
经由应用编程接口从客户端应用接收输入数据;
经由应用编程接口向提供端应用提供输入数据,其中提供端应用包括机器学习模型;
经由应用编程接口接收由机器学习模型至少部分基于输入数据生成的至少一个推理;和
经由应用编程接口向客户端应用提供由机器学习模型生成的至少一个推理。
15.如权利要求14所述的非暂时性计算机可读介质,其中,在接收输入数据之前,所述操作还包括:
从提供端应用接收机器学习模型的接口信息;
注册机器学习模型;和
向客户端应用暴露机器学习模型的接口信息。
16.如权利要求14或权利要求15所述的非暂时性计算机可读介质,其中经由应用编程接口向提供端应用提供输入数据包括:
获得上下文数据或传感器数据中的一个或多个;和
经由应用编程接口向提供端应用提供输入数据以及上下文数据或传感器数据中的一个或多个,其中机器学习模型至少部分基于输入数据以及上下文数据或传感器数据中的一个或多个生成至少一个推理。
17.如权利要求14、15或16所述的非暂时性计算机可读介质,其中所述操作还包括:
经由应用编程接口从客户端应用接收反馈数据,其中反馈数据提供至少一个推理是否正确的指示。
18.一种计算机实现的方法,包括:
在计算设备的存储器上存储第一应用,所述第一应用包括第一机器学习模型;
在所述计算设备的存储器上存储第二应用,
由所述计算设备为第一应用的第一机器学习模型提供应用编程接口,以及
响应于经由应用编程接口从第二应用接收对于执行第一应用的第一机器学习模型的请求,所述请求包括输入数据:
将输入数据提供给所述第一应用的第一机器学习模型;和
向第二应用提供由第一应用的第一机器学习模型至少部分基于输入数据生成的至少一个输出。
19.如权利要求18所述的计算机实现的方法,还包括:
经由应用编程接口暴露标识第一应用的第一机器学习模型的信息和指示执行第一应用的第一机器学习模型所需的输入数据格式的信息。
20.如权利要求18或19所述的计算机实现的方法,还包括:
由所述计算设备存储来自第二应用的对于执行第一应用的第一机器学习模型的请求的记录。
21.如权利要求18、19或20所述的计算机实现的方法,还包括:
由所述计算设备基于以下中的至少一项更新第一应用的第一机器学习模型:来自第二应用的请求的输入数据或对应于用户与第二应用的交互的交互数据。
22.如权利要求21所述的计算机实现的方法,还包括:
由所述计算设备将第一应用的更新的第一机器学习模型发送到服务器;和
由所述计算设备接收由所述服务器提供的更新的第一应用。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/825,551 | 2017-11-29 | ||
US15/825,551 US11537931B2 (en) | 2017-11-29 | 2017-11-29 | On-device machine learning platform to enable sharing of machine-learned models between applications |
PCT/US2018/045992 WO2019108279A1 (en) | 2017-11-29 | 2018-08-09 | On-device machine learning platform to enable sharing of machine-learned models between applications |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110809757A true CN110809757A (zh) | 2020-02-18 |
CN110809757B CN110809757B (zh) | 2023-08-29 |
Family
ID=63405388
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880044238.0A Active CN110809757B (zh) | 2017-11-29 | 2018-08-09 | 使应用之间能共享机器学习模型的设备上机器学习平台 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11537931B2 (zh) |
EP (1) | EP3635550B1 (zh) |
CN (1) | CN110809757B (zh) |
WO (1) | WO2019108279A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111865815A (zh) * | 2020-09-24 | 2020-10-30 | 中国人民解放军国防科技大学 | 一种基于联邦学习的流量分类方法及系统 |
CN112101576A (zh) * | 2020-09-09 | 2020-12-18 | 上海松鼠课堂人工智能科技有限公司 | 分布式设备使用机器学习模型聚合系统 |
CN112698848A (zh) * | 2020-12-31 | 2021-04-23 | Oppo广东移动通信有限公司 | 机器学习模型的下载方法、装置、终端及存储介质 |
CN114090516A (zh) * | 2020-07-13 | 2022-02-25 | 华为技术有限公司 | 推理应用中模型文件的管理方法及装置 |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8977255B2 (en) | 2007-04-03 | 2015-03-10 | Apple Inc. | Method and system for operating a multi-function portable electronic device using voice-activation |
US8676904B2 (en) | 2008-10-02 | 2014-03-18 | Apple Inc. | Electronic devices with voice command and contextual data processing capabilities |
DE112014000709B4 (de) | 2013-02-07 | 2021-12-30 | Apple Inc. | Verfahren und vorrichtung zum betrieb eines sprachtriggers für einen digitalen assistenten |
US9715875B2 (en) | 2014-05-30 | 2017-07-25 | Apple Inc. | Reducing the need for manual start/end-pointing and trigger phrases |
US10170123B2 (en) | 2014-05-30 | 2019-01-01 | Apple Inc. | Intelligent assistant for home automation |
US9338493B2 (en) | 2014-06-30 | 2016-05-10 | Apple Inc. | Intelligent automated assistant for TV user interactions |
US10460227B2 (en) | 2015-05-15 | 2019-10-29 | Apple Inc. | Virtual assistant in a communication session |
US10747498B2 (en) | 2015-09-08 | 2020-08-18 | Apple Inc. | Zero latency digital assistant |
US10691473B2 (en) | 2015-11-06 | 2020-06-23 | Apple Inc. | Intelligent automated assistant in a messaging environment |
DK179496B1 (en) | 2017-05-12 | 2019-01-15 | Apple Inc. | USER-SPECIFIC Acoustic Models |
DK201770428A1 (en) | 2017-05-12 | 2019-02-18 | Apple Inc. | LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT |
US20180336275A1 (en) | 2017-05-16 | 2018-11-22 | Apple Inc. | Intelligent automated assistant for media exploration |
US10928918B2 (en) | 2018-05-07 | 2021-02-23 | Apple Inc. | Raise to speak |
DK201870355A1 (en) | 2018-06-01 | 2019-12-16 | Apple Inc. | VIRTUAL ASSISTANT OPERATION IN MULTI-DEVICE ENVIRONMENTS |
DK180639B1 (en) | 2018-06-01 | 2021-11-04 | Apple Inc | DISABILITY OF ATTENTION-ATTENTIVE VIRTUAL ASSISTANT |
US11462215B2 (en) | 2018-09-28 | 2022-10-04 | Apple Inc. | Multi-modal inputs for voice commands |
US11164081B2 (en) * | 2018-10-17 | 2021-11-02 | Capital One Services, Llc | Synthesizing a singular ensemble machine learning model from an ensemble of models |
US20210073639A1 (en) * | 2018-12-04 | 2021-03-11 | Google Llc | Federated Learning with Adaptive Optimization |
JP7252787B2 (ja) * | 2019-02-28 | 2023-04-05 | 川崎重工業株式会社 | 機械学習モデル運用管理システム及び機械学習モデル運用管理方法 |
US11348573B2 (en) | 2019-03-18 | 2022-05-31 | Apple Inc. | Multimodality in digital assistant systems |
US11496600B2 (en) * | 2019-05-31 | 2022-11-08 | Apple Inc. | Remote execution of machine-learned models |
US11468890B2 (en) | 2019-06-01 | 2022-10-11 | Apple Inc. | Methods and user interfaces for voice-based control of electronic devices |
CN110633806B (zh) * | 2019-10-21 | 2024-04-26 | 深圳前海微众银行股份有限公司 | 纵向联邦学习系统优化方法、装置、设备及可读存储介质 |
US11061543B1 (en) | 2020-05-11 | 2021-07-13 | Apple Inc. | Providing relevant data items based on context |
US11490204B2 (en) | 2020-07-20 | 2022-11-01 | Apple Inc. | Multi-device audio adjustment coordination |
US11438683B2 (en) | 2020-07-21 | 2022-09-06 | Apple Inc. | User identification using headphones |
US20220043681A1 (en) * | 2020-08-04 | 2022-02-10 | Oracle International Corporation | Memory usage prediction for machine learning and deep learning models |
CN115271087A (zh) * | 2021-04-29 | 2022-11-01 | 华为云计算技术有限公司 | 获取知识的方法和装置 |
KR102358186B1 (ko) * | 2021-10-05 | 2022-02-08 | 주식회사 도어오픈 | 인공지능 기반의 버츄어 휴먼 인터렉션 생성 장치 및 방법 |
WO2024101582A1 (en) * | 2022-11-09 | 2024-05-16 | Samsung Electronics Co., Ltd. | A method and electronic device for secure on-device storage for machine learning models |
Citations (5)
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 |
CN105094797A (zh) * | 2014-05-15 | 2015-11-25 | 奥克兰联合服务有限公司 | 用于电子设备的应用分析系统 |
CN107085743A (zh) * | 2017-05-18 | 2017-08-22 | 郑州云海信息技术有限公司 | 一种基于国产众核处理器的深度学习算法实现方法与平台 |
WO2017158453A1 (en) * | 2016-03-16 | 2017-09-21 | International Business Machines Corporation | Location context inference based on user mobile data with uncertainty |
CN107209624A (zh) * | 2015-01-14 | 2017-09-26 | 微软技术许可有限责任公司 | 用于设备个性化的用户交互模式提取 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2009345651B2 (en) * | 2009-05-08 | 2016-05-12 | Arbitron Mobile Oy | System and method for behavioural and contextual data analytics |
US8521664B1 (en) * | 2010-05-14 | 2013-08-27 | Google Inc. | Predictive analytical model matching |
US9071576B1 (en) * | 2013-03-12 | 2015-06-30 | Sprint Communications Comapny L.P. | Application rate limiting without overhead |
US9454767B2 (en) * | 2013-03-13 | 2016-09-27 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for implementing a related command with a predictive query interface |
US20140358828A1 (en) * | 2013-05-29 | 2014-12-04 | Purepredictive, Inc. | Machine learning generated action plan |
US9672474B2 (en) * | 2014-06-30 | 2017-06-06 | Amazon Technologies, Inc. | Concurrent binning of machine learning data |
US10452992B2 (en) * | 2014-06-30 | 2019-10-22 | Amazon Technologies, Inc. | Interactive interfaces for machine learning model evaluations |
US10169715B2 (en) * | 2014-06-30 | 2019-01-01 | Amazon Technologies, Inc. | Feature processing tradeoff management |
US10318882B2 (en) * | 2014-09-11 | 2019-06-11 | Amazon Technologies, Inc. | Optimized training of linear machine learning models |
US10339465B2 (en) * | 2014-06-30 | 2019-07-02 | Amazon Technologies, Inc. | Optimized decision tree based models |
US10963810B2 (en) * | 2014-06-30 | 2021-03-30 | Amazon Technologies, Inc. | Efficient duplicate detection for machine learning data sets |
US10049327B2 (en) * | 2014-12-12 | 2018-08-14 | Qualcomm Incorporated | Application characterization for machine learning on heterogeneous core devices |
US10050953B2 (en) * | 2015-11-30 | 2018-08-14 | Microsoft Technology Licensing, Llc | Extending a federated graph with third-party data and metadata |
CN109310476B (zh) * | 2016-03-12 | 2020-04-03 | P·K·朗 | 用于手术的装置与方法 |
US11314546B2 (en) * | 2016-11-18 | 2022-04-26 | Data Accelerator Ltd | Method and system for executing a containerized stateful application on a stateless computing platform using machine learning |
DE202017007517U1 (de) * | 2016-08-11 | 2022-05-03 | Twitter, Inc. | Aggregatmerkmale für maschinelles Lernen |
WO2018027298A1 (en) * | 2016-08-12 | 2018-02-15 | Gand François | Portable alzheimer detector |
US10503799B2 (en) * | 2016-12-12 | 2019-12-10 | Sap Se | Hyperdata generation in the cloud |
US20180276553A1 (en) * | 2017-03-22 | 2018-09-27 | Cisco Technology, Inc. | System for querying models |
-
2017
- 2017-11-29 US US15/825,551 patent/US11537931B2/en active Active
-
2018
- 2018-08-09 CN CN201880044238.0A patent/CN110809757B/zh active Active
- 2018-08-09 WO PCT/US2018/045992 patent/WO2019108279A1/en unknown
- 2018-08-09 EP EP18760126.5A patent/EP3635550B1/en active Active
-
2022
- 2022-12-06 US US18/075,943 patent/US12020127B2/en active Active
Patent Citations (5)
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 |
CN105094797A (zh) * | 2014-05-15 | 2015-11-25 | 奥克兰联合服务有限公司 | 用于电子设备的应用分析系统 |
CN107209624A (zh) * | 2015-01-14 | 2017-09-26 | 微软技术许可有限责任公司 | 用于设备个性化的用户交互模式提取 |
WO2017158453A1 (en) * | 2016-03-16 | 2017-09-21 | International Business Machines Corporation | Location context inference based on user mobile data with uncertainty |
CN107085743A (zh) * | 2017-05-18 | 2017-08-22 | 郑州云海信息技术有限公司 | 一种基于国产众核处理器的深度学习算法实现方法与平台 |
Non-Patent Citations (1)
Title |
---|
刘波等: "基于网格的CSCL资源共享平台的研究", 《计算机科学》, vol. 35, no. 3, pages 99 - 102 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114090516A (zh) * | 2020-07-13 | 2022-02-25 | 华为技术有限公司 | 推理应用中模型文件的管理方法及装置 |
CN112101576A (zh) * | 2020-09-09 | 2020-12-18 | 上海松鼠课堂人工智能科技有限公司 | 分布式设备使用机器学习模型聚合系统 |
CN111865815A (zh) * | 2020-09-24 | 2020-10-30 | 中国人民解放军国防科技大学 | 一种基于联邦学习的流量分类方法及系统 |
CN111865815B (zh) * | 2020-09-24 | 2020-11-24 | 中国人民解放军国防科技大学 | 一种基于联邦学习的流量分类方法及系统 |
CN112698848A (zh) * | 2020-12-31 | 2021-04-23 | Oppo广东移动通信有限公司 | 机器学习模型的下载方法、装置、终端及存储介质 |
CN112698848B (zh) * | 2020-12-31 | 2024-07-26 | Oppo广东移动通信有限公司 | 机器学习模型的下载方法、装置、终端及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US11537931B2 (en) | 2022-12-27 |
US12020127B2 (en) | 2024-06-25 |
CN110809757B (zh) | 2023-08-29 |
WO2019108279A1 (en) | 2019-06-06 |
US20190163667A1 (en) | 2019-05-30 |
EP3635550B1 (en) | 2022-06-01 |
US20230098885A1 (en) | 2023-03-30 |
EP3635550A1 (en) | 2020-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110809757B (zh) | 使应用之间能共享机器学习模型的设备上机器学习平台 | |
EP3798892A1 (en) | Method, apparatus, and system for providing a consent management system on a crytographic ledger | |
CN107683466B (zh) | 具有隐私控制机制的计算系统及其操作方法 | |
US9229997B1 (en) | Embeddable cloud analytics | |
CN110832458B (zh) | 个性化机器学习模型的隐身模式 | |
US9781128B2 (en) | Client-side integration framework of services | |
US8661500B2 (en) | Method and apparatus for providing end-to-end privacy for distributed computations | |
CN110892425A (zh) | 设备上机器学习平台 | |
CN110869949A (zh) | 设备上机器学习平台 | |
Cheng et al. | Preserving user privacy from third-party applications in online social networks | |
US11038779B2 (en) | Self-service server change management | |
US10616139B1 (en) | Reducing quota access | |
Chauhan et al. | Architecting cloud‐enabled systems: a systematic survey of challenges and solutions | |
Kritikos et al. | Towards a security-enhanced PaaS platform for multi-cloud applications | |
KR20220084176A (ko) | 정보 추천 방법 및 장치, 그리고 전자 기기 | |
US20160150028A1 (en) | Adapter for communication between web applications within a browser | |
US11782952B2 (en) | Automation of multi-party computation as a service according to user regulations and requirements | |
Marchiori et al. | Android Private Compute Core Architecture | |
CN114429403A (zh) | 在误报内容减轻方面在社交网络和付费策展内容制作者之间调解 | |
US12061600B2 (en) | API management for batch processing | |
Martinez et al. | A framework for staging Personal Health Trains in the cloud | |
US11941442B1 (en) | Operating system based on dual system paradigm | |
US12118401B1 (en) | Digital processing systems and methods for facilitating the development and implementation of applications in conjunction with a serverless environment | |
Masmoudi et al. | Formal security framework for agent based cloud systems | |
US12074874B2 (en) | High-fidelity data management for cross domain analytics |
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 |