Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Neste artigo, irá aprender a incluir bibliotecas personalizadas ou bibliotecas de um servidor espelho privado ao registar o seu modelo, para que possa usá-las com implantações de modelos na Mosaic AI. Você deve concluir as etapas detalhadas neste guia depois de ter um modelo de ML treinado pronto para implantação, mas antes de criar um ponto de extremidade de Servir de Modelos do Azure Databricks.
O desenvolvimento de modelos geralmente requer o uso de bibliotecas Python personalizadas que contêm funções para pré ou pós-processamento, definições de modelo personalizadas e outros utilitários compartilhados. 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 Azure Databricks oferece suporte nativo para a instalação de bibliotecas personalizadas e bibliotecas a partir de um espelho privado no espaço de trabalho do Azure Databricks.
Requisitos
- MLflow 1.29 ou superior
- Restrinja o acesso de saída à rede a partir de pontos de extremidade do Model Serving configurando políticas de rede. Consulte Validar com a disponibilização de modelos.
Etapa 1: Carregar arquivo de dependência
O Databricks recomenda que carregues o teu arquivo de dependência nos volumes do Catálogo Unity. Como alternativa, você pode carregá-lo no Sistema de Arquivos Databricks (DBFS) usando a interface do usuário do Azure Databricks.
Para garantir que a sua biblioteca esteja disponível no seu computador portátil, é necessário instalá-la usando %pip. Usar %pip instala a biblioteca no caderno atual e descarrega a dependência para o cluster.
Etapa 2: Registrar 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 carregar o arquivo de roda Python para volumes do Catálogo Unity ou DBFS, inclua o código a seguir no script. No campo extra_pip_requirements especifique o caminho do seu ficheiro 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 você tiver uma biblioteca personalizada, deverá especificar todas as bibliotecas Python personalizadas associadas ao seu modelo ao configurar o log. Você pode fazer isso com os extra_pip_requirements parâmetros ou conda_env em log_model().
Importante
Se estiver usando DBFS, certifique-se de incluir uma barra para frente, /, antes do caminho dbfs ao registrar extra_pip_requirements. Saiba mais sobre caminhos DBFS em Trabalhar com arquivos no Azure Databricks.
from mlflow.utils.environment import _mlflow_conda_env
mlflow.pyfunc.log_model(
name="model",
python_model=MyModel(),
extra_pip_requirements=["/volumes/path/to/dependency"],
)
Se a sua biblioteca personalizada estiver armazenada em algum lugar diferente de um volume ou DBFS, poderá especificar o seu local usando o parâmetro code_paths, e passar "code/<wheel-file-name>.whl" no parâmetro extra_pip_requirements.
mlflow.pyfunc.log_model(
name="model",
python_model=MyModel(),
code_paths=["/path/to/dependency.whl"], # This will be logged as `code/dependency.whl`
extra_pip_requirements=["code/dependency.whl"],
)
Etapa 3: Atualizar o modelo MLflow com arquivos de roda Python
MLflow fornece o utilitário add_libraries_to_model() para registrar seu modelo com todas as suas dependências pré-empacotadas como arquivos de roda Python. Isso empacota suas bibliotecas personalizadas juntamente com o modelo, além de todas as outras bibliotecas que são especificadas como dependências do seu modelo. Isso garante que as bibliotecas usadas pelo seu modelo sejam exatamente as acessíveis a partir do seu ambiente de treinamento.
No exemplo a seguir, model_uri faz referência ao registro do modelo Unity Catalog usando a sintaxe models:/<uc-model>/<model-version>. Para fazer referência ao uso do registro do modelo de espaço de trabalho (legado), models:/<model-name>/<model-version>.
Quando você usa o URI do registro modelo, esse utilitário gera 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 o seu modelo
Quando uma nova versão do modelo com os pacotes incluídos estiver disponível no registo do modelo, pode adicionar essa versão do modelo a um ponto de extremidade com Model Serving.