Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Observação
As tarefas de implantação não precisam ser usadas com clientes da versão 3 do MLflow ou para rastreamento de modelos e podem ser ativadas em modelos mais antigos existentes no Unity Catalog. No entanto, recomenda-se o uso do MLflow 3.
Este artigo descreve como usar trabalhos de implantação de MLflow como parte de seu fluxo de trabalho de aprendizado de máquina 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 Unity Catalog e Lakeflow Jobs. Estas tarefas simplificam a configuração de pipelines de implantação de modelos, incorporam aprovações com intervenção humana e fornecem fluxos de trabalho governados com visibilidade clara do progresso e do contexto histórico para cada versão do modelo.
Com trabalhos 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 trabalho de implantação diretamente nas páginas Modelo e Versão do Modelo. As informações históricas sobre cada tarefa de implantação executada são convenientemente rastreadas no registro de atividades, garantindo transparência e facilidade de gerenciamento.
Integração com MLflow 3 Model Tracking
A Databricks recomenda o uso do 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á visível na interface do usuário da versão do modelo do Unity Catalog. Isso permitirá que os usuários usem as métricas, parâmetros e rastreamentos centralizados na página da 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 o Catálogo Unity Criar Versão do Modelo ACL
Os trabalhos de implantação integram-se naturalmente com a ACL recém-lançada Unity Catalog Create Model Version para completar a história de MLOps. Especificamente, um usuário pode receber a CREATE MODEL VERSION ACL para registrar novas versões de modelo no modelo. Assim que o usuário considerar um modelo bom o suficiente para produção, ele registrará essa versão no modelo do Catálogo 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 dar permissão a um usuário 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 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. Note que estes são apenas exemplos, e podem ser personalizados conforme necessário.
Um exemplo simples de trabalho de implantação consiste em 3 etapas: avaliação, aprovação e implantação. As chamadas mlflow.evaluate de avaliação têm como objetivo produzir métricas de validação na versão do modelo introduzida. 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. Finalmente, a implantação implanta a versão do modelo em um endpoint de Serviço de Modelo do Databricks.
A imagem abaixo mostra as tarefas do Lakeflow Jobs que compõem esse 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 estágios 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 métricas, decidir se deseja prosseguir ou reverter e, finalmente, implantar o modelo para 100% ou reverter o modelo. A imagem abaixo mostra como esse trabalho de implantação mais complexo pode parecer:
Criar um trabalho 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 blocos de notas de exemplo MLflow 3 para obter abordagens recomendadas para treinar e registrar modelos.
O Databricks recomenda que defina o campo Executar como para um principal de serviço com permissões mínimas. Além disso, para a tarefa de aprovação, o Databricks recomenda que você desabilite as novas tentativas , pois espera-se que a tarefa falhe no início. Isso evita 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 bloco de anotações de implantação ou usando a interface do usuário. Em ambos os casos, você precisa fornecer cada uma das suas tarefas de trabalho como um bloco de anotações.
Criar um trabalho de implantação programaticamente usando um bloco de anotações (recomendado)
O uso de um notebook de implementação para criar programaticamente a tarefa de implementação é recomendado, pois utiliza o SDK do Databricks e, como tal, todas as configurações são facilmente definidas, sendo o código a fonte de referência. Esse método também permite que você implante facilmente vários trabalhos e outros recursos em vários espaços de trabalho.
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.
- Crie e registre um modelo de catálogo Unity. Por exemplo, consulte o exemplo de fluxo de trabalho de ML tradicional MLflow 3 .
- Crie um bloco de notas que defina a tarefa de avaliação. Por exemplo, importe o bloco de anotações de avaliação para ML clássico para avaliar o modelo criado a partir do exemplo ML tradicional . O caderno de avaliação do GenAI fornece um exemplo de avaliação de um modelo externo do 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.
- Crie um bloco de anotações que defina a tarefa de aprovação. Por exemplo, importe o bloco de anotações de aprovação para seu espaço 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 este bloco de anotações como um modelo e atualizá-lo para atender às suas necessidades.
- Crie um bloco de anotações que defina a tarefa de implantação. Por exemplo, importe o bloco de notas de implementação abaixo para o seu espaço de trabalho. Você também pode usar este bloco de anotações como um modelo e atualizá-lo para atender às suas necessidades.
- Crie um notebook que crie e orquestre o trabalho de implementação. Por exemplo, importe o bloco de anotações de trabalho de implantação para seu espaço de trabalho. Este notebook cria o job Databricks que se torna o trabalho de implementação. Certifique-se de atualizar os itens NECESSÁRIOS no bloco de anotações para definir corretamente seu trabalho, usando seu modelo de catálogo Unity e as tarefas apropriadas. Você também pode usar este 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.
- Execute o bloco de anotações de trabalho de implantação para criar seu trabalho de implantação.
Criar uma tarefa de implantação usando a interface de utilizador dos Jobs
Os trabalhos também podem ser criados usando a interface do usuário, em vez de usar o SDK no modelo acima. No entanto, para cada tarefa do bloco de anotações, os blocos de anotações ainda devem ser criados manualmente e salvos em algum lugar do seu espaço de trabalho. Para o modelo de instruções, é assumido 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 você tiver um fluxo de trabalho de implantação mais complexo.
Crie e registre um modelo de catálogo Unity. Por exemplo, consulte o exemplo de fluxo de trabalho de ML tradicional MLflow 3 .
Crie um bloco de notas que defina a tarefa de avaliação. Por exemplo, importe o bloco de anotações de avaliação para ML clássico para avaliar o modelo criado a partir do exemplo ML tradicional . O caderno de avaliação do GenAI fornece um exemplo de avaliação de um modelo externo do 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.
Crie um bloco de anotações que defina a tarefa de aprovação. Por exemplo, importe o bloco de anotações de aprovação para seu espaço 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 este bloco de anotações como um modelo e atualizá-lo para atender às suas necessidades.
Crie um bloco de anotações que defina a tarefa de implantação. Por exemplo, importe o bloco de notas de implementação abaixo para o seu espaço de trabalho. Você também pode usar este bloco de anotações como um modelo e atualizá-lo para atender às suas necessidades.
Crie o trabalho de implantação na interface do usuário Lakeflow Jobs:
No painel de navegação esquerdo, clique em + Novo > Trabalho para criar um novo trabalho.
Configure cada tarefa. Por exemplo, para a tarefa de implantação:
- Nome da tarefa: Implantação
- Tipo: Notebook
- Fonte: Espaço de trabalho
- Caminho:
/Workspace/Users/<user.name@email.com>/deployment - Computação: sem servidor
Para obter mais informações sobre configuração, consulte Tarefas de bloco de anotações para trabalhos.
Depois de terminar de criar cada tarefa, adicione os parâmetros do trabalho. No painel direito, clique em Editar parâmetros. Adicione
model_nameemodel_version.- Nota: Um erro comum é adicionar esses parâmetros como parâmetros de nível de tarefa. Certifique-se de adicioná-los como parâmetros de nível de trabalhousando o painel direito.
Abaixo está um exemplo de criação do trabalho de modelo acima usando a interface do usuário:
Conectar o trabalho de implantação a um modelo
Depois de criar o modelo do Unity Catalog e o trabalho de implantação, você precisa conectar o trabalho ao modelo como um trabalho de implantação. Você pode usar a interface do usuário ou fazê-lo programaticamente no bloco de anotações de implantação.
Depois que um trabalho de implantação é conectado a um modelo, ele é vinculado na página do modelo.
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.
Selecione seu trabalho de implantação na lista suspensa. Também pode utilizar a barra de pesquisa para procurar ofertas de emprego pelo seu nome ou ID. Clique em Salvar alterações.
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 quando criar um modelo registrado chamando client.create_registered_model(model_name, deployment_job_id=<your-created-job-id>), ou quando 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 update com ela (por exemplo, client.update_registered_model(model_name, deployment_job_id="")).
Use um código semelhante ao seguinte em seu bloco de anotações 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:
- GERENCIAR ou PROPRIETÁRIO no modelo para conectar o trabalho de implantação
- O proprietário do modelo precisará ter permissões CAN MANAGE RUN ou superiores no trabalho de implantação para conectá-lo.
- NOTA: Este campo de trabalho de implantação também pode ser atualizado no modelo por alguém com permissões GERIR 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.
Acionar o trabalho de implantação
O trabalho de implantação será acionado automaticamente em qualquer nova versão de modelo que for criada, e também pode ser acionado manualmente em versões existentes e implantadas anteriormente na página de versão do modelo clicando em Iniciar trabalho de implantação.
O trabalho também pode ser acionado 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 do 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 ACLs CAN MANAGE RUN ou superiores no trabalho de implantação (mesmas ACLs necessárias para disparar um trabalho usando a interface do usuário Trabalhos).
- Como o trabalho é acionado 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 a tarefa de implantação (experimental)
A Databricks fornece um mecanismo experimental de aprovação para trabalhos de implementação, permitindo um processo de interação humana em pipelines de ML. Depois que um trabalho de implantação é acionado, as métricas da execução da avaliação aparecem na página da versão do modelo. Depois de analisar essas métricas, um aprovador pode aprovar a versão do modelo na interface do usuário clicando em 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 "aprovação" (não diferencia maiúsculas de minúsculas) e passarão quando a tag Unity Catalog estiver definida como Approved (clicando no botão Aprovação na interface do usuário ou quando definida manualmente).
Veja como funciona o processo de aprovação:
- 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 tag Unity Catalog necessária.
- 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 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 Aprovar na seção da barra lateral do trabalho de implantaçã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, onde:
- A chave da tag corresponde ao nome da tarefa de aprovação. Por exemplo, no caderno de aprovação de exemplo, isto é
Approval_Check. - O valor da tag é definido como
Approved.
- Continuação do trabalho: a execução do trabalho de implementação corrigido é retomada automaticamente a partir da tarefa de aprovação. Desta vez, ele passa porque a etiqueta Unity Catalog necessária está agora presente. Em seguida, prossegue para tarefas subsequentes, como a implantação.
Permissões necessárias
As seguintes permissões são necessárias para adicionar tags do Catálogo Unity e acionar trabalhos de implantação:
- Aplique a TAG no modelo do Unity Catalog.
- CAN MANAGE RUN no trabalho de implantação.
Tags controladas para aprovações avançadas
Você também pode especificar quem tem permissão para aprovar e aplicar tags usando uma política de tag controlada para um determinado nome de tag. Ao usar uma política de marca controlada e especificar APPLY_TAG permissões para um usuário ou grupo, você pode:
- Ter vários grupos de aprovação independentes num trabalho de implementação.
- Por exemplo, você pode ter duas tags separadas para aprovações de grupo separadas como:
Approval_LegaleApproval_Securityonde:- Crie uma política de tag governada, para que somente a equipe jurídica possa definir a
Approval_Legaltag. - Crie uma política de tag governada adicional, para que somente a equipe de Segurança possa definir a
Approval_Securitytag. - Tenha duas tarefas de aprovação no seu trabalho de implementação correspondentes às aprovações jurídicas e de segurança.
- Conceda a ambas as equipas
APPLY_TAGno modelo para que possam atribuir a etiqueta, mas elas só podem aprovar as suas respetivas validações.
- Crie uma política de tag governada, para que somente a equipe jurídica possa definir a
- Por exemplo, você pode ter duas tags separadas para aprovações de grupo separadas como:
- Defina uma política de tags para impedir que o proprietário do modelo aprove o trabalho a fim de garantir que haja uma aprovação por uma segunda pessoa.
- Padronize as verificações 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 forem acionados 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 registro de atividades. O registro de atividades também é mostrado na página de versão do modelo.
Permissões necessárias
As seguintes permissões são necessárias para exibir trabalhos de implantação e o log de atividades (o mesmo que exibir o modelo):
- EXECUTAR no modelo Unity Catalog.
Exemplo de blocos de anotações modelo para trabalhos de implantação
Os blocos de anotações 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 os REQUIRED valores nos blocos de anotações para configurar o trabalho de implantação para seu modelo.
Caderno de avaliação para GenAI
Exemplo de caderno de avaliação para GenAI
Caderno de avaliação para ML clássico
Exemplo de bloco de anotações de avaliação para ML clássico
Caderno de aprovação
Exemplo de bloco de anotações de aprovação
Bloco de anotações de implantação
Exemplo de bloco de anotações de implantação
Criar bloco de anotações de trabalho de implantação
Caderno de exemplo para criar tarefa de implantação
Próximos passos
Para saber mais sobre os novos recursos do MLflow 3 e começar, consulte o seguinte artigo: