Compartilhar via


MLOps Stacks: processo de desenvolvimento de modelo como código

Esse artigo descreve como MLOps Stacks permite implementar o processo de desenvolvimento e implantação como código em um repositório controlado por origem. Também descreve os benefícios do desenvolvimento de modelos na plataforma Databricks Data Intelligence, uma plataforma única que unifica cada passo do processo de desenvolvimento e implantação de modelos.

O que é o MLOps Stacks?

Com MLOps Stacks, todo o processo de desenvolvimento do modelo é implementado, salvo e rastreado como código em um repositório controlado por origem. 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 implantar o código em vez de implantar o modelo. A implantação do código automatiza a capacidade de construir o modelo, tornando muito mais fácil treiná-lo novamente 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 notebooks para usar para engenharia de recursos, treinamento, teste e implantação, pipelines para treinamento e teste, espaços de trabalho para usar em cada estágio e Fluxos de trabalho de CI/CD usando GitHub Actions ou Azure DevOps para testes automatizados e implantação de seu código.

O ambiente criado pelo MLOps Stacks implementa o fluxo de trabalho do MLOps recomendado pelo Databricks. Personalize o código para criar pilhas de acordo com os processos ou os requisitos da sua organização.

Como funciona o MLOps Stacks?

Você usa a CLI do Databricks para criar uma pilha de MLOps. Para ver instruções passo a passo, confira Pacotes de Ativos do Databricks para o MLOps Stacks.

Quando você inicia um projeto do MLOps Stacks, o software orienta você na inserção dos detalhes de configuração e cria um diretório que contém os arquivos que compõem o projeto. Esse diretório, ou pilha, implementa o fluxo de trabalho do MLOps de produção recomendado pelo Databricks. Os componentes mostrados no diagrama são criados para você, e só é preciso editar os arquivos para adicionar o código personalizado.

Diagrama de componente do MLOps Stacks

No diagrama:

  • R: Um cientista de dados ou engenheiro de ML inicializa o projeto usando databricks bundle init mlops-stacks. 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 segredos da entidade de serviço do Databricks para CI/CD.
  • C: Os cientistas de dados desenvolvem modelos no Databricks ou em seu sistema local.
  • D: Os cientistas de dados criam solicitações de pull para atualizar o código de ML.
  • E: O executor de CI/CD executa notebooks, cria trabalhos e executa outras tarefas nos espaços de trabalho de preparo e produção.

Sua organização pode usar a pilha padrão ou personalizá-la conforme necessário para adicionar, remover ou revisar componentes de acordo com as práticas da organização. Confira o Leiame do repositório GitHub para ver mais detalhes.

O MLOps Stacks foi projetado com uma estrutura modular para permitir que as diferentes equipes de ML trabalhem de maneira independente em um projeto, seguindo as melhores práticas de engenharia de software e mantendo a CI/CD de nível de produção. Os engenheiros de produção configuram a infraestrutura de ML que permite aos cientistas de dados desenvolver, testar e implantar pipelines e modelos de ML em produção.

Conforme mostrado no diagrama, a pilha MLOps padrão inclui os três componentes a seguir:

  • Código de ML. MLOps Stacks cria um conjunto de modelos para um projeto de ML, incluindo notebooks para treinamento, inferência em lote e assim por diante. O modelo padronizado permite que os cientistas de dados comecem rapidamente, unifique a estrutura do projeto entre as equipes e aplique código modularizado pronto para teste.
  • Recursos de ML como código. 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 em Databricks Asset Bundles para facilitar testes, otimização e controle de versão para o ambiente de ML. Por exemplo, você pode tentar um tipo de instância maior para retreinamento automatizado do modelo e a alteração será rastreada automaticamente para referência futura.
  • CI/CD. Você pode usar GitHub Actions ou Azure DevOps para testar e implantar código e recursos de ML, garantindo que todas as alterações de produção sejam realizadas por meio de automação e que apenas o código testado seja implantado na produção.

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 em espaços de trabalho de desenvolvimento, preparação e produção do Databricks. MLOps Stacks é configurável, então você pode modificar a estrutura do projeto para atender aos processos da sua organização.

O diagrama mostra o processo implementado pela pilha MLOps padrão. No espaço de trabalho de desenvolvimento, os cientistas de dados iteram no código de ML e nas solicitações pull de arquivos (PRs). Os PRs acionam testes de unidade e testes de integração em um espaço de trabalho de teste isolado do Databricks. Quando um PR é mesclado com o principal, os trabalhos de treinamento de modelo e de inferência em lote executados na preparação são atualizados imediatamente para executar o código mais recente. Depois de mesclar um PR no principal, você pode cortar uma nova ramificação de lançamento como parte do processo de lançamento agendado e implantar as alterações de código na produção.

diagrama de fluxo geral do mlops

Estrutura de projeto do MLOps Stacks

Uma pilha do MLOps usa os Pacotes de Ativos do Databricks, 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. Coletar os arquivos como um pacote facilita o controle de versão de alterações conjunto e o uso das melhores práticas de engenharia de software, como controle do código-fonte, revisão de código, teste e CI/CD.

O diagrama mostra os arquivos criados para a pilha de MLOps padrão. Para ver detalhes sobre os arquivos incluídos na pilha, confira a documentação no repositório GitHub ou nos Pacotes de Ativos do Databricks para o MLOps Stacks.

Estrutura de diretório de Pilhas de MLops

Componentes do MLOps Stacks

Uma “pilha” refere-se ao conjunto de ferramentas usado em um processo de desenvolvimento. A pilha de MLOps padrão aproveita a plataforma unificada do Databricks e usa as seguintes ferramentas:

Componente Ferramenta no Databricks
Código de desenvolvimento de modelo de ML notebooks do Databricks, MLflow
Desenvolvimento e gerenciamento de recursos Engenharia de recursos
Repositório de modelo de ML Modelos no Catálogo do Unity
Serviço de modelo de ML Exibição do modelo Mosaic AI
Infrastructure-as-code Pacotes de Ativos do Databricks
Orchestrator Trabalhos do Databricks
CI/CD GitHub Actions, Azure DevOps
Monitoramento de desempenho de dados e modelos Monitoramento do Lakehouse

Próximas etapas

Para começar, confira Pacotes de ativos do Databricks para MLOps Stacks ou o repositório do Databricks MLOps Stacks no GitHub.