Gerenciamento do ciclo de vida do ML usando o MLflow

Este artigo descreve como o MLflow é usado no Databricks para o gerenciamento do ciclo de vida do aprendizado de máquina. Ele também inclui exemplos que apresentam cada componente do MLflow e links para conteúdos 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 fornece uma versão totalmente gerenciada e hospedada do MLflow integrada com recursos de segurança da empresa, alta disponibilidade e outros recursos de espaço de trabalho de Azure Databricks, como teste de experiência e execução e captura de revisão de notebook.

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

O que é o MLflow?

O MLflow é uma plataforma de fonte aberta para gerenciar o ciclo de vida de machine learning de ponta a ponta. Ele tem os seguintes componentes primários:

  • Acompanhamento: Permite que você acompanhe experimentos para registrar e comparar parâmetros e resultados:
  • Modelos: Permitem que você gerencie e implante modelos de uma variedade de bibliotecas de ML para uma variedade de plataformas de serviço e inferência de modelos.
  • Projetos: Permite que você empacote o código ML em um formulário reutilizável e reproduzível para compartilhar com outros cientistas de dados ou transferir para produção.
  • Registro de Modelos: permite centralizar um repositório de modelos para gerenciar transições completas de fase do ciclo de vida dos modelos: do preparo à produção, com recursos para controle de versão e anotação. O Databricks fornece uma versão gerenciada do Registro de Modelo no Catálogo do Unity.
  • Servidor de Modelo: permite hospedar modelos do MLflow como pontos de extremidade REST. O Databricks oferece uma interface unificada para implantar, gerenciar e consultar seus modelos de IA implantados.

O MLflow dá suporte a APIs Java, Python, R e REST.

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

Acompanhamento do 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 Registro de Modelo do MLflow é um repositório de modelos centralizado, além de uma interface do usuário e um conjunto de APIs que permitem gerenciar o ciclo de vida completo dos modelos do MLflow. O Azure Databricks fornece uma versão hospedada do Registro de Modelo do MLflow no Catálogo do Unity. O Unity Catalog fornece governança de modelo centralizado, 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, veja Gerenciar o ciclo de vida do modelo no Unity Catalog.

Se o seu espaço de trabalho não estiver habilitado para o Unity Catalog, você poderá usar o Workspace Model Registry.

Conceitos do Registro de Modelo

  • Modelo: um modelo do MLflow registrado em log em um experimento ou uma execução registrada em log com um dos métodos mlflow.<model-flavor>.log_model da variante de modelo. Depois que um modelo for registrado, você poderá registrá-lo no Registro de Modelos.
  • Modelo registrado: um modelo do MLflow que foi registrado no Registro de 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 registrado. Quando um novo modelo é adicionado ao Registro de Modelo, ele é adicionado como Versão 1. Cada modelo registrado com o mesmo nome de modelo incrementa o número de versão.
  • Alias de modelo: um alias é uma referência mutável e nomeada a uma versão específica em um modelo registrado. Aliases são normalmente usados para especificar quais versões do modelo são implantadas em um determinado ambiente em seus fluxos de trabalho de treinamento de modelo ou para gravar cargas de trabalho de inferência direcionadas a um alias específico. Por exemplo, você pode atribuir o alias "Campeão" do seu modelo registrado "Detecção de Fraude" à versão do modelo que deve atender à maioria do tráfego de produção e, em seguida, gravar cargas de trabalho de inferência direcionadas a esse alias (ou seja, fazer previsões usando a versão "Campeão").
  • Estágio do modelo (somente registro do modelo do espaço de trabalho): Uma versão do modelo pode receber um ou mais estágios. O MLflow fornece estágios predefinidos para os casos de uso comuns: Nenhum, Preparação, Produção e Arquivado. Com a permissão apropriada, você pode fazer a transição de uma versão de modelo entre fases ou solicitar uma transição de fase do modelo. Os estágios de 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 anotações de exemplo

Para obter um exemplo que ilustra como usar o Model Registry para construir um aplicativo de aprendizado de máquina que prevê a produção diária de energia de um parque eólico, consulte o seguinte:

Implantação de modelo

O Serviço de Modelo do Databricks oferece uma interface unificada para implantar, gerenciar e consultar modelos de IA. Cada modelo que você atende está disponível como uma API REST que você pode integrar ao seu aplicativo Web ou cliente.

O serviço de modelo dá suporte ao serviço:

  • Modelos personalizados. Estes são modelos python empacotados no formato MLflow. Eles podem ser registrados no Catálogo do Unity ou no registro de modelo de workspace. Os exemplos incluem modelos de transformador scikit-learn, XGBoost, PyTorch e Hugging Face.
  • Modelos abertos de última geração disponibilizados pelas APIs de Modelos de Base. Esses modelos são arquiteturas de modelo de base com curadoria que dão suporte à inferência otimizada. Modelos base, como Llama-2-70B-chat, BGE-Large e Mistral-7B, estão disponíveis para uso imediato com preço 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 base como GPT-4 da OpenAI, Claude da Antropic e outros. Os pontos de extremidade que atendem modelos externos podem ser controlados centralmente e os clientes podem estabelecer limites de taxa e controle de acesso para eles.

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