Leia nosso artigo sobre

class="lazyload

.

Neste artigo, apresentaremos uma ferramenta que demonstra, na prática, nossa experiência com o uso do Vertex AI em um projeto em produção.
Um tutorial completo sobre como treinar e implantar um modelo de ML personalizado em produção usando AI Vertex AI com o Kubeflow v2. Se você não sabe por onde começar com o Vertex AI, este tutorial o ajudará a encontrar o caminho certo, pois todo o conteúdo é baseado em experiências reais. Há muitos exemplos de pipelines que ilustram como usar certos recursos interessantes do Vertex AI do Kubeflow. Você também encontrará um makefile para ajudá-lo a executar receitas importantes e economizar muito tempo na construção do seu modelo e na sua implantação em produção.

Os pipelines em ML podem ser definidos como conjuntos de tarefas interligadas que executam partes completas ou específicas do fluxo de trabalho de ML (por exemplo: pipeline de treinamento).

exemplo de um fluxo de treinamento simples

exemplo de um fluxo de treinamento simples

Exemplo de um pipeline de treinamento no Vertex AI usando o Kubeflow

Exemplo de um pipeline de treinamento no Vertex AI usando o Kubeflow

Quando projetados adequadamente, os pipelines têm a vantagem de serem reproduzíveis e altamente personalizáveis. Essas duas características tornam a experimentação e a implantação em produção tarefas relativamente fáceis. O uso AI Vertex AI em conjunto com o Kubeflow nos ajudou a projetar e executar rapidamente pipelines personalizados que possuem as características mencionadas acima. Os exemplos de pipelines que ilustramos no kit inicial são bastante representativos do que se pode encontrar ao trabalhar em um projeto de ML que precise ser implantado em produção. Também compartilhamos algumas dicas e scripts automatizados para que você possa se concentrar em se familiarizar com o Vertex AI.

Quando comecei a usar AI Vertex AI , fiquei bastante impressionado com todas as possibilidades disponíveis para realizar exatamente a mesma tarefa. Eu não tinha muita certeza sobre as melhores opções para construir meus pipelines. Após alguns meses, encontramos nosso caminho e formamos algumas convicções, pelo menos no que diz respeito ao aspecto mais importante da gestão do ciclo de vida de um projeto em produção com essa tecnologia.

Como mencionado anteriormente, este artigo tem como objetivo apresentar um kit de introdução que mostre, de forma prática, nossa experiência e o que aprendemos ao utilizar o Vertex AI . Esperamos que isso ajude os iniciantes a se familiarizarem rapidamente com essa poderosa ferramenta sem ter que arcar com os altos custos iniciais.

Nas próximas seções, apresentaremos os conceitos e recursos mais interessantes que identificamos ao utilizar AI Vertex AI . Também utilizaremos um projeto de previsão simples (a competição M5) para ilustrar tudo. Não nos concentraremos na parte de modelagem, mas, em vez disso, enfatizaremos as diferentes etapas necessárias para colocar um modelo em produção.

Crie uma imagem base personalizada e use-a como ponto de partida para seus componentes

Se você já trabalhou com pipelines do Kubeflow, uma dúvida que pode surgir é quando usar componentes baseados em contêineres em vez de componentes baseados em funções. Existem muitos prós e contras em ambas as opções; no entanto, também é possível encontrar um meio-termo. Os componentes baseados em contêineres são mais adequados para tarefas complexas, nas quais há muitas dependências de código, em comparação com os componentes baseados em funções, que contêm todas as dependências de código dentro de uma função e geralmente são mais simples. Estes últimos são executados mais rapidamente, pois não precisamos compilar e implantar uma imagem toda vez que editamos nosso código. Nos componentes baseados em funções, uma imagem padrão do Python 3.7 é usada para executar sua função.

Nossa solução para executar componentes complexos e simples da mesma forma consiste em trabalhar com uma versão modificada da imagem base padrão. Dentro dessa imagem base alterada, instalamos todos os nossos códigos como um pacote. Em seguida, importamos essas funções para dentro dos componentes baseados em funções, da mesma forma que se faria com o pandas, por exemplo. Assim, obtemos a vantagem de executar tarefas complexas e simples da mesma maneira e reduzimos o tempo de compilação da imagem para apenas 1 (a imagem base).

Também organizamos nossosarquivos de configuraçãode forma a facilitar a adaptação das entradas dos seus componentes e pipelines.

Usar uma imagem base modificada como base única para todos os seus componentes

Usar uma imagem base modificada como base única para todos os seus componentes

Paralelizar partes dos seus pipelines é tão simples quanto escrever um loop for

Ao fazer experiências com ML, geralmente precisamos executar muitas iterações de um fluxo de trabalho de treinamento simples, seja para ajustar um hiperparâmetro ou para criar vários modelos (por exemplo, um modelo por categoria de produto).

Fazer isso da melhor maneira possível significaria paralelizar os diferentes fluxos de trabalho de treinamento para ganhar tempo e otimizar recursos. Com o Vertex Pipelines e o Kubeflow, o esforço é mínimo por padrão; basta apenas escrever um loop for. E, ao compilar seu pipeline, o Kubeflow determinará quais etapas e/ou grupos de etapas podem ser executados em paralelo e quais precisam ser executados sucessivamente.

class="lazyload

Exemplo de um pipeline com partes que são executadas em paralelo

Implantação condicional para operar seu modelo de aprendizado de máquina de forma integrada

Com o kfp.dsl.condition, você pode facilmente implantar um modelo treinado e prepará-lo para reutilização posterior com um pouco de lógica de código. Se você estiver testando várias configurações e desejar migrar tudo para a produção de forma integrada, desde que sejam atendidas determinadas condições, essa funcionalidade do Kubeflow será muito útil. Combine-a com um excelente sistema de CICD e você poderá gerenciar o ciclo de vida do seu modelo de ML sem nenhum problema.

class="lazyload

Exemplo de implantação condicional

Além desses recursos (lista não exaustiva), você teráreprodutibilidade, rastreabilidade, facilidade de gerenciamentoe, por último, mas não menos importante, uma excelente interface de usuário para monitorar tudo na AI do Vertex AI no GCP.

Conclusão

Hoje em dia, espera-se que muitos modelos de aprendizado de máquina sejam executados em ambiente de produção. Portanto, se você estiver trabalhando no GCP e planejando usar o Vertex AI, esperamos que este kit de introdução o ajude a ter uma experiência agradável com a ferramenta. Você também deve dar uma olhada nele se estiver iniciando seus projetos com o objetivo de torná-los úteis o mais rápido possível, ou seja, implantá-los em produção.

Muito obrigado a Luca Serra, Jeffrey Kayne e Robin Doumerc (Artefact) que ajudaram a criar este kit inicial, mas também a Maxime Lutel por ter feito a modelagem para o projeto de brinquedos que usamos.

Se você quiser avançar para o próximo nível, encontrará na documentação do GCP instruções sobre como:

  • Programe seu pipeline com cloud ou acione-o comcloud

  • Usecomponentesprontos para uso criados pelas equipes da GCP: google_cloud_pipeline_components import aiplatform

class="lazyload

Blog do Medium pela Artefact.

Este artigo foi publicado originalmente no Medium.com.
Siga-nos no nosso blog no Medium!