IP Library Granted Patent US 11,494,626
Granted Patent B2
US 11,494,626 · App. 16/600,154 · Granted Nov 8, 2022

Runtime-throttleable neural networks

Inventors: Jesse Hostetler (Princeton, NJ); Sek Meng Chai (Princeton, NJ)
Assignee: SRI INTERNATIONAL
G06N3/063G06F1/3287G06N3/0454G06N3/084G06N20/20
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,494,626
App. No.
16/600,154
Granted
Nov 8, 2022
Kind
B2
Abstract

In general, the disclosure describes techniques for creating runtime-throttleable neural networks (TNNs) that can adaptively balance performance and resource use in response to a control signal. For example, runtime-TNNs may be trained to be throttled via a gating scheme in which a set of disjoint components of the neural network can be individually “turned off” at runtime without significantly affecting the accuracy of NN inferences. A separate gating neural network may be trained to determine which trained components of the NN to turn off to obtain operable performance for a given level of resource use of computational, power, or other resources by the neural network. This level can then be specified by the control signal at runtime to adapt the NN to operate at the specified level and in this way balance performance and resource use for different operating conditions.

Claims (67)

1. A computing system to provide a runtime-throttleable neural network, comprising:

a neural network comprising a plurality of components, each of the components comprising one or more computational elements of the neural network;

a uniform neural network model having respective sets of parameters for all of the components of the neural network;

a gating module having a gating function configured to select components of the neural network to deactivate based on one or more control parameters; and

a computation engine comprising processing circuitry,

wherein the computation engine is configured to execute the gating module to selectively deactivate, based on the one or more control parameters, by applying the gating function, one or more of the plurality of components to produce a modified neural network that includes active components of the plurality of components and does not include the deactivated components of the plurality of components to throttle an amount of resources used to perform prediction,

wherein the computation engine is configured to execute, with the respective sets of parameters of the uniform neural network model for the active components, the active components of the modified neural network to process input data to generate output data for the input data, and

wherein the computation engine is configured to output the output data for the input data.

2. The computing system of claim 1 ,

wherein the neural network comprises a layer having a set of components from the plurality of components, and

wherein to selectively deactivate components of the neural network, the computation engine is configured to selectively deactivate components from the set of components in the layer.

3. The computing system of claim 1 ,

where the plurality of components comprises respective neural network layers, and

wherein to selectively deactivate components of the neural network, the computation engine is configured to selectively deactivate neural network layers of the neural network layers.

4. The computing system of claim 1 ,

wherein each of the plurality of components comprises one of a neural network layer or a convolutional filter.

5. The computing system of claim 1 ,

wherein the gating function is a static gating function in which the one or more control parameters determines a number of gated components, and

wherein a set of one or more rules for the gating function indicates the active components of the one or more control parameters.

6. The computing system of claim 1 ,

wherein the gating function is a learned gating function having a gating neural network model trained to optimize a combined loss function having a task loss component and a complexity loss component, the complexity loss component being constrained by the one or more control parameters.

7. The computing system of claim 1 , wherein the one or more control parameters comprise a single utilization value.

8. The computing system of claim 1 ,

wherein the gating function uses nested gating to selectively deactivate components of the neural network, and

wherein sets of components from the active components have nested orderings within respective gated modules for different values of the control parameters.

9. The computing system of claim 1 ,

wherein the gating function uses independent gating to selectively deactivate components of the neural network, and

wherein sets of components from the active components are randomly chosen for different values of the control parameters.

10. The computing system of claim 1 ,

wherein the gating function is a normalized gating function that normalizes activations of the computations elements of the components to cause outputs from the components to have similar magnitude for different numbers of active components within a gated module having a set of components from the plurality of component.

11. A computing system for training a runtime-throttleable neural network, comprising:

a neural network comprising a plurality of components, each of the components comprising one or more computational elements of the neural network;

a uniform neural network model having respective sets of parameters for the components of the neural network;

a gating module having a gating function configured to select components of the neural network to deactivate based on one or more control parameters; and

a computation engine comprising processing circuitry,

