Автоматизация машинного обучения с помощью Databricks AutoML - подход стеклянной коробки и MLFLow

Databricks AutoML позволяет быстро создавать базовые модели и записные книжки.

Databricks недавно анонсировала свою платформу Databricks AutoML во время Data + AI Summit 2021. В этой статье мы обсудим, как использовать платформу AutoML Databricks для автоматического применения машинного обучения к набору данных и развертывания модели в производственной среде с помощью REST API.

Содержание:
1. Обзор Databricks AutoML.
2. Настройка среды Azure Databricks.
3. Настройка AutoML в Azure Databricks.
4. Изучение записных книжек, созданных AutoML.
5. Регистрация модели в реестре моделей MLflow.
6. Разверните модель с помощью REST API.

Databricks AutoML

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

Основная цель AutoML - предоставить инструменты машинного обучения специалистам, не занимающимся машинным обучением, или нетехническим специалистам.

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

Настройка среды Azure Databricks

Чтобы продолжить практическую часть этого руководства, вам потребуется учетная запись Microsoft Azure. Не волнуйтесь, если у вас нет учетной записи, мы можем создать ее бесплатно.

Перейдите на портал Microsoft Azure и зарегистрируйтесь для получения бесплатной учетной записи. После того, как вы создадите свою учетную запись, вам будет начислено около 200 долларов США за использование лазурных сервисов в течение 30 дней.

Создание службы Azure Databricks

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

  • Перейдите на домашнюю страницу портала Azure, выполните поиск azure databricks в строке поиска и выберите Databricks.

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

  • Выберите службу подписки и создайте группу ресурсов (группа ресурсов - это набор ресурсов, имеющих общий жизненный цикл, разрешения и политики).
  • Введите уникальное имя рабочего пространства для выбранной группы ресурсов.
  • Уровень ценообразования: выберите версию Trail или уровень Premium. Щелкните здесь, чтобы узнать подробности о ценах на Azure Databricks.

  • Далее мы не будем изменять какие-либо сетевые или дополнительные настройки, предоставленные лазурным сервером. Мы пойдем с настройками по умолчанию.
  • Наконец, нажмите кнопку обзора + создания, чтобы создать ресурс. После успешного развертывания вы увидите службу Azure Databricks, созданную в каталоге по умолчанию.

Запуск службы Azure Databricks

Чтобы запустить службу Azure Databricks, щелкните имя службы (TrainingDB). Откроется домашняя страница сервиса.

После открытия домашней страницы службы выберите вкладку обзора, где вы увидите кнопку «Запустить рабочую область». При нажатии этой кнопки будут запущены Azure Databricks.

Настройка AutoML в Azure Databricks

Я надеюсь, что вы сможете пройти обучение до этого момента. Следующее, что мы сделаем, - это настроим эксперимент AutoML в Azure Databricks.

  • Чтобы открыть страницу машинного обучения в Databricks, наведите указатель мыши на левую боковую панель в рабочей области Databricks.

  • В переключателе персон в верхней части боковой панели выберите Машинное обучение.

В этом эксперименте с AutoML я использовал набор данных Kaggle Качество красного вина, чтобы предсказать, хорошего или плохого качества вино. Чтобы преобразовать это в проблему классификации, я преобразовал функцию quality в логическое значение good_quality на основе показателя качества. Если показатель качества больше или равен 7, функция будет установлена ​​на Trueelse False.

Создание кластера в Databricks

