IP Library › Granted Patent US 10,831,519
Granted Patent B2
US 10,831,519 · App. 15/901,751 · Granted Nov 10, 2020

Packaging and deploying algorithms for flexible machine learning

Inventors: Thomas Albert Faulhaber, Jr. (Seattle, WA); Gowda Dayananda Anjaneyapura Range (Redmond, WA); Jeffrey John Geevarghese (Vancouver, CA); Taylor Goodhart (Issaquah, WA); Charles Drummond Swan (Seattle, WA)
Assignee: Amazon Technologies, Inc.
G06F9/45558G06F9/455G06F9/5055G06N5/04G06N20/00G06F2009/45575G06F2009/45579
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 10,831,519
App. No.
15/901,751
Granted
Nov 10, 2020
Kind
B2
Abstract

Techniques for packaging and deploying algorithms utilizing containers for flexible machine learning are described. In some embodiments, users can create or utilize simple containers adhering to a specification of a machine learning service in a provider network, where the containers include code for how a machine learning model is to be trained and/or executed. The machine learning service can automatically train a model and/or host a model using the containers. The containers can use a wide variety of algorithms and use a variety of types of languages, libraries, data types, etc. Users can thus implement machine learning training and/or hosting with extremely minimal knowledge of how the overall training and/or hosting is actually performed.

Claims (70)

1. A computer-implemented method comprising:

receiving a request to train a machine learning (ML) model within a service provider network on behalf of a user, the request comprising a first value identifying a location of a container image comprising training algorithm code, the request further comprising a second value identifying training data that is to be used to train the ML model, and the request further comprising a third value identifying a storage location where one or more model artifacts generated as a result of training the ML model are to be stored;

executing a container based on the container image;

providing the training data to the container; and

storing a representation of the one or more model artifacts generated as a result of training the ML model at the storage location, the representation comprising configuration data associated with the container.

2. The computer-implemented method of claim 1 , wherein:

the training data is provided to the container as one or more files in a first local directory in the container or as one or more input streams accessible within the container; and

storing the representation of the one or more model artifacts comprises obtaining the one or more model artifacts from a second local directory in the container and sending the one or more model artifacts or an archived version of the one or more model artifacts to the storage location.

3. The computer-implemented method of claim 1 , further comprising:

receiving a second request to create an instance of the ML model within the service provider network, the second request identifying the storage location of the one or more model artifacts;

executing a second container, the second container including inference code;

accessing the representation of the one or more model artifacts;

writing the one or more model artifacts to a local directory in the container for use by the inference code;

receiving a request to perform an inference;

generating an inference value by executing the inference code, wherein the inference code utilizes the one or more model artifacts; and

sending a response to the request that comprises the inference value.

4. The computer-implemented method of claim 1 , further comprising:

receiving a modification request to modify the ML model being trained, the modification request comprising one or more of:

a new location of a new container image;

a modified container image;

a new algorithm,

a modified algorithm,

one or more new hyperparameters,

one or more modified hyperparameters,

new computing machine data, and

modified computing machine data; and

training the ML model based on the modification request.

5. The computer-implemented method of claim 1 , wherein the container is one of a plurality of containers, each of the plurality of containers based on the container image, wherein the configuration data is generated by a virtual machine instance executing the container, and wherein the configuration data indicates a number of the plurality of containers.

6. A computer-implemented method comprising:

receiving a request to train a machine learning (ML) model within a service provider network on behalf of a user, the request at least comprising a value identifying training data that is to be used to train the ML model; and

training the ML model using the training data, wherein training comprises performing one or more operations within a container hosted by the service provider network and storing a representation of one or more model artifacts generated as a result of training the ML model, the representation comprising configuration data associated with the container.

7. The computer-implemented method of claim 6 , wherein the request identifies a location of a container image comprising training algorithm code, and wherein the method further comprises executing the container based on the container image.

8. The computer-implemented method of claim 6 , wherein the request identifies a storage location where the representation of one or more model artifacts generated as a result of training the ML model is to be stored, and wherein the representation of the one or more model artifacts is stored at the storage location.

