Data iterator with automatic caching
AssigneeAmazon Technologies, Inc.
InventorsJoseph Patrick Tighe, Stephen Gould, Vuong Van Le, Davide Modolo, Nataliya Shapovalova
Life of this patent
Estimating the term…
Abstract
A data processing pipeline controller receives a request, from a data iterator associated with a machine learning model, for a data output of a module in the data processing pipeline, wherein each module in the data processing pipeline has an associated cache. The controller determines whether a data output of the module is stored in the associated cache and responsive to the data output being stored in the associated cache, provides the data output from the associated cache to the data iterator without processing data through the module.
Claims19
A method comprising:
- receiving a request, from a data iterator associated with a machine learning model, for a data output of a module in a data processing pipeline comprising a plurality of modules, wherein the module is a particular module of the plurality of modules and the request comprises a unique identifier associated with the particular module, wherein each module of the plurality of modules in the data processing pipeline has an associated cache, the data iterator to obtain machine learning training data for the machine learning model and to apply the machine learning training data to the plurality of modules in the data processing pipeline to format the machine learning training data into an expected form prior to providing the machine learning training data to the machine learning model, wherein an output of each intermediate module of the plurality of modules is provided as an input to a subsequent module of the plurality of modules and to a cache associated with the intermediate module that generated the output;
- determining whether a data output of the module is stored in the associated cache, wherein the data output is tagged with the unique identifier to indicate that the data output is associated with the particular module, and wherein the unique identifier encodes a subset of the plurality of modules in the data processing pipeline up to and including the particular module;
- and
- responsive to the data output being stored in the associated cache, providing the data output from the associated cache to the data iterator without processing data through the module.
A computing device comprising:
- one or more processors;
- and
- memory to store computer-executable instructions that, if executed, cause the one or more processors to:
- process machine learning training data using one or more pipelined processing steps, the one or more pipelined processing steps to format the machine learning training data into an expected form before providing the machine learning training data to a machine learning model, wherein only updated machine learning training data is to be processed, wherein each of the one or more pipelined processing steps is associated with at least one module in a data processing pipeline, and wherein an output of each intermediate module of the plurality of modules is provided as an input to a subsequent module in the data processing pipeline and to a cache associated with the intermediate module that generated the output;
- cache non-updated machine learning training data for use by the machine learning model in conjunction with the updated machine learning training data;
- and
- responsive to a request for a data output of a particular module in the data processing pipeline, the request comprising a unique identifier associated with the particular module, provide the data output, wherein the data output is tagged with the unique identifier to indicate that the data output is associated with the particular module, and wherein the unique identifier encodes a subset of the plurality of modules in the data processing pipeline up to and including the particular module.
One or more machine-readable mediums having stored therein instructions which, if performed by one or more processors, cause the one or more processors to:
- receive a data object to be processed by a data processing pipeline, the data object comprising at least a portion of a set of machine learning training data;
- provide the data object to a first module of a plurality of modules in the data processing pipeline, the plurality of modules in the data processing pipeline to format the portion of the set of machine learning training data into an expected form prior to being provided to a data iterator associated with a machine learning model;
- generate an output of each of the plurality of modules, wherein an output of each intermediate module of the plurality of modules is provided as an input to a subsequent module of the plurality of modules;
- store the output of each of the plurality of modules in a cache associated with the intermediate module that generated the output;
- and
- provide the output of at least one of the plurality of modules from the cache to the data iterator associated with the machine learning model responsive to a request from the data iterator, wherein the at least one of the plurality of modules is a particular module and the request comprises a unique identifier associated with the particular module, and wherein the output is tagged with the unique identifier to indicate that the output is associated with the particular module, and wherein the unique identifier encodes a subset of the plurality of modules in the data processing pipeline up to and including the particular module.
Dependencies are inferred from the claim text.