Compartilhar via


Trabalhos de implantação do MLflow 3

Importante

Esse recurso está em Visualização Pública.

Observação

Os trabalhos de implantação não precisam ser usados com clientes do MLflow 3 ou acompanhamento de modelos e podem ser habilitados em modelos mais antigos e existentes no Catálogo do Unity. No entanto, é recomendável usar o MLflow 3.

Este artigo descreve como usar trabalhos de implantação do MLflow como parte do fluxo de trabalho de machine learning para gerenciar o ciclo de vida completo dos modelos de ML.

O que são trabalhos de implantação?

Os trabalhos de implantação permitem automatizar tarefas como avaliação, aprovação e implantação sempre que uma nova versão do modelo é criada, integrando-se perfeitamente aos modelos do Catálogo do Unity e aos Trabalhos do Lakeflow. Esses trabalhos simplificam a configuração de pipelines de implantação de modelos, incorporam aprovações com intervenção humana e fornecem fluxos de trabalho controlados com visibilidade clara sobre o progresso e o contexto histórico de cada versão do modelo.

Com trabalhos de implantação, o processo é totalmente automatizado; eles são disparados automaticamente sempre que uma nova versão do modelo é criada, exibindo o status de execução do trabalho de implantação diretamente nas páginas de modelo e versão do modelo. Informações históricas sobre cada execução de tarefas de implantação são convenientemente registradas no log de atividades, garantindo transparência e facilidade de gerenciamento.

Integração com o Rastreamento de Modelos do MLflow 3

O Databricks recomenda usar o MLflow 3 Tracking para registrar modelos e executar a avaliação no trabalho de implantação. O novo cliente registrará automaticamente as métricas da parte de avaliação do trabalho de implantação, que serão visíveis na interface do usuário da versão do modelo do Unity Catalog. Isso permitirá que os usuários usem as métricas centralizadas, os parâmetros e os rastreamentos na página de versão do modelo para tomar decisões informadas sobre quando progredir ainda mais o modelo no ciclo de vida do trabalho de implantação.

Integração com a ACL CREATE MODEL VERSION do Catálogo do Unity

Os trabalhos de implantação se integram naturalmente ao Unity Catalog Create Model Version ACL recém-lançado para completar seu fluxo de trabalho de MLOps. Especificamente, um usuário pode receber a ACL CREATE MODEL VERSION para registrar novas versões de modelo no modelo. Depois que o usuário considerar um modelo bom o suficiente para produção, ele registrará essa versão no modelo do Catálogo do Unity, que iniciará o trabalho de implantação para avaliar automaticamente o modelo. Neste ponto, um aprovador pode aprovar manualmente essa versão para ser implantada ou rejeitá-la.

Importante

O trabalho de implantação será acionado automaticamente usando as credenciais do proprietário do modelo. Isso significa que conceder a um usuário CREATE MODEL VERSION permissão no modelo do Catálogo do Unity permite que o usuário execute código arbitrário como parte do trabalho. Por esse motivo, o Databricks recomenda que você configure o trabalho de implantação usando uma entidade de serviço com permissões mínimas para evitar o escalonamento de privilégios.

Exemplos de trabalhos de implantação

Abaixo estão alguns exemplos de trabalhos de implantação que refletem casos de uso comuns. Observe que esses são apenas exemplos e podem ser personalizados conforme necessário.

Um trabalho de implantação de exemplo simples consiste em três etapas: avaliação, aprovação e implantação. Chamadas de mlflow.evaluate avaliação para produzir métricas de validação na versão de modelo inserida. A aprovação permite que um usuário privilegiado determine se essas métricas são satisfatórias e, em caso afirmativo, aprove o modelo. Por fim, o processo de implementação implanta a versão do modelo em um endpoint do Databricks Model Serving.

A imagem abaixo mostra as tarefas de Trabalhos do Lakeflow que compõem esse trabalho de implantação simples que consiste em tarefas de avaliação, aprovação e implantação:

Um trabalho de implantação simples que consiste em tarefas de avaliação, aprovação e implantação.