9. The computer-implemented method of claim 8 , wherein storing the representation of the one or more model artifacts generated as a result of training the ML model comprises:

accessing the one or more model artifacts from a first local directory in the container;

generating the representation of the one or more model artifacts, wherein the representation comprises an archive of the one or more model artifacts; and

storing the representation of the one or more model artifacts at the storage location.

10. The computer-implemented method of claim 6 , wherein the training the ML model further comprises:

providing the training data to the container as one or more files in a second local directory in the container.

11. The computer-implemented method of claim 6 , wherein the container is based on a container image comprising training code, and wherein the training code was created by the user.

12. The computer-implemented method of claim 11 , wherein the container image further includes inference code that can be used to generate inferences.

13. The computer-implemented method of claim 6 , wherein the request identifies one or more hyperparameters to be used for training the ML model, and wherein the training the ML model further comprises providing the one or more hyperparameters to the container as one or more files in a third local directory in the container.

14. The computer-implemented method of claim 6 , further comprising:

receiving a second request to create an instance of the ML model within the service provider network, the second request identifying a storage location of the representation of one or more model artifacts;

executing a second container, the second container including inference code; and

generating an inference value by executing the inference code, wherein the inference code utilizes the one or more model artifacts.

15. The computer-implemented method of claim 14 , further comprising:

sending a response to a destination outside of the machine learning service, the response comprising the inference value.

16. The computer-implemented method of claim 14 , further comprising:

accessing the representation of the one or more model artifacts; and

writing the one or more model artifacts to a local directory in the second container for use by the inference code.

17. The computer-implemented method of claim 6 , wherein training the ML model further comprises:

providing, during the training, the training data to the container as one or more input streams accessible within the container.

18. A system comprising:

a storage service implemented by a first one or more electronic devices; and

a machine learning service implemented by a second one or more electronic devices, the machine learning service including instructions that upon execution cause the machine learning service to:

receive a request to train a machine learning (ML) model on behalf of a user, the request at least comprising a value identifying training data stored within the storage service that is to be used to train the ML model; and

train the ML model using the training data, wherein to train the ML model the instructions cause the machine learning service to perform one or more operations within a container hosted by the machine learning service and to store a representation of one or more model artifacts generated as a result of training the ML model to the storage service, the representation comprising configuration data associated with the container.

19. The system of claim 18 , wherein the request identifies a location of a container image comprising training algorithm code, and wherein the instructions further cause the machine learning service to execute the container based on the container image.

20. The system of claim 18 , wherein the request identifies a storage location where the representation of the one or more model artifacts generated as a result of training the ML model are to be stored, and wherein the representation of the one or more model artifacts are stored at the storage location.

21. The system of claim 20 , wherein to store the representation of the one or more model artifacts generated as a result of training the ML model, the machine learning service is to:

access the one or more model artifacts from a first local directory in the container;

generate the representation of the one or more model artifacts, wherein the representation is to comprise an archive of the one or more model artifacts; and

store the representation of the one or more model artifacts at the storage location.

22. The system of claim 20 , wherein to train the ML model, the machine learning service is further to:

provide the training data to the container as one or more files in a second local directory in the container or as one or more input streams accessible within the container.

23. The system of claim 18 , wherein the instructions further cause the machine learning service to:

receive a second request to create an instance of the ML model, the second request to identify the storage location of the representation of one or more model artifacts;

execute a second container, the second container to include inference code; and

generate an inference value via an execution of the inference code, wherein the inference code is to utilize the one or more model artifacts.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 8, 2018
From: FAULHABER, THOMAS ALBERT, JR; ANJANEYAPURA RANGE, GOWDA DAYANANDA; GEEVARGHESE, JEFFREY JOHN; GOODHART, TAYLOR; SWAN, CHARLES DRUMMOND
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 045145/0490 →
Continuity (2)
Provisional Application 62590184 · Nov 22, 2017
Related Publication 20190155633A1 · May 23, 2019
Cited By (8)
US 12,217,090 US 12,223,337 US 12,277,480 US 12,340,239 US 12,405,846 US 12,430,170 US 12,456,079 US 12,591,810