Partilhar via


Introdução ao MLflow 3 para modelos

Observação

Este artigo se concentra nos recursos do MLflow 3 para modelos tradicionais de aprendizado de máquina e aprendizado profundo. O MLflow 3 também oferece recursos abrangentes para o desenvolvimento de aplicativos GenAI, incluindo rastreamento, avaliação e coleta de feedback humano. Consulte MLflow 3 para GenAI para obter detalhes.

Este artigo começa a usar o MLflow 3 para desenvolver modelos de aprendizado de máquina. Ele descreve como instalar o MLflow 3 para modelos e inclui vários notebooks de demonstração para começar. Ele também inclui links para páginas que cobrem os novos recursos do MLflow 3 para modelos com mais detalhes.

O que é MLflow 3 para modelos?

O MLflow 3 para modelos no Azure Databricks oferece rastreamento de experimentos de última geração, avaliação de desempenho e gerenciamento de produção para modelos de aprendizado de máquina. O MLflow 3 introduz novos recursos significativos, preservando os principais conceitos de rastreamento, tornando a migração do MLflow 2.x rápida e simples.

O que é MLflow 3 para GenAI?

Além do MLflow 3 para modelos, o MLflow 3 para GenAI introduz uma ampla variedade de novos recursos e melhorias para o desenvolvimento de agentes e aplicativos GenAI. Para obter uma visão geral abrangente, consulte MLflow 3 para GenAI.

Os principais recursos do MLflow 3 para GenAI incluem:

  • Rastreamento e observabilidade - Observabilidade de ponta a ponta para aplicações GenAI com instrumentação automática para 20+ frameworks, incluindo OpenAI, LangChain, LlamaIndex e Anthropic
  • Avaliação e monitoramento - Recursos abrangentes de avaliação GenAI para medir e melhorar a qualidade desde o desenvolvimento até a produção. Inclui juízes LLM integrados, juízes personalizáveis, gerenciamento de conjuntos de dados de avaliação e monitoramento em tempo real.
  • Coleta de feedback humano - Interface do usuário de revisão personalizável para coletar feedback de especialistas do domínio e testar agentes interativamente, com sessões de rotulagem estruturadas para organizar e acompanhar o progresso da revisão
  • Prompt Registry - Controle de versão, gerenciamento e testes A/B de prompt centralizados com integração com o Unity Catalog
  • Versionamento de aplicativos e agentes - Gerenciamento de versões para aplicativos e agentes GenAI, incluindo rastreamento de revisões de código, parâmetros, avaliações de qualidade, métricas de desempenho e rastreamentos associados ao aplicativo ou agente.

Como o MLflow 3 para modelos é diferente do MLflow 2

O MLflow 3 para modelos no Azure Databricks permite:

  • Acompanhe e analise centralmente o desempenho de seus modelos em todos os ambientes, desde consultas interativas em um bloco de anotações de desenvolvimento até implantações em lote de produção ou atendimento em tempo real.

Interface de rastreamento de modelo.

  • Visualize e acesse métricas e parâmetros do modelo a partir da página da versão do modelo no Unity Catalog e da API REST, em todos os espaços de trabalho e experimentos.

Página da versão do modelo no Unity Catalog mostrando métricas de várias execuções.

  • Orquestre fluxos de trabalho de avaliação e implantação usando o Unity Catalog e acesse logs de status abrangentes para cada versão do seu modelo.

Um trabalho de implantação complexo que inclui distribuição em estágios e coleta de métricas.

Esses recursos simplificam e agilizam o desenvolvimento, a avaliação e a implantação de modelos de aprendizado de máquina.

Modelos registados

Grande parte da nova funcionalidade do MLflow 3 deriva do novo conceito de um LoggedModel. Para modelos de aprendizagem profunda e aprendizagem automática tradicionais, LoggedModels eleva o conceito de um modelo produzido por uma execução de treino, estabelecendo-o como um objeto específico para acompanhar o ciclo de vida do modelo em diferentes execuções de treino e avaliação.

LoggedModels Capture métricas, parâmetros e rastreamentos entre fases de desenvolvimento (treinamento e avaliação) e entre ambientes (desenvolvimento, preparação e produção). Quando um LoggedModel é promovido no Unity Catalog como uma Versão de Modelo, todos os dados de desempenho do LoggedModel original ficam visíveis na página da Versão de Modelo no UC, proporcionando visibilidade em todos os espaços de trabalho e experimentos. Para obter mais detalhes, consulte Rastrear e comparar modelos usando modelos registrados MLflow.

Trabalhos de implementação

O MLflow 3 também introduz o conceito de um trabalho de implantação. Os trabalhos de implantação usam o Lakeflow Jobs para gerenciar o ciclo de vida do modelo, incluindo etapas como avaliação, aprovação e implantação. Esses fluxos de trabalho de modelo são governados pelo Unity Catalog, e todos os eventos são salvos em um log de atividades que está disponível na página de versão do modelo no Unity Catalog.

Migrando do MLflow 2.x

Embora haja muitos recursos novos no MLflow 3, os principais conceitos de experimentos e execuções, juntamente com seus metadados, como parâmetros, tags e métricas, permanecem os mesmos. A migração do MLflow 2.x para o 3.0 é muito simples e deve exigir alterações mínimas no código na maioria dos casos. Esta seção destaca algumas diferenças importantes do MLflow 2.x e o que você deve estar ciente para uma transição perfeita.

Modelos de Log

Ao registrar modelos em 2.x, o artifact_path parâmetro é usado.

with mlflow.start_run():
    mlflow.pyfunc.log_model(
        artifact_path="model",
        python_model=python_model,
        ...
    )

No MLflow 3, use name em vez disso, o que permite que o modelo seja pesquisado posteriormente pelo nome. O artifact_path parâmetro ainda é suportado, mas foi preterido. Além disso, o MLflow não requer mais que uma execução esteja ativa ao registrar um modelo, porque os modelos se tornaram cidadãos de primeira classe no MLflow 3. Você pode registrar diretamente um modelo sem primeiro iniciar uma execução.

mlflow.pyfunc.log_model(
    name="model",
    python_model=python_model,
    ...
)

Artefatos de modelo

No MLflow 2.x, os artefatos de modelo são armazenados como objetos de execução no caminho de artefatos da execução. No MLflow 3, os artefactos do modelo agora são armazenados num local diferente, no caminho dos artefactos do modelo.

# MLflow 2.x
experiments/
  └── <experiment_id>/
    └── <run_id>/
      └── artifacts/
        └── ... # model artifacts are stored here
# MLflow 3
experiments/
  └── <experiment_id>/
    └── models/
      └── <model_id>/
        └── artifacts/
          └── ... # model artifacts are stored here

Recomenda-se carregar modelos com mlflow.<model-flavor>.load_model usando o URI do modelo retornado por mlflow.<model-flavor>.log_model para evitar quaisquer problemas. Este URI de modelo é do formato models:/<model_id> (em vez runs:/<run_id>/<artifact_path> de como no MLflow 2.x) e também pode ser construído manualmente se apenas o ID do modelo estiver disponível.

Registo de modelo

No MLflow 3, o URI do registro padrão agora é databricks-uc, o que significa que o Registro do Modelo MLflow no Unity Catalog será usado (consulte Gerenciar o ciclo de vida do modelo no Unity Catalog para obter mais detalhes). Os nomes dos modelos registrados no Catálogo Unity são do formato <catalog>.<schema>.<model>. Ao chamar APIs que exigem um nome de modelo registrado, como mlflow.register_model, esse nome completo de três níveis é usado.

Para espaços de trabalho que têm o Unity Catalog habilitado e cujo catálogo padrão está no Unity Catalog, você também pode usar <model> como o nome e o catálogo e o esquema padrão serão inferidos (nenhuma alteração no comportamento do MLflow 2.x). Se seu espaço de trabalho tiver o Unity Catalog habilitado, mas seu catálogo padrão não estiver configurado para estar no Unity Catalog, você precisará especificar o nome completo de três níveis.

A Databricks recomenda o uso do MLflow Model Registry no Unity Catalog para gerenciar o ciclo de vida de seus modelos.

Se você quiser continuar usando o Registro Modelo de Espaço de Trabalho (legado), use um dos seguintes métodos para definir o URI do Registro como databricks:

Outras alterações importantes

  • Os clientes MLflow 3 são capazes de carregar todas as execuções, modelos e traços registados com clientes MLflow 2.x. No entanto, o inverso não é necessariamente verdadeiro, portanto, modelos e rastreamentos registrados com clientes MLflow 3 podem não ser capazes de ser carregados com versões mais antigas do cliente 2.x.
  • A mlflow.evaluate API foi preterida. Para modelos tradicionais de ML ou deep learning, use mlflow.models.evaluate o que mantém total compatibilidade com a API original mlflow.evaluate . Para LLMs ou aplicativos GenAI, use a mlflow.genai.evaluate API.
  • O run_uuid atributo foi removido do RunInfo objeto. Em vez disso, use run_id em seu código.

Instalar o MLflow 3

Para usar o MLflow 3, você deve atualizar o pacote para usar a versão correta (>= 3.0). As seguintes linhas de código devem ser executadas sempre que um bloco de anotações é executado:

%pip install mlflow>=3.0 --upgrade
dbutils.library.restartPython()

Exemplos de cadernos

As páginas a seguir ilustram o fluxo de trabalho de rastreamento de modelo MLflow 3 para ML tradicional e deep learning. Cada página inclui um bloco de notas de exemplo.

Limitação

Embora o registo do modelo Spark (mlflow.spark.log_model) continue a funcionar no MLflow 3, não utiliza o novo LoggedModel conceito. Os modelos registados usando o registo de modelos do Spark continuam a usar execuções do MLflow 2.x e artefactos de execução.

Próximos passos

Para saber mais sobre os novos recursos do MLflow 3, consulte os seguintes artigos: