MLOps Stacks: processo de desenvolvimento de modelo como código
Este artigo descreve como o MLOps Stacks permite implementar o processo de desenvolvimento e implantação como código em um repositório controlado pelo código-fonte. Ele também descreve os benefícios do desenvolvimento de modelos na plataforma Databricks Data Intelligence, uma plataforma única que unifica cada etapa do processo de desenvolvimento e implantação do modelo.
O que é MLOps Stacks?
Com o MLOps Stacks, todo o processo de desenvolvimento do modelo é implementado, salvo e rastreado como código em um repositório controlado pelo código-fonte. Automatizar o processo dessa forma facilita implantações mais repetíveis, previsíveis e sistemáticas e possibilita a integração com seu processo de CI/CD. Representar o processo de desenvolvimento do modelo como código permite que você implante o código em vez de implantar o modelo. A implantação do código automatiza a capacidade de criar o modelo, tornando muito mais fácil treinar novamente o modelo quando necessário.
Ao criar um projeto usando MLOps Stacks, você define os componentes do seu processo de desenvolvimento e implantação de ML, como blocos de anotações a serem usados para engenharia de recursos, treinamento, teste e implantação, pipelines para treinamento e teste, espaços de trabalho para usar para cada estágio e fluxos de trabalho de CI/CD usando Ações do GitHub ou Azure DevOps para testes automatizados e implantação do seu código.
O ambiente criado pelo MLOps Stacks implementa o fluxo de trabalho MLOps recomendado pelo Databricks. Você pode personalizar o código para criar pilhas para corresponder aos processos ou requisitos da sua organização.
Como funciona o MLOps Stacks?
Use a CLI do Databricks para criar uma pilha de MLOps. Para obter instruções passo a passo, consulte Databricks Asset Bundles for MLOps Stacks.
Quando você inicia um projeto MLOps Stacks, o software o orienta ao inserir os detalhes de configuração e, em seguida, cria um diretório contendo os arquivos que compõem seu projeto. Este diretório, ou pilha, implementa o fluxo de trabalho MLOps de produção recomendado pelo Databricks. Os componentes mostrados no diagrama são criados para você, e você só precisa editar os arquivos para adicionar seu código personalizado.
No diagrama:
- R: Um cientista de dados ou engenheiro de ML inicializa o projeto usando
databricks bundle init mlops-stacks
o . Ao inicializar o projeto, você pode optar por configurar os componentes de código de ML (normalmente usados por cientistas de dados), os componentes de CI/CD (normalmente usados por engenheiros de ML) ou ambos. - B: Os engenheiros de ML configuram os segredos principais de serviço do Databricks para CI/CD.
- C: Os cientistas de dados desenvolvem modelos no Databricks ou no seu sistema local.
- D: Os cientistas de dados criam solicitações pull para atualizar o código ML.
- E: O corredor de CI/CD executa blocos de anotações, cria trabalhos e executa outras tarefas nos espaços de trabalho de preparação e produção.
Sua organização pode usar a pilha padrão ou personalizá-la conforme necessário para adicionar, remover ou revisar componentes para se adequar às práticas da sua organização. Consulte o Leiame do repositório GitHub para obter detalhes.
O MLOps Stacks foi projetado com uma estrutura modular para permitir que as diferentes equipes de ML trabalhem de forma independente em um projeto, seguindo as melhores práticas de engenharia de software e mantendo o CI/CD de nível de produção. Os engenheiros de produção configuram a infraestrutura de ML que permite que cientistas de dados desenvolvam, testem e implantem pipelines e modelos de ML na produção.
Conforme mostrado no diagrama, a pilha MLOps padrão inclui os três componentes a seguir:
- Código ML. O MLOps Stacks cria um conjunto de modelos para um projeto de ML, incluindo blocos de anotações para treinamento, inferência em lote e assim por diante. O modelo padronizado permite que os cientistas de dados comecem rapidamente, unifica a estrutura do projeto entre as equipes e impõe código modularizado pronto para teste.
- Recursos de ML como código. O MLOps Stacks define recursos como espaços de trabalho e pipelines para tarefas como treinamento e inferência em lote. Os recursos são definidos no Databricks Asset Bundles para facilitar o teste, a otimização e o controle de versão para o ambiente de ML. Por exemplo, você pode tentar um tipo de instância maior para retreinamento automatizado de modelo e a alteração é rastreada automaticamente para referência futura.
- IC/CD. Você pode usar as Ações do GitHub ou o Azure DevOps para testar e implantar o código e os recursos de ML, garantindo que todas as alterações de produção sejam executadas por meio da automação e que apenas o código testado seja implantado no prod.
Fluxo do projeto MLOps
Um projeto MLOps Stacks padrão inclui um pipeline de ML com fluxos de trabalho de CI/CD para testar e implantar treinamento de modelo automatizado e trabalhos de inferência em lote nos espaços de trabalho Databricks de desenvolvimento, preparo e produção. O MLOps Stacks é configurável, para que você possa modificar a estrutura do projeto para atender aos processos da sua organização.
O diagrama mostra o processo que é implementado pela pilha MLOps padrão. No espaço de trabalho de desenvolvimento, os cientistas de dados iteram o código ML e as solicitações de pull de arquivos (PRs). Os PRs acionam testes de unidade e testes de integração em um espaço de trabalho Databricks de preparo isolado. Quando um PR é mesclado ao principal, o treinamento do modelo e os trabalhos de inferência em lote executados no preparo são imediatamente atualizados para executar o código mais recente. Depois de mesclar uma RP na principal, você pode cortar uma nova ramificação de versão como parte do processo de liberação agendada e implantar as alterações de código na produção.
Estrutura do projeto MLOps Stacks
Uma pilha MLOps usa Databricks Asset Bundles – uma coleção de arquivos de origem que serve como a definição de ponta a ponta de um projeto. Esses arquivos de origem incluem informações sobre como eles devem ser testados e implantados. A coleta dos arquivos como um pacote facilita as alterações de coversão e o uso das práticas recomendadas de engenharia de software, como controle do código-fonte, revisão de código, testes e CI/CD.
O diagrama mostra os arquivos criados para a pilha MLOps padrão. Para obter detalhes sobre os arquivos incluídos na pilha, consulte a documentação no repositório GitHub ou Databricks Asset Bundles for MLOps Stacks.
Componentes MLOps Stacks
Uma "pilha" refere-se ao conjunto de ferramentas usadas em um processo de desenvolvimento. A pilha MLOps padrão aproveita a plataforma unificada Databricks e usa as seguintes ferramentas:
Componente | Ferramenta em Databricks |
---|---|
Código de desenvolvimento do modelo de ML | Notebooks Databricks, MLflow |
Desenvolvimento e gerenciamento de recursos | Engenharia de recursos |
Repositório de modelos de ML | Modelos no Catálogo Unity |
Servir o modelo de ML | Servindo modelo de IA em mosaico |
Infraestrutura como código | Pacotes de ativos Databricks |
Orchestrator | Vagas de Databricks |
CI/CD | Ações do GitHub, Azure DevOps |
Monitoramento de desempenho de dados e modelos | Monitoramento Lakehouse |
Próximos passos
Para começar, consulte Databricks Asset Bundles for MLOps Stacks ou o repositório Databricks MLOps Stacks no GitHub.