From 23f184dffb8482fc032234ae652e75999eb93203 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 2 Apr 2021 10:13:46 -0700 Subject: [PATCH] feat!: BREAKING CHANGE: remove unsupported accelerator types feat: add aiplatform API Vizier service (#92) Committer: @dizcology PiperOrigin-RevId: 363921711 Source-Author: Google APIs Source-Date: Fri Mar 19 10:37:18 2021 -0700 Source-Repo: googleapis/googleapis Source-Sha: 4ea5a2764a08f86676d0e853dbb01c4e9868a22b Source-Link: https://github.com/googleapis/googleapis/commit/4ea5a2764a08f86676d0e853dbb01c4e9868a22b Co-authored-by: Benjamin E. Coe --- .../aiplatform/v1beta1/accelerator_type.proto | 8 +- .../cloud/aiplatform/v1beta1/annotation.proto | 7 +- .../aiplatform/v1beta1/annotation_spec.proto | 4 +- .../v1beta1/batch_prediction_job.proto | 7 +- .../aiplatform/v1beta1/completion_stats.proto | 2 +- .../cloud/aiplatform/v1beta1/custom_job.proto | 14 +- .../cloud/aiplatform/v1beta1/data_item.proto | 5 +- .../v1beta1/data_labeling_job.proto | 12 +- .../cloud/aiplatform/v1beta1/dataset.proto | 4 +- .../aiplatform/v1beta1/dataset_service.proto | 4 +- .../v1beta1/deployed_model_ref.proto | 2 +- .../aiplatform/v1beta1/encryption_spec.proto | 2 +- .../cloud/aiplatform/v1beta1/endpoint.proto | 10 +- .../aiplatform/v1beta1/endpoint_service.proto | 4 +- .../cloud/aiplatform/v1beta1/env_var.proto | 2 +- .../aiplatform/v1beta1/explanation.proto | 3 +- .../v1beta1/explanation_metadata.proto | 8 +- .../v1beta1/hyperparameter_tuning_job.proto | 2 +- .../google/cloud/aiplatform/v1beta1/io.proto | 10 +- .../aiplatform/v1beta1/job_service.proto | 19 +- .../cloud/aiplatform/v1beta1/job_state.proto | 5 +- .../v1beta1/machine_resources.proto | 49 +- .../manual_batch_tuning_parameters.proto | 2 +- .../v1beta1/migratable_resource.proto | 8 +- .../v1beta1/migration_service.proto | 9 +- .../cloud/aiplatform/v1beta1/model.proto | 27 +- .../aiplatform/v1beta1/model_evaluation.proto | 2 +- .../v1beta1/model_evaluation_slice.proto | 2 +- .../aiplatform/v1beta1/model_service.proto | 5 +- .../cloud/aiplatform/v1beta1/operation.proto | 2 +- .../aiplatform/v1beta1/pipeline_service.proto | 7 +- .../aiplatform/v1beta1/pipeline_state.proto | 2 +- .../v1beta1/prediction_service.proto | 2 +- .../aiplatform/v1beta1/specialist_pool.proto | 2 +- .../v1beta1/specialist_pool_service.proto | 4 +- .../cloud/aiplatform/v1beta1/study.proto | 122 +- .../v1beta1/training_pipeline.proto | 7 +- .../v1beta1/user_action_reference.proto | 3 +- .../aiplatform/v1beta1/vizier_service.proto | 502 ++ protos/protos.d.ts | 3128 +++++++- protos/protos.js | 6735 ++++++++++++++++- protos/protos.json | 815 +- src/v1beta1/dataset_service_client.ts | 56 +- src/v1beta1/dataset_service_proto_list.json | 3 +- src/v1beta1/endpoint_service_client.ts | 52 + src/v1beta1/endpoint_service_proto_list.json | 3 +- src/v1beta1/gapic_metadata.json | 172 + src/v1beta1/index.ts | 1 + src/v1beta1/job_service_client.ts | 67 +- src/v1beta1/job_service_proto_list.json | 3 +- src/v1beta1/migration_service_client.ts | 58 +- src/v1beta1/migration_service_proto_list.json | 3 +- src/v1beta1/model_service_client.ts | 57 +- src/v1beta1/model_service_proto_list.json | 3 +- src/v1beta1/pipeline_service_client.ts | 55 +- src/v1beta1/pipeline_service_proto_list.json | 3 +- src/v1beta1/prediction_service_client.ts | 52 + .../prediction_service_proto_list.json | 3 +- src/v1beta1/specialist_pool_service_client.ts | 53 +- .../specialist_pool_service_proto_list.json | 3 +- src/v1beta1/vizier_service_client.ts | 3277 ++++++++ src/v1beta1/vizier_service_client_config.json | 101 + src/v1beta1/vizier_service_proto_list.json | 82 + synth.metadata | 15 +- test/gapic_dataset_service_v1beta1.ts | 64 + test/gapic_endpoint_service_v1beta1.ts | 64 + test/gapic_job_service_v1beta1.ts | 64 + test/gapic_migration_service_v1beta1.ts | 64 + test/gapic_model_service_v1beta1.ts | 64 + test/gapic_pipeline_service_v1beta1.ts | 64 + test/gapic_prediction_service_v1beta1.ts | 66 + test/gapic_specialist_pool_service_v1beta1.ts | 66 + test/gapic_vizier_service_v1beta1.ts | 3682 +++++++++ 73 files changed, 19650 insertions(+), 239 deletions(-) create mode 100644 protos/google/cloud/aiplatform/v1beta1/vizier_service.proto create mode 100644 src/v1beta1/vizier_service_client.ts create mode 100644 src/v1beta1/vizier_service_client_config.json create mode 100644 src/v1beta1/vizier_service_proto_list.json create mode 100644 test/gapic_vizier_service_v1beta1.ts diff --git a/protos/google/cloud/aiplatform/v1beta1/accelerator_type.proto b/protos/google/cloud/aiplatform/v1beta1/accelerator_type.proto index 2e422fc0..0865b628 100644 --- a/protos/google/cloud/aiplatform/v1beta1/accelerator_type.proto +++ b/protos/google/cloud/aiplatform/v1beta1/accelerator_type.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. @@ -42,10 +42,4 @@ enum AcceleratorType { // Nvidia Tesla T4 GPU. NVIDIA_TESLA_T4 = 5; - - // TPU v2. - TPU_V2 = 6; - - // TPU v3. - TPU_V3 = 7; } diff --git a/protos/google/cloud/aiplatform/v1beta1/annotation.proto b/protos/google/cloud/aiplatform/v1beta1/annotation.proto index 88d97cfc..5924eab2 100644 --- a/protos/google/cloud/aiplatform/v1beta1/annotation.proto +++ b/protos/google/cloud/aiplatform/v1beta1/annotation.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. @@ -18,6 +18,7 @@ package google.cloud.aiplatform.v1beta1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; + import "google/cloud/aiplatform/v1beta1/user_action_reference.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; @@ -58,7 +59,7 @@ message Annotation { // Output only. Timestamp when this Annotation was last updated. google.protobuf.Timestamp update_time = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Optional. Used to perform a consistent read-modify-write updates. If not set, a blind + // Optional. Used to perform consistent read-modify-write updates. If not set, a blind // "overwrite" update happens. string etag = 8 [(google.api.field_behavior) = OPTIONAL]; @@ -79,7 +80,7 @@ message Annotation { // // * "aiplatform.googleapis.com/annotation_set_name": // optional, name of the UI's annotation set this Annotation belongs to. - // If not set the Annotation is not visible in the UI. + // If not set, the Annotation is not visible in the UI. // // * "aiplatform.googleapis.com/payload_schema": // output only, its value is the [payload_schema's][google.cloud.aiplatform.v1beta1.Annotation.payload_schema_uri] diff --git a/protos/google/cloud/aiplatform/v1beta1/annotation_spec.proto b/protos/google/cloud/aiplatform/v1beta1/annotation_spec.proto index f303b0aa..03d535d4 100644 --- a/protos/google/cloud/aiplatform/v1beta1/annotation_spec.proto +++ b/protos/google/cloud/aiplatform/v1beta1/annotation_spec.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. @@ -47,7 +47,7 @@ message AnnotationSpec { // Output only. Timestamp when AnnotationSpec was last updated. google.protobuf.Timestamp update_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Optional. Used to perform a consistent read-modify-write updates. If not set, a blind + // Optional. Used to perform consistent read-modify-write updates. If not set, a blind // "overwrite" update happens. string etag = 5 [(google.api.field_behavior) = OPTIONAL]; } diff --git a/protos/google/cloud/aiplatform/v1beta1/batch_prediction_job.proto b/protos/google/cloud/aiplatform/v1beta1/batch_prediction_job.proto index f763df63..29bfc16e 100644 --- a/protos/google/cloud/aiplatform/v1beta1/batch_prediction_job.proto +++ b/protos/google/cloud/aiplatform/v1beta1/batch_prediction_job.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. @@ -120,7 +120,6 @@ message BatchPredictionJob { // Required. The format in which AI Platform gives the predictions, must be one of the // [Model's][google.cloud.aiplatform.v1beta1.BatchPredictionJob.model] - // // [supported_output_storage_formats][google.cloud.aiplatform.v1beta1.Model.supported_output_storage_formats]. string predictions_format = 1 [(google.api.field_behavior) = REQUIRED]; } @@ -206,8 +205,8 @@ message BatchPredictionJob { // conforms to the [Explanation][google.cloud.aiplatform.v1beta1.Explanation] object. // * `csv`: Generating explanations for CSV format is not supported. // - // If this field is set to true, the [Model.explanation_spec][google.cloud.aiplatform.v1beta1.Model.explanation_spec] must be - // populated. + // If this field is set to true, either the [Model.explanation_spec][google.cloud.aiplatform.v1beta1.Model.explanation_spec] or + // [explanation_spec][google.cloud.aiplatform.v1beta1.BatchPredictionJob.explanation_spec] must be populated. bool generate_explanation = 23; // Explanation configuration for this BatchPredictionJob. Can be diff --git a/protos/google/cloud/aiplatform/v1beta1/completion_stats.proto b/protos/google/cloud/aiplatform/v1beta1/completion_stats.proto index cc7881ef..9e49dab9 100644 --- a/protos/google/cloud/aiplatform/v1beta1/completion_stats.proto +++ b/protos/google/cloud/aiplatform/v1beta1/completion_stats.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. diff --git a/protos/google/cloud/aiplatform/v1beta1/custom_job.proto b/protos/google/cloud/aiplatform/v1beta1/custom_job.proto index f50e56ed..686a0e3c 100644 --- a/protos/google/cloud/aiplatform/v1beta1/custom_job.proto +++ b/protos/google/cloud/aiplatform/v1beta1/custom_job.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. @@ -93,6 +93,8 @@ message CustomJob { // Represents the spec of a CustomJob. message CustomJobSpec { // Required. The spec of the worker pools including machine type and Docker image. + // All worker pools except the first one are optional and can be skipped by + // providing an empty value. repeated WorkerPoolSpec worker_pool_specs = 1 [(google.api.field_behavior) = REQUIRED]; // Scheduling options for a CustomJob. @@ -180,10 +182,12 @@ message ContainerSpec { // The spec of a Python packaged code. message PythonPackageSpec { - // Required. The URI of a container image in the Container Registry that will run the - // provided python package. AI Platform provides wide range of executor images - // with pre-installed packages to meet users' various use cases. Only one of - // the provided images can be set here. + // Required. The URI of a container image in Artifact Registry that will run the + // provided Python package. AI Platform provides a wide range of executor + // images with pre-installed packages to meet users' various use cases. See + // the list of [pre-built containers for + // training](https://cloud.google.com/ai-platform-unified/docs/training/pre-built-containers). + // You must use an image from this list. string executor_image_uri = 1 [(google.api.field_behavior) = REQUIRED]; // Required. The Google Cloud Storage location of the Python package files which are diff --git a/protos/google/cloud/aiplatform/v1beta1/data_item.proto b/protos/google/cloud/aiplatform/v1beta1/data_item.proto index 7a96eba4..0981483d 100644 --- a/protos/google/cloud/aiplatform/v1beta1/data_item.proto +++ b/protos/google/cloud/aiplatform/v1beta1/data_item.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. @@ -18,6 +18,7 @@ package google.cloud.aiplatform.v1beta1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; + import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; import "google/api/annotations.proto"; @@ -62,7 +63,7 @@ message DataItem { // [metadata schema's][google.cloud.aiplatform.v1beta1.Dataset.metadata_schema_uri] dataItemSchemaUri field. google.protobuf.Value payload = 4 [(google.api.field_behavior) = REQUIRED]; - // Optional. Used to perform a consistent read-modify-write updates. If not set, a blind + // Optional. Used to perform consistent read-modify-write updates. If not set, a blind // "overwrite" update happens. string etag = 7 [(google.api.field_behavior) = OPTIONAL]; } diff --git a/protos/google/cloud/aiplatform/v1beta1/data_labeling_job.proto b/protos/google/cloud/aiplatform/v1beta1/data_labeling_job.proto index 41a4cb5d..6e3a208e 100644 --- a/protos/google/cloud/aiplatform/v1beta1/data_labeling_job.proto +++ b/protos/google/cloud/aiplatform/v1beta1/data_labeling_job.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. @@ -134,13 +134,13 @@ message DataLabelingJob { // the EncryptionSpec of the Dataset they are exported to. EncryptionSpec encryption_spec = 20; - // Parameters that configure active learning pipeline. Active learning will - // label the data incrementally via several iterations. For every iteration, - // it will select a batch of data based on the sampling strategy. + // Parameters that configure the active learning pipeline. Active learning + // will label the data incrementally via several iterations. For every + // iteration, it will select a batch of data based on the sampling strategy. ActiveLearningConfig active_learning_config = 21; } -// Parameters that configure active learning pipeline. Active learning will +// Parameters that configure the active learning pipeline. Active learning will // label the data incrementally by several iterations. For every iteration, it // will select a batch of data based on the sampling strategy. message ActiveLearningConfig { @@ -192,7 +192,7 @@ message SampleConfig { int32 following_batch_sample_percentage = 3; } - // Field to chose sampling strategy. Sampling strategy will decide which data + // Field to choose sampling strategy. Sampling strategy will decide which data // should be selected for human labeling in every batch. SampleStrategy sample_strategy = 5; } diff --git a/protos/google/cloud/aiplatform/v1beta1/dataset.proto b/protos/google/cloud/aiplatform/v1beta1/dataset.proto index 6a7e4689..95f7e5ce 100644 --- a/protos/google/cloud/aiplatform/v1beta1/dataset.proto +++ b/protos/google/cloud/aiplatform/v1beta1/dataset.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. @@ -104,7 +104,7 @@ message ImportDataConfig { // considered identical if their content bytes are identical (e.g. image bytes // or pdf bytes). // These labels will be overridden by Annotation labels specified inside index - // file refenced by [import_schema_uri][google.cloud.aiplatform.v1beta1.ImportDataConfig.import_schema_uri], e.g. jsonl file. + // file referenced by [import_schema_uri][google.cloud.aiplatform.v1beta1.ImportDataConfig.import_schema_uri], e.g. jsonl file. map data_item_labels = 2; // Required. Points to a YAML file stored on Google Cloud Storage describing the import diff --git a/protos/google/cloud/aiplatform/v1beta1/dataset_service.proto b/protos/google/cloud/aiplatform/v1beta1/dataset_service.proto index 17e9eb89..1be8c790 100644 --- a/protos/google/cloud/aiplatform/v1beta1/dataset_service.proto +++ b/protos/google/cloud/aiplatform/v1beta1/dataset_service.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. @@ -358,7 +358,6 @@ message ListDataItemsResponse { message GetAnnotationSpecRequest { // Required. The name of the AnnotationSpec resource. // Format: - // // `projects/{project}/locations/{location}/datasets/{dataset}/annotationSpecs/{annotation_spec}` string name = 1 [ (google.api.field_behavior) = REQUIRED, @@ -375,7 +374,6 @@ message GetAnnotationSpecRequest { message ListAnnotationsRequest { // Required. The resource name of the DataItem to list Annotations from. // Format: - // // `projects/{project}/locations/{location}/datasets/{dataset}/dataItems/{data_item}` string parent = 1 [ (google.api.field_behavior) = REQUIRED, diff --git a/protos/google/cloud/aiplatform/v1beta1/deployed_model_ref.proto b/protos/google/cloud/aiplatform/v1beta1/deployed_model_ref.proto index 4d2cddcd..a33a167d 100644 --- a/protos/google/cloud/aiplatform/v1beta1/deployed_model_ref.proto +++ b/protos/google/cloud/aiplatform/v1beta1/deployed_model_ref.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. diff --git a/protos/google/cloud/aiplatform/v1beta1/encryption_spec.proto b/protos/google/cloud/aiplatform/v1beta1/encryption_spec.proto index b2d9f3f2..d8fb9399 100644 --- a/protos/google/cloud/aiplatform/v1beta1/encryption_spec.proto +++ b/protos/google/cloud/aiplatform/v1beta1/encryption_spec.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. diff --git a/protos/google/cloud/aiplatform/v1beta1/endpoint.proto b/protos/google/cloud/aiplatform/v1beta1/endpoint.proto index 19f82c5f..7d8fd728 100644 --- a/protos/google/cloud/aiplatform/v1beta1/endpoint.proto +++ b/protos/google/cloud/aiplatform/v1beta1/endpoint.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. @@ -108,7 +108,7 @@ message DeployedModel { // Output only. The ID of the DeployedModel. string id = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Required. The name of the Model this is the deployment of. Note that the Model + // Required. The name of the Model that this is the deployment of. Note that the Model // may be in a different location than the DeployedModel's Endpoint. string model = 2 [ (google.api.field_behavior) = REQUIRED, @@ -130,9 +130,9 @@ message DeployedModel { // overrides the value of [Model.explanation_spec][google.cloud.aiplatform.v1beta1.Model.explanation_spec]. All fields of // [explanation_spec][google.cloud.aiplatform.v1beta1.DeployedModel.explanation_spec] are optional in the request. If a field of // [explanation_spec][google.cloud.aiplatform.v1beta1.DeployedModel.explanation_spec] is not populated, the value of the same field of - // [Model.explanation_spec][google.cloud.aiplatform.v1beta1.Model.explanation_spec] is inherited. The corresponding - // [Model.explanation_spec][google.cloud.aiplatform.v1beta1.Model.explanation_spec] must be populated, otherwise explanation for - // this Model is not allowed. + // [Model.explanation_spec][google.cloud.aiplatform.v1beta1.Model.explanation_spec] is inherited. If the corresponding + // [Model.explanation_spec][google.cloud.aiplatform.v1beta1.Model.explanation_spec] is not populated, all fields of the + // [explanation_spec][google.cloud.aiplatform.v1beta1.DeployedModel.explanation_spec] will be used for the explanation configuration. ExplanationSpec explanation_spec = 9; // The service account that the DeployedModel's container runs as. Specify the diff --git a/protos/google/cloud/aiplatform/v1beta1/endpoint_service.proto b/protos/google/cloud/aiplatform/v1beta1/endpoint_service.proto index 8d8284b6..d4ec027b 100644 --- a/protos/google/cloud/aiplatform/v1beta1/endpoint_service.proto +++ b/protos/google/cloud/aiplatform/v1beta1/endpoint_service.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. @@ -192,7 +192,7 @@ message ListEndpointsResponse { // List of Endpoints in the requested page. repeated Endpoint endpoints = 1; - // A token to retrieve next page of results. + // A token to retrieve the next page of results. // Pass to [ListEndpointsRequest.page_token][google.cloud.aiplatform.v1beta1.ListEndpointsRequest.page_token] to obtain that page. string next_page_token = 2; } diff --git a/protos/google/cloud/aiplatform/v1beta1/env_var.proto b/protos/google/cloud/aiplatform/v1beta1/env_var.proto index 2f96fc1b..a110cf47 100644 --- a/protos/google/cloud/aiplatform/v1beta1/env_var.proto +++ b/protos/google/cloud/aiplatform/v1beta1/env_var.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. diff --git a/protos/google/cloud/aiplatform/v1beta1/explanation.proto b/protos/google/cloud/aiplatform/v1beta1/explanation.proto index a75ee628..68357502 100644 --- a/protos/google/cloud/aiplatform/v1beta1/explanation.proto +++ b/protos/google/cloud/aiplatform/v1beta1/explanation.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. @@ -18,6 +18,7 @@ package google.cloud.aiplatform.v1beta1; import "google/api/field_behavior.proto"; import "google/cloud/aiplatform/v1beta1/explanation_metadata.proto"; +import "google/cloud/aiplatform/v1beta1/io.proto"; import "google/protobuf/struct.proto"; import "google/api/annotations.proto"; diff --git a/protos/google/cloud/aiplatform/v1beta1/explanation_metadata.proto b/protos/google/cloud/aiplatform/v1beta1/explanation_metadata.proto index 985e4478..1ac86b28 100644 --- a/protos/google/cloud/aiplatform/v1beta1/explanation_metadata.proto +++ b/protos/google/cloud/aiplatform/v1beta1/explanation_metadata.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. @@ -339,7 +339,7 @@ message ExplanationMetadata { // outputs by their values. // // The shape of the value must be an n-dimensional array of strings. The - // number of dimentions must match that of the outputs to be explained. + // number of dimensions must match that of the outputs to be explained. // The [Attribution.output_display_name][google.cloud.aiplatform.v1beta1.Attribution.output_display_name] is populated by locating in the // mapping with [Attribution.output_index][google.cloud.aiplatform.v1beta1.Attribution.output_index]. google.protobuf.Value index_display_name_mapping = 1; @@ -377,8 +377,8 @@ message ExplanationMetadata { // Required. Map from output names to output metadata. // - // For AI Platform provided Tensorflow images, keys can be any string user - // defines. + // For AI Platform provided Tensorflow images, keys can be any user defined + // string that consists of any UTF-8 characters. // // For custom images, keys are the name of the output field in the prediction // to be explained. diff --git a/protos/google/cloud/aiplatform/v1beta1/hyperparameter_tuning_job.proto b/protos/google/cloud/aiplatform/v1beta1/hyperparameter_tuning_job.proto index fc6181e9..b203b743 100644 --- a/protos/google/cloud/aiplatform/v1beta1/hyperparameter_tuning_job.proto +++ b/protos/google/cloud/aiplatform/v1beta1/hyperparameter_tuning_job.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. diff --git a/protos/google/cloud/aiplatform/v1beta1/io.proto b/protos/google/cloud/aiplatform/v1beta1/io.proto index 83e0f5df..4870344e 100644 --- a/protos/google/cloud/aiplatform/v1beta1/io.proto +++ b/protos/google/cloud/aiplatform/v1beta1/io.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. @@ -53,9 +53,9 @@ message BigQuerySource { message BigQueryDestination { // Required. BigQuery URI to a project or table, up to 2000 characters long. // - // When only project is specified, Dataset and Table is created. - // When full table reference is specified, Dataset must exist and table must - // not exist. + // When only the project is specified, the Dataset and Table is created. + // When the full table reference is specified, the Dataset must exist and + // table must not exist. // // Accepted forms: // @@ -64,7 +64,7 @@ message BigQueryDestination { string output_uri = 1 [(google.api.field_behavior) = REQUIRED]; } -// The Container Regsitry location for the container image. +// The Container Registry location for the container image. message ContainerRegistryDestination { // Required. Container Registry URI of a container image. // Only Google Container Registry and Artifact Registry are supported now. diff --git a/protos/google/cloud/aiplatform/v1beta1/job_service.proto b/protos/google/cloud/aiplatform/v1beta1/job_service.proto index 01bf83e0..a9e7e141 100644 --- a/protos/google/cloud/aiplatform/v1beta1/job_service.proto +++ b/protos/google/cloud/aiplatform/v1beta1/job_service.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. @@ -331,7 +331,7 @@ message ListCustomJobsResponse { // List of CustomJobs in the requested page. repeated CustomJob custom_jobs = 1; - // A token to retrieve next page of results. + // A token to retrieve the next page of results. // Pass to [ListCustomJobsRequest.page_token][google.cloud.aiplatform.v1beta1.ListCustomJobsRequest.page_token] to obtain that page. string next_page_token = 2; } @@ -381,7 +381,6 @@ message CreateDataLabelingJobRequest { message GetDataLabelingJobRequest { // Required. The name of the DataLabelingJob. // Format: - // // `projects/{project}/locations/{location}/dataLabelingJobs/{data_labeling_job}` string name = 1 [ (google.api.field_behavior) = REQUIRED, @@ -453,7 +452,6 @@ message ListDataLabelingJobsResponse { message DeleteDataLabelingJobRequest { // Required. The name of the DataLabelingJob to be deleted. // Format: - // // `projects/{project}/locations/{location}/dataLabelingJobs/{data_labeling_job}` string name = 1 [ (google.api.field_behavior) = REQUIRED, @@ -467,7 +465,6 @@ message DeleteDataLabelingJobRequest { message CancelDataLabelingJobRequest { // Required. The name of the DataLabelingJob. // Format: - // // `projects/{project}/locations/{location}/dataLabelingJobs/{data_labeling_job}` string name = 1 [ (google.api.field_behavior) = REQUIRED, @@ -496,7 +493,6 @@ message CreateHyperparameterTuningJobRequest { message GetHyperparameterTuningJobRequest { // Required. The name of the HyperparameterTuningJob resource. // Format: - // // `projects/{project}/locations/{location}/hyperparameterTuningJobs/{hyperparameter_tuning_job}` string name = 1 [ (google.api.field_behavior) = REQUIRED, @@ -555,7 +551,7 @@ message ListHyperparameterTuningJobsResponse { // [HyperparameterTuningJob.trials][google.cloud.aiplatform.v1beta1.HyperparameterTuningJob.trials] of the jobs will be not be returned. repeated HyperparameterTuningJob hyperparameter_tuning_jobs = 1; - // A token to retrieve next page of results. + // A token to retrieve the next page of results. // Pass to [ListHyperparameterTuningJobsRequest.page_token][google.cloud.aiplatform.v1beta1.ListHyperparameterTuningJobsRequest.page_token] to obtain that // page. string next_page_token = 2; @@ -565,7 +561,6 @@ message ListHyperparameterTuningJobsResponse { message DeleteHyperparameterTuningJobRequest { // Required. The name of the HyperparameterTuningJob resource to be deleted. // Format: - // // `projects/{project}/locations/{location}/hyperparameterTuningJobs/{hyperparameter_tuning_job}` string name = 1 [ (google.api.field_behavior) = REQUIRED, @@ -579,7 +574,6 @@ message DeleteHyperparameterTuningJobRequest { message CancelHyperparameterTuningJobRequest { // Required. The name of the HyperparameterTuningJob to cancel. // Format: - // // `projects/{project}/locations/{location}/hyperparameterTuningJobs/{hyperparameter_tuning_job}` string name = 1 [ (google.api.field_behavior) = REQUIRED, @@ -608,7 +602,6 @@ message CreateBatchPredictionJobRequest { message GetBatchPredictionJobRequest { // Required. The name of the BatchPredictionJob resource. // Format: - // // `projects/{project}/locations/{location}/batchPredictionJobs/{batch_prediction_job}` string name = 1 [ (google.api.field_behavior) = REQUIRED, @@ -637,6 +630,8 @@ message ListBatchPredictionJobsRequest { // // * `state` supports = and !=. // + // * `model_display_name` supports = and != + // // Some examples of using the filter are: // // * `state="JOB_STATE_SUCCEEDED" AND display_name="my_job"` @@ -666,7 +661,7 @@ message ListBatchPredictionJobsResponse { // List of BatchPredictionJobs in the requested page. repeated BatchPredictionJob batch_prediction_jobs = 1; - // A token to retrieve next page of results. + // A token to retrieve the next page of results. // Pass to [ListBatchPredictionJobsRequest.page_token][google.cloud.aiplatform.v1beta1.ListBatchPredictionJobsRequest.page_token] to obtain that // page. string next_page_token = 2; @@ -676,7 +671,6 @@ message ListBatchPredictionJobsResponse { message DeleteBatchPredictionJobRequest { // Required. The name of the BatchPredictionJob resource to be deleted. // Format: - // // `projects/{project}/locations/{location}/batchPredictionJobs/{batch_prediction_job}` string name = 1 [ (google.api.field_behavior) = REQUIRED, @@ -690,7 +684,6 @@ message DeleteBatchPredictionJobRequest { message CancelBatchPredictionJobRequest { // Required. The name of the BatchPredictionJob to cancel. // Format: - // // `projects/{project}/locations/{location}/batchPredictionJobs/{batch_prediction_job}` string name = 1 [ (google.api.field_behavior) = REQUIRED, diff --git a/protos/google/cloud/aiplatform/v1beta1/job_state.proto b/protos/google/cloud/aiplatform/v1beta1/job_state.proto index 44ac573b..c2ac3081 100644 --- a/protos/google/cloud/aiplatform/v1beta1/job_state.proto +++ b/protos/google/cloud/aiplatform/v1beta1/job_state.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. @@ -52,4 +52,7 @@ enum JobState { // The job has been stopped, and can be resumed. JOB_STATE_PAUSED = 8; + + // The job has expired. + JOB_STATE_EXPIRED = 9; } diff --git a/protos/google/cloud/aiplatform/v1beta1/machine_resources.proto b/protos/google/cloud/aiplatform/v1beta1/machine_resources.proto index 3cb131c2..034813c5 100644 --- a/protos/google/cloud/aiplatform/v1beta1/machine_resources.proto +++ b/protos/google/cloud/aiplatform/v1beta1/machine_resources.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. @@ -67,7 +67,7 @@ message DedicatedResources { ]; // Immutable. The maximum number of replicas this DeployedModel may be deployed on when - // the traffic against it increases. If requested value is too large, + // the traffic against it increases. If the requested value is too large, // the deployment will error, but if deployment succeeds then the ability // to scale the model to that many replicas is guaranteed (barring service // outages). If traffic against the DeployedModel increases beyond what its @@ -75,6 +75,28 @@ message DedicatedResources { // If this value is not provided, will use [min_replica_count][google.cloud.aiplatform.v1beta1.DedicatedResources.min_replica_count] as the // default value. int32 max_replica_count = 3 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. The metric specifications that overrides a resource + // utilization metric (CPU utilization, accelerator's duty cycle, and so on) + // target value (default to 60 if not set). At most one entry is allowed per + // metric. + // + // If [machine_spec.accelerator_count][google.cloud.aiplatform.v1beta1.MachineSpec.accelerator_count] is + // above 0, the autoscaling will be based on both CPU utilization and + // accelerator's duty cycle metrics and scale up when either metrics exceeds + // its target value while scale down if both metrics are under their target + // value. The default target value is 60 for both metrics. + // + // If [machine_spec.accelerator_count][google.cloud.aiplatform.v1beta1.MachineSpec.accelerator_count] is + // 0, the autoscaling will be based on CPU utilization metric only with + // default target value 60 if not explicitly set. + // + // For example, in the case of Online Prediction, if you want to override + // target CPU utilization to 80, you should set + // [autoscaling_metric_specs.metric_name][google.cloud.aiplatform.v1beta1.AutoscalingMetricSpec.metric_name] + // to `aiplatform.googleapis.com/prediction/online/cpu/utilization` and + // [autoscaling_metric_specs.target][google.cloud.aiplatform.v1beta1.AutoscalingMetricSpec.target] to `80`. + repeated AutoscalingMetricSpec autoscaling_metric_specs = 4 [(google.api.field_behavior) = IMMUTABLE]; } // A description of resources that to large degree are decided by AI Platform, @@ -85,11 +107,11 @@ message AutomaticResources { // on. If traffic against it increases, it may dynamically be deployed onto // more replicas up to [max_replica_count][google.cloud.aiplatform.v1beta1.AutomaticResources.max_replica_count], and as traffic decreases, some // of these extra replicas may be freed. - // If requested value is too large, the deployment will error. + // If the requested value is too large, the deployment will error. int32 min_replica_count = 1 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. The maximum number of replicas this DeployedModel may be deployed on when - // the traffic against it increases. If requested value is too large, + // the traffic against it increases. If the requested value is too large, // the deployment will error, but if deployment succeeds then the ability // to scale the model to that many replicas is guaranteed (barring service // outages). If traffic against the DeployedModel increases beyond what its @@ -137,3 +159,22 @@ message DiskSpec { // Size in GB of the boot disk (default is 100GB). int32 boot_disk_size_gb = 2; } + +// The metric specification that defines the target resource utilization +// (CPU utilization, accelerator's duty cycle, and so on) for calculating the +// desired replica count. +message AutoscalingMetricSpec { + // Required. The resource metric name. + // Supported metrics: + // + // * For Online Prediction: + // * `aiplatform.googleapis.com/prediction/online/accelerator/duty_cycle` + // * `aiplatform.googleapis.com/prediction/online/cpu/utilization` + string metric_name = 1 [(google.api.field_behavior) = REQUIRED]; + + // The target resource utilization in percentage (1% - 100%) for the given + // metric; once the real usage deviates from the target by a certain + // percentage, the machine replicas change. The default value is 60 + // (representing 60%) if not provided. + int32 target = 2; +} diff --git a/protos/google/cloud/aiplatform/v1beta1/manual_batch_tuning_parameters.proto b/protos/google/cloud/aiplatform/v1beta1/manual_batch_tuning_parameters.proto index 17182cbd..67ff7222 100644 --- a/protos/google/cloud/aiplatform/v1beta1/manual_batch_tuning_parameters.proto +++ b/protos/google/cloud/aiplatform/v1beta1/manual_batch_tuning_parameters.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. diff --git a/protos/google/cloud/aiplatform/v1beta1/migratable_resource.proto b/protos/google/cloud/aiplatform/v1beta1/migratable_resource.proto index 41110502..ace0c473 100644 --- a/protos/google/cloud/aiplatform/v1beta1/migratable_resource.proto +++ b/protos/google/cloud/aiplatform/v1beta1/migratable_resource.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. @@ -100,7 +100,6 @@ message MigratableResource { message DataLabelingAnnotatedDataset { // Full resource name of data labeling AnnotatedDataset. // Format: - // // `projects/{project}/datasets/{dataset}/annotatedDatasets/{annotated_dataset}`. string annotated_dataset = 1 [(google.api.resource_reference) = { type: "datalabeling.googleapis.com/AnnotatedDataset" @@ -139,8 +138,9 @@ message MigratableResource { DataLabelingDataset data_labeling_dataset = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; } - // Output only. Timestamp when last migrate attempt on this MigratableResource started. - // Will not be set if there's no migrate attempt on this MigratableResource. + // Output only. Timestamp when the last migration attempt on this MigratableResource + // started. Will not be set if there's no migration attempt on this + // MigratableResource. google.protobuf.Timestamp last_migrate_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Timestamp when this MigratableResource was last updated. diff --git a/protos/google/cloud/aiplatform/v1beta1/migration_service.proto b/protos/google/cloud/aiplatform/v1beta1/migration_service.proto index e96f96e2..d7cc6f3d 100644 --- a/protos/google/cloud/aiplatform/v1beta1/migration_service.proto +++ b/protos/google/cloud/aiplatform/v1beta1/migration_service.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. @@ -93,7 +93,7 @@ message SearchMigratableResourcesRequest { // * `data_labeling_dataset:*`. // * Migrated or not: Filter migrated resource or not by last_migrate_time. // * `last_migrate_time:*` will filter migrated resources. - // * `NOT last_migrate_time:*` will filter not yet migrated resource. + // * `NOT last_migrate_time:*` will filter not yet migrated resources. string filter = 4; } @@ -201,7 +201,6 @@ message MigrateResourceRequest { message MigrateDataLabelingAnnotatedDatasetConfig { // Required. Full resource name of data labeling AnnotatedDataset. // Format: - // // `projects/{project}/datasets/{dataset}/annotatedDatasets/{annotated_dataset}`. string annotated_dataset = 1 [ (google.api.field_behavior) = REQUIRED, @@ -277,7 +276,7 @@ message MigrateResourceResponse { // Runtime operation information for [MigrationService.BatchMigrateResources][google.cloud.aiplatform.v1beta1.MigrationService.BatchMigrateResources]. message BatchMigrateResourcesOperationMetadata { - // Represents a partial result in batch migration opreation for one + // Represents a partial result in batch migration operation for one // [MigrateResourceRequest][google.cloud.aiplatform.v1beta1.MigrateResourceRequest]. message PartialResult { // If the resource's migration is ongoing, none of the result will be set. @@ -306,6 +305,6 @@ message BatchMigrateResourcesOperationMetadata { // The common part of the operation metadata. GenericOperationMetadata generic_metadata = 1; - // Partial results that reflects the latest migration operation progress. + // Partial results that reflect the latest migration operation progress. repeated PartialResult partial_results = 2; } diff --git a/protos/google/cloud/aiplatform/v1beta1/model.proto b/protos/google/cloud/aiplatform/v1beta1/model.proto index e69027e9..4710d4fe 100644 --- a/protos/google/cloud/aiplatform/v1beta1/model.proto +++ b/protos/google/cloud/aiplatform/v1beta1/model.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. @@ -39,7 +39,7 @@ message Model { pattern: "projects/{project}/locations/{location}/models/{model}" }; - // Represents a supported by the Model export format. + // Represents export format supported by the Model. // All formats export to Google Cloud Storage. message ExportFormat { // The Model content that can be exported. @@ -121,7 +121,7 @@ message Model { // The schema is defined as an OpenAPI 3.0.2 // [Schema Object](https://tinyurl.com/y538mdwt#schema-object). // AutoML Models always have this field populated by AI Platform, if no - // additional metadata is needed this field is set to an empty string. + // additional metadata is needed, this field is set to an empty string. // Note: The URI given on output will be immutable and probably different, // including the URI scheme, than the one given on input. The output URI will // point to a location where the user only has a read access. @@ -257,15 +257,24 @@ message Model { // // The Model can be used for [requesting // explanation][PredictionService.Explain] after being - // [deployed][google.cloud.aiplatform.v1beta1.EndpointService.DeployModel] iff it is populated. + // [deployed][google.cloud.aiplatform.v1beta1.EndpointService.DeployModel] if it is populated. // The Model can be used for [batch - // explanation][BatchPredictionJob.generate_explanation] iff it is populated. + // explanation][BatchPredictionJob.generate_explanation] if it is populated. // // All fields of the explanation_spec can be overridden by // [explanation_spec][google.cloud.aiplatform.v1beta1.DeployedModel.explanation_spec] of // [DeployModelRequest.deployed_model][google.cloud.aiplatform.v1beta1.DeployModelRequest.deployed_model], or // [explanation_spec][google.cloud.aiplatform.v1beta1.BatchPredictionJob.explanation_spec] of // [BatchPredictionJob][google.cloud.aiplatform.v1beta1.BatchPredictionJob]. + // + // If the default explanation specification is not set for this Model, this + // Model can still be used for [requesting + // explanation][PredictionService.Explain] by setting + // [explanation_spec][google.cloud.aiplatform.v1beta1.DeployedModel.explanation_spec] of + // [DeployModelRequest.deployed_model][google.cloud.aiplatform.v1beta1.DeployModelRequest.deployed_model] and for [batch + // explanation][BatchPredictionJob.generate_explanation] by setting + // [explanation_spec][google.cloud.aiplatform.v1beta1.BatchPredictionJob.explanation_spec] of + // [BatchPredictionJob][google.cloud.aiplatform.v1beta1.BatchPredictionJob]. ExplanationSpec explanation_spec = 23; // Used to perform consistent read-modify-write updates. If not set, a blind @@ -309,7 +318,7 @@ message PredictSchemata { // The schema is defined as an OpenAPI 3.0.2 // [Schema Object](https://tinyurl.com/y538mdwt#schema-object). // AutoML Models always have this field populated by AI Platform, if no - // parameters are supported it is set to an empty string. + // parameters are supported, then it is set to an empty string. // Note: The URI given on output will be immutable and probably different, // including the URI scheme, than the one given on input. The output URI will // point to a location where the user only has a read access. @@ -344,6 +353,10 @@ message ModelContainerSpec { // // To learn about the requirements for the Docker image itself, see // [Custom container requirements](https://tinyurl.com/cust-cont-reqs). + // + // You can use the URI to one of AI Platform's [pre-built container images for + // prediction](https://cloud.google.com/ai-platform-unified/docs/predictions/pre-built-containers) + // in this field. string image_uri = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.field_behavior) = IMMUTABLE @@ -502,7 +515,7 @@ message ModelContainerSpec { // variable](https://tinyurl.com/cust-cont-reqs#aip-variables).) string predict_route = 6 [(google.api.field_behavior) = IMMUTABLE]; - // Immutable. HTTP path on the container to send health checkss to. AI Platform + // Immutable. HTTP path on the container to send health checks to. AI Platform // intermittently sends GET requests to this path on the container's IP // address and port to check that the container is healthy. Read more about // [health diff --git a/protos/google/cloud/aiplatform/v1beta1/model_evaluation.proto b/protos/google/cloud/aiplatform/v1beta1/model_evaluation.proto index d91d4b18..5a4e5285 100644 --- a/protos/google/cloud/aiplatform/v1beta1/model_evaluation.proto +++ b/protos/google/cloud/aiplatform/v1beta1/model_evaluation.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. diff --git a/protos/google/cloud/aiplatform/v1beta1/model_evaluation_slice.proto b/protos/google/cloud/aiplatform/v1beta1/model_evaluation_slice.proto index a0c0b89c..f562272e 100644 --- a/protos/google/cloud/aiplatform/v1beta1/model_evaluation_slice.proto +++ b/protos/google/cloud/aiplatform/v1beta1/model_evaluation_slice.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. diff --git a/protos/google/cloud/aiplatform/v1beta1/model_service.proto b/protos/google/cloud/aiplatform/v1beta1/model_service.proto index 219ed2f9..4f746447 100644 --- a/protos/google/cloud/aiplatform/v1beta1/model_service.proto +++ b/protos/google/cloud/aiplatform/v1beta1/model_service.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. @@ -325,7 +325,6 @@ message ExportModelResponse { message GetModelEvaluationRequest { // Required. The name of the ModelEvaluation resource. // Format: - // // `projects/{project}/locations/{location}/models/{model}/evaluations/{evaluation}` string name = 1 [ (google.api.field_behavior) = REQUIRED, @@ -376,7 +375,6 @@ message ListModelEvaluationsResponse { message GetModelEvaluationSliceRequest { // Required. The name of the ModelEvaluationSlice resource. // Format: - // // `projects/{project}/locations/{location}/models/{model}/evaluations/{evaluation}/slices/{slice}` string name = 1 [ (google.api.field_behavior) = REQUIRED, @@ -390,7 +388,6 @@ message GetModelEvaluationSliceRequest { message ListModelEvaluationSlicesRequest { // Required. The resource name of the ModelEvaluation to list the ModelEvaluationSlices // from. Format: - // // `projects/{project}/locations/{location}/models/{model}/evaluations/{evaluation}` string parent = 1 [ (google.api.field_behavior) = REQUIRED, diff --git a/protos/google/cloud/aiplatform/v1beta1/operation.proto b/protos/google/cloud/aiplatform/v1beta1/operation.proto index 123e9909..89702b86 100644 --- a/protos/google/cloud/aiplatform/v1beta1/operation.proto +++ b/protos/google/cloud/aiplatform/v1beta1/operation.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. diff --git a/protos/google/cloud/aiplatform/v1beta1/pipeline_service.proto b/protos/google/cloud/aiplatform/v1beta1/pipeline_service.proto index 31b7e387..81597a0a 100644 --- a/protos/google/cloud/aiplatform/v1beta1/pipeline_service.proto +++ b/protos/google/cloud/aiplatform/v1beta1/pipeline_service.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. @@ -111,7 +111,6 @@ message CreateTrainingPipelineRequest { message GetTrainingPipelineRequest { // Required. The name of the TrainingPipeline resource. // Format: - // // `projects/{project}/locations/{location}/trainingPipelines/{training_pipeline}` string name = 1 [ (google.api.field_behavior) = REQUIRED, @@ -168,7 +167,7 @@ message ListTrainingPipelinesResponse { // List of TrainingPipelines in the requested page. repeated TrainingPipeline training_pipelines = 1; - // A token to retrieve next page of results. + // A token to retrieve the next page of results. // Pass to [ListTrainingPipelinesRequest.page_token][google.cloud.aiplatform.v1beta1.ListTrainingPipelinesRequest.page_token] to obtain that page. string next_page_token = 2; } @@ -177,7 +176,6 @@ message ListTrainingPipelinesResponse { message DeleteTrainingPipelineRequest { // Required. The name of the TrainingPipeline resource to be deleted. // Format: - // // `projects/{project}/locations/{location}/trainingPipelines/{training_pipeline}` string name = 1 [ (google.api.field_behavior) = REQUIRED, @@ -191,7 +189,6 @@ message DeleteTrainingPipelineRequest { message CancelTrainingPipelineRequest { // Required. The name of the TrainingPipeline to cancel. // Format: - // // `projects/{project}/locations/{location}/trainingPipelines/{training_pipeline}` string name = 1 [ (google.api.field_behavior) = REQUIRED, diff --git a/protos/google/cloud/aiplatform/v1beta1/pipeline_state.proto b/protos/google/cloud/aiplatform/v1beta1/pipeline_state.proto index 8c0f20b3..ae0c4d39 100644 --- a/protos/google/cloud/aiplatform/v1beta1/pipeline_state.proto +++ b/protos/google/cloud/aiplatform/v1beta1/pipeline_state.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. diff --git a/protos/google/cloud/aiplatform/v1beta1/prediction_service.proto b/protos/google/cloud/aiplatform/v1beta1/prediction_service.proto index d20ed389..29e123d3 100644 --- a/protos/google/cloud/aiplatform/v1beta1/prediction_service.proto +++ b/protos/google/cloud/aiplatform/v1beta1/prediction_service.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. diff --git a/protos/google/cloud/aiplatform/v1beta1/specialist_pool.proto b/protos/google/cloud/aiplatform/v1beta1/specialist_pool.proto index fe3ca942..10863d09 100644 --- a/protos/google/cloud/aiplatform/v1beta1/specialist_pool.proto +++ b/protos/google/cloud/aiplatform/v1beta1/specialist_pool.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. diff --git a/protos/google/cloud/aiplatform/v1beta1/specialist_pool_service.proto b/protos/google/cloud/aiplatform/v1beta1/specialist_pool_service.proto index 606e55d6..e6d95210 100644 --- a/protos/google/cloud/aiplatform/v1beta1/specialist_pool_service.proto +++ b/protos/google/cloud/aiplatform/v1beta1/specialist_pool_service.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. @@ -121,7 +121,6 @@ message CreateSpecialistPoolOperationMetadata { message GetSpecialistPoolRequest { // Required. The name of the SpecialistPool resource. // The form is - // // `projects/{project}/locations/{location}/specialistPools/{specialist_pool}`. string name = 1 [ (google.api.field_behavior) = REQUIRED, @@ -195,7 +194,6 @@ message UpdateSpecialistPoolRequest { message UpdateSpecialistPoolOperationMetadata { // Output only. The name of the SpecialistPool to which the specialists are being added. // Format: - // // `projects/{project_id}/locations/{location_id}/specialistPools/{specialist_pool}` string specialist_pool = 1 [ (google.api.field_behavior) = OUTPUT_ONLY, diff --git a/protos/google/cloud/aiplatform/v1beta1/study.proto b/protos/google/cloud/aiplatform/v1beta1/study.proto index 2d0a8f87..6f116fc5 100644 --- a/protos/google/cloud/aiplatform/v1beta1/study.proto +++ b/protos/google/cloud/aiplatform/v1beta1/study.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. @@ -29,6 +29,50 @@ option java_multiple_files = true; option java_outer_classname = "StudyProto"; option java_package = "com.google.cloud.aiplatform.v1beta1"; +// A message representing a Study. +message Study { + option (google.api.resource) = { + type: "aiplatform.googleapis.com/Study" + pattern: "projects/{project}/locations/{location}/studies/{study}" + }; + + // Describes the Study state. + enum State { + // The study state is unspecified. + STATE_UNSPECIFIED = 0; + + // The study is active. + ACTIVE = 1; + + // The study is stopped due to an internal error. + INACTIVE = 2; + + // The study is done when the service exhausts the parameter search space + // or max_trial_count is reached. + COMPLETED = 3; + } + + // Output only. The name of a study. The study's globally unique identifier. + // Format: `projects/{project}/locations/{location}/studies/{study}` + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Describes the Study, default value is empty string. + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Configuration of the Study. + StudySpec study_spec = 3 [(google.api.field_behavior) = REQUIRED]; + + // Output only. The detailed state of a Study. + State state = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time at which the study was created. + google.protobuf.Timestamp create_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A human readable reason why the Study is inactive. + // This should be empty if a study is ACTIVE or COMPLETED. + string inactive_reason = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + // A message representing a Trial. A Trial contains a unique set of Parameters // that has been or will be evaluated, along with the objective metrics got by // running the Trial. @@ -76,6 +120,9 @@ message Trial { INFEASIBLE = 5; } + // Output only. Resource name of the Trial assigned by the service. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. The identifier of the Trial assigned by the service. string id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -258,6 +305,68 @@ message StudySpec { repeated ConditionalParameterSpec conditional_parameter_specs = 10; } + // 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. + message DecayCurveAutomatedStoppingSpec { + // True if [Measurement.elapsed_duration][google.cloud.aiplatform.v1beta1.Measurement.elapsed_duration] is used as the x-axis of each + // Trials Decay Curve. Otherwise, [Measurement.step_count][google.cloud.aiplatform.v1beta1.Measurement.step_count] will be used + // as the x-axis. + bool use_elapsed_duration = 1; + } + + // 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. + message MedianAutomatedStoppingSpec { + // True if median automated stopping rule applies on + // [Measurement.elapsed_duration][google.cloud.aiplatform.v1beta1.Measurement.elapsed_duration]. It means that elapsed_duration + // field of latest measurement of current Trial is used to compute median + // objective value for each completed Trials. + bool use_elapsed_duration = 1; + } + + // Configuration for ConvexStopPolicy. + message ConvexStopConfig { + // 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. + int64 max_num_steps = 1; + + // Minimum number of steps for a trial to complete. Trials which do not have + // a measurement with num_steps > min_num_steps 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, min_num_steps is set to be one-tenth of the + // max_num_steps. + // When use_steps is false, this field is set to the minimum elapsed + // seconds. + int64 min_num_steps = 2; + + // 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. + int64 autoregressive_order = 3; + + // 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. + string learning_rate_parameter_name = 4; + + // This bool determines whether or not the rule is applied based on + // elapsed_secs or steps. If use_seconds==false, the early stopping decision + // is made according to the predicted objective values according to the + // target steps. If use_seconds==true, elapsed_secs is used instead of + // steps. Also, in this case, the parameters max_num_steps and min_num_steps + // are overloaded to contain max_elapsed_seconds and min_elapsed_seconds. + bool use_seconds = 5; + } + // The available search algorithms for the Study. enum Algorithm { // The default algorithm used by AI Platform Optimization service. @@ -313,6 +422,17 @@ message StudySpec { BEST_MEASUREMENT = 2; } + oneof automated_stopping_spec { + // The automated early stopping spec using decay curve rule. + DecayCurveAutomatedStoppingSpec decay_curve_stopping_spec = 4; + + // The automated early stopping spec using median rule. + MedianAutomatedStoppingSpec median_automated_stopping_spec = 5; + + // The automated early stopping using convex stopping rule. + ConvexStopConfig convex_stop_config = 8; + } + // Required. Metric specs for the Study. repeated MetricSpec metrics = 1 [(google.api.field_behavior) = REQUIRED]; diff --git a/protos/google/cloud/aiplatform/v1beta1/training_pipeline.proto b/protos/google/cloud/aiplatform/v1beta1/training_pipeline.proto index 26568518..182bb7cb 100644 --- a/protos/google/cloud/aiplatform/v1beta1/training_pipeline.proto +++ b/protos/google/cloud/aiplatform/v1beta1/training_pipeline.proto @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// 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. @@ -188,15 +188,12 @@ message InputDataConfig { // // * AIP_DATA_FORMAT = "jsonl" for non-tabular data, "csv" for tabular data // * AIP_TRAINING_DATA_URI = - // // "gcs_destination/dataset---