Sorting Engine for Parallel Training Data Distribution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Machine learning systems face bottlenecks in training data distribution due to slow single-stream distribution rates, and parallel distribution models fail to preserve the order of training data, leading to undesirable downstream effects.

Innovation Solution

A sorting engine with a shared buffer organizes batches of training data from multiple producers in a deterministic order, ensuring that batches are transmitted to the machine learning engine in a consistent sequence, using a multi-threaded retrieval engine and enqueue/dequeue modules to maintain order and manage concurrent data retrieval.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If training data is distributed in parallel from multiple producers, then the distribution speed increases, but the order of training data distribution is not preserved

Engineering Contradiction:
Improvedistribution speedVSAvoidorder preservation
Core Design Contradiction:
SpeedVSStability of the object's composition

Solution Approach 1:

A sorting engine is introduced as an intermediary component between multiple training data producers and the machine learning system. The sorting engine receives data batches from multiple producers in parallel, sorts them according to their sequence numbers, and outputs them in the correct deterministic order, thus mediating between the parallel input streams and the ordered output requirement

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system segments the training data distribution into multiple independent streams from different producers, each handled by separate threads. Each thread retrieves data independently from its assigned producer, and the sorting engine reassembles them in the correct order, allowing parallel processing while maintaining global order

Inventive Principle:
Principle #1Segmentation

2Stability of the object's composition

If a single stream distribution model is used, then the order of training data is preserved, but the distribution rate is slow

Engineering Contradiction:
Improveorder preservationVSAvoiddistribution rate
Core Design Contradiction:
Stability of the object's compositionVSProductivity

Solution Approach 1:

The single distribution stream is segmented into multiple parallel streams, each handled by a separate thread retrieving data from different producers. This segmentation enables concurrent data retrieval while the sorting engine ensures the final output maintains the required deterministic order

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system uses a composite architecture combining multiple parallel data retrieval threads with a sorting engine. This composite structure integrates the speed benefits of parallel processing with the order preservation of sequential processing, achieving both high distribution rate and deterministic order

Inventive Principle:
Principle #40Composite materials

Data Source

PatentUS10325219B2Parallel retrieval of training data from multiple producers for machine learning systems
Publication Date: 2019.06.18 META PLATFORMS INC
  • US10325219B2 patent drawing
  • US10325219B2 patent drawing
  • US10325219B2 patent drawing

AI summary

A sorting engine is an intermediary layer between a multi-threaded engine that obtains batches of training data from the producers in parallel and the underlying machine learning engine. The sorting engine includes a shared buffer that has various slots for storing batches of training data, where the slots are organized in a deterministic order associated with the producers. A batch of training data obtained by a thread from a given producer may be stored only in a corresponding slot in the shared buffer. Further, the sorting engine transmits the batch to the machine learning engine only when a previous batch in the deterministic order has been transmitted from the shared buffer to the machine learning engine.