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_service.proto",
"deployed_model_ref.proto",
"encryption_spec.proto",
"endpoint.proto",
"endpoint_service.proto",
"env_var.proto",
@ -72,6 +73,7 @@ proto_library(
"@com_google_protobuf//:field_mask_proto",
"@com_google_protobuf//:struct_proto",
"@com_google_protobuf//:timestamp_proto",
"@com_google_protobuf//:wrappers_proto",
] + _PROTO_SUBPACKAGE_DEPS,
)

@ -34,11 +34,14 @@ types:
- name: google.cloud.aiplatform.v1beta1.UpdateSpecialistPoolOperationMetadata
- name: google.cloud.aiplatform.v1beta1.UploadModelOperationMetadata
- 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:
summary: |-
Train high-quality custom machine learning models with minimum effort and
machine learning expertise.
Train high-quality custom machine learning models with minimal machine
learning expertise and effort.
overview: |-
AI Platform (Unified) enables data scientists, developers, and AI newcomers
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/resource.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/io.proto";
import "google/cloud/aiplatform/v1beta1/job_state.proto";
@ -50,7 +51,7 @@ message BatchPredictionJob {
message InputConfig {
// Required. The source of the input.
oneof source {
// The Google Cloud Storage location for the input instances.
// The Cloud Storage location for the input instances.
GcsSource gcs_source = 2;
// The BigQuery location of the input table.
@ -73,7 +74,7 @@ message BatchPredictionJob {
message OutputConfig {
// Required. The destination of the output.
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.
// Its name is `prediction-<model-display-name>-<job-create-time>`,
// where timestamp is in YYYY-MM-DDThh:mm:ss.sssZ ISO-8601 format.
@ -129,7 +130,7 @@ message BatchPredictionJob {
message OutputInfo {
// The output location into which prediction output is written.
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.
string gcs_output_directory = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
@ -192,29 +193,30 @@ message BatchPredictionJob {
// the tuning itself).
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
// [output format][BatchPredictionJob.output_config.predictions_format]:
// When set to `true`, the batch prediction output changes based on the
// `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.
// * `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
// 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.
bool generate_explanation = 23;
// Explanation configuration for this BatchPredictionJob. Can only be
// specified if [generate_explanation][google.cloud.aiplatform.v1beta1.BatchPredictionJob.generate_explanation] is set to `true`. It's invalid to
// specified it with generate_explanation set to false or unset.
// Explanation configuration for this BatchPredictionJob. Can be
// specified only if [generate_explanation][google.cloud.aiplatform.v1beta1.BatchPredictionJob.generate_explanation] is set to `true`.
//
// 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] 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.
// [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] object is not populated, the corresponding field of
// the [Model.explanation_spec][google.cloud.aiplatform.v1beta1.Model.explanation_spec] object is inherited.
ExplanationSpec explanation_spec = 25;
// 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.
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/resource.proto";
import "google/cloud/aiplatform/v1beta1/encryption_spec.proto";
import "google/cloud/aiplatform/v1beta1/env_var.proto";
import "google/cloud/aiplatform/v1beta1/io.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.
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.
@ -94,39 +100,40 @@ message CustomJobSpec {
// Specifies the service account for workload 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;
// The full name of the Compute Engine
// [network](/compute/docs/networks-and-firewalls#networks) to which the Job
// should be peered. For example, projects/12345/global/networks/myVPC.
//
// [Format](https:
// //cloud.google.com/compute/docs/reference/rest/v1/networks/insert)
// is of the form projects/{project}/global/networks/{network}.
// Where {project} is a project number, as in '12345', and {network} is
// should be peered. For example, `projects/12345/global/networks/myVPC`.
// [Format](/compute/docs/reference/rest/v1/networks/insert)
// is of the form `projects/{project}/global/networks/{network}`.
// Where {project} is a project number, as in `12345`, and {network} is a
// network name.
//
// Private services access must already be configured for the network. If left
// unspecified, the job is not peered with any network.
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,
// [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
// [id][google.cloud.aiplatform.v1beta1.Trial.id] under parent HyperparameterTuningJob's
//
// [base_output_directory][HyperparameterTuningJob.trial_job_spec.base_output_directory].
// [id][google.cloud.aiplatform.v1beta1.Trial.id] under its parent HyperparameterTuningJob's
// baseOutputDirectory.
//
// Following AI Platform environment variables will be passed to containers or
// python modules when this field is set:
// The following AI Platform environment variables will be passed to
// containers or python modules when this field is set:
//
// For CustomJob:
//
// * AIP_MODEL_DIR = `<base_output_directory>/model/`
// * AIP_CHECKPOINT_DIR = `<base_output_directory>/checkpoints/`
// * AIP_TENSORBOARD_LOG_DIR = `<base_output_directory>/logs/`
//
// For CustomJob backing a Trial of HyperparameterTuningJob:
//
// * AIP_MODEL_DIR = `<base_output_directory>/<trial_id>/model/`
// * AIP_CHECKPOINT_DIR = `<base_output_directory>/<trial_id>/checkpoints/`
// * AIP_TENSORBOARD_LOG_DIR = `<base_output_directory>/<trial_id>/logs/`
@ -144,14 +151,14 @@ message WorkerPoolSpec {
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 [
(google.api.field_behavior) = REQUIRED,
(google.api.field_behavior) = OPTIONAL,
(google.api.field_behavior) = IMMUTABLE
];
// Required. The number of worker replicas to use for this worker pool.
int64 replica_count = 2 [(google.api.field_behavior) = REQUIRED];
// Optional. The number of worker replicas to use for this worker pool.
int64 replica_count = 2 [(google.api.field_behavior) = OPTIONAL];
// Disk spec.
DiskSpec disk_spec = 5;

@ -19,6 +19,7 @@ package google.cloud.aiplatform.v1beta1;
import "google/api/field_behavior.proto";
import "google/api/resource.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/specialist_pool.proto";
import "google/protobuf/struct.proto";
@ -126,13 +127,20 @@ message DataLabelingJob {
// The SpecialistPools' resource names associated with this job.
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,
// it will select a batch of data based on the sampling strategy.
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
// will select a batch of data based on the sampling strategy.
message ActiveLearningConfig {

@ -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/encryption_spec.proto";
import "google/cloud/aiplatform/v1beta1/io.proto";
import "google/protobuf/struct.proto";
import "google/protobuf/timestamp.proto";
@ -78,6 +79,10 @@ message Dataset {
// * "aiplatform.googleapis.com/dataset_metadata_schema": output only, its
// value is the [metadata_schema's][google.cloud.aiplatform.v1beta1.Dataset.metadata_schema_uri] title.
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

@ -181,9 +181,7 @@ message UpdateDatasetRequest {
// Required. The update mask applies to the resource.
// For the `FieldMask` definition, see
//
// [FieldMask](https:
// //tinyurl.com/dev-google-protobuf#google.protobuf.FieldMask).
// [FieldMask](https://tinyurl.com/protobufs/google.protobuf#fieldmask).
// Updatable fields:
//
// * `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;
// The standard list page size.
@ -219,7 +229,7 @@ message ListDatasetsRequest {
// Use "desc" after a field name for descending.
// Supported fields:
// * `display_name`
// * `data_item_count` * `create_time`
// * `create_time`
// * `update_time`
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/resource.proto";
import "google/cloud/aiplatform/v1beta1/encryption_spec.proto";
import "google/cloud/aiplatform/v1beta1/explanation.proto";
import "google/cloud/aiplatform/v1beta1/machine_resources.proto";
import "google/protobuf/timestamp.proto";
@ -80,6 +81,11 @@ message Endpoint {
// Output only. Timestamp when this Endpoint was last updated.
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.
@ -141,7 +147,7 @@ message DeployedModel {
// If true, the container of the DeployedModel instances will send `stderr`
// 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;
// These logs are like standard server access logs, containing

@ -161,18 +161,16 @@ message ListEndpointsRequest {
// both snake_case and camelCase are supported.
//
// * `endpoint` supports = and !=. `endpoint` represents the Endpoint ID,
// ie. the last segment of the Endpoint's [resource name][google.cloud.aiplatform.v1beta1.Endpoint.name].
// * `display_name` supports =, != and regex()
// (uses [re2](https://github.com/google/re2/wiki/Syntax) syntax)
// i.e. the last segment of the Endpoint's [resource name][google.cloud.aiplatform.v1beta1.Endpoint.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"`.
// * `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:
// * `endpoint=1`
// * `displayName="myDisplayName"`
// * `regex(display_name, "^A") -> The display name starts with an A.
// * `labels.myKey="myValue"`
string filter = 2 [(google.api.field_behavior) = OPTIONAL];
@ -205,6 +203,8 @@ message UpdateEndpointRequest {
Endpoint endpoint = 1 [(google.api.field_behavior) = REQUIRED];
// 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];
}

@ -29,12 +29,12 @@ message EnvVar {
// Required. Name of the environment variable. Must be a valid C identifier.
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
// any service environment variables. If a variable cannot be resolved,
// the reference in the input string will be unchanged. The $(VAR_NAME)
// syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped
// references will never be expanded, regardless of whether the variable
// 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.
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.
//
// 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.
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
// predicted class name by a multi-classification Model.
// Output only. The display name of the output identified by [output_index][google.cloud.aiplatform.v1beta1.Attribution.output_index]. For example,
// the predicted class name by a multi-classification Model.
//
// This field is only populated iff the Model predicts display names as a
// 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
// explanation method. Lower value means more precise attributions.
//
// * For [Sampled Shapley
// attribution][ExplanationParameters.sampled_shapley_attribution], increasing
// [path_count][google.cloud.aiplatform.v1beta1.SampledShapleyAttribution.path_count] may reduce the error.
// * For [Integrated Gradients
// attribution][ExplanationParameters.integrated_gradients_attribution],
// increasing [step_count][google.cloud.aiplatform.v1beta1.IntegratedGradientsAttribution.step_count] may
// * For Sampled Shapley
// [attribution][google.cloud.aiplatform.v1beta1.ExplanationParameters.sampled_shapley_attribution],
// increasing [path_count][google.cloud.aiplatform.v1beta1.SampledShapleyAttribution.path_count] might reduce
// the error.
// * For Integrated Gradients
// [attribution][google.cloud.aiplatform.v1beta1.ExplanationParameters.integrated_gradients_attribution],
// increasing [step_count][google.cloud.aiplatform.v1beta1.IntegratedGradientsAttribution.step_count] might
// reduce the error.
// * For [XRAI
// attribution][ExplanationParameters.xrai_attribution], increasing
// [step_count][google.cloud.aiplatform.v1beta1.XraiAttribution.step_count] may reduce the error.
// * For [XRAI attribution][google.cloud.aiplatform.v1beta1.ExplanationParameters.xrai_attribution],
// increasing
// [step_count][google.cloud.aiplatform.v1beta1.XraiAttribution.step_count] might reduce the error.
//
// Refer to AI Explanations Whitepaper for more details:
//
// https:
// //storage.googleapis.com/cloud-ai-whitep
// // apers/AI%20Explainability%20Whitepaper.pdf
// See [this introduction](/ai-platform-unified/docs/explainable-ai/overview)
// for more information.
double approximation_error = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Name of the explain output. Specified as the key in
@ -204,7 +202,7 @@ message ExplanationParameters {
int32 top_k = 4;
// 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
// explaining.
//
@ -253,7 +251,7 @@ message IntegratedGradientsAttribution {
// differentiable structure. Refer to this paper for more details:
// https://arxiv.org/abs/1906.02825
//
// Only supports image Models ([modality][InputMetadata.modality] is IMAGE).
// Supported only by image Models.
message XraiAttribution {
// Required. The number of steps for approximating the path integral.
// 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
// 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
// features are normalized to have 0-mean and 1-variance. Refer to
// this doc for more details about normalization:
//
// https:
// //developers.google.com/machine-learning
// // /data-prep/transform/normalization.
// features are normalized to have 0-mean and 1-variance. For more details
// about normalization:
// https://tinyurl.com/dgc-normalization.
//
// 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
@ -338,3 +333,38 @@ message FeatureNoiseSigma {
// Noise sigma per feature. No noise is added to features that are not set.
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.
//
// For AI Platform provided Tensorflow images, the key can be any friendly
// name of the feature . Once specified, [
// featureAttributions][Attribution.feature_attributions] will be keyed by
// name of the feature. Once specified,
// [featureAttributions][google.cloud.aiplatform.v1beta1.Attribution.feature_attributions] are keyed by
// this key (if not grouped with another feature).
//
// 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/resource.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/study.proto";
import "google/protobuf/timestamp.proto";
@ -99,4 +100,9 @@ message HyperparameterTuningJob {
//
// See https://goo.gl/xmQnxf for more information and examples of labels.
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.
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:
//
// * 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];
}

@ -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/data_labeling_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/protobuf/empty.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 java_multiple_files = true;

@ -27,41 +27,13 @@ option java_package = "com.google.cloud.aiplatform.v1beta1";
// Specification of a single machine.
message MachineSpec {
// Immutable. The type of the machine.
// Following machine types are supported:
// Immutable. The type of the machine. For the machine types supported for prediction,
// 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`
//
// * `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
// 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
// [WorkerPoolSpec][google.cloud.aiplatform.v1beta1.WorkerPoolSpec] this field is required.
string machine_type = 1 [(google.api.field_behavior) = IMMUTABLE];
@ -157,7 +129,7 @@ message ResourcesConsumed {
// Represents the spec of disk options.
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
// "pd-standard" (Persistent Disk Hard Disk Drive).
string boot_disk_type = 1;

@ -54,6 +54,7 @@ message MigratableResource {
// The ml.googleapis.com endpoint that this model Version currently lives
// in.
// Example values:
//
// * ml.googleapis.com
// * us-centrall-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/operation.proto";
import "google/longrunning/operations.proto";
import "google/rpc/status.proto";
option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform";
option java_multiple_files = true;
@ -83,6 +84,17 @@ message SearchMigratableResourcesRequest {
// The standard page token.
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].
@ -265,6 +277,35 @@ 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
// [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.
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/cloud/aiplatform/v1beta1/dataset.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/explanation.proto";
import "google/protobuf/struct.proto";
@ -196,6 +197,10 @@ message Model {
// Each instance is a single row in BigQuery. Uses
// [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
@ -248,18 +253,20 @@ message Model {
// Model could have been deployed to Endpoints in different Locations.
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]
// after being [deployed][google.cloud.aiplatform.v1beta1.EndpointService.DeployModel] iff it is populated.
// The Model can be used for [requesting
// 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
// [explanation_spec][google.cloud.aiplatform.v1beta1.DeployedModel.explanation_spec] of
// [DeployModelRequest.deployed_model][google.cloud.aiplatform.v1beta1.DeployModelRequest.deployed_model].
//
// This field is populated only for tabular AutoML Models.
// Specifying it with [ModelService.UploadModel][google.cloud.aiplatform.v1beta1.ModelService.UploadModel] is not supported.
ExplanationSpec explanation_spec = 23 [(google.api.field_behavior) = OUTPUT_ONLY];
// [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].
ExplanationSpec explanation_spec = 23;
// Used to perform consistent read-modify-write updates. If not set, a blind
// "overwrite" update happens.
@ -273,6 +280,10 @@ message Model {
//
// See https://goo.gl/xmQnxf for more information and examples of labels.
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
@ -469,9 +480,8 @@ message ModelContainerSpec {
//
// 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
// request to the following URL on the container:
// <code>localhost:<var>PORT</var>/foo</code>
// <var>PORT</var> refers to the first value of this `ModelContainerSpec`'s
// request to the `/foo` path on the port of your container specified by the
// first value of this `ModelContainerSpec`'s
// [ports][google.cloud.aiplatform.v1beta1.ModelContainerSpec.ports] field.
//
// 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).
//
// For example, if you set this field to `/bar`, then AI Platform
// intermittently sends a GET request to the following URL on the container:
// <code>localhost:<var>PORT</var>/bar</code>
// <var>PORT</var> refers to the first value of this `ModelContainerSpec`'s
// intermittently sends a GET request to the `/bar` path on the port of your
// container specified by the first value of this `ModelContainerSpec`'s
// [ports][google.cloud.aiplatform.v1beta1.ModelContainerSpec.ports] field.
//
// 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}"
};
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.
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.
//
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;
// The standard list page size.
@ -224,10 +238,7 @@ message UpdateModelRequest {
// Required. The update mask applies to the resource.
// For the `FieldMask` definition, see
//
// [FieldMask](https:
// //developers.google.com/protocol-buffers
// // /docs/reference/google.protobuf#fieldmask).
// [FieldMask](https://tinyurl.com/protobufs/google.protobuf#fieldmask).
google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED];
}
@ -253,20 +264,20 @@ message ExportModelRequest {
// supported formats is used by default.
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
// name "`model-export-<model-display-name>-<timestamp-of-export-call>`",
// 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 written.
// This field should only be set when
// [Models.supported_export_formats.exportable_contents] contains ARTIFACT.
// This field should only be set when the `exportableContent` field of the
// [Model.supported_export_formats] object contains `ARTIFACT`.
GcsDestination artifact_destination = 3;
// The Google Container Registry or Artifact Registry uri where the
// Model container image will be copied to.
// This field should only be set when
// [Models.supported_export_formats.exportable_contents] contains IMAGE.
// This field should only be set when the `exportableContent` field of the
// [Model.supported_export_formats] object contains `IMAGE`.
ContainerRegistryDestination image_destination = 4;
}

@ -133,6 +133,16 @@ message ExplainRequest {
// [parameters_schema_uri][google.cloud.aiplatform.v1beta1.PredictSchemata.parameters_schema_uri].
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
// DeployedModel, overriding [Endpoint.traffic_split][google.cloud.aiplatform.v1beta1.Endpoint.traffic_split].
string deployed_model_id = 3;

@ -21,6 +21,7 @@ import "google/api/resource.proto";
import "google/protobuf/duration.proto";
import "google/protobuf/struct.proto";
import "google/protobuf/timestamp.proto";
import "google/protobuf/wrappers.proto";
import "google/api/annotations.proto";
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
// running the 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.
message Parameter {
// Output only. The ID of the parameter. The parameter should be defined in
@ -265,6 +271,48 @@ message StudySpec {
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.
repeated MetricSpec metrics = 1 [(google.api.field_behavior) = REQUIRED];
@ -273,6 +321,14 @@ message StudySpec {
// The search algorithm specified for the Study.
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

@ -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/encryption_spec.proto";
import "google/cloud/aiplatform/v1beta1/io.proto";
import "google/cloud/aiplatform/v1beta1/machine_resources.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.
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
// [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
@ -125,6 +126,13 @@ message TrainingPipeline {
//
// See https://goo.gl/xmQnxf for more information and examples of labels.
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
@ -159,7 +167,7 @@ message InputDataConfig {
// * For non-tabular data: "jsonl".
// * 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:
//
// * AIP_DATA_FORMAT : Exported data format.
@ -167,43 +175,50 @@ message InputDataConfig {
// * AIP_VALIDATION_DATA_URI : Sharded exported validation data uris.
// * AIP_TEST_DATA_URI : Sharded exported test data uris.
oneof destination {
// The Google Cloud Storage location where the training data is to be
// written to. In the given directory a new directory will be created with
// The Cloud Storage location where the training data is to be
// written to. In the given directory a new directory is created with
// name:
// `dataset-<dataset-id>-<annotation-type>-<timestamp-of-training-call>`
// 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
// data URIs will always be represented in the Google Cloud Storage wildcard
// The AI Platform environment variables representing Cloud Storage
// data URIs are represented in the Cloud Storage wildcard
// format to support sharded data. e.g.: "gs://.../training-*.jsonl"
//
// * 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}"
//
// * AIP_VALIDATION_DATA_URI =
//
// "gcs_destination/dataset-<dataset-id>-<annotation-type>-<time>/validation-*.${AIP_DATA_FORMAT}"
//
// * AIP_TEST_DATA_URI =
//
// "gcs_destination/dataset-<dataset-id>-<annotation-type>-<time>/test-*.${AIP_DATA_FORMAT}"
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
// to. In the given project a new dataset is created with name
// `dataset_<dataset-id>_<annotation-type>_<timestamp-of-training-call>`
// 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
// tables will be created, `training`, `validation` and `test`.
// input data is written into that dataset. In the dataset three
// tables are created, `training`, `validation` and `test`.
//
// * AIP_DATA_FORMAT = "bigquery".
// * AIP_TRAINING_DATA_URI =
//
// "bigquery_destination.dataset_<dataset-id>_<annotation-type>_<time>.training"
//
// * AIP_VALIDATION_DATA_URI =
//
// "bigquery_destination.dataset_<dataset-id>_<annotation-type>_<time>.validation"
//
// * AIP_TEST_DATA_URI =
// "bigquery_destination.dataset_<dataset-id>_<annotation-type>_<time>.test"
BigQueryDestination bigquery_destination = 10;
@ -218,7 +233,7 @@ message InputDataConfig {
// and choose from.
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
// match this filter and belong to DataItems not ignored by the split method
@ -230,16 +245,14 @@ message InputDataConfig {
// a single DataItem.
string annotations_filter = 6;
// Only applicable to custom training.
//
// Google Cloud Storage URI points to a YAML file describing annotation
// schema. The schema is defined as an OpenAPI 3.0.2 [Schema Object](
// Applicable only to custom training with Datasets that have DataItems and
// Annotations.
//
// https:
// //github.com/OAI/OpenAPI-Specification/b
// // lob/master/versions/3.0.2.md#schema-object)
// Cloud Storage URI that points to a YAML file describing the annotation
// schema. The schema is defined as an OpenAPI 3.0.2
// [Schema Object](https://tinyurl.com/y538mdwt#schema-object).
// 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
// [metadata][google.cloud.aiplatform.v1beta1.Dataset.metadata_schema_uri] of the Dataset specified by
// [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
// 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
// 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 {
// The fraction of the input data that is to be used to train the Model.
double training_fraction = 1;
@ -276,12 +289,15 @@ message FractionSplit {
// supported for Datasets containing DataItems.
// If any of the filters in this message are to match nothing, then they can be
// set as '-' (the minus sign).
//
// Supported only for unstructured Datasets.
//
message FilterSplit {
// Required. A filter on DataItems of the Dataset. DataItems that match
// 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
// 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.
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
// 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,
// 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.
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
// 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,
// 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.
string test_filter = 3 [(google.api.field_behavior) = REQUIRED];
}

Loading…
Cancel
Save