wherein the computation engine is configured to execute the neural network to process first training data to train the uniform neural network model of the neural network over multiple first epochs, wherein for each of the first epochs the computation engine is configured to:

select one or more deactivated components from the components of the neural network to produce a first modified neural network that includes active components of the plurality of components and does not include the deactivated components to throttle an amount of resources used to perform prediction; and

process the first training data using the first modified neural network to train the uniform neural network model to optimize a first loss function.

12. The computing system of claim 11 ,

wherein the computation engine is configured to execute the gating module to process second training data to train the gating function over multiple second epochs, and

wherein for each of the second epochs the computation engine is configured to:

select values for the one or more control parameters;

select, based on the values for the one or more control parameters, one or more deactivated components from the components of the neural network to produce a second modified neural network that does not include the deactivated components to throttle an amount of resources used to perform prediction; and

process the second training data, with the respective sets of parameters of the uniform neural network model for the active components, using the second modified neural network to train the gating function to optimize a second loss function.

13. The computing system of claim 12 ,

wherein the second loss function is a combined loss function having a task loss component and a complexity loss component, the complexity loss component being constrained by the one or more control parameters.

14. The computing system of claim 12 ,

wherein to select the one or more deactivated components from the components of the neural network to produce a second modified neural network, the computation engine is configured to execute the gating module to randomly select, based on the values for the one or more control parameters, deactivated components from the plurality of component.

15. The computing system of claim 12 ,

wherein to select the one or more deactivated components from the components of the neural network to produce a second modified neural network, the computation engine is configured to execute the gating module to select, based on the values for the one or more control parameters, deactivated components from the plurality of components using nested gating, and

wherein sets of components from the active components have nested orderings within respective gated modules for different values of the control parameters.

16. The computing system of claim 12 ,

wherein, to process the second training data, the computation engine is configured to hold the respective sets of parameters of the uniform neural network model for the components fixed for each of the second epochs.

17. The computing system of claim 11 ,

wherein, to process the first training data to train the uniform neural network model of the neural network over multiple first epochs, the computation engine performs backpropagation to optimize the first loss function.

18. A method for training a throttleable neural network, comprising:

selecting, by a gating module having a gating function and executed by a computing system, components from a plurality of components of a neural network to deactivate based on one or more control parameters, each of the components comprising one or more computational elements of the neural network; and

processing, with the neural network executed by the computing system, first training data to train the uniform neural network model of the neural network over multiple first epochs, wherein the uniform neural network module has respective sets of parameters for the components of the neural network, each of the first epochs including the steps of:

selecting one or more deactivated components from the components of the neural network to produce a first modified neural network that includes active components of the neural network and does not include the deactivated components to throttle an amount of resources used to perform prediction; and

processing the first training data using the first modified neural network to train the uniform neural network model to optimize a first loss function.

19. The method of claim 18 , further comprising:

processing, by the gating module, second training data to train the gating function over multiple second epochs, each of the second epochs including the steps of:

selecting values for the one or more control parameters;

selecting, based on the values for the one or more control parameters, one or more deactivated components from the components of the neural network to produce a second modified neural network that does not include the deactivated components to throttle an amount of resources used to perform prediction; and

processing the second training data, with the respective sets of parameters of the uniform neural network model for the active components, using the second modified neural network to train the gating function to optimize a second loss function.

20. The method of claim 19 ,

wherein the second loss function is a combined loss function having a task loss component and a complexity loss component, the complexity loss component being constrained by the one or more control parameters.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 5, 2025
From: SRI INTERNATIONAL
To: LATENTAI, INC.
Reel/Frame 071324/0768 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 18, 2025
From: SRI INTERNATIONAL
To: LATENTAI, INC.
Reel/Frame 070247/0580 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 11, 2019
From: HOSTETLER, JESSE; CHAI, SEK MENG
To: SRI INTERNATIONAL
Reel/Frame 050692/0848 →
Continuity (2)
Provisional Application 62779322 · Dec 13, 2018
Related Publication 20200193279A1 · Jun 18, 2020