Share via


Atualizar fluxos de trabalho de ML para modelos de destino no Unity Catalog

Este artigo explica como migrar e atualizar fluxos de trabalho de 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 entidades usadas para executar seus fluxos 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), além USE CATALOGUSE SCHEMA e privilégios no catálogo e esquema anexos.
  • Implantação: Propriedade do modelo registrado (necessária para definir aliases no modelo), além USE CATALOGUSE SCHEMA e privilégios no catálogo e esquema anexos.
  • Inferência: EXECUTE privilégio no modelo registrado (necessário para ler e executar inferência com versões do modelo), mais USE CATALOG e privilégios 'USE SCHEMA no catálogo e esquema anexos.

Criação de treinamento, implantação e fluxos de trabalho paralelos

Para atualizar o treinamento de modelos e fluxos de trabalho de inferência para o Unity Catalog, o 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 o Unity Catalog, você poderá alternar os consumidores downstream para ler a saída de inferência em lote ou aumentar o tráfego roteado para modelos no Unity Catalog no serviço de endpoints.

Modelo de fluxo de trabalho de treinamento

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

  1. O cluster de fluxo de trabalho tem acesso ao Catálogo Unity e atende aos requisitos descritos em Requisitos.
  2. A entidade 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. Talvez seja necessário clonar o bloco de anotações executado pelo fluxo de trabalho ou criar e direcionar uma nova ramificação do git no fluxo de trabalho clonado. Siga estas etapas para instalar a versão necessária do MLflow, configurar o cliente para direcionar o Unity Catalog em seu código de treinamento e atualizar o código de treinamento do modelo para registrar modelos no Unity Catalog.

Fluxo de trabalho de implantação do modelo

Clone seu fluxo de trabalho de implantação de modelo, seguindo etapas semelhantes às do fluxo de trabalho de treinamento de modelo para atualizar sua configuração de computação para permitir o acesso ao Catálogo Unity.

Verifique se a entidade de segurança proprietária do fluxo de trabalho clonado tem 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 da UC. Use aliases para gerenciar distribuições de modelos de produção.

Fluxo de trabalho de inferência de modelo

Fluxo de trabalho de inferência em lote

Siga etapas semelhantes às do fluxo de trabalho de treinamento do modelo para clonar o fluxo de trabalho de inferência em lote e atualizar sua configuração de computação para habilitar o acesso ao Catálogo Unity. Verifique se a entidade que executa o trabalho de inferência em lote clonado tem as permissões necessárias para carregar o modelo para inferência.

Modelo de fluxo de trabalho de serviço

Se você estiver usando o Databricks Model Serving, não precisará clonar seu endpoint existente. Em vez disso, você pode aproveitar o recurso de divisão de tráfego para rotear uma pequena fração do tráfego para modelos no Unity Catalog.

Primeiro, certifique-se de que a entidade de segurança proprietária do ponto de extremidade de serviço de modelo tenha as permissões necessárias para carregar o modelo para inferência. Em seguida, atualize seu fluxo de trabalho de implantação de modelo clonado para atribuir uma pequena porcentagem de tráfego às versões do modelo no Unity Catalog.

Promova um modelo em todos os ambientes

O Databricks recomenda que você implante pipelines de ML como código. Isso elimina a necessidade de promover modelos em todos os ambientes, já que todos os modelos de produção podem ser produzidos por meio de fluxos de trabalho de treinamento automatizados em um ambiente de produção.

No entanto, em alguns casos, pode ser muito caro treinar novamente os modelos entre ambientes. Em vez disso, você pode copiar versões de modelos entre modelos registrados no Unity Catalog para promovê-los em todos os ambientes.

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

  • USE CATALOGstaging nos catálogos e prod .
  • USE SCHEMA sobre os staging.ml_team e prod.ml_team esquemas.
  • EXECUTE em staging.ml_team.fraud_detection.

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

O trecho de código a seguir usa a API do copy_model_versioncliente MLflow, disponível no MLflow versão 2.8.0 e superior.

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 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, apenas os usuários que podem ler a staging.ml_team.fraud_detection partir do modelo registrado e gravar no prod.ml_team.fraud_detection modelo registrado podem promover modelos de preparo para o ambiente de produção. Os mesmos usuários também podem usar aliases para gerenciar quais versões de modelo são implantadas no ambiente de produção. Não é necessário configurar outras regras ou políticas para governar a promoção e a 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, qae prod. O controle de acesso é imposto conforme configurado em cada ambiente.

Usar webhooks de trabalho para aprovação manual para implantação de modelo

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