Use bibliotecas Python personalizadas com Model Serving
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 os passos detalhados 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 modelo geralmente requer o uso de bibliotecas Python personalizadas que contêm funções para pré ou pós-processamento, definições de modelo personalizado 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. O Databricks oferece suporte nativo para instalação de bibliotecas personalizadas e bibliotecas de um espelho privado no workspace do Databricks.
o passo 1: Carregar 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 em seu Notebook, você precisa instalá-la usando %pip%
. O uso de %pip
instala a biblioteca no Notebook atual e downloads da dependência para os clusters.
passo 2: logs o modelo com uma biblioteca personalizada
Importante
A orientação nesta seção não é necessária se você instalar a biblioteca privada apontando para um espelho PyPi personalizado.
Depois de instalar a biblioteca e fazer upload do arquivo Python wheel para volumes do Unity Catalog ou DBFS, inclua o código a seguir em seu script. Em extra_pip_requirements
especifique o caminho do seu arquivo de dependência.
mlflow.sklearn.log_model(model, "sklearn-model", extra_pip_requirements=["/volume/path/to/dependency.whl"])
Para DBFS, use o seguinte:
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 bibliotecas Python 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().
Importante
Se estiver usando DBFS, certifique-se de incluir uma barra, /
, antes do caminho dbfs
ao registrar extra_pip_requirements
. Saiba mais sobre caminhos DBFS em Trabalhar com arquivos no Databricks.
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)
o passo 3: Atualizar o modelo MLflow com os arquivos Python wheel
MLflow fornece os utilitários add_libraries_to_model() para log seu modelo com todas as dependências pré-pacote como arquivos Python wheel. Isso coloca 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 usando a sintaxe models:/<model-name>/<model-version>
.
Quando você usa o URI de registro de modelo, essas utilidades geram uma nova versão em seu modelo registrado existente.
import mlflow.models.utils
mlflow.models.utils.add_libraries_to_model(<model-uri>)
passo 4: Sirva seu modelo
Quando uma nova versão de modelo com os pacotes incluídos estiver disponível no registro de modelo, você poderá adicionar essa versão de modelo a um endpoint com Model Serving.