google-cloud-pipeline-components 2.15.0__py3-none-any.whl → 2.16.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of google-cloud-pipeline-components might be problematic. Click here for more details.

Files changed (58) hide show
  1. google_cloud_pipeline_components/_implementation/model_evaluation/llm_evaluation_preprocessor/component.py +11 -1
  2. google_cloud_pipeline_components/_implementation/starry_net/dataprep/component.py +14 -0
  3. google_cloud_pipeline_components/_implementation/starry_net/get_training_artifacts/component.py +1 -1
  4. google_cloud_pipeline_components/_implementation/starry_net/train/component.py +11 -0
  5. google_cloud_pipeline_components/_implementation/starry_net/upload_decomposition_plots/component.py +6 -1
  6. google_cloud_pipeline_components/_implementation/starry_net/version.py +3 -3
  7. google_cloud_pipeline_components/container/preview/custom_job/remote_runner.py +22 -0
  8. google_cloud_pipeline_components/preview/automl/forecasting/forecasting_ensemble.py +1 -1
  9. google_cloud_pipeline_components/preview/automl/forecasting/forecasting_stage_1_tuner.py +2 -2
  10. google_cloud_pipeline_components/preview/automl/forecasting/forecasting_stage_2_tuner.py +2 -2
  11. google_cloud_pipeline_components/preview/automl/forecasting/learn_to_learn_forecasting_pipeline.yaml +38 -34
  12. google_cloud_pipeline_components/preview/automl/forecasting/sequence_to_sequence_forecasting_pipeline.yaml +38 -34
  13. google_cloud_pipeline_components/preview/automl/forecasting/temporal_fusion_transformer_forecasting_pipeline.yaml +38 -34
  14. google_cloud_pipeline_components/preview/automl/forecasting/time_series_dense_encoder_forecasting_pipeline.yaml +38 -34
  15. google_cloud_pipeline_components/preview/automl/forecasting/utils.py +49 -7
  16. google_cloud_pipeline_components/preview/automl/tabular/auto_feature_engineering.py +1 -1
  17. google_cloud_pipeline_components/preview/automl/tabular/automl_tabular_feature_selection_pipeline.yaml +39 -39
  18. google_cloud_pipeline_components/preview/automl/tabular/automl_tabular_v2_pipeline.yaml +41 -41
  19. google_cloud_pipeline_components/preview/automl/tabular/distillation_stage_feature_transform_engine.py +2 -2
  20. google_cloud_pipeline_components/preview/automl/tabular/feature_selection.py +2 -2
  21. google_cloud_pipeline_components/preview/automl/tabular/feature_selection_pipeline.yaml +4 -4
  22. google_cloud_pipeline_components/preview/automl/tabular/feature_transform_engine.py +3 -3
  23. google_cloud_pipeline_components/preview/automl/tabular/tabnet_hyperparameter_tuning_job.py +2 -2
  24. google_cloud_pipeline_components/preview/automl/tabular/tabnet_hyperparameter_tuning_job_pipeline.yaml +15 -15
  25. google_cloud_pipeline_components/preview/automl/tabular/tabnet_trainer.py +2 -2
  26. google_cloud_pipeline_components/preview/automl/tabular/tabnet_trainer_pipeline.yaml +13 -13
  27. google_cloud_pipeline_components/preview/automl/tabular/wide_and_deep_hyperparameter_tuning_job.py +2 -2
  28. google_cloud_pipeline_components/preview/automl/tabular/wide_and_deep_hyperparameter_tuning_job_pipeline.yaml +14 -14
  29. google_cloud_pipeline_components/preview/automl/tabular/wide_and_deep_trainer.py +2 -2
  30. google_cloud_pipeline_components/preview/automl/tabular/wide_and_deep_trainer_pipeline.yaml +13 -13
  31. google_cloud_pipeline_components/preview/automl/tabular/xgboost_hyperparameter_tuning_job_pipeline.yaml +14 -14
  32. google_cloud_pipeline_components/preview/automl/tabular/xgboost_trainer_pipeline.yaml +13 -13
  33. google_cloud_pipeline_components/preview/custom_job/utils.py +45 -6
  34. google_cloud_pipeline_components/preview/starry_net/component.py +60 -34
  35. google_cloud_pipeline_components/v1/automl/forecasting/bqml_arima_predict_pipeline.yaml +10 -10
  36. google_cloud_pipeline_components/v1/automl/forecasting/bqml_arima_train_pipeline.yaml +31 -31
  37. google_cloud_pipeline_components/v1/automl/forecasting/prophet_predict_pipeline.yaml +13 -13
  38. google_cloud_pipeline_components/v1/automl/forecasting/prophet_trainer.py +3 -3
  39. google_cloud_pipeline_components/v1/automl/forecasting/prophet_trainer_pipeline.yaml +14 -14
  40. google_cloud_pipeline_components/v1/automl/tabular/automl_tabular_pipeline.yaml +37 -37
  41. google_cloud_pipeline_components/v1/automl/tabular/cv_trainer.py +2 -2
  42. google_cloud_pipeline_components/v1/automl/tabular/ensemble.py +2 -2
  43. google_cloud_pipeline_components/v1/automl/tabular/finalizer.py +1 -1
  44. google_cloud_pipeline_components/v1/automl/tabular/infra_validator.py +1 -1
  45. google_cloud_pipeline_components/v1/automl/tabular/split_materialized_data.py +1 -1
  46. google_cloud_pipeline_components/v1/automl/tabular/stage_1_tuner.py +2 -2
  47. google_cloud_pipeline_components/v1/automl/tabular/stats_and_example_gen.py +2 -2
  48. google_cloud_pipeline_components/v1/automl/tabular/training_configurator_and_validator.py +1 -1
  49. google_cloud_pipeline_components/v1/automl/tabular/transform.py +2 -2
  50. google_cloud_pipeline_components/v1/custom_job/component.py +3 -0
  51. google_cloud_pipeline_components/v1/custom_job/utils.py +4 -0
  52. google_cloud_pipeline_components/v1/model_evaluation/evaluation_llm_text_generation_pipeline.py +17 -0
  53. google_cloud_pipeline_components/version.py +1 -1
  54. {google_cloud_pipeline_components-2.15.0.dist-info → google_cloud_pipeline_components-2.16.0.dist-info}/METADATA +17 -17
  55. {google_cloud_pipeline_components-2.15.0.dist-info → google_cloud_pipeline_components-2.16.0.dist-info}/RECORD +58 -58
  56. {google_cloud_pipeline_components-2.15.0.dist-info → google_cloud_pipeline_components-2.16.0.dist-info}/WHEEL +1 -1
  57. {google_cloud_pipeline_components-2.15.0.dist-info → google_cloud_pipeline_components-2.16.0.dist-info}/LICENSE +0 -0
  58. {google_cloud_pipeline_components-2.15.0.dist-info → google_cloud_pipeline_components-2.16.0.dist-info}/top_level.txt +0 -0
