Použití vlastních knihoven Pythonu s obsluhou modelů
V tomto článku se dozvíte, jak při protokolování modelu zahrnout vlastní knihovny nebo knihovny ze serveru privátního zrcadlení, abyste je mohli používat s nasazeními modelu Služby architektury AI. Kroky popsané v této příručce byste měli dokončit, až budete mít natrénovaný model ML připravený k nasazení, ale před vytvořením koncového bodu služby Azure Databricks Model Serving.
Vývoj modelů často vyžaduje použití vlastních knihoven Pythonu, které obsahují funkce pro předběžné nebo následné zpracování, definice vlastních modelů a další sdílené nástroje. Kromě toho mnoho podnikových týmů zabezpečení podporuje použití privátních zrcadlení PyPi, jako je Nexus nebo Artifactory, aby se snížilo riziko útoků dodavatelského řetězce. Azure Databricks nabízí nativní podporu pro instalaci vlastních knihoven a knihoven z privátního zrcadla v pracovním prostoru Azure Databricks.
Požadavky
- MLflow 1,29 nebo vyšší
Krok 1: Nahrání souboru závislostí
Databricks doporučuje nahrát soubor závislostí do svazků katalogu Unity. Případně ho můžete nahrát do systému souborů Databricks (DBFS) pomocí uživatelského rozhraní Azure Databricks.
Abyste měli jistotu, že je knihovna pro váš poznámkový blok dostupná, musíte ji nainstalovat pomocí %pip%
. Pomocí %pip
instalace knihovny v aktuálním poznámkovém bloku a stažení závislosti do clusteru.
Krok 2: Protokolování modelu pomocí vlastní knihovny
Důležité
Pokyny v této části se nevyžadují, pokud nainstalujete privátní knihovnu tak, že nasměrujete na vlastní zrcadlení PyPi.
Po instalaci knihovny a nahrání souboru kola Pythonu do svazků katalogu Unity nebo DBFS vložte do skriptu následující kód. Do pole extra_pip_requirements
zadejte cestu k souboru závislosti.
mlflow.sklearn.log_model(model, "sklearn-model", extra_pip_requirements=["/volume/path/to/dependency.whl"])
V případě systému souborů DBFS použijte následující:
mlflow.sklearn.log_model(model, "sklearn-model", extra_pip_requirements=["/dbfs/path/to/dependency.whl"])
Pokud máte vlastní knihovnu, musíte při konfiguraci protokolování zadat všechny vlastní knihovny Pythonu přidružené k vašemu modelu. Můžete to udělat pomocí extra_pip_requirements
parametrů conda_env
v log_model().
Důležité
Pokud používáte DBFS, nezapomeňte při protokolování extra_pip_requirements
zahrnout lomítko , /
před cestou dbfs
. Přečtěte si další informace o cestách DBFS v práci se soubory v Azure 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)
Krok 3: Aktualizace modelu MLflow pomocí souborů kol Pythonu
MLflow poskytuje nástroj add_libraries_to_model() pro protokolování modelu se všemi jeho závislostmi předem zabalenými jako soubory kol Pythonu. Kromě všech ostatních knihoven, které jsou určené jako závislosti modelu, zabalí vaše vlastní knihovny společně s modelem. To zaručuje, že knihovny používané vaším modelem jsou přesně ty, které jsou přístupné z vašeho trénovacího prostředí.
V následujícím příkladu model_uri
odkazuje registr modelu pomocí syntaxe models:/<model-name>/<model-version>
.
Pokud použijete identifikátor URI registru modelů, tento nástroj vygeneruje novou verzi v rámci existujícího registrovaného modelu.
import mlflow.models.utils
mlflow.models.utils.add_libraries_to_model(<model-uri>)
Krok 4: Obsluha modelu
Pokud je v registru modelů k dispozici nová verze modelu s zahrnutými balíčky, můžete tuto verzi modelu přidat do koncového bodu s obsluhou modelu.