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

Автомл

Databricks AutoML помогает автоматически применять машинное обучение к набору данных. Он подготавливает набор данных для обучения модели, а затем выполняет и записывает набор испытаний, создавая, настраивая и оценивая несколько моделей. Он отображает результаты и предоставляет записную книжку Python с исходным кодом для каждого пробного запуска, чтобы вы могли просматривать, воспроизводить и изменять код. AutoML также вычисляет сводную статистику по вашему набору данных и сохраняет эту информацию в записной книжке, которую вы сможете просмотреть позже.

Для начала давайте сначала подготовим набор данных (я взял образец набора данных из sklearn), чтобы обучить модель и сохранить его как дельта-таблицу.

%python
import sklearn
input_pdf = sklearn.datasets.fetch_california_housing(as_frame=True)
chDf = spark.createDataFrame(input_pdf)

chDf.write\
    .format("delta")\
    .save("/mnt/delta/california_housing")
spark.sql ("CREATE TABLE default.california_housing USING DELTA LOCATION '/mnt/delta/california_housing'")

Как только мы подготовим набор данных для обучения, мы можем использовать Databricks опыт AutoML для обучения нескольких моделей и представления их нам.

Мы выберем кластер (я использую Azure Databricks Runtime for Machine Learning 8.3 ML Beta). Поскольку это проблема регрессии, которую мы пытаемся решить, мы выберем тип проблемы ML как Регрессия (другой доступный вариант — Классификация). .

Затем мы просмотрим и выберем набор обучающих данных, т. е. созданную нами таблицу Delta и целевой столбец прогнозирования.

После установки правильной конфигурации AutoML начнет обучение. Тренировочный процесс продлится 60 минут. При необходимости мы можем остановить процесс.

Через час обучение будет завершено, и AutoML определит лучшую модель на основе оценки r2.

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

В конце блокнота мы найдем URI модели.

Зарегистрируйте окончательную модель в реестре моделей.

Если нас устраивает эта модель, мы можем зарегистрировать ее в реестре моделей.

%python
import time
import mlflow
model_name = "california_housing_regression"
model_uri = "runs:/07e95f5a9c8d4949a5f8ff2c03067605/model"
new_model_version = mlflow.register_model(model_uri, model_name)
 
# Registering the model takes a few seconds, 
# so add a delay before continuing with the next cell
time.sleep(5)

После того, как наша модель зарегистрирована, мы можем продвигать ее на более высокий уровень (обратитесь к моему предыдущему блогу для управления жизненным циклом).

Обслуживание моделей

В этом разделе мы увидим, как развернуть зарегистрированную модель для онлайн-обслуживания.

Это запустит кластер заданий, установит необходимые библиотеки и выбранную нами модель.

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

Как только кластер находится в рабочем состоянии и модель развернута, мы можем найти несколько URL-адресов модели —

  • используя номер версии, мы можем вызвать любую конкретную версию модели: https://‹экземпляр databricks›/model/‹название модели›/‹номер версии›/вызовы
  • или мы можем вызвать последнюю версию каждого этапа: https://‹экземпляр databricks›/model/‹название модели›/‹этап›/призывы

Теперь мы можем протестировать сервис, отправив запрос REST и получив желаемый ответ.

Протестируйте онлайн-модель

Нам нужен токен доступа Databricks для доступа к конечной точке REST развернутой модели.

Я использовал Postman для доступа к REST API. Мы будем использовать URL-адрес модели с предыдущего экрана, выберем тип авторизации как Токен носителя и введем токен доступа Databricks.

Если мы хотим опубликовать онлайн-модель для производственного использования, мы должны использовать платформу Azure API Management для управления нашими API.

использованная литература

Спасибо за чтение!! Если вам понравилось, хлопайте и делитесь !! Чтобы увидеть похожие сообщения, подпишитесь на меня в Medium, Blogger и LinkedIn.