Чтобы сначала настроить AutoML Experiment, нам нужно создать кластер в блоках данных. Чтобы создать кластер, наведите указатель мыши на левую боковую панель в рабочем пространстве Databricks и выберите кластеры. Откроется домашняя страница кластеров. Если есть какие-либо активные кластеры, вы можете увидеть их здесь.

  • Нажмите кнопку «Создать кластер» в левом верхнем углу, чтобы создать новый кластер.

  • Сведения о кластере:
    - Имя кластера: введите любое имя кластера
    - Режим кластера: одиночный узел (поскольку мы экспериментируем только с небольшими данными.
    - Пул: имя
    - Версия среды выполнения: 8.3 ML Beta или выше
    - Тип узла: Standard_DS3_v2 (по умолчанию)

Загрузка данных в блоки данных

  • Щелкните значок данных в строке меню слева. Откроется панель для создания новой таблицы.
  • Загрузите файл CSV в целевой каталог DBFS.

  • После загрузки файла нажмите «Создать таблицу с пользовательским интерфейсом» и выберите созданный нами кластер.

  • Выберите первую строку в качестве параметров схемы заголовка и вывода и создайте таблицу.

Настройка AutoML Experiment

  • Теперь мы закончили с предпосылками - настроили кластер и создали таблицу данных. мы продолжим и настроим эксперимент AutoML.
  • Конфигурация AutoML:
    - Кластер: MLCluster.
    - Тип проблемы ML: Классификация.
    - Набор данных: Просмотрите созданную нами таблицу.
    - Цель прогноза: good_quality (автоматически выбирается платформу)
    - Имя эксперимента: заполняется автоматически или введите собственное имя.

  • Далее нам нужно выбрать метрику оценки - балл F1 (поскольку данные несбалансированы).
  • Мы даже можем настроить критерии остановки - тайм-аут и количество пробегов в расширенных настройках конфигурации.

  • После настройки всех конфигураций нажмите «Начать AutoML», чтобы обучить различные итерации алгоритмов классификации.

Изучение записных книжек, созданных AutoML

Теперь, когда прошел час, AutoML завершил выполнение различных комбинаций итераций модели.

  • Если вы внимательно посмотрите на метрики, они автоматически сортируются проверкой f1_score в порядке убывания, так что лучшая модель находится вверху таблицы.

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

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

Исследование данных в AutoML

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

Без правильного понимания данных, сколько сложных алгоритмов мы используем для построения моделей, они могут не дать соответствующих результатов. Таким образом, исследование данных - очень важный этап в машинном обучении, но это процесс, требующий времени, в большинстве случаев специалисты по данным пропускают этот этап.

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

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

Изучение записной книжки AutoML Run

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

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

Чтобы открыть исходный код для запуска, щелкните значок записной книжки под столбцом источника для этого запуска.

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

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

Регистрация модели в реестре моделей

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

Реестр моделей - это центр совместной работы, где команды могут обмениваться моделями машинного обучения, работать вместе от экспериментов до онлайн-тестирования и производства, интегрироваться с рабочими процессами утверждения и управления, а также контролировать развертывание машинного обучения и их производительность [2].

Чтобы зарегистрировать модель в реестре моделей, нажмите на запуск по вашему выбору (мой выбор - лучший запуск, т. Е. Верхний запуск), прокрутите вниз до раздела артефактов и щелкните папку модели.

  • Нажмите на «Зарегистрировать модель», выберите «Создать новую модель» и введите название модели.
  • Вы можете зарегистрировать все соответствующие модели (модели, прогнозирующие качество красного вина) под одним именем для совместной работы (совместное использование моделей разными командами).

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

Изучение модельного реестра

Реестр модели предоставляет информацию о модели, включая ее автора, время создания, текущий этап и ссылку на запуск источника.

Используя ссылку на источник, вы можете открыть запуск MLflow, который использовался для создания модели. Из пользовательского интерфейса запуска MLflow вы можете получить доступ к ссылке на исходную записную книжку, чтобы просмотреть внутренний код для создания модели [3].

  • Вы даже можете редактировать / добавлять описание модели для модели. Помните, что описание модели зависит от версии модели.
  • Этапы: Реестр модели определяет несколько этапов модели: Нет, Подготовка, Производство и Archived. Подробнее об этом в следующем разделе.

Разверните модель с помощью REST API

Мы находимся в последнем разделе этого руководства. В этом разделе мы обсудим, как запустить модель в производство и обслужить модель с помощью REST API.

Стадия изменения модели

  • Как мы видели в предыдущем разделе, о различных этапах модельного реестра. Каждый этап имеет разное значение.
  • Например, Staging предназначен для тестирования моделей, а Production - для моделей, которые завершили процессы тестирования или проверки и были развернуты в приложениях.
  • Чтобы изменить этап модели, нажмите кнопку «Этап», чтобы отобразить список доступных этапов модели и доступные параметры перехода между этапами.

В корпоративной среде, когда вы работаете с несколькими командами, такими как группа Data Science и группа MLOps. Член группы по науке о данных запрашивает переход модели к промежуточному этапу, на котором происходит все тестирование модели.

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

В этом уроке я для простоты отправлю модель в производство. Чтобы отправить модель в производство, выберите «Перейти к -› Производство », введите свой комментарий и нажмите« ОК »в окне подтверждения перехода между этапами, чтобы перевести модель в« Производство ».

  • После перехода версии модели к производственной, текущий этап отображается в пользовательском интерфейсе, и в журнал операций добавляется запись, отражающая переход.

  • Чтобы вернуться на главную страницу реестра модели MLflow, щелкните значок модели на левой боковой панели.
  • На домашней странице реестра моделей MLflow отображается список всех зарегистрированных моделей в рабочей области Azure Databricks, включая их версии и стадии.
  • Щелкните ссылку redwine_qualitymodel, чтобы открыть страницу зарегистрированной модели, на которой отображаются все версии модели прогнозирования.

  • На изображении выше видно, что модель «Версия 1» находится в стадии производства.

Модель обслуживания

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

  • Чтобы включить обслуживание, щелкните вкладку обслуживания на странице реестра модели redwine_qualitymodel.

  • Если модель еще не включена для обслуживания, появляется кнопка «Включить обслуживание».
  • Когда вы включаете обслуживание модели для данной зарегистрированной модели, Azure Databricks автоматически создает уникальный кластер для модели и развертывает все неархивированные версии модели в этом кластере [4].

Прогнозы с использованием обслуживаемой модели

  • После включения обслуживания для включения обслуживающего кластера потребуется несколько минут. Как только он будет включен, вы увидите статус «готово».

Тестирование обслуживания модели

  • После того, как обслуживающий кластер будет готов, мы можем проверить ответ модели, отправив запрос на вкладке запроса и просмотрев ответ.
  • Чтобы отправить запрос, нам нужны образцы данных. Щелкните вкладку «Показать пример», она автоматически заполнит 5 точек данных и нажмите - ›Отправить запрос, чтобы просмотреть ответ.

URL модели

  • На странице обслуживания вы увидите конечные точки URL модели. Используйте эти конечные точки для запроса вашей модели с использованием аутентификации токена API.
    Для получения дополнительных сведений (фрагменты кода) по обслуживанию с использованием REST API ознакомьтесь с документацией по обслуживанию.


Настройки кластера

  • По умолчанию блоки данных назначают базовый тип экземпляра обслуживающему кластеру. Но если вы работаете с очень большим набором данных, вам может потребоваться более мощный кластер для обработки объема прогнозов (ответов) в режиме реального времени.
  • Чтобы изменить настройки кластера, перейдите в настройки кластера, измените тип экземпляра в зависимости от вашего использования и нажмите «Сохранить».

  • Важно не путать этот кластер с кластером, который мы создали при настройке эксперимента AutoML.
    - Обслуживающий кластер: кластер, связанный с обслуживающей конечной точкой.
    - Кластер Databricks: кластер, связанный с выполнением AutoML / Spark.

Примечание:

  • Обслуживающий кластер поддерживается, пока обслуживание включено, даже если не существует активной версии модели.
  • Пока обслуживающий кластер поддерживается, с вас будет взиматься плата в соответствии с конфигурацией экземпляра, который вы выбрали для обслуживания.

Не забудьте остановить оба кластера, прежде чем выходить из своей учетной записи Azure.

  • Чтобы остановить обслуживающий кластер, нажмите кнопку остановки рядом со статусом на обслуживающей странице.
  • Чтобы остановить кластер блоков данных, перейдите на страницу кластеров, наведя указатель мыши на левую панель, выберите кластер и нажмите «Завершить».

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

Что дальше?

Практика Практика

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

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

Заключение

В этой статье мы начали с обсуждения обзора блоков данных AutoML. После этого мы обсудили, как настроить и запустить службу Azure Databricks на портале Azure. Затем мы увидели, как настроить эксперимент AutoML с использованием набора данных о качестве красного вина. Наконец, мы узнали, как переходить между этапами модели в реестре модели и включать обслуживание модели с помощью REST API.

Не стесняйтесь обращаться ко мне через LinkedIn или Twitter, если у вас возникнут какие-либо проблемы при выполнении этого руководства. Я надеюсь, что эта статья помогла вам начать работу с AutoML и понять, как он работает.

В моем следующем блоге мы обсудим, как настроить PySpark на вашем локальном компьютере и начать работу с PySpark Hands-on. Поэтому убедитесь, что вы подписаны на меня на Medium, чтобы получать уведомления, как только он упадет.

До следующего раза Мир :)

NK.

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

  1. Https://mlflow.org/
  2. Https://databricks.com/product/mlflow-model-registry
  3. Пример реестра модели MLflow
  4. Обслуживание модели MLflow в Azure Databricks