Atualize o fluxo de trabalho de ML para modelos de destino no Unity Catalog

Este artigo explica como migrar e atualizar o fluxo de trabalho ML para modelos de destino no Unity Catalog.

Requisitos

Antes de começar, certifique-se de atender aos requisitos em Requisitos. Em particular, certifique-se de que os usuários ou principais usados para executar seu fluxo de trabalho de treinamento, implantação e inferência de modelo tenham os privilégios necessários em um modelo registrado no Unity Catalog:

  • treinamento: Propriedade do modelo registrado (necessário para criar novas versões do modelo), mais privilégios USE CATALOG e USE SCHEMA no catálogo e esquema anexos.

  • Implantação: propriedade do modelo registrado (necessário para definir aliases no modelo), mais privilégios USE CATALOG e USE SCHEMA no catálogo e esquema anexos.

  • Inferência: privilégio EXECUTE no modelo registrado (necessário para ler e realizar inferência com as versões do modelo), mais USE CATALOG e privilégios `USE SCHEMA no catálogo e esquema incluídos.

Criação paralela de treinamento, implantação e fluxo de trabalho

Para atualizar o fluxo de trabalho de treinamento e inferência de modelos para o Unity Catalog, a Databricks recomenda uma abordagem incremental na qual você cria um pipeline paralelo de treinamento, implantação e inferência que aproveita os modelos no Unity Catalog. Quando estiver confortável com os resultados usando Unity Catalog, você pode alternar os consumidores downstream para ler a saída de inferência de lotes ou aumentar o tráfego roteado para os modelos no Unity Catalog ao atender endpoints.

Modelo de treinamento fluxo de trabalho

Clone seu fluxo de trabalho de treinamento de modelo. Em seguida, certifique-se de que:

  1. Os clusters fluxo de trabalho têm acesso ao Unity Catalog e atendem aos requisitos descritos em Requisitos.

  2. O principal que executa o fluxo de trabalho tem as permissões necessárias em um modelo registrado no Unity Catalog.

Em seguida, modifique o código de treinamento do modelo no fluxo de trabalho clonado. Pode ser necessário clonar a execução do Notebook pelo fluxo de trabalho ou criar e direcionar uma nova ramificação git no fluxo de trabalho clonado. Siga estes passos para instalar a versão necessária do MLflow, configurar o cliente para direcionar Unity Catalog em seu código de treinamento e atualizar o código de treinamento do modelo para registrar modelos no Unity Catalog.

Modelo de implantação fluxo de trabalho

Clone seu fluxo de trabalho de implantação de modelo, seguindo passos semelhantes às do fluxo de trabalho de treinamento de modelo para atualizar sua configuração compute para permitir o acesso ao Unity Catalog.

Certifique-se de que o principal proprietário do fluxo de trabalho clonado tenha as permissões necessárias. Se você tiver lógica de validação de modelo em seu fluxo de trabalho de implantação, atualize-a para carregar versões de modelo de UC. Use aliases para gerenciar lançamentos de modelos de produção.

Fluxo de trabalho de inferência de modelos

lotes inferência fluxo de trabalho

Siga os passos semelhantes aos do fluxo de trabalho de treinamento do modelo para clonar o fluxo de trabalho de inferência de lotes e atualizar sua configuração compute para permitir o acesso ao Unity Catalog. Certifique-se de que o principal que executa o Job de inferência de lotes clonados tenha as permissões necessárias para carregar o modelo para inferência.

Promover um modelo em todos os ambientes

Databricks recomenda que o senhor implante o site ML pipelines como código. Isso elimina a necessidade de promover modelos entre ambientes, pois todos os modelos de produção podem ser produzidos por meio do treinamento automatizado fluxo de trabalho em um ambiente de produção.

No entanto, em alguns casos, pode ser muito caro treinar novamente os modelos nos ambientes. Nesses cenários, você pode copiar versões de modelos entre modelos registrados no Unity Catalog para promovê-los entre ambientes.

Você precisa dos seguintes privilégios para executar o código de exemplo abaixo:

  • USE CATALOG nos catálogos staging e prod .

  • USE SCHEMA nos esquemas staging.ml_team e prod.ml_team .

  • EXECUTE em staging.ml_team.fraud_detection.

Além disso, você deve ser o proprietário do modelo registrado prod.ml_team.fraud_detection.

O snippet de código a seguir usa a copy_model_version API do cliente MLflow, disponível no MLflow versão 2.8.0 e acima.

import mlflow
mlflow.set_registry_uri("databricks-uc")

client = mlflow.tracking.MlflowClient()
src_model_name = "staging.ml_team.fraud_detection"
src_model_version = "1"
src_model_uri = f"models:/{src_model_name}/{src_model_version}"
dst_model_name = "prod.ml_team.fraud_detection"
copied_model_version = client.copy_model_version(src_model_uri, dst_model_name)

Depois que a versão do modelo estiver no ambiente de produção, você poderá executar qualquer validação de pré-implantação necessária. Em seguida, você pode marcar a versão do modelo para implantação usando aliases.

client = mlflow.tracking.MlflowClient()
client.set_registered_model_alias(name="prod.ml_team.fraud_detection", alias="Champion", version=copied_model_version.version)

No exemplo acima, somente os usuários que podem ler o modelo registrado staging.ml_team.fraud_detection e gravar no modelo registrado prod.ml_team.fraud_detection podem promover modelos de preparo para o ambiente de produção. Os mesmos usuários também podem utilizar aliases para gerenciar quais versões de modelos são implantadas dentro do ambiente de produção. Não é necessário configurar quaisquer outras regras ou políticas para reger a promoção e implantação do modelo.

Você pode personalizar esse fluxo para promover a versão do modelo em vários ambientes que correspondam à sua configuração, como dev, qa e prod. O controle de acesso é aplicado conforme configurado em cada ambiente.

Use Job webhooks para aprovação manual da implementação do modelo

A Databricks recomenda que o senhor automatize a implantação do modelo, se possível, usando verificações e testes apropriados durante o processo de implantação do modelo. Entretanto, se o senhor precisar realizar aprovações manuais para implantar modelos de produção, poderá usar webhooksJob para chamar sistemas externos CI/CD e solicitar aprovação manual para implantar um modelo, depois que o treinamento do modelo Job for concluído com êxito. Depois que a aprovação manual for fornecida, o sistema CI/CD poderá implantar a versão do modelo para atender ao tráfego, por exemplo, definindo o alias "Champion" nele.