Gerenciamento do ciclo de vida de ML usando MLflow

Este artigo descreve como o MLflow é usado no Databricks para gerenciamento do ciclo de vida do aprendizado de máquina. Ele também inclui exemplos que apresentam cada componente MLflow e links para conteúdo que descrevem como esses componentes são hospedados no Azure Databricks.

O gerenciamento do ciclo de vida do ML no Databricks é fornecido pelo MLflow gerenciado. O Azure Databricks proporciona uma versão totalmente gerida e alojada do MLflow integrada com funcionalidades de segurança empresarial, elevada disponibilidade e outras funcionalidades das áreas de trabalho do Azure Databricks, como gestão de experimentações e execuções e captura de revisão de blocos de notas.

Os usuários iniciantes devem começar com Introdução aos experimentos MLflow, que demonstra as APIs básicas de rastreamento de MLflow.

O que é MLflow?

O MLflow é uma plataforma open source para gerir o ciclo de vida completo de machine learning. Tem os seguintes componentes principais:

  • Rastreamento: Permite rastrear experimentos para registrar e comparar parâmetros e resultados.
  • Modelos: permitem gerenciar e implantar modelos de uma variedade de bibliotecas de ML para uma variedade de plataformas de serviço e inferência de modelos.
  • Projetos: Permitem que você empacote o código ML em um formato reutilizável e reproduzível para compartilhar com outros cientistas de dados ou transferir para a produção.
  • Model Registry: Permite centralizar um repositório de modelos para gerenciar as transições de estágio de ciclo de vida completo dos modelos: do preparo à produção, com recursos para versionamento e anotação. O Databricks fornece uma versão gerenciada do Registro de Modelo no Catálogo Unity.
  • Serviço de modelos: Permite hospedar modelos MLflow como pontos de extremidade REST. O Databricks fornece uma interface unificada para implantar, governar e consultar seus modelos de IA servidos.

O MLflow suporta as APIs de Java, Python, R e REST.

Os dados MLflow são criptografados pelo Azure Databricks usando uma chave gerenciada pela plataforma. Não há suporte para criptografia usando chaves gerenciadas pelo cliente para serviços gerenciados .

Rastreamento de MLflow

O MLflow no Azure Databricks oferece uma experiência integrada para rastrear e proteger execuções de treinamento para modelos de aprendizado de máquina e aprendizado profundo.

Gerenciamento do ciclo de vida do modelo

O MLflow Model Registry é um repositório de modelos centralizado e uma interface do usuário e um conjunto de APIs que permitem gerenciar o ciclo de vida completo dos modelos MLflow. O Databricks fornece uma versão hospedada do Registro de Modelo MLflow no Unity Catalog. O Unity Catalog fornece governança de modelo centralizada, acesso entre espaços de trabalho, linhagem e implantação. Para obter detalhes sobre como gerenciar o ciclo de vida do modelo no Unity Catalog, consulte Manage model lifecycle in Unity Catalog.

Se seu espaço de trabalho não estiver habilitado para o Catálogo Unity, você poderá usar o Registro do Modelo de Espaço de Trabalho.

Conceitos do Registro de Modelo

  • Modelo: Um Modelo MLflow registrado a partir de um experimento ou execução que é registrado com um dos métodos do sabor mlflow.<model-flavor>.log_model do modelo. Depois que um modelo é registrado, você pode registrá-lo no Registro Modelo.
  • Modelo registrado: um modelo MLflow que foi registrado no Registro Modelo. O modelo registrado tem um nome exclusivo, versões, linhagem de modelo e outros metadados.
  • Versão do modelo: uma versão de um modelo registado. Quando um novo modelo é adicionado ao Registro modelo, ele é adicionado como Versão 1. Cada modelo registrado com o mesmo nome de modelo incrementa o número da versão.
  • Alias de modelo: um alias é uma referência mutável e nomeada a uma versão específica de um modelo registrado. Os usos típicos de aliases são para especificar quais versões de modelo são implantadas em um determinado ambiente em seus fluxos de trabalho de treinamento de modelo ou para escrever cargas de trabalho de inferência destinadas a um alias específico. Por exemplo, você pode atribuir o alias "Champion" do seu modelo registrado "Fraud Detection" à versão do modelo que deve atender à maioria do tráfego de produção e, em seguida, escrever cargas de trabalho de inferência direcionadas a esse alias (ou seja, fazer previsões usando a versão "Champion").
  • Estágio do modelo (somente registro do modelo de espaço de trabalho): uma versão do modelo pode ser atribuída a um ou mais estágios. O MLflow fornece estágios predefinidos para os casos de uso comuns: Nenhum, Preparo, Produção e Arquivado. Com a permissão apropriada, você pode fazer a transição de uma versão do modelo entre os estágios ou pode solicitar uma transição do estágio do modelo. Os estágios da versão do modelo não são usados no Unity Catalog.
  • Descrição: Você pode anotar a intenção de um modelo, incluindo uma descrição e qualquer informação relevante útil para a equipe, como descrição do algoritmo, conjunto de dados empregado ou metodologia.

Blocos de notas de exemplo

Para obter um exemplo que ilustra como usar o Registro Modelo para criar um aplicativo de aprendizado de máquina que prevê a saída diária de energia de um parque eólico, consulte o seguinte:

Implementação do modelo

O Databricks Model Serving fornece uma interface unificada para implantar, governar e consultar modelos de IA. Cada modelo que você atende está disponível como uma API REST que você pode integrar em seu aplicativo Web ou cliente.

O modelo de serviço suporta servir:

  • Modelos personalizados. Estes são modelos Python empacotados no formato MLflow. Eles podem ser registrados no Unity Catalog ou no registro do modelo de espaço de trabalho. Exemplos incluem os modelos de transformador scikit-learn, XGBoost, PyTorch e Hugging Face.
  • Modelos abertos de última geração disponibilizados pelas APIs do Foundation Model. Esses modelos são arquiteturas de modelo de base selecionadas que suportam inferência otimizada. Modelos básicos, como Llama-2-70B-chat, BGE-Large e Mistral-7B estão disponíveis para uso imediato com preços de pagamento por token, e cargas de trabalho que exigem garantias de desempenho e variantes de modelo ajustadas podem ser implantadas com taxa de transferência provisionada.
  • Modelos externos. Estes são modelos que são hospedados fora do Databricks. Exemplos incluem modelos de fundação como, GPT-4 da OpenAI, Claude da Anthropic, e outros. Os endpoints que atendem modelos externos podem ser controlados centralmente e os clientes podem estabelecer limites de taxa e controles de acesso para eles.

Você também pode implantar modelos MLflow para inferência offline, consulte Implantar modelos para inferência em lote.