IP Library Granted Patent US 12,596,925
Granted Patent B2
US 12,596,925 · App. 17/613,773 · Granted Apr 7, 2026

Single-stage model training for neural architecture search

Inventors: Jiahui Yu (Jersey City, NJ); Pengchong Jin (Mountain View, CA); Hanxiao Liu (Santa Clara, CA); Gabriel Mintzer Bender (Mountain View, CA); Pieter-Jan Kindermans (Zurich, CH); Mingxing Tan (Newark, CA); Xiaodan Song (San Jose, CA); Ruoming Pang (New York, NY); Quoc V. Le (Sunnyvale, CA)
Assignee: Google LLC
G06N3/08G06N3/045G06N3/084G06N3/086G06N3/0985G06N3/082
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 12,596,925
App. No.
17/613,773
Granted
Apr 7, 2026
Kind
B2
Abstract

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for selecting a neural network to perform a particular machine learning task while satisfying a set of constraints.

Claims (68)

1 . A method performed by one or more computers, the method comprising:

receiving training data for a particular machine learning task;

generating trained values for a shared set of parameters by training a plurality of neural networks jointly on the training data, wherein each of the plurality of neural networks has parameters that are a subset of the shared set, wherein each of the plurality of neural networks has a respective architecture selected from a search space of different architectures, and wherein the search space is defined by a respective set of possible values for each of a plurality of architectural dimensions, and wherein the joint training comprises performing the following at each of a plurality of training steps:

obtaining training data for the training step;

sampling a plurality of neural networks of different sizes from the plurality of neural networks being trained, wherein each sampled neural network has a different subset of the shared set of parameters;

training the sampled neural networks on the training data for the training step to determine, for each sampled neural network, gradients with respect the respective subset of the shared set of parameters that are included in the sampled neural network; and

aggregating the gradients determined for the set of neural networks to determine an update to the shared set of parameters, comprising, for each parameter that is shared between two or more of the sampled neural networks, aggregating the gradients with respect to the parameter for the two or more sampled neural networks;

determining a respective performance benchmark on the machine learning task for each of a subset of neural networks, each neural network in the subset having a different architecture selected from a proper subset of the search space of different architectures;

receiving data specifying one or more constraints on computational resource consumption for performing inference on one or more inputs for the particular machine learning task on a particular set of one or more target hardware devices; and

selecting a neural network to be deployed for performing the machine learning task, comprising:

identifying, from the neural networks in the subset that satisfy the one or more constraints, an initial neural network based on the respective performance benchmarks;

generating a plurality of modified neural networks by perturbing the architecture of the identified initial neural network;

determining a respective performance benchmark on the particular machine learning task for each of the modified neural networks, and

selecting, from the identified neural network and the plurality of modified neural networks generated by perturbing the architecture of the identified initial neural network, a neural network based on the respective performance benchmarks; and

providing the selected neural network for performing inference on the particular set of one or more target hardware devices.

2 . The method of claim 1 , wherein the one or more constraints comprise one or more constraints on one or more of: floating point operations per second performed by a device when performing the task using the neural network, a memory footprint of the neural network when deployed on a device for performing the task, or a runtime latency of a device when performing an inference for an input or a batch of inputs using the neural network.

3 . The method of claim 1 , wherein the one or more constraints specify one or more of a maximum number of floating point operations per second or an acceptable range of memory consumed by a device when performing the task using the neural network, or a maximum latency or an acceptable latency range of a device when performing an inference for an input or a batch of inputs using the neural network.

4 . The method of claim 1 , wherein the constraint is a hardware-specific constraint on computational resource consumption for a particular device.

5 . The method of claim 1 , wherein providing the selected neural network for performing inference on the particular set of one or more target hardware devices comprises deploying the selected neural network with values of the parameters of the selected neural network that are the same as the trained values determined by training the plurality of neural networks jointly.

6 . The method of claim 1 , wherein the selected neural network has an architecture defined by respective first values for each of the plurality of architectural dimensions and wherein generating a plurality of modified neural networks comprises:

randomly adjusting one or more of the respective first values to generate a modified architecture for a modified neural network.

7 . The method of claim 1 wherein the sampled networks comprise a largest possible neural network in the search space, a smallest possible neural network in the search space, and N randomly sampled neural networks from the search space.

8 . The method of claim 7 , wherein training the set of neural networks comprises:

training the largest possible neural network using target outputs from the training data; and

training each neural network in the set other than the largest possible neural network using, as target outputs, outputs generated by the largest possible neural network during the training.

9 . The method of claim 7 , wherein training the set of neural networks comprises:

regularizing the largest possible neural network without regularizing any of the other neural networks in the set.

10 . The method of claim 7 wherein the largest possible neural network has all of the parameters in the shared set of parameters.

11 . The method of claim 7 wherein the smallest possible neural network has a smallest number of parameters of any neural network having an architecture in the search space.

12 . The method of claim 1 , wherein the respective architecture of each of the plurality of neural networks comprises one or more residual blocks, and wherein training the plurality of neural networks comprises:

initializing an output of each residual block to an all-zeros tensor.

13 . The method of claim 1 , wherein training the plurality of neural networks comprises:

training using a learning rate schedule that is exponentially decaying with constant ending.

14 . The method of claim 1 , wherein providing the selected neural network for performing inference on the particular set of one or more target hardware devices comprises deploying the selected neural network on the particular set of one or more target hardware devices without performing any additional training.

15 . One or more non-transitory computer-readable storage media storing instructions that when executed by one or more computers cause the one or more computers to perform operations comprising:

receiving training data for a particular machine learning task;

generating trained values for a shared set of parameters by training a plurality of neural networks jointly on the training data, wherein each of the plurality of neural networks has parameters that are a subset of the shared set, wherein each of the plurality of neural networks has a respective architecture selected from a search space of different architectures, and wherein the search space is defined by a respective set of possible values for each of a plurality of architectural dimensions, and wherein the joint training comprises performing the following at each of a plurality of training steps:

obtaining training data for the training step;

sampling a plurality of neural networks of different sizes from the plurality of neural networks being trained, wherein each sampled neural network has a different subset of the shared set of parameters;

training the sampled neural networks on the training data for the training step to determine, for each sampled neural network, gradients with respect the respective subset of the shared set of parameters that are included in the sampled neural network; and

aggregating the gradients determined for the set of neural networks to determine an update to the shared set of parameters, comprising, for each parameter that is shared between two or more of the sampled neural networks, aggregating the gradients with respect to the parameter for the two or more sampled neural networks;

determining a respective performance benchmark on the machine learning task for each of a subset of neural networks, each neural network in the subset having a different architecture selected from a proper subset of the search space of different architectures;

receiving data specifying one or more constraints on computational resource consumption for performing inference on one or more inputs for the particular machine learning task on a particular set of one or more target hardware devices; and

selecting a neural network to be deployed for performing the machine learning task, comprising:

identifying, from the neural networks in the subset that satisfy the one or more constraints, an initial neural network based on the respective performance benchmarks;

generating a plurality of modified neural networks by perturbing the architecture of the identified initial neural network;

determining a respective performance benchmark on the particular machine learning task for each of the modified neural networks, and

selecting, from the identified neural network and the plurality of modified neural networks generated by perturbing the architecture of the identified initial neural network, a neural network based on the respective performance benchmarks; and

providing the selected neural network for performing inference on the particular set of one or more target hardware devices.

16 . A system comprising one or more computers and one or more storage devices storing instructions that when executed by one or more computers are operable to cause the one or more computers to perform operations comprising:

receiving training data for a particular machine learning task;

generating trained values for a shared set of parameters by training a plurality of neural networks jointly on the training data, wherein each of the plurality of neural networks has parameters that are a subset of the shared set, wherein each of the plurality of neural networks has a respective architecture selected from a search space of different architectures, and wherein the search space is defined by a respective set of possible values for each of a plurality of architectural dimensions, and wherein the joint training comprises performing the following at each of a plurality of training steps:

obtaining training data for the training step;

sampling a plurality of neural networks of different sizes from the plurality of neural networks being trained, wherein each sampled neural network has a different subset of the shared set of parameters;

training the sampled neural networks on the training data for the training step to determine, for each sampled neural network, gradients with respect the respective subset of the shared set of parameters that are included in the sampled neural network; and

aggregating the gradients determined for the set of neural networks to determine an update to the shared set of parameters, comprising, for each parameter that is shared between two or more of the sampled neural networks, aggregating the gradients with respect to the parameter for the two or more sampled neural networks;

determining a respective performance benchmark on the machine learning task for each of a subset of neural networks, each neural network in the subset having a different architecture selected from a proper subset of the search space of different architectures;

receiving data specifying one or more constraints on computational resource consumption for performing inference on one or more inputs for the particular machine learning task on a particular set of one or more target hardware devices; and

selecting a neural network to be deployed for performing the machine learning task, comprising:

identifying, from the neural networks in the subset that satisfy the one or more constraints, an initial neural network based on the respective performance benchmarks;

generating a plurality of modified neural networks by perturbing the architecture of the identified initial neural network;

determining a respective performance benchmark on the particular machine learning task for each of the modified neural networks, and

selecting, from the identified neural network and the plurality of modified neural networks generated by perturbing the architecture of the identified initial neural network, a neural network based on the respective performance benchmarks; and

providing the selected neural network for performing inference on the particular set of one or more target hardware devices.

17 . The system of claim 16 , wherein the one or more constraints comprise one or more constraints on one or more of: floating point operations per second performed by a device when performing the task using the neural network, a memory footprint of the neural network when deployed on a device for performing the task, or a runtime latency of a device when performing an inference for an input or a batch of inputs using the neural network.

18 . The system of claim 16 , wherein the one or more constraints specify one or more of a maximum number of floating point operations per second or an acceptable range of memory consumed by a device when performing the task using the neural network, or a maximum latency or an acceptable latency range of a device when performing an inference for an input or a batch of inputs using the neural network.

19 . The system of claim 16 , wherein the constraint is a hardware-specific constraint on computational resource consumption for a particular device.

20 . The system of claim 16 , wherein providing the selected neural network for performing inference on the particular set of one or more target hardware devices comprises deploying the selected neural network with values of the parameters of the selected neural network that are the same as the trained values determined by training the plurality of neural networks jointly.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 29, 2021
From: YU, JIAHUI; JIN, PENGCHONG; LIU, HANXIAO; BENDER, GABRIEL MINTZER; KINDERMANS, PIETER-JAN; TAN, MINGXING; SONG, XIAODAN; PANG, RUOMING; LE, QUOC V.
To: GOOGLE LLC
Reel/Frame 058502/0894 →
Continuity (2)
Provisional Application 62985856 · Mar 5, 2020
Related Publication 20220405579A1 · Dec 22, 2022
References Cited (57)
US 9443517B1 · Foerster · 2016 [cited by examiner]
US 20080262823A1 · Oslake · 2008 [cited by examiner]
US 20160174902A1 · Georgescu · 2016 [cited by examiner]
US 20190354837A1 · Zhou et al. · 2019 [cited by applicant]
US 20210089887A1 · Johnson · 2021 [cited by examiner]
US 20220108177A1 · Samek · 2022 [cited by examiner]
Vivienne Sze et al., “Efficient Processing of Deep Neural Networks: A Tutorial and Survey”, Aug. 13, 2017, ARXIV 1703.09039v2, 32 pages (Year: 2017). [cited by examiner]
Max Jaderberg et al., “Population Based Training of Neural Networks”, Nov. 28, 2017, ARXIV 1711.09846v2, 21 pages (Year: 2017). [cited by examiner]
Michael Nielsen, “Neural Networks and Deep Learning”, 2015, Determination Press (Year: 2015). [cited by examiner]
Amirmohammad Rooshenas et al., “Search-Guided, Lightly-supervised Training of Structured Prediction Energy Networks”, Dec. 22, 2018, ARXIV 1812.09603v1 (Year: 2018). [cited by examiner]
Nathaniel J. Smith, “Why does calloc exist?”, Dec. 5, 2016, njs blog (Year: 2016). [cited by examiner]
Max Jaderberg et al., “Population Based Training of Neural Networks”, Nov. 28, 2017, ARXIV 1711.09846v2, 21 pages, as attached in Non-Final (Year: 2017). [cited by examiner]
Michael Nielsen, “Neural Networks and Deep Learning”, 2015, Determination Press , as attached in Non-Final (Year: 2015). [cited by examiner]
Amirmohammad Rooshenas et al., “Search-Guided, Lightly-supervised Training of Structured Prediction Energy Networks”, Dec. 22, 2018, ARXIV 1812.09603v1, as attached in Non-Final (Year: 2018). [cited by examiner]
Nathaniel J. Smith, “Why does calloc exist?”, Dec. 5, 2016, njs blog, as attached in Non-Final (Year: 2016). [cited by examiner]
Efficient Embedded Machine Learning applications (Year: 2020). [cited by examiner]
Architecture Search by Estimation of Network Structure Distributions (Year: 2019). [cited by examiner]
Bender et al., “Can Weight Sharing Outperform Random Architecture Search? An Investigation With TuNAS,” Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), Jun. 2020, pp. 14323-1433… [cited by applicant]
Bender et al., “Understanding and Simplifying One-Shot Architecture Search,” Proceedings of the 35th International Conference on Machine Learning, Jul. 15, 2018, 10 pages. [cited by applicant]
Brock et al., “SMASH: One-shot model architecture search through hypernetworks,” Presented at Sixth International Conference on Learning Representations, Vancouver, Canada, Apr. 30-May 3, 2018, 22 pages. [cited by applicant]
Cai et al., “Once for all: Train one network and specialize it for efficient deployment,” arXiv, Aug. 26, 2019, 11 pages. [cited by applicant]
Cai et al., “ProxylessNAS: Direct Neural Architecture Search on Target Task and Hardware,” arXiv, Dec. 2, 2018, 13 pages. [cited by applicant]
Cubuk et al., “AutoAugment: Learning Augmentation Policies from Data,” arXiv, Oct. 9, 2018, 14 pages. [cited by applicant]
Deng et al., “Imagenet: A large-scale hierarchical image database,” Presented at 2009 IEEE Conference on Computer Vision and Pattern Recognition, Miami, FL, USA Jun. 20-25, 2009, pp. 248-255. [cited by applicant]
Goyal et al., “Accurate, Large Minibatch SGD: Training ImageNet in 1 Hour,” arXiv, Jun. 8, 2017, 12 pages. [cited by applicant]
Guo et al., “Single Path One-Shot Neural Architecture Search with Uniform Sampling,” arXiv, Apr. 6, 2019, 14 pages. [cited by applicant]
He et al., “Bag of tricks for image classification with convolutional neural networks,” Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), Jun. 2019, pp. 558-567. [cited by applicant]
He et al., “Deep residual learning for image recognition,” Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), Jun. 2016, pp. 770-778. [cited by applicant]
He et al., “Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classification,” Proceedings of the IEEE International Conference on Computer Vision (ICCV), Dec. 2015, pp. 1026-1034. [cited by applicant]
He et al., “Identity Mappings in Deep Residual Networks,” European Conference on Computer Vision, 2016, pp. 630-645. [cited by applicant]
Hinton et al., “Distilling the knowledge in neural network,” arXiv, Mar. 9, 2015, 9 pages. [cited by applicant]
Howard et al., “MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications,” arXiv, Apr. 17, 2017, 9 pages. [cited by applicant]
Howard et al., “Searching for MobileNetV3,” arXiv, Nov. 20, 2019, 11 pages. [cited by applicant]
International Preliminary Report on Patentability in International Appln. No. PCT/US2021/021234, dated Sep. 15, 2022, 11 pages. [cited by applicant]
International Search Report and Written Opinion in International Appln. No. PCT/US2021/021234, dated Jul. 5, 2021, 13 pages. [cited by applicant]
Ioffe et al., “Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift,” Proceedings of the 32nd International Conference on Machine Learning, 2015, 9 pages. [cited by applicant]
Liu et al., “DARTS: Differentiable Architecture Search,” arXiv, Jun. 24, 2018, 12 pages. [cited by applicant]
Liu et al., “Hierarchical Representations for Efficient Architecture Search,” arXiv, Nov. 1, 2017, 13 pages. [cited by applicant]
Liu et al., “Progressive Neural Architecture Search,” Proceedings of the European Conference on Computer Vision (ECCV), Sep. 2018, 16 pages. [cited by applicant]
Loshchilov et al., “SGDR: Stochastic Gradient Descent with Restarts,” arXiv, Aug. 17, 2016, 9 pages. [cited by applicant]
Ma et al., “ShuffleNet V2: Practical Guidelines for Efficient CNN Architecture Design,” Proceedings of the European Conference on Computer Vision (ECCV), Sep. 2018, 16 pages. [cited by applicant]
openreview.net [online], “Scaling up neural architecture search with big single-stage models,” Sep. 25, 2019, retrieved on Aug. 22, 2022, retrieved from URL<https://openreview.net/forum?id=HJe7unNFDH>, 13 pages. [cited by applicant]
Pham et al., “Efficient Neural Architecture Search via Parameters Sharing,” Proceedings of the 35th International Conference on Machine Learning, 2018, 10 pages. [cited by applicant]
Ramachandran et al., “Searching for Activation Functions,” arXiv, Oct. 27, 2017, 13 pages. [cited by applicant]
Real et al., “Regularized Evolution for Image Classifier Architecture Search,” AAAI Technical Track: Machine Learning, Jul. 17, 2019, pp. 4780-4789. [cited by applicant]
Sandler et al., “Inverted residuals and linear bottlenecks: Mobile networks for classification, detection and segmentation,” arXiv, Jan. 16, 2018, 14 pages. [cited by applicant]
Srivastava et al., “Dropout: A simple way to prevent neural networks from overfitting,” Journal of Machine Learning Research, Jun. 2014, 15:1929-1958. [cited by applicant]
Stamoulis et al., “Single-Path NAS: Designing Hardware-Efficient ConvNets in Less Than 4 Hours,” arXiv, Apr. 5, 2019. [cited by applicant]
Tan et al., “EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks,” Proceedings of the 36th International Conference on Machine Learning, 2019, 10 pages. [cited by applicant]
Tan et al., “Mnasnet: Platform-aware neural architecture search for mobile,” Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), Jun. 2019, pp. 2820-2828. [cited by applicant]
Wu et al., “FBNet: Hardware-Aware Efficient ConvNet Design via Differentiable Neural Architecture Search,” Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), Jun. 2019, pp. 10734-1… [cited by applicant]
Yu et al., “BigNAS: Scaling up neural architecture search with big single-stage models,” arXiv, Mar. 24, 2020, 20 pages. [cited by applicant]
Yu et al., “Network Slimming by Slimmable Networks: Towards One-Shot Architecture Search for Channel Numbers,” arXiv, Mar. 27, 2019, 10 pages. [cited by applicant]
Yu et al., “Slimmable neural networks,” arXiv, Dec. 21, 2018, 12 pages. [cited by applicant]
Yu et al., “Universally Slimmable Networks and Improved Training Techniques,” Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV), Oct. 2019, pp. 1803-1811. [cited by applicant]
Zoph et al., “Learning Transferable Architectures for Scalable Image Recognition,” Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), Jun. 2018, pp. 8697-8710. [cited by applicant]
Zoph et al., “Neural Architecture Search with Reinforcement Learning,” arXiv, Nov. 5, 2016, 15 pages. [cited by applicant]