From ad03bb6daa03442a7fda19904a97db3745d5044f Mon Sep 17 00:00:00 2001 From: Googler Date: Wed, 31 Jul 2024 12:46:52 -0700 Subject: [PATCH] feat(component): internal Signed-off-by: Googler PiperOrigin-RevId: 658108277 --- components/google-cloud/RELEASE.md | 1 + .../evaluation_llm_text_generation_pipeline.py | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/components/google-cloud/RELEASE.md b/components/google-cloud/RELEASE.md index 56ff2c9b55d..20fc219125d 100644 --- a/components/google-cloud/RELEASE.md +++ b/components/google-cloud/RELEASE.md @@ -7,6 +7,7 @@ * Bump image for Structured Data pipelines. * Add check that component in preview.custom_job.utils.create_custom_training_job_from_component doesn't have any parameters that share names with any custom job fields * Add dynamic machine spec support for `preview.custom_job.utils.create_custom_training_job_from_component`. +* Add preflight validations for LLM text generation pipeline. ## Release 2.15.0 * Add Gemini batch prediction support to `v1.model_evaluation.autosxs_pipeline`. diff --git a/components/google-cloud/google_cloud_pipeline_components/v1/model_evaluation/evaluation_llm_text_generation_pipeline.py b/components/google-cloud/google_cloud_pipeline_components/v1/model_evaluation/evaluation_llm_text_generation_pipeline.py index ba8fabe757b..d00fb809852 100644 --- a/components/google-cloud/google_cloud_pipeline_components/v1/model_evaluation/evaluation_llm_text_generation_pipeline.py +++ b/components/google-cloud/google_cloud_pipeline_components/v1/model_evaluation/evaluation_llm_text_generation_pipeline.py @@ -15,10 +15,12 @@ from typing import Dict, List, NamedTuple +from google_cloud_pipeline_components import google_template_metadata from google_cloud_pipeline_components._implementation.model_evaluation import LLMEvaluationPreprocessorOp from google_cloud_pipeline_components._implementation.model_evaluation import LLMEvaluationTextGenerationOp from google_cloud_pipeline_components._implementation.model_evaluation import ModelNamePreprocessorOp from google_cloud_pipeline_components.preview.model_evaluation.model_evaluation_import_component import model_evaluation_import as ModelImportEvaluationOp +from google_cloud_pipeline_components.proto import template_metadata_pb2 from google_cloud_pipeline_components.types.artifact_types import VertexModel from google_cloud_pipeline_components.v1.batch_predict_job import ModelBatchPredictOp from kfp import dsl @@ -29,7 +31,21 @@ _PIPELINE_NAME = 'evaluation-llm-text-generation-pipeline' +output_gcs_validation = template_metadata_pb2.GoogleCloudStorageValidation( + gcs_uri='{{$.parameter.batch_predict_gcs_destination_output_uri}}', + is_input=False, + default_service_account='{{$.pipeline_google_cloud_project_number}}-compute@developer.gserviceaccount.com', + override_placeholder='{{$.parameter.service_account}}', +) + +@google_template_metadata.set_template_metadata( + template_metadata=template_metadata_pb2.TemplateMetadata( + preflight_validations=template_metadata_pb2.ValidationItems( + gcs_validations=[output_gcs_validation] + ) + ) +) @dsl.pipeline(name=_PIPELINE_NAME) def evaluation_llm_text_generation_pipeline( # pylint: disable=dangerous-default-value project: str,