feat: add encryption_spec to aiplatform v1beta1

PiperOrigin-RevId: 354148500
pull/704/head
Google APIs 4 years ago committed by Copybara-Service
parent 1e6bff6851
commit d99d5d592f
  1. 2
      google/cloud/aiplatform/v1beta1/BUILD.bazel
  2. 7
      google/cloud/aiplatform/v1beta1/aiplatform_v1beta1.yaml
  3. 39
      google/cloud/aiplatform/v1beta1/batch_prediction_job.proto
  4. 41
      google/cloud/aiplatform/v1beta1/custom_job.proto
  5. 12
      google/cloud/aiplatform/v1beta1/data_labeling_job.proto
  6. 5
      google/cloud/aiplatform/v1beta1/dataset.proto
  7. 20
      google/cloud/aiplatform/v1beta1/dataset_service.proto
  8. 36
      google/cloud/aiplatform/v1beta1/encryption_spec.proto
  9. 8
      google/cloud/aiplatform/v1beta1/endpoint.proto
  10. 14
      google/cloud/aiplatform/v1beta1/endpoint_service.proto
  11. 4
      google/cloud/aiplatform/v1beta1/env_var.proto
  12. 80
      google/cloud/aiplatform/v1beta1/explanation.proto
  13. 4
      google/cloud/aiplatform/v1beta1/explanation_metadata.proto
  14. 6
      google/cloud/aiplatform/v1beta1/hyperparameter_tuning_job.proto
  15. 10
      google/cloud/aiplatform/v1beta1/io.proto
  16. 2
      google/cloud/aiplatform/v1beta1/job_service.proto
  17. 42
      google/cloud/aiplatform/v1beta1/machine_resources.proto
  18. 1
      google/cloud/aiplatform/v1beta1/migratable_resource.proto
  19. 41
      google/cloud/aiplatform/v1beta1/migration_service.proto
  20. 37
      google/cloud/aiplatform/v1beta1/model.proto
  21. 17
      google/cloud/aiplatform/v1beta1/model_evaluation.proto
  22. 31
      google/cloud/aiplatform/v1beta1/model_service.proto
  23. 10
      google/cloud/aiplatform/v1beta1/prediction_service.proto
  24. 56
      google/cloud/aiplatform/v1beta1/study.proto
  25. 62
      google/cloud/aiplatform/v1beta1/training_pipeline.proto

@ -32,6 +32,7 @@ proto_library(
"dataset.proto", "dataset.proto",
"dataset_service.proto", "dataset_service.proto",
"deployed_model_ref.proto", "deployed_model_ref.proto",
"encryption_spec.proto",
"endpoint.proto", "endpoint.proto",
"endpoint_service.proto", "endpoint_service.proto",
"env_var.proto", "env_var.proto",
@ -72,6 +73,7 @@ proto_library(
"@com_google_protobuf//:field_mask_proto", "@com_google_protobuf//:field_mask_proto",
"@com_google_protobuf//:struct_proto", "@com_google_protobuf//:struct_proto",
"@com_google_protobuf//:timestamp_proto", "@com_google_protobuf//:timestamp_proto",
"@com_google_protobuf//:wrappers_proto",
] + _PROTO_SUBPACKAGE_DEPS, ] + _PROTO_SUBPACKAGE_DEPS,
) )

@ -34,11 +34,14 @@ types:
- name: google.cloud.aiplatform.v1beta1.UpdateSpecialistPoolOperationMetadata - name: google.cloud.aiplatform.v1beta1.UpdateSpecialistPoolOperationMetadata
- name: google.cloud.aiplatform.v1beta1.UploadModelOperationMetadata - name: google.cloud.aiplatform.v1beta1.UploadModelOperationMetadata
- name: google.cloud.aiplatform.v1beta1.UploadModelResponse - name: google.cloud.aiplatform.v1beta1.UploadModelResponse
- name: google.cloud.aiplatform.v1beta1.schema.ImageDataItem
- name: google.cloud.aiplatform.v1beta1.schema.TextDataItem
- name: google.cloud.aiplatform.v1beta1.schema.VideoDataItem
documentation: documentation:
summary: |- summary: |-
Train high-quality custom machine learning models with minimum effort and Train high-quality custom machine learning models with minimal machine
machine learning expertise. learning expertise and effort.
overview: |- overview: |-
AI Platform (Unified) enables data scientists, developers, and AI newcomers AI Platform (Unified) enables data scientists, developers, and AI newcomers
to create custom machine learning models specific to their business needs to create custom machine learning models specific to their business needs

@ -19,6 +19,7 @@ package google.cloud.aiplatform.v1beta1;
import "google/api/field_behavior.proto"; import "google/api/field_behavior.proto";
import "google/api/resource.proto"; import "google/api/resource.proto";
import "google/cloud/aiplatform/v1beta1/completion_stats.proto"; import "google/cloud/aiplatform/v1beta1/completion_stats.proto";
import "google/cloud/aiplatform/v1beta1/encryption_spec.proto";
import "google/cloud/aiplatform/v1beta1/explanation.proto"; import "google/cloud/aiplatform/v1beta1/explanation.proto";
import "google/cloud/aiplatform/v1beta1/io.proto"; import "google/cloud/aiplatform/v1beta1/io.proto";
import "google/cloud/aiplatform/v1beta1/job_state.proto"; import "google/cloud/aiplatform/v1beta1/job_state.proto";
@ -50,7 +51,7 @@ message BatchPredictionJob {
message InputConfig { message InputConfig {
// Required. The source of the input. // Required. The source of the input.
oneof source { oneof source {
// The Google Cloud Storage location for the input instances. // The Cloud Storage location for the input instances.
GcsSource gcs_source = 2; GcsSource gcs_source = 2;
// The BigQuery location of the input table. // The BigQuery location of the input table.
@ -73,7 +74,7 @@ message BatchPredictionJob {
message OutputConfig { message OutputConfig {
// Required. The destination of the output. // Required. The destination of the output.
oneof destination { oneof destination {
// The Google Cloud Storage location of the directory where the output is // The Cloud Storage location of the directory where the output is
// to be written to. In the given directory a new directory is created. // to be written to. In the given directory a new directory is created.
// Its name is `prediction-<model-display-name>-<job-create-time>`, // Its name is `prediction-<model-display-name>-<job-create-time>`,
// where timestamp is in YYYY-MM-DDThh:mm:ss.sssZ ISO-8601 format. // where timestamp is in YYYY-MM-DDThh:mm:ss.sssZ ISO-8601 format.
@ -129,7 +130,7 @@ message BatchPredictionJob {
message OutputInfo { message OutputInfo {
// The output location into which prediction output is written. // The output location into which prediction output is written.
oneof output_location { oneof output_location {
// Output only. The full path of the Google Cloud Storage directory created, into which // Output only. The full path of the Cloud Storage directory created, into which
// the prediction output is written. // the prediction output is written.
string gcs_output_directory = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; string gcs_output_directory = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
@ -192,29 +193,30 @@ message BatchPredictionJob {
// the tuning itself). // the tuning itself).
ManualBatchTuningParameters manual_batch_tuning_parameters = 8 [(google.api.field_behavior) = IMMUTABLE]; ManualBatchTuningParameters manual_batch_tuning_parameters = 8 [(google.api.field_behavior) = IMMUTABLE];
// Generate explanation along with the batch prediction results. // Generate explanation with the batch prediction results.
// //
// When it's true, the batch prediction output will change based on the // When set to `true`, the batch prediction output changes based on the
// [output format][BatchPredictionJob.output_config.predictions_format]: // `predictions_format` field of the
// [BatchPredictionJob.output_config][google.cloud.aiplatform.v1beta1.BatchPredictionJob.output_config] object:
// //
// * `bigquery`: output will include a column named `explanation`. The value // * `bigquery`: output includes a column named `explanation`. The value
// is a struct that conforms to the [Explanation][google.cloud.aiplatform.v1beta1.Explanation] object. // is a struct that conforms to the [Explanation][google.cloud.aiplatform.v1beta1.Explanation] object.
// * `jsonl`: The JSON objects on each line will include an additional entry // * `jsonl`: The JSON objects on each line include an additional entry
// keyed `explanation`. The value of the entry is a JSON object that // keyed `explanation`. The value of the entry is a JSON object that
// conforms to the [Explanation][google.cloud.aiplatform.v1beta1.Explanation] object. // conforms to the [Explanation][google.cloud.aiplatform.v1beta1.Explanation] object.
// * `csv`: Generating explanations for CSV format is not supported. // * `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.
bool generate_explanation = 23; bool generate_explanation = 23;
// Explanation configuration for this BatchPredictionJob. Can only be // Explanation configuration for this BatchPredictionJob. Can be
// specified if [generate_explanation][google.cloud.aiplatform.v1beta1.BatchPredictionJob.generate_explanation] is set to `true`. It's invalid to // specified only if [generate_explanation][google.cloud.aiplatform.v1beta1.BatchPredictionJob.generate_explanation] is set to `true`.
// specified it with generate_explanation set to false or unset.
// //
// This value overrides the value of [Model.explanation_spec][google.cloud.aiplatform.v1beta1.Model.explanation_spec]. All fields of // This value overrides the value of [Model.explanation_spec][google.cloud.aiplatform.v1beta1.Model.explanation_spec]. All fields of
// [explanation_spec][google.cloud.aiplatform.v1beta1.BatchPredictionJob.explanation_spec] are optional in the request. If a field of // [explanation_spec][google.cloud.aiplatform.v1beta1.BatchPredictionJob.explanation_spec] are optional in the request. If a field of the
// [explanation_spec][google.cloud.aiplatform.v1beta1.BatchPredictionJob.explanation_spec] is not populated, the value of the same field of // [explanation_spec][google.cloud.aiplatform.v1beta1.BatchPredictionJob.explanation_spec] object is not populated, the corresponding field of
// [Model.explanation_spec][google.cloud.aiplatform.v1beta1.Model.explanation_spec] is inherited. The corresponding // the [Model.explanation_spec][google.cloud.aiplatform.v1beta1.Model.explanation_spec] object is inherited.
// [Model.explanation_spec][google.cloud.aiplatform.v1beta1.Model.explanation_spec] must be populated, otherwise explanation for
// this Model is not allowed.
ExplanationSpec explanation_spec = 25; ExplanationSpec explanation_spec = 25;
// Output only. Information further describing the output of this job. // Output only. Information further describing the output of this job.
@ -266,4 +268,9 @@ message BatchPredictionJob {
// //
// See https://goo.gl/xmQnxf for more information and examples of labels. // See https://goo.gl/xmQnxf for more information and examples of labels.
map<string, string> labels = 19; map<string, string> labels = 19;
// Customer-managed encryption key options for a BatchPredictionJob. If this
// is set, then all resources created by the BatchPredictionJob will be
// encrypted with the provided encryption key.
EncryptionSpec encryption_spec = 24;
} }

@ -18,6 +18,7 @@ package google.cloud.aiplatform.v1beta1;
import "google/api/field_behavior.proto"; import "google/api/field_behavior.proto";
import "google/api/resource.proto"; import "google/api/resource.proto";
import "google/cloud/aiplatform/v1beta1/encryption_spec.proto";
import "google/cloud/aiplatform/v1beta1/env_var.proto"; import "google/cloud/aiplatform/v1beta1/env_var.proto";
import "google/cloud/aiplatform/v1beta1/io.proto"; import "google/cloud/aiplatform/v1beta1/io.proto";
import "google/cloud/aiplatform/v1beta1/job_state.proto"; import "google/cloud/aiplatform/v1beta1/job_state.proto";
@ -82,6 +83,11 @@ message CustomJob {
// //
// See https://goo.gl/xmQnxf for more information and examples of labels. // See https://goo.gl/xmQnxf for more information and examples of labels.
map<string, string> labels = 11; map<string, string> labels = 11;
// Customer-managed encryption key options for a CustomJob. If this is set,
// then all resources created by the CustomJob will be encrypted with the
// provided encryption key.
EncryptionSpec encryption_spec = 12;
} }
// Represents the spec of a CustomJob. // Represents the spec of a CustomJob.
@ -94,39 +100,40 @@ message CustomJobSpec {
// Specifies the service account for workload run-as account. // Specifies the service account for workload run-as account.
// Users submitting jobs must have act-as permission on this run-as account. // Users submitting jobs must have act-as permission on this run-as account.
// If unspecified, the AI Platform Custom Code Service Agent for the
// CustomJob's project is used.
string service_account = 4; string service_account = 4;
// The full name of the Compute Engine // The full name of the Compute Engine
// [network](/compute/docs/networks-and-firewalls#networks) to which the Job // [network](/compute/docs/networks-and-firewalls#networks) to which the Job
// should be peered. For example, projects/12345/global/networks/myVPC. // should be peered. For example, `projects/12345/global/networks/myVPC`.
// // [Format](/compute/docs/reference/rest/v1/networks/insert)
// [Format](https: // is of the form `projects/{project}/global/networks/{network}`.
// //cloud.google.com/compute/docs/reference/rest/v1/networks/insert) // Where {project} is a project number, as in `12345`, and {network} is a
// is of the form projects/{project}/global/networks/{network}.
// Where {project} is a project number, as in '12345', and {network} is
// network name. // network name.
// //
// Private services access must already be configured for the network. If left // Private services access must already be configured for the network. If left
// unspecified, the job is not peered with any network. // unspecified, the job is not peered with any network.
string network = 5; string network = 5;
// The Google Cloud Storage location to store the output of this CustomJob or // The Cloud Storage location to store the output of this CustomJob or
// HyperparameterTuningJob. For HyperparameterTuningJob, // HyperparameterTuningJob. For HyperparameterTuningJob,
// [base_output_directory][CustomJob.job_spec.base_output_directory] of // the baseOutputDirectory of
// each child CustomJob backing a Trial is set to a subdirectory of name // each child CustomJob backing a Trial is set to a subdirectory of name
// [id][google.cloud.aiplatform.v1beta1.Trial.id] under parent HyperparameterTuningJob's // [id][google.cloud.aiplatform.v1beta1.Trial.id] under its parent HyperparameterTuningJob's
// // baseOutputDirectory.
// [base_output_directory][HyperparameterTuningJob.trial_job_spec.base_output_directory].
// //
// Following AI Platform environment variables will be passed to containers or // The following AI Platform environment variables will be passed to
// python modules when this field is set: // containers or python modules when this field is set:
// //
// For CustomJob: // For CustomJob:
//
// * AIP_MODEL_DIR = `<base_output_directory>/model/` // * AIP_MODEL_DIR = `<base_output_directory>/model/`
// * AIP_CHECKPOINT_DIR = `<base_output_directory>/checkpoints/` // * AIP_CHECKPOINT_DIR = `<base_output_directory>/checkpoints/`
// * AIP_TENSORBOARD_LOG_DIR = `<base_output_directory>/logs/` // * AIP_TENSORBOARD_LOG_DIR = `<base_output_directory>/logs/`
// //
// For CustomJob backing a Trial of HyperparameterTuningJob: // For CustomJob backing a Trial of HyperparameterTuningJob:
//
// * AIP_MODEL_DIR = `<base_output_directory>/<trial_id>/model/` // * AIP_MODEL_DIR = `<base_output_directory>/<trial_id>/model/`
// * AIP_CHECKPOINT_DIR = `<base_output_directory>/<trial_id>/checkpoints/` // * AIP_CHECKPOINT_DIR = `<base_output_directory>/<trial_id>/checkpoints/`
// * AIP_TENSORBOARD_LOG_DIR = `<base_output_directory>/<trial_id>/logs/` // * AIP_TENSORBOARD_LOG_DIR = `<base_output_directory>/<trial_id>/logs/`
@ -144,14 +151,14 @@ message WorkerPoolSpec {
PythonPackageSpec python_package_spec = 7; PythonPackageSpec python_package_spec = 7;
} }
// Required. Immutable. The specification of a single machine. // Optional. Immutable. The specification of a single machine.
MachineSpec machine_spec = 1 [ MachineSpec machine_spec = 1 [
(google.api.field_behavior) = REQUIRED, (google.api.field_behavior) = OPTIONAL,
(google.api.field_behavior) = IMMUTABLE (google.api.field_behavior) = IMMUTABLE
]; ];
// Required. The number of worker replicas to use for this worker pool. // Optional. The number of worker replicas to use for this worker pool.
int64 replica_count = 2 [(google.api.field_behavior) = REQUIRED]; int64 replica_count = 2 [(google.api.field_behavior) = OPTIONAL];
// Disk spec. // Disk spec.
DiskSpec disk_spec = 5; DiskSpec disk_spec = 5;

@ -19,6 +19,7 @@ package google.cloud.aiplatform.v1beta1;
import "google/api/field_behavior.proto"; import "google/api/field_behavior.proto";
import "google/api/resource.proto"; import "google/api/resource.proto";
import "google/cloud/aiplatform/v1beta1/accelerator_type.proto"; import "google/cloud/aiplatform/v1beta1/accelerator_type.proto";
import "google/cloud/aiplatform/v1beta1/encryption_spec.proto";
import "google/cloud/aiplatform/v1beta1/job_state.proto"; import "google/cloud/aiplatform/v1beta1/job_state.proto";
import "google/cloud/aiplatform/v1beta1/specialist_pool.proto"; import "google/cloud/aiplatform/v1beta1/specialist_pool.proto";
import "google/protobuf/struct.proto"; import "google/protobuf/struct.proto";
@ -126,13 +127,20 @@ message DataLabelingJob {
// The SpecialistPools' resource names associated with this job. // The SpecialistPools' resource names associated with this job.
repeated string specialist_pools = 16; repeated string specialist_pools = 16;
// Paramaters that configure active learning pipeline. Active learning will // Customer-managed encryption key spec for a DataLabelingJob. If set, this
// DataLabelingJob will be secured by this key.
//
// Note: Annotations created in the DataLabelingJob are associated with
// 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, // label the data incrementally via several iterations. For every iteration,
// it will select a batch of data based on the sampling strategy. // it will select a batch of data based on the sampling strategy.
ActiveLearningConfig active_learning_config = 21; ActiveLearningConfig active_learning_config = 21;
} }
// Paramaters that configure active learning pipeline. Active learning will // Parameters that configure active learning pipeline. Active learning will
// label the data incrementally by several iterations. For every iteration, it // label the data incrementally by several iterations. For every iteration, it
// will select a batch of data based on the sampling strategy. // will select a batch of data based on the sampling strategy.
message ActiveLearningConfig { message ActiveLearningConfig {

@ -18,6 +18,7 @@ package google.cloud.aiplatform.v1beta1;
import "google/api/field_behavior.proto"; import "google/api/field_behavior.proto";
import "google/api/resource.proto"; import "google/api/resource.proto";
import "google/cloud/aiplatform/v1beta1/encryption_spec.proto";
import "google/cloud/aiplatform/v1beta1/io.proto"; import "google/cloud/aiplatform/v1beta1/io.proto";
import "google/protobuf/struct.proto"; import "google/protobuf/struct.proto";
import "google/protobuf/timestamp.proto"; import "google/protobuf/timestamp.proto";
@ -78,6 +79,10 @@ message Dataset {
// * "aiplatform.googleapis.com/dataset_metadata_schema": output only, its // * "aiplatform.googleapis.com/dataset_metadata_schema": output only, its
// value is the [metadata_schema's][google.cloud.aiplatform.v1beta1.Dataset.metadata_schema_uri] title. // value is the [metadata_schema's][google.cloud.aiplatform.v1beta1.Dataset.metadata_schema_uri] title.
map<string, string> labels = 7; map<string, string> labels = 7;
// Customer-managed encryption key spec for a Dataset. If set, this Dataset
// and all sub-resources of this Dataset will be secured by this key.
EncryptionSpec encryption_spec = 11;
} }
// Describes the location from where we import data into a Dataset, together // Describes the location from where we import data into a Dataset, together

@ -181,9 +181,7 @@ message UpdateDatasetRequest {
// Required. The update mask applies to the resource. // Required. The update mask applies to the resource.
// For the `FieldMask` definition, see // For the `FieldMask` definition, see
// // [FieldMask](https://tinyurl.com/protobufs/google.protobuf#fieldmask).
// [FieldMask](https:
// //tinyurl.com/dev-google-protobuf#google.protobuf.FieldMask).
// Updatable fields: // Updatable fields:
// //
// * `display_name` // * `display_name`
@ -203,7 +201,19 @@ message ListDatasetsRequest {
} }
]; ];
// The standard list filter. // An expression for filtering the results of the request. For field names
// both snake_case and camelCase are supported.
//
// * `display_name`: supports = and !=
// * `metadata_schema_uri`: supports = and !=
// * `labels` supports general map functions that is:
// * `labels.key=value` - key:value equality
// * `labels.key:* or labels:key - key existence
// * A key including a space must be quoted. `labels."a key"`.
//
// Some examples:
// * `displayName="myDisplayName"`
// * `labels.myKey="myValue"`
string filter = 2; string filter = 2;
// The standard list page size. // The standard list page size.
@ -219,7 +229,7 @@ message ListDatasetsRequest {
// Use "desc" after a field name for descending. // Use "desc" after a field name for descending.
// Supported fields: // Supported fields:
// * `display_name` // * `display_name`
// * `data_item_count` * `create_time` // * `create_time`
// * `update_time` // * `update_time`
string order_by = 6; string order_by = 6;
} }

@ -0,0 +1,36 @@
// Copyright 2020 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/field_behavior.proto";
import "google/api/annotations.proto";
option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform";
option java_multiple_files = true;
option java_outer_classname = "EncryptionSpecProto";
option java_package = "com.google.cloud.aiplatform.v1beta1";
// Represents a customer-managed encryption key spec that can be applied to
// a top-level resource.
message EncryptionSpec {
// Required. The Cloud KMS resource identifier of the customer managed encryption key
// used to protect a resource. Has the form:
// `projects/my-project/locations/my-region/keyRings/my-kr/cryptoKeys/my-key`.
// The key needs to be in the same region as where the compute resource is
// created.
string kms_key_name = 1 [(google.api.field_behavior) = REQUIRED];
}

@ -18,6 +18,7 @@ package google.cloud.aiplatform.v1beta1;
import "google/api/field_behavior.proto"; import "google/api/field_behavior.proto";
import "google/api/resource.proto"; import "google/api/resource.proto";
import "google/cloud/aiplatform/v1beta1/encryption_spec.proto";
import "google/cloud/aiplatform/v1beta1/explanation.proto"; import "google/cloud/aiplatform/v1beta1/explanation.proto";
import "google/cloud/aiplatform/v1beta1/machine_resources.proto"; import "google/cloud/aiplatform/v1beta1/machine_resources.proto";
import "google/protobuf/timestamp.proto"; import "google/protobuf/timestamp.proto";
@ -80,6 +81,11 @@ message Endpoint {
// Output only. Timestamp when this Endpoint was last updated. // Output only. Timestamp when this Endpoint was last updated.
google.protobuf.Timestamp update_time = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; google.protobuf.Timestamp update_time = 9 [(google.api.field_behavior) = OUTPUT_ONLY];
// Customer-managed encryption key spec for an Endpoint. If set, this
// Endpoint and all sub-resources of this Endpoint will be secured by
// this key.
EncryptionSpec encryption_spec = 10;
} }
// A deployment of a Model. Endpoints contain one or more DeployedModels. // A deployment of a Model. Endpoints contain one or more DeployedModels.
@ -141,7 +147,7 @@ message DeployedModel {
// If true, the container of the DeployedModel instances will send `stderr` // If true, the container of the DeployedModel instances will send `stderr`
// and `stdout` streams to Stackdriver Logging. // and `stdout` streams to Stackdriver Logging.
// //
// Only supported for custom-trained Models and AutoML Tables Models. // Only supported for custom-trained Models and AutoML Tabular Models.
bool enable_container_logging = 12; bool enable_container_logging = 12;
// These logs are like standard server access logs, containing // These logs are like standard server access logs, containing

@ -161,18 +161,16 @@ message ListEndpointsRequest {
// both snake_case and camelCase are supported. // both snake_case and camelCase are supported.
// //
// * `endpoint` supports = and !=. `endpoint` represents the Endpoint ID, // * `endpoint` supports = and !=. `endpoint` represents the Endpoint ID,
// ie. the last segment of the Endpoint's [resource name][google.cloud.aiplatform.v1beta1.Endpoint.name]. // i.e. the last segment of the Endpoint's [resource name][google.cloud.aiplatform.v1beta1.Endpoint.name].
// * `display_name` supports =, != and regex() // * `display_name` supports = and, !=
// (uses [re2](https://github.com/google/re2/wiki/Syntax) syntax)
// * `labels` supports general map functions that is: // * `labels` supports general map functions that is:
// `labels.key=value` - key:value equality // * `labels.key=value` - key:value equality
// `labels.key:* or labels:key - key existence // * `labels.key:* or labels:key - key existence
// A key including a space must be quoted. `labels."a key"`. // * A key including a space must be quoted. `labels."a key"`.
// //
// Some examples: // Some examples:
// * `endpoint=1` // * `endpoint=1`
// * `displayName="myDisplayName"` // * `displayName="myDisplayName"`
// * `regex(display_name, "^A") -> The display name starts with an A.
// * `labels.myKey="myValue"` // * `labels.myKey="myValue"`
string filter = 2 [(google.api.field_behavior) = OPTIONAL]; string filter = 2 [(google.api.field_behavior) = OPTIONAL];
@ -205,6 +203,8 @@ message UpdateEndpointRequest {
Endpoint endpoint = 1 [(google.api.field_behavior) = REQUIRED]; Endpoint endpoint = 1 [(google.api.field_behavior) = REQUIRED];
// Required. The update mask applies to the resource. // Required. The update mask applies to the resource.
// See
// [FieldMask](https://tinyurl.com/protobufs/google.protobuf#fieldmask).
google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED];
} }

@ -29,12 +29,12 @@ message EnvVar {
// Required. Name of the environment variable. Must be a valid C identifier. // Required. Name of the environment variable. Must be a valid C identifier.
string name = 1 [(google.api.field_behavior) = REQUIRED]; string name = 1 [(google.api.field_behavior) = REQUIRED];
// Variables that reference a $(VAR_NAME) are expanded // Required. Variables that reference a $(VAR_NAME) are expanded
// using the previous defined environment variables in the container and // using the previous defined environment variables in the container and
// any service environment variables. If a variable cannot be resolved, // any service environment variables. If a variable cannot be resolved,
// the reference in the input string will be unchanged. The $(VAR_NAME) // the reference in the input string will be unchanged. The $(VAR_NAME)
// syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped // syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped
// references will never be expanded, regardless of whether the variable // references will never be expanded, regardless of whether the variable
// exists or not. // exists or not.
string value = 2; string value = 2 [(google.api.field_behavior) = REQUIRED];
} }

@ -48,7 +48,7 @@ message Explanation {
// Aggregated explanation metrics for a Model over a set of instances. // Aggregated explanation metrics for a Model over a set of instances.
message ModelExplanation { message ModelExplanation {
// Output only. Aggregated attributions explaning the Model's prediction outputs over the // Output only. Aggregated attributions explaining the Model's prediction outputs over the
// set of instances. The attributions are grouped by outputs. // set of instances. The attributions are grouped by outputs.
// //
// For Models that predict only one output, such as regression Models that // For Models that predict only one output, such as regression Models that
@ -127,8 +127,8 @@ message Attribution {
// of the output vector. Indices start from 0. // of the output vector. Indices start from 0.
repeated int32 output_index = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; repeated int32 output_index = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The display name of the output identified by [output_index][google.cloud.aiplatform.v1beta1.Attribution.output_index], e.g. the // Output only. The display name of the output identified by [output_index][google.cloud.aiplatform.v1beta1.Attribution.output_index]. For example,
// predicted class name by a multi-classification Model. // the predicted class name by a multi-classification Model.
// //
// This field is only populated iff the Model predicts display names as a // This field is only populated iff the Model predicts display names as a
// separate field along with the explained output. The predicted display name // separate field along with the explained output. The predicted display name
@ -139,22 +139,20 @@ message Attribution {
// Output only. Error of [feature_attributions][google.cloud.aiplatform.v1beta1.Attribution.feature_attributions] caused by approximation used in the // Output only. Error of [feature_attributions][google.cloud.aiplatform.v1beta1.Attribution.feature_attributions] caused by approximation used in the
// explanation method. Lower value means more precise attributions. // explanation method. Lower value means more precise attributions.
// //
// * For [Sampled Shapley // * For Sampled Shapley
// attribution][ExplanationParameters.sampled_shapley_attribution], increasing // [attribution][google.cloud.aiplatform.v1beta1.ExplanationParameters.sampled_shapley_attribution],
// [path_count][google.cloud.aiplatform.v1beta1.SampledShapleyAttribution.path_count] may reduce the error. // increasing [path_count][google.cloud.aiplatform.v1beta1.SampledShapleyAttribution.path_count] might reduce
// * For [Integrated Gradients // the error.
// attribution][ExplanationParameters.integrated_gradients_attribution], // * For Integrated Gradients
// increasing [step_count][google.cloud.aiplatform.v1beta1.IntegratedGradientsAttribution.step_count] may // [attribution][google.cloud.aiplatform.v1beta1.ExplanationParameters.integrated_gradients_attribution],
// increasing [step_count][google.cloud.aiplatform.v1beta1.IntegratedGradientsAttribution.step_count] might
// reduce the error. // reduce the error.
// * For [XRAI // * For [XRAI attribution][google.cloud.aiplatform.v1beta1.ExplanationParameters.xrai_attribution],
// attribution][ExplanationParameters.xrai_attribution], increasing // increasing
// [step_count][google.cloud.aiplatform.v1beta1.XraiAttribution.step_count] may reduce the error. // [step_count][google.cloud.aiplatform.v1beta1.XraiAttribution.step_count] might reduce the error.
// //
// Refer to AI Explanations Whitepaper for more details: // See [this introduction](/ai-platform-unified/docs/explainable-ai/overview)
// // for more information.
// https:
// //storage.googleapis.com/cloud-ai-whitep
// // apers/AI%20Explainability%20Whitepaper.pdf
double approximation_error = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; double approximation_error = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Name of the explain output. Specified as the key in // Output only. Name of the explain output. Specified as the key in
@ -204,7 +202,7 @@ message ExplanationParameters {
int32 top_k = 4; int32 top_k = 4;
// If populated, only returns attributions that have // If populated, only returns attributions that have
// [output_index][Attributions.output_index] contained in output_indices. It // [output_index][google.cloud.aiplatform.v1beta1.Attribution.output_index] contained in output_indices. It
// must be an ndarray of integers, with the same shape of the output it's // must be an ndarray of integers, with the same shape of the output it's
// explaining. // explaining.
// //
@ -253,7 +251,7 @@ message IntegratedGradientsAttribution {
// differentiable structure. Refer to this paper for more details: // differentiable structure. Refer to this paper for more details:
// https://arxiv.org/abs/1906.02825 // https://arxiv.org/abs/1906.02825
// //
// Only supports image Models ([modality][InputMetadata.modality] is IMAGE). // Supported only by image Models.
message XraiAttribution { message XraiAttribution {
// Required. The number of steps for approximating the path integral. // Required. The number of steps for approximating the path integral.
// A good value to start is 50 and gradually increase until the // A good value to start is 50 and gradually increase until the
@ -285,12 +283,9 @@ message SmoothGradConfig {
// This is a single float value and will be used to add noise to all the // This is a single float value and will be used to add noise to all the
// features. Use this field when all features are normalized to have the // features. Use this field when all features are normalized to have the
// same distribution: scale to range [0, 1], [-1, 1] or z-scoring, where // same distribution: scale to range [0, 1], [-1, 1] or z-scoring, where
// features are normalized to have 0-mean and 1-variance. Refer to // features are normalized to have 0-mean and 1-variance. For more details
// this doc for more details about normalization: // about normalization:
// // https://tinyurl.com/dgc-normalization.
// https:
// //developers.google.com/machine-learning
// // /data-prep/transform/normalization.
// //
// For best results the recommended value is about 10% - 20% of the standard // For best results the recommended value is about 10% - 20% of the standard
// deviation of the input feature. Refer to section 3.2 of the SmoothGrad // deviation of the input feature. Refer to section 3.2 of the SmoothGrad
@ -338,3 +333,38 @@ message FeatureNoiseSigma {
// Noise sigma per feature. No noise is added to features that are not set. // Noise sigma per feature. No noise is added to features that are not set.
repeated NoiseSigmaForFeature noise_sigma = 1; repeated NoiseSigmaForFeature noise_sigma = 1;
} }
// The [ExplanationSpec][google.cloud.aiplatform.v1beta1.ExplanationSpec] entries that can be overridden at [online
// explanation][PredictionService.Explain][google.cloud.aiplatform.v1beta1.PredictionService.Explain] time.
message ExplanationSpecOverride {
// The parameters to be overridden. Note that the
// [method][google.cloud.aiplatform.v1beta1.ExplanationParameters.method] cannot be changed. If not specified,
// no parameter is overridden.
ExplanationParameters parameters = 1;
// The metadata to be overridden. If not specified, no metadata is overridden.
ExplanationMetadataOverride metadata = 2;
}
// The [ExplanationMetadata][google.cloud.aiplatform.v1beta1.ExplanationMetadata] entries that can be overridden at
// [online explanation][google.cloud.aiplatform.v1beta1.PredictionService.Explain] time.
message ExplanationMetadataOverride {
// The [input metadata][google.cloud.aiplatform.v1beta1.ExplanationMetadata.InputMetadata] entries to be
// overridden.
message InputMetadataOverride {
// Baseline inputs for this feature.
//
// This overrides the `input_baseline` field of the
// [ExplanationMetadata.InputMetadata][google.cloud.aiplatform.v1beta1.ExplanationMetadata.InputMetadata]
// object of the corresponding feature's input metadata. If it's not
// specified, the original baselines are not overridden.
repeated google.protobuf.Value input_baselines = 1;
}
// Required. Overrides the [input metadata][google.cloud.aiplatform.v1beta1.ExplanationMetadata.inputs] of the features.
// The key is the name of the feature to be overridden. The keys specified
// here must exist in the input metadata to be overridden. If a feature is
// not specified here, the corresponding feature's input metadata is not
// overridden.
map<string, InputMetadataOverride> inputs = 1 [(google.api.field_behavior) = REQUIRED];
}

@ -367,8 +367,8 @@ message ExplanationMetadata {
// of the empty feature is chosen by AI Platform. // of the empty feature is chosen by AI Platform.
// //
// For AI Platform provided Tensorflow images, the key can be any friendly // For AI Platform provided Tensorflow images, the key can be any friendly
// name of the feature . Once specified, [ // name of the feature. Once specified,
// featureAttributions][Attribution.feature_attributions] will be keyed by // [featureAttributions][google.cloud.aiplatform.v1beta1.Attribution.feature_attributions] are keyed by
// this key (if not grouped with another feature). // this key (if not grouped with another feature).
// //
// For custom images, the key must match with the key in // For custom images, the key must match with the key in

@ -19,6 +19,7 @@ package google.cloud.aiplatform.v1beta1;
import "google/api/field_behavior.proto"; import "google/api/field_behavior.proto";
import "google/api/resource.proto"; import "google/api/resource.proto";
import "google/cloud/aiplatform/v1beta1/custom_job.proto"; import "google/cloud/aiplatform/v1beta1/custom_job.proto";
import "google/cloud/aiplatform/v1beta1/encryption_spec.proto";
import "google/cloud/aiplatform/v1beta1/job_state.proto"; import "google/cloud/aiplatform/v1beta1/job_state.proto";
import "google/cloud/aiplatform/v1beta1/study.proto"; import "google/cloud/aiplatform/v1beta1/study.proto";
import "google/protobuf/timestamp.proto"; import "google/protobuf/timestamp.proto";
@ -99,4 +100,9 @@ message HyperparameterTuningJob {
// //
// See https://goo.gl/xmQnxf for more information and examples of labels. // See https://goo.gl/xmQnxf for more information and examples of labels.
map<string, string> labels = 16; map<string, string> labels = 16;
// Customer-managed encryption key options for a HyperparameterTuningJob.
// If this is set, then all resources created by the HyperparameterTuningJob
// will be encrypted with the provided encryption key.
EncryptionSpec encryption_spec = 17;
} }

@ -51,10 +51,16 @@ message BigQuerySource {
// The BigQuery location for the output content. // The BigQuery location for the output content.
message BigQueryDestination { message BigQueryDestination {
// Required. BigQuery URI to a project, up to 2000 characters long. // 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.
//
// Accepted forms: // Accepted forms:
// //
// * BigQuery path. For example: `bq://projectId`. // * BigQuery path. For example:
// `bq://projectId` or `bq://projectId.bqDatasetId.bqTableId`.
string output_uri = 1 [(google.api.field_behavior) = REQUIRED]; string output_uri = 1 [(google.api.field_behavior) = REQUIRED];
} }

@ -24,9 +24,11 @@ import "google/cloud/aiplatform/v1beta1/batch_prediction_job.proto";
import "google/cloud/aiplatform/v1beta1/custom_job.proto"; import "google/cloud/aiplatform/v1beta1/custom_job.proto";
import "google/cloud/aiplatform/v1beta1/data_labeling_job.proto"; import "google/cloud/aiplatform/v1beta1/data_labeling_job.proto";
import "google/cloud/aiplatform/v1beta1/hyperparameter_tuning_job.proto"; import "google/cloud/aiplatform/v1beta1/hyperparameter_tuning_job.proto";
import "google/cloud/aiplatform/v1beta1/operation.proto";
import "google/longrunning/operations.proto"; import "google/longrunning/operations.proto";
import "google/protobuf/empty.proto"; import "google/protobuf/empty.proto";
import "google/protobuf/field_mask.proto"; import "google/protobuf/field_mask.proto";
import "google/protobuf/timestamp.proto";
option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform";
option java_multiple_files = true; option java_multiple_files = true;

@ -27,41 +27,13 @@ option java_package = "com.google.cloud.aiplatform.v1beta1";
// Specification of a single machine. // Specification of a single machine.
message MachineSpec { message MachineSpec {
// Immutable. The type of the machine. // Immutable. The type of the machine. For the machine types supported for prediction,
// Following machine types are supported: // see https://tinyurl.com/aip-docs/predictions/machine-types.
// For machine types supported for creating a custom training job, see
// https://tinyurl.com/aip-docs/training/configure-compute.
// //
// * `n1-standard-2` // For [DeployedModel][google.cloud.aiplatform.v1beta1.DeployedModel] this field is optional, and the default
// // value is `n1-standard-2`. For [BatchPredictionJob][google.cloud.aiplatform.v1beta1.BatchPredictionJob] or as part of
// * `n1-standard-4`
//
// * `n1-standard-8`
//
// * `n1-standard-16`
//
// * `n1-standard-32`
//
// * `n1-highmem-2`
//
// * `n1-highmem-4`
//
// * `n1-highmem-8`
//
// * `n1-highmem-16`
//
// * `n1-highmem-32`
//
// * `n1-highcpu-2`
//
// * `n1-highcpu-4`
//
// * `n1-highcpu-8`
//
// * `n1-highcpu-16`
//
// * `n1-highcpu-32`
//
// When used for [DeployedMode][] this field is optional and the default value
// is `n1-standard-2`. If used for [BatchPredictionJob][google.cloud.aiplatform.v1beta1.BatchPredictionJob] or as part of
// [WorkerPoolSpec][google.cloud.aiplatform.v1beta1.WorkerPoolSpec] this field is required. // [WorkerPoolSpec][google.cloud.aiplatform.v1beta1.WorkerPoolSpec] this field is required.
string machine_type = 1 [(google.api.field_behavior) = IMMUTABLE]; string machine_type = 1 [(google.api.field_behavior) = IMMUTABLE];
@ -157,7 +129,7 @@ message ResourcesConsumed {
// Represents the spec of disk options. // Represents the spec of disk options.
message DiskSpec { message DiskSpec {
// Type of the boot disk (default is "pd-standard"). // Type of the boot disk (default is "pd-ssd").
// Valid values: "pd-ssd" (Persistent Disk Solid State Drive) or // Valid values: "pd-ssd" (Persistent Disk Solid State Drive) or
// "pd-standard" (Persistent Disk Hard Disk Drive). // "pd-standard" (Persistent Disk Hard Disk Drive).
string boot_disk_type = 1; string boot_disk_type = 1;

@ -54,6 +54,7 @@ message MigratableResource {
// The ml.googleapis.com endpoint that this model Version currently lives // The ml.googleapis.com endpoint that this model Version currently lives
// in. // in.
// Example values: // Example values:
//
// * ml.googleapis.com // * ml.googleapis.com
// * us-centrall-ml.googleapis.com // * us-centrall-ml.googleapis.com
// * europe-west4-ml.googleapis.com // * europe-west4-ml.googleapis.com

@ -25,6 +25,7 @@ import "google/api/resource.proto";
import "google/cloud/aiplatform/v1beta1/migratable_resource.proto"; import "google/cloud/aiplatform/v1beta1/migratable_resource.proto";
import "google/cloud/aiplatform/v1beta1/operation.proto"; import "google/cloud/aiplatform/v1beta1/operation.proto";
import "google/longrunning/operations.proto"; import "google/longrunning/operations.proto";
import "google/rpc/status.proto";
option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform";
option java_multiple_files = true; option java_multiple_files = true;
@ -83,6 +84,17 @@ message SearchMigratableResourcesRequest {
// The standard page token. // The standard page token.
string page_token = 3; string page_token = 3;
// Supported filters are:
// * Resource type: For a specific type of MigratableResource.
// * `ml_engine_model_version:*`
// * `automl_model:*`,
// * `automl_dataset:*`
// * `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.
string filter = 4;
} }
// Response message for [MigrationService.SearchMigratableResources][google.cloud.aiplatform.v1beta1.MigrationService.SearchMigratableResources]. // Response message for [MigrationService.SearchMigratableResources][google.cloud.aiplatform.v1beta1.MigrationService.SearchMigratableResources].
@ -265,6 +277,35 @@ message MigrateResourceResponse {
// Runtime operation information for [MigrationService.BatchMigrateResources][google.cloud.aiplatform.v1beta1.MigrationService.BatchMigrateResources]. // Runtime operation information for [MigrationService.BatchMigrateResources][google.cloud.aiplatform.v1beta1.MigrationService.BatchMigrateResources].
message BatchMigrateResourcesOperationMetadata { message BatchMigrateResourcesOperationMetadata {
// Represents a partial result in batch migration opreation for one
// [MigrateResourceRequest][google.cloud.aiplatform.v1beta1.MigrateResourceRequest].
message PartialResult {
// If the resource's migration is ongoing, none of the result will be set.
// If the resource's migration is finished, either error or one of the
// migrated resource name will be filled.
oneof result {
// The error result of the migration request in case of failure.
google.rpc.Status error = 2;
// Migrated model resource name.
string model = 3 [(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/Model"
}];
// Migrated dataset resource name.
string dataset = 4 [(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/Dataset"
}];
}
// It's the same as the value in
// [MigrateResourceRequest.migrate_resource_requests][].
MigrateResourceRequest request = 1;
}
// The common part of the operation metadata. // The common part of the operation metadata.
GenericOperationMetadata generic_metadata = 1; GenericOperationMetadata generic_metadata = 1;
// Partial results that reflects the latest migration operation progress.
repeated PartialResult partial_results = 2;
} }

@ -20,6 +20,7 @@ import "google/api/field_behavior.proto";
import "google/api/resource.proto"; import "google/api/resource.proto";
import "google/cloud/aiplatform/v1beta1/dataset.proto"; import "google/cloud/aiplatform/v1beta1/dataset.proto";
import "google/cloud/aiplatform/v1beta1/deployed_model_ref.proto"; import "google/cloud/aiplatform/v1beta1/deployed_model_ref.proto";
import "google/cloud/aiplatform/v1beta1/encryption_spec.proto";
import "google/cloud/aiplatform/v1beta1/env_var.proto"; import "google/cloud/aiplatform/v1beta1/env_var.proto";
import "google/cloud/aiplatform/v1beta1/explanation.proto"; import "google/cloud/aiplatform/v1beta1/explanation.proto";
import "google/protobuf/struct.proto"; import "google/protobuf/struct.proto";
@ -196,6 +197,10 @@ message Model {
// Each instance is a single row in BigQuery. Uses // Each instance is a single row in BigQuery. Uses
// [BigQuerySource][google.cloud.aiplatform.v1beta1.BatchPredictionJob.InputConfig.bigquery_source]. // [BigQuerySource][google.cloud.aiplatform.v1beta1.BatchPredictionJob.InputConfig.bigquery_source].
// //
// * `file-list`
// Each line of the file is the location of an instance to process, uses
// `gcs_source` field of the
// [InputConfig][google.cloud.aiplatform.v1beta1.BatchPredictionJob.InputConfig] object.
// //
// //
// If this Model doesn't support any of these formats it means it cannot be // If this Model doesn't support any of these formats it means it cannot be
@ -248,18 +253,20 @@ message Model {
// Model could have been deployed to Endpoints in different Locations. // Model could have been deployed to Endpoints in different Locations.
repeated DeployedModelRef deployed_models = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; repeated DeployedModelRef deployed_models = 15 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The default explanation specification for this Model. // The default explanation specification for this Model.
// //
// Model can be used for [requesting explanation][google.cloud.aiplatform.v1beta1.PredictionService.Explain] // The Model can be used for [requesting
// after being [deployed][google.cloud.aiplatform.v1beta1.EndpointService.DeployModel] iff it is populated. // explanation][PredictionService.Explain] after being
// [deployed][google.cloud.aiplatform.v1beta1.EndpointService.DeployModel] iff it is populated.
// The Model can be used for [batch
// explanation][BatchPredictionJob.generate_explanation] iff it is populated.
// //
// All fields of the explanation_spec can be overridden by // All fields of the explanation_spec can be overridden by
// [explanation_spec][google.cloud.aiplatform.v1beta1.DeployedModel.explanation_spec] of // [explanation_spec][google.cloud.aiplatform.v1beta1.DeployedModel.explanation_spec] of
// [DeployModelRequest.deployed_model][google.cloud.aiplatform.v1beta1.DeployModelRequest.deployed_model]. // [DeployModelRequest.deployed_model][google.cloud.aiplatform.v1beta1.DeployModelRequest.deployed_model], or
// // [explanation_spec][google.cloud.aiplatform.v1beta1.BatchPredictionJob.explanation_spec] of
// This field is populated only for tabular AutoML Models. // [BatchPredictionJob][google.cloud.aiplatform.v1beta1.BatchPredictionJob].
// Specifying it with [ModelService.UploadModel][google.cloud.aiplatform.v1beta1.ModelService.UploadModel] is not supported. ExplanationSpec explanation_spec = 23;
ExplanationSpec explanation_spec = 23 [(google.api.field_behavior) = OUTPUT_ONLY];
// Used to perform consistent read-modify-write updates. If not set, a blind // Used to perform consistent read-modify-write updates. If not set, a blind
// "overwrite" update happens. // "overwrite" update happens.
@ -273,6 +280,10 @@ message Model {
// //
// See https://goo.gl/xmQnxf for more information and examples of labels. // See https://goo.gl/xmQnxf for more information and examples of labels.
map<string, string> labels = 17; map<string, string> labels = 17;
// Customer-managed encryption key spec for a Model. If set, this
// Model and all sub-resources of this Model will be secured by this key.
EncryptionSpec encryption_spec = 24;
} }
// Contains the schemata used in Model's predictions and explanations via // Contains the schemata used in Model's predictions and explanations via
@ -469,9 +480,8 @@ message ModelContainerSpec {
// //
// For example, if you set this field to `/foo`, then when AI Platform // For example, if you set this field to `/foo`, then when AI Platform
// receives a prediction request, it forwards the request body in a POST // receives a prediction request, it forwards the request body in a POST
// request to the following URL on the container: // request to the `/foo` path on the port of your container specified by the
// <code>localhost:<var>PORT</var>/foo</code> // first value of this `ModelContainerSpec`'s
// <var>PORT</var> refers to the first value of this `ModelContainerSpec`'s
// [ports][google.cloud.aiplatform.v1beta1.ModelContainerSpec.ports] field. // [ports][google.cloud.aiplatform.v1beta1.ModelContainerSpec.ports] field.
// //
// If you don't specify this field, it defaults to the following value when // If you don't specify this field, it defaults to the following value when
@ -499,9 +509,8 @@ message ModelContainerSpec {
// checks](https://tinyurl.com/cust-cont-reqs#checks). // checks](https://tinyurl.com/cust-cont-reqs#checks).
// //
// For example, if you set this field to `/bar`, then AI Platform // For example, if you set this field to `/bar`, then AI Platform
// intermittently sends a GET request to the following URL on the container: // intermittently sends a GET request to the `/bar` path on the port of your
// <code>localhost:<var>PORT</var>/bar</code> // container specified by the first value of this `ModelContainerSpec`'s
// <var>PORT</var> refers to the first value of this `ModelContainerSpec`'s
// [ports][google.cloud.aiplatform.v1beta1.ModelContainerSpec.ports] field. // [ports][google.cloud.aiplatform.v1beta1.ModelContainerSpec.ports] field.
// //
// If you don't specify this field, it defaults to the following value when // If you don't specify this field, it defaults to the following value when

@ -36,6 +36,19 @@ message ModelEvaluation {
pattern: "projects/{project}/locations/{location}/models/{model}/evaluations/{evaluation}" pattern: "projects/{project}/locations/{location}/models/{model}/evaluations/{evaluation}"
}; };
message ModelEvaluationExplanationSpec {
// Explanation type.
//
// For AutoML Image Classification models, possible values are:
//
// * `image-integrated-gradients`
// * `image-xrai`
string explanation_type = 1;
// Explanation spec details.
ExplanationSpec explanation_spec = 2;
}
// Output only. The resource name of the ModelEvaluation. // Output only. The resource name of the ModelEvaluation.
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
@ -63,4 +76,8 @@ message ModelEvaluation {
// is evaluated with explanations, and only for AutoML tabular Models. // is evaluated with explanations, and only for AutoML tabular Models.
// //
ModelExplanation model_explanation = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; ModelExplanation model_explanation = 8 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Describes the values of [ExplanationSpec][google.cloud.aiplatform.v1beta1.ExplanationSpec] that are used for explaining
// the predicted values on the evaluated data.
repeated ModelEvaluationExplanationSpec explanation_specs = 9 [(google.api.field_behavior) = OUTPUT_ONLY];
} }

@ -191,7 +191,21 @@ message ListModelsRequest {
} }
]; ];
// The standard list filter. // An expression for filtering the results of the request. For field names
// both snake_case and camelCase are supported.
//
// * `model` supports = and !=. `model` represents the Model ID,
// i.e. the last segment of the Model's [resource name][google.cloud.aiplatform.v1beta1.Model.name].
// * `display_name` supports = and !=
// * `labels` supports general map functions that is:
// * `labels.key=value` - key:value equality
// * `labels.key:* or labels:key - key existence
// * A key including a space must be quoted. `labels."a key"`.
//
// Some examples:
// * `model=1234`
// * `displayName="myDisplayName"`
// * `labels.myKey="myValue"`
string filter = 2; string filter = 2;
// The standard list page size. // The standard list page size.
@ -224,10 +238,7 @@ message UpdateModelRequest {
// Required. The update mask applies to the resource. // Required. The update mask applies to the resource.
// For the `FieldMask` definition, see // For the `FieldMask` definition, see
// // [FieldMask](https://tinyurl.com/protobufs/google.protobuf#fieldmask).
// [FieldMask](https:
// //developers.google.com/protocol-buffers
// // /docs/reference/google.protobuf#fieldmask).
google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED];
} }
@ -253,20 +264,20 @@ message ExportModelRequest {
// supported formats is used by default. // supported formats is used by default.
string export_format_id = 1; string export_format_id = 1;
// The Google Cloud Storage location where the Model artifact is to be // The Cloud Storage location where the Model artifact is to be
// written to. Under the directory given as the destination a new one with // written to. Under the directory given as the destination a new one with
// name "`model-export-<model-display-name>-<timestamp-of-export-call>`", // name "`model-export-<model-display-name>-<timestamp-of-export-call>`",
// where timestamp is in YYYY-MM-DDThh:mm:ss.sssZ ISO-8601 format, // where timestamp is in YYYY-MM-DDThh:mm:ss.sssZ ISO-8601 format,
// will be created. Inside, the Model and any of its supporting files // will be created. Inside, the Model and any of its supporting files
// will be written. // will be written.
// This field should only be set when // This field should only be set when the `exportableContent` field of the
// [Models.supported_export_formats.exportable_contents] contains ARTIFACT. // [Model.supported_export_formats] object contains `ARTIFACT`.
GcsDestination artifact_destination = 3; GcsDestination artifact_destination = 3;
// The Google Container Registry or Artifact Registry uri where the // The Google Container Registry or Artifact Registry uri where the
// Model container image will be copied to. // Model container image will be copied to.
// This field should only be set when // This field should only be set when the `exportableContent` field of the
// [Models.supported_export_formats.exportable_contents] contains IMAGE. // [Model.supported_export_formats] object contains `IMAGE`.
ContainerRegistryDestination image_destination = 4; ContainerRegistryDestination image_destination = 4;
} }

@ -133,6 +133,16 @@ message ExplainRequest {
// [parameters_schema_uri][google.cloud.aiplatform.v1beta1.PredictSchemata.parameters_schema_uri]. // [parameters_schema_uri][google.cloud.aiplatform.v1beta1.PredictSchemata.parameters_schema_uri].
google.protobuf.Value parameters = 4; google.protobuf.Value parameters = 4;
// If specified, overrides the
// [explanation_spec][google.cloud.aiplatform.v1beta1.DeployedModel.explanation_spec] of the DeployedModel.
// Can be used for explaining prediction results with different
// configurations, such as:
// - Explaining top-5 predictions results as opposed to top-1;
// - Increasing path count or step count of the attribution methods to reduce
// approximate errors;
// - Using different baselines for explaining the prediction results.
ExplanationSpecOverride explanation_spec_override = 5;
// If specified, this ExplainRequest will be served by the chosen // If specified, this ExplainRequest will be served by the chosen
// DeployedModel, overriding [Endpoint.traffic_split][google.cloud.aiplatform.v1beta1.Endpoint.traffic_split]. // DeployedModel, overriding [Endpoint.traffic_split][google.cloud.aiplatform.v1beta1.Endpoint.traffic_split].
string deployed_model_id = 3; string deployed_model_id = 3;

@ -21,6 +21,7 @@ import "google/api/resource.proto";
import "google/protobuf/duration.proto"; import "google/protobuf/duration.proto";
import "google/protobuf/struct.proto"; import "google/protobuf/struct.proto";
import "google/protobuf/timestamp.proto"; import "google/protobuf/timestamp.proto";
import "google/protobuf/wrappers.proto";
import "google/api/annotations.proto"; import "google/api/annotations.proto";
option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform";
@ -32,6 +33,11 @@ option java_package = "com.google.cloud.aiplatform.v1beta1";
// that has been or will be evaluated, along with the objective metrics got by // that has been or will be evaluated, along with the objective metrics got by
// running the Trial. // running the Trial.
message Trial { message Trial {
option (google.api.resource) = {
type: "aiplatform.googleapis.com/Trial"
pattern: "projects/{project}/locations/{location}/studies/{study}/trials/{trial}"
};
// A message representing a parameter to be tuned. // A message representing a parameter to be tuned.
message Parameter { message Parameter {
// Output only. The ID of the parameter. The parameter should be defined in // Output only. The ID of the parameter. The parameter should be defined in
@ -265,6 +271,48 @@ message StudySpec {
RANDOM_SEARCH = 3; RANDOM_SEARCH = 3;
} }
// 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.
enum ObservationNoise {
// The default noise level chosen by the AI Platform service.
OBSERVATION_NOISE_UNSPECIFIED = 0;
// AI Platform Vizier assumes that the objective function is (nearly)
// perfectly reproducible, and will never repeat the same Trial
// parameters.
LOW = 1;
// AI Platform Vizier will estimate the amount of noise in metric
// evaluations, it may repeat the same Trial parameters more than once.
HIGH = 2;
}
// 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.
enum MeasurementSelectionType {
// Will be treated as LAST_MEASUREMENT.
MEASUREMENT_SELECTION_TYPE_UNSPECIFIED = 0;
// Use the last measurement reported.
LAST_MEASUREMENT = 1;
// Use the best measurement reported.
BEST_MEASUREMENT = 2;
}
// Required. Metric specs for the Study. // Required. Metric specs for the Study.
repeated MetricSpec metrics = 1 [(google.api.field_behavior) = REQUIRED]; repeated MetricSpec metrics = 1 [(google.api.field_behavior) = REQUIRED];
@ -273,6 +321,14 @@ message StudySpec {
// The search algorithm specified for the Study. // The search algorithm specified for the Study.
Algorithm algorithm = 3; Algorithm algorithm = 3;
// The observation noise level of the study.
// Currently only supported by the Vizier service. Not supported by
// HyperparamterTuningJob or TrainingPipeline.
ObservationNoise observation_noise = 6;
// Describe which measurement selection type will be used
MeasurementSelectionType measurement_selection_type = 7;
} }
// A message representing a Measurement of a Trial. A Measurement contains // A message representing a Measurement of a Trial. A Measurement contains

@ -18,6 +18,7 @@ package google.cloud.aiplatform.v1beta1;
import "google/api/field_behavior.proto"; import "google/api/field_behavior.proto";
import "google/api/resource.proto"; import "google/api/resource.proto";
import "google/cloud/aiplatform/v1beta1/encryption_spec.proto";
import "google/cloud/aiplatform/v1beta1/io.proto"; import "google/cloud/aiplatform/v1beta1/io.proto";
import "google/cloud/aiplatform/v1beta1/machine_resources.proto"; import "google/cloud/aiplatform/v1beta1/machine_resources.proto";
import "google/cloud/aiplatform/v1beta1/manual_batch_tuning_parameters.proto"; import "google/cloud/aiplatform/v1beta1/manual_batch_tuning_parameters.proto";
@ -79,7 +80,7 @@ message TrainingPipeline {
// pipeline's [training_task_definition][google.cloud.aiplatform.v1beta1.TrainingPipeline.training_task_definition] contains `metadata` object. // pipeline's [training_task_definition][google.cloud.aiplatform.v1beta1.TrainingPipeline.training_task_definition] contains `metadata` object.
google.protobuf.Value training_task_metadata = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; google.protobuf.Value training_task_metadata = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
// Describes the Model that may be uploaded (via [ModelService.UploadMode][]) // Describes the Model that may be uploaded (via [ModelService.UploadModel][google.cloud.aiplatform.v1beta1.ModelService.UploadModel])
// by this TrainingPipeline. The TrainingPipeline's // by this TrainingPipeline. The TrainingPipeline's
// [training_task_definition][google.cloud.aiplatform.v1beta1.TrainingPipeline.training_task_definition] should make clear whether this Model // [training_task_definition][google.cloud.aiplatform.v1beta1.TrainingPipeline.training_task_definition] should make clear whether this Model
// description should be populated, and if there are any special requirements // description should be populated, and if there are any special requirements
@ -125,6 +126,13 @@ message TrainingPipeline {
// //
// See https://goo.gl/xmQnxf for more information and examples of labels. // See https://goo.gl/xmQnxf for more information and examples of labels.
map<string, string> labels = 15; map<string, string> labels = 15;
// Customer-managed encryption key spec for a TrainingPipeline. If set, this
// TrainingPipeline will be secured by this key.
//
// Note: Model trained by this TrainingPipeline is also secured by this key if
// [model_to_upload][google.cloud.aiplatform.v1beta1.TrainingPipeline.encryption_spec] is not set separately.
EncryptionSpec encryption_spec = 18;
} }
// Specifies AI Platform owned input data to be used for training, and // Specifies AI Platform owned input data to be used for training, and
@ -159,7 +167,7 @@ message InputDataConfig {
// * For non-tabular data: "jsonl". // * For non-tabular data: "jsonl".
// * For tabular data: "csv" and "bigquery". // * For tabular data: "csv" and "bigquery".
// //
// Following AI Platform environment variables will be passed to containers // The following AI Platform environment variables are passed to containers
// or python modules of the training task when this field is set: // or python modules of the training task when this field is set:
// //
// * AIP_DATA_FORMAT : Exported data format. // * AIP_DATA_FORMAT : Exported data format.
@ -167,43 +175,50 @@ message InputDataConfig {
// * AIP_VALIDATION_DATA_URI : Sharded exported validation data uris. // * AIP_VALIDATION_DATA_URI : Sharded exported validation data uris.
// * AIP_TEST_DATA_URI : Sharded exported test data uris. // * AIP_TEST_DATA_URI : Sharded exported test data uris.
oneof destination { oneof destination {
// The Google Cloud Storage location where the training data is to be // The Cloud Storage location where the training data is to be
// written to. In the given directory a new directory will be created with // written to. In the given directory a new directory is created with
// name: // name:
// `dataset-<dataset-id>-<annotation-type>-<timestamp-of-training-call>` // `dataset-<dataset-id>-<annotation-type>-<timestamp-of-training-call>`
// where timestamp is in YYYY-MM-DDThh:mm:ss.sssZ ISO-8601 format. // where timestamp is in YYYY-MM-DDThh:mm:ss.sssZ ISO-8601 format.
// All training input data will be written into that directory. // All training input data is written into that directory.
// //
// The AI Platform environment variables representing Google Cloud Storage // The AI Platform environment variables representing Cloud Storage
// data URIs will always be represented in the Google Cloud Storage wildcard // data URIs are represented in the Cloud Storage wildcard
// format to support sharded data. e.g.: "gs://.../training-*.jsonl" // format to support sharded data. e.g.: "gs://.../training-*.jsonl"
// //
// * AIP_DATA_FORMAT = "jsonl" for non-tabular data, "csv" for tabular data // * AIP_DATA_FORMAT = "jsonl" for non-tabular data, "csv" for tabular data
// * AIP_TRAINING_DATA_URI = // * AIP_TRAINING_DATA_URI =
// //
// "gcs_destination/dataset-<dataset-id>-<annotation-type>-<time>/training-*.${AIP_DATA_FORMAT}" // "gcs_destination/dataset-<dataset-id>-<annotation-type>-<time>/training-*.${AIP_DATA_FORMAT}"
//
// * AIP_VALIDATION_DATA_URI = // * AIP_VALIDATION_DATA_URI =
// //
// "gcs_destination/dataset-<dataset-id>-<annotation-type>-<time>/validation-*.${AIP_DATA_FORMAT}" // "gcs_destination/dataset-<dataset-id>-<annotation-type>-<time>/validation-*.${AIP_DATA_FORMAT}"
//
// * AIP_TEST_DATA_URI = // * AIP_TEST_DATA_URI =
// //
// "gcs_destination/dataset-<dataset-id>-<annotation-type>-<time>/test-*.${AIP_DATA_FORMAT}" // "gcs_destination/dataset-<dataset-id>-<annotation-type>-<time>/test-*.${AIP_DATA_FORMAT}"
GcsDestination gcs_destination = 8; GcsDestination gcs_destination = 8;
// Only applicable to custom training with tabular Dataset with BigQuery
// source.
//
// The BigQuery project location where the training data is to be written // The BigQuery project location where the training data is to be written
// to. In the given project a new dataset is created with name // to. In the given project a new dataset is created with name
// `dataset_<dataset-id>_<annotation-type>_<timestamp-of-training-call>` // `dataset_<dataset-id>_<annotation-type>_<timestamp-of-training-call>`
// where timestamp is in YYYY_MM_DDThh_mm_ss_sssZ format. All training // where timestamp is in YYYY_MM_DDThh_mm_ss_sssZ format. All training
// input data will be written into that dataset. In the dataset three // input data is written into that dataset. In the dataset three
// tables will be created, `training`, `validation` and `test`. // tables are created, `training`, `validation` and `test`.
// //
// * AIP_DATA_FORMAT = "bigquery". // * AIP_DATA_FORMAT = "bigquery".
// * AIP_TRAINING_DATA_URI = // * AIP_TRAINING_DATA_URI =
// //
// "bigquery_destination.dataset_<dataset-id>_<annotation-type>_<time>.training" // "bigquery_destination.dataset_<dataset-id>_<annotation-type>_<time>.training"
//
// * AIP_VALIDATION_DATA_URI = // * AIP_VALIDATION_DATA_URI =
// //
// "bigquery_destination.dataset_<dataset-id>_<annotation-type>_<time>.validation" // "bigquery_destination.dataset_<dataset-id>_<annotation-type>_<time>.validation"
//
// * AIP_TEST_DATA_URI = // * AIP_TEST_DATA_URI =
// "bigquery_destination.dataset_<dataset-id>_<annotation-type>_<time>.test" // "bigquery_destination.dataset_<dataset-id>_<annotation-type>_<time>.test"
BigQueryDestination bigquery_destination = 10; BigQueryDestination bigquery_destination = 10;
@ -218,7 +233,7 @@ message InputDataConfig {
// and choose from. // and choose from.
string dataset_id = 1 [(google.api.field_behavior) = REQUIRED]; string dataset_id = 1 [(google.api.field_behavior) = REQUIRED];
// Only applicable to Datasets that have DataItems and Annotations. // Applicable only to Datasets that have DataItems and Annotations.
// //
// A filter on Annotations of the Dataset. Only Annotations that both // A filter on Annotations of the Dataset. Only Annotations that both
// match this filter and belong to DataItems not ignored by the split method // match this filter and belong to DataItems not ignored by the split method
@ -230,16 +245,14 @@ message InputDataConfig {
// a single DataItem. // a single DataItem.
string annotations_filter = 6; string annotations_filter = 6;
// Only applicable to custom training. // Applicable only to custom training with Datasets that have DataItems and
// // Annotations.
// Google Cloud Storage URI points to a YAML file describing annotation
// schema. The schema is defined as an OpenAPI 3.0.2 [Schema Object](
// //
// https: // Cloud Storage URI that points to a YAML file describing the annotation
// //github.com/OAI/OpenAPI-Specification/b // schema. The schema is defined as an OpenAPI 3.0.2
// // lob/master/versions/3.0.2.md#schema-object) // [Schema Object](https://tinyurl.com/y538mdwt#schema-object).
// The schema files that can be used here are found in // The schema files that can be used here are found in
// gs://google-cloud-aiplatform/schema/dataset/annotation/, note that the // gs://google-cloud-aiplatform/schema/dataset/annotation/ , note that the
// chosen schema must be consistent with // chosen schema must be consistent with
// [metadata][google.cloud.aiplatform.v1beta1.Dataset.metadata_schema_uri] of the Dataset specified by // [metadata][google.cloud.aiplatform.v1beta1.Dataset.metadata_schema_uri] of the Dataset specified by
// [dataset_id][google.cloud.aiplatform.v1beta1.InputDataConfig.dataset_id]. // [dataset_id][google.cloud.aiplatform.v1beta1.InputDataConfig.dataset_id].
@ -259,7 +272,7 @@ message InputDataConfig {
// `test_fraction` may optionally be provided, they must sum to up to 1. If the // `test_fraction` may optionally be provided, they must sum to up to 1. If the
// provided ones sum to less than 1, the remainder is assigned to sets as // provided ones sum to less than 1, the remainder is assigned to sets as
// decided by AI Platform. If none of the fractions are set, by default roughly // decided by AI Platform. If none of the fractions are set, by default roughly
// 80% of data will be used for training, 10% for validation, and 10% for test. // 80% of data is used for training, 10% for validation, and 10% for test.
message FractionSplit { message FractionSplit {
// The fraction of the input data that is to be used to train the Model. // The fraction of the input data that is to be used to train the Model.
double training_fraction = 1; double training_fraction = 1;
@ -276,12 +289,15 @@ message FractionSplit {
// supported for Datasets containing DataItems. // supported for Datasets containing DataItems.
// If any of the filters in this message are to match nothing, then they can be // If any of the filters in this message are to match nothing, then they can be
// set as '-' (the minus sign). // set as '-' (the minus sign).
//
// Supported only for unstructured Datasets.
//
message FilterSplit { message FilterSplit {
// Required. A filter on DataItems of the Dataset. DataItems that match // Required. A filter on DataItems of the Dataset. DataItems that match
// this filter are used to train the Model. A filter with same syntax // this filter are used to train the Model. A filter with same syntax
// as the one used in [DatasetService.ListDataItems][google.cloud.aiplatform.v1beta1.DatasetService.ListDataItems] may be used. If a // as the one used in [DatasetService.ListDataItems][google.cloud.aiplatform.v1beta1.DatasetService.ListDataItems] may be used. If a
// single DataItem is matched by more than one of the FilterSplit filters, // single DataItem is matched by more than one of the FilterSplit filters,
// then it will be assigned to the first set that applies to it in the // then it is assigned to the first set that applies to it in the
// training, validation, test order. // training, validation, test order.
string training_filter = 1 [(google.api.field_behavior) = REQUIRED]; string training_filter = 1 [(google.api.field_behavior) = REQUIRED];
@ -289,7 +305,7 @@ message FilterSplit {
// this filter are used to validate the Model. A filter with same syntax // this filter are used to validate the Model. A filter with same syntax
// as the one used in [DatasetService.ListDataItems][google.cloud.aiplatform.v1beta1.DatasetService.ListDataItems] may be used. If a // as the one used in [DatasetService.ListDataItems][google.cloud.aiplatform.v1beta1.DatasetService.ListDataItems] may be used. If a
// single DataItem is matched by more than one of the FilterSplit filters, // single DataItem is matched by more than one of the FilterSplit filters,
// then it will be assigned to the first set that applies to it in the // then it is assigned to the first set that applies to it in the
// training, validation, test order. // training, validation, test order.
string validation_filter = 2 [(google.api.field_behavior) = REQUIRED]; string validation_filter = 2 [(google.api.field_behavior) = REQUIRED];
@ -297,7 +313,7 @@ message FilterSplit {
// this filter are used to test the Model. A filter with same syntax // this filter are used to test the Model. A filter with same syntax
// as the one used in [DatasetService.ListDataItems][google.cloud.aiplatform.v1beta1.DatasetService.ListDataItems] may be used. If a // as the one used in [DatasetService.ListDataItems][google.cloud.aiplatform.v1beta1.DatasetService.ListDataItems] may be used. If a
// single DataItem is matched by more than one of the FilterSplit filters, // single DataItem is matched by more than one of the FilterSplit filters,
// then it will be assigned to the first set that applies to it in the // then it is assigned to the first set that applies to it in the
// training, validation, test order. // training, validation, test order.
string test_filter = 3 [(google.api.field_behavior) = REQUIRED]; string test_filter = 3 [(google.api.field_behavior) = REQUIRED];
} }

Loading…
Cancel
Save