FIELD

The present disclosure relates generally to machine learning. More particularly, the present disclosure relates to an on-device machine learning platform that enables applications on a device to share access to their machine-learned models via an application programming interface (API).

BACKGROUND

In recent years, machine learning has been increasingly used to provide improved services to users of computing devices. In particular, many applications or other computing programs or systems rely on one or more machine-learned models to produce inferences based on input data associated with the program, device, and/or user. The application(s) can use the inference(s) to perform or influence any type of task or service.

One conventional training scheme for solving machine learning problems includes collecting at a centralized location (e.g. a server device) a plurality of training examples from a plurality of computing devices (e.g., user devices such as smartphones). A machine-learned model can then be trained at the centralized location based on the collected training examples.

In addition, in some instances, the trained model can be stored at the centralized location. In order to receive an inference from the model, the user computing device is required to transmit input data to the server computing device over the network, wait for the server device to run the machine-learned model to produce inference(s) based on the transmitted data, and then receive the inference(s) from the server computing device again over the network.

In such scenarios, the training example(s) and/or inference(s) are required to be transmitted between the user computing device and the server computing device over a network. Such network transmission represents a data security risk as the data transmitted over the network may be susceptible to interception. In addition, such network transmission increases network traffic which can result in reduced communication speeds. Further, latency associated with transmitting the data back and forth over the network can cause delay in providing the application's services.

More recently, certain applications have included machine-learned models that are stored within the application and implemented by the application on the user device. However, this architecture is both challenging to implement and resource intensive. For example, in such scenario, the application is required to store, manage, train, and/or implement one or more machine-learned models. Inclusion of the model and corresponding support services within the application itself can increase the data size of the application, resulting in a larger memory footprint.

Machine learning within the application can also require more frequent application updates. For example, the application may need to be updated as the underlying machine learning engine is updated or otherwise advances. Application updates can undesirably require network usage and downtime for the user as the update is downloaded and installed.

Furthermore, machine learning within the application can also complicate application development, as additional services need to be built into the application itself. Thus, developers may be required to learn and stay abreast of the intricacies of different machine learning engines.

Thus, applications rely more and more on machine-learned models to solve a wide variety of problems; but training those models requires a lot of data not necessarily available to all applications.

SUMMARY

Aspects and advantages of embodiments of the present disclosure will be set forth in part in the following description, or can be learned from the description, or can be learned through practice of the embodiments.

One example aspect of the present disclosure is directed to a computing device. The computing device includes one or more processors and one or more non-transitory computer-readable media. The one or more non-transitory computer-readable media store a first application implemented by the one or more processors. The first application includes a first machine-learned model. The one or more non-transitory computer-readable media store a second application implemented by the one or more processors. The one or more non-transitory computer-readable media store instructions that, when executed by the one or more processors, cause the computing device to implement an on-device machine learning platform that performs operations. The operations include receiving input data from the second application via an application programming interface. The operations include providing the input data to the first application via the application programming interface. The operations include receiving via the application programming interface at least one inference generated by the first machine-learned model based at least in part on the input data. The operations include providing the at least one inference generated by the first machine-learned model to the second application via the application programming interface.

Another example aspect of the present disclosure is directed to a non-transitory computer-readable media that stores instructions that, when executed by one or more processors, cause the one or more processors to perform operations. The operations include receiving input data from a client application via an application programming interface. The operations include providing the input data to a provider application via the application programming interface. The provider application includes a machine-learned model. The operations include receiving via the application programming interface at least one inference generated by the machine-learned model based at least in part on the input data. The operations include providing the at least one inference generated by the machine-learned model to the client application via the application programming interface.

Another example aspect of the present disclosure is directed to a computer-implemented method. The method includes storing, on a memory of a computing device, a first application. The first application includes a first machine-learned model. The method includes storing, on the memory of the computing device, a second application. The method includes providing, by the computing device, an application programming interface for the first machine-learned model of the first application. The method includes responsive to receiving, via the application programming interface, a request from the second application for execution of the first machine-learned model of the first application, the request comprising input data: providing the input data to the first machine-learned model of the first application; and providing the second application with at least one output generated by the first machine-learned model of the first application based at least in part on the input data.

Other aspects of the present disclosure are directed to various systems, apparatuses, non-transitory computer-readable media, user interfaces, and electronic devices.

These and other features, aspects, and advantages of various embodiments of the present disclosure will become better understood with reference to the following description and appended claims. The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate example embodiments of the present disclosure and, together with the description, serve to explain the related principles.

