Para implementar um modelo num ponto final público através da CLI gcloud ou da API Vertex AI, tem de obter o ID do ponto final de um ponto final existente e, em seguida, implementar o modelo no mesmo.
Aceda ao ID do ponto final
Precisa do ID do ponto final para implementar o modelo.
gcloud
O exemplo seguinte usa o comando
gcloud ai endpoints list
:
gcloud ai endpoints list \
--region=LOCATION_ID \
--filter=display_name=ENDPOINT_NAME
Substitua o seguinte:
- LOCATION_ID: a região onde está a usar o Vertex AI.
- ENDPOINT_NAME: o nome a apresentar do ponto final.
Tenha em atenção o número apresentado na coluna ENDPOINT_ID
. Use este ID no passo seguinte.
REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- LOCATION_ID: a região onde está a usar o Vertex AI.
- PROJECT_ID: o seu ID do projeto.
- ENDPOINT_NAME: o nome a apresentar do ponto final.
Método HTTP e URL:
GET https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints?filter=display_name=ENDPOINT_NAME
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{ "endpoints": [ { "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/endpoints/ENDPOINT_ID", "displayName": "ENDPOINT_NAME", "etag": "AMEw9yPz5pf4PwBHbRWOGh0PcAxUdjbdX2Jm3QO_amguy3DbZGP5Oi_YUKRywIE-BtLx", "createTime": "2020-04-17T18:31:11.585169Z", "updateTime": "2020-04-17T18:35:08.568959Z" } ] }
Python
Para saber como instalar ou atualizar o SDK Vertex AI para Python, consulte o artigo Instale o SDK Vertex AI para Python. Para mais informações, consulte a Python documentação de referência da API.
Substitua o seguinte:
- PROJECT_ID: o ID do seu projeto.
- LOCATION_ID: a região onde está a usar o Vertex AI.
- ENDPOINT_NAME: o nome a apresentar do ponto final.
from google.cloud import aiplatform
PROJECT_ID = "PROJECT_ID"
LOCATION = "LOCATION_ID"
ENDPOINT_NAME = "ENDPOINT_NAME"
aiplatform.init(
project=PROJECT_ID,
location=LOCATION,
)
endpoint = aiplatform.Endpoint.list( filter='display_name=ENDPOINT_NAME', )
endpoint_id = endpoint.name.split("/")[-1]
Implemente o modelo
Quando implementa um modelo, atribui-lhe um ID para o distinguir de outros modelos implementados no ponto final.
Selecione o separador abaixo para o seu idioma ou ambiente:
gcloud
Os exemplos seguintes usam o comando gcloud ai endpoints deploy-model
.
O exemplo seguinte implementa um Model
num Endpoint
sem usar GPUs para acelerar a publicação de previsões e sem dividir o tráfego entre vários recursos DeployedModel
:
Antes de usar qualquer um dos dados de comandos abaixo, faça as seguintes substituições:
- ENDPOINT_ID: o ID do ponto final.
- LOCATION_ID: a região onde está a usar o Vertex AI.
- MODEL_ID: o ID do modelo a implementar.
-
DEPLOYED_MODEL_NAME: um nome para o
DeployedModel
. Também pode usar o nome a apresentar doModel
para oDeployedModel
. - MIN_REPLICA_COUNT: o número mínimo de nós para esta implementação. O número de nós pode ser aumentado ou diminuído conforme necessário pela carga de inferência, até ao número máximo de nós e nunca inferior a este número de nós.
-
MAX_REPLICA_COUNT: o número máximo de nós para esta implementação.
O número de nós pode ser aumentado ou diminuído conforme necessário pela carga de inferência,
até este número de nós e nunca inferior ao número mínimo de nós.
Se omitir a flag
--max-replica-count
, o número máximo de nós é definido para o valor de--min-replica-count
.
Execute o comando gcloud ai endpoints deploy-model:
Linux, macOS ou Cloud Shell
gcloud ai endpoints deploy-model ENDPOINT_ID\ --region=LOCATION_ID \ --model=MODEL_ID \ --display-name=DEPLOYED_MODEL_NAME \ --min-replica-count=MIN_REPLICA_COUNT \ --max-replica-count=MAX_REPLICA_COUNT \ --traffic-split=0=100
Windows (PowerShell)
gcloud ai endpoints deploy-model ENDPOINT_ID` --region=LOCATION_ID ` --model=MODEL_ID ` --display-name=DEPLOYED_MODEL_NAME ` --min-replica-count=MIN_REPLICA_COUNT ` --max-replica-count=MAX_REPLICA_COUNT ` --traffic-split=0=100
Windows (cmd.exe)
gcloud ai endpoints deploy-model ENDPOINT_ID^ --region=LOCATION_ID ^ --model=MODEL_ID ^ --display-name=DEPLOYED_MODEL_NAME ^ --min-replica-count=MIN_REPLICA_COUNT ^ --max-replica-count=MAX_REPLICA_COUNT ^ --traffic-split=0=100
Dividir tráfego
A flag --traffic-split=0=100
nos exemplos anteriores envia 100% do tráfego de previsão que o Endpoint
recebe para o novo DeployedModel
, que é representado pelo ID temporário 0
. Se o seu Endpoint
já tiver outros
DeployedModel
recursos, pode dividir o tráfego entre os novos
DeployedModel
e os antigos.
Por exemplo, para enviar 20% do tráfego para a nova versão DeployedModel
e 80% para uma versão mais antiga,
execute o seguinte comando.
Antes de usar qualquer um dos dados de comandos abaixo, faça as seguintes substituições:
- OLD_DEPLOYED_MODEL_ID: o ID do
DeployedModel
existente.
Execute o comando gcloud ai endpoints deploy-model:
Linux, macOS ou Cloud Shell
gcloud ai endpoints deploy-model ENDPOINT_ID\ --region=LOCATION_ID \ --model=MODEL_ID \ --display-name=DEPLOYED_MODEL_NAME \ --min-replica-count=MIN_REPLICA_COUNT \ --max-replica-count=MAX_REPLICA_COUNT \ --traffic-split=0=20,OLD_DEPLOYED_MODEL_ID=80
Windows (PowerShell)
gcloud ai endpoints deploy-model ENDPOINT_ID` --region=LOCATION_ID ` --model=MODEL_ID ` --display-name=DEPLOYED_MODEL_NAME \ --min-replica-count=MIN_REPLICA_COUNT ` --max-replica-count=MAX_REPLICA_COUNT ` --traffic-split=0=20,OLD_DEPLOYED_MODEL_ID=80
Windows (cmd.exe)
gcloud ai endpoints deploy-model ENDPOINT_ID^ --region=LOCATION_ID ^ --model=MODEL_ID ^ --display-name=DEPLOYED_MODEL_NAME \ --min-replica-count=MIN_REPLICA_COUNT ^ --max-replica-count=MAX_REPLICA_COUNT ^ --traffic-split=0=20,OLD_DEPLOYED_MODEL_ID=80
REST
Implemente o modelo.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- LOCATION_ID: a região onde está a usar o Vertex AI.
- PROJECT_ID: o seu ID do projeto.
- ENDPOINT_ID: o ID do ponto final.
- MODEL_ID: o ID do modelo a implementar.
-
DEPLOYED_MODEL_NAME: um nome para o
DeployedModel
. Também pode usar o nome a apresentar doModel
para oDeployedModel
. -
MACHINE_TYPE: opcional. Os recursos da máquina usados para cada nó desta implementação. A predefinição é
n1-standard-2
. Saiba mais sobre os tipos de máquinas. - ACCELERATOR_TYPE: o tipo de acelerador a anexar à máquina. Opcional se ACCELERATOR_COUNT não for especificado ou for zero. Não recomendado para modelos do AutoML ou modelos preparados personalizados que estejam a usar imagens sem GPU. Saiba mais.
- ACCELERATOR_COUNT: o número de aceleradores que cada réplica deve usar. Opcional. Deve ser zero ou não especificado para modelos AutoML ou modelos preparados personalizados que estão a usar imagens não GPU.
- MIN_REPLICA_COUNT: o número mínimo de nós para esta implementação. O número de nós pode ser aumentado ou diminuído conforme necessário pela carga de inferência, até ao número máximo de nós e nunca inferior a este número de nós. Este valor tem de ser igual ou superior a 1.
- MAX_REPLICA_COUNT: o número máximo de nós para esta implementação. O número de nós pode ser aumentado ou diminuído conforme necessário pela carga de inferência, até este número de nós e nunca inferior ao número mínimo de nós.
- REQUIRED_REPLICA_COUNT: opcional. O número necessário de nós para que esta implementação seja marcada como bem-sucedida. Tem de ser igual ou superior a 1 e inferior ou igual ao número mínimo de nós. Se não for especificado, o valor predefinido é o número mínimo de nós.
- TRAFFIC_SPLIT_THIS_MODEL: A percentagem do tráfego de previsão para este ponto final a encaminhar para o modelo implementado com esta operação. A predefinição é 100. Todas as percentagens de tráfego têm de totalizar 100. Saiba mais acerca das divisões de tráfego.
- DEPLOYED_MODEL_ID_N: opcional. Se outros modelos forem implementados neste ponto final, tem de atualizar as respetivas percentagens de divisão de tráfego para que todas as percentagens totalizem 100.
- TRAFFIC_SPLIT_MODEL_N: o valor da percentagem da divisão de tráfego para a chave do ID do modelo implementado.
- PROJECT_NUMBER: o número do projeto gerado automaticamente do seu projeto
Método HTTP e URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:deployModel
Corpo JSON do pedido:
{ "deployedModel": { "model": "projects/PROJECT/locations/us-central1/models/MODEL_ID", "displayName": "DEPLOYED_MODEL_NAME", "dedicatedResources": { "machineSpec": { "machineType": "MACHINE_TYPE", "acceleratorType": "ACCELERATOR_TYPE", "acceleratorCount": "ACCELERATOR_COUNT" }, "minReplicaCount": MIN_REPLICA_COUNT, "maxReplicaCount": MAX_REPLICA_COUNT, "requiredReplicaCount": REQUIRED_REPLICA_COUNT }, }, "trafficSplit": { "0": TRAFFIC_SPLIT_THIS_MODEL, "DEPLOYED_MODEL_ID_1": TRAFFIC_SPLIT_MODEL_1, "DEPLOYED_MODEL_ID_2": TRAFFIC_SPLIT_MODEL_2 }, }
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{ "name": "projects/PROJECT_ID/locations/LOCATION/endpoints/ENDPOINT_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1.DeployModelOperationMetadata", "genericMetadata": { "createTime": "2020-10-19T17:53:16.502088Z", "updateTime": "2020-10-19T17:53:16.502088Z" } } }
Java
Antes de experimentar este exemplo, siga as Javainstruções de configuração no início rápido do Vertex AI com bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Java Vertex AI.
Para se autenticar no Vertex AI, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar ou atualizar o SDK Vertex AI para Python, consulte o artigo Instale o SDK Vertex AI para Python. Para mais informações, consulte a Python documentação de referência da API.
Node.js
Antes de experimentar este exemplo, siga as Node.jsinstruções de configuração no início rápido do Vertex AI com bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Node.js Vertex AI.
Para se autenticar no Vertex AI, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Saiba como alterar as definições predefinidas para o registo de inferências.
Obtenha o estado da operação
Alguns pedidos iniciam operações de longa duração que requerem tempo para serem concluídas. Estes pedidos devolvem um nome da operação, que pode usar para ver o estado da operação ou cancelar a operação. A Vertex AI fornece métodos auxiliares para fazer chamadas contra operações de longa duração. Para mais informações, consulte o artigo Trabalhar com operações de longa duração.
O que se segue?
- Saiba como obter uma inferência online.
- Saiba mais sobre os pontos finais privados.