opomba,
Dostop do te strani zahteva pooblastilo. Poskusite se vpisati alispremeniti imenike.
Dostop do te strani zahteva pooblastilo. Poskusite lahko spremeniti imenike.
In this article, you learn how to include custom libraries or libraries from a private mirror server when you log your model, so that you can use them with Mosaic AI Model Serving model deployments. You should complete the steps detailed in this guide after you have a trained ML model ready to deploy but before you create an Azure Databricks Model Serving endpoint.
Model development often requires the use of custom Python libraries that contain functions for pre- or post-processing, custom model definitions, and other shared utilities. In addition, many enterprise security teams encourage the use of private PyPi mirrors, such as Nexus or Artifactory, to reduce the risk of supply-chain attacks. Azure Databricks offers native support for installation of custom libraries and libraries from a private mirror in the Azure Databricks workspace.
Requirements
- MLflow 1.29 or higher
- Restrict outbound network access from Model Serving endpoints by configuring network policies. See Validate with model serving.
Option 1: Use a private package repository
Use Option 1 if your organization uses a private PyPI mirror (such as Nexus or Artifactory). Workspace admins can configure it as the default package repository for the workspace. Model Serving automatically uses this workspace-level configuration when building your model environment.
To set up a private package repository, see Configure default Python package repositories.
Once configured, proceed to Serve your model.
Option 2: Package custom libraries as wheel files
Use Option 2 if a private PyPI mirror is not accessible, or if you have custom libraries that are not available in any package repository. You can package them as Python wheel files and include them when logging your model.
Step 1: Upload your dependency file
Databricks recommends that you upload your dependency file to Unity Catalog volumes. Alternatively, you can upload it to Databricks File System (DBFS) using the Azure Databricks UI.
To ensure your library is available to your notebook, you need to install it using %pip. Using %pip installs the library in the current notebook and downloads the dependency to the cluster.
Step 2: Log the model with a custom library
After you install the library and upload the Python wheel file to either Unity Catalog volumes or DBFS, include the following code in your script. In the extra_pip_requirements specify the path of your dependency file.
mlflow.sklearn.log_model(model, "sklearn-model", extra_pip_requirements=["/volume/path/to/dependency.whl"])
For DBFS, use the following:
mlflow.sklearn.log_model(model, "sklearn-model", extra_pip_requirements=["/dbfs/path/to/dependency.whl"])
If you have a custom library, you must specify all custom Python libraries associated with your model when you configure logging. You can do so with the extra_pip_requirements or conda_env parameters in log_model().
Important
If using DBFS, be sure to include a forward slash, /, before your dbfs path when logging extra_pip_requirements. Learn more about DBFS paths in Work with files on 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"],
)
If your custom library is stored somewhere other than a volume or DBFS, you can specify its location using the code_paths parameter, and pass "code/<wheel-file-name>.whl" in the extra_pip_requirements parameter.
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"],
)
Step 3: Update MLflow model with Python wheel files
MLflow provides the add_libraries_to_model() utility to log your model with all of its dependencies pre-packaged as Python wheel files. This packages your custom libraries alongside the model in addition to all other libraries that are specified as dependencies of your model. This guarantees that the libraries used by your model are exactly the ones accessible from your training environment.
In the following example, model_uri references the Unity Catalog model registry using the syntax models:/<uc-model>/<model-version>. To reference the workspace model registry (legacy) use, models:/<model-name>/<model-version>.
When you use the model registry URI, this utility generates a new version under your existing registered model.
import mlflow.models.utils
mlflow.models.utils.add_libraries_to_model(<model-uri>)
Serve your model
When a new model version with the packages included is available in the model registry, you can add this model version to an endpoint with Model Serving.
Troubleshoot package installation failures
If your model deployment fails during the build phase, you can review the build logs to identify package installation issues.
- Navigate to the Serving page in your Databricks workspace.
- Click on your endpoint name to open the endpoint details.
- Click the Logs tab.
- Select the failed version from the dropdown menu.
- Click Build logs.
Review the error messages to identify the issue. If you are using a private package repository, common issues include:
- Missing packages: The package is not available in your configured repository. Add the required package to your private repository.
- Connection issues: Model Serving cannot reach your package repository. Verify network connectivity and firewall rules.
- Authentication failures: The credentials configured for your repository are invalid or expired. Update the secrets in your workspace configuration.
After resolving the issue, create a new deployment or update your endpoint to trigger a new build.