Compartilhar via


Atualizar fluxos de trabalho de ML para modelos de destino no Catálogo do Unity

Este artigo explica como migrar e atualizar fluxos de trabalho de ML para direcioná-los aos modelos do Catálogo do Unity.

Requisitos

Antes de começar, verifique se você atende aos requisitos descritos em Requisitos. Em particular, verifique se os usuários ou entidades de segurança usados para executar seus fluxos de trabalho de treinamento, implantação e inferência de modelo têm os privilégios necessários em um modelo registrado no Catálogo do Unity:

  • Treinamento: propriedade do modelo registrado (necessário para criar novas versões de modelo), além de USE CATALOG privilégios e USE SCHEMA no catálogo e no esquema delimitador.
  • Implantação: propriedade do modelo registrado (necessário para definir aliases no modelo), além USE CATALOG de privilégios e USE SCHEMA no catálogo e no esquema delimitador.
  • Inferência: EXECUTE privilégio no modelo registrado (necessário para ler e executar inferência com versões de modelo), além USE CATALOG de privilégios de 'USE SCHEMA no catálogo e esquema delimitador.

Como criar um treinamento, uma implantação e fluxos de trabalho paralelos

Para atualizar os fluxos de trabalho de treinamento e de inferência de modelo para o Catálogo do Unity, o Databricks recomenda uma abordagem incremental na qual você cria um pipeline de treinamento, de implantação e de inferência paralelos que aproveitam modelos do Catálogo do Unity. Quando estiver familiarizado com os resultados usando o Catálogo do Unity, alterne os consumidores downstream para ler a saída de inferência em lote ou aumentar o tráfego roteado para modelos do Catálogo do Unity nos pontos de extremidade de serviço.

Fluxo de trabalho de treinamento de modelo

Clone o fluxo de trabalho de treinamento do modelo. Em seguida, verifique se:

  1. O cluster de fluxo de trabalho tem acesso ao Catálogo do Unity e atende aos requisitos descritos em Requisitos.
  2. A entidade de segurança que executa o fluxo de trabalho tem as permissões necessárias em um modelo registrado no Catálogo do Unity.

Em seguida, modifique o código de treinamento do modelo no fluxo de trabalho clonado. Talvez seja necessário clonar o notebook executado pelo fluxo de trabalho ou criar e direcionar um novo branch git no fluxo de trabalho clonado. Siga estas etapas para instalar a versão necessária do MLflow, configurar o cliente para direcionar o Catálogo do Unity em seu código de treinamento e atualizar o código de treinamento do modelo para registrar modelos no Catálogo do Unity.

Fluxo de trabalho de implantação de 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 habilitar o acesso ao Catálogo do Unity.

Verifique se a entidade de segurança que possui o fluxo de trabalho clonado tem as permissões necessárias. Se você tiver a lógica de validação de modelo no fluxo de trabalho de implantação, atualize-a para carregar versões de modelo do UC. Use aliases para gerenciar as distribuições de modelos de produção.

Fluxo de trabalho da inferência de modelo

Fluxo de trabalho de inferência do Lote

Siga etapas semelhantes às do fluxo de trabalho de treinamento de 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 do Unity. Verifique se a entidade de segurança que executa o trabalho de inferência de lote clonado tem as permissões necessárias para carregar o modelo para inferência.

Fluxo de trabalho de serviço de modelo

Se você estiver usando o Mosaic AI Model Serving, não será necessário clonar o ponto de extremidade existente. Em vez disso, você pode aproveitar o recurso de divisão de tráfego para rotear uma pequena fração de tráfego para modelos no Catálogo do Unity.

Primeiro, verifique se a entidade de segurança que possui o ponto de extremidade de serviço do modelo tem as permissões necessárias para carregar o modelo para inferência. Em seguida, atualize o fluxo de trabalho de implantação de modelo clonado para atribuir um pequeno percentual de tráfego às versões de modelo do Catálogo do Unity.

Promover um modelo entre ambientes

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

No entanto, em alguns casos, pode ficar muito caro treinar os modelos de novo em todos os ambientes. Em vez disso, você pode copiar versões de modelo em modelos registrados no Catálogo do Unity para promovê-las entre ambientes.

Você precisa ter os 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ê precisa ser o proprietário do modelo registrado prod.ml_team.fraud_detection.

O trecho de código a seguir usa a copy_model_version API do Cliente 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 de pré-implantação necessária. Em seguida, marque 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 fazer leituras no modelo registrado staging.ml_team.fraud_detection e gravações no modelo registrado prod.ml_team.fraud_detection podem promover os modelos de preparo para o ambiente de produção. Os mesmos usuários também podem usar aliases para gerenciar as versões de modelo que são implantadas no ambiente de produção. Você não precisa configurar nenhuma outra regra ou política para controlar a promoção e a implantação do modelo.

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

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

O Databricks recomenda que você automatize a implementação do modelo, se possível, usando verificações e testes apropriados durante o processo de implementação do modelo. No entanto, caso você precise executar aprovações manuais para implantar modelos de produção, use webhooks de trabalho para chamar sistemas de CI/CD externos a fim de solicitar a aprovação manual para implantar um modelo, após a conclusão bem-sucedida do trabalho de treinamento do modelo. Depois que a aprovação manual for fornecida, o sistema de CI/CD poderá implantar a versão do modelo para atender ao tráfego, por exemplo, definindo o alias “Campeão” nela.