You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

每次运行Vertex Pipeline需重建数据集?求数据集对象最优处理方案

处理Vertex Pipeline数据集对象的推荐方案

你完全不需要每次运行流水线都重建数据集——教程这么做只是为了演示流程完整性,生产环境里复用现有数据集才是合理选择。以下是具体解决方法:

  • 先检查数据集是否存在,避免重复创建
    用Vertex AI Python SDK在流水线执行前查询目标数据集,根据名称或ID判断是否已存在。如果存在就直接复用其资源名称,不存在再调用ImageDatasetCreateOp。示例代码如下:

    from google.cloud import aiplatform
    
    def get_or_create_image_dataset(project_id, region, dataset_name, gcs_source):
        aiplatform.init(project=project_id, region=region)
        try:
            # 尝试获取已存在的数据集
            dataset = aiplatform.ImageDataset.get(dataset_name)
            return dataset.resource_name
        except aiplatform.NotFound:
            # 不存在则创建新数据集
            dataset = aiplatform.ImageDataset.create(
                display_name=dataset_name,
                gcs_source=gcs_source,
                import_schema_uri="gs://google-cloud-aiplatform/schema/dataset/ioformat/image_classification_single_label_io_format_1.0.0.yaml"
            )
            return dataset.resource_name
    

    在流水线里调用这个函数获取数据集资源名,后续步骤直接使用该名称即可。

  • 在流水线中添加条件分支
    利用Vertex Pipeline的dsl.Condition节点,让ImageDatasetCreateOp只在数据集不存在时执行。你可以先通过自定义组件或SDK调用返回数据集是否存在的标记,再用这个标记控制创建步骤的执行逻辑。

  • 生产环境最佳实践

    • 给数据集设置固定的显示名称或ID,确保查询逻辑能精准匹配到目标数据集
    • 把数据集创建作为独立的一次性步骤,比如单独运行一次创建脚本,后续所有流水线直接引用这个已存在的数据集资源名
    • 如果需要更新数据集(比如新增训练数据),不要重建整个数据集,而是调用数据集的import_data()接口追加数据,这样效率会高很多

内容的提问来源于stack exchange,提问作者Bernie Camus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 10:55:16