如何让Vertex AI中同时提交的多个自定义训练任务并行运行?
Vertex AI自定义训练任务串行问题解决办法
问题描述
通过Airflow每周调度Vertex AI自定义训练任务,提交的20余个任务始终串行执行(一次仅运行一个,耗时约10分钟/个),无法批量启动(期望同时运行5个)。
当前使用的Vertex AI任务配置:
{ "displayName": display_name, "trainingTaskDefinition": PREDICTION_JOB_SCHEMA_URI, "trainingTaskInputs": { "serviceAccount": VERTEX_SERVICE_ACCOUNT, "workerPoolSpecs": [ { "machineSpec": { "machineType": "n2-standard-16", }, "replicaCount": 1, "pythonPackageSpec": { "executorImageUri": PREDICTION_EXECUTOR_IMAGE_URI, "packageUris": task_params["package_uris"], "pythonModule": task_params["python_module"], "args": task_params["args"], "env": task_params["envs"], }, } ], }, }
可能的原因及解决方法
1. Airflow调度配置限制
- 检查DAG级别
max_active_runs参数,若设为1会限制整个DAG仅能同时运行一个实例,需调整为期望的并发数(比如5)。 - 确认任务级别
max_active_tis_per_dag参数,该参数控制单个DAG下同时运行的任务实例数,需设置为符合需求的数值。 - 检查Airflow全局的
parallelism(全局并行任务数)和dag_concurrency(单DAG并行任务数)配置,确保数值足够支撑所需并发量。
2. Vertex AI配额限制
- 查看项目中
n2-standard-16实例的配额,若可用配额不足会导致任务排队,可通过Vertex AI控制台配额管理页面检查,配额不足时提交提升申请。 - 确认自定义训练任务的全局并发配额,部分区域对同时运行的训练任务数量有默认上限,需排查是否达到该限制。
3. 任务提交逻辑问题
- 若使用
VertexAIJobOperator,需确保每个任务是独立的Operator实例,而非在同一个Operator中串行提交任务。 - 检查是否存在不必要的任务依赖关系(如
set_upstream/set_downstream),无关依赖会强制任务串行执行,需移除这类配置。
4. Vertex AI任务配置说明
当前任务配置中的replicaCount=1是单实例任务设置,不影响多任务并发,问题核心不在任务本身配置,重点关注调度和配额层面。
内容的提问来源于stack exchange,提问作者Racim Righi
相关产品推荐
相关产品推荐