@@ -54,7 +54,7 @@ def create_custom_training_job_from_component(
54
54
  display_name: str = '',
55
55
  replica_count: int = 1,
56
56
  machine_type: str = 'n1-standard-4',
57
- accelerator_type: str = '',
57
+ accelerator_type: str = 'ACCELERATOR_TYPE_UNSPECIFIED',
58
58
  accelerator_count: int = 1,
59
59
  boot_disk_type: str = 'pd-ssd',
60
60
  boot_disk_size_gb: int = 100,
@@ -83,7 +83,7 @@ def create_custom_training_job_from_component(
83
83
  replica_count: The count of instances in the cluster. One replica always counts towards the master in worker_pool_spec[0] and the remaining replicas will be allocated in worker_pool_spec[1]. See [more information.](https://cloud.google.com/vertex-ai/docs/training/distributed-training#configure_a_distributed_training_job)
84
84
  machine_type: The type of the machine to run the CustomJob. The default value is "n1-standard-4". See [more information](https://cloud.google.com/vertex-ai/docs/training/configure-compute#machine-types).
85
85
  accelerator_type: The type of accelerator(s) that may be attached to the machine per `accelerator_count`. See [more information](https://cloud.google.com/vertex-ai/docs/reference/rest/v1/MachineSpec#acceleratortype).
86
- accelerator_count: The number of accelerators to attach to the machine. Defaults to 1 if `accelerator_type` is set.
86
+ accelerator_count: The number of accelerators to attach to the machine. Defaults to 1 if `accelerator_type` is set statically.
87
87
  boot_disk_type: 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). boot_disk_type is set as a static value and cannot be changed as a pipeline parameter.
88
88
  boot_disk_size_gb: Size in GB of the boot disk (default is 100GB). `boot_disk_size_gb` is set as a static value and cannot be changed as a pipeline parameter.
89
89
  timeout: The maximum job running time. The default is 7 days. A duration in seconds with up to nine fractional digits, terminated by 's', for example: "3.5s".
@@ -148,7 +148,11 @@ def create_custom_training_job_from_component(
148
148
  )[0]['container']
149
149
 
150
150
  worker_pool_spec = {
151
- 'machine_spec': {'machine_type': machine_type},
151
+ 'machine_spec': {
152
+ 'machine_type': "{{$.inputs.parameters['machine_type']}}",
153
+ 'accelerator_type': "{{$.inputs.parameters['accelerator_type']}}",
154
+ 'accelerator_count': "{{$.inputs.parameters['accelerator_count']}}",
155
+ },
152
156
  'replica_count': 1,
153
157
  'container_spec': {
154
158
  'image_uri': user_component_container['image'],
@@ -161,9 +165,6 @@ def create_custom_training_job_from_component(
161
165
  'env': env or [],
162
166
  },
163
167
  }
164
- if accelerator_type:
165
- worker_pool_spec['machine_spec']['accelerator_type'] = accelerator_type
166
- worker_pool_spec['machine_spec']['accelerator_count'] = accelerator_count
167
168
  if boot_disk_type:
168
169
  worker_pool_spec['disk_spec'] = {
169
170
  'boot_disk_type': boot_disk_type,
@@ -210,6 +211,43 @@ def create_custom_training_job_from_component(
210
211
  'defaultValue'
211
212
  ] = default_value
212
213
 
214
+ # add machine parameters into the customjob component
215
+ if accelerator_type == 'ACCELERATOR_TYPE_UNSPECIFIED':
216
+ accelerator_count = 0
217
+
218
+ cj_component_spec['inputDefinitions']['parameters']['machine_type'] = {
219
+ 'parameterType': 'STRING',
220
+ 'defaultValue': machine_type,
221
+ 'isOptional': True,
222
+ }
223
+ cj_component_spec['inputDefinitions']['parameters']['accelerator_type'] = {
224
+ 'parameterType': 'STRING',
225
+ 'defaultValue': accelerator_type,
226
+ 'isOptional': True,
227
+ }
228
+ cj_component_spec['inputDefinitions']['parameters']['accelerator_count'] = {
229
+ 'parameterType': 'NUMBER_INTEGER',
230
+ 'defaultValue': accelerator_count,
231
+ 'isOptional': True,
232
+ }
233
+
234
+ # check if user component has any input parameters that already exist in the
235
+ # custom job component
236
+ for param_name in user_component_spec.get('inputDefinitions', {}).get(
237
+ 'parameters', {}
238
+ ):
239
+ if param_name in cj_component_spec['inputDefinitions']['parameters']:
240
+ raise ValueError(
241
+ f'Input parameter {param_name} already exists in the CustomJob component.' # pylint: disable=line-too-long
242
+ )
243
+ for param_name in user_component_spec.get('outputDefinitions', {}).get(
244
+ 'parameters', {}
245
+ ):
246
+ if param_name in cj_component_spec['outputDefinitions']['parameters']:
247
+ raise ValueError(
248
+ f'Output parameter {param_name} already exists in the CustomJob component.' # pylint: disable=line-too-long
249
+ )
250
+
213
251
  # merge parameters from user component into the customjob component
214
252
  cj_component_spec['inputDefinitions']['parameters'].update(
215
253
  user_component_spec.get('inputDefinitions', {}).get('parameters', {})
@@ -217,6 +255,7 @@ def create_custom_training_job_from_component(
217
255
  cj_component_spec['outputDefinitions']['parameters'].update(
218
256
  user_component_spec.get('outputDefinitions', {}).get('parameters', {})
219
257
  )
258
+
220
259
  # use artifacts from user component
221
260
  ## assign artifacts, not update, since customjob has no artifact outputs
222
261
  cj_component_spec['inputDefinitions']['artifacts'] = user_component_spec.get(
@@ -57,6 +57,8 @@ def starry_net( # pylint: disable=dangerous-default-value
57
57
  dataprep_target_column: str = '',
58
58
  dataprep_static_covariate_columns: List[str] = [],
59
59
  dataprep_previous_run_dir: str = '',
60
+ dataprep_nan_threshold: float = 0.2,
61
+ dataprep_zero_threshold: float = 0.2,
60
62
  trainer_machine_type: str = 'n1-standard-4',
61
63
  trainer_accelerator_type: str = 'NVIDIA_TESLA_V100',
62
64
  trainer_num_epochs: int = 50,
@@ -84,7 +86,16 @@ def starry_net( # pylint: disable=dangerous-default-value
84
86
  project: str = _placeholders.PROJECT_ID_PLACEHOLDER,
85
87
  ):
86
88
  # fmt: off
87
- """Trains a STARRY-Net model.
89
+ """Starry Net is a state-of-the-art forecaster used internally by Google.
90
+
91
+ Starry Net is a glass-box neural network inspired by statistical time series
92
+ models, capable of cleaning step changes and spikes, modeling seasonality and
93
+ events, forecasting trend, and providing both point and prediction interval
94
+ forecasts in a single, lightweight model. Starry Net stands out among neural
95
+ network based forecasting models by providing the explainability,
96
+ interpretability and tunability of traditional statistical forecasters.
97
+ For example, it features time series feature decomposition and damped local
98
+ linear exponential smoothing model as the trend structure.
88
99
 
89
100
  Args:
90
101
  tensorboard_instance_id: The tensorboard instance ID. This must be in same
@@ -149,6 +160,13 @@ def starry_net( # pylint: disable=dangerous-default-value
149
160
  dataprep_previous_run_dir: The dataprep dir from a previous run. Use this
150
161
  to save time if you've already created TFRecords from your BigQuery
151
162
  dataset with the same dataprep parameters as this run.
163
+ dataprep_nan_threshold: Series having more nan / missing values than
164
+ nan_threshold (inclusive) in percentage for either backtest or forecast
165
+ will not be sampled in the training set (including missing due to
166
+ train_start and train_end). All existing nans are replaced by zeros.
167
+ dataprep_zero_threshold: Series having more 0.0 values than zero_threshold
168
+ (inclusive) in percentage for either backtest or forecast will not be
169
+ sampled in the training set.
152
170
  trainer_machine_type: The machine type for training. Must be compatible with
153
171
  trainer_accelerator_type.
154
172
  trainer_accelerator_type: The accelerator type for training.
@@ -221,39 +239,6 @@ def starry_net( # pylint: disable=dangerous-default-value
221
239
  model_blocks=trainer_model_blocks,
222
240
  static_covariates=dataprep_static_covariate_columns,
223
241
  )
224
- test_set_task = DataprepOp(
225
- backcast_length=dataprep_backcast_length,
226
- forecast_length=dataprep_forecast_length,
227
- train_end_date=dataprep_train_end_date,
228
- n_val_windows=dataprep_n_val_windows,
229
- n_test_windows=dataprep_n_test_windows,
230
- test_set_stride=dataprep_test_set_stride,
231
- model_blocks=create_dataprep_args_task.outputs['model_blocks'],
232
- bigquery_source=dataprep_bigquery_data_path,
233
- ts_identifier_columns=create_dataprep_args_task.outputs[
234
- 'ts_identifier_columns'],
235
- time_column=dataprep_time_column,
236
- static_covariate_columns=create_dataprep_args_task.outputs[
237
- 'static_covariate_columns'],
238
- target_column=dataprep_target_column,
239
- machine_type=dataflow_machine_type,
240
- docker_region=create_dataprep_args_task.outputs['docker_region'],
241
- location=location,
242
- project=project,
243
- job_id=job_id,
244
- job_name_prefix='test-set',
245
- num_workers=dataflow_starting_replica_count,
246
- max_num_workers=dataflow_max_replica_count,
247
- disk_size_gb=dataflow_disk_size_gb,
248
- test_set_only=True,
249
- bigquery_output=dataprep_test_set_bigquery_dataset,
250
- gcs_source=dataprep_csv_data_path,
251
- gcs_static_covariate_source=dataprep_csv_static_covariates_path,
252
- encryption_spec_key_name=encryption_spec_key_name
253
- )
254
- test_set_task.set_display_name('create-test-set')
255
- set_test_set_task = SetTestSetOp(
256
- dataprep_dir=test_set_task.outputs['dataprep_dir'])
257
242
  with dsl.If(create_dataprep_args_task.outputs['create_tf_records'] == True, # pylint: disable=singleton-comparison
258
243
  'create-tf-records'):
259
244
  create_tf_records_task = DataprepOp(
@@ -270,6 +255,7 @@ def starry_net( # pylint: disable=dangerous-default-value
270
255
  time_column=dataprep_time_column,
271
256
  static_covariate_columns=create_dataprep_args_task.outputs[
272
257
  'static_covariate_columns'],
258
+ static_covariates_vocab_path='',
273
259
  target_column=dataprep_target_column,
274
260
  machine_type=dataflow_machine_type,
275
261
  docker_region=create_dataprep_args_task.outputs['docker_region'],
@@ -282,6 +268,8 @@ def starry_net( # pylint: disable=dangerous-default-value
282
268
  disk_size_gb=dataflow_disk_size_gb,
283
269
  test_set_only=False,
284
270
  bigquery_output=dataprep_test_set_bigquery_dataset,
271
+ nan_threshold=dataprep_nan_threshold,
272
+ zero_threshold=dataprep_zero_threshold,
285
273
  gcs_source=dataprep_csv_data_path,
286
274
  gcs_static_covariate_source=dataprep_csv_static_covariates_path,
287
275
  encryption_spec_key_name=encryption_spec_key_name
@@ -303,6 +291,42 @@ def starry_net( # pylint: disable=dangerous-default-value
303
291
  'static_covariates_vocab_path'],
304
292
  set_tfrecord_args_this_run_task.outputs['static_covariates_vocab_path']
305
293
  )
294
+ test_set_task = DataprepOp(
295
+ backcast_length=dataprep_backcast_length,
296
+ forecast_length=dataprep_forecast_length,
297
+ train_end_date=dataprep_train_end_date,
298
+ n_val_windows=dataprep_n_val_windows,
299
+ n_test_windows=dataprep_n_test_windows,
300
+ test_set_stride=dataprep_test_set_stride,
301
+ model_blocks=create_dataprep_args_task.outputs['model_blocks'],
302
+ bigquery_source=dataprep_bigquery_data_path,
303
+ ts_identifier_columns=create_dataprep_args_task.outputs[
304
+ 'ts_identifier_columns'],
305
+ time_column=dataprep_time_column,
306
+ static_covariate_columns=create_dataprep_args_task.outputs[
307
+ 'static_covariate_columns'],
308
+ static_covariates_vocab_path=static_covariates_vocab_path,
309
+ target_column=dataprep_target_column,
310
+ machine_type=dataflow_machine_type,
311
+ docker_region=create_dataprep_args_task.outputs['docker_region'],
312
+ location=location,
313
+ project=project,
314
+ job_id=job_id,
315
+ job_name_prefix='test-set',
316
+ num_workers=dataflow_starting_replica_count,
317
+ max_num_workers=dataflow_max_replica_count,
318
+ disk_size_gb=dataflow_disk_size_gb,
319
+ test_set_only=True,
320
+ bigquery_output=dataprep_test_set_bigquery_dataset,
321
+ nan_threshold=dataprep_nan_threshold,
322
+ zero_threshold=dataprep_zero_threshold,
323
+ gcs_source=dataprep_csv_data_path,
324
+ gcs_static_covariate_source=dataprep_csv_static_covariates_path,
325
+ encryption_spec_key_name=encryption_spec_key_name
326
+ )
327
+ test_set_task.set_display_name('create-test-set')
328
+ set_test_set_task = SetTestSetOp(
329
+ dataprep_dir=test_set_task.outputs['dataprep_dir'])
306
330
  train_tf_record_patterns = dsl.OneOf(
307
331
  set_tfrecord_args_previous_run_task.outputs['train_tf_record_patterns'],
308
332
  set_tfrecord_args_this_run_task.outputs['train_tf_record_patterns']
@@ -330,6 +354,8 @@ def starry_net( # pylint: disable=dangerous-default-value
330
354
  n_val_windows=dataprep_n_val_windows,
331
355
  n_test_windows=dataprep_n_test_windows,
332
356
  test_set_stride=dataprep_test_set_stride,
357
+ nan_threshold=dataprep_nan_threshold,
358
+ zero_threshold=dataprep_zero_threshold,
333
359
  cleaning_activation_regularizer_coeff=trainer_cleaning_activation_regularizer_coeff,
334
360
  change_point_activation_regularizer_coeff=trainer_change_point_activation_regularizer_coeff,
335
361
  change_point_output_regularizer_coeff=trainer_change_point_output_regularizer_coeff,
@@ -658,7 +658,7 @@ deploymentSpec:
658
658
  \ = client.create_dataset(dataset=dataset, exists_ok=exists_ok)\n return\
659
659
  \ collections.namedtuple('Outputs', ['project_id', 'dataset_id'])(\n \
660
660
  \ ref.project, ref.dataset_id)\n\n"
661
- image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240419_0625
661
+ image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240710_0625
662
662
  exec-bigquery-create-dataset-2:
663
663
  container:
664
664
  args:
@@ -693,7 +693,7 @@ deploymentSpec:
693
693
  \ = client.create_dataset(dataset=dataset, exists_ok=exists_ok)\n return\
694
694
  \ collections.namedtuple('Outputs', ['project_id', 'dataset_id'])(\n \
695
695
  \ ref.project, ref.dataset_id)\n\n"
696
- image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240419_0625
696
+ image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240710_0625
697
697
  exec-bigquery-delete-dataset-with-prefix:
698
698
  container:
699
699
  args:
@@ -727,7 +727,7 @@ deploymentSpec:
727
727
  \ if dataset.dataset_id.startswith(dataset_prefix):\n client.delete_dataset(\n\
728
728
  \ dataset=dataset.dataset_id,\n delete_contents=delete_contents)\n\
729
729
  \n"
730
- image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240419_0625
730
+ image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240710_0625
731
731
  exec-bigquery-query-job:
732
732
  container:
733
733
  args:
@@ -788,7 +788,7 @@ deploymentSpec:
788
788
  \ 'datasetId': dataset_id,\n 'tableId': table_id,\n }\n\
789
789
  \ if write_disposition:\n config['write_disposition'] = write_disposition\n\
790
790
  \ return config\n\n"
791
- image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240419_0625
791
+ image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240710_0625
792
792
  exec-get-first-valid:
793
793
  container:
794
794
  args:
@@ -812,7 +812,7 @@ deploymentSpec:
812
812
  \ import json\n # pylint: enable=g-import-not-at-top,import-outside-toplevel,redefined-outer-name,reimported\n\
813
813
  \n for value in json.loads(values):\n if value:\n return value\n\
814
814
  \ raise ValueError('No valid values.')\n\n"
815
- image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240419_0625
815
+ image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240710_0625
816
816
  exec-get-model-metadata:
817
817
  container:
818
818
  args:
@@ -851,7 +851,7 @@ deploymentSpec:
851
851
  \ 'forecast_horizon',\n ],\n )(\n options.time_series_timestamp_column,\n\
852
852
  \ options.time_series_id_column,\n options.time_series_data_column,\n\
853
853
  \ options.horizon,\n )\n\n"
854
- image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240419_0625
854
+ image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240710_0625
855
855
  exec-get-table-location:
856
856
  container:
857
857
  args:
@@ -887,7 +887,7 @@ deploymentSpec:
887
887
  \ if table.startswith('bq://'):\n table = table[len('bq://'):]\n elif\
888
888
  \ table.startswith('bigquery://'):\n table = table[len('bigquery://'):]\n\
889
889
  \ return client.get_table(table).location\n\n"
890
- image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240419_0625
890
+ image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240710_0625
891
891
  exec-load-table-from-uri:
892
892
  container:
893
893
  args:
@@ -928,7 +928,7 @@ deploymentSpec:
928
928
  \ source_format=source_format)\n client.load_table_from_uri(\n source_uris=csv_list,\n\
929
929
  \ destination=destination,\n project=project,\n location=location,\n\
930
930
  \ job_config=job_config).result()\n return destination\n\n"
931
- image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240419_0625
931
+ image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240710_0625
932
932
  exec-maybe-replace-with-default:
933
933
  container:
934
934
  args:
@@ -950,7 +950,7 @@ deploymentSpec:
950
950
  \ *\n\ndef maybe_replace_with_default(value: str, default: str = '') ->\
951
951
  \ str:\n \"\"\"Replaces string with another value if it is a dash.\"\"\"\
952
952
  \n return default if not value else value\n\n"
953
- image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240419_0625
953
+ image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240710_0625
954
954
  exec-validate-inputs:
955
955
  container:
956
956
  args:
@@ -1046,7 +1046,7 @@ deploymentSpec:
1046
1046
  \ raise ValueError(\n 'Granularity unit should be one of the\
1047
1047
  \ following: '\n f'{valid_data_granularity_units}, got: {data_granularity_unit}.')\n\
1048
1048
  \n"
1049
- image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240419_0625
1049
+ image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240710_0625
1050
1050
  pipelineInfo:
1051
1051
  description: Forecasts using a BQML ARIMA_PLUS model.
1052
1052
  name: automl-tabular-bqml-arima-prediction
@@ -3399,7 +3399,7 @@ deploymentSpec:
3399
3399
  \ = client.create_dataset(dataset=dataset, exists_ok=exists_ok)\n return\
3400
3400
  \ collections.namedtuple('Outputs', ['project_id', 'dataset_id'])(\n \
3401
3401
  \ ref.project, ref.dataset_id)\n\n"
3402
- image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240419_0625
3402
+ image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240710_0625
3403
3403
  exec-bigquery-create-dataset-2:
3404
3404
  container:
3405
3405
  args:
@@ -3434,7 +3434,7 @@ deploymentSpec:
3434
3434
  \ = client.create_dataset(dataset=dataset, exists_ok=exists_ok)\n return\
3435
3435
  \ collections.namedtuple('Outputs', ['project_id', 'dataset_id'])(\n \
3436
3436
  \ ref.project, ref.dataset_id)\n\n"
3437
- image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240419_0625
3437
+ image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240710_0625
3438
3438
  exec-bigquery-create-model-job:
3439
3439
  container:
3440
3440
  args:
@@ -3494,7 +3494,7 @@ deploymentSpec:
3494
3494
  \ if dataset.dataset_id.startswith(dataset_prefix):\n client.delete_dataset(\n\
3495
3495
  \ dataset=dataset.dataset_id,\n delete_contents=delete_contents)\n\
3496
3496
  \n"
3497
- image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240419_0625
3497
+ image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240710_0625
3498
3498
  exec-bigquery-list-rows:
3499
3499
  container:
3500
3500
  args:
@@ -3532,7 +3532,7 @@ deploymentSpec:
3532
3532
  \ metadata['datasetId'], metadata['tableId']]))\n result = []\n for row\
3533
3533
  \ in rows:\n result.append({col: str(value) for col, value in dict(row).items()})\n\
3534
3534
  \ return result\n\n"
3535
- image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240419_0625
3535
+ image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240710_0625
3536
3536
  exec-bigquery-list-rows-2:
3537
3537
  container:
3538
3538
  args:
@@ -3570,7 +3570,7 @@ deploymentSpec:
3570
3570
  \ metadata['datasetId'], metadata['tableId']]))\n result = []\n for row\
3571
3571
  \ in rows:\n result.append({col: str(value) for col, value in dict(row).items()})\n\
3572
3572
  \ return result\n\n"
3573
- image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240419_0625
3573
+ image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240710_0625
3574
3574
  exec-bigquery-query-job:
3575
3575
  container:
3576
3576
  args:
@@ -3739,7 +3739,7 @@ deploymentSpec:
3739
3739
  \ 'datasetId': dataset_id,\n 'tableId': table_id,\n }\n\
3740
3740
  \ if write_disposition:\n config['write_disposition'] = write_disposition\n\
3741
3741
  \ return config\n\n"
3742
- image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240419_0625
3742
+ image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240710_0625
3743
3743
  exec-build-job-configuration-query-2:
3744
3744
  container:
3745
3745
  args:
@@ -3773,7 +3773,7 @@ deploymentSpec:
3773
3773
  \ 'datasetId': dataset_id,\n 'tableId': table_id,\n }\n\
3774
3774
  \ if write_disposition:\n config['write_disposition'] = write_disposition\n\
3775
3775
  \ return config\n\n"
3776
- image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240419_0625
3776
+ image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240710_0625
3777
3777
  exec-build-job-configuration-query-3:
3778
3778
  container:
3779
3779
  args:
@@ -3807,7 +3807,7 @@ deploymentSpec:
3807
3807
  \ 'datasetId': dataset_id,\n 'tableId': table_id,\n }\n\
3808
3808
  \ if write_disposition:\n config['write_disposition'] = write_disposition\n\
3809
3809
  \ return config\n\n"
3810
- image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240419_0625
3810
+ image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240710_0625
3811
3811
  exec-build-job-configuration-query-4:
3812
3812
  container:
3813
3813
  args:
@@ -3841,7 +3841,7 @@ deploymentSpec:
3841
3841
  \ 'datasetId': dataset_id,\n 'tableId': table_id,\n }\n\
3842
3842
  \ if write_disposition:\n config['write_disposition'] = write_disposition\n\
3843
3843
  \ return config\n\n"
3844
- image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240419_0625
3844
+ image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240710_0625
3845
3845
  exec-build-job-configuration-query-5:
3846
3846
  container:
3847
3847
  args:
@@ -3875,7 +3875,7 @@ deploymentSpec:
3875
3875
  \ 'datasetId': dataset_id,\n 'tableId': table_id,\n }\n\
3876
3876
  \ if write_disposition:\n config['write_disposition'] = write_disposition\n\
3877
3877
  \ return config\n\n"
3878
- image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240419_0625
3878
+ image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240710_0625
3879
3879
  exec-build-job-configuration-query-6:
3880
3880
  container:
3881
3881
  args:
@@ -3909,7 +3909,7 @@ deploymentSpec:
3909
3909
  \ 'datasetId': dataset_id,\n 'tableId': table_id,\n }\n\
