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 machine learning. Também inclui exemplos que apresentam cada componente MLflow e links para conteúdo que descreve como esses componentes são hospedados no Databricks.

O gerenciamento do ciclo de vida de ML no Databricks é fornecido por gerenciar MLflow. Databricks fornece uma versão totalmente gerenciada e hospedada do MLflow integrada com recursos de segurança corporativa, alta disponibilidade e outros recursos workspace do Databricks, como gerenciamento de experimentos e execução e captura de revisão Notebook .

Os usuários iniciantes devem começar com os experimentos Get começar with MLflow , que demonstram o acompanhamento básico MLflow APIs.

O que é MLflow?

MLflow é uma plataforma de código aberto para gerenciar o ciclo de vida machine learning de ponta a ponta. Possui os seguintes componentes principais:

  • acompanhamento: Permite acompanhar experimentos para registrar e comparar parâmetros e resultados.

  • Modelos: permite gerenciar e aprimorar modelos de uma variedade de bibliotecas de ML para uma variedade de plataformas de serviço e inferência de modelo.

  • Projetos: permitem empacotar o código ML de forma reutilizável e reproduzível para compartilhar com outros cientistas de dados ou transferir para produção.

  • registro de modelo: Permite centralizar uma loja de modelos para gerenciar o ciclo de vida completo dos modelos. Databricks fornece uma versão gerenciada do Model Registry no Unity Catalog.

  • modelo interativo: permite hospedar modelos MLflow como endpoint REST. Databricks fornece uma interface unificada para implantar, governar e consultar seus modelos de IA atendidos.

MLflow oferece suporte a APIs Java, Python, R e REST .

Observação

Se você está começando a usar o Databricks, considere usar o MLflow no Databricks comunidade Edition, que fornece uma experiência simples de gerenciamento do MLflow para experimentação leve. A execução remota de projetos MLflow não tem suporte no Databricks comunidade Edition. Planejamos impor limites moderados ao número de experimentos e execução. Para o lançamento inicial do MLflow no Databricks comunidade Edition não são impostos limites.

Acompanhamento MLflow

MLflow on Databricks oferece uma experiência integrada para acompanhamento e garantia de execução de treinamento para modelos machine learning e aprendizagem profunda.

Gerenciamento do ciclo de vida do modelo

O MLflow Model Registry é um repositório de modelos centralizado e uma interface de usuário e um conjunto de APIs que permitem gerenciar o ciclo de vida completo dos modelos do MLflow. A Databricks fornece uma versão hospedada do MLflow Model Registry no Unity Catalog. O Unity Catalog oferece governança centralizada de modelos, acesso entreworkspace, linhagem e implantação. Para obter detalhes sobre como gerenciar o ciclo de vida do modelo no Unity Catalog, consulte 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, o senhor poderá usar o Workspace Model Registry.

Conceitos de Model Registry

  • Modelo: Um modelo MLflow registra os logs de um experimento ou execução que é registrado com um dos métodos mlflow.<model-flavor>.log_model da variante do modelo. Depois que um modelo é registrado, o senhor pode registrá-lo no Model Registry.

  • Modelo registrado: um modelo MLflow que foi registrado com o Model Registry. 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 Model Registry, 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 dos aliases são para especificar quais versões do modelo são implantadas em um determinado ambiente no fluxo de trabalho de treinamento do modelo ou para escrever cargas de trabalho de inferência que visam um alias específico. Por exemplo, o senhor pode atribuir o alias "Champion" do seu modelo registrado "Fraud Detection" à versão do modelo que deve atender à maior parte do tráfego de produção e, em seguida, escrever cargas de trabalho de inferência que visem a esse alias (ou seja, fazer previsões usando a versão "Champion").

  • Estágio do modelo (somenteworkspace registro de modelo): Uma versão de modelo pode ser atribuída a 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, o senhor pode fazer a transição de uma versão do modelo entre os estágios ou pode solicitar uma transição de estágio do modelo. Os estágios da versão do modelo não são usados no Unity Catalog.

  • Descrição: O senhor 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, dataset empregado ou metodologia.

Notebook de Exemplo

Para ver um exemplo que ilustra como usar o Model Registry para criar um aplicativo machine learning que prevê a produção diária de energia de um parque eólico, consulte o seguinte:

Implantação de modelo

Mosaic AI Model Serving oferece uma interface unificada para implantar, administrar e consultar modelos de AI. Cada modelo que o senhor atende está disponível como uma API REST que pode ser integrada ao seu aplicativo da Web ou cliente.

O modelo oferecido oferece suporte ao serviço:

  • Modelos personalizados. Estes são pacotes de modelos Python no formato MLflow. Eles podem ser cadastrados no Unity Catalog ou no workspace registro de modelo. Os exemplos incluem os modelos de transformadores 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 modelos básicos selecionadas que oferecem suporte à inferência otimizada. Modelos básicos, como Meta-Llama-3.1-70B-Instruct, BGE-Large e Mistral-7B estão disponíveis para uso imediato com preços pay-per-tokens, e as cargas de trabalho que exigem garantias de desempenho e variantes de modelos ajustados podem ser implantadas com o provisionamento Taxa de transferência.

  • Modelos externos. Esses são modelos hospedados fora da Databricks. Os exemplos incluem modelos de IA generativa, como o GPT-4 da OpenAI, o Claude da Anthropic e outros. que atendem a modelos externos podem ser controlados de forma centralizada 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 modelos implantados para inferência de lotes.