Information Processing With Define-by-Run Graph Generation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing frameworks for creating neural network source codes are inefficient and struggle with complex model implementation, memory management, and dynamic graph changes, leading to high development and maintenance costs and difficulty in debugging.
Innovation Solution
A new calculation procedure called 'Define-by-Run' dynamically extracts and stores graph structures during learning, allowing meta changes and recalculating gradients, enabling the use of general-purpose programming languages for more complex graph structures and improving memory efficiency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of manufacture
If a predetermined framework is used to create neural network source code, then the creation process is simplified, but the framework becomes inefficient and struggles with complex model implementation
Solution Approach 1:
The patent implements dynamic graph construction by executing Forward processing code to automatically generate the computational graph structure during runtime, rather than requiring static framework definitions. This allows the system to adapt to complex model implementations dynamically while maintaining ease of use through automatic graph generation from simple Forward processing code.
2Device complexity
If static graph structures are used, then memory management is simplified, but dynamic graph changes become difficult and debugging is challenging
Solution Approach 1:
The system executes Forward processing code to dynamically construct the computational graph during runtime, enabling automatic adaptation to graph structure changes without requiring manual memory management adjustments. The executing unit automatically manages memory allocation and deallocation based on the dynamically generated graph structure, maintaining simplicity while enabling flexibility.
Solution Approach 2:
The Forward processing code automatically generates the computational graph structure and associated memory management information without requiring manual intervention. The system self-services by extracting graph structures from the execution of Forward processing code, automatically handling memory allocation and deallocation based on the generated graph, thereby simplifying memory management while enabling dynamic changes.
3Productivity
If existing frameworks are used, then development is faster, but development and maintenance costs increase due to inefficiency
Solution Approach 1:
The system automatically generates computational graph structures by executing Forward processing code, eliminating the need for manual graph construction and reducing development time. The automatic extraction of graph structures from Forward processing execution streamlines the development process while reducing maintenance costs through automated graph generation and updates, improving productivity without increasing costs.
4Manufacturing precision
If manual graph construction is performed, then control over graph structure is precise, but the process becomes time-consuming and inefficient
Solution Approach 1:
The Forward processing code automatically generates the computational graph structure through its execution, eliminating manual graph construction while maintaining precise control over the graph structure. The executing unit extracts the graph structure directly from the Forward processing code execution, ensuring accuracy while significantly reducing the time required compared to manual construction methods.
Data Source
AI summary
There is provided an information processing device which efficiently executes machine learning. The information processing device according to one embodiment includes: an obtaining unit which obtains a source code including a code which defines Forward processing of each layer constituting a neural network; a storage unit which stores an association relationship between each Forward processing and Backward processing associated with each Forward processing; and an executing unit which successively executes each code included in the source code, and which calculates an output value of the Forward processing defined by the code based on an input value at a time of execution of each code, and generates a reference structure for Backward processing in a layer associated with the code based on the association relationship stored in the storage unit.


