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

Este artigo descreve como o MLOps Stacks permite que o senhor implemente o processo de desenvolvimento e implantação como código em um repositório com controle de origem. Ele também descreve os benefícios do desenvolvimento de modelos na plataforma Databricks Data Intelligence, uma plataforma única que unifica todos os passos do processo de desenvolvimento e implementação de modelos.

O que são pilhas MLOps?

Com o MLOps Stacks, todo o processo de desenvolvimento de modelos é implementado, salvo e rastreado como código em um repositório com controle de 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 que o senhor implante o código em vez de implantar o modelo. A implantação do código automatiza a capacidade de criar o modelo, facilitando muito o retreinamento do modelo quando necessário.

Ao criar um projeto usando MLOps Stacks, o senhor define os componentes do seu processo de desenvolvimento e implantação ML, como Notebook a ser usado para recurso de engenharia, treinamento, teste e implantação, pipeline para treinamento e teste, espaço de trabalho a ser usado em cada estágio e CI/CD fluxo de trabalho usando GitHub Actions ou Azure DevOps para teste e implantação automatizados do seu código.

O ambiente criado pelo MLOps Stacks implementa o fluxo de trabalho do MLOps recomendado pela Databricks. O senhor pode personalizar o código para criar pilhas que correspondam aos processos ou requisitos da sua organização.

Como funciona o MLOps Stacks?

Você usa a CLI do Databricks para criar uma pilha MLOps. Para obter instruções passo a passo, consulte Databricks ativo Bundles for MLOps Stacks.

Quando você inicia um projeto MLOps Stacks, o software orienta você na inserção dos 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 de produção MLOps 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.

Diagrama de componentes 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, o senhor pode optar por configurar os componentes de código ML (normalmente usados por data scientists), os componentes CI/CD (normalmente usados pelos engenheiros de ML ) ou ambos.

  • B: Os engenheiros da ML configuram os segredos da Databricks entidade de serviço para CI/CD.

  • C: data scientists desenvolve modelos em Databricks ou em seu sistema local.

  • D: data scientists criar solicitações pull para atualizar o código ML.

  • E: O executor do CI/CD executa o Notebook, cria trabalhos e realiza outras tarefas no espaço de trabalho de preparação e produção.

Sua organização pode usar a pilha default ou personalizá-la conforme necessário para adicionar, remover ou revisar componentes para se adequar às práticas da sua organização. Consulte o leia-me do repositório GitHub para obter detalhes.

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

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

  • Código ML. MLOps O Stacks cria um conjunto de padrões para um projeto ML, incluindo Notebook para treinamento, inferência de lotes e assim por diante. O padrão padronizado permite que o data scientists comece rapidamente, unifica a estrutura do projeto entre as equipes e impõe um código modularizado pronto para testes.

  • ML recurso como código. MLOps As pilhas definem recursos como espaço de trabalho e pipeline para tarefas como treinamento e inferência de lotes. Os recursos são definidos em Databricks ativo Bundles para facilitar os testes, a otimização e o controle de versão do ambiente ML. Por exemplo, o senhor pode experimentar um tipo de instância maior para retreinamento automatizado do modelo, e a alteração é automaticamente rastreada para referência futura.

  • CI/CD. O senhor pode usar GitHub Actions ou Azure DevOps para testar e implantar o código e o recurso ML, garantindo que todas as alterações na produção sejam realizadas por meio da automação e que somente o código testado seja implantado na produção.

Fluxo do projeto MLOps

Um projeto default MLOps Stacks inclui um ML pipeline com CI/CD fluxo de trabalho para testar e implantar o treinamento de modelos automatizados e o trabalho de inferência de lotes no espaço de trabalho de desenvolvimento, preparação e produção Databricks. O MLOps Stacks é configurável, de modo que o senhor pode modificar a estrutura do projeto para atender aos processos da sua organização.

O diagrama mostra o processo que é implementado pelo default MLOps Stack. No desenvolvimento workspace, data scientists itera no código ML e envia solicitações pull (PRs). Os PRs acionam testes de unidade e testes de integração em um ambiente de preparação isolado Databricks workspace. Quando um PR é mesclado com o principal, o modelo de treinamento e o trabalho de inferência de lotes que a execução no staging atualiza imediatamente para a execução do código mais recente. Depois de merge um PR no main, o senhor pode cortar uma nova ramificação de lançamento como parte do processo de lançamento programado e implantar as alterações de código na produção.

diagrama geral do fluxo de mlops

Estrutura do projeto MLOps Stacks

Uma pilha MLOps usa Databricks ativo Bundles – uma coleção de arquivos de origem que serve como a definição ponta a ponta de um projeto. Esses arquivos fonte incluem informações sobre como serão testados e implantados. Coletar os arquivos como um pacote facilita a coversão de alterações e o uso das melhores práticas de engenharia de software, como controle de origem, revisão de código, testes e CI/CD.

O diagrama mostra os arquivos criados para a pilha MLOps default . Para obter detalhes sobre os arquivos incluídos na pilha, consulte a documentação no repositório GitHub ou Databricks ativo Bundles for MLOps Stacks.

Estrutura de diretório do MLops Stacks

Componentes de pilhas MLOps

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

Componente

Ferramenta na Databricks

Código de desenvolvimento do modelo ML

Databricks Notebook, MLflow

desenvolvimento e gerenciamento de recursos

recursos engenharia

ML repositório de modelos

Modelos no Unity Catalog

Exibição de modelo de ML

Legacy MLflow servindo modelo

Infrastructure-as-Code

Databricks Pacotes ativos

Orquestrador

Jobs do Databricks

CI/CD

GitHub Actions, Azure DevOps