3910
3910
  \ if write_disposition:\n config['write_disposition'] = write_disposition\n\
3911
3911
  \ return config\n\n"
3912
- image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240419_0625
3912
+ image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240710_0625
3913
3913
  exec-build-serialized-query-parameters:
3914
3914
  container:
3915
3915
  args:
@@ -3980,7 +3980,7 @@ deploymentSpec:
3980
3980
  \ 'name': 'start_time',\n 'parameterType': {\n 'type':\
3981
3981
  \ 'TIMESTAMP'\n },\n 'parameterValue': {\n 'value': start_time\n\
3982
3982
  \ },\n })\n return query_parameters\n\n"
3983
- image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240419_0625
3983
+ image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240710_0625
3984
3984
  exec-build-serialized-query-parameters-2:
3985
3985
  container:
3986
3986
  args:
@@ -4051,7 +4051,7 @@ deploymentSpec:
4051
4051
  \ 'name': 'start_time',\n 'parameterType': {\n 'type':\
4052
4052
  \ 'TIMESTAMP'\n },\n 'parameterValue': {\n 'value': start_time\n\
4053
4053
  \ },\n })\n return query_parameters\n\n"
4054
- image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240419_0625
4054
+ image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240710_0625
4055
4055
  exec-build-serialized-query-parameters-3:
4056
4056
  container:
4057
4057
  args:
@@ -4122,7 +4122,7 @@ deploymentSpec:
4122
4122
  \ 'name': 'start_time',\n 'parameterType': {\n 'type':\
4123
4123
  \ 'TIMESTAMP'\n },\n 'parameterValue': {\n 'value': start_time\n\
4124
4124
  \ },\n })\n return query_parameters\n\n"
4125
- image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240419_0625
4125
+ image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240710_0625
4126
4126
  exec-cond:
4127
4127
  container:
4128
4128
  args:
@@ -4144,7 +4144,7 @@ deploymentSpec:
4144
4144
  \ *\n\ndef cond(predicate: bool, true_str: str, false_str: str) -> str:\n\
4145
4145
  \ \"\"\"Returns true_str if predicate is true, else false_str.\"\"\"\n\
4146
4146
  \ return true_str if predicate else false_str\n\n"
4147
- image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240419_0625
4147
+ image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240710_0625
4148
4148
  exec-create-metrics-artifact:
4149
4149
  container:
4150
4150
  args:
@@ -4170,7 +4170,7 @@ deploymentSpec:
4170
4170
  \ 'MAPE': 'meanAbsolutePercentageError',\n }\n metrics = {metric_name_map[k]:\
4171
4171
  \ v for k, v in dict(metrics_rows[0]).items()}\n evaluation_metrics.metadata\
4172
4172
  \ = metrics\n\n"
4173
- image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240419_0625
4173
+ image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240710_0625
4174
4174
  exec-feature-transform-engine:
4175
4175
  container:
4176
4176
  args:
@@ -4255,8 +4255,8 @@ deploymentSpec:
4255
4255
  "/{{$.pipeline_job_uuid}}/{{$.pipeline_task_uuid}}/dataflow_tmp"]}'
4256
4256
  - '{"Concat": ["--dataflow_max_num_workers=", "{{$.inputs.parameters[''dataflow_max_num_workers'']}}"]}'
4257
4257
  - '{"Concat": ["--dataflow_machine_type=", "{{$.inputs.parameters[''dataflow_machine_type'']}}"]}'
4258
- - --dataflow_worker_container_image=us-docker.pkg.dev/vertex-ai/automl-tabular/dataflow-worker:20240419_0625
4259
- - --feature_transform_engine_docker_uri=us-docker.pkg.dev/vertex-ai/automl-tabular/feature-transform-engine:20240419_0625
4258
+ - --dataflow_worker_container_image=us-docker.pkg.dev/vertex-ai/automl-tabular/dataflow-worker:20240710_0625
4259
+ - --feature_transform_engine_docker_uri=us-docker.pkg.dev/vertex-ai/automl-tabular/feature-transform-engine:20240710_0625
4260
4260
  - '{"Concat": ["--dataflow_disk_size_gb=", "{{$.inputs.parameters[''dataflow_disk_size_gb'']}}"]}'
4261
4261
  - '{"Concat": ["--dataflow_subnetwork_fully_qualified=", "{{$.inputs.parameters[''dataflow_subnetwork'']}}"]}'
4262
4262
  - '{"Concat": ["--dataflow_use_public_ips=", "{{$.inputs.parameters[''dataflow_use_public_ips'']}}"]}'
@@ -4273,7 +4273,7 @@ deploymentSpec:
4273
4273
  - '{"IfPresent": {"InputName": "group_temporal_total_weight", "Then": {"Concat":
4274
4274
  ["--group_temporal_total_weight=", "{{$.inputs.parameters[''group_temporal_total_weight'']}}"]}}}'
4275
4275
  - '{"Concat": ["--encryption_spec_key_name=", "{{$.inputs.parameters[''encryption_spec_key_name'']}}"]}'
4276
- image: us-docker.pkg.dev/vertex-ai/automl-tabular/feature-transform-engine:20240419_0625
4276
+ image: us-docker.pkg.dev/vertex-ai/automl-tabular/feature-transform-engine:20240710_0625
4277
4277
  exec-get-fte-suffix:
4278
4278
  container:
4279
4279
  args:
@@ -4301,7 +4301,7 @@ deploymentSpec:
4301
4301
  \ table.table_id.startswith(fte_table):\n return table.table_id[len(fte_table)\
4302
4302
  \ + 1:]\n raise ValueError(\n f'No FTE output tables found in {bigquery_staging_full_dataset_id}.')\n\
4303
4303
  \n"
4304
- image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240419_0625
4304
+ image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240710_0625
4305
4305
  exec-get-table-location:
4306
4306
  container:
4307
4307
  args:
@@ -4337,7 +4337,7 @@ deploymentSpec:
4337
4337
  \ if table.startswith('bq://'):\n table = table[len('bq://'):]\n elif\
4338
4338
  \ table.startswith('bigquery://'):\n table = table[len('bigquery://'):]\n\
4339
4339
  \ return client.get_table(table).location\n\n"
4340
- image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240419_0625
4340
+ image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240710_0625
4341
4341
  exec-get-value:
4342
4342
  container:
4343
4343
  args:
@@ -4358,7 +4358,7 @@ deploymentSpec:
4358
4358
  - "\nimport kfp\nfrom kfp import dsl\nfrom kfp.dsl import *\nfrom typing import\
4359
4359
  \ *\n\ndef get_value(d: Dict[str, str], key: str) -> str:\n return d[key]\n\
4360
4360
  \n"
4361
- image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240419_0625
4361
+ image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240710_0625
4362
4362
  exec-get-window-query-priority:
4363
4363
  container:
4364
4364
  args:
@@ -4382,7 +4382,7 @@ deploymentSpec:
4382
4382
  \ depending on the window number.\"\"\"\n if int(window['window_number'])\
4383
4383
  \ <= max_interactive:\n return 'INTERACTIVE'\n else:\n return 'BATCH'\n\
