Data Iterator Automatic Caching Pipeline

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Machine learning model training processes face significant latency and resource utilization issues due to repetitive and costly pre-processing operations, which are not efficiently managed by conventional data iterators.

Innovation Solution

Implementing a data iterator with automatic caching capabilities within a data processing pipeline, where intermediate outputs are saved and reused, allowing the pipeline to determine if computations have already been cached, thereby reducing redundant processing and improving efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If conventional data iterators are used to read training data, then data can be loaded from storage, but significant latency occurs due to repetitive pre-processing operations

Engineering Contradiction:
Improvedata loading speedVSAvoidtraining latency
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

The patent implements a pre-processing pipeline that performs expensive data transformations (such as converting video frames to optical flow) before training begins. The processed data is cached and reused during training iterations, eliminating the need to repeat pre-processing operations and significantly reducing training latency.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent creates cached copies of pre-processed data that can be rapidly loaded during training without requiring the original expensive pre-processing operations. These copies are stored in an optimized format that enables fast iteration during the training process.

Inventive Principle:
Principle #26Copying

2Ease of operation

If complete pre-processing is performed before training, then data is ready for iteration, but resource utilization increases due to repetitive operations

Engineering Contradiction:
Improvedata readinessVSAvoidresource utilization
Core Design Contradiction:
Ease of operationVSUse of energy by moving object

Solution Approach 1:

The patent divides the data processing workflow into distinct segments: an offline pre-processing stage that performs expensive transformations, and an online training stage that iterates over cached results. This segmentation allows resource-intensive operations to be performed once rather than repeatedly during training.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent changes the state of data from raw/unprocessed to pre-processed/cached format. By transforming data parameters and storage format during offline pre-processing, the system enables rapid loading and iteration during training without repeating expensive operations.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If data is pre-processed and cached, then redundant processing is reduced, but device complexity increases due to cache management

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidpipeline complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces a cache layer as an intermediary between the pre-processing pipeline and the training data iterator. This cache automatically stores and retrieves pre-processed data, managing the complexity of coordinating between pre-processing and training operations without requiring complex manual intervention.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10949353B1Data iterator with automatic caching
Publication Date: 2021.03.16 AMAZON TECH INC
  • US10949353B1 patent drawing
  • US10949353B1 patent drawing
  • US10949353B1 patent drawing

AI summary

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.