如何使用Python删除部署到统一人工智能平台端点的模型



我已经在统一云AI平台上成功创建了一个端点,并为其部署了两个Model——Model BModel C,流量分别占20%和80%。我之前部署了第三个Model-Model A,现在流量为0%。

现在,在云控制台(UI(上,我可以选择取消部署Model A,我可以成功地这样做。但是,我不知道如何使用Python客户端API来做到这一点。

这里提供的文件不足以理解我们如何做到这一点。任何帮助都将不胜感激。

AI Platform Unified的文档还没有关于如何在端点中取消部署模型的示例。您现在可以在可用的服务上参考AI平台统一的rpc参考。这是它的代码:

注意:在运行代码之前,不要忘记更新end_point(端点ID(、project(项目ID(和model_ID的值。

from google.cloud import aiplatform
from google.cloud import aiplatform_v1

def undeploy_model_in_endpoint(
end_point: str,
project: str,
model_id: str,
location: str = "us-central1",
api_endpoint: str = "us-central1-aiplatform.googleapis.com",
timeout: int = 7200,
):
# The AI Platform services require regional API endpoints.
client_options = {"api_endpoint": api_endpoint}
# Initialize client that will be used to create and send requests.
# This client only needs to be created once, and can be reused for multiple requests.
client = aiplatform.gapic.EndpointServiceClient(client_options=client_options)
client_model = aiplatform_v1.services.model_service.ModelServiceClient(client_options=client_options)
# Get deployed_model_id
model_name = f'projects/{project}/locations/{location}/models/{model_id}'
model_request = aiplatform_v1.types.GetModelRequest(name=model_name)
model_info = client_model.get_model(request=model_request)
deployed_models_info = model_info.deployed_models
deployed_model_id=model_info.deployed_models[0].deployed_model_id
name=f'projects/{project}/locations/{location}/endpoints/{end_point}'
undeploy_request = aiplatform_v1.types.UndeployModelRequest(endpoint=name,deployed_model_id=deployed_model_id)
client.undeploy_model(request=undeploy_request)
undeploy_model_in_endpoint(end_point='your-endpoint-id',project='your-project-id',model_id='your-model-id')

@Ricco D的答案的一个补充是在取消部署后,如果您希望删除端点,则需要提供endpoint类aiplatform.Endpoint,然后使用该类中的方法delete()来删除端点。您可以通过在Python:中检查对象本身来探索这一点

endpoints = aiplatform.Endpoint.list()
# Taking just the first endpoint and checking its attributes and methods
print(dir(endpoints[0]))

获取这些端点类列表的一种方法是列出项目中的所有端点(这种方法不需要声明项目或其他任何东西,它使用应用程序默认凭据(ADC(,无论是否在云中:

from google.cloud import aiplatform
from google.cloud import aiplatform_v1
endpoints = aiplatform.Endpoint.list()
for endpoint in endpoints:
# You need to make sure the model is undeployed before deleting it
# Some logic to get information about undeployed model has to be done
endpoint.delete()

希望这也有帮助!

相关内容

  • 没有找到相关文章

最新更新