Использование пользовательских библиотек Python с помощью службы моделей
В этой статье вы узнаете, как включить пользовательские библиотеки или библиотеки из частного сервера зеркало при регистрации модели, чтобы использовать их с развертываниями модели обслуживания моделей. Вы должны выполнить действия, описанные в этом руководстве, после того как у вас есть обученная модель машинного обучения, готовая к развертыванию, но прежде чем создать конечную точку обслуживания модели Azure Databricks.
Для разработки моделей часто требуется использование пользовательских библиотек Python, содержащих функции для предварительной или последующей обработки, определений пользовательских моделей и других общих служебных программ. Кроме того, многие группы безопасности предприятия поощряют использование частных зеркало PyPi, таких как Nexus или Artifactory, чтобы снизить риск атак в цепочке поставок. Azure Databricks предлагает встроенную поддержку установки пользовательских библиотек и библиотек из частного зеркало в рабочей области Azure Databricks.
Требования
- MLflow 1.29 или более поздней версии
Шаг 1. Отправка файла зависимостей
Databricks рекомендует передать файл зависимостей в тома каталога Unity. Кроме того, его можно отправить в файловую систему Databricks (DBFS) с помощью пользовательского интерфейса Azure Databricks.
Чтобы обеспечить доступность библиотеки для записной книжки, необходимо установить ее с помощью %pip%
. Использование %pip
устанавливает библиотеку в текущей записной книжке и загружает зависимость в кластер.
Шаг 2. Регистрация модели с помощью пользовательской библиотеки
Внимание
Рекомендации в этом разделе не требуются, если вы устанавливаете частную библиотеку, указывая на пользовательский зеркало PyPi.
После установки библиотеки и отправки файла колеса Python в тома каталога Unity или DBFS добавьте следующий код в скрипт. extra_pip_requirements
Введите путь к файлу зависимостей.
mlflow.sklearn.log_model(model, "sklearn-model", extra_pip_requirements=["/volume/path/to/dependency.whl"])
Для DBFS используйте следующее:
mlflow.sklearn.log_model(model, "sklearn-model", extra_pip_requirements=["/dbfs/path/to/dependency.whl"])
Если у вас есть пользовательская библиотека, необходимо указать все пользовательские библиотеки Python, связанные с моделью при настройке ведения журнала. Это можно сделать с extra_pip_requirements
помощью параметров или conda_env
параметров в log_model().
Внимание
Если используется DBFS, обязательно включите косую черту, /
перед dbfs
тем как путь при ведении журнала extra_pip_requirements
. Дополнительные сведения о путях DBFS см. в разделе "Работа с файлами в 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)
Шаг 3. Обновление модели MLflow с помощью файлов колес Python
MLflow предоставляет служебную программу add_libraries_to_model() для регистрации модели со всеми предварительно упакованными зависимостями в виде файлов колес Python. Это упаковывает пользовательские библиотеки вместе с моделью в дополнение ко всем другим библиотекам, указанным в качестве зависимостей модели. Это гарантирует, что библиотеки, используемые вашей моделью, являются именно теми, которые доступны в вашей учебной среде.
В следующем примере model_uri
ссылается на реестр моделей с помощью синтаксиса models:/<model-name>/<model-version>
.
При использовании URI реестра моделей эта программа создает новую версию в существующей зарегистрированной модели.
import mlflow.models.utils
mlflow.models.utils.add_libraries_to_model(<model-uri>)
Шаг 4. Обслуживание модели
Когда новая версия модели с пакетами доступна в реестре моделей, можно добавить эту версию модели в конечную точку с помощью службы моделей.
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по