O universo da Inteligência Artificial tem se expandido rapidamente, e muitas empresas buscam aplicar soluções de Machine Learning para melhorar seus produtos. No entanto, colocar modelos de Machine Learning em produção pode ser complicado, especialmente para quem está começando. Felizmente, o Google Vertex AI oferece uma plataforma para treinar, testar e fazer o deploy de modelos em grande escala, sem a necessidade de gerenciar a infraestrutura. Neste texto, vamos ver como realizar um Google Vertex AI deploy de um modelo, usando ferramentas como Docker e FastAPI. Ao final, você terá uma boa ideia de como usar o Vertex AI para colocar seu próprio modelo em produção.
Conteúdo
Principais Pontos
- A preparação do modelo para o Google Vertex AI deploy envolve a criação de uma API e o armazenamento da imagem Docker no Artifact Registry, o que garante que o modelo esteja pronto para ser usado.
- O registro do modelo no Vertex AI Model Registry é um passo importante, permitindo o controle de versões e a organização dos modelos antes do Google Vertex AI deploy.
- Fazer o Google Vertex AI deploy do modelo em um endpoint é o último passo para que ele possa ser acessado e utilizado por meio de requisições, tornando-o funcional para aplicações.
Preparando Seu Modelo Para Google Vertex AI Deploy
Antes de mergulharmos no deploy propriamente dito, é crucial preparar seu modelo para o Vertex AI. Essa etapa garante que o modelo funcione corretamente no ambiente de produção e que você possa gerenciá-lo de forma eficiente. Essencialmente, estamos falando de empacotar seu modelo em um formato que o Vertex AI entenda e possa executar.
Construindo Uma API Para Seu Modelo
O primeiro passo é criar uma API para interagir com seu modelo. Essa API atuará como a interface entre o mundo externo e seu modelo, permitindo que aplicativos e outros serviços enviem dados para inferência e recebam previsões.
Considere os seguintes pontos ao construir sua API:
- Escolha da Linguagem: Python, com frameworks como Flask ou FastAPI, é uma escolha comum devido à sua facilidade de uso e vasta biblioteca de suporte para machine learning. Veja este guia sobre as melhores linguagens para IA para mais informações.
- Formato de Entrada/Saída: Defina claramente o formato dos dados que sua API aceitará (por exemplo, JSON) e o formato das previsões que ela retornará. Isso garante a compatibilidade com os clientes que usarão sua API.
- Lógica de Pré-processamento/Pós-processamento: Inclua qualquer lógica necessária para preparar os dados de entrada para o modelo e para formatar as previsões de saída. Isso pode envolver normalização de dados, conversão de tipos ou outras transformações.
Uma boa prática é usar um arquivo Dockerfile para definir o ambiente da sua API. Isso garante que sua API seja executada de forma consistente em diferentes ambientes, incluindo o Vertex AI.
Armazenando A Imagem Docker No Artifact Registry
Depois de construir sua API, você precisará empacotá-la em uma imagem Docker e armazená-la no Artifact Registry. O Artifact Registry é um serviço do Google Cloud que permite armazenar e gerenciar imagens Docker e outros artefatos.
Siga estas etapas para armazenar sua imagem Docker no Artifact Registry:
- Crie um repositório no Artifact Registry: Escolha um nome para seu repositório e especifique o tipo de repositório como “Docker”.
- Autentique-se no Artifact Registry: Use o comando
gcloud auth configure-docker
para autenticar sua máquina local no Artifact Registry. - Construa sua imagem Docker: Use o comando
docker build
para construir sua imagem Docker a partir do seuDockerfile
. - Marque sua imagem Docker: Use o comando
docker tag
para marcar sua imagem Docker com o nome do seu repositório no Artifact Registry. - Envie sua imagem Docker: Use o comando
docker push
para enviar sua imagem Docker para o Artifact Registry. O registro do modelo é um passo fundamental.
Com sua imagem Docker armazenada no Artifact Registry, você está pronto para registrar seu modelo no Vertex AI Model Registry e realizar o deploy.
Registrando Seu Modelo No Google Vertex AI
Para disponibilizar seu modelo para uso, é necessário registrá-lo no Vertex AI Model Registry. Pense nisso como organizar seus modelos em um catálogo, facilitando o versionamento, o rastreamento de dados e o deploy em endpoints. O registro pode ser feito tanto pela interface do Google Cloud Console quanto pela linha de comando (GCloud CLI), sendo que demonstraremos o uso do GCloud CLI.
Registro Do Modelo No Vertex AI Model Registry A Partir De Imagem Docker
Antes de tudo, certifique-se de que sua imagem Docker já está armazenada no Artifact Registry, conforme demonstrado anteriormente. Este é um passo fundamental para que o Vertex AI possa acessar e registrar seu modelo.
Para registrar o modelo, execute o seguinte comando:
gcloud ai models upload \
--container-image-uri=$IMAGE_URI \
--display-name=$IMAGE_NAME \
--project=$PROJECT_ID \
--region=$REGION \
--container-health-route=/health
Onde:
$IMAGE_URI
é o URI da sua imagem Docker no Artifact Registry.$IMAGE_NAME
é o nome que você deseja dar ao seu modelo no Vertex AI Model Registry.$PROJECT_ID
é o ID do seu projeto no Google Cloud.$REGION
é a região onde você deseja registrar o modelo.
Este comando cria um novo modelo no Vertex AI Model Registry, utilizando a imagem Docker especificada. O parâmetro –container-health-route=/health define um endpoint de verificação de saúde para o contêiner, garantindo que o Vertex AI possa monitorar a disponibilidade do seu modelo.
Entendendo O Vertex AI Model Registry
O Vertex AI Model Registry é uma ferramenta poderosa para gerenciar seus modelos de machine learning. Ele oferece:
- Versionamento: Permite manter o controle sobre diferentes versões do seu modelo, facilitando o rollback para versões anteriores, se necessário.
- Metadados: Armazena informações importantes sobre o modelo, como os dados utilizados para treinamento, as métricas de desempenho e os parâmetros de configuração. Isso ajuda a entender e reproduzir os resultados do modelo.
- Deploy: Facilita o deploy do modelo em endpoints do Vertex AI, permitindo que ele seja acessado por aplicações externas. Para auxiliar no deploy, você pode consultar a documentação sobre OpenAI Operator no Brasil.
Para implantar o modelo registrado em um endpoint, você precisará do ID do modelo. Exporte-o usando:
export MODEL_ID=id do modelo registrado no Vertex AI Model Registry
Realizando O Google Vertex AI Deploy
Agora que seu modelo está devidamente preparado e registrado, podemos prosseguir com o deploy no Google Vertex AI. Este processo envolve a criação de um endpoint e a implantação do modelo registrado nesse endpoint, tornando-o acessível para previsões.
Deploy Do Modelo Registrado Em Um Endpoint Do Vertex AI
O deploy do modelo é o passo final para disponibilizá-lo para uso. Este processo envolve a criação de um endpoint no Vertex AI e a associação do modelo registrado a esse endpoint.
Para realizar o deploy, siga os seguintes passos:
- Crie um Endpoint: Utilize o console do Google Cloud ou a Google Cloud CLI (gcloud) para criar um novo endpoint. Defina o nome, a região e outras configurações conforme necessário.
- Implante o Modelo: Associe o modelo registrado no Vertex AI Model Registry ao endpoint criado. Especifique a versão do modelo que deseja implantar.
- Configure o Tráfego: Defina a porcentagem de tráfego que será direcionada para o modelo recém-implantado. Isso permite testar o modelo em produção com um subconjunto de dados antes de liberar totalmente o tráfego.
É importante monitorar o desempenho do modelo após o deploy. Utilize as ferramentas de monitoramento do Vertex AI para acompanhar métricas como latência, taxa de erros e precisão das previsões. Ajustes podem ser necessários para otimizar o desempenho do modelo em produção.
Gerenciando Seu Endpoint No Vertex AI
Após o deploy, o gerenciamento do endpoint é crucial para garantir o desempenho e a disponibilidade do seu modelo. O Vertex AI oferece diversas ferramentas para monitorar e gerenciar seus endpoints.
- Monitoramento: Acompanhe as métricas de desempenho do endpoint, como latência, taxa de erros e utilização de recursos.
- Escalabilidade: Ajuste a capacidade do endpoint para lidar com variações na demanda. O Vertex AI oferece opções de escalabilidade automática para garantir que o endpoint possa lidar com picos de tráfego.
- Atualizações: Implante novas versões do modelo no endpoint sem interromper o serviço. Utilize o Vertex AI Model Registry para gerenciar as versões do modelo e realizar rollbacks, se necessário.
Para mais informações sobre o gerenciamento de endpoints, consulte a documentação do Vertex AI.
Perguntas Frequentes
Por que preciso de uma API para meu modelo no Vertex AI?
Para que seu modelo possa ser usado no Vertex AI, é preciso criar uma “porta de entrada” para ele, que chamamos de API. Essa API permite que outros programas conversem com seu modelo, enviando dados para ele analisar e recebendo os resultados. É como um garçom que leva o pedido para a cozinha (seu modelo) e traz o prato pronto de volta.
O que é o Vertex AI Model Registry e qual sua utilidade?
O Vertex AI Model Registry é como uma biblioteca ou um catálogo para seus modelos de inteligência artificial. Lá, você guarda seus modelos já prontos, podendo organizá-los, ver suas diferentes versões e até mesmo quais dados eles usam. É um lugar central para gerenciar todos os seus modelos antes de colocá-los para funcionar de verdade.
O que significa “fazer o deploy” de um modelo no Vertex AI?
Fazer o “deploy” de um modelo significa colocá-lo para funcionar de forma que outras pessoas ou sistemas possam usá-lo. No Vertex AI, isso acontece quando você pega seu modelo registrado e o “liga” em um “Endpoint”. Esse Endpoint é como uma tomada onde seu modelo fica conectado, pronto para receber pedidos e dar respostas. Assim, ele pode ser acessado e utilizado por qualquer um que tenha permissão no seu projeto do Google Cloud.