Skip to content

Commit

Permalink
feat: add NVIDIA_L4 to AcceleratorType
Browse files Browse the repository at this point in the history
feat: add experiment and experiment_run to CustomJobSpec
feat: add MutateDeployedModel RPC to endpoint_service
feat: add GENIE to ModelSourceType
feat: add last_scheduled_run_response to Schedule

PiperOrigin-RevId: 527640665
  • Loading branch information
Google APIs authored and copybara-github committed Apr 27, 2023
1 parent 86a76b3 commit bd7c8fa
Show file tree
Hide file tree
Showing 22 changed files with 213 additions and 62 deletions.
5 changes: 4 additions & 1 deletion google/cloud/aiplatform/v1beta1/accelerator_type.proto
Original file line number Diff line number Diff line change
Expand Up @@ -47,9 +47,12 @@ enum AcceleratorType {
// Nvidia Tesla A100 GPU.
NVIDIA_TESLA_A100 = 8;

// Nvidia A2 Ultra GPU.
// Nvidia A100 80GB GPU.
NVIDIA_A100_80GB = 9;

// Nvidia L4 GPU.
NVIDIA_L4 = 11;

// TPU v2.
TPU_V2 = 6;

Expand Down
31 changes: 26 additions & 5 deletions google/cloud/aiplatform/v1beta1/aiplatform_v1beta1.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,8 @@ types:
- name: google.cloud.aiplatform.v1beta1.ImportFeatureValuesResponse
- name: google.cloud.aiplatform.v1beta1.MutateDeployedIndexOperationMetadata
- name: google.cloud.aiplatform.v1beta1.MutateDeployedIndexResponse
- name: google.cloud.aiplatform.v1beta1.MutateDeployedModelOperationMetadata
- name: google.cloud.aiplatform.v1beta1.MutateDeployedModelResponse
- name: google.cloud.aiplatform.v1beta1.PurgeArtifactsMetadata
- name: google.cloud.aiplatform.v1beta1.PurgeArtifactsResponse
- name: google.cloud.aiplatform.v1beta1.PurgeContextsMetadata
Expand Down Expand Up @@ -129,11 +131,6 @@ documentation:
permission-aware UIs and command-line tools, not for authorization
checking. This operation may "fail open" without warning.
- selector: google.longrunning.Operations.ListOperations
description: |-
Lists operations that match the specified filter in the request. If
the server doesn't support this method, it returns `UNIMPLEMENTED`.
backend:
rules:
- selector: 'google.cloud.aiplatform.v1beta1.DatasetService.*'
Expand Down Expand Up @@ -201,9 +198,13 @@ http:
additional_bindings:
- post: '/v1beta1/{resource=projects/*/locations/*/featurestores/*/entityTypes/*}:getIamPolicy'
- post: '/v1beta1/{resource=projects/*/locations/*/models/*}:getIamPolicy'
- post: '/v1beta1/{resource=projects/*/locations/*/endpoints/*}:getIamPolicy'
- post: '/v1beta1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:getIamPolicy'
- post: '/ui/{resource=projects/*/locations/*/featurestores/*}:getIamPolicy'
- post: '/ui/{resource=projects/*/locations/*/featurestores/*/entityTypes/*}:getIamPolicy'
- post: '/ui/{resource=projects/*/locations/*/models/*}:getIamPolicy'
- post: '/ui/{resource=projects/*/locations/*/endpoints/*}:getIamPolicy'
- post: '/ui/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:getIamPolicy'
- selector: google.iam.v1.IAMPolicy.SetIamPolicy
post: '/v1beta1/{resource=projects/*/locations/*/featurestores/*}:setIamPolicy'
body: '*'
Expand All @@ -212,21 +213,33 @@ http:
body: '*'
- post: '/v1beta1/{resource=projects/*/locations/*/models/*}:setIamPolicy'
body: '*'
- post: '/v1beta1/{resource=projects/*/locations/*/endpoints/*}:setIamPolicy'
body: '*'
- post: '/v1beta1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:setIamPolicy'
body: '*'
- post: '/ui/{resource=projects/*/locations/*/featurestores/*}:setIamPolicy'
body: '*'
- post: '/ui/{resource=projects/*/locations/*/featurestores/*/entityTypes/*}:setIamPolicy'
body: '*'
- post: '/ui/{resource=projects/*/locations/*/models/*}:setIamPolicy'
body: '*'
- post: '/ui/{resource=projects/*/locations/*/endpoints/*}:setIamPolicy'
body: '*'
- post: '/ui/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:setIamPolicy'
body: '*'
- selector: google.iam.v1.IAMPolicy.TestIamPermissions
post: '/v1beta1/{resource=projects/*/locations/*/featurestores/*}:testIamPermissions'
body: '*'
additional_bindings:
- post: '/v1beta1/{resource=projects/*/locations/*/featurestores/*/entityTypes/*}:testIamPermissions'
- post: '/v1beta1/{resource=projects/*/locations/*/models/*}:testIamPermissions'
- post: '/v1beta1/{resource=projects/*/locations/*/endpoints/*}:testIamPermissions'
- post: '/v1beta1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:testIamPermissions'
- post: '/ui/{resource=projects/*/locations/*/featurestores/*}:testIamPermissions'
- post: '/ui/{resource=projects/*/locations/*/featurestores/*/entityTypes/*}:testIamPermissions'
- post: '/ui/{resource=projects/*/locations/*/models/*}:testIamPermissions'
- post: '/ui/{resource=projects/*/locations/*/endpoints/*}:testIamPermissions'
- post: '/ui/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:testIamPermissions'
- selector: google.longrunning.Operations.CancelOperation
post: '/ui/{name=projects/*/locations/*/operations/*}:cancel'
additional_bindings:
Expand Down Expand Up @@ -361,6 +374,8 @@ http:
- delete: '/v1beta1/{name=projects/*/locations/*/tensorboards/*/experiments/*/operations/*}'
- delete: '/v1beta1/{name=projects/*/locations/*/tensorboards/*/experiments/*/runs/*/operations/*}'
- delete: '/v1beta1/{name=projects/*/locations/*/tensorboards/*/experiments/*/runs/*/timeSeries/*/operations/*}'
- delete: '/v1beta1/{name=projects/*/locations/*/featureOnlineStores/*/operations/*}'
- delete: '/v1beta1/{name=projects/*/locations/*/featureOnlineStores/*/featureViews/*/operations/*}'
- selector: google.longrunning.Operations.GetOperation
get: '/ui/{name=projects/*/locations/*/operations/*}'
additional_bindings:
Expand Down Expand Up @@ -429,6 +444,8 @@ http:
- get: '/v1beta1/{name=projects/*/locations/*/tensorboards/*/experiments/*/operations/*}'
- get: '/v1beta1/{name=projects/*/locations/*/tensorboards/*/experiments/*/runs/*/operations/*}'
- get: '/v1beta1/{name=projects/*/locations/*/tensorboards/*/experiments/*/runs/*/timeSeries/*/operations/*}'
- get: '/v1beta1/{name=projects/*/locations/*/featureOnlineStores/*/operations/*}'
- get: '/v1beta1/{name=projects/*/locations/*/featureOnlineStores/*/featureViews/*/operations/*}'
- selector: google.longrunning.Operations.ListOperations
get: '/ui/{name=projects/*/locations/*}/operations'
additional_bindings:
Expand Down Expand Up @@ -496,6 +513,8 @@ http:
- get: '/v1beta1/{name=projects/*/locations/*/tensorboards/*/experiments/*}/operations'
- get: '/v1beta1/{name=projects/*/locations/*/tensorboards/*/experiments/*/runs/*}/operations'
- get: '/v1beta1/{name=projects/*/locations/*/tensorboards/*/experiments/*/runs/*/timeSeries/*}/operations'
- get: '/v1beta1/{name=projects/*/locations/*/featureOnlineStores/*}/operations'
- get: '/v1beta1/{name=projects/*/locations/*/featureOnlineStores/*/featureViews/*}/operations'
- selector: google.longrunning.Operations.WaitOperation
post: '/ui/{name=projects/*/locations/*/operations/*}:wait'
additional_bindings:
Expand Down Expand Up @@ -563,6 +582,8 @@ http:
- post: '/v1beta1/{name=projects/*/locations/*/tensorboards/*/experiments/*/operations/*}:wait'
- post: '/v1beta1/{name=projects/*/locations/*/tensorboards/*/experiments/*/runs/*/operations/*}:wait'
- post: '/v1beta1/{name=projects/*/locations/*/tensorboards/*/experiments/*/runs/*/timeSeries/*/operations/*}:wait'
- post: '/v1beta1/{name=projects/*/locations/*/featureOnlineStores/*/operations/*}:wait'
- post: '/v1beta1/{name=projects/*/locations/*/featureOnlineStores/*/featureViews/*/operations/*}:wait'

authentication:
rules:
Expand Down
4 changes: 2 additions & 2 deletions google/cloud/aiplatform/v1beta1/batch_prediction_job.proto
Original file line number Diff line number Diff line change
Expand Up @@ -463,9 +463,9 @@ message BatchPredictionJob {

// For custom-trained Models and AutoML Tabular Models, the container of the
// DeployedModel instances will send `stderr` and `stdout` streams to
// Stackdriver Logging by default. Please note that the logs incur cost,
// Cloud Logging by default. Please note that the logs incur cost,
// which are subject to [Cloud Logging
// pricing](https://cloud.google.com/stackdriver/pricing).
// pricing](https://cloud.google.com/logging/pricing).
//
// User can disable container logging by setting this flag to true.
bool disable_container_logging = 34;
Expand Down
20 changes: 20 additions & 0 deletions google/cloud/aiplatform/v1beta1/custom_job.proto
Original file line number Diff line number Diff line change
Expand Up @@ -216,6 +216,26 @@ message CustomJobSpec {
// (within
// [HyperparameterTuningJob.trials][google.cloud.aiplatform.v1beta1.HyperparameterTuningJob.trials]).
bool enable_dashboard_access = 16 [(google.api.field_behavior) = OPTIONAL];

// Optional. The Experiment associated with this job.
// Format:
// `projects/{project}/locations/{location}/metadataStores/{metadataStores}/contexts/{experiment-name}`
string experiment = 17 [
(google.api.field_behavior) = OPTIONAL,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/Context"
}
];

// Optional. The Experiment Run associated with this job.
// Format:
// `projects/{project}/locations/{location}/metadataStores/{metadataStores}/contexts/{experiment-name}-{experiment-run-name}`
string experiment_run = 18 [
(google.api.field_behavior) = OPTIONAL,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/Context"
}
];
}

