Развертывание моделей для пакетного вывода и прогнозирования

В этой статье описывается развертывание моделей MLflow для вывода в автономном режиме (пакетной и потоковой передачи). Databricks рекомендует использовать MLflow для развертывания моделей машинного обучения для вывода пакетной или потоковой передачи. Общие сведения о работе с моделями MLflow см. в разделе Журнал, загрузка, регистрация и развертывание моделей MLflow.

Сведения о модели в режиме реального времени, обслуживаемой в Azure Databricks, см. в разделе "Модель" с помощью Azure Databricks.

Использование MLflow для вывода модели

MLflow упрощает создание кода для пакетного или потокового вывода.

Вы также можете изменить созданный настроить код, используя любой из указанных выше вариантов. Рассмотрите примеры следующих записных книжек:

  • В примере вывода используется модель, обученная с помощью scikit-learn и ранее зарегистрированная в MLflow, чтобы показать, как загружать модель и применять ее для прогнозирования на основе данных разных форматов. Записная книжка показывает, как применить модель в качестве модели scikit-learn к кадру DataFrame Pandas и как применить модель в виде определяемой пользователем функции PySpark к кадру DataFrame Spark.
  • В примере реестра моделей MLflow показано, как создавать и развертывать модель с использованием реестра, а также управлять ею. На этой странице можно выполнять поиск по .predict, чтобы находить примеры автономных (пакетных) прогнозов.

Создание задания Azure Databricks

Чтобы запустить пакетный или потоковый прогноз в качестве задания, создайте записную книжку или JAR-файл с кодом, используемым для выполнения прогноза. Затем выполните записную книжку или JAR-файл в качестве задания Azure Databricks. Задания можно выполнять сразу или по расписанию.

Вывод потоковой передачи

В реестре моделей MLflow можно автоматически создать записную книжку, которая интегрирует UDF вывода MLflow PySpark с разностными динамическими таблицами.

Вы также можете изменить созданную записную книжку вывода для использования API структурированной потоковой передачи Apache Spark. См. пример использования конвейеров Apache Spark MLlib и структурированной потоковой передачи.

Вывод с помощью моделей глубокого обучения

Дополнительные сведения и примеры вывода модели глубокого обучения на Azure Databricks см. в следующих статьях:

Вывод с использованием моделей MLlib и XGBoost4J

Для масштабируемого вывода модели с помощью моделей MLlib и XGBoost4J используйте собственные методы transform, чтобы выполнять вывод непосредственно в кадры данных Spark. В примерах записных книжек MLlib содержатся шаги по выводу.

Настройка и оптимизация вывода модели

При использовании API-интерфейсов MLflow для выполнения вывода на основе кадров DataFrame Spark можно загрузить модель с помощью определяемой пользователем функции Spark и применить ее в большом масштабе с помощью распределенных вычислений.

Вы можете настроить модель, добавив предварительную или последующую обработку и оптимизировав производительность вычислений для больших моделей. Для настройки моделей хорошо подходит API-интерфейс pyfunc MLflow, который позволяет применить к модели оболочку пользовательской логики.

Если вам нужно выполнить дальнейшую настройку, можно вручную создать оболочку для модели машинного обучения с помощью определяемой пользователем функции Pandas, в том числе с поддержкой итератора. Дополнительные сведения см. в примерах глубокого обучения.

При небольших наборах данных можно также использовать собственные подпрограммы вывода модели, доступные в библиотеке.