4384
4384
  \n"
4385
- image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240419_0625
4385
+ image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240710_0625
4386
4386
  exec-maybe-replace-with-default:
4387
4387
  container:
4388
4388
  args:
@@ -4404,7 +4404,7 @@ deploymentSpec:
4404
4404
  \ *\n\ndef maybe_replace_with_default(value: str, default: str = '') ->\
4405
4405
  \ str:\n \"\"\"Replaces string with another value if it is a dash.\"\"\"\
4406
4406
  \n return default if not value else value\n\n"
4407
- image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240419_0625
4407
+ image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240710_0625
4408
4408
  exec-query-with-retry:
4409
4409
  container:
4410
4410
  args:
@@ -4458,7 +4458,7 @@ deploymentSpec:
4458
4458
  \ 'Query failed with %s. Retrying after %d seconds.', e, wait_time)\n\
4459
4459
  \ time.sleep(wait_time)\n retry_count += 1\n return destination_uri\n\
4460
4460
  \n"
4461
- image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240419_0625
4461
+ image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240710_0625
4462
4462
  exec-query-with-retry-2:
4463
4463
  container:
4464
4464
  args:
@@ -4512,7 +4512,7 @@ deploymentSpec:
4512
4512
  \ 'Query failed with %s. Retrying after %d seconds.', e, wait_time)\n\
4513
4513
  \ time.sleep(wait_time)\n retry_count += 1\n return destination_uri\n\
4514
4514
  \n"
4515
- image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240419_0625
4515
+ image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240710_0625
4516
4516
  exec-query-with-retry-3:
4517
4517
  container:
4518
4518
  args:
@@ -4566,7 +4566,7 @@ deploymentSpec:
4566
4566
  \ 'Query failed with %s. Retrying after %d seconds.', e, wait_time)\n\
4567
4567
  \ time.sleep(wait_time)\n retry_count += 1\n return destination_uri\n\
4568
4568
  \n"
4569
- image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240419_0625
4569
+ image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240710_0625
4570
4570
  exec-table-to-uri:
4571
4571
  container:
4572
4572
  args:
@@ -4596,7 +4596,7 @@ deploymentSpec:
4596
4596
  \ if use_bq_prefix:\n bq_uri = 'bq://' + bq_uri\n outputs.append(bq_uri)\n\
4597
4597
  \ return collections.namedtuple(\n 'Outputs',\n ['project_id',\
4598
4598
  \ 'dataset_id', 'table_id', 'uri'],\n )(*outputs)\n\n"
4599
- image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240419_0625
4599
+ image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240710_0625
4600
4600
  exec-table-to-uri-2:
4601
4601
  container:
4602
4602
  args:
@@ -4626,7 +4626,7 @@ deploymentSpec:
4626
4626
  \ if use_bq_prefix:\n bq_uri = 'bq://' + bq_uri\n outputs.append(bq_uri)\n\
4627
4627
  \ return collections.namedtuple(\n 'Outputs',\n ['project_id',\
4628
4628
  \ 'dataset_id', 'table_id', 'uri'],\n )(*outputs)\n\n"
4629
- image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240419_0625
4629
+ image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240710_0625
4630
4630
  exec-validate-inputs:
4631
4631
  container:
4632
4632
  args:
@@ -4722,7 +4722,7 @@ deploymentSpec:
4722
4722
  \ raise ValueError(\n 'Granularity unit should be one of the\
4723
4723
  \ following: '\n f'{valid_data_granularity_units}, got: {data_granularity_unit}.')\n\
4724
4724
  \n"
4725
- image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240419_0625
4725
+ image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240710_0625
4726
4726
  exec-wrapped-in-list:
4727
4727
  container:
4728
4728
  args:
@@ -4743,7 +4743,7 @@ deploymentSpec:
4743
4743
  - "\nimport kfp\nfrom kfp import dsl\nfrom kfp.dsl import *\nfrom typing import\
4744
4744
  \ *\n\ndef wrapped_in_list(value: str) -> List[str]:\n \"\"\"Wraps a string\
4745
4745
  \ in a list.\"\"\"\n return [value]\n\n"
4746
- image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240419_0625
4746
+ image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:20240710_0625
4747
4747
  pipelineInfo:
4748
4748
  description: Trains a BQML ARIMA_PLUS model.
4749
4749
  name: automl-tabular-bqml-arima-train