// Represents the spec of a worker pool in a job.
Expand Down
8 changes: 4 additions & 4 deletions google/cloud/aiplatform/v1beta1/dataset.proto
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ message Dataset {
map<string, string> labels = 7;

// All SavedQueries belong to the Dataset will be returned in List/Get
// Dataset response. The [annotation_specs][SavedQuery.annotation_specs] field
// Dataset response. The annotation_specs field
// will not be populated except for UI cases which will only use
// [annotation_spec_count][google.cloud.aiplatform.v1beta1.SavedQuery.annotation_spec_count].
// In CreateDataset request, a SavedQuery is created together if
Expand Down Expand Up @@ -177,9 +177,9 @@ message ExportDataConfig {
ExportFractionSplit fraction_split = 5;
}

// A filter on Annotations of the Dataset. Only Annotations on to-be-exported
// DataItems(specified by [data_items_filter][]) that match this filter will
// be exported. The filter syntax is the same as in
// An expression for filtering what part of the Dataset is to be exported.
// Only Annotations that match this filter will be exported. The filter syntax
// is the same as in
// [ListAnnotations][google.cloud.aiplatform.v1beta1.DatasetService.ListAnnotations].
string annotations_filter = 2;
}
Expand Down
10 changes: 6 additions & 4 deletions google/cloud/aiplatform/v1beta1/endpoint.proto
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ message Endpoint {
option (google.api.resource) = {
type: "aiplatform.googleapis.com/Endpoint"
pattern: "projects/{project}/locations/{location}/endpoints/{endpoint}"
pattern: "projects/{project}/locations/{location}/publishers/{publisher}/models/{model}"
};

// Output only. The resource name of the Endpoint.
Expand Down Expand Up @@ -127,7 +128,8 @@ message Endpoint {

// Output only. Resource name of the Model Monitoring job associated with this
// Endpoint if monitoring is enabled by
// [CreateModelDeploymentMonitoringJob][]. Format:
// [JobService.CreateModelDeploymentMonitoringJob][google.cloud.aiplatform.v1beta1.JobService.CreateModelDeploymentMonitoringJob].
// Format:
// `projects/{project}/locations/{location}/modelDeploymentMonitoringJobs/{model_deployment_monitoring_job}`
string model_deployment_monitoring_job = 14 [
(google.api.field_behavior) = OUTPUT_ONLY,
Expand Down Expand Up @@ -236,17 +238,17 @@ message DeployedModel {
string service_account = 11;

// If true, the container of the DeployedModel instances will send `stderr`
// and `stdout` streams to Stackdriver Logging.
// and `stdout` streams to Cloud Logging.
//
// Only supported for custom-trained Models and AutoML Tabular Models.
bool enable_container_logging = 12;

// If true, online prediction access logs are sent to StackDriver
// If true, online prediction access logs are sent to Cloud
// Logging.
// These logs are like standard server access logs, containing
// information like timestamp and latency for each prediction request.
//
// Note that Stackdriver logs may incur a cost, especially if your project
// Note that logs may incur a cost, especially if your project
// receives prediction requests at a high queries per second rate (QPS).
// Estimate your costs before enabling this option.
bool enable_access_logging = 13;
Expand Down
65 changes: 65 additions & 0 deletions google/cloud/aiplatform/v1beta1/endpoint_service.proto
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,24 @@ service EndpointService {
metadata_type: "UndeployModelOperationMetadata"
};
}

// Updates an existing deployed model. Updatable fields include
// `min_replica_count`, `max_replica_count`, `autoscaling_metric_specs`,
// `disable_container_logging` (v1 only), and `enable_container_logging`
// (v1beta1 only).
rpc MutateDeployedModel(MutateDeployedModelRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1beta1/{endpoint=projects/*/locations/*/endpoints/*}:mutateDeployedModel"
body: "*"
};
option (google.api.method_signature) =
"endpoint,deployed_model,update_mask";
option (google.longrunning.operation_info) = {
response_type: "MutateDeployedModelResponse"
metadata_type: "MutateDeployedModelOperationMetadata"
};
}
}

// Request message for
Expand Down Expand Up @@ -348,3 +366,50 @@ message UndeployModelOperationMetadata {
// The operation generic information.
GenericOperationMetadata generic_metadata = 1;
}

// Request message for
// [EndpointService.MutateDeployedModel][google.cloud.aiplatform.v1beta1.EndpointService.MutateDeployedModel].
message MutateDeployedModelRequest {
// Required. The name of the Endpoint resource into which to mutate a
// DeployedModel. Format:
// `projects/{project}/locations/{location}/endpoints/{endpoint}`
string endpoint = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/Endpoint"
}
];

// Required. The DeployedModel to be mutated within the Endpoint. Only the
// following fields can be mutated:
//
// * `min_replica_count` in either
// [DedicatedResources][google.cloud.aiplatform.v1beta1.DedicatedResources] or
// [AutomaticResources][google.cloud.aiplatform.v1beta1.AutomaticResources]
// * `max_replica_count` in either
// [DedicatedResources][google.cloud.aiplatform.v1beta1.DedicatedResources] or
// [AutomaticResources][google.cloud.aiplatform.v1beta1.AutomaticResources]
// * [autoscaling_metric_specs][google.cloud.aiplatform.v1beta1.DedicatedResources.autoscaling_metric_specs]
// * `disable_container_logging` (v1 only)
// * `enable_container_logging` (v1beta1 only)
DeployedModel deployed_model = 2 [(google.api.field_behavior) = REQUIRED];

// Required. The update mask applies to the resource. See
// [google.protobuf.FieldMask][google.protobuf.FieldMask].
google.protobuf.FieldMask update_mask = 4
[(google.api.field_behavior) = REQUIRED];
}

// Response message for
// [EndpointService.MutateDeployedModel][google.cloud.aiplatform.v1beta1.EndpointService.MutateDeployedModel].
message MutateDeployedModelResponse {
// The DeployedModel that's being mutated.
DeployedModel deployed_model = 1;
}

// Runtime operation information for
// [EndpointService.MutateDeployedModel][google.cloud.aiplatform.v1beta1.EndpointService.MutateDeployedModel].
message MutateDeployedModelOperationMetadata {
// The operation generic information.
GenericOperationMetadata generic_metadata = 1;
}
4 changes: 0 additions & 4 deletions google/cloud/aiplatform/v1beta1/evaluated_annotation.proto
Original file line number Diff line number Diff line change
Expand Up @@ -103,10 +103,6 @@ message EvaluatedAnnotation {
// ModelEvaluation. The EvaluatedDataItemView consists of all ground truths
// and predictions on
// [data_item_payload][google.cloud.aiplatform.v1beta1.EvaluatedAnnotation.data_item_payload].
//
// Can be passed in
// [GetEvaluatedDataItemView's][ModelService.GetEvaluatedDataItemView][]
// [id][GetEvaluatedDataItemViewRequest.id].
string evaluated_data_item_view_id = 6
[(google.api.field_behavior) = OUTPUT_ONLY];

Expand Down
29 changes: 17 additions & 12 deletions google/cloud/aiplatform/v1beta1/explanation.proto
Original file line number Diff line number Diff line change
Expand Up @@ -426,20 +426,22 @@ message BlurBaselineConfig {
// provided dataset.
message Examples {
oneof config {
// The configuration for the generated index, the semantics are the same as
// [metadata][google.cloud.aiplatform.v1beta1.Index.metadata] and should
// match NearestNeighborSearchConfig.
// The full configuration for the generated index, the semantics are the
// same as [metadata][google.cloud.aiplatform.v1beta1.Index.metadata] and
// should match
// [NearestNeighborSearchConfig](https://cloud.google.com/vertex-ai/docs/explainable-ai/configuring-explanations-example-based#nearest-neighbor-search-config).
google.protobuf.Value nearest_neighbor_search_config = 2;

// Preset config based on the desired query speed-precision trade-off
// and modality
// Simplified preset configuration, which automatically sets configuration
// values based on the desired query speed-precision trade-off and modality.
Presets presets = 4;
}

// The Cloud Storage location for the input instances.
// The Cloud Storage locations that contain the instances to be
// indexed for approximate nearest neighbor search.
GcsSource gcs_source = 1;

// The number of neighbors to return.
// The number of neighbors to return when querying for examples.
int32 neighbor_count = 3;
}

Expand All @@ -448,7 +450,6 @@ message Presets {
// Preset option controlling parameters for query speed-precision trade-off
enum Query {
// More precise neighbors as a trade-off against slower response.
// This is also the default value (field-number 0).
PRECISE = 0;

// Faster response as a trade-off against less precise neighbors.
Expand All @@ -470,10 +471,14 @@ message Presets {
TABULAR = 3;
}

// Preset option controlling parameters for query speed-precision trade-off
// Preset option controlling parameters for speed-precision trade-off when
// querying for examples. If omitted, defaults to `PRECISE`.
optional Query query = 1;

// Preset option controlling parameters for different modalities
// The modality of the uploaded model, which automatically configures the
// distance measurement and feature normalization for the underlying example
// index and queries. If your model does not precisely fit one of these types,
// it is okay to choose the closest type.
Modality modality = 2;
}

Expand All @@ -482,8 +487,8 @@ message Presets {
// explanation][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.
// attribution 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.
Expand Down
13 changes: 7 additions & 6 deletions google/cloud/aiplatform/v1beta1/feature.proto
Original file line number Diff line number Diff line change
Expand Up @@ -39,10 +39,11 @@ message Feature {
pattern: "projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}/features/{feature}"
};

// A list of historical [Snapshot
// Analysis][FeaturestoreMonitoringConfig.SnapshotAnalysis] or [Import Feature
// Analysis] [FeaturestoreMonitoringConfig.ImportFeatureAnalysis] stats
// requested by user, sorted by
// A list of historical
// [SnapshotAnalysis][google.cloud.aiplatform.v1beta1.FeaturestoreMonitoringConfig.SnapshotAnalysis]
// or
// [ImportFeaturesAnalysis][google.cloud.aiplatform.v1beta1.FeaturestoreMonitoringConfig.ImportFeaturesAnalysis]
// stats requested by user, sorted by
// [FeatureStatsAnomaly.start_time][google.cloud.aiplatform.v1beta1.FeatureStatsAnomaly.start_time]
// descending.
message MonitoringStatsAnomaly {
Expand Down Expand Up @@ -170,8 +171,8 @@ message Feature {
// config on EntityType.
bool disable_monitoring = 12 [(google.api.field_behavior) = OPTIONAL];

// Output only. A list of historical [Snapshot
// Analysis][FeaturestoreMonitoringConfig.SnapshotAnalysis]
// Output only. A list of historical
// [SnapshotAnalysis][google.cloud.aiplatform.v1beta1.FeaturestoreMonitoringConfig.SnapshotAnalysis]
// stats requested by user, sorted by
// [FeatureStatsAnomaly.start_time][google.cloud.aiplatform.v1beta1.FeatureStatsAnomaly.start_time]
// descending.
Expand Down
Loading

0 comments on commit bd7c8fa

Please sign in to comment.