Vista geral
Antes de apresentar inferência online com pontos finais privados, tem de configurar o acesso a serviços privados para criar ligações de peering entre a sua rede e o Vertex AI. Se já configurou esta opção, pode usar as suas ligações de peering existentes.
Este guia aborda as seguintes tarefas:
- Validar o estado das suas ligações de peering existentes.
- Verificar se as APIs necessárias estão ativadas.
- Criar um ponto final privado.
- Implementar um modelo num ponto final privado.
- Apenas é suportado um modelo por ponto final privado. Isto é diferente de um ponto final público do Vertex AI, onde pode dividir o tráfego em vários modelos implementados num ponto final.
- O ponto final privado suporta modelos tabulares do AutoML e modelos preparados personalizados.
- Enviar uma inferência para um ponto final privado.
- Limpar recursos
Verifique o estado das associações de peering existentes
Se tiver associações de peering existentes que usa com o Vertex AI, pode listá-las para verificar o estado:
gcloud compute networks peerings list --network NETWORK_NAME
Deve ver que o estado das suas associações de pares é ACTIVE
.
Saiba mais acerca das associações de peering ativas.
Ative as APIs necessárias
gcloud services enable aiplatform.googleapis.com
gcloud services enable dns.googleapis.com
Crie um ponto final privado
Para criar um ponto final privado, adicione a flag --network
quando criar um ponto final com a CLI do Google Cloud:
gcloud beta ai endpoints create \
--display-name=ENDPOINT_DISPLAY_NAME \
--network=FULLY_QUALIFIED_NETWORK_NAME \
--region=REGION
Substitua NETWORK_NAME pelo nome da rede totalmente qualificado:
projects/PROJECT_NUMBER/global/networks/NETWORK_NAME
Se criar o ponto final sem especificar uma rede, cria um ponto final público.
Limitações dos pontos finais privados
Tenha em atenção as seguintes limitações para pontos finais privados:
- Os pontos finais privados não suportam a divisão de tráfego. Como solução alternativa, pode criar a divisão de tráfego manualmente implementando o seu modelo em vários pontos finais privados e dividindo o tráfego entre os URLs de inferência resultantes para cada ponto final privado.
- Os pontos finais privados não suportam SSL/TLS.
- Para ativar o registo de acesso num ponto final privado, contacte vertex-ai-feedback@google.com.
- Só pode usar uma rede para todos os pontos finais privados num Google Cloud
projeto. Se quiser mudar para outra rede,
contacte
vertex-ai-feedback@google.com
. - As novas tentativas do lado do cliente em erros recuperáveis são altamente recomendadas. Estes podem incluir os seguintes erros:
- Resposta vazia (código de erro HTTP
0
), possivelmente devido a uma ligação interrompida temporária. - Códigos de erro HTTP
5xx
que indicam que o serviço pode estar temporariamente indisponível.
- Resposta vazia (código de erro HTTP
- Para o código de erro HTTP
429
que indica que o sistema está sobrecarregado, considere diminuir a velocidade do tráfego para mitigar este problema em vez de tentar novamente. - Os pedidos de inferência de
PredictionServiceClient
na biblioteca de cliente Python da Vertex AI não são suportados. - O ponto final do acesso privado ao serviço não suporta modelos de base ajustados. Para um modelo base otimizado, implemente-o através de um ponto final do Private Service Connect.
Monitorize pontos finais privados
Pode usar o painel de controlo de métricas para inspecionar a disponibilidade e a latência do tráfego enviado para um ponto final privado.
Para personalizar a monitorização, consulte as seguintes métricas no Cloud Monitoring:
aiplatform.googleapis.com/prediction/online/private/response_count
O número de respostas de inferência. Pode filtrar esta métrica por
deployed_model_id
ou código de resposta HTTP.aiplatform.googleapis.com/prediction/online/private/prediction_latencies
A latência do pedido de inferência em milissegundos. Pode filtrar esta métrica por
deployed_model_id
, apenas para pedidos bem-sucedidos.
Saiba como selecionar, consultar e apresentar estas métricas no explorador de métricas.
Implemente um modelo
Pode importar um novo modelo ou implementar um modelo existente que já tenha carregado. Para carregar um novo modelo, use
gcloud ai models upload
.
Para mais informações, consulte o artigo
Importe modelos para o Vertex AI.
Para implementar um modelo num ponto final privado, consulte o guia para implementar modelos. Além da divisão de tráfego e da ativação manual do registo de acesso, pode usar qualquer uma das outras opções disponíveis para implementar modelos preparados de forma personalizada. Consulte as limitações dos pontos finais privados para saber mais sobre a diferença entre estes e os pontos finais públicos.
Depois de implementar o ponto final, pode obter o URI de inferência a partir dos metadados do seu ponto final privado.
Se tiver o nome a apresentar do seu ponto final privado, execute este comando para obter o ID do ponto final:
ENDPOINT_ID=$(gcloud ai endpoints list \ --region=REGION \ --filter=displayName:ENDPOINT_DISPLAY_NAME \ --format="value(ENDPOINT_ID.scope())")
Caso contrário, para ver o ID do ponto final e o nome a apresentar de todos os seus pontos finais, execute o seguinte comando:
gcloud ai endpoints list --region=REGION
Por último, para obter o URI de inferência, execute o seguinte comando:
gcloud beta ai endpoints describe ENDPOINT_ID \ --region=REGION \ --format="value(deployedModels.privateEndpoints.predictHttpUri)"
Formato do URI de inferência privada
O URI de inferência tem um aspeto diferente para os pontos finais privados em comparação com os pontos finais públicos da Vertex AI:
http://ENDPOINT_ID.aiplatform.googleapis.com/v1/models/DEPLOYED_MODEL_ID:predict
Se optar por anular a implementação do modelo atual e voltar a implementar com um novo, o nome de domínio é reutilizado, mas o caminho inclui um ID do modelo implementado diferente.
Envie uma inferência para um ponto final privado
Crie uma instância do Compute Engine na sua rede de VPC. Certifique-se de que cria a instância na mesma rede VPC com a qual estabeleceu uma relação de interligação com a Vertex AI.
Estabeleça uma ligação SSH à sua instância do Compute Engine e instale o cliente de inferência, se aplicável. Caso contrário, pode usar o curl.
Ao fazer previsões, use o URL de inferência obtido na implementação do modelo. Neste exemplo, está a enviar o pedido do cliente de inferência na instância do Compute Engine na mesma rede VPC:
curl -X POST -d@PATH_TO_JSON_FILE http://ENDPOINT_ID.aiplatform.googleapis.com/v1/models/DEPLOYED_MODEL_ID:predict
Neste pedido de exemplo, PATH_TO_JSON_FILE é o caminho para o seu pedido de inferência, guardado como um ficheiro JSON. Por exemplo,
example-request.json
.
Limpe os recursos
Pode anular a implementação de modelos e eliminar pontos finais privados da mesma forma que para modelos e pontos finais públicos.
Exemplo: teste pontos finais privados na VPC partilhada
Este exemplo usa dois Google Cloud projetos com uma rede de VPC partilhada:
- O projeto anfitrião aloja a rede de VPC partilhada.
- O projeto cliente aloja uma instância do Compute Engine onde executa um cliente de inferência, como o curl, ou o seu próprio cliente REST na instância do Compute Engine, para enviar pedidos de inferência.
Quando cria a instância do Compute Engine no projeto cliente, esta tem de estar na sub-rede personalizada na rede da VPC partilhada do projeto anfitrião e na mesma região onde o modelo é implementado.
Crie as associações de peering para o acesso privado aos serviços no projeto de anfitrião. Corrida
gcloud services vpc-peerings connect
:gcloud services vpc-peerings connect \ --service=servicenetworking.googleapis.com \ --network=HOST_SHARED_VPC_NAME \ --ranges=PREDICTION_RESERVED_RANGE_NAME \ --project=HOST_PROJECT_ID
Crie o ponto final no projeto do cliente, usando o nome da rede do projeto anfitrião. Corrida
gcloud beta ai endpoints create
:gcloud beta ai endpoints create \ --display-name=ENDPOINT_DISPLAY_NAME \ --network=HOST_SHARED_VPC_NAME \ --region=REGION \ --project=CLIENT_PROJECT_ID
Envie pedidos de inferência, usando o cliente de inferência no projeto cliente.