Você também pode criar um trabalho de implantação mais complexo. Por exemplo, talvez você queira fazer uma distribuição em etapas com uma etapa de coleta de métricas como parte do fluxo de trabalho. Para criar esse trabalho de implantação, você pode adicionar tarefas adicionais após a tarefa de aprovação para implantar o modelo em 1%, implantar o modelo em 10%, coletar e verificar as métricas, decidir se deseja continuar ou reverter e, por fim, implantar o modelo em 100% ou reverter o modelo. A imagem abaixo mostra a aparência desse trabalho de implantação mais complexo:

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

Criar uma tarefa de implantação

Os trabalhos de implantação permitem gerenciar o ciclo de vida de uma versão do modelo. Para usar trabalhos de implantação, primeiro você precisa de versões de modelo criadas em um modelo registrado. Consulte os notebooks de exemplo do MLflow 3 para obter abordagens recomendadas para treinar e registrar modelos.

O Databricks recomenda que você defina o campo Executar como uma entidade de serviço com permissões mínimas. Além disso, para a tarefa de aprovação, o Databricks recomenda que você desabilite novas tentativas , pois espera-se que a tarefa falhe no início. Isso impede uma espera mais longa e vários logs de erros relatados.

Um trabalho de implantação deve ter dois parâmetros de trabalho: model_name e model_version. O Databricks também recomenda definir o limite máximo de execução simultânea como 1 (o padrão) para evitar condições de corrida de implantação.

Há duas maneiras de criar um trabalho de implantação: programaticamente usando um notebook de implantação ou usando a interface do usuário. Em ambos os casos, você precisa fornecer cada uma de suas tarefas de trabalho como um notebook.

É recomendável usar um notebook de implantação para a criação programática do trabalho de implantação, pois ele usa o SDK do Databricks e todas as configurações são facilmente definidas com a fonte confiável no código. Esse método também permite que você implante facilmente vários trabalhos e outros recursos em vários workspaces.

Para obter as instruções abaixo, um modelo de exemplo simples é usado para configurar o trabalho de implantação com tarefas básicas de avaliação, aprovação e implantação.

  1. Crie e registre um Modelo de Catálogo do Unity. Por exemplo, consulte o exemplo de fluxo de trabalho tradicional de ML do MLflow 3.
  2. Crie um notebook que defina a tarefa de avaliação. Por exemplo, importe o notebook de avaliação para ML clássico para avaliar o modelo criado a partir do exemplo ML clássico. O notebook de avaliação para GenAI fornece um exemplo de avaliação de um modelo externo GenAI. Atualize os itens OBRIGATÓRIOs conforme necessário. Para outros modelos, use este bloco de anotações como um modelo e personalize-o para avaliar seu modelo conforme necessário para seu caso exclusivo.
  3. Crie um notebook que defina a tarefa de aprovação. Por exemplo, importe o bloco de anotações de aprovação para sua área de trabalho. Mais detalhes sobre como este bloco de anotações funciona podem ser encontrados na seção Aprovações . Você também pode usar esse bloco de anotações como um modelo e atualizá-lo para atender às suas necessidades.
  4. Crie um notebook que defina a tarefa de implantação. Por exemplo, importe o bloco de anotações de implantação abaixo para seu espaço de trabalho. Você também pode usar esse bloco de anotações como um modelo e atualizá-lo para atender às suas necessidades.
  5. Crie um notebook que crie e orquestre o trabalho de implantação. Por exemplo, importe o notebook de trabalho de implantação para seu espaço de trabalho. Este notebook cria a tarefa do Databricks que se torna a tarefa de implantação. Atualize os itens OBRIGATÓRIOs no notebook para definir corretamente seu trabalho, usando o modelo do Catálogo do Unity e as tarefas apropriadas. Você também pode usar esse bloco de anotações como um modelo e atualizá-lo para atender às suas necessidades. Por exemplo, talvez você queira incluir mais tarefas se tiver um plano de distribuição mais complexo.
  6. Execute o notebook de implantação para criar seu trabalho de implantação.

Criar uma tarefa de deployment usando a interface de trabalhos

Trabalhos também podem ser criados usando a interface do usuário, em vez de usar o SDK no modelo acima. Porém, para cada tarefa de notebook, os notebooks ainda devem ser criados manualmente e salvos em algum lugar em seu espaço de trabalho. Para o modelo de instruções, um fluxo de trabalho de implantação simples, com tarefas de avaliação, aprovação e implantação, é assumido. Personalize as instruções adicionando mais tarefas se você tiver um fluxo de trabalho de implantação mais complexo.

  1. Crie e registre um Modelo de Catálogo do Unity. Por exemplo, consulte o exemplo de fluxo de trabalho tradicional de ML do MLflow 3.

  2. Crie um notebook que defina a tarefa de avaliação. Por exemplo, importe o notebook de avaliação para ML clássico para avaliar o modelo criado a partir do exemplo ML clássico. O notebook de avaliação para GenAI fornece um exemplo de avaliação de um modelo externo GenAI. Atualize os itens OBRIGATÓRIOs conforme necessário. Para outros modelos, use este bloco de anotações como um modelo e personalize-o para avaliar seu modelo conforme necessário para seu caso exclusivo.

  3. Crie um notebook que defina a tarefa de aprovação. Por exemplo, importe o bloco de anotações de aprovação para sua área de trabalho. Mais detalhes sobre como este bloco de anotações funciona podem ser encontrados na seção Aprovações . Você também pode usar esse bloco de anotações como um modelo e atualizá-lo para atender às suas necessidades.

  4. Crie um notebook que defina a tarefa de implantação. Por exemplo, importe o bloco de anotações de implantação abaixo para seu espaço de trabalho. Você também pode usar esse bloco de anotações como um modelo e atualizá-lo para atender às suas necessidades.

  5. Crie o trabalho de implantação na interface do usuário do Lakeflow Jobs:

    1. No painel de navegação esquerdo, clique em + Novo > Trabalho para criar um novo trabalho.

    2. Configure cada tarefa. Por exemplo, para a tarefa de implantação:

      1. Nome da tarefa: Implantação
      2. Tipo: Notebook
      3. Origem: Workspace
      4. Caminho: /Workspace/Users/<user.name@email.com>/deployment
      5. Computação: sem servidor

      Para obter mais informações sobre a configuração, consulte as tarefas do Notebook para trabalhos.

  6. Depois de terminar de criar cada tarefa, adicione seus parâmetros de trabalho. No painel direito, clique em Editar parâmetros. Adicionar model_name e model_version.

Veja abaixo um exemplo de criação do trabalho de modelo acima usando a interface do usuário:

Trabalho de implantação criado usando a interface do usuário.

Conectar o trabalho de implantação a um modelo

Depois de criar o modelo do Catálogo do Unity e a tarefa de implantação, você precisa conectar a tarefa ao modelo como uma tarefa de implantação. Você pode usar a interface do usuário ou fazê-la programaticamente no notebook de implantação.

Depois que uma tarefa de implantação foi conectada a um modelo, ela é vinculada na página do modelo.

Tarefa de desdobramento conectada.

Conectar o trabalho de implantação a um modelo usando a interface do usuário

Na página do modelo, na guia Visão geral , em Trabalho de implantação, clique em Conectar trabalho de implantação.

Clique em Conectar tarefa de implantação na página do modelo.

Selecione sua tarefa de implantação na lista suspensa. Você também pode usar a barra de pesquisa para procurar trabalhos por seu nome ou ID. Clique em Salvar alterações.

Selecione o trabalho de implantação ao qual deseja se conectar.

Conectar o trabalho de implantação a um modelo usando o cliente MLflow

A principal maneira de conectar o trabalho de implantação programaticamente é usando o cliente MLflow. Você pode fazer isso ao criar um modelo registrado chamando client.create_registered_model(model_name, deployment_job_id=<your-created-job-id>)ou ao atualizar um modelo registrado chamando client.update_registered_model(model_name, deployment_job_id=<your-created-job-id>).

A principal maneira de desconectar o trabalho de implantação programaticamente também é usando o cliente MLflow. Você pode fazer isso especificando uma cadeia de caracteres vazia "" e chamando a atualização com ela (por exemplo, client.update_registered_model(model_name, deployment_job_id="")).

Use um código semelhante ao seguinte no notebook de implantação:

import mlflow
from mlflow.tracking.client import MlflowClient

client = MlflowClient(registry_uri="databricks-uc")
# model_name specifies the location of a model in Unity Catalog
# model_name should be in the format <catalog>.<schema>.<model>
try:
  if client.get_registered_model(model_name):
    client.update_registered_model(model_name, deployment_job_id=created_job.job_id)
except mlflow.exceptions.RestException:
  client.create_registered_model(model_name, deployment_job_id=created_job.job_id)

Permissões necessárias

As seguintes permissões são necessárias para conectar e disparar trabalhos de implantação:

  • GERENTE ou PROPRIETÁRIO no modelo de conexão para a tarefa de implantação
  • O proprietário do modelo precisará ter permissões CAN MANAGE RUN ou superiores no trabalho de implantação para realizar a conexão.
    • OBSERVAÇÃO: esse campo de trabalho de implantação também pode ser atualizado no modelo por alguém com permissões MANAGE ou superiores. Nesse caso, tanto o atualizador quanto o proprietário do modelo precisarão ter permissões CAN MANAGE RUN ou superiores no trabalho de implantação para conectá-lo.

Iniciar a tarefa de implantação

O trabalho de implantação será disparado automaticamente em todas as novas versões de modelo criadas e também pode ser disparado manualmente em versões existentes e implantadas anteriormente na página de versão do modelo clicando em Iniciar trabalho de implantação.

Inicie o trabalho de implantação na página de versão do modelo.

O trabalho também pode ser disparado diretamente da interface do usuário ou da API de Trabalhos. O nome e a versão do modelo apropriados precisam ser especificados nos parâmetros de trabalho.

Permissões necessárias

As seguintes permissões são necessárias para disparar trabalhos de implantação:

  • Para acionar ou reparar manualmente o trabalho de implantação usando a interface do usuário da versão do modelo, o usuário deve ter CAN MANAGE RUN ou ACLs superiores no trabalho de implantação (as mesmas ACLs necessárias para acionar um trabalho usando a interface de usuário de trabalhos).
  • Como o trabalho é disparado automaticamente quando uma nova versão é criada e usa as credenciais do proprietário do modelo, o proprietário do modelo precisa ter CAN MANAGE RUN ou ACLs superiores no trabalho de implantação.

Aprovar o trabalho de implantação (experimental)

Databricks fornece um mecanismo de aprovação experimental para trabalhos de implantação, permitindo uma integração humana no ciclo para pipelines de ML. Depois que uma tarefa de implantação é iniciada, as métricas da execução de avaliação aparecem na página de versão do modelo. Depois de examinar essas métricas, um aprovador pode aprovar a versão do modelo na interface do usuário clicando em Aprovar. Esse recurso usa marcas do Catálogo do Unity para determinar se a tarefa de aprovação deve ser aprovada ou falhar. As tarefas de aprovação são identificadas por nomes de tarefas de trabalho que começam com "aprovação" (sem diferenciar maiúsculas de minúsculas) e passarão quando a marca do Catálogo do Unity estiver definida para Approved (seja através do clique no botão Aprovação na UI ou quando definida manualmente).

Veja como funciona o processo de aprovação:

  1. Execução inicial: a primeira execução do trabalho de implantação sempre falhará em uma tarefa de aprovação porque a versão do modelo ainda não foi aprovada e, portanto, não tem a marca de Catálogo do Unity necessária.

A execução inicial do trabalho de implantação sempre falha na tarefa de aprovação.

  1. Avaliação de aprovação: o aprovador analisa a versão do modelo e suas métricas de avaliação, que são exibidas na página de versão do modelo. Isso permite que o aprovador avalie a qualidade e a preparação da versão do modelo.

Examine as métricas da versão do modelo.

  1. Ação de aprovação: se o aprovador considerar a versão do modelo satisfatória, ele clicará no botão Aprovar na seção barra lateral do trabalho de implantação na página de versão do modelo.

Botão de Aprovação na página Versão do Modelo na barra lateral da tarefa de implantação.

Essa ação repara automaticamente a execução do trabalho e adiciona uma marca do Catálogo do Unity à versão do modelo, em que:

  • A chave de etiqueta corresponde ao nome da solicitação de aprovação. Por exemplo, no caderno de aprovação de exemplo, isso é Approval_Check.
  • O valor da tag é definido como Approved.
  1. Continuação do trabalho: a execução da tarefa de implantação reparada é retomada automaticamente a partir da tarefa de aprovação. Desta vez, ela passa porque a etiqueta do Unity Catalog necessária agora está presente. Em seguida, ele prossegue para as tarefas subsequentes, tais como a implantação.

Permissões necessárias

As seguintes permissões são necessárias para adicionar marcas do Catálogo do Unity e disparar trabalhos de implantação:

  • APLIQUE TAG no modelo do Catálogo do Unity.
  • PODE GERENCIAR EXECUÇÃO do trabalho de implantação.

Etiquetas controladas para aprovações avançadas

Você também pode especificar ainda mais quem tem permissão para aprovar e aplicar marcas usando uma política de marca governada para um determinado nome de marca. Ao usar uma política de etiquetas governadas e especificar APPLY_TAG permissões para um usuário ou grupo, você pode:

  • Defina vários grupos de aprovação independentes em um trabalho de implantação.
    • Por exemplo, você pode ter duas tags separadas para aprovações separadas de grupo, como os seguintes: Approval_Legal e Approval_Security, onde você:
      • Crie uma política de marca governada, para que somente a equipe jurídica possa definir a Approval_Legal marca.
      • Crie uma política de marca governada adicional para que somente a equipe de segurança possa definir a Approval_Security marca.
      • Tenha duas tarefas de aprovação em seu trabalho de implantação correspondentes às aprovações legais e de segurança.
      • Conceda acesso ao modelo a ambas as equipes APPLY_TAG para que elas possam definir a tag, mas só podem aprovar suas respectivas verificações.
  • Defina uma política de marca para impedir que o proprietário do modelo aprove o trabalho para verificar se há uma aprovação de segunda pessoa.
  • Padronizar as checagens de aprovação no metastore, catálogo e esquema com políticas de tags e nomes de tags consistentes.

Exibir o status do trabalho de implantação e o log de atividades

Depois que os trabalhos de implantação tiverem sido disparados em versões de modelo, o status atual dessas implantações poderá ser exibido na página do modelo na guia Visão geral . Abaixo do status, você pode ver a atividade histórica no log de atividades. O log de atividades também é mostrado na página de versão do modelo.

Exibir o status do trabalho de implantação e o log de atividades.

Permissões necessárias

As permissões a seguir são necessárias para exibir trabalhos de implantação e o log de atividades (o mesmo que exibir o modelo):

  • EXECUTE no modelo do Catálogo do Unity.

Notebooks de modelos de tarefas de implantação exemplo

Os notebooks de exemplo a seguir podem ser usados como um modelo para criar um trabalho de implantação simples que consiste em tarefas de avaliação, aprovação e implantação. Certifique-se de fornecer nos notebooks os valores REQUIRED para configurar o trabalho de implantação do seu modelo.

Caderno de avaliação para Inteligência Artificial Genérica

Exemplo de notebook para avaliação do GenAI

Obter laptop

Notebook de avaliação para machine learning clássico

Exemplo de notebook de avaliação para ML clássico

Obter laptop

Bloco de anotações de aprovação

Caderno de aprovação de exemplo

Obter laptop

Notebook de implantação

Notebook de exemplo de implantação

Obter laptop

Criar notebook de tarefa de implementação

Exemplo de notebook para criar uma tarefa de implantação

Obter laptop

Próximas etapas

Para saber mais sobre os novos recursos do MLflow 3 e introdução, confira o seguinte artigo: