Compartilhar 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 comentários humanos. Consulte MLflow 3 para GenAI para obter mais detalhes.

Este artigo permite que você comece a usar o MLflow 3 para desenvolver modelos de machine learning. 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 abrangem os novos recursos do MLflow 3 para modelos com mais detalhes.

O que é o MLflow 3 para modelos?

O MLflow 3 para modelos no Azure Databricks fornece acompanhamento de experimentos de última geração, avaliação de desempenho e gerenciamento de produção para modelos de machine learning. O MLflow 3 apresenta novos recursos significativos, preservando os principais conceitos de acompanhamento, tornando a migração do MLflow 2.x rápida e simples.

O que é o MLflow 3 para GenAI?

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

Os principais recursos no MLflow 3 para GenAI incluem:

  • Rastreamento e observabilidade – observabilidade de ponta a ponta para aplicativos GenAI com instrumentação automática para mais de 20 estruturas, incluindo OpenAI, LangChain, LlamaIndex e Antropic
  • Avaliação e monitoramento – funcionalidades abrangentes de avaliação do GenAI para medir e melhorar a qualidade desde o desenvolvimento até a produção. Inclui juízes de LLM internos, juízes personalizáveis, gerenciamento de conjunto de dados de avaliação e monitoramento em tempo real.
  • Coleção de comentários humanos – Interface do usuário de revisão personalizável para coletar comentários de especialistas em domínio e testar interativamente agentes, com sessões de rotulagem estruturadas para organizar e acompanhar o progresso da revisão
  • Registro de prompts – versionamento centralizado de prompts, gerenciamento e teste A/B com a integração ao Unity Catalog
  • Gerenciamento de versões de aplicativos e agentes GenAI – gerenciamento de versão para aplicativos e agentes GenAI, incluindo acompanhamento de revisões de código, parâmetros, avaliações de qualidade, métricas de desempenho e rastreios associados ao aplicativo ou agente.

Como o MLflow 3 para modelos é diferente do MLflow 2

O MLflow 3 para modelos no Azure Databricks permite que você:

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

Interface de rastreamento de modelo.

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

Página de versão do modelo no Catálogo do Unity 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 abrangentes de status para cada versão do seu modelo.

Um trabalho de implantação complexo que inclui a distribuição em etapas e a coleção de métricas.

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

Modelos logados

Grande parte da nova funcionalidade do MLflow 3 deriva do novo conceito de um LoggedModel. Para aprendizado profundo e modelos tradicionais de machine learning, LoggedModels eleva o conceito de um modelo produzido por uma execução de treinamento, estabelecendo-o como um objeto dedicado para acompanhar o ciclo de vida do modelo em diferentes execuções de treinamento e avaliação.

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

Tarefas de implantação

O MLflow 3 também apresenta o conceito de um trabalho de implantação. Os trabalhos de implantação utilizam 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 regidos pelo Catálogo do Unity 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 Catálogo do Unity.

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, marcas e métricas, permanecem todos iguais. A migração do MLflow 2.x para 3.0 é muito simples e deve exigir alterações mínimas de código na maioria dos casos. Esta seção destaca algumas diferenças importantes do MLflow 2.x e do que você deve estar ciente para uma transição perfeita.

Modelos de log

Ao registrar modelos na versão 2.x, o parâmetro artifact_path é 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 tem suporte, mas foi preterido. Além disso, o MLflow não exige mais que uma execução esteja ativa ao registrar um modelo em log, pois os modelos se tornaram cidadãos de primeira classe no MLflow 3. Você pode registrar diretamente um modelo sem iniciar uma execução primeiro.

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 artefatos de execução sob o caminho do artefato da execução. No MLflow 3, os artefatos do modelo agora são armazenados em um local diferente, dentro do caminho de artefatos 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

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

Registro de modelos

No MLflow 3, o URI do registro padrão agora databricks-ucé , o que significa que o Registro de Modelo do MLflow no Catálogo do Unity será usado (consulte Gerenciar o ciclo de vida do modelo no Catálogo do Unity para obter mais detalhes). Os nomes dos modelos registrados no Unity Catalog são no 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 workspaces que têm o Catálogo do Unity habilitado e cujo catálogo padrão está no Catálogo do Unity, 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 o workspace tiver o Catálogo do Unity habilitado, mas seu catálogo padrão não estiver configurado para estar no Catálogo do Unity, você precisará especificar o nome completo de três níveis.

O Databricks recomenda usar o Registro de Modelo do MLflow no Catálogo do Unity para gerenciar o ciclo de vida de seus modelos.

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

Outras alterações importantes

  • Os clientes do MLflow 3 podem carregar todas as execuções, modelos e rastreamentos registrados com clientes MLflow 2.x. No entanto, o inverso não é necessariamente verdadeiro, portanto, modelos e rastreamentos registrados com clientes do MLflow 3 podem não ser capazes de ser carregados com versões de cliente 2.x mais antigas.
  • A mlflow.evaluate API foi preterida. Para modelos tradicionais de ML ou de aprendizado profundo, use mlflow.models.evaluate o que mantém a compatibilidade completa com a API original mlflow.evaluate . Para LLMs ou aplicativos GenAI, use à mlflow.genai.evaluate API em vez disso.
  • O run_uuid atributo foi removido do RunInfo objeto. Use run_id em vez disso 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 notebook é executado:

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

Exemplos de notebooks

As páginas a seguir ilustram o fluxo de trabalho de acompanhamento de modelo do MLflow 3 para ML tradicional e aprendizado profundo. Cada página inclui um bloco de anotações de exemplo.

Limitation

Embora o registro em log do modelo do Spark (mlflow.spark.log_model) continue funcionando no MLflow 3, ele não usa o novo conceito LoggedModel. Os modelos registrados utilizando o registro de modelos do Spark continuam utilizando execuções da série MLflow 2.x e seus artefatos de execução.

Próximas etapas

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