Represents specification of a Study.
JSON representation |
---|
{ "metrics": [ { object ( |
Fields | |
---|---|
metrics[] |
Required. Metric specs for the Study. |
parameters[] |
Required. The set of parameters to tune. |
algorithm |
The search algorithm specified for the Study. |
observationNoise |
The observation noise level of the study. Currently only supported by the Vertex AI Vizier service. Not supported by HyperparamterTuningJob or TrainingPipeline. |
measurementSelectionType |
Describe which measurement selection type will be used |
Union field
|
|
decayCurveStoppingSpec |
The automated early stopping spec using decay curve rule. |
medianAutomatedStoppingSpec |
The automated early stopping spec using median rule. |
convexStopConfig |
Deprecated. The automated early stopping using convex stopping rule. |
DecayCurveAutomatedStoppingSpec
The decay curve automated stopping rule builds a Gaussian Process Regressor to predict the final objective value of a Trial based on the already completed Trials and the intermediate measurements of the current Trial. Early stopping is requested for the current Trial if there is very low probability to exceed the optimal value found so far.
JSON representation |
---|
{ "useElapsedDuration": boolean } |
Fields | |
---|---|
useElapsedDuration |
True if |
MedianAutomatedStoppingSpec
The median automated stopping rule stops a pending Trial if the Trial's best objective_value is strictly below the median 'performance' of all completed Trials reported up to the Trial's last measurement. Currently, 'performance' refers to the running average of the objective values reported by the Trial in each measurement.
JSON representation |
---|
{ "useElapsedDuration": boolean } |
Fields | |
---|---|
useElapsedDuration |
True if median automated stopping rule applies on |
ConvexStopConfig
Configuration for ConvexStopPolicy.
JSON representation |
---|
{ "maxNumSteps": string, "minNumSteps": string, "autoregressiveOrder": string, "learningRateParameterName": string, "useSeconds": boolean } |
Fields | |
---|---|
maxNumSteps |
Steps used in predicting the final objective for early stopped trials. In general, it's set to be the same as the defined steps in training / tuning. When use_steps is false, this field is set to the maximum elapsed seconds. |
minNumSteps |
Minimum number of steps for a trial to complete. Trials which do not have a measurement with num_steps > minNumSteps won't be considered for early stopping. It's ok to set it to 0, and a trial can be early stopped at any stage. By default, minNumSteps is set to be one-tenth of the maxNumSteps. When use_steps is false, this field is set to the minimum elapsed seconds. |
autoregressiveOrder |
The number of Trial measurements used in autoregressive model for value prediction. A trial won't be considered early stopping if has fewer measurement points. |
learningRateParameterName |
The hyper-parameter name used in the tuning job that stands for learning rate. Leave it blank if learning rate is not in a parameter in tuning. The learning_rate is used to estimate the objective value of the ongoing trial. |
useSeconds |
This bool determines whether or not the rule is applied based on elapsed_secs or steps. If useSeconds==false, the early stopping decision is made according to the predicted objective values according to the target steps. If useSeconds==true, elapsed_secs is used instead of steps. Also, in this case, the parameters maxNumSteps and minNumSteps are overloaded to contain max_elapsed_seconds and min_elapsed_seconds. |
MetricSpec
Represents a metric to optimize.
JSON representation |
---|
{
"metricId": string,
"goal": enum ( |
Fields | |
---|---|
metricId |
Required. The ID of the metric. Must not contain whitespaces and must be unique amongst all MetricSpecs. |
goal |
Required. The optimization goal of the metric. |
GoalType
The available types of optimization goals.
Enums | |
---|---|
GOAL_TYPE_UNSPECIFIED |
Goal Type will default to maximize. |
MAXIMIZE |
Maximize the goal metric. |
MINIMIZE |
Minimize the goal metric. |
ParameterSpec
Represents a single parameter to optimize.
JSON representation |
---|
{ "parameterId": string, "scaleType": enum ( |
Fields | |
---|---|
parameterId |
Required. The ID of the parameter. Must not contain whitespaces and must be unique amongst all ParameterSpecs. |
scaleType |
How the parameter should be scaled. Leave unset for |
conditionalParameterSpecs[] |
A conditional parameter node is active if the parameter's value matches the conditional node's parent_value_condition. If two items in conditionalParameterSpecs have the same name, they must have disjoint parent_value_condition. |
Union field
|
|
doubleValueSpec |
The value spec for a 'DOUBLE' parameter. |
integerValueSpec |
The value spec for an 'INTEGER' parameter. |
categoricalValueSpec |
The value spec for a 'CATEGORICAL' parameter. |
discreteValueSpec |
The value spec for a 'DISCRETE' parameter. |
DoubleValueSpec
Value specification for a parameter in DOUBLE
type.
JSON representation |
---|
{ "minValue": number, "maxValue": number, "defaultValue": number } |
Fields | |
---|---|
minValue |
Required. Inclusive minimum value of the parameter. |
maxValue |
Required. Inclusive maximum value of the parameter. |
defaultValue |
A default value for a Currently only supported by the Vertex AI Vizier service. Not supported by HyperparamterTuningJob or TrainingPipeline. |
IntegerValueSpec
Value specification for a parameter in INTEGER
type.
JSON representation |
---|
{ "minValue": string, "maxValue": string, "defaultValue": string } |
Fields | |
---|---|
minValue |
Required. Inclusive minimum value of the parameter. |
maxValue |
Required. Inclusive maximum value of the parameter. |
defaultValue |
A default value for an Currently only supported by the Vertex AI Vizier service. Not supported by HyperparamterTuningJob or TrainingPipeline. |
CategoricalValueSpec
Value specification for a parameter in CATEGORICAL
type.
JSON representation |
---|
{ "values": [ string ], "defaultValue": string } |
Fields | |
---|---|
values[] |
Required. The list of possible categories. |
defaultValue |
A default value for a Currently only supported by the Vizier service. Not supported by HyperparamterTuningJob or TrainingPipeline. |
DiscreteValueSpec
Value specification for a parameter in DISCRETE
type.
JSON representation |
---|
{ "values": [ number ], "defaultValue": number } |
Fields | |
---|---|
values[] |
Required. A list of possible values. The list should be in increasing order and at least 1e-10 apart. For instance, this parameter might have possible settings of 1.5, 2.5, and 4.0. This list should not contain more than 1,000 values. |
defaultValue |
A default value for a Currently only supported by the Vizier service. Not supported by HyperparamterTuningJob or TrainingPipeline. |
ScaleType
The type of scaling that should be applied to this parameter.
Enums | |
---|---|
SCALE_TYPE_UNSPECIFIED |
By default, no scaling is applied. |
UNIT_LINEAR_SCALE |
Scales the feasible space to (0, 1) linearly. |
UNIT_LOG_SCALE |
Scales the feasible space logarithmically to (0, 1). The entire feasible space must be strictly positive. |
UNIT_REVERSE_LOG_SCALE |
Scales the feasible space "reverse" logarithmically to (0, 1). The result is that values close to the top of the feasible space are spread out more than points near the bottom. The entire feasible space must be strictly positive. |
ConditionalParameterSpec
Represents a parameter spec with condition from its parent parameter.
JSON representation |
---|
{ "parameterSpec": { object ( |
Fields | |
---|---|
parameterSpec |
Required. The spec for a conditional parameter. |
Union field parent_value_condition . A set of parameter values from the parent ParameterSpec's feasible space. parent_value_condition can be only one of the following: |
|
parentDiscreteValues |
The spec for matching values from a parent parameter of |
parentIntValues |
The spec for matching values from a parent parameter of |
parentCategoricalValues |
The spec for matching values from a parent parameter of |
DiscreteValueCondition
Represents the spec to match discrete values from parent parameter.
JSON representation |
---|
{ "values": [ number ] } |
Fields | |
---|---|
values[] |
Required. Matches values of the parent parameter of 'DISCRETE' type. All values must exist in The Epsilon of the value matching is 1e-10. |
IntValueCondition
Represents the spec to match integer values from parent parameter.
JSON representation |
---|
{ "values": [ string ] } |
Fields | |
---|---|
values[] |
Required. Matches values of the parent parameter of 'INTEGER' type. All values must lie in |
CategoricalValueCondition
Represents the spec to match categorical values from parent parameter.
JSON representation |
---|
{ "values": [ string ] } |
Fields | |
---|---|
values[] |
Required. Matches values of the parent parameter of 'CATEGORICAL' type. All values must exist in |
Algorithm
The available search algorithms for the Study.
Enums | |
---|---|
ALGORITHM_UNSPECIFIED |
The default algorithm used by Vertex AI for hyperparameter tuning and Vertex AI Vizier. |
GRID_SEARCH |
Simple grid search within the feasible space. To use grid search, all parameters must be INTEGER , CATEGORICAL , or DISCRETE . |
RANDOM_SEARCH |
Simple random search within the feasible space. |
ObservationNoise
Describes the noise level of the repeated observations.
"Noisy" means that the repeated observations with the same Trial parameters may lead to different metric evaluations.
Enums | |
---|---|
OBSERVATION_NOISE_UNSPECIFIED |
The default noise level chosen by Vertex AI. |
LOW |
Vertex AI assumes that the objective function is (nearly) perfectly reproducible, and will never repeat the same Trial parameters. |
HIGH |
Vertex AI will estimate the amount of noise in metric evaluations, it may repeat the same Trial parameters more than once. |
MeasurementSelectionType
This indicates which measurement to use if/when the service automatically selects the final measurement from previously reported intermediate measurements. Choose this based on two considerations: A) Do you expect your measurements to monotonically improve? If so, choose LAST_MEASUREMENT. On the other hand, if you're in a situation where your system can "over-train" and you expect the performance to get better for a while but then start declining, choose BEST_MEASUREMENT. B) Are your measurements significantly noisy and/or irreproducible? If so, BEST_MEASUREMENT will tend to be over-optimistic, and it may be better to choose LAST_MEASUREMENT. If both or neither of (A) and (B) apply, it doesn't matter which selection type is chosen.
Enums | |
---|---|
MEASUREMENT_SELECTION_TYPE_UNSPECIFIED |
Will be treated as LAST_MEASUREMENT. |
LAST_MEASUREMENT |
Use the last measurement reported. |
BEST_MEASUREMENT |
Use the best measurement reported. |