如何为Vertex AI上的AutoML模型配置每周定时批量预测任务?
Vertex AI AutoML 批量预测定时调度方案
完全可以实现定时调度,谷歌云生态有多个原生方案可以满足需求,不需要额外搭建独立的定时服务,以下是最常用的两种落地方式:
方案1:Cloud Scheduler + Cloud Functions(最轻量化,适合简单场景)
这个方案不需要复杂的流程编排,几十行代码就能搞定:
- 首先基于Vertex AI Python SDK编写触发批量预测的逻辑,封装为Cloud Functions的入口函数,示例代码如下:
from google.cloud import aiplatform def run_weekly_batch_predict(event, context): # 初始化Vertex AI客户端 aiplatform.init(project="替换为你的GCP项目ID", location="替换为模型部署的区域,比如us-central1") # 加载已训练好的AutoML模型 model = aiplatform.Model("替换为你的模型资源ID,格式如projects/xxx/locations/xxx/models/xxx") # 提交批量预测任务 batch_job = model.batch_predict( job_display_name=f"weekly_batch_predict_{context.timestamp}", bigquery_source="bq://替换为你的输入BigQuery表路径,格式为项目ID.数据集.表名", bigquery_destination_prefix="bq://替换为你的输出BigQuery数据集路径", machine_type="n1-standard-4" ) return f"批量预测任务已提交,任务ID:{batch_job.name}"
- 给Cloud Functions绑定的服务账号配置对应权限:Vertex AI模型调用权限、BigQuery表读写权限、批量预测任务创建权限。
- 创建Cloud Scheduler定时任务,频率设置为你需要的每周固定时间(比如每周一凌晨3点),触发方式选择HTTP,目标填入Cloud Functions的触发URL,认证选择服务账号认证即可。到指定时间Scheduler会自动触发函数提交预测任务。
方案2:Vertex AI Pipelines + Cloud Scheduler(适合需要流程扩展的场景)
如果你后续需要在预测前后增加数据清洗、结果校验、告警通知等步骤,推荐用流水线方案:
- 基于Kubeflow Pipelines(KFP)编写预测流水线,内置Vertex AI批量预测官方组件,可灵活拼接数据预处理、后处理节点。
- 将流水线部署到Vertex AI Pipelines中,获取流水线的运行触发接口。
- 同样用Cloud Scheduler定时触发流水线运行即可,后续修改流程只需要迭代流水线代码,不需要调整调度配置。
注意事项
- 调度时间要和BigQuery表的更新时间错开,比如你每周一凌晨2点完成数据更新,就把调度时间设为凌晨2点30分,避免读取到未更新完成的脏数据。
- 建议给批量预测的输出表增加日期后缀,避免每次运行覆盖之前的历史预测结果。
- 可以搭配谷歌云的监控告警功能,任务运行失败时自动发送通知,不需要人工巡检任务状态。
内容的提问来源于stack exchange,提问作者Rita
相关产品推荐
相关产品推荐

