IP Library › Granted Patent US 12,282,869
Granted Patent B2
US 12,282,869 · App. 17/874,967 · Granted Apr 22, 2025

On-device machine learning platform

Inventors: Pannag Sanketi (Fremont, CA); Wolfgang Grieskamp (Sammamish, WA); Daniel Ramage (Seattle, WA); Hrishikesh Aradhye (Mountain View, CA)
Assignee: GOOGLE LLC
G06N5/048G06N20/00G06F21/62G06F21/629
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,282,869
App. No.
17/874,967
Granted
Apr 22, 2025
Kind
B2
Abstract

The present disclosure provides systems and methods for on-device machine learning. In particular, the present disclosure is directed to an on-device machine learning platform and associated techniques that enable on-device prediction, training, example collection, and/or other machine learning tasks or functionality. The on-device machine learning platform can include a context provider that securely injects context features into collected training examples and/or client-provided input data used to generate predictions/inferences. Thus, the on-device machine learning platform can enable centralized training example collection, model training, and usage of machine-learned models as a service to applications or other clients.

Claims (95)

1. A computing system for implementing an on-device machine learning platform, comprising:

one or more processors; and

one or more non-transitory computer-readable media that store instructions that are executable to cause the computing system to perform operations, the operations comprising:

determining, using a context provider that performs client permission control, a mapping that indicates a respective permission status of a client relative to respective context data, wherein the mapping comprises a first permission status of the client relative to first context data, wherein the first permission status indicates that the client has permission to obtain inferences from the on-device machine-learning platform that are based on the first context data;

receiving, from a client via an application programming interface (API), an API call that requests for an inference to be generated using a machine-learned model executed by the on-device machine learning platform on the basis of input data received from the client and according to one or more configuration options specified by the client, wherein a configuration option identifies the first context data to be used to generate the inference;

determining, based on the mapping, that the client has permission to obtain inferences from the on-device machine-learning platform that are based on the first context data;

obtaining the first context data, wherein the first context data is not provided to the client;

based on determining that the client has access to the first context data, generating, using the machine-learned model, at least one inference based on the input data and the first context data; and

providing, using the API, the at least one inference to the client.

2. The computing system of claim 1 , wherein the client is an application executed on-device.

3. The computing system in claim 1 , wherein:

the mapping comprises a second permission status of a second client relative to the first context data, wherein the second permission status indicates that the second client does not have permission to obtain inferences from the on-device machine-learning platform that are based on the first context data; and

the operations comprise:

receiving, from the second client via the API, a second API call that requests for a second inference to be generated, using the machine-learned model, on the basis of second input data received from the second client and according to one or more second configuration options specified by the second client, wherein a second configuration option identifies the first context data to be used to generate the inference;

determining, based on the mapping, that the second client does not have permission to obtain inferences from the on-device machine-learning platform that are based on the first context data;

based on determining that the client does not have access to the first context data, generating, using the machine-learned model, at least one second inference based on the input data and not the first context data; and

providing, using the API, the at least one second inference to the second client.

4. The computing system of claim 3 , wherein the at least one inference has a higher accuracy than the at least one second inference.

5. The computing system of claim 1 , wherein the operations comprise:

updating one or more parameters of the machine-learned model based on an evaluation of the at least one inference.

6. The computing system of claim 5 , wherein the operations comprise:

re-training the machine-learned model responsive to a change in permission status for the client relative to the first context data the first context data, wherein the re-training comprises:

generating a new inference based on the input data received from the client and not based on the first context data;

evaluating the new inference; and

updating one or more parameters of the machine-learned model based on an evaluation of the at least one inference.

7. The computing system of claim 1 , wherein the operations comprise:

processing, using the machine-learned model, the first context data alongside the input data received from the client.

8. The computing system of claim 1 , wherein the first context data comprises data describing:

audio state, network state, power connection, calendar features, place alias, location, location forecast, weather, or screen features.

9. The computing system of claim 1 , wherein the on-device machine-learning platform is part of an operating system of the device on which the on-device machine-learning platform operates.

10. The computing system of claim 1 , wherein the API call invokes a particular machine-learned model by specifying an identifier of the particular machine-learned model.

11. The computing system of claim 10 , wherein the identifier comprises a URI that points to a model repository for downloading model parameters to the device.

12. The computing system of claim 10 , wherein the client performs the API call by executing a method on a predictor object using the one or more configuration options, wherein the predictor object comprises one or more attributes identifying:

the first context data; and

an identifier of the particular machine-learned model.

13. The computing system of claim 1 , wherein the API call invokes a particular set of trained parameters for the machine-learned model by specifying an identifier of the particular set of trained parameters.

14. The computing system of claim 13 , wherein the particular set of trained parameters are personalized parameters that have been learned to personalize a performance of the machine-learned model.

15. The computing system of claim 1 , wherein the context provider receives current context data using a listener that monitors context signals for current context updates, wherein the current context data is cached for use by the on-device machine-learning platform.

16. The computing system of claim 15 , wherein the operations comprise:

caching the current context data for use by the on-device machine-learning platform by:

transforming the current context data into a format adapted for input to the machine-learned model; and

caching the transformed current context data.

17. The computing system of claim 15 , wherein the operations comprise:

determining that particular context data associated with the cached context data has been deleted from a user account; and

clearing the cached context data.

18. One or more non-transitory computer-readable media that store instructions that are executable to cause a computing system to perform operations for implementing an on-device machine learning platform, the operations comprising:

determining, using a context provider that performs client permission control, a mapping that indicates a respective permission status of a client relative to respective context data, wherein the mapping comprises a first permission status of the client relative to first context data, wherein the first permission status indicates that the client has permission to obtain inferences from the on-device machine-learning platform that are based on the first context data;

receiving, from a client via an application programming interface (API), an API call that requests for an inference to be generated using a machine-learned model executed by the on-device machine learning platform on the basis of input data received from the client and according to one or more configuration options specified by the client, wherein a configuration option identifies the first context data to be used to generate the inference;

determining, based on the mapping, that the client has permission to obtain inferences from the on-device machine-learning platform that are based on the first context data;

obtaining the first context data, wherein the first context data is not provided to the client;

based on determining that the client has access to the first context data, generating, using the machine-learned model, at least one inference based on the input data and the first context data; and

providing, using the API, the at least one inference to the client.

19. The one or more non-transitory computer-readable media of claim 18 , wherein the client is an application executed on-device.

20. The one or more non-transitory computer-readable media in claim 18 , wherein:

the mapping comprises a second permission status of a second client relative to the first context data, wherein the second permission status indicates that the second client does not have permission to obtain inferences from the on-device machine-learning platform that are based on the first context data; and

the operations comprise:

receiving, from the second client via the API, a second API call that requests for a second inference to be generated, using the machine-learned model, on the basis of second input data received from the second client and according to one or more second configuration options specified by the second client, wherein a second configuration option identifies the first context data to be used to generate the inference;

determining, based on the mapping, that the second client does not have permission to obtain inferences from the on-device machine-learning platform that are based on the first context data;

based on determining that the client does not have access to the first context data, generating, using the machine-learned model, at least one second inference based on the input data and not the first context data; and

providing, using the API, the at least one second inference to the second client.

21. The one or more non-transitory computer-readable media of claim 20 , wherein the at least one inference has a higher accuracy than the at least one second inference.

22. The one or more non-transitory computer-readable media of claim 18 , wherein the operations comprise:

updating one or more parameters of the machine-learned model based on an evaluation of the at least one inference.

23. The one or more non-transitory computer-readable media of claim 22 , wherein the operations comprise:

re-training the machine-learned model responsive to a change in permission status for the client relative to the first context data the first context data, wherein the re-training comprises:

generating a new inference based on the input data received from the client and not based on the first context data;

evaluating the new inference; and

updating one or more parameters of the machine-learned model based on an evaluation of the at least one inference.

24. The one or more non-transitory computer-readable media of claim 18 , wherein the operations comprise:

processing, using the machine-learned model, the first context data alongside the input data received from the client.

25. The one or more non-transitory computer-readable media of claim 18 , wherein the first context data comprises data describing:

audio state, network state, power connection, calendar features, place alias, location, location forecast, weather, or screen features.

26. The one or more non-transitory computer-readable media of claim 18 , wherein the on-device machine-learning platform is part of an operating system of the device on which the on-device machine-learning platform operates.

27. The one or more non-transitory computer-readable media of claim 18 , wherein the API call invokes a particular machine-learned model by specifying an identifier of the particular machine-learned model.

28. The one or more non-transitory computer-readable media of claim 27 , wherein the identifier comprises a URI that points to a model repository for downloading model parameters to the device.

29. The one or more non-transitory computer-readable media of claim 27 , wherein the client performs the API call by executing a method on a predictor object using the one or more configuration options, wherein the predictor object comprises one or more attributes identifying:

the first context data; and

an identifier of the particular machine-learned model.

30. The one or more non-transitory computer-readable media of claim 18 , wherein the API call invokes a particular set of trained parameters for the machine-learned model by specifying an identifier of the particular set of trained parameters.

31. The one or more non-transitory computer-readable media of claim 30 , wherein the particular set of trained parameters are personalized parameters that have been learned to personalize a performance of the machine-learned model.

32. The one or more non-transitory computer-readable media of claim 18 , wherein the context provider receives current context data using a listener that monitors context signals for current context updates, wherein the current context data is cached for use by the on-device machine-learning platform.

33. The one or more non-transitory computer-readable media of claim 32 , wherein the operations comprise:

caching the current context data for use by the on-device machine-learning platform by:

transforming the current context data into a format adapted for input to the machine-learned model; and

caching the transformed current context data.

34. The one or more non-transitory computer-readable media of claim 32 , wherein the operations comprise:

determining that particular context data associated with the cached context data has been deleted from a user account; and

clearing the cached context data.

35. A computer-implemented method for implementing an on-device machine learning platform, the method comprising:

determining, using a context provider that performs client permission control, a mapping that indicates a respective permission status of a client relative to respective context data, wherein the mapping comprises a first permission status of the client relative to first context data, wherein the first permission status indicates that the client has permission to obtain inferences from the on-device machine-learning platform that are based on the first context data;

receiving, from a client via an application programming interface (API), an API call that requests for an inference to be generated using a machine-learned model executed by the on-device machine learning platform on the basis of input data received from the client and according to one or more configuration options specified by the client, wherein a configuration option identifies the first context data to be used to generate the inference;

determining, based on the mapping, that the client has permission to obtain inferences from the on-device machine-learning platform that are based on the first context data;

obtaining the first context data, wherein the first context data is not provided to the client;

based on determining that the client has access to the first context data, generating, using the machine-learned model, at least one inference based on the input data and the first context data; and

providing, using the API, the at least one inference to the client.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 9, 2022
From: SANKETI, PANNAG; GRIESKAMP, WOLFGANG; RAMAGE, DANIEL; ARADHYE, HRISHIKESH
To: GOOGLE LLC
Reel/Frame 060754/0715 →
Continuity (2)
Continuation 15674885 · Aug 11, 2017
Related Publication 20220358385A1 · Nov 10, 2022
References Cited (51)
US 8429103B1 · Aradhye et al. · 2013 [cited by applicant]
US 8606728B1 · Lin et al. · 2013 [cited by applicant]
US 8613055B1 · Tomilson et al. · 2013 [cited by applicant]
US 9294468B1 · Kilbourn · 2016 [cited by examiner]
US 9336494B1 · Purpura et al. · 2016 [cited by applicant]
US 9503442B1 · Griffin · 2016 [cited by examiner]
US 10453165B1 · Kostov · 2019 [cited by examiner]
US 10803392B1 · Khan · 2020 [cited by examiner]
US 20050234753A1 · Pinto et al. · 2005 [cited by applicant]
US 20090106178A1 · Chu · 2009 [cited by applicant]
US 20110307831A1 · Cowan · 2011 [cited by examiner]
US 20120310785A1 · Poulin · 2012 [cited by examiner]
US 20130275391A1 · Batwara et al. · 2013 [cited by applicant]
US 20140007184A1 · Porras · 2014 [cited by examiner]
US 20140095493A1 · Feuersänger et al. · 2014 [cited by applicant]
US 20140189246A1 · Xing et al. · 2014 [cited by applicant]
US 20140358825A1 · Phillipps et al. · 2014 [cited by applicant]
US 20150127590A1 · Gay et al. · 2015 [cited by applicant]
US 20150193695A1 · Cruz Mota · 2015 [cited by examiner]
US 20150379424A1 · Dirac · 2015 [cited by examiner]
US 20160048695A1 · Cucinotta · 2016 [cited by examiner]
US 20160191534A1 · Mallozzi · 2016 [cited by examiner]
US 20160366120A1 · Rykowski et al. · 2016 [cited by applicant]
US 20170004454A1 · Tang et al. · 2017 [cited by applicant]
US 20170012982A1 · Carter · 2017 [cited by examiner]
US 20170091651A1 · Miao et al. · 2017 [cited by applicant]
US 20170124487A1 · Szeto et al. · 2017 [cited by applicant]
US 20170213131A1 · Hammond et al. · 2017 [cited by applicant]
US 20170220949A1 · Feng · 2017 [cited by examiner]
US 20170235469A1 · Schieman · 2017 [cited by examiner]
US 20170351972A1 · Kaniwa · 2017 [cited by examiner]
US 20180025287A1 · Mathew et al. · 2018 [cited by applicant]
US 20180032915A1 · Nagaraju et al. · 2018 [cited by applicant]
US 20180034715A1 · Nagaraju et al. · 2018 [cited by applicant]
US 20180210768A1 · Dai et al. · 2018 [cited by applicant]
US 20180241572A1 · Miele et al. · 2018 [cited by applicant]
US 20180314981A1 · Chen · 2018 [cited by examiner]
US 20190005229A1 · Hlaing et al. · 2019 [cited by applicant]
JP 2016525983 · 2016 [cited by applicant]
WO WO2015022838 · 2015 [cited by applicant]
Abadi et al, “TensorFlow: Large-Scale Machine Learning on Heterogeneous Distributed Systems”, arXiv:1603.04467v2, Mar. 16, 2016. [cited by applicant]
Baehrens et al., “How to Explain Individual Classification Decisions”, The Journal of Machine Learning Research, vol. 11, Mar. 1, 2010, pp. 1803-1831. [cited by applicant]
Cohen, “Learning the Learner: The Ultimate Way to Monitor Machine Learning”, Jun. 1, 2016, http://www.anodot.com/?s=learning+the+leanrer+the+ultimate+way+to+monitor+machinelearning, retrieved on Sep. 19, 2017, 7 pages. [cited by applicant]
Groce et al., “You Are the Only Possible Oracle: Effective Test Selection for End Users of Interactive Machine Learning Systems”, Institute of Electrical and Electronics Engineers Transactions on Software Engineering, v… [cited by applicant]
Herlocker et al., “Explaining Collaborative Filtering Recommendations”, Proceedings of the 2000 Association for Computing Machinery Conference on Computer Supported Cooperative Work, Dec. 2-6, 2000, Philadelphia, Pennsy… [cited by applicant]
International Search Report and Written Opinion for PCTUS2018029563 mailed on Aug. 13, 2018, pp. 1-5. [cited by applicant]
McMahan e al, “Federated Learning of Deep Networks using Model Averaging”, arXiv:1602.05629v1. Feb. 17, 2016. [cited by applicant]
McMahan et al., “Communication-Efficient Learning of Deep Networks from Decentralized Data”, arXiv:1602.05629v3, Feb. 28, 2017. [cited by applicant]
Ribeiro et al., “Why Should I Trust You? Explaining the Predictions of Any Classifier”, In Association for Computing Machinery's Special Interest Group on Knowledge Discovery and Data Mining, Aug. 13-17, 2016, San Franc… [cited by applicant]
Sankaran et al., “DARVIZ: Deep Abstract Representation, Visualization, and Verification of Deep Learning Models”, International Conference on Software Engineering: New Ideas and Emerging Technologies Results Track, 2017… [cited by applicant]
Vartak et al., “ModelDB: A System for Machine Learning Model Management”, Workshop on Human-In-the-Loop Data Analytics, Jun. 26-Jul. 1, 2016, San Francisco, California, 3 pages. [cited by applicant]