Pular para o conteúdo principal

Usar Python biblioteca personalizada com o modelo servindo

Neste artigo, você aprenderá a incluir biblioteca personalizada ou biblioteca de um servidor espelho privado ao acessar log seu modelo, para que possa usá-las com Mosaic AI Model Serving implantações de modelos. O senhor deve concluir as etapas detalhadas neste guia depois de ter um ML modelo treinado e pronto para ser implantado, mas antes de criar um modelo Databricks endpointservindo.

O desenvolvimento de modelos geralmente requer o uso de Python biblioteca personalizada que contém funções para pré ou pós-processamento, definições de modelos personalizados e outras utilidades compartilhadas. Além disso, muitas equipes de segurança corporativa incentivam o uso de espelhos PyPI privados, como Nexus ou Artifactory, para reduzir o risco de ataques à cadeia de suprimentos. Databricks oferece suporte nativo para a instalação de biblioteca personalizada e biblioteca de um espelho privado no site Databricks workspace.

Requisitos

  • MLflow 1.29 ou superior

Etapa 1: Fazer upload do arquivo de dependência

Databricks recomenda que o senhor upload seu arquivo de dependência para Unity Catalog volumes. Como alternativa, o senhor pode upload para Databricks File System (DBFS ) usando a interface do usuário Databricks.

Para garantir que sua biblioteca esteja disponível para o Notebook, o senhor precisa instalá-la usando %pip%. O uso de %pip instala a biblioteca no Notebook atual e downloads a dependência para o agrupamento.

Etapa 2: registrar o modelo com uma biblioteca personalizada

important

A orientação nesta seção não é necessária se o usuário instalar a biblioteca privada apontando para um espelho personalizado do PyPi.

Depois de instalar a biblioteca e upload o arquivo Python wheel para os volumes Unity Catalog ou DBFS, inclua o seguinte código em seu script. No extra_pip_requirements, especifique o caminho do seu arquivo de dependência.

Python
mlflow.sklearn.log_model(model, "sklearn-model", extra_pip_requirements=["/volume/path/to/dependency.whl"])

Para DBFS, use o seguinte:

Python
mlflow.sklearn.log_model(model, "sklearn-model", extra_pip_requirements=["/dbfs/path/to/dependency.whl"])

Se o senhor tiver uma biblioteca personalizada, deverá especificar todas as Python bibliotecas personalizadas associadas ao seu modelo ao configurar o registro. O senhor pode fazer isso com os parâmetros extra_pip_requirements ou conda_env em logs().

important

Se estiver usando o DBFS, certifique-se de incluir uma barra, /, antes do caminho dbfs ao registrar extra_pip_requirements. Saiba mais sobre os caminhos do DBFS em Work with files on Databricks.

Python
from mlflow.utils.environment import _mlflow_conda_env
conda_env = _mlflow_conda_env(
additional_conda_deps= None,
additional_pip_deps= ["/volumes/path/to/dependency"],
additional_conda_channels=None,
)
mlflow.pyfunc.log_model(..., conda_env = conda_env)

Etapa 3: Atualizar o modelo MLflow com arquivos Python wheel

MLflow fornece os utilitários add_libraries_to_model() para log seu modelo com todas as suas dependências pré-pacote como arquivos Python wheel. Isso inclui sua biblioteca personalizada junto com o modelo, além de todas as outras bibliotecas especificadas como dependências do seu modelo. Isso garante que as bibliotecas usadas pelo seu modelo sejam exatamente aquelas acessíveis a partir do seu ambiente de treinamento.

No exemplo a seguir, model_uri faz referência ao registro de modelo do Unity Catalog usando a sintaxe models:/<uc-model>/<model-version>. Para consultar o workspace registro de modelo (legado), use models:/<model-name>/<model-version>.

Quando o senhor usa o URI de registro de modelo, esse utilitário gera uma nova versão sob o modelo registrado existente.

Python
import mlflow.models.utils
mlflow.models.utils.add_libraries_to_model(<model-uri>)

Etapa 4: sirva seu modelo

Quando uma nova versão de modelo com o pacote incluído estiver disponível no registro de modelo, o senhor poderá adicionar essa versão de modelo a um endpoint com servindo modelo.