Ciclo de vida do machine learning

Esta página descreve a jornada de ponta a ponta para levar um projeto de ML (machine learning) do escopo inicial à produção e mantê-lo com um bom desempenho ao longo do tempo. Código, dados e modelos passam por três estágios amplos: desenvolvimento, preparo e produção. Cada estágio tem metas e requisitos distintos:

  1. Definir o escopo do caso de uso e definir o êxito
  2. Explorar e entender os dados
  3. Preparar dados e recursos
  4. Treinar modelos e acompanhar experimentos
  5. Avaliar
  6. Registrar, preparar e testar modelos
  7. Implantar em produção
  8. Monitorar e retreinar

1. Definir o escopo do caso de uso e definir o êxito

Antes de criar qualquer coisa, alinhe-se ao que o modelo precisa fazer e como você saberá que ele está funcionando.

  • Qual é a variável-alvo da previsão, e que classe de problema de ML isso indica: classificação, regressão, previsão, recomendação, ranqueamento, detecção de anomalias ou outra coisa?
  • Quais dados de entrada estão disponíveis, e eles são suficientes para aprender o padrão de destino?
  • Quais métricas definem o sucesso: precisão, AUC, precisão em K ou KPIs de negócios?
  • Quais são os requisitos de serviço e produção: latência, taxa de transferência e atualização de dados?
  • Quais partes interessadas devem aprovar as implantações em produção? Quais são seus requisitos em relação à explicabilidade?

Os requisitos anteriores não determinam o método ML específico. Você pode começar a modelar com uma abordagem mais simples, como árvores aumentadas por gradiente, e depois decidir que métodos de aprendizado profundo mais poderosos são necessários.

2. Explorar e entender os dados

Antes de preparar recursos ou treinar um modelo, explore os dados para entender sua estrutura, qualidade e relação com o destino de previsão. A análise exploratória de dados (EDA) é o processo de resumir e visualizar um conjunto de dados para distribuições de superfície, correlações, valores ausentes e exceções que moldam decisões de modelagem downstream.

No início, decida como verificar se você tem dados de teste válidos que são retidos do treinamento. Mesmo durante o EDA, cuidado ao tomar decisões de modelagem com base nos dados de teste.

O EDA responde a perguntas que informam o restante do ciclo de vida:

  • Quais entradas são mais preditivas do alvo, e alguma delas está indisponível no momento da inferência?
  • Há valores ausentes, exceções ou distribuições distorcidas que exigem limpeza ou transformação?
  • O conjunto de dados é grande o suficiente e é representativo o suficiente para aprender o padrão-alvo?

Azure Databricks simplifica o EDA com ferramentas interativas, colaborativas e assistidas por IA. Explore seus dados usando chat em linguagem natural, interface do usuário ou código e colabore por meio da co-edição em tempo real e do compartilhamento de código baseado em Git:

  • Os notebooks fornecem espaços colaborativos para exploração, visualização e documentação.
  • Os painéis fornecem exploração baseada em SQL e visualização.
  • O Genie Chat fornece uma interface de linguagem natural de página inteira para fazer perguntas sobre dados.
  • O Genie Code pode executar um EDA totalmente automatizado ou atuar como um assistente interativo.

3. Preparar dados e recursos

Com os dados compreendidos, transforme as fontes brutas e as transformações identificadas durante o EDA em recursos para modelos de ML. Avalie seus pipelines de dados para treinamento e serviço, incluindo velocidade, volume, atualização e propriedade de fontes de dados. O limite entre a engenharia de dados (preparação e transformação de dados) e a engenharia de recursos (derivando entradas de ML) é difuso. Em Azure Databricks, a engenharia de dados e o ML compartilham a mesma plataforma e camada de governança no Catálogo do Unity, portanto, os dados preparados por uma equipe podem ser disponibilizados imediatamente como recursos para outra, sem movimentação de dados ou pipelines duplicados.

Pesquise dados existentes e definições de funcionalidades:

  • Explore dados e recursos disponíveis no Catálogo do Unity. Se sua organização tiver modelos relacionados em vigor, use a linhagem do Catálogo do Unity para descobrir fontes de dados e recursos usados para esses modelos.
  • A pesquisa de workspace pode ajudá-lo a descobrir quais dados, modelos ou aplicativos controlados já existem.

Crie e gerencie novos ativos conforme necessário:

  • Consulte a engenharia de dados com o Databricks para obter mais informações sobre ferramentas de ingestão e engenharia de dados, incluindo o Lakeflow Designer para uma experiência sem código assistida por IA.
  • Use o Repositório de Recursos para definir e gerenciar recursos como ativos reutilizáveis e regidos. As mesmas definições de atributos são usadas no treinamento e na produção, com suporte para ingestão de dados em lote e em tempo real e para disponibilização em lote e em tempo real.

Use Genie Code para acelerar a descoberta e a preparação de dados navegando pelo Unity Catalog para encontrar tabelas relevantes, sugerir transformações de atributos e gerar código inicial para pipelines de ingestão e de atributos.

4. Treinar modelos e acompanhar experimentos

Os aplicativos de ML e ciência de dados usam muitas abordagens diferentes, cada uma delas com seus próprios requisitos para algoritmos e bibliotecas de ML, requisitos de computação e fluxos de trabalho. Azure Databricks fornece ambientes flexíveis e computação para cargas de trabalho diferentes, com o acompanhamento de experimentos unificado no MLflow.

Ambientes e computação

Por padrão, use a computação sem servidor para notebooks interativos e trabalhos automatizados. A computação sem servidor começa instantaneamente e aumenta e reduz automaticamente com sua carga de trabalho.

Para aceleração de GPU, anexe GPUs à computação sem servidor, que usa o AI Runtime, um ambiente pré-configurado para treinamento e inferência de GPU.

Para cargas de trabalho de CPU e GPU, você também pode usar a computação clássica com o Databricks Runtime para Machine Learning.

Personalize qualquer um dos ambientes anteriores com suas bibliotecas de ML. Com ambientes geralmente altamente personalizados para aplicativos ML, aproveite o acompanhamento do MLflow para registrar dependências, verificar a reprodutibilidade e evitar distorções de serviço de treinamento.

Rastreamento do MLflow

Use o MLflow gerenciado pelo Azure Databricks para acompanhar sua experimentação e registrar em log os metadados do modelo:

Introdução à modelagem

O Genie Code pode gerar um notebook ML completo a partir de uma descrição em linguagem simples da tarefa de previsão, incluindo seleção de recursos do Repositório de Recursos, treinamento de ML e acompanhamento do MLflow.

Veja também os recursos para ajuste de hiperparâmetro, exemplos de treinamento de modelo e Ray no Databricks.

Para obter aprendizado profundo e treinamento de ML clássico acelerado por GPU, consulte notebooks de exemplo para o AI Runtime.

5. Avaliar

Durante o desenvolvimento, defina métricas de avaliação de qualidade com base nos requisitos do escopo:

  • Suas métricas base podem ser métricas ML comuns, como precisão, AUC, RMSE ou métricas específicas do domínio.
  • Sua avaliação também pode incluir métricas derivadas, como viés e imparcialidade entre segmentos populacionais, medida pela comparação de métricas base entre segmentos de seus dados.

Defina métricas usando sua biblioteca ou estrutura de ML escolhida, usando o módulo de métricas internas do MLflow ou sua lógica personalizada. Para todas as métricas, as métricas de log no MLflow são executadas para vinculá-las aos modelos correspondentes. As métricas que você define durante o desenvolvimento e o treinamento podem ser reutilizados posteriormente como métricas para monitoramento de produção.

6. Registrar, preparar e testar modelos

Depois de treinar um modelo ou pipeline de ML, registre-o no Registro de Modelo do MLflow no Catálogo do Unity para simplificar a governança e o gerenciamento à medida que você promove o modelo em direção à produção. Um modelo registrado tem versões, cada uma delas está vinculada à execução de treinamento original que o produziu. As versões de modelo habilitam fluxos de trabalho de implantação seguras: você pode testar uma nova versão no preparo antes de promovê-la à produção, reverter para uma versão anterior se a qualidade degradar e manter uma trilha de auditoria completa do que foi implantado e quando.

Antes de uma nova versão do modelo receber tráfego de produção, teste essa versão em staging sob condições realistas:

  • Atribua aliases à versão do modelo candidato (Staging, Production) para indicar o estágio do ciclo de vida sem renomear artefatos.
  • Execute os testes de integração na infraestrutura de homologação: confirme se o ponto de extremidade de serviço inicia corretamente, se a latência atende aos requisitos e se as saídas estão bem formatadas.
  • Realize testes A/B ou testes em sombra com dados de produção para validar o desempenho antes da migração completa.
  • Obtenha a aprovação formal das partes interessadas com base nos resultados da avaliação.

Essa descrição simplifica demais as práticas de implantação e as MLOps (operações de ML). Saiba mais detalhes sobre MLOps nos fluxos de trabalho do MLOps no Azure Databricks.

7. Implantar na produção

Após a validação no ambiente de homologação, promova o modelo para produção e implante-o para gerar previsões com dados reais de entrada. Azure Databricks dá suporte a dois padrões de serviço primários:

  • Serviço em tempo real: implante o modelo como um ponto de extremidade REST de baixa latência usando o Model Serving para casos de uso que exigem decisões de baixa latência, como interceptação de fraude em tempo de transação, personalização dinâmica ou preços dinâmicos.
  • Inferência em lote: ai_query oferece inferência em lote eficiente para modelos personalizados implantados como ponto de extremidade do Serviço de Modelo. Você também pode usar código personalizado com UDFs do Apache Spark (exemplo) ou mlflow.pyfunc para inferência em lote. Pipelines de lote gravam resultados em tabelas Delta para aplicações posteriores, dashboards ou pipelines. Esse padrão lida com previsões diárias, atualizações noturnas de recomendação e outros trabalhos periódicos.

Ambos os padrões usam o mesmo artefato de modelo treinado. Treine uma vez e implante em lote ou em tempo real servindo da mesma versão registrada, com a mesma governança e linhagem.

O Genie Code pode gerar código para implantação e ajudar a solucionar problemas de atendimento, explicar o comportamento do ponto de extremidade e acelerar a iteração quando os modelos devem ser atualizados ou reimplantados.

8. Monitorar e retreinar

Os sistemas de ML de produção podem se degradar ao longo do tempo à medida que o comportamento do usuário muda ou os pipelines de dados mudam. Monitore continuamente seus dados de produção e previsões de modelo:

  • Registre entradas e saídas de seus modelos implantados. Para servir em tempo real, as tabelas de inferência fornecem log automático sem alterações no código do modelo. Para processamento em lote, seus pipelines naturalmente leem dados de tabelas Delta e gravam dados nelas, gerenciadas pelo Unity Catalog.
  • Insira esses logs no monitoramento da qualidade dos dados, que acompanha a qualidade dos dados, a deriva de atributos e a distribuição das previsões ao longo do tempo. Se você tiver dados de verdade ou comentários básicos, poderá unir esses dados com o serviço de logs para calcular métricas de qualidade de previsão.
  • Use a interface do usuário de monitoramento e os alertas de detecção de anomalias para disparar escalonamento ou retreinamento antes que a qualidade seja visivelmente degradada.

Saiba mais sobre a ML de produção nos fluxos de trabalho do MLOps no Azure Databricks.

Recursos adicionais