Application Development Platform and Software Development Kits that Provide Comprehensive Machine Learning Services

US2020125956A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2020125956-A1
Application numberUS-201816605702-A
CountryUS
Kind codeA1
Filing dateMay 21, 2018
Priority dateMay 20, 2017
Publication dateApr 23, 2020
Grant date

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

The present disclosure provides an application development platform and associated software development kits (“SD-Ks”) that provide comprehensive services for generation, deployment, and management of machine-learned models used by computer applications such as, for example, mobile applications executed by a mobile computing device. In particular, the application development platform and SDKs can provide or otherwise leverage a unified, cross-platform application programming interface (“API”) that enables access to all of the different machine learning services needed for full machine learning functionality within the application. In such fashion, developers can have access to a single SDK for all machine learning services.

First claim

Opening claim text (preview).

1 . A computing system for jointly learning compact models, the computing system comprising: one or more processors; and one or more non-transitory computer-readable media that collectively store instructions that, when executed by the one or more processors, cause the computing system to perform operations, the operations comprising: obtaining a pre-trained machine-learned model associated with a user; generating a compact model; and jointly training the compact model and the pre-trained machine-learned model on a set of training data, wherein the compact model has a smaller model size relative to the pre-trained machine-learned model. 2 . The computing system of claim 1 , wherein jointly training the compact model and the pre-trained machine-learned model comprises backpropagating a gradient of a combined loss function that comprises: a first loss term that describes a trainer prediction error; a second loss term that describes a student simulation error; and a third loss term that describes a student prediction error. 3 . The computing system of claim 2 , wherein the first loss term describes a distance between an output of the pre-trained machine-learned model and a ground truth. 4 . The computing system of claim 2 , wherein the second loss term describes a distance between an output of the pre-trained machine-learned model and an output of the compact model. 5 . The computing system of claim 2 , wherein the third loss term describes a distance between an output of the compact model and a ground truth. 6 . The computing system of claim 2 , wherein the combined loss function comprises first, second, and third weighting values that respectively weight the first, second, and third loss terms relative to each other. 7 . The computing system of claim 1 , wherein the operations further comprise: receiving a user input that selects one of a number of available compact model architectures; wherein generating the compact model comprises generating the compact model that has the compact model architecture selected by the user input. 8 . The computing system of claim 1 , wherein the operations further comprise: receiving a user input that specifies one or both of a desired model size or a desired inference speed; wherein generating the compact model comprises generating the compact model that exhibits one or more both of the desired model size or the desired inference speed. 9 . The computing system of claim 1 , wherein the operations further comprise: receiving a user input that specifies a type of input data; wherein generating the compact model comprises generating the compact model that is configured to receive and process the type of input data specified by the user input. 10 . The computing system of claim 1 , wherein the operations further comprise: receiving a user input that specifies a prediction task; wherein generating the compact model comprises generating the compact model that is configured to perform the prediction task. 11 . The computing system of claim 1 , wherein: generating the compact model comprises generating a plurality of compact models that have different architectures; and jointly training the compact model and the pre-trained machine-learned model comprises jointly training the plurality of compact models and the pre-trained machine-learned model. 12 . The computing system of claim 11 , wherein the operations further comprise, after jointly training the plurality of compact models, deploying the plurality of compact models respectively to a plurality of different user groups that have different user device capabilities 13 . The computing system of claim 1 , wherein the compact model comprises a projection neural network. 14 . The computing system of claim 1 , wherein the compact model comprises a bi-directional LSTM model, a depth-separable ConvNet model, a MobileNet model, a NASNet model, an Inception model, or a ResNet model. 15 . The computing system of claim 1 , wherein the training data comprises user-supplied training data. 16 . The computing system of claim 1 , wherein the pre-trained machine-learned model comprises a checkpoint from a production model deployed for cloud-based inference. 17 . The computing system of claim 1 , wherein the pre-trained machine-learned model is selected by the user from a set of provided pre-trained models. 18 . A computer-implemented method, comprising: obtaining, by one or more computing devices, a pre-trained machine-learned model associated with a user; receiving, by the one or more computing devices, user input that describes one or more desired model characteristics, the one or more desired model characteristics comprising one or more of: a desired model size, a desired inference speed, a type of input data, or a prediction type; automatically generating, by the one or more computing devices, a compact model specification based at least in part on the user input; and jointly training, by the one or more computing devices, a compact model that has the compact model specification and the pre-trained machine-learned model on a set of training data, wherein the compact model has a smaller model size relative to the pre-trained machine-learned model, and wherein the compact model exhibits the one or more desired model characteristics. 19 . The computer-implemented method of claim 18 , wherein jointly training, by the one or more computing devices, the compact model that has the compact model specification and the pre-trained machine-learned model comprises backpropagating, by the one or more computing devices, a gradient of a combined loss function that comprises: a first loss term that describes a trainer prediction error exhibited between an output the pre-trained machine-learned model and a ground truth; a second loss term that describes a student simulation error exhibited between the output of the pre-trained machine-learned model and an output of the compact model; and a third loss term that describes a student prediction error exhibited between the output of the compact model and the ground truth. 20 . One or more non-transitory computer-readable media that collectively store instructions that, when executed by one or more processors, cause the one or more processors to perform operations, the operations comprising: obtaining a pre-trained machine-learned model associated with a user; receiving user input that describes one or more desired model characteristics, the one or more desired model characteristics comprising one or more of: a desired model size, a desired inference speed, a type of input data, or a prediction type; automatically generating a compact model specification based at least in part on the user input; and jointly training a compact model that has the compact model specification and the pre-trained machine-learned model on a set of training data, wherein the compact model has a smaller model size relative to the pre-trained machine-learned model, and wherein the compact model exhibits the one or more desired model characteristics.

Assignees

Inventors

Classifications

  • G06N3/084Primary

    Backpropagation, e.g. using gradient descent · CPC title

  • Adapting program code to run in a different environment; Porting · CPC title

  • via adapters, e.g. between incompatible applications · CPC title

  • Physics · mapped topic

  • Generating training patterns; Bootstrap methods, e.g. bagging or boosting · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US2020125956A1 cover?
The present disclosure provides an application development platform and associated software development kits (“SD-Ks”) that provide comprehensive services for generation, deployment, and management of machine-learned models used by computer applications such as, for example, mobile applications executed by a mobile computing device. In particular, the application development platform and SDKs c…
Who is the assignee on this patent?
Google Llc
What technology area does this patent fall under?
Primary CPC classification G06N3/084. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu Apr 23 2020 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).