如何使用Python取消部署统一AI平台端点上的0流量已部署模型?
Vertex AI 端点通过Python SDK取消部署零流量模型的实操方法
场景匹配
当前端点的线上流量分配:Model B承接20%流量、Model C承接80%流量,历史部署的Model A当前流量占比为0%,控制台可手动完成该模型的下线操作,通过Python客户端可通过以下逻辑实现完全等效的操作。
操作前置要求
- 本地已安装对应版本的
google-cloud-aiplatformSDK,可通过命令pip install google-cloud-aiplatform完成安装或版本升级 - 本地身份鉴权完成,账号具备目标端点的部署管理权限
核心实现步骤
- 初始化SDK连接,传入对应的项目ID、端点部署区域,建立和云端资源的连接
- 根据端点ID拉取线上的Endpoint实例
- 调用实例内置的
undeploy方法,传入待下线模型的专属部署ID,即可完成操作- 注意:这里传入的不是模型本身的全局模型ID,是模型部署到端点后系统分配的独立
deployed_model_id,可在端点详情页的部署模型列表中直接查到 - 针对当前0流量的
Model A场景,操作过程不需要调整其他在线模型的流量占比,不会对正在运行的Model B、Model C服务造成任何影响
- 注意:这里传入的不是模型本身的全局模型ID,是模型部署到端点后系统分配的独立
参考可运行代码
from google.cloud import aiplatform # 替换为实际的项目、区域参数 aiplatform.init(project="你的项目ID", location="端点所在的部署区域") # 拉取目标端点实例 target_endpoint = aiplatform.Endpoint(endpoint_name="你的端点ID") # 执行取消部署 target_endpoint.undeploy( deployed_model_id="Model A对应的部署ID", sync=True )
常见操作误区
- 不要混淆模型ID与部署ID:模型ID是模型在模型仓库的全局唯一标识,部署ID是每次将模型挂载到端点时生成的独立标识,二者不通用,输错会直接触发接口报错
- 如果待下线的模型当前仍承接部分流量,调用接口时需要同步指定调整后的流量分配规则;但0流量的模型下线无此强制要求
- 控制台的手动取消部署操作,底层调用的就是同一套
undeploy接口,不存在控制台可操作、Python端无法实现的权限差异
内容的提问来源于stack exchange,提问作者Jash Shah
相关产品推荐
相关产品推荐

