Pular para o conteúdo principal

Ciclo de vida de machine learning

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

  1. Defina o escopo do caso de uso e o sucesso
  2. Explorar e compreender os dados
  3. Preparar dados e recursos
  4. Ensinar modelos e acompanhar experimentos
  5. Avaliar
  6. Registrar, estagiar e testar modelos
  7. Implantar para a produção
  8. Monitorar e retreinar

1. Defina o escopo do caso de uso e o sucesso

Antes de construir qualquer coisa, defina o que o modelo precisa fazer e como saber que ele está funcionando.

  • Qual é o alvo de previsão, e que tipo de problema de ML isso implica: classificação, regressão, previsão, recomendação, ranqueamento, detecção de anomalia ou outra coisa?
  • Quais dados de entrada estão disponíveis, e é suficiente para aprender o padrão alvo?
  • Quais métricas definem o sucesso: acurácia, AUC, precisão em K ou KPIs de negócios?
  • Quais são os requisitos de disponibilização e produção: latência, taxa de transferência e frescor de dados?
  • Quais partes interessadas devem aprovar as implantações em produção? Quais são os requisitos deles em relação à explicabilidade?

Os requisitos anteriores não ditam o método ML específico. Pode-se começar a modelar com uma abordagem mais simples, como árvores de boosting de gradiente, e mais tarde decidir que métodos de aprendizagem profunda 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 relacionamento com o alvo de previsão. Análise exploratória de dados (EDA) é o processo de resumir e visualizar um dataset para identificar distribuições, correlações, valores ausentes e outliers que moldam as decisões de modelagem posteriores.

No início, é preciso decidir como verificar a validade dos dados de teste que foram separados do treinamento. Mesmo durante a EDA, evite tomar decisões de modelagem com base nos seus dados de teste.

A 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?
  • Existem valores ausentes, atípicos ou distribuições assimétricas que exijam limpeza ou transformações?
  • O dataset é suficientemente grande e representativo para aprender o padrão-alvo?

A Databricks simplifica a EDA com ferramentas interativas, colaborativas e assistidas por IA. Explore seus dados usando chat de linguagem natural, UIs ou código, e colabore por meio de coedição em tempo real e compartilhamento de código baseado em Git:

  • Notebooks oferecem espaços colaborativos para exploração, visualização e documentação.
  • Os painéis fornecem exploração baseada em SQL e em visualização.
  • Genie Chat oferece uma interface de página inteira de linguagem natural para fazer perguntas sobre dados.
  • O Genie Code pode realizar EDA totalmente automatizada 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 veiculação, incluindo velocidade, volume, atualidade e propriedade das fontes de dados. A fronteira entre a **engenharia de dados** (preparação e transformação de dados) e a **engenharia de recursos** (derivação de inputs de ML) é tênue. No Databricks, engenharia de dados e ML compartilham a mesma plataforma e camada de governança no Unity Catalog, para que os dados preparados por uma equipe possam ser disponibilizados imediatamente como recursos para outra, sem movimentação de dados ou pipelines duplicados.

Pesquisar dados e definições de recurso:

  • Explore dados e recursos disponíveis em Unity Catalog. Se sua organização tiver modelos relacionados implementados, utilize a linhagem do Unity Catalog para descobrir as fontes de dados e os recursos utilizados para esses modelos.
  • A pesquisa de workspace pode ajudar a descobrir quais dados governados, modelos ou aplicativos já existem.

Criar e gerenciar novos ativos conforme necessário:

  • Consulte Engenharia de dados com Databricks para obter mais informações sobre ferramentas para ingestão de dados e engenharia, incluindo Lakeflow Designer para uma experiência assistida por AI e sem código.
  • Use a Feature Store para definir e gerenciar recursos como ativos reutilizáveis e controlados. As mesmas definições de recursos são usadas em treinamento e produção, com suporte para ingestão de dados em lotes e dados tempo-real e para serviço em lotes e em tempo real.

Use Genie Code para acelerar o descobrimento de dados e a preparação, navegando pelo Unity Catalog para descobrir tabelas relevantes, sugerindo transformações de recursos e gerando código inicial para pipelines de ingestão e recursos.

4. Treinar modelos e acompanhar experimentos

Aplicativos de ciência de dados e ML usam muitas abordagens diferentes, cada um com seus próprios requisitos para algoritmos de ML e bibliotecas, requisitos de compute e fluxos de trabalho. A Databricks oferece ambientes flexíveis e compute para diferentes cargas de trabalho, com o acompanhamento de experimentos unificado no MLflow.

Ambientes e compute

Por default, utilize compute serverless para Notebooks interativos e Jobs automatizados. O compute serverless começa instantaneamente e é dimensionado automaticamente para cima e para baixo com a sua carga de trabalho.

Para cargas de trabalho de CPU e GPU, você também pode usar compute clássico com o Databricks Runtime para Machine Learning.

Personalize quaisquer dos ambientes precedentes com suas bibliotecas de ML. Com ambientes frequentemente altamente personalizados para aplicações de ML, aproveite o acompanhamento do MLflow para registrar dependências, verificar a reprodutibilidade e evitar o desvio entre treinamento e serviço.

MLflow acompanhamento

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

Comece com modelagem

O Genie Code pode gerar um Notebook de ML completo a partir de uma descrição em linguagem natural da tarefa de previsão, incluindo seleção de recursos do Feature Store, treinamento de ML e acompanhamento de MLflow.

Veja também recursos para ajuste de hiperparâmetros, exemplos de treinamento de modelos e Ray na Databricks.

5. Avaliar

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

  • Suas métricas base podem ser métricas comuns de ML, 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, medidos pela comparação de métricas base entre os segmentos dos seus dados.

Defina métricas usando sua biblioteca ou framework de ML escolhido, o módulo de métricas integradas do MLflow ou sua lógica personalizada. Para todas as métricas, registre métricas em execuções do MLflow para vinculá-las aos seus modelos correspondentes. As métricas que você define durante o desenvolvimento e o treinamento podem ser reutilizadas posteriormente como métricas para monitoramento de produção.

6. Registrar, gerenciar e testar modelos

Após o treinamento de um modelo de ML ou pipeline, registre-o no MLflow Model Registry no Unity Catalog para simplificar a governança e o gerenciamento à medida que promove o modelo para a produção. Um modelo registrado possui versões, cada qual vinculado à execução de treinamento original que a produziu. As versões do modelo permitem fluxos de trabalho de implantação seguros: é possível testar uma nova versão em teste antes de promovê-la para produção, reverter para uma versão anterior se a qualidade for degradada e manter um registro de auditoria completo do que foi implantado e quando.

Antes que uma nova versão do modelo atenda ao tráfego de produção, teste a versão no ambiente de teste sob condições realistas.

  • Rotule a versão candidata do modelo com aliases (Staging, Production) para sinalizar o estado do ciclo de vida sem renomear artefatos.
  • Executar testes de integração na infraestrutura de preparação: confirme se o endpoint de serviço começa, a latência atende aos requisitos e as saídas estão bem-formadas.
  • Execute testes A/B ou de sombra em dados de produção para validar o desempenho antes da transição completa.
  • Obter a aprovação das partes interessadas com base nos resultados da avaliação.

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

7. Implantar para produção

Após a validação de staging, promova e implante o modelo para produção para gerar previsões para entradas do mundo real. O Databricks oferece suporte a dois padrões de serviço principais:

  • Serviço em tempo real: Implante o modelo como um endpoint 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 fraudes no momento da transação, personalização ao vivo ou preços dinâmicos.
  • Inferência em lote : ai_query oferece inferência em lote eficiente para modelos personalizados implantados como endpoints do Model Serving. Você também pode usar código personalizado com UDFs do Apache Spark (exemplo) ou mlflow.pyfunc para inferência em lote. Pipelines em lotes escrevem resultados em tabelas Delta para aplicativos a jusante, painéis ou pipelines. Este padrão lida com previsões diárias, atualizações noturnas de recomendações e outros jobs periódicos.

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

O Genie Code pode tanto gerar código para implantação quanto ajudar a solucionar problemas de veiculação, explicar o comportamento do endpoint e acelerar a iteração quando os modelos precisam ser atualizados ou reimplantados.

8. Monitoramento e retreinamento

Sistemas de ML em 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:

  • Faça o log das entradas e saídas dos seus modelos implantados. Para serviço em tempo real, tabelas de inferência fornecem log automático sem alterações no código do seu modelo. Para servir em lotes, seus pipelines leem e gravam naturalmente em tabelas Delta gerenciadas pelo Unity Catalog.
  • Encaminhe esses logs para monitoramento da qualidade dos dados, que acompanha a qualidade dos dados, o desvio de recursos e a distribuição de previsões ao longo do tempo. Caso haja dados de verdade fundamental ou de feedback, é possível fazer o join desses dados com os logs de serviço para computar métricas de qualidade de previsão.
  • Use a interface de monitoramento e os alertas de detecção de anomalia para acionar a escalada ou o retreinamento antes que a qualidade se degrade visivelmente.

Saiba mais sobre ML de produção em fluxos de trabalho de MLOps no Databricks.

Saiba mais