Tensor Array Object for Dynamic Machine Learning Graphs

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing machine learning systems face inefficiencies in processing dynamic-length tensors within computational graphs, particularly in ensuring sequential execution and immutability of tensor operations, which hinders effective dynamic and iterative computations.

Innovation Solution

The introduction of a tensor array object that supports dynamic resizing and lazy execution, allowing for sequential operation execution through control dependencies, and enabling efficient processing of dynamic-length tensors by ensuring that all previous operations are completed before new ones begin, facilitating backpropagation and resource management.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If dynamic-length tensors are processed in existing machine learning systems, then the systems can handle variable-sized data, but the systems face inefficiencies in ensuring sequential execution and immutability of tensor operations

Engineering Contradiction:
Improvedynamic-length tensor processingVSAvoidprocessing efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent introduces a tensor array object as an intermediary data structure that mediates between dynamic-length tensor requirements and the computational graph execution system. This tensor array object provides the necessary abstractions for sequential execution and immutability, allowing dynamic tensor operations to integrate efficiently with the existing computational graph framework without compromising processing efficiency.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If sequential execution is ensured through control dependencies, then correct backpropagation is achieved, but operation complexity increases

Engineering Contradiction:
Improvebackpropagation correctnessVSAvoidoperation complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by establishing control dependencies and execution ordering constraints during the graph construction phase, before actual execution occurs. The tensor array object is configured with predetermined sequential execution rules that ensure correct backpropagation without requiring complex runtime checks. This advance preparation simplifies the execution phase while maintaining reliability.

Inventive Principle:
Principle #10Preliminary action

3Device complexity

If tensor immutability is maintained for optimization, then computational reasoning is simplified, but dynamic modifications become difficult

Engineering Contradiction:
Improvecomputational reasoning complexityVSAvoiddynamic modification capability
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

The patent implements dynamics by designing the tensor array object to exhibit different behavioral characteristics at different stages of execution. During graph construction and planning phases, the tensor array maintains immutability properties that simplify computational reasoning. During execution phases, the same tensor array object allows controlled dynamic modifications through its interface, reconciling the need for both immutability and adaptability in different contexts.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS20210311994A1Dynamic-length stateful tensor array
Publication Date: 2021.10.07 GOOGLE LLC
  • US20210311994A1 patent drawing
  • US20210311994A1 patent drawing
  • US20210311994A1 patent drawing

AI summary

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for efficiently processing dynamic length tensors of a machine learning model represented by a computational graph. A program is received that specifies a dynamic, iterative computation that can be performed on input data for processing by a machine learning model. A directed computational graph representing the machine learning model is generated that specifies the dynamic, iterative computation as one or more operations using a tensor array object. Input is received for processing by the machine learning model and the directed computational graph representation of the machine learning model is executed with the received input to obtain output.