IP Library Granted Patent US 11,928,584
Granted Patent B2
US 11,928,584 · App. 16/778,587 · Granted Mar 12, 2024

Distributed hyperparameter tuning and load balancing for mathematical models

Inventors: Bradford William Powley (Palo Alto, CA); Noah Burbank (Palo Alto, CA); Rowan Cassius (San Francisco, CA)
Assignee: Salesforce, Inc.
G06N3/08H04L67/1001
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,928,584
App. No.
16/778,587
Granted
Mar 12, 2024
Kind
B2
Abstract

Methods, systems, and devices for distributed hyperparameter tuning and load balancing are described. A device (e.g., an application server) may generate a first set of combinations of hyperparameter values associated with training a mathematical model. The mathematical model may include a machine learning model, an optimization model, or any combination. The device may identify a subset of combinations from the first set of combinations that are associated with a computational runtime that exceeds a first threshold and may distribute the subset of combinations across a set of machines. The device may then test each of the first set of combinations in a parallel processing operation to generate a first set of validation error values and may test a second set of combinations of hyperparameter values using an objective function that is based on the first set of validation error values.

Claims (48)

1. A method for training a mathematical model associated with a plurality of hyperparameter values via a serial process, comprising:

generating a first plurality of combinations of hyperparameter values from the plurality of hyperparameter values associated with training the mathematical model;

identifying a subset of combinations of hyperparameter values from the first plurality of combinations of hyperparameter values, wherein one or more combinations of hyperparameter values of the subset of combinations of hyperparameter values are associated with a computational runtime that exceeds a first threshold that is a computational runtime threshold associated with a computational runtime value;

distributing combinations of hyperparameter values from the subset of combinations of hyperparameter values to be executed on a plurality of machines such that each machine of the plurality of machines is assigned a number combinations of hyperparameter values from of the subset of combinations of hyperparameter values that is less than a second threshold, wherein the second threshold is a threshold number of combinations of hyperparameter values from the subset of combinations of hyperparameter values;

testing each of the first plurality of combinations of hyperparameter values against the mathematical model using the plurality of machines in a parallel processing operation to generate a first plurality of validation error values, one or more validation error values of the first plurality of validation error values corresponding to the testing of one or more combinations of hyperparameter values of the first plurality of combinations of hyperparameter values against the mathematical model, wherein the parallel processing operation is operated in accordance with the distributed combinations of hyperparameter values from the subset of combinations of hyperparameter values, and wherein the testing of the first plurality of combinations of hyperparameter values against the mathematical model is a first part of the serial process; and

testing a second plurality of combinations of hyperparameter values against the mathematical model using an objective function, an input of the objective function being based at least in part on the first plurality of validation error values and the objective function generating a result value including combinations of hyperparameter values for training the mathematical model based at least in part on the input of the objective function, wherein the testing of the second plurality of combinations of hyperparameter values against the mathematical model is a second part of the serial process and is based at least in part on the first part of the serial process, wherein the result value is a result of the serial process such that the combinations of hyperparameter values included in the result value are associated with validation error values that are less than a validation error value threshold, and wherein the result value is generated is based at least in part on the combinations of hyperparameter values from the subset of combinations of hyperparameter values being distributed on the plurality of machines.

2. The method of claim 1 , wherein testing the second plurality of combinations of hyperparameter values comprises:

running the objective function using the serial process.

3. The method of claim 1 , further comprising:

identifying the second plurality of combinations of hyperparameter values based at least in part on the objective function.

4. The method of claim 1 , further comprising:

initializing the objective function based at least in part on the first plurality of validation error values.

5. The method of claim 1 , wherein identifying the subset of combinations from the first plurality of combinations comprises:

identifying one or more hyperparameter values associated with a hyperparameter, wherein the one or more hyperparameter values are associated with the computational runtime that exceeds the first threshold.

6. The method of claim 5 , wherein the first threshold is based at least in part on a prior experience associated with the one or more hyperparameter values, an inference from previous runs, a known benchmark, or a combination thereof.

7. The method of claim 1 , further comprising:

distributing combinations of hyperparameter values from a remaining subset of combinations of hyperparameter values from the first plurality of combinations of hyperparameter values across the plurality of machines based at least in part on a random distribution.

8. The method of claim 1 , further comprising:

tuning the first threshold based at least in part on a number of the plurality of machines.

9. The method of claim 1 , wherein the objective function comprises a Bayesian optimization function.

10. The method of claim 1 , wherein the computational runtime is based at least in part on a runtime for one of the plurality of machines.

11. The method of claim 1 , wherein the first plurality of combinations of hyperparameter values and the second plurality of combinations of hyperparameter values are different.

12. The method of claim 1 , wherein the first plurality of combinations of hyperparameter values are defined by a user and comprise one or more hyperparameter values associated with the plurality of hyperparameter values.

13. The method of claim 1 , wherein the plurality of machines comprises servers, virtual machines, bare metal machines, a plurality of threads on a single multi-thread processor, or a combination thereof.

14. The method of claim 1 , wherein the mathematical model comprises a machine learning model, an optimization model, or a combination thereof.

15. An apparatus for training a mathematical model associated with a plurality of hyperparameter values via a serial process, comprising:

a processor,

memory coupled with the processor; and

instructions stored in the memory and executable by the processor to cause the apparatus to:

generate a first plurality of combinations of hyperparameter values from the plurality of hyperparameter values associated with training the mathematical model;

identify a subset of combinations of hyperparameter values from the first plurality of combinations of hyperparameter values, wherein one or more combinations of hyperparameter values of the subset of combinations of hyperparameter values are associated with a computational runtime that exceeds a first threshold that is a computational runtime threshold associated with a computational runtime value;

distribute combinations of hyperparameter values from the subset of combinations of hyperparameter values to be executed on a plurality of machines such that each machine of the plurality of machines is assigned a number of combinations of hyperparameter values from the subset of combinations of hyperparameter values that is less than a second threshold, wherein the second threshold is a threshold number of combinations of hyperparameter values from the subset of combinations of hyperparameter values;

test each of the first plurality of combinations of hyperparameter values against the mathematical model using the plurality of machines in a parallel processing operation to generate a first plurality of validation error values, one or more validation error values of the first plurality of validation error values corresponding to the testing of one or more combinations of hyperparameter values of the first plurality of combinations of hyperparameter values against the mathematical model, wherein the parallel processing operation is operated in accordance with the distributed combinations of hyperparameter values from the subset of combinations of hyperparameter values, and wherein the testing of the first plurality of combinations of hyperparameter values against the mathematical model is a first part of the serial process; and

test a second plurality of combinations of hyperparameter values against the mathematical model using an objective function, an input of the objective function being based at least in part on the first plurality of validation error values and the objective function generating a result value including combinations of hyperparameter values for training the mathematical model based at least in part on the input of the objective function, wherein the testing of the second plurality of combinations of hyperparameter values against the mathematical model is a second part of the serial process and is based at least in part on the first part of the serial process, wherein the result value is a result of the serial process such that the combinations of hyperparameter values included in the result value are associated with validation error values that are less than a validation error value threshold, and wherein the result value is generated is based at least in part on the combinations of hyperparameter values from the subset of combinations of hyperparameter values being distributed on the plurality of machines.

16. The apparatus of claim 15 , wherein the instructions to test the second plurality of combinations of hyperparameter values are executable by the processor to cause the apparatus to:

run the objective function using the serial process.

17. The apparatus of claim 15 , wherein the instructions are further executable by the processor to cause the apparatus to:

identify the second plurality of combinations of hyperparameter values based at least in part on the objective function.

18. The apparatus of claim 15 , wherein the instructions are further executable by the processor to cause the apparatus to:

initialize the objective function based at least in part on the first plurality of validation error values.

19. The apparatus of claim 15 , wherein the instructions to identify the subset of combinations from the first plurality of combinations are executable by the processor to cause the apparatus to:

identify one or more hyperparameter values associated with a hyperparameter, wherein the one or more hyperparameter values are associated with the computational runtime that exceeds the first threshold.

20. A non-transitory computer-readable medium storing code for training a mathematical model associated with a plurality of hyperparameter values via a serial process, the code comprising instructions executable by a processor to:

generate a first plurality of combinations of hyperparameter values from the plurality of hyperparameter values associated with training the mathematical model;

identify a subset of combinations of hyperparameter values from the first plurality of combinations of hyperparameter values, wherein one or more combinations of hyperparameter values of the subset of combinations of hyperparameter values are associated with a computational runtime that exceeds a first threshold that is a computational runtime threshold associated with a computational runtime value;

distribute combinations of hyperparameter values from the subset of combinations of hyperparameter values to be executed on a plurality of machines such that each machine of the plurality of machines is assigned a number of combinations of hyperparameter values from the subset of combinations of hyperparameter values that is less than a second threshold, wherein the second threshold is a threshold number of combinations of hyperparameter values from the subset of combinations of hyperparameter values;

test each of the first plurality of combinations of hyperparameter values against the mathematical model using the plurality of machines in a parallel processing operation to generate a first plurality of validation error values, one or more validation error values of the first plurality of validation error values corresponding to the testing of one or more combinations of hyperparameter values of the first plurality of combinations of hyperparameter values against the mathematical model, wherein the parallel processing operation is operated in accordance with the distributed combinations of hyperparameter values from the subset of combinations of hyperparameter values, and wherein the testing of the first plurality of combinations of hyperparameter values against the mathematical model is a first part of the serial process; and

test a second plurality of combinations of hyperparameter values against the mathematical model using an objective function, an input of the objective function being based at least in part on the first plurality of validation error values and the objective function generating a result value including combinations of hyperparameter values for training the mathematical model based at least in part on the input of the objective function, wherein the testing of the second plurality of combinations of hyperparameter values against the mathematical model is a second part of the serial process and is based at least in part on the first part of the serial process, wherein the result value is a result of the serial process such that the combinations of hyperparameter values included in the result value are associated with validation error values that are less than a validation error value threshold, and wherein the result value is generated is based at least in part on the combinations of hyperparameter values from the subset of combinations of hyperparameter values being distributed on the plurality of machines.

Assignments (3)
CORRECTIVE ASSIGNMENT TO CORRECT THE SECOND INVENTOR'S NAME PREVIOUSLY RECORDED AT REEL: 051727 FRAME: 0374. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 22, 2024
From: POWLEY, BRADFORD WILLIAM; BURBANK, NOAH; CASSIUS, ROWAN
To: SALESFORCE, INC.
Reel/Frame 066361/0235 →
CHANGE OF NAME Recorded Apr 11, 2023
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 063297/0320 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 5, 2020
From: POWLEY, BRADFORD WILLIAM; BURBANK, NOAH WILLIAM; CASSIUS, ROWAN
To: SALESFORCE.COM, INC.
Reel/Frame 051727/0374 →
Continuity (1)
Related Publication 20210241164A1 · Aug 5, 2021