feat: add aiplatform API Vizier service Committer: @dizcology PiperOrigin-RevId: 363921711pull/644/head
parent
7998de5ade
commit
4ea5a2764a
42 changed files with 1160 additions and 118 deletions
@ -0,0 +1,502 @@ |
||||
// Copyright 2021 Google LLC |
||||
// |
||||
// Licensed under the Apache License, Version 2.0 (the "License"); |
||||
// you may not use this file except in compliance with the License. |
||||
// You may obtain a copy of the License at |
||||
// |
||||
// http://www.apache.org/licenses/LICENSE-2.0 |
||||
// |
||||
// Unless required by applicable law or agreed to in writing, software |
||||
// distributed under the License is distributed on an "AS IS" BASIS, |
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
// See the License for the specific language governing permissions and |
||||
// limitations under the License. |
||||
|
||||
syntax = "proto3"; |
||||
|
||||
package google.cloud.aiplatform.v1beta1; |
||||
|
||||
import "google/api/annotations.proto"; |
||||
import "google/api/client.proto"; |
||||
import "google/api/field_behavior.proto"; |
||||
import "google/api/resource.proto"; |
||||
import "google/cloud/aiplatform/v1beta1/operation.proto"; |
||||
import "google/cloud/aiplatform/v1beta1/study.proto"; |
||||
import "google/longrunning/operations.proto"; |
||||
import "google/protobuf/empty.proto"; |
||||
import "google/protobuf/timestamp.proto"; |
||||
|
||||
option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; |
||||
option java_multiple_files = true; |
||||
option java_outer_classname = "VizierServiceProto"; |
||||
option java_package = "com.google.cloud.aiplatform.v1beta1"; |
||||
|
||||
// Cloud AI Platform Vizier API. |
||||
// |
||||
// Vizier service is a GCP service to solve blackbox optimization problems, |
||||
// such as tuning machine learning hyperparameters and searching over deep |
||||
// learning architectures. |
||||
service VizierService { |
||||
option (google.api.default_host) = "aiplatform.googleapis.com"; |
||||
option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; |
||||
|
||||
// Creates a Study. A resource name will be generated after creation of the |
||||
// Study. |
||||
rpc CreateStudy(CreateStudyRequest) returns (Study) { |
||||
option (google.api.http) = { |
||||
post: "/v1beta1/{parent=projects/*/locations/*}/studies" |
||||
body: "study" |
||||
}; |
||||
option (google.api.method_signature) = "parent,study"; |
||||
} |
||||
|
||||
// Gets a Study by name. |
||||
rpc GetStudy(GetStudyRequest) returns (Study) { |
||||
option (google.api.http) = { |
||||
get: "/v1beta1/{name=projects/*/locations/*/studies/*}" |
||||
}; |
||||
option (google.api.method_signature) = "name"; |
||||
} |
||||
|
||||
// Lists all the studies in a region for an associated project. |
||||
rpc ListStudies(ListStudiesRequest) returns (ListStudiesResponse) { |
||||
option (google.api.http) = { |
||||
get: "/v1beta1/{parent=projects/*/locations/*}/studies" |
||||
}; |
||||
option (google.api.method_signature) = "parent"; |
||||
} |
||||
|
||||
// Deletes a Study. |
||||
rpc DeleteStudy(DeleteStudyRequest) returns (google.protobuf.Empty) { |
||||
option (google.api.http) = { |
||||
delete: "/v1beta1/{name=projects/*/locations/*/studies/*}" |
||||
}; |
||||
option (google.api.method_signature) = "name"; |
||||
} |
||||
|
||||
// Looks a study up using the user-defined display_name field instead of the |
||||
// fully qualified resource name. |
||||
rpc LookupStudy(LookupStudyRequest) returns (Study) { |
||||
option (google.api.http) = { |
||||
post: "/v1beta1/{parent=projects/*/locations/*}/studies:lookup" |
||||
body: "*" |
||||
}; |
||||
option (google.api.method_signature) = "parent"; |
||||
} |
||||
|
||||
// Adds one or more Trials to a Study, with parameter values |
||||
// suggested by AI Platform Vizier. Returns a long-running |
||||
// operation associated with the generation of Trial suggestions. |
||||
// When this long-running operation succeeds, it will contain |
||||
// a [SuggestTrialsResponse][google.cloud.ml.v1.SuggestTrialsResponse]. |
||||
rpc SuggestTrials(SuggestTrialsRequest) returns (google.longrunning.Operation) { |
||||
option (google.api.http) = { |
||||
post: "/v1beta1/{parent=projects/*/locations/*/studies/*}/trials:suggest" |
||||
body: "*" |
||||
}; |
||||
option (google.longrunning.operation_info) = { |
||||
response_type: "SuggestTrialsResponse" |
||||
metadata_type: "SuggestTrialsMetadata" |
||||
}; |
||||
} |
||||
|
||||
// Adds a user provided Trial to a Study. |
||||
rpc CreateTrial(CreateTrialRequest) returns (Trial) { |
||||
option (google.api.http) = { |
||||
post: "/v1beta1/{parent=projects/*/locations/*/studies/*}/trials" |
||||
body: "trial" |
||||
}; |
||||
option (google.api.method_signature) = "parent,trial"; |
||||
} |
||||
|
||||
// Gets a Trial. |
||||
rpc GetTrial(GetTrialRequest) returns (Trial) { |
||||
option (google.api.http) = { |
||||
get: "/v1beta1/{name=projects/*/locations/*/studies/*/trials/*}" |
||||
}; |
||||
option (google.api.method_signature) = "name"; |
||||
} |
||||
|
||||
// Lists the Trials associated with a Study. |
||||
rpc ListTrials(ListTrialsRequest) returns (ListTrialsResponse) { |
||||
option (google.api.http) = { |
||||
get: "/v1beta1/{parent=projects/*/locations/*/studies/*}/trials" |
||||
}; |
||||
option (google.api.method_signature) = "parent"; |
||||
} |
||||
|
||||
// Adds a measurement of the objective metrics to a Trial. This measurement |
||||
// is assumed to have been taken before the Trial is complete. |
||||
rpc AddTrialMeasurement(AddTrialMeasurementRequest) returns (Trial) { |
||||
option (google.api.http) = { |
||||
post: "/v1beta1/{trial_name=projects/*/locations/*/studies/*/trials/*}:addTrialMeasurement" |
||||
body: "*" |
||||
}; |
||||
} |
||||
|
||||
// Marks a Trial as complete. |
||||
rpc CompleteTrial(CompleteTrialRequest) returns (Trial) { |
||||
option (google.api.http) = { |
||||
post: "/v1beta1/{name=projects/*/locations/*/studies/*/trials/*}:complete" |
||||
body: "*" |
||||
}; |
||||
} |
||||
|
||||
// Deletes a Trial. |
||||
rpc DeleteTrial(DeleteTrialRequest) returns (google.protobuf.Empty) { |
||||
option (google.api.http) = { |
||||
delete: "/v1beta1/{name=projects/*/locations/*/studies/*/trials/*}" |
||||
}; |
||||
option (google.api.method_signature) = "name"; |
||||
} |
||||
|
||||
// Checks whether a Trial should stop or not. Returns a |
||||
// long-running operation. When the operation is successful, |
||||
// it will contain a |
||||
// [CheckTrialEarlyStoppingStateResponse][google.cloud.ml.v1.CheckTrialEarlyStoppingStateResponse]. |
||||
rpc CheckTrialEarlyStoppingState(CheckTrialEarlyStoppingStateRequest) returns (google.longrunning.Operation) { |
||||
option (google.api.http) = { |
||||
post: "/v1beta1/{trial_name=projects/*/locations/*/studies/*/trials/*}:checkTrialEarlyStoppingState" |
||||
body: "*" |
||||
}; |
||||
option (google.longrunning.operation_info) = { |
||||
response_type: "CheckTrialEarlyStoppingStateResponse" |
||||
metadata_type: "CheckTrialEarlyStoppingStateMetatdata" |
||||
}; |
||||
} |
||||
|
||||
// Stops a Trial. |
||||
rpc StopTrial(StopTrialRequest) returns (Trial) { |
||||
option (google.api.http) = { |
||||
post: "/v1beta1/{name=projects/*/locations/*/studies/*/trials/*}:stop" |
||||
body: "*" |
||||
}; |
||||
} |
||||
|
||||
// Lists the pareto-optimal Trials for multi-objective Study or the |
||||
// optimal Trials for single-objective Study. The definition of |
||||
// pareto-optimal can be checked in wiki page. |
||||
// https://en.wikipedia.org/wiki/Pareto_efficiency |
||||
rpc ListOptimalTrials(ListOptimalTrialsRequest) returns (ListOptimalTrialsResponse) { |
||||
option (google.api.http) = { |
||||
post: "/v1beta1/{parent=projects/*/locations/*/studies/*}/trials:listOptimalTrials" |
||||
body: "*" |
||||
}; |
||||
option (google.api.method_signature) = "parent"; |
||||
} |
||||
} |
||||
|
||||
// Request message for [VizierService.GetStudy][google.cloud.aiplatform.v1beta1.VizierService.GetStudy]. |
||||
message GetStudyRequest { |
||||
// Required. The name of the Study resource. |
||||
// Format: `projects/{project}/locations/{location}/studies/{study}` |
||||
string name = 1 [ |
||||
(google.api.field_behavior) = REQUIRED, |
||||
(google.api.resource_reference) = { |
||||
type: "aiplatform.googleapis.com/Study" |
||||
} |
||||
]; |
||||
} |
||||
|
||||
// Request message for [VizierService.CreateStudy][google.cloud.aiplatform.v1beta1.VizierService.CreateStudy]. |
||||
message CreateStudyRequest { |
||||
// Required. The resource name of the Location to create the CustomJob in. |
||||
// Format: `projects/{project}/locations/{location}` |
||||
string parent = 1 [ |
||||
(google.api.field_behavior) = REQUIRED, |
||||
(google.api.resource_reference) = { |
||||
type: "locations.googleapis.com/Location" |
||||
} |
||||
]; |
||||
|
||||
// Required. The Study configuration used to create the Study. |
||||
Study study = 2 [(google.api.field_behavior) = REQUIRED]; |
||||
} |
||||
|
||||
// Request message for [VizierService.ListStudies][google.cloud.aiplatform.v1beta1.VizierService.ListStudies]. |
||||
message ListStudiesRequest { |
||||
// Required. The resource name of the Location to list the Study from. |
||||
// Format: `projects/{project}/locations/{location}` |
||||
string parent = 1 [ |
||||
(google.api.field_behavior) = REQUIRED, |
||||
(google.api.resource_reference) = { |
||||
type: "locations.googleapis.com/Location" |
||||
} |
||||
]; |
||||
|
||||
// Optional. A page token to request the next page of results. |
||||
// If unspecified, there are no subsequent pages. |
||||
string page_token = 2 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// Optional. The maximum number of studies to return per "page" of results. |
||||
// If unspecified, service will pick an appropriate default. |
||||
int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL]; |
||||
} |
||||
|
||||
// Response message for [VizierService.ListStudies][google.cloud.aiplatform.v1beta1.VizierService.ListStudies]. |
||||
message ListStudiesResponse { |
||||
// The studies associated with the project. |
||||
repeated Study studies = 1; |
||||
|
||||
// Passes this token as the `page_token` field of the request for a |
||||
// subsequent call. |
||||
// If this field is omitted, there are no subsequent pages. |
||||
string next_page_token = 2; |
||||
} |
||||
|
||||
// Request message for [VizierService.DeleteStudy][google.cloud.aiplatform.v1beta1.VizierService.DeleteStudy]. |
||||
message DeleteStudyRequest { |
||||
// Required. The name of the Study resource to be deleted. |
||||
// Format: `projects/{project}/locations/{location}/studies/{study}` |
||||
string name = 1 [ |
||||
(google.api.field_behavior) = REQUIRED, |
||||
(google.api.resource_reference) = { |
||||
type: "aiplatform.googleapis.com/Study" |
||||
} |
||||
]; |
||||
} |
||||
|
||||
// Request message for [VizierService.LookupStudy][google.cloud.aiplatform.v1beta1.VizierService.LookupStudy]. |
||||
message LookupStudyRequest { |
||||
// Required. The resource name of the Location to get the Study from. |
||||
// Format: `projects/{project}/locations/{location}` |
||||
string parent = 1 [ |
||||
(google.api.field_behavior) = REQUIRED, |
||||
(google.api.resource_reference) = { |
||||
type: "locations.googleapis.com/Location" |
||||
} |
||||
]; |
||||
|
||||
// Required. The user-defined display name of the Study |
||||
string display_name = 2 [(google.api.field_behavior) = REQUIRED]; |
||||
} |
||||
|
||||
// Request message for [VizierService.SuggestTrials][google.cloud.aiplatform.v1beta1.VizierService.SuggestTrials]. |
||||
message SuggestTrialsRequest { |
||||
// Required. The project and location that the Study belongs to. |
||||
// Format: `projects/{project}/locations/{location}/studies/{study}` |
||||
string parent = 1 [ |
||||
(google.api.field_behavior) = REQUIRED, |
||||
(google.api.resource_reference) = { |
||||
type: "aiplatform.googleapis.com/Study" |
||||
} |
||||
]; |
||||
|
||||
// Required. The number of suggestions requested. |
||||
int32 suggestion_count = 2 [(google.api.field_behavior) = REQUIRED]; |
||||
|
||||
// Required. The identifier of the client that is requesting the suggestion. |
||||
// |
||||
// If multiple SuggestTrialsRequests have the same `client_id`, |
||||
// the service will return the identical suggested Trial if the Trial is |
||||
// pending, and provide a new Trial if the last suggested Trial was completed. |
||||
string client_id = 3 [(google.api.field_behavior) = REQUIRED]; |
||||
} |
||||
|
||||
// Response message for [VizierService.SuggestTrials][google.cloud.aiplatform.v1beta1.VizierService.SuggestTrials]. |
||||
message SuggestTrialsResponse { |
||||
// A list of Trials. |
||||
repeated Trial trials = 1; |
||||
|
||||
// The state of the Study. |
||||
Study.State study_state = 2; |
||||
|
||||
// The time at which the operation was started. |
||||
google.protobuf.Timestamp start_time = 3; |
||||
|
||||
// The time at which operation processing completed. |
||||
google.protobuf.Timestamp end_time = 4; |
||||
} |
||||
|
||||
// Details of operations that perform Trials suggestion. |
||||
message SuggestTrialsMetadata { |
||||
// Operation metadata for suggesting Trials. |
||||
GenericOperationMetadata generic_metadata = 1; |
||||
|
||||
// The identifier of the client that is requesting the suggestion. |
||||
// |
||||
// If multiple SuggestTrialsRequests have the same `client_id`, |
||||
// the service will return the identical suggested Trial if the Trial is |
||||
// pending, and provide a new Trial if the last suggested Trial was completed. |
||||
string client_id = 2; |
||||
} |
||||
|
||||
// Request message for [VizierService.CreateTrial][google.cloud.aiplatform.v1beta1.VizierService.CreateTrial]. |
||||
message CreateTrialRequest { |
||||
// Required. The resource name of the Study to create the Trial in. |
||||
// Format: `projects/{project}/locations/{location}/studies/{study}` |
||||
string parent = 1 [ |
||||
(google.api.field_behavior) = REQUIRED, |
||||
(google.api.resource_reference) = { |
||||
type: "aiplatform.googleapis.com/Study" |
||||
} |
||||
]; |
||||
|
||||
// Required. The Trial to create. |
||||
Trial trial = 2 [(google.api.field_behavior) = REQUIRED]; |
||||
} |
||||
|
||||
// Request message for [VizierService.GetTrial][google.cloud.aiplatform.v1beta1.VizierService.GetTrial]. |
||||
message GetTrialRequest { |
||||
// Required. The name of the Trial resource. |
||||
// Format: |
||||
// `projects/{project}/locations/{location}/studies/{study}/trials/{trial}` |
||||
string name = 1 [ |
||||
(google.api.field_behavior) = REQUIRED, |
||||
(google.api.resource_reference) = { |
||||
type: "aiplatform.googleapis.com/Trial" |
||||
} |
||||
]; |
||||
} |
||||
|
||||
// Request message for [VizierService.ListTrials][google.cloud.aiplatform.v1beta1.VizierService.ListTrials]. |
||||
message ListTrialsRequest { |
||||
// Required. The resource name of the Study to list the Trial from. |
||||
// Format: `projects/{project}/locations/{location}/studies/{study}` |
||||
string parent = 1 [ |
||||
(google.api.field_behavior) = REQUIRED, |
||||
(google.api.resource_reference) = { |
||||
type: "aiplatform.googleapis.com/Study" |
||||
} |
||||
]; |
||||
|
||||
// Optional. A page token to request the next page of results. |
||||
// If unspecified, there are no subsequent pages. |
||||
string page_token = 2 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// Optional. The number of Trials to retrieve per "page" of results. |
||||
// If unspecified, the service will pick an appropriate default. |
||||
int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL]; |
||||
} |
||||
|
||||
// Response message for [VizierService.ListTrials][google.cloud.aiplatform.v1beta1.VizierService.ListTrials]. |
||||
message ListTrialsResponse { |
||||
// The Trials associated with the Study. |
||||
repeated Trial trials = 1; |
||||
|
||||
// Pass this token as the `page_token` field of the request for a |
||||
// subsequent call. |
||||
// If this field is omitted, there are no subsequent pages. |
||||
string next_page_token = 2; |
||||
} |
||||
|
||||
// Request message for [VizierService.AddTrialMeasurement][google.cloud.aiplatform.v1beta1.VizierService.AddTrialMeasurement]. |
||||
message AddTrialMeasurementRequest { |
||||
// Required. The name of the trial to add measurement. |
||||
// Format: |
||||
// `projects/{project}/locations/{location}/studies/{study}/trials/{trial}` |
||||
string trial_name = 1 [ |
||||
(google.api.field_behavior) = REQUIRED, |
||||
(google.api.resource_reference) = { |
||||
type: "aiplatform.googleapis.com/Trial" |
||||
} |
||||
]; |
||||
|
||||
// Required. The measurement to be added to a Trial. |
||||
Measurement measurement = 3 [(google.api.field_behavior) = REQUIRED]; |
||||
} |
||||
|
||||
// Request message for [VizierService.CompleteTrial][google.cloud.aiplatform.v1beta1.VizierService.CompleteTrial]. |
||||
message CompleteTrialRequest { |
||||
// Required. The Trial's name. |
||||
// Format: |
||||
// `projects/{project}/locations/{location}/studies/{study}/trials/{trial}` |
||||
string name = 1 [ |
||||
(google.api.field_behavior) = REQUIRED, |
||||
(google.api.resource_reference) = { |
||||
type: "aiplatform.googleapis.com/Trial" |
||||
} |
||||
]; |
||||
|
||||
// Optional. If provided, it will be used as the completed Trial's |
||||
// final_measurement; Otherwise, the service will auto-select a |
||||
// previously reported measurement as the final-measurement |
||||
Measurement final_measurement = 2 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// Optional. True if the Trial cannot be run with the given Parameter, and |
||||
// final_measurement will be ignored. |
||||
bool trial_infeasible = 3 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// Optional. A human readable reason why the trial was infeasible. This should |
||||
// only be provided if `trial_infeasible` is true. |
||||
string infeasible_reason = 4 [(google.api.field_behavior) = OPTIONAL]; |
||||
} |
||||
|
||||
// Request message for [VizierService.DeleteTrial][google.cloud.aiplatform.v1beta1.VizierService.DeleteTrial]. |
||||
message DeleteTrialRequest { |
||||
// Required. The Trial's name. |
||||
// Format: |
||||
// `projects/{project}/locations/{location}/studies/{study}/trials/{trial}` |
||||
string name = 1 [ |
||||
(google.api.field_behavior) = REQUIRED, |
||||
(google.api.resource_reference) = { |
||||
type: "aiplatform.googleapis.com/Trial" |
||||
} |
||||
]; |
||||
} |
||||
|
||||
// Request message for [VizierService.CheckTrialEarlyStoppingState][google.cloud.aiplatform.v1beta1.VizierService.CheckTrialEarlyStoppingState]. |
||||
message CheckTrialEarlyStoppingStateRequest { |
||||
// Required. The Trial's name. |
||||
// Format: |
||||
// `projects/{project}/locations/{location}/studies/{study}/trials/{trial}` |
||||
string trial_name = 1 [ |
||||
(google.api.field_behavior) = REQUIRED, |
||||
(google.api.resource_reference) = { |
||||
type: "aiplatform.googleapis.com/Trial" |
||||
} |
||||
]; |
||||
} |
||||
|
||||
// Response message for [VizierService.CheckTrialEarlyStoppingState][google.cloud.aiplatform.v1beta1.VizierService.CheckTrialEarlyStoppingState]. |
||||
message CheckTrialEarlyStoppingStateResponse { |
||||
// True if the Trial should stop. |
||||
bool should_stop = 1; |
||||
} |
||||
|
||||
// This message will be placed in the metadata field of a |
||||
// google.longrunning.Operation associated with a CheckTrialEarlyStoppingState |
||||
// request. |
||||
message CheckTrialEarlyStoppingStateMetatdata { |
||||
// Operation metadata for suggesting Trials. |
||||
GenericOperationMetadata generic_metadata = 1; |
||||
|
||||
// The name of the Study that the Trial belongs to. |
||||
string study = 2; |
||||
|
||||
// The Trial name. |
||||
string trial = 3; |
||||
} |
||||
|
||||
// Request message for [VizierService.StopTrial][google.cloud.aiplatform.v1beta1.VizierService.StopTrial]. |
||||
message StopTrialRequest { |
||||
// Required. The Trial's name. |
||||
// Format: |
||||
// `projects/{project}/locations/{location}/studies/{study}/trials/{trial}` |
||||
string name = 1 [ |
||||
(google.api.field_behavior) = REQUIRED, |
||||
(google.api.resource_reference) = { |
||||
type: "aiplatform.googleapis.com/Trial" |
||||
} |
||||
]; |
||||
} |
||||
|
||||
// Request message for [VizierService.ListOptimalTrials][google.cloud.aiplatform.v1beta1.VizierService.ListOptimalTrials]. |
||||
message ListOptimalTrialsRequest { |
||||
// Required. The name of the Study that the optimal Trial belongs to. |
||||
string parent = 1 [ |
||||
(google.api.field_behavior) = REQUIRED, |
||||
(google.api.resource_reference) = { |
||||
type: "aiplatform.googleapis.com/Study" |
||||
} |
||||
]; |
||||
} |
||||
|
||||
// Response message for [VizierService.ListOptimalTrials][google.cloud.aiplatform.v1beta1.VizierService.ListOptimalTrials]. |
||||
message ListOptimalTrialsResponse { |
||||
// The pareto-optimal Trials for multiple objective Study or the |
||||
// optimal trial for single objective Study. The definition of |
||||
// pareto-optimal can be checked in wiki page. |
||||
// https://en.wikipedia.org/wiki/Pareto_efficiency |
||||
repeated Trial optimal_trials = 1; |
||||
} |
Loading…
Reference in new issue