MLflow Trabalho de implantação 3.0 (Beta)
Beta
Esse recurso está na versão beta.
O Deployment Job não precisa ser usado com clientes ou acompanhamento de modelos do MLflow 3.0 e pode ser ativado em modelos mais antigos e existentes no Unity Catalog. No entanto, é recomendável usar o MLflow 3.0.
Este artigo descreve como usar o MLflow deployment Job como parte do seu fluxo de trabalho de aprendizado de máquina para gerenciar o ciclo de vida completo dos modelos ML.
O que são trabalhos de implantação?
Os trabalhos de implantação permitem que o senhor automatize tarefas como avaliação, aprovação e implantação sempre que uma nova versão do modelo for criada, integrando-se perfeitamente aos modelos Unity Catalog e aos trabalhos Databricks. Esses trabalhos simplificam a configuração do pipeline de implantação do modelo, incorporam aprovações humanas no circuito e fornecem ao fluxo de trabalho governado uma visibilidade clara do progresso e do contexto histórico de cada versão do modelo.
Com o Job de implantação, o processo é totalmente automatizado; eles são acionados automaticamente sempre que uma nova versão do modelo é criada, exibindo o status de execução do Job de implantação diretamente nas páginas do modelo e da versão do modelo. As informações históricas sobre cada implementação e execução de trabalho são convenientemente rastreadas na atividade log, garantindo transparência e facilidade de gerenciamento.
Integração com o acompanhamento do modelo MLflow 3.0
Databricks recomenda o uso do MLflow 3.0 acompanhamento para registrar modelos e realizar a avaliação no Job de implantação. O novo cliente irá automaticamente log métricas da parte de avaliação do trabalho de implantação, que será visível na interface do usuário da versão do modelo Unity Catalog. Isso permitirá que os usuários usem as métricas, os parâmetros e os traços centralizados na página da versão do modelo para tomar decisões informadas sobre quando avançar o modelo no ciclo de vida do trabalho de implementação.
Integração com o Unity Catalog CREATE MODEL VERSION ACL
O Deployment Job se integra naturalmente com o recém-lançado Unity Catalog Create Model Version ACL para completar sua história MLOps. Especificamente, um usuário pode receber a permissão CREATE MODEL VERSION ACL para registrar novas versões de modelo no modelo. Quando o usuário considerar que um modelo é bom o suficiente para a produção, ele registrará essa versão no modelo Unity Catalog, que iniciará o trabalho de implantação para avaliar automaticamente o modelo. Nesse ponto, um aprovador pode aprovar manualmente essa versão a ser implantada ou rejeitá-la.
O Job de implementação será acionado automaticamente usando as credenciais do proprietário do modelo. Isso significa que dar a um usuário a permissão CREATE MODEL VERSION
no modelo Unity Catalog permite que o usuário execute código arbitrário como parte do trabalho. Por esse motivo, o site Databricks recomenda que o senhor configure o Job de implementação usando uma entidade de serviço com permissões mínimas para evitar o aumento de privilégios.
Exemplos de trabalhos de implantação
abaixo são alguns exemplos de Job de implementação que refletem casos de uso comuns. Observe que esses são apenas exemplos e podem ser personalizados conforme necessário.
Um exemplo simples de trabalho de implementação consiste em três etapas: avaliação, aprovação e implementação. A avaliação chama mlflow.evaluate
para produzir métricas de validação na versão do 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 Deployment implantou a versão do modelo em um Databricks servindo o modelo endpoint.
A imagem abaixo mostra a tarefa Databricks Jobs que compõe esse Job de implantação simples, que consiste na tarefa de avaliação, aprovação e implantação:
O senhor também pode criar um Job de implementação mais complexo. Por exemplo, o senhor pode querer fazer uma implementação em etapas com uma etapa de coleta de métricas como parte do fluxo de trabalho. Para criar esse Job de implementação, o senhor poderia 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 deve prosseguir ou reverter e, finalmente, implantar o modelo em 100% ou reverter o modelo. A imagem abaixo mostra como pode ser esse trabalho de implementação mais complexo:
Criar um trabalho de implementação
O Deployment Job permite que o senhor gerencie o ciclo de vida de uma versão do modelo. Para usar o Job de implantação, o senhor precisa primeiro de versões de modelo criadas em um modelo registrado. MLflow Consulte o Notebook de exemplo 3.0 para obter as abordagens recomendadas para os modelos de treinamento e registro.
Databricks recomenda que o senhor defina o campo Executar como uma entidade de serviço com permissões mínimas. Além disso, para a tarefa de aprovação, a Databricks recomenda que o senhor desative as novas tentativas, pois espera-se que a tarefa falhe no início. Isso evita uma espera mais longa e vários erros logs relatados.
Um Job de implantação deve ter dois parâmetros de Job: model_name
e model_version
, bem como um limite máximo de execução concorrente de 1 (o default).
Há duas maneiras de criar um Job de implementação: programaticamente, usando um Notebook de implementação, ou usando a UI. Em ambos os casos, o senhor precisa fornecer cada uma de suas tarefas de trabalho como um Notebook.
Criar um Job de implementação programaticamente usando um Notebook (recomendado)
Recomenda-se o uso de um Notebook de implantação para criar programaticamente o Job de implantação, pois ele usa o Databricks SDK e, dessa forma, todas as configurações são facilmente definidas, sendo que a fonte da verdade está no código. Esse método também permite que o senhor implante facilmente vários trabalhos e outros recursos em vários espaços de trabalho.
Para as instruções abaixo, um exemplo simples de padrão é usado para configurar o Job de implantação com avaliação básica, aprovação e tarefa de implantação.
- Crie e registre um modelo Unity Catalog. Por exemplo, veja o exemplo do fluxo de trabalho de ML tradicional do MLflow 3.0 (Beta).
- Crie um Notebook que defina a tarefa de avaliação. Por exemplo, importe o Notebook de avaliação para avaliar o modelo criado a partir do exemplo tradicional ML. Atualize os ToDOs conforme necessário. Para outros modelos, use este Notebook como padrão e personalize-o para avaliar seu modelo conforme necessário para seu caso específico.
- Crie um Notebook que defina a tarefa de aprovação. Por exemplo, importe o Notebook de aprovação para o site workspace. Mais detalhes sobre como esse Notebook funciona podem ser encontrados na seção Aprovações. O senhor também pode usar esse Notebook como um padrão e atualizá-lo de acordo com suas necessidades.
- Crie um Notebook que defina a tarefa de implantação. Por exemplo, importe o Notebook de implantação abaixo para o site workspace. O senhor também pode usar esse Notebook como um padrão e atualizá-lo de acordo com suas necessidades.
- Crie um Notebook que crie e orquestre o Job de implementação. Por exemplo, importe o Job Notebook de implantação para o site workspace. Esse Notebook cria o Databricks Job que se torna o Job de implementação. Certifique-se de atualizar as TODOs no Notebook para definir corretamente seu trabalho, usando seu modelo Unity Catalog e a tarefa apropriada. O senhor também pode usar esse Notebook como um padrão e atualizá-lo de acordo com suas necessidades. Por exemplo, talvez o senhor queira incluir mais tarefas se tiver um plano de implementação mais complexo.
- Execute o Job Notebook de implementação para criar seu Job de implementação.
Criar um Job de implementação por meio da UI de Jobs
Os trabalhos também podem ser criados por meio da interface do usuário, em vez de usar o site SDK no padrão acima. No entanto, para cada tarefa do Notebook, o Notebook ainda deve ser criado manualmente e salvo em algum lugar em seu site workspace. Para o modelo de instruções, supõe-se um fluxo de trabalho de implantação simples, com tarefas de avaliação, aprovação e implantação. Personalize as instruções adicionando mais tarefas se o senhor tiver um fluxo de trabalho de implantação mais complexo.
-
Crie e registre um modelo Unity Catalog. Por exemplo, veja o exemplo do fluxo de trabalho de ML tradicional do MLflow 3.0 (Beta).
-
Crie um Notebook que defina a tarefa de avaliação. Por exemplo, importe o Notebook de avaliação para avaliar o modelo criado a partir do exemplo tradicional ML. Atualize os ToDOs conforme necessário. Para outros modelos, use este Notebook como padrão e personalize-o para avaliar seu modelo conforme necessário para seu caso específico.
-
Crie um Notebook que defina a tarefa de aprovação. Por exemplo, importe o Notebook de aprovação para o site workspace. Mais detalhes sobre como esse Notebook funciona podem ser encontrados na seção Aprovações. O senhor também pode usar esse Notebook como um padrão e atualizá-lo de acordo com suas necessidades.
-
Crie um Notebook que defina a tarefa de implantação. Por exemplo, importe o Notebook de implantação abaixo para o site workspace. O senhor também pode usar esse Notebook como um padrão e atualizá-lo de acordo com suas necessidades.
-
Crie o Job de implementação na UI Databricks Jobs:
-
No painel de navegação esquerdo, clique em + New > Jobpara criar um novo trabalho.
-
Configure cada tarefa. Por exemplo, para a tarefa de implantação:
- Nome da tarefa: Deployment
- Tipo: Notebook
- Fonte: workspace
- Caminho:
/Workspace/Users/<user.name@email.com>/deployment
- computação: sem servidor
Para obter mais informações sobre a configuração, consulte Notebook tarefa for Job.
-
-
Depois que o senhor terminar de criar cada tarefa, adicione os parâmetros do trabalho. No painel direito, clique em Editar parâmetros . Adicione
model_name
emodel_version
.
abaixo é um exemplo de criação do Job acima padrão por meio da UI:
Conectar o Job de implantação a um modelo
Depois de criar o modelo Unity Catalog e o Job de implementação, o senhor precisa conectar o Job ao modelo como um Job de implementação. Na página do modelo, em Overview (Visão geral) tab, em Deployment Job (Trabalho de implantação ), clique em Connect deployment Job (Conectar trabalho de implantação ).
Selecione seu Job de implementação na lista dropdown. O senhor também pode usar a barra de pesquisa para procurar o trabalho pelo nome ou ID. Clique em Salvar alterações .
Depois que um Job de implementação é conectado a um modelo, ele é vinculado na página do modelo.
Permissões necessárias
As seguintes permissões são necessárias para conectar e acionar o Job de implementação:
- gerenciar ou OWNER no modelo para conectar o trabalho de implantação
- O proprietário do modelo precisará ter permissões CAN MANAGE RUN ou superiores no Job de implantação para conectá-lo.
- OBSERVAÇÃO : esse campo Job de implementação também pode ser atualizado no modelo por alguém com permissões de gerenciador ou superiores. Nesse caso, tanto o atualizador quanto o proprietário do modelo precisarão ter permissões CAN MANAGE RUN ou superiores no Job de implantação para conectá-lo.
Acionar o trabalho de implantação
O Job de implantação será acionado automaticamente em todas as novas versões do modelo que forem criadas e também pode ser acionado manualmente em versões existentes e implantadas anteriormente na página da versão do modelo, clicando em iniciar Job de implantação .
O trabalho também pode ser acionado diretamente na interface do usuário do Jobs ou em API. O nome do modelo e a versão apropriados precisam ser especificados nos parâmetros do Job.
Permissões necessárias
As seguintes permissões são necessárias para acionar o Job de implementação:
- Para acionar ou reparar manualmente o Job de implementação usando a interface do usuário da versão do modelo, o usuário deve ter ACLs CAN MANAGE RUN ou superiores no Job de implementação (as mesmas ACLs necessárias para acionar um Job usando a interface do usuário do Jobs).
- Como o Job é acionado automaticamente quando uma nova versão é criada e usa as credenciais do proprietário do modelo, o proprietário do modelo precisa ter ACLs CAN MANAGE RUN ou superiores no Job de implementação.
Aprovar o trabalho de implantação (experimental)
Databricks fornece um mecanismo de aprovação experimental para o trabalho de implementação, permitindo um processo humano no circuito para o pipeline ML. Depois que um Job de implementação for acionado, as métricas da execução da avaliação aparecerão na página da versão do modelo. Depois de revisar essas métricas, um aprovador pode aprovar a versão do modelo na interface do usuário clicando em Approve (Aprovar ). Esse recurso usa tags do Unity Catalog para determinar se a tarefa de aprovação deve ser aprovada ou reprovada. As tarefas de aprovação são identificadas por nomes de tarefas de trabalho que começam com "approval" (não diferencia maiúsculas de minúsculas) e serão aprovadas quando a tag Unity Catalog for definida como Approved
(clicando no botão Approval (Aprovação ) na interface do usuário ou quando definida manualmente).
Veja como o processo de aprovação funciona:
- Execução inicial : A primeira execução do Job de implementaçã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 tag Unity Catalog necessária.
- Avaliação da aprovação : O aprovador revisa a versão do modelo e suas métricas de avaliação, que são exibidas na página da versão do modelo. Isso permite que o aprovador avalie a qualidade e a prontidão da versão do modelo.
- Ação de aprovação : Se o aprovador considerar a versão do modelo satisfatória, ele clicará no botão Approve (Aprovar ) na seção da barra lateral do Job de implementação na página da versão do modelo.
Essa ação repara automaticamente a execução do trabalho e adiciona uma tag Unity Catalog à versão do modelo, na qual o senhor pode ver o que está acontecendo:
- A tag key corresponde ao nome da tarefa de aprovação. Por exemplo, no exemplo de aprovação do Notebook, isso é
Approval_Check
. - O valor da tag está definido como
Approved
.
- Job Continuação : A execução do Job de implantação reparado é automaticamente retomada a partir da tarefa de aprovação. Dessa vez, ele é aprovado porque a tag necessária do Unity Catalog está presente. Em seguida, ele prossegue para a tarefa subsequente, como a implantação.
Permissões necessárias
As seguintes permissões são necessárias para adicionar tags Unity Catalog e acionar o Job de implementação:
- APLICAR TAG no modelo do Unity Catalog.
- CAN MANAGE RUN no Job de implementação.
visualizar o status e a atividade do Job de implementação log
Depois que o Job de implantação tiver sido acionado nas versões do modelo, o status atual dessas implantações poderá ser visualizado na página do modelo em Overview tab. Abaixo do status, o senhor pode ver o histórico de atividades no Activity log. A atividade log também é mostrada na página da versão do modelo.
Permissões necessárias
As seguintes permissões são necessárias para view deployment Job e a atividade log (o mesmo que visualizar o modelo):
- EXECUTE no modelo do Unity Catalog.
Exemplo de implementação Job padrão Notebook
O exemplo de Notebook a seguir pode ser usado como um padrão para criar um Job de implementação simples que consiste em tarefas de avaliação, aprovação e implementação. Certifique-se de preencher os TODOs no Notebook para configurar o Job de implantação para o seu modelo.