Como o Databricks dá suporte a CI/CD para machine learning?
CI/CD (integração contínua e entrega contínua) refere-se a um processo automatizado para desenvolver, implantar, monitorar e manter seus aplicativos. Ao automatizar a criação, o teste e a implantação de código, as equipes de desenvolvimento podem entregar versões com mais frequência e confiabilidade do que os processos manuais ainda predominantes em muitas equipes de engenharia de dados e ciência de dados. CI/CD para machine learning reúne técnicas de MLOps, DataOps, ModelOps e DevOps.
Este artigo descreve como o Databricks dá suporte a CI/CD para soluções de machine learning. Em aplicativos de machine learning, CI/CD é importante não apenas para ativos de código, mas também é aplicado a pipelines de dados, incluindo dados de entrada e os resultados gerados pelo modelo.
Elementos de machine learning que precisam de CI/CD
Um dos desafios do desenvolvimento de ML é que diferentes equipes possuem diferentes partes do processo. O Teams pode contar com ferramentas diferentes e ter agendas de lançamento diferentes. O Azure Databricks fornece uma única plataforma de ML e dados unificados com ferramentas integradas para melhorar a eficiência das equipes e garantir a consistência e a repetição de dados e pipelines de ML.
Em geral, para tarefas de machine learning, o seguinte deve ser acompanhado em um fluxo de trabalho de CI/CD automatizado:
- Dados de treinamento, incluindo qualidade de dados, alterações de esquema e alterações de distribuição.
- Pipelines de dados de entrada.
- Código para treinamento, validação e serviço do modelo.
- Previsões de modelo e desempenho.
Integrar o Databricks aos processos de CI/CD
MLOps, DataOps, ModelOps e DevOps referem-se à integração de processos de desenvolvimento com "operações" – tornando os processos e a infraestrutura previsíveis e confiáveis. Este conjunto de artigos descreve como integrar princípios de operações ("ops") em seus fluxos de trabalho de ML na plataforma do Databricks.
O Databricks incorpora todos os componentes necessários para o ciclo de vida de ML, incluindo ferramentas para criar "configuração como código" para garantir a reprodutibilidade e a "infraestrutura como código" para automatizar o provisionamento de serviços de nuvem. Ele também inclui serviços de registro em log e alertas para ajudá-lo a detectar e solucionar problemas quando eles ocorrem.
DataOps: dados confiáveis e seguros
Bons modelos de ML dependem de pipelines de dados confiáveis e infraestrutura. Com a Plataforma de Data Intelligence do Databricks, todo o pipeline de dados da ingestão de dados para as saídas do modelo servido está em uma única plataforma e usa o mesmo conjunto de ferramentas, o que facilita a produtividade, a reprodutibilidade, o compartilhamento e a solução de problemas.
Tarefas e ferramentas do DataOps no Databricks
A tabela lista as tarefas e as ferramentas comuns do DataOps no Databricks:
Tarefa DataOps | Ferramenta no Databricks |
---|---|
Ingerir e transformar dados | Carregador automático e Apache Spark |
Controlar alterações nos dados, incluindo controle de versão e linhagem | Tabelas do Delta |
Criar, gerenciar e monitorar pipelines de processamento de dados | Delta Live Tables |
Garantir a segurança e a governança de dados | Catálogo do Unity |
Análise e dashboards de dados exploratórios | Databricks SQL, Painéis e Notebooks do Databricks |
Codificação geral | Notebooks databricks SQL e Databricks |
Agendar pipelines de dados | Trabalhos do Databricks |
Automatizar fluxos de trabalho gerais | Trabalhos do Databricks |
Criar, armazenar, gerenciar e descobrir recursos para treinamento de modelo | Databricks Feature Store |
Monitoramento de dados | Monitoramento do Lakehouse |
ModelOps: Desenvolvimento e ciclo de vida do modelo
O desenvolvimento de um modelo requer uma série de experimentos e uma maneira de acompanhar e comparar as condições e os resultados desses experimentos. A Plataforma de Data Intelligence do Databricks inclui o MLflow para acompanhamento de desenvolvimento de modelos e o Registro de Modelo do MLflow para gerenciar o ciclo de vida do modelo, incluindo preparo, serviço e armazenamento de artefatos de modelo.
Depois que um modelo é lançado para produção, muitas coisas podem mudar que podem afetar seu desempenho. Além de monitorar o desempenho de previsão do modelo, você também deve monitorar dados de entrada para alterações nas características estatísticas ou de qualidade que possam exigir a readaptação do modelo.
Ferramentas e tarefas do ModelOps no Databricks
A tabela lista as tarefas e as ferramentas comuns do ModelOps fornecidas pelo Databricks:
Tarefa ModelOps | Ferramenta no Databricks |
---|---|
Acompanhar o desenvolvimento de modelos | Acompanhamento de modelo do MLflow |
Gerenciar ciclo de vida do modelo | Modelos no Catálogo do Unity |
Controle e compartilhamento de versão do código do modelo | Pastas Git do Databricks |
Desenvolvimento de modelo sem código | AutoML do Mosaico |
Monitoramento de Modelo | Monitoramento do Lakehouse |
DevOps: Produção e automação
A plataforma Databricks dá suporte a modelos de ML em produção com o seguinte:
- Dados de ponta a ponta e linhagem de modelo: desde modelos em produção até a fonte de dados bruta, na mesma plataforma.
- Serviço de modelo de nível de produção: aumenta ou reduz automaticamente com base nas suas necessidades comerciais.
- Trabalhos: Automatiza trabalhos e cria fluxos de trabalho de aprendizado de máquina agendados.
- Pastas do Git: o controle de versão de código e o compartilhamento do workspace também ajudam as equipes a seguir as melhores práticas de engenharia de software.
- Provedor do Databricks Terraform: automatiza a infraestrutura de implantação entre nuvens para trabalhos de inferência de ML, atendendo pontos de extremidade e trabalhos de apresentação.
Serviço de modelo
Para implantar modelos em produção, o MLflow simplifica significativamente o processo, fornecendo a implantação de clique único como um trabalho em lote para grandes quantidades de dados ou como um ponto de extremidade REST em um cluster de dimensionamento automático. A integração do Databricks Feature Store com o MLflow também garante a consistência dos recursos para treinamento e serviço; além disso, os modelos do MLflow podem pesquisar automaticamente os recursos da Repositório de Recursos, mesmo para serviços online de baixa latência.
A plataforma Databricks dá suporte a muitas opções de implantação de modelo:
- Código e contêineres.
- Serviço em lote.
- Serviço online de baixa latência.
- Serviço no dispositivo ou borda.
- Várias nuvens, por exemplo, treinando o modelo em uma nuvem e implantando-o com outra.
Para obter mais informações, consulte Serviço de Modelo de IA do Mosaico.
Trabalhos
Os Trabalhos do Databricks permitem automatizar e programar qualquer tipo de carga de trabalho, de ETL para ML. O Databricks também dá suporte a integrações com orquestradores de terceiros populares, como o Airflow.
Pastas Git
A plataforma do Databricks inclui suporte ao Git no workspace para ajudar as equipes a seguir as melhores práticas de engenharia de software executando operações Git por meio da interface do usuário. Administradores e engenheiros de DevOps podem usar APIs para configurar a automação com suas ferramentas de CI/CD favoritas. O Databricks dá suporte a qualquer tipo de implantação do Git, incluindo redes privadas.
Para obter mais informações sobre as melhores práticas para o desenvolvimento de código usando as pastas Git do Databricks, consulte Fluxos de trabalho de CI/CD com a integração do Git e pastas Git do Databricks e Usar CI/CD. Essas técnicas, juntamente com a API REST do Databricks, permitem criar processos de implantação automatizados com o GitHub Actions, pipelines do Azure DevOps ou trabalhos do Jenkins.
Catálogo do Unity para governança e segurança
A plataforma Databricks inclui o Catálogo do Unity, que permite que os administradores configurem controle de acesso refinado, políticas de segurança e governança para todos os dados e ativos de IA no Databricks.