python/pipelines/automl_tabular_pl_v1.yaml [6979:7190]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:dev
    exec-string-not-empty:
      container:
        args:
        - --executor_input
        - '{{$}}'
        - --function_to_execute
        - _string_not_empty
        command:
        - sh
        - -ec
        - 'program_path=$(mktemp -d)

          printf "%s" "$0" > "$program_path/ephemeral_component.py"

          python3 -m kfp.components.executor_main                         --component_module_path                         "$program_path/ephemeral_component.py"                         "$@"

          '
        - "\nimport kfp\nfrom kfp import dsl\nfrom kfp.dsl import *\nfrom typing import\
          \ *\n\ndef _string_not_empty(value: str) -> str:\n  \"\"\"Check if the input\
          \ string value is not empty.\n\n  Args:\n    value: String value to be checked.\n\
          \n  Returns:\n    Boolean value. -> 'true' if empty, 'false' if not empty.\
          \ We need to use str\n    instead of bool due to a limitation in KFP compiler.\n\
          \  \"\"\"\n  return 'true' if value else 'false'\n\n"
        image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:dev
    exec-tabular-stats-and-example-gen:
      container:
        args:
        - --type
        - CustomJob
        - --project
        - '{{$.inputs.parameters[''project'']}}'
        - --location
        - '{{$.inputs.parameters[''location'']}}'
        - --gcp_resources
        - '{{$.outputs.parameters[''gcp_resources''].output_file}}'
        - --payload
        - '{"Concat": ["{\"display_name\": \"tabular-stats-and-example-gen-{{$.pipeline_job_uuid}}-{{$.pipeline_task_uuid}}\",
          \"encryption_spec\": {\"kms_key_name\":\"", "{{$.inputs.parameters[''encryption_spec_key_name'']}}",
          "\"}, \"job_spec\": {\"worker_pool_specs\": [{\"replica_count\": 1, \"machine_spec\":
          {\"machine_type\": \"n1-standard-8\"}, \"container_spec\": {\"image_uri\":\"",
          "us-docker.pkg.dev/vertex-ai-restricted/automl-tabular/training:dev", "\",
          \"args\": [\"stats_generator\",", "\"--train_spec={\\\"prediction_type\\\":
          \\\"", "{{$.inputs.parameters[''prediction_type'']}}", "\\\", \\\"target_column\\\":
          \\\"", "{{$.inputs.parameters[''target_column_name'']}}", "\\\", \\\"optimization_objective\\\":
          \\\"", "{{$.inputs.parameters[''optimization_objective'']}}", "\\\", \\\"weight_column_name\\\":
          \\\"", "{{$.inputs.parameters[''weight_column_name'']}}", "\\\", \\\"transformations\\\":
          ", "{{$.inputs.parameters[''transformations'']}}", ", \\\"quantiles\\\":
          ", "{{$.inputs.parameters[''quantiles'']}}", ", \\\"enable_probabilistic_inference\\\":
          ", "{{$.inputs.parameters[''enable_probabilistic_inference'']}}", "}\",
          \"--transformations_override_path=", "{{$.inputs.parameters[''transformations_path'']}}",
          "\", \"--data_source_csv_filenames=", "{{$.inputs.parameters[''data_source_csv_filenames'']}}",
          "\", \"--data_source_bigquery_table_path=", "{{$.inputs.parameters[''data_source_bigquery_table_path'']}}",
          "\", \"--predefined_split_key=", "{{$.inputs.parameters[''predefined_split_key'']}}",
          "\", \"--timestamp_split_key=", "{{$.inputs.parameters[''timestamp_split_key'']}}",
          "\", \"--stratified_split_key=", "{{$.inputs.parameters[''stratified_split_key'']}}",
          "\", \"--training_fraction=", "{{$.inputs.parameters[''training_fraction'']}}",
          "\", \"--validation_fraction=", "{{$.inputs.parameters[''validation_fraction'']}}",
          "\", \"--test_fraction=", "{{$.inputs.parameters[''test_fraction'']}}",
          "\", \"--target_column=", "{{$.inputs.parameters[''target_column_name'']}}",
          "\", \"--request_type=", "{{$.inputs.parameters[''request_type'']}}", "\",
          \"--optimization_objective_recall_value=", "{{$.inputs.parameters[''optimization_objective_recall_value'']}}",
          "\", \"--optimization_objective_precision_value=", "{{$.inputs.parameters[''optimization_objective_precision_value'']}}",
          "\", \"--example_gen_gcs_output_prefix=", "{{$.inputs.parameters[''root_dir'']}}",
          "/{{$.pipeline_job_uuid}}/{{$.pipeline_task_uuid}}/example_gen_output\",
          \"--dataset_stats_dir=", "{{$.inputs.parameters[''root_dir'']}}", "/{{$.pipeline_job_uuid}}/{{$.pipeline_task_uuid}}/stats/\",
          \"--stats_result_path=", "{{$.outputs.artifacts[''dataset_stats''].uri}}",
          "\", \"--dataset_schema_path=", "{{$.outputs.artifacts[''dataset_schema''].uri}}",
          "\", \"--job_name=tabular-stats-and-example-gen-{{$.pipeline_job_uuid}}-{{$.pipeline_task_uuid}}",
          "\", \"--dataflow_project=", "{{$.inputs.parameters[''project'']}}", "\",
          \"--error_file_path=", "{{$.inputs.parameters[''root_dir'']}}", "/{{$.pipeline_job_uuid}}/{{$.pipeline_task_uuid}}/error.pb\",
          \"--dataflow_staging_dir=", "{{$.inputs.parameters[''root_dir'']}}", "/{{$.pipeline_job_uuid}}/{{$.pipeline_task_uuid}}/dataflow_staging\",
          \"--dataflow_tmp_dir=", "{{$.inputs.parameters[''root_dir'']}}", "/{{$.pipeline_job_uuid}}/{{$.pipeline_task_uuid}}/dataflow_tmp\",
          \"--dataflow_max_num_workers=", "{{$.inputs.parameters[''dataflow_max_num_workers'']}}",
          "\", \"--dataflow_worker_container_image=", "us-docker.pkg.dev/vertex-ai/automl-tabular/dataflow-worker:dev",
          "\", \"--dataflow_machine_type=", "{{$.inputs.parameters[''dataflow_machine_type'']}}",
          "\", \"--dataflow_disk_size_gb=", "{{$.inputs.parameters[''dataflow_disk_size_gb'']}}",
          "\", \"--dataflow_kms_key=", "{{$.inputs.parameters[''encryption_spec_key_name'']}}",
          "\", \"--dataflow_subnetwork_fully_qualified=", "{{$.inputs.parameters[''dataflow_subnetwork'']}}",
          "\", \"--dataflow_use_public_ips=", "{{$.inputs.parameters[''dataflow_use_public_ips'']}}",
          "\", \"--dataflow_service_account=", "{{$.inputs.parameters[''dataflow_service_account'']}}",
          "\", \"--is_distill=", "{{$.inputs.parameters[''run_distillation'']}}",
          "\", \"--additional_experiments=", "{{$.inputs.parameters[''additional_experiments'']}}",
          "\", \"--metadata_path=", "{{$.outputs.artifacts[''metadata''].uri}}", "\",
          \"--train_split=", "{{$.outputs.artifacts[''train_split''].uri}}", "\",
          \"--eval_split=", "{{$.outputs.artifacts[''eval_split''].uri}}", "\", \"--test_split=",
          "{{$.outputs.artifacts[''test_split''].uri}}", "\", \"--test_split_for_batch_prediction_component=",
          "{{$.outputs.parameters[''test_split_json''].output_file}}", "\", \"--downsampled_test_split_for_batch_prediction_component=",
          "{{$.outputs.parameters[''downsampled_test_split_json''].output_file}}",
          "\", \"--instance_baseline_path=", "{{$.outputs.artifacts[''instance_baseline''].uri}}",
          "\", \"--lro_job_info=", "{{$.inputs.parameters[''root_dir'']}}", "/{{$.pipeline_job_uuid}}/lro\",
          \"--gcp_resources_path=", "{{$.outputs.parameters[''gcp_resources''].output_file}}",
          "\", \"--parse_json=true\", \"--generate_additional_downsample_test_split=true\",
          \"--executor_input={{$.json_escape[1]}}\"]}}]}}"]}'
        command:
        - python3
        - -u
        - -m
        - google_cloud_pipeline_components.container.v1.custom_job.launcher
        image: gcr.io/ml-pipeline/google-cloud-pipeline-components:1.0.32
    exec-write-bp-result-path:
      container:
        args:
        - --executor_input
        - '{{$}}'
        - --function_to_execute
        - _write_bp_result_path
        command:
        - sh
        - -ec
        - 'program_path=$(mktemp -d)

          printf "%s" "$0" > "$program_path/ephemeral_component.py"

          python3 -m kfp.components.executor_main                         --component_module_path                         "$program_path/ephemeral_component.py"                         "$@"

          '
        - "\nimport kfp\nfrom kfp import dsl\nfrom kfp.dsl import *\nfrom typing import\
          \ *\n\ndef _write_bp_result_path(\n    bp_job: Input[Artifact],\n    result:\
          \ OutputPath('Dataset'),\n):\n  \"\"\"Construct Dataset based on the batch\
          \ prediction job.\n\n  Args:\n    bp_job: The batch prediction job artifact.\n\
          \    result: Tbe path to the file that contains Dataset data.\n  \"\"\"\n\
          \  # pylint: disable=g-import-not-at-top,import-outside-toplevel,redefined-outer-name,reimported\n\
          \  import json\n  # pylint: enable=g-import-not-at-top,import-outside-toplevel,redefined-outer-name,reimported\n\
          \  directory = bp_job.metadata['gcsOutputDirectory']\n  data_source = {\n\
          \      'tf_record_data_source': {\n          'file_patterns': [f'{directory}/prediction.results-*',],\n\
          \          'coder': 'PROTO_VALUE',\n      },\n  }\n  with open(result, 'w')\
          \ as f:\n    f.write(json.dumps(data_source))\n\n"
        image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:dev
    exec-write-bp-result-path-2:
      container:
        args:
        - --executor_input
        - '{{$}}'
        - --function_to_execute
        - _write_bp_result_path
        command:
        - sh
        - -ec
        - 'program_path=$(mktemp -d)

          printf "%s" "$0" > "$program_path/ephemeral_component.py"

          python3 -m kfp.components.executor_main                         --component_module_path                         "$program_path/ephemeral_component.py"                         "$@"

          '
        - "\nimport kfp\nfrom kfp import dsl\nfrom kfp.dsl import *\nfrom typing import\
          \ *\n\ndef _write_bp_result_path(\n    bp_job: Input[Artifact],\n    result:\
          \ OutputPath('Dataset'),\n):\n  \"\"\"Construct Dataset based on the batch\
          \ prediction job.\n\n  Args:\n    bp_job: The batch prediction job artifact.\n\
          \    result: Tbe path to the file that contains Dataset data.\n  \"\"\"\n\
          \  # pylint: disable=g-import-not-at-top,import-outside-toplevel,redefined-outer-name,reimported\n\
          \  import json\n  # pylint: enable=g-import-not-at-top,import-outside-toplevel,redefined-outer-name,reimported\n\
          \  directory = bp_job.metadata['gcsOutputDirectory']\n  data_source = {\n\
          \      'tf_record_data_source': {\n          'file_patterns': [f'{directory}/prediction.results-*',],\n\
          \          'coder': 'PROTO_VALUE',\n      },\n  }\n  with open(result, 'w')\
          \ as f:\n    f.write(json.dumps(data_source))\n\n"
        image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:dev
pipelineInfo:
  name: automl-tabular
root:
  dag:
    outputs:
      artifacts:
        feature-attribution-2-feature_attributions:
          artifactSelectors:
          - outputArtifactKey: feature-attribution-2-feature_attributions
            producerSubtask: exit-handler-1
        feature-attribution-3-feature_attributions:
          artifactSelectors:
          - outputArtifactKey: feature-attribution-3-feature_attributions
            producerSubtask: exit-handler-1
        feature-attribution-feature_attributions:
          artifactSelectors:
          - outputArtifactKey: feature-attribution-feature_attributions
            producerSubtask: exit-handler-1
        model-evaluation-2-evaluation_metrics:
          artifactSelectors:
          - outputArtifactKey: model-evaluation-2-evaluation_metrics
            producerSubtask: exit-handler-1
        model-evaluation-3-evaluation_metrics:
          artifactSelectors:
          - outputArtifactKey: model-evaluation-3-evaluation_metrics
            producerSubtask: exit-handler-1
        model-evaluation-evaluation_metrics:
          artifactSelectors:
          - outputArtifactKey: model-evaluation-evaluation_metrics
            producerSubtask: exit-handler-1
    tasks:
      automl-tabular-finalizer:
        cachingOptions:
          enableCache: true
        componentRef:
          name: comp-automl-tabular-finalizer
        dependentTasks:
        - exit-handler-1
        inputs:
          parameters:
            location:
              componentInputParameter: location
            project:
              componentInputParameter: project
            root_dir:
              componentInputParameter: root_dir
        taskInfo:
          name: automl-tabular-finalizer
        triggerPolicy:
          strategy: ALL_UPSTREAM_TASKS_COMPLETED
      exit-handler-1:
        componentRef:
          name: comp-exit-handler-1
        dependentTasks:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



python/pipelines/automl_tabular_pl_v2.yaml [7636:7847]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:dev
    exec-string-not-empty:
      container:
        args:
        - --executor_input
        - '{{$}}'
        - --function_to_execute
        - _string_not_empty
        command:
        - sh
        - -ec
        - 'program_path=$(mktemp -d)

          printf "%s" "$0" > "$program_path/ephemeral_component.py"

          python3 -m kfp.components.executor_main                         --component_module_path                         "$program_path/ephemeral_component.py"                         "$@"

          '
        - "\nimport kfp\nfrom kfp import dsl\nfrom kfp.dsl import *\nfrom typing import\
          \ *\n\ndef _string_not_empty(value: str) -> str:\n  \"\"\"Check if the input\
          \ string value is not empty.\n\n  Args:\n    value: String value to be checked.\n\
          \n  Returns:\n    Boolean value. -> 'true' if empty, 'false' if not empty.\
          \ We need to use str\n    instead of bool due to a limitation in KFP compiler.\n\
          \  \"\"\"\n  return 'true' if value else 'false'\n\n"
        image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:dev
    exec-tabular-stats-and-example-gen:
      container:
        args:
        - --type
        - CustomJob
        - --project
        - '{{$.inputs.parameters[''project'']}}'
        - --location
        - '{{$.inputs.parameters[''location'']}}'
        - --gcp_resources
        - '{{$.outputs.parameters[''gcp_resources''].output_file}}'
        - --payload
        - '{"Concat": ["{\"display_name\": \"tabular-stats-and-example-gen-{{$.pipeline_job_uuid}}-{{$.pipeline_task_uuid}}\",
          \"encryption_spec\": {\"kms_key_name\":\"", "{{$.inputs.parameters[''encryption_spec_key_name'']}}",
          "\"}, \"job_spec\": {\"worker_pool_specs\": [{\"replica_count\": 1, \"machine_spec\":
          {\"machine_type\": \"n1-standard-8\"}, \"container_spec\": {\"image_uri\":\"",
          "us-docker.pkg.dev/vertex-ai-restricted/automl-tabular/training:dev", "\",
          \"args\": [\"stats_generator\",", "\"--train_spec={\\\"prediction_type\\\":
          \\\"", "{{$.inputs.parameters[''prediction_type'']}}", "\\\", \\\"target_column\\\":
          \\\"", "{{$.inputs.parameters[''target_column_name'']}}", "\\\", \\\"optimization_objective\\\":
          \\\"", "{{$.inputs.parameters[''optimization_objective'']}}", "\\\", \\\"weight_column_name\\\":
          \\\"", "{{$.inputs.parameters[''weight_column_name'']}}", "\\\", \\\"transformations\\\":
          ", "{{$.inputs.parameters[''transformations'']}}", ", \\\"quantiles\\\":
          ", "{{$.inputs.parameters[''quantiles'']}}", ", \\\"enable_probabilistic_inference\\\":
          ", "{{$.inputs.parameters[''enable_probabilistic_inference'']}}", "}\",
          \"--transformations_override_path=", "{{$.inputs.parameters[''transformations_path'']}}",
          "\", \"--data_source_csv_filenames=", "{{$.inputs.parameters[''data_source_csv_filenames'']}}",
          "\", \"--data_source_bigquery_table_path=", "{{$.inputs.parameters[''data_source_bigquery_table_path'']}}",
          "\", \"--predefined_split_key=", "{{$.inputs.parameters[''predefined_split_key'']}}",
          "\", \"--timestamp_split_key=", "{{$.inputs.parameters[''timestamp_split_key'']}}",
          "\", \"--stratified_split_key=", "{{$.inputs.parameters[''stratified_split_key'']}}",
          "\", \"--training_fraction=", "{{$.inputs.parameters[''training_fraction'']}}",
          "\", \"--validation_fraction=", "{{$.inputs.parameters[''validation_fraction'']}}",
          "\", \"--test_fraction=", "{{$.inputs.parameters[''test_fraction'']}}",
          "\", \"--target_column=", "{{$.inputs.parameters[''target_column_name'']}}",
          "\", \"--request_type=", "{{$.inputs.parameters[''request_type'']}}", "\",
          \"--optimization_objective_recall_value=", "{{$.inputs.parameters[''optimization_objective_recall_value'']}}",
          "\", \"--optimization_objective_precision_value=", "{{$.inputs.parameters[''optimization_objective_precision_value'']}}",
          "\", \"--example_gen_gcs_output_prefix=", "{{$.inputs.parameters[''root_dir'']}}",
          "/{{$.pipeline_job_uuid}}/{{$.pipeline_task_uuid}}/example_gen_output\",
          \"--dataset_stats_dir=", "{{$.inputs.parameters[''root_dir'']}}", "/{{$.pipeline_job_uuid}}/{{$.pipeline_task_uuid}}/stats/\",
          \"--stats_result_path=", "{{$.outputs.artifacts[''dataset_stats''].uri}}",
          "\", \"--dataset_schema_path=", "{{$.outputs.artifacts[''dataset_schema''].uri}}",
          "\", \"--job_name=tabular-stats-and-example-gen-{{$.pipeline_job_uuid}}-{{$.pipeline_task_uuid}}",
          "\", \"--dataflow_project=", "{{$.inputs.parameters[''project'']}}", "\",
          \"--error_file_path=", "{{$.inputs.parameters[''root_dir'']}}", "/{{$.pipeline_job_uuid}}/{{$.pipeline_task_uuid}}/error.pb\",
          \"--dataflow_staging_dir=", "{{$.inputs.parameters[''root_dir'']}}", "/{{$.pipeline_job_uuid}}/{{$.pipeline_task_uuid}}/dataflow_staging\",
          \"--dataflow_tmp_dir=", "{{$.inputs.parameters[''root_dir'']}}", "/{{$.pipeline_job_uuid}}/{{$.pipeline_task_uuid}}/dataflow_tmp\",
          \"--dataflow_max_num_workers=", "{{$.inputs.parameters[''dataflow_max_num_workers'']}}",
          "\", \"--dataflow_worker_container_image=", "us-docker.pkg.dev/vertex-ai/automl-tabular/dataflow-worker:dev",
          "\", \"--dataflow_machine_type=", "{{$.inputs.parameters[''dataflow_machine_type'']}}",
          "\", \"--dataflow_disk_size_gb=", "{{$.inputs.parameters[''dataflow_disk_size_gb'']}}",
          "\", \"--dataflow_kms_key=", "{{$.inputs.parameters[''encryption_spec_key_name'']}}",
          "\", \"--dataflow_subnetwork_fully_qualified=", "{{$.inputs.parameters[''dataflow_subnetwork'']}}",
          "\", \"--dataflow_use_public_ips=", "{{$.inputs.parameters[''dataflow_use_public_ips'']}}",
          "\", \"--dataflow_service_account=", "{{$.inputs.parameters[''dataflow_service_account'']}}",
          "\", \"--is_distill=", "{{$.inputs.parameters[''run_distillation'']}}",
          "\", \"--additional_experiments=", "{{$.inputs.parameters[''additional_experiments'']}}",
          "\", \"--metadata_path=", "{{$.outputs.artifacts[''metadata''].uri}}", "\",
          \"--train_split=", "{{$.outputs.artifacts[''train_split''].uri}}", "\",
          \"--eval_split=", "{{$.outputs.artifacts[''eval_split''].uri}}", "\", \"--test_split=",
          "{{$.outputs.artifacts[''test_split''].uri}}", "\", \"--test_split_for_batch_prediction_component=",
          "{{$.outputs.parameters[''test_split_json''].output_file}}", "\", \"--downsampled_test_split_for_batch_prediction_component=",
          "{{$.outputs.parameters[''downsampled_test_split_json''].output_file}}",
          "\", \"--instance_baseline_path=", "{{$.outputs.artifacts[''instance_baseline''].uri}}",
          "\", \"--lro_job_info=", "{{$.inputs.parameters[''root_dir'']}}", "/{{$.pipeline_job_uuid}}/lro\",
          \"--gcp_resources_path=", "{{$.outputs.parameters[''gcp_resources''].output_file}}",
          "\", \"--parse_json=true\", \"--generate_additional_downsample_test_split=true\",
          \"--executor_input={{$.json_escape[1]}}\"]}}]}}"]}'
        command:
        - python3
        - -u
        - -m
        - google_cloud_pipeline_components.container.v1.custom_job.launcher
        image: gcr.io/ml-pipeline/google-cloud-pipeline-components:1.0.32
    exec-write-bp-result-path:
      container:
        args:
        - --executor_input
        - '{{$}}'
        - --function_to_execute
        - _write_bp_result_path
        command:
        - sh
        - -ec
        - 'program_path=$(mktemp -d)

          printf "%s" "$0" > "$program_path/ephemeral_component.py"

          python3 -m kfp.components.executor_main                         --component_module_path                         "$program_path/ephemeral_component.py"                         "$@"

          '
        - "\nimport kfp\nfrom kfp import dsl\nfrom kfp.dsl import *\nfrom typing import\
          \ *\n\ndef _write_bp_result_path(\n    bp_job: Input[Artifact],\n    result:\
          \ OutputPath('Dataset'),\n):\n  \"\"\"Construct Dataset based on the batch\
          \ prediction job.\n\n  Args:\n    bp_job: The batch prediction job artifact.\n\
          \    result: Tbe path to the file that contains Dataset data.\n  \"\"\"\n\
          \  # pylint: disable=g-import-not-at-top,import-outside-toplevel,redefined-outer-name,reimported\n\
          \  import json\n  # pylint: enable=g-import-not-at-top,import-outside-toplevel,redefined-outer-name,reimported\n\
          \  directory = bp_job.metadata['gcsOutputDirectory']\n  data_source = {\n\
          \      'tf_record_data_source': {\n          'file_patterns': [f'{directory}/prediction.results-*',],\n\
          \          'coder': 'PROTO_VALUE',\n      },\n  }\n  with open(result, 'w')\
          \ as f:\n    f.write(json.dumps(data_source))\n\n"
        image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:dev
    exec-write-bp-result-path-2:
      container:
        args:
        - --executor_input
        - '{{$}}'
        - --function_to_execute
        - _write_bp_result_path
        command:
        - sh
        - -ec
        - 'program_path=$(mktemp -d)

          printf "%s" "$0" > "$program_path/ephemeral_component.py"

          python3 -m kfp.components.executor_main                         --component_module_path                         "$program_path/ephemeral_component.py"                         "$@"

          '
        - "\nimport kfp\nfrom kfp import dsl\nfrom kfp.dsl import *\nfrom typing import\
          \ *\n\ndef _write_bp_result_path(\n    bp_job: Input[Artifact],\n    result:\
          \ OutputPath('Dataset'),\n):\n  \"\"\"Construct Dataset based on the batch\
          \ prediction job.\n\n  Args:\n    bp_job: The batch prediction job artifact.\n\
          \    result: Tbe path to the file that contains Dataset data.\n  \"\"\"\n\
          \  # pylint: disable=g-import-not-at-top,import-outside-toplevel,redefined-outer-name,reimported\n\
          \  import json\n  # pylint: enable=g-import-not-at-top,import-outside-toplevel,redefined-outer-name,reimported\n\
          \  directory = bp_job.metadata['gcsOutputDirectory']\n  data_source = {\n\
          \      'tf_record_data_source': {\n          'file_patterns': [f'{directory}/prediction.results-*',],\n\
          \          'coder': 'PROTO_VALUE',\n      },\n  }\n  with open(result, 'w')\
          \ as f:\n    f.write(json.dumps(data_source))\n\n"
        image: us-docker.pkg.dev/vertex-ai/automl-tabular/kfp-v2-base:dev
pipelineInfo:
  name: automl-tabular
root:
  dag:
    outputs:
      artifacts:
        feature-attribution-2-feature_attributions:
          artifactSelectors:
          - outputArtifactKey: feature-attribution-2-feature_attributions
            producerSubtask: exit-handler-1
        feature-attribution-3-feature_attributions:
          artifactSelectors:
          - outputArtifactKey: feature-attribution-3-feature_attributions
            producerSubtask: exit-handler-1
        feature-attribution-feature_attributions:
          artifactSelectors:
          - outputArtifactKey: feature-attribution-feature_attributions
            producerSubtask: exit-handler-1
        model-evaluation-2-evaluation_metrics:
          artifactSelectors:
          - outputArtifactKey: model-evaluation-2-evaluation_metrics
            producerSubtask: exit-handler-1
        model-evaluation-3-evaluation_metrics:
          artifactSelectors:
          - outputArtifactKey: model-evaluation-3-evaluation_metrics
            producerSubtask: exit-handler-1
        model-evaluation-evaluation_metrics:
          artifactSelectors:
          - outputArtifactKey: model-evaluation-evaluation_metrics
            producerSubtask: exit-handler-1
    tasks:
      automl-tabular-finalizer:
        cachingOptions:
          enableCache: true
        componentRef:
          name: comp-automl-tabular-finalizer
        dependentTasks:
        - exit-handler-1
        inputs:
          parameters:
            location:
              componentInputParameter: location
            project:
              componentInputParameter: project
            root_dir:
              componentInputParameter: root_dir
        taskInfo:
          name: automl-tabular-finalizer
        triggerPolicy:
          strategy: ALL_UPSTREAM_TASKS_COMPLETED
      exit-handler-1:
        componentRef:
          name: comp-exit-handler-1
        dependentTasks:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



