Split DNN Bottleneck Compression for Varying Bitrate Adaptation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing systems for split deep neural network (DNN) computing are unable to dynamically adapt to changing network, compute, or platform requirements, leading to increased training time and complexity, and inefficient use of resources due to static partitioning and fixed compression levels.
Innovation Solution
A system for dynamic partitioning of DNN workloads with variable bitrate compression, using bottleneck layers that optimize for both compute and rate distortion, allowing flexible placement of partition points and reducing computational overhead.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If dynamic partitioning and variable bitrate compression are implemented, then adaptability to changing network and compute requirements is improved, but training complexity and computational overhead increase when retraining is required
Solution Approach 1:
The DNN is divided into multiple segments or layers that can be independently trained and deployed. The bottleneck layer is separated from the rest of the network, allowing it to be retrained independently when adaptability is needed, rather than retraining the entire model. This segmentation enables flexible partitioning while minimizing retraining complexity.
Solution Approach 2:
The system implements dynamic bottleneck layer configuration where the bottleneck dimension and partitioning strategy can be adjusted in real-time based on network conditions and compute availability. This dynamic adaptation allows the system to respond to changing requirements without fixed constraints, improving versatility while the modular design keeps training overhead manageable.
2Reliability
If the entire DNN model is reloaded to adapt to changing conditions, then task accuracy is maintained, but network bandwidth requirements and computational overhead increase
Solution Approach 1:
The bottleneck layer parameters are extracted and can be independently updated or retrained without loading the entire DNN model. This extraction allows the system to maintain task accuracy by updating only the necessary components while significantly reducing the network bandwidth and computational resources required compared to reloading the complete model.
Solution Approach 2:
The system applies local updates to specific parts of the network (bottleneck layer) rather than uniformly updating the entire model. This localized approach maintains task accuracy in the regions that need adaptation while avoiding unnecessary data transmission and computation for parts of the model that don't require changes.
3Device complexity
If fixed partitioning is used in split DNN computing, then system complexity is reduced, but flexibility and adaptability to varying bitrate requirements are lost
Solution Approach 1:
The bottleneck layer configuration is made dynamic, allowing the bottleneck dimension and partitioning strategy to be adjusted based on varying bitrate requirements and network conditions. This dynamic capability provides flexibility and adaptability while the modular architecture keeps the system complexity manageable through standardized interfaces and procedures.
Data Source
AI summary
Various systems and methods for providing variable bitrate compression for split deep neural network (DNN) computing are described herein. A system may be configured to manage a split DNN, the split DNN configured to operate on a compute system and a second system over a communication network. The system may access a performance metric; determine, based on the performance metric, a split point of the split DNN, the split point defining a head portion of the split DNN and a tail portion of the split DNN; determine, based on the performance metric, a bottleneck layer configuration for a bottleneck layer at the split point, the bottleneck layer including a bottleneck encoder and a bottleneck decoder; execute the head portion of the DNN and the bottleneck encoder on the compute system; and recurrently access an updated performance metric and determine a revised split point or a revised bottleneck layer configuration based on the updated